Coverage for fastapi / routing.py: 100%

460 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-02-12 18:15 +0000

1import contextlib 1abdc

2import email.message 1abdc

3import functools 1abdc

4import inspect 1abdc

5import json 1abdc

6import types 1abdc

7from collections.abc import ( 1abdc

8 AsyncIterator, 

9 Awaitable, 

10 Callable, 

11 Collection, 

12 Coroutine, 

13 Generator, 

14 Mapping, 

15 Sequence, 

16) 

17from contextlib import ( 1abdc

18 AbstractAsyncContextManager, 

19 AbstractContextManager, 

20 AsyncExitStack, 

21 asynccontextmanager, 

22) 

23from enum import Enum, IntEnum 1abdc

24from typing import ( 1abdc

25 Annotated, 

26 Any, 

27 TypeVar, 

28) 

29 

30from annotated_doc import Doc 1abdc

31from fastapi import params 1abdc

32from fastapi._compat import ( 1abdc

33 ModelField, 

34 Undefined, 

35 lenient_issubclass, 

36) 

37from fastapi.datastructures import Default, DefaultPlaceholder 1abdc

38from fastapi.dependencies.models import Dependant 1abdc

39from fastapi.dependencies.utils import ( 1abdc

40 _should_embed_body_fields, 

41 get_body_field, 

42 get_dependant, 

43 get_flat_dependant, 

44 get_parameterless_sub_dependant, 

45 get_typed_return_annotation, 

46 solve_dependencies, 

47) 

48from fastapi.encoders import jsonable_encoder 1abdc

49from fastapi.exceptions import ( 1abdc

50 EndpointContext, 

51 FastAPIError, 

52 RequestValidationError, 

53 ResponseValidationError, 

54 WebSocketRequestValidationError, 

55) 

56from fastapi.types import DecoratedCallable, IncEx 1abdc

57from fastapi.utils import ( 1abdc

58 create_model_field, 

59 generate_unique_id, 

60 get_value_or_default, 

61 is_body_allowed_for_status_code, 

62) 

63from starlette import routing 1abdc

64from starlette._exception_handler import wrap_app_handling_exceptions 1abdc

65from starlette._utils import is_async_callable 1abdc

66from starlette.concurrency import run_in_threadpool 1abdc

67from starlette.exceptions import HTTPException 1abdc

68from starlette.requests import Request 1abdc

69from starlette.responses import JSONResponse, Response 1abdc

70from starlette.routing import ( 1abdc

71 BaseRoute, 

72 Match, 

73 compile_path, 

74 get_name, 

75) 

76from starlette.routing import Mount as Mount # noqa 1abdc

77from starlette.types import AppType, ASGIApp, Lifespan, Receive, Scope, Send 1abdc

78from starlette.websockets import WebSocket 1abdc

79from typing_extensions import deprecated 1abdc

80 

81 

82# Copy of starlette.routing.request_response modified to include the 

83# dependencies' AsyncExitStack 

84def request_response( 1abdc

85 func: Callable[[Request], Awaitable[Response] | Response], 

86) -> ASGIApp: 

87 """ 

88 Takes a function or coroutine `func(request) -> response`, 

89 and returns an ASGI application. 

90 """ 

91 f: Callable[[Request], Awaitable[Response]] = ( 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

92 func if is_async_callable(func) else functools.partial(run_in_threadpool, func) # type:ignore 

93 ) 

94 

95 async def app(scope: Scope, receive: Receive, send: Send) -> None: 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

96 request = Request(scope, receive, send) 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

97 

98 async def app(scope: Scope, receive: Receive, send: Send) -> None: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

99 # Starts customization 

100 response_awaited = False 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

101 async with AsyncExitStack() as request_stack: 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG b etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI c =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

102 scope["fastapi_inner_astack"] = request_stack 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

103 async with AsyncExitStack() as function_stack: 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG b etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI c =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

104 scope["fastapi_function_astack"] = function_stack 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

105 response = await f(request) 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

106 await response(scope, receive, send) 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCAK'DUjKCLCapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe= MCNCOCPC!yQCRCTqWj@f^DCeUqVqSCTCDeUCXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egisl`AtlG b etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C@K^Fzl-C.CKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-e[ /C:C;C=C$y?C@CDtBl]fjG.eEtFt[C]C/e^CClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i|m7B}mI c =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDRLjIentDuD-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCf` vDwDxDyD'yzDADnwgn_fzIDfowpwBDCDEfDDhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

107 # Continues customization 

108 response_awaited = True 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjKCLCapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe= MCNCOCPC!yQCRCTqWj@f^DCeUqVqSCTCDeUCXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egisl`AtlG b etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,Czl-C.CKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-e[ /C:C;C=C$y?C@CDtBl]fjG.eEtFt[C]C/e^CClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i|m7B}mI c =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDentDuD-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCf` vDwDxDyD'yzDADnwgn_fzIDfowpwBDCDEfDDhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

109 if not response_awaited: 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgUjKCLCapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBeMCNCOCPCQCRCTqWj@f^DCeUqVqSCTCDeUCXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFYQGFZQHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egisl`AtlG b etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgzl-C.CKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-e/C:C;C=C?C@CDtBl]fjG.eEtFt[C]C/e^CClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVHoRWHpRXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i|m7B}mI c =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gentDuD-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfvDwDxDyDzDADnwgn_fzIDfowpwBDCDEfDDhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J(R$J)R%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

110 raise FastAPIError( 2YQZQoRpR(R)R

111 "Response not awaited. There's a high chance that the " 

112 "application code is raising an exception and a dependency with yield " 

113 "has a block with a bare except, or a block with except Exception, " 

114 "and is not raising the exception again. Read more about it in the " 

115 "docs: https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/#dependencies-with-yield-and-except" 

116 ) 

117 

118 # Same as in Starlette 

119 await wrap_app_handling_exceptions(app, request)(scope, receive, send) 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

120 

121 return app 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

122 

123 

124# Copy of starlette.routing.websocket_session modified to include the 

125# dependencies' AsyncExitStack 

126def websocket_session( 1abdc

127 func: Callable[[WebSocket], Awaitable[None]], 

128) -> ASGIApp: 

129 """ 

130 Takes a coroutine `func(session)`, and returns an ASGI application. 

131 """ 

132 # assert asyncio.iscoroutinefunction(func), "WebSocket endpoints must be async" 

133 

134 async def app(scope: Scope, receive: Receive, send: Send) -> None: 2a IcOcLcb JcPcMcd c KcQcNc

135 session = WebSocket(scope, receive=receive, send=send) 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

136 

137 async def app(scope: Scope, receive: Receive, send: Send) -> None: 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

138 async with AsyncExitStack() as request_stack: 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

139 scope["fastapi_inner_astack"] = request_stack 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

140 async with AsyncExitStack() as function_stack: 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

141 scope["fastapi_function_astack"] = function_stack 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

142 await func(session) 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

143 

144 # Same as in Starlette 

145 await wrap_app_handling_exceptions(app, session)(scope, receive, send) 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

146 

147 return app 2a IcOcLcb JcPcMcd c KcQcNc

148 

149 

150_T = TypeVar("_T") 1abdc

151 

152 

153# Vendored from starlette.routing to avoid importing private symbols 

154class _AsyncLiftContextManager(AbstractAsyncContextManager[_T]): 1abdc

155 """ 

156 Wraps a synchronous context manager to make it async. 

157 

158 This is vendored from Starlette to avoid importing private symbols. 

159 """ 

160 

161 def __init__(self, cm: AbstractContextManager[_T]) -> None: 1abdc

162 self._cm = cm 1VY1

163 

164 async def __aenter__(self) -> _T: 1abdc

165 return self._cm.__enter__() 1VY1

166 

167 async def __aexit__( 1abdc

168 self, 

169 exc_type: type[BaseException] | None, 

170 exc_value: BaseException | None, 

171 traceback: types.TracebackType | None, 

172 ) -> bool | None: 

173 return self._cm.__exit__(exc_type, exc_value, traceback) 1VY1

174 

175 

176# Vendored from starlette.routing to avoid importing private symbols 

177def _wrap_gen_lifespan_context( 1abdc

178 lifespan_context: Callable[[Any], Generator[Any, Any, Any]], 

179) -> Callable[[Any], AbstractAsyncContextManager[Any]]: 

180 """ 

181 Wrap a generator-based lifespan context into an async context manager. 

182 

183 This is vendored from Starlette to avoid importing private symbols. 

184 """ 

185 cmgr = contextlib.contextmanager(lifespan_context) 1VY1

186 

187 @functools.wraps(cmgr) 1VY1

188 def wrapper(app: Any) -> _AsyncLiftContextManager[Any]: 1VY1

189 return _AsyncLiftContextManager(cmgr(app)) 1VY1

190 

191 return wrapper 1VY1

192 

193 

194def _merge_lifespan_context( 1abdc

195 original_context: Lifespan[Any], nested_context: Lifespan[Any] 

196) -> Lifespan[Any]: 

197 @asynccontextmanager 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

198 async def merged_lifespan( 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

199 app: AppType, 

200 ) -> AsyncIterator[Mapping[str, Any] | None]: 

201 async with original_context(app) as maybe_original_state: 2zKSj`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg!y@fdSeSe F fSh @Z?KxlxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg$y]fgShSf H iSi [ZQLcnZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g'y_fjSkSg J lSj ]Z

202 async with nested_context(app) as maybe_nested_state: 2zKSj`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg!y@fdSeSe F fSh @Z?KxlxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg$y]fgShSf H iSi [ZQLcnZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g'y_fjSkSg J lSj ]Z

203 if maybe_nested_state is None and maybe_original_state is None: 2zKSj`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg!y@fdSeSe F fSh @Z?KxlxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg$y]fgShSf H iSi [ZQLcnZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g'y_fjSkSg J lSj ]Z

204 yield None # old ASGI compatibility 2zKSj`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg!y@feSe h @Z?KxlxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg$y]fhSf i [ZQLcnZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g'y_fkSg j ]Z

205 else: 

206 yield {**(maybe_nested_state or {}), **(maybe_original_state or {})} 2dSF fSgSH iSjSJ lS

207 

208 return merged_lifespan # type: ignore[return-value] 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

209 

210 

211class _DefaultLifespan: 1abdc

212 """ 

213 Default lifespan context manager that runs on_startup and on_shutdown handlers. 

214 

215 This is a copy of the Starlette _DefaultLifespan class that was removed 

216 in Starlette. FastAPI keeps it to maintain backward compatibility with 

217 on_startup and on_shutdown event handlers. 

218 

219 Ref: https://github.com/Kludex/starlette/pull/3117 

220 """ 

221 

222 def __init__(self, router: "APIRouter") -> None: 1abdc

223 self._router = router 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

224 

225 async def __aenter__(self) -> None: 1abdc

226 await self._router._startup() 2a zKSj+ `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+yAK} = !y@f? QhR e h @ZciOzPzdiQz8Poh|Zph}Z$ G b ?Kxl- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y@Keb[ $y]f] jiS f i [Z6iUzVz7iWz9Psh~Ztha0% I c QLcn/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/yRLkb` 'y_f{ %iT g j ]Zzj0z1zAj2z!Pwhb0xhc0' K

227 

228 async def __aexit__(self, *exc_info: object) -> None: 1abdc

229 await self._router._shutdown() 2a zKSj+ `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+yAK} = !y@f? QhR e h @ZciOzPzdiQz8Poh|Zph}Z$ G b ?Kxl- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y@Keb[ $y]f] jiS f i [Z6iUzVz7iWz9Psh~Ztha0% I c QLcn/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/yRLkb` 'y_f{ %iT g j ]Zzj0z1zAj2z!Pwhb0xhc0' K

230 

231 def __call__(self: _T, app: object) -> _T: 1abdc

232 return self 2a zKSj+ `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+yAK} = !y@f? QhR e h @ZciOzPzdiQz8Poh|Zph}Z$ G b ?Kxl- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y@Keb[ $y]f] jiS f i [Z6iUzVz7iWz9Psh~Ztha0% I c QLcn/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/yRLkb` 'y_f{ %iT g j ]Zzj0z1zAj2z!Pwhb0xhc0' K

233 

234 

235# Cache for endpoint context to avoid re-extracting on every request 

236_endpoint_context_cache: dict[int, EndpointContext] = {} 1abdc

237 

238 

239def _extract_endpoint_context(func: Any) -> EndpointContext: 1abdc

240 """Extract endpoint context with caching to avoid repeated file I/O.""" 

241 func_id = id(func) 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLC{W|WapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRC}W~WaXbXcXdXTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqnSYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F6Z$ ;F=Fat?F@Fbt[F]Fct)CpS*C(Z+ZqS7Z8Z+CaSdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkX,ZetftgtrShtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.ClXmXKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CnXoXpXqXrXsXDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtsSItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI9Z% dIeI.vfIgI/vhIiI:vpDuSqD)Z-ZvS!Z#ZrDbS;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX.Z=v?v@vwS[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuDAXBX-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADCXDXEXFXGXHXnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwxSswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK$Z' tKuK5yvKwK6yxKyK7yZDzS0D*Z/ZAS%Z'Z1DcS8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX:Z

242 

243 if func_id in _endpoint_context_cache: 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLC{W|WapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRC}W~WaXbXcXdXTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqnSYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F6Z$ ;F=Fat?F@Fbt[F]Fct)CpS*C(Z+ZqS7Z8Z+CaSdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkX,ZetftgtrShtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.ClXmXKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CnXoXpXqXrXsXDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtsSItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI9Z% dIeI.vfIgI/vhIiI:vpDuSqD)Z-ZvS!Z#ZrDbS;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX.Z=v?v@vwS[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuDAXBX-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADCXDXEXFXGXHXnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwxSswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK$Z' tKuK5yvKwK6yxKyK7yZDzS0D*Z/ZAS%Z'Z1DcS8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX:Z

244 return _endpoint_context_cache[func_id] 2@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oOh?f;y9ynh7bPjpb4 L Sj+yJCBSAKapbpcpdpCSDSESFSPh(D)D*D+D,DeTfT-DgThT.DiT/DjTkT:DlT;D=D?D@D[D]D!y@f^DGSvAwAtQuQfpgp_D`D{D|DpeBKCKDKmTxA}Dhpipjp~DaEnToTbEcEdEeEfEgEpThEqTrTsTiEtTuTjEvTwTxTyTkElEmEnEzToEATpEBTqECTrEDTsEETFTGTHTITJTKTLTMTNTOTtEuEvEwEPTQTxERTyESTTTyAUTVTzEAEBECEWTDEEEFEGEXTYTZTEKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEKELEMENEOE0T1TPEQE2TRE3TSEzAvQwQAABAxQyQCADAEAFAGAHAIAJAKALAMANAOAPAQARASATAzQAQUAVABQCQWADQEQXAYAFQ5zGQ6zZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'AHQIQ(A)AJQ*AKQ+A4T5TTEUE6T2D7T3DVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E8T9T#E$E!T%E#T'E$T%T(E)E'T4D(T5D*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E)T*T{E|E+T}E,T~EMKaF.hbFPXQXcFRXSXdFTXUXeFVXfFWXgFXXhFYXZX0X1X2X3X4X5X6X7X8XiFjF9X!X#X$XkFlF%XmF,ALQMQ'XnFoF(XpFqFrF-ANQOQsFtF.APQQQuFvFwFxF)XyF*XzFAFBFHSIS+XNKRQOKqNrNsNtN,ylpCF,X-XJS.X-T.T/X/T:TDFKS:X;T=T?T;X@T/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@h[hTK]hUKVK^hTQ/A:AWKXKYKUQZK0K_h1KVQ2K3KWQ`h4K5KXQ{h6K7K|h8K9K!K}h#K$K%K~h'K(K)Kai*K+K,Kbi-K.K/K@gOzPz[TQz8P]Tmpnpre:K;Kppqprp=X?XEFFFLSYQGFZQHFMSNSsp@X[X]X^XIFJF=K;AOSPSQSKFRSeiLFSSMFNF^TOF_T`TPFQF{T|TupvpwpTSUSxp}TRF~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnUUFVFoUWFpUqUDpEpFpGprUsUXFYFZF0FtU1FuUvU2FwU3FxU4FyUzU5FAU6FBU7FCU8F9F!FDU#F$F%F'F(FEU)F*F0Q=A?A@A[A1Q]A2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q^A*Qil[guNvNMj_X+F,F`X{X|X*P+P-F}X~X-P.P]g~yazaYbYcYdYeY:P;P^g_gfYbzczdzgYhYiYjYkYlYmYnYoYpYqYXcYc.F6c/F:F6Z;F=F?F@F[F]F(Z+Z7Z8ZaSfiM +Q,Q_Agi`A,ZIphi[fez#yrh8bulqb7 N xl-y,CVS@KKpLpMpNpWSXSYSZSii_F`F{F|F}FFUGU~FHUIUaGJUbGKULUcGMUdGeGfGgGhGiG$y]fjG0S{A|A-Q.QPpQpkGlGmGnGse[K]K^KNU}AoGRpSpTppGqGOUPUrGsGtGuGvGwGQUxGRUSUTUyGUUVUzGWUXUYUZUAGBGCGDG0UEG1UFG2UGG3UHG4UIG5U6U7U8U9U!U#U$U%U'U(UJGKGLGMG)U*UNG+UOG,U-U~A.U/UPGQGRGSG:UTGUGVGWG;U=U?U_K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzXGYGZG0G1G2G3G4G@U[U5G6G]U7G^U8GaB/Q:QbBcB;Q=QdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuB?Q@QvBwB[Q]QxB^Q_QyBzB`Q:z{Q;zABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPB|Q}QQBRB~QSBaRTB_U`U9G!G{U6D|U7D#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G}U~U@G[GaV]GbV^GcVdV_G`GeV8DfV9D{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHgVhVmHnHiVoHjVpHcLqHOirHrYsYsHtYuYtHvYwYuHxYvHyYwHzYxHAYBYCYDYEYFYGYHYIYJYKYyHzHLYMYNYOYAHBHPYCHUBbRcRQYDHEHRYFHGHHHVBdReRIHJHWBfRgRKHLHMHNHSYOHTYPHQHRH1S2SUYdLhReLwNxNyNzN.yVpSHVYWY3SXYkVlVYYmVnVTH4SZYoVpVqV0YrVPiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUiVijLWikLlLXijRXBYBmLnLoLkRpLqLYirLlRsLtLmRZiuLvLnR0iwLxL1iyLzLAL2iBLCLDL3iELFLGL4iHLILJL5iKLLLML`gUzVzsVWz9PtVWpXpueNLOLZp0p1p1Y2YUHVH5SoRWHpRXH6S7S2p3Y4Y5Y6YYHZHPLZB8S9S!S0H#S8i1H$S2H3HuV4HvVwV5H6HxVyV4p5p6p%S'S7pzV7HAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOV!H#HPV$HQVRV%p'p(p)pSVTV%H'H(H)HUV*HVVWV+HXV,HYV-HZV0V.H1V/H2V:H3V;H=H?H4V@H[H]H^H_H5V`H{HqR0B1B2B3BrR4BsRtRuRvRwRxRyRzRARBRCRDRERFRGR5BHR;m{gANBNNj7Y|H}H8Y9Y!Y`P{P~H#Y$Y}P~P|gqzrz%Y'Y(Y)Y*YbQcQ}g~g+Ysztzuz,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]YZc0caI8cbIcI9ZdIeIfIgIhIiI)Z-Z!Z#ZbS9iO IRJR6B!i7B.Z+p#i^fvz%yvh9b~mrb! P cn/ysD(SRL-p.p/p:p)S*S+S,S$ikIlImInIoI6V7VpI8V9VqI!VrI#V$VsI%VtIuIvIwIxIyI'y_fzI-S8B9BKRLR=p?pAIBICIDIveSLTLUL'V!BEI@p[p]pFIGI(V)VHIIIJIKILIMI*VNI+V,V-VOI.V/VPI:V;V=V?VQIRISITI@VUI[VVI]VWI^VXI_VYI`V{V|V}V~VaWbWcWdWeWfWZI0I1I2IgWhW3IiW4IjWkW#BlWmW5I6I7I8InW9I!I#I$I)boWpWqWVLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz%I'I(I)I*I+I,I-IrWsW.I/ItW:IuW;I$BMRNR%B'BORPR(B)B*B+B,B-B.B/B:B;B=B?B@B[B]B^B_B`BQRRR{B|BSRTR}BURVR~BaCWReAXRfAbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCYRZRrCsC0RtC1RuCvWwW=I?IxW!DyW#D@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJzWAWgJhJBWiJCWjJDWEWkJlJFW$DGW%DmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJHWIWCJDJJWEJKWFJ3LGJhjHJ4b2 ^Y_YIJ`Y{YJJ|Y}YKJ~YLJaZMJbZNJcZdZeZfZgZhZiZjZkZlZmZOJPJnZoZpZqZQJRJrZSJvC2R3RsZTJUJtZVJWJXJwC4R5RYJZJxC6R7R0J1J2J3JuZ4JvZ5J6J7J.S/SwZ4L8R5LCNDNENFN:y_p8JxZyZ:SzZLWMWAZNWOW9J;SBZPWQWRWCZSWijjj,x4P7PkM6L9R7L8LkjljmjlM9Lwenjoj!Lpj#L$Lqj!RyCzC%L'L(L#R)L*Lrj+L$R,L-L%Rsj.L/L'Rtj:L;Luj=L?L@Lvj[L]L^Lwj_L`L{Lxj|L}L~LyjaMbMcMah0z1zTW2z!PUW`p{pxedMeM}p~paqDZEZ!J#J=S(R$J)R%J?S@SbqFZGZHZIZ'J(JfMAC[S]S^S)J_SBj*J`S+J,JVW-JWWXW.J/JYWZWdqeqfq{S|Sgq0W:J1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(W?J@J)W[J*W+Wmqnqoqpq,W-W]J^J_J`J.W{J/W:W|J;W}J=W~J?W@WaK[WbK]WcK^WdKeKfK_WgKhKiKjKkK`WlKmK*RBCCCDCEC+RFC,R-R.R/R:R;R=R?R@R[R]R^R_R`R{RGC|R3obhGNHNOjJZnKoKKZLZMZkQlQpKNZOZnQoQchHzIzPZQZRZSZTZqQrQdhehUZJzKzLzVZWZXZYZZZ0Z1Z2Z3Z4Z5Z1c2cqK!crKsK$ZtKuKvKwKxKyK*Z/Z%Z'ZcSCjQ }R~RHCDjIC:Z

245 

246 try: 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj=y4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvlfz7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|vanwz! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

247 ctx: EndpointContext = {} 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj=y4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvlfz7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|vanwz! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

248 

249 if (source_file := inspect.getsourcefile(func)) is not None: 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj=y4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvlfz7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|vanwz! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

250 ctx["file"] = source_file 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvl7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|van! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

251 if (line_number := inspect.getsourcelines(func)[1]) is not None: 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvl7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|van! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

252 ctx["line"] = line_number 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvl7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|van! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

253 if (func_name := getattr(func, "__name__", None)) is not None: 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvl7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|van! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

254 ctx["function"] = func_name 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvl7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|van! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

255 except Exception: 2=yfzwz

256 ctx = EndpointContext() 2=yfzwz

257 

258 _endpoint_context_cache[func_id] = ctx 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj=y4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvlfz7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|vanwz! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

259 return ctx 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzyqzqAqBqCqnh7bPjpbq ~oDqQj=y4 L RjzKEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg(oINJN'DUjKCLC{W|WapbpcpdpGqKNLNHqIqJqMNNNONKqLqMqPNQNRNNqSNTNOqPqzeNzAecOdOeOfOQqRq#PVj; Sqep?yBe} = MCNCOCPC@yQCRC}W~WaXbXcXdXTqWj@fgOUNhOVN$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4j5j6j7jWq8jEeXqnSYqZqfpgp0q1q2q3q? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jQh9q!qhpip#qjpiOjO$qkO%q'q(q)q*q+qlO,q-qmO.qnO/q:q;q=q?q@q[q]q^q'joO_qpO`q{q(j)j|q}qqOrO~qarbrU abbb5b%bsbtbcrdrer)ofrgrhr[y]y^y_ymMnMoMpM*j+j,j-jqMrMsMtM.j/j:j;j`y{y|y}yirjrkrlrsOtOuOvOuMvMwMxM=j?j@j[j]j^j_j`jyMzMAMBMCMDMEMFM{j|j}j~jakbkckdkGMHMIMJMwOxOyOzOmrnrorprqrrrsrtrAOBOCODOkpEOFOGOHOurvrwrxryrzrArBrIOJOKOLOKMMONOekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLroS( , R e F V h Mrk l Tk6 UkNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4r5r6r7r8rLM%P'P9r!r#r$r%r'r(rMM)rNM*r+r,r-r.r/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[rWNXN]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/k~rasbscsdsesfsgshsisjsOOkslsmsnsLeqeMeNeOePeQeReSeTeUeVeWeXeYeZe0e:kTd;kUdBbpsqsrscidimpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpPOCbYNZN0NDsDbspQORO3eohphEsFs4eWd[k]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsSORzTOJsKsLsupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6s7sypzpApBpCp8s9sDpEpFpGp!s#s$s%s's(s)sUOVO*s+s,s-s.s/s:s;s=sOM|k}k~kalbl9CPMcl!CdlelflglhlQMil#C?sqh$C%C@s6djl7d8d9d'C(C[sMjklllmlnlHp6e7e8e9e!e(P)Pol,PCh/P]gDh=P^g_g]s^s#epl$eql_s`s{s|sXcYc}s~s!b6c$ atbtct)CpS*CqS+CaSdtW %eM 'e(erl)e%z'z(z)zsl*z+z,ztlWO-z.z}S~SG eXfXgXIcOcLchXiXjXkXetftgtrShtIp*eSzitjtktltmtrh8bulqbr Jpntvlfz7 N wl?Kotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg,o1N2N^Fzl-C.ClXmXKpLpMpNpqt3N4Nrtsttt5N6N7Nutvtwt8N9N!Nxt#N$Nytzt+eTz,eXOYOZO0OAtBt?PAl@ CtOpgz-eeb[ /C:C;C=Chz?C@CnXoXpXqXrXsXDtBl]f1O%N2O'N@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJlKlLlMlGtNl:eHtsSItJtPpQpKtLtMtNt] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSljiTtUtRpSpVtTp3O4OWt5OXtYtZt0t1t2t6O3t4t7O5t8O6t7t8t9t!t#t$t%t'tTl9O(t!O)t*tUlVl+t,t#O$O-t.t/tX gbhb6b'bEbFb:t;t=t-o?t@t[tizjzkzlzRMSMTMUMWlXlYlZlVMWMXMYM0l1l2l3lmznzozpz]t^t_t`t%O'O(O)OZM0M1M2M4l5l6l7l8l9l!l#l3M4M5M6M7M8M9M!M$l%l'l(l)l*l+l,l#M$M%M'M*O+O,O-O{t|t}t~taubucudu.O/O:O;OUp=O?O@O[Oeufuguhuiujukulu]O^O_O`O(M{O|O-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvutS) . S f H Y i wum n ym9 zmxuyuzuAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSu)M[P]PTuUuVuWuXuYuZu*M0u+M1u2u3u4u5u6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1m-u.u/u:u;u=u?u@u[u]u^u}O_u`u{u|u^ete_e`e{e|e}e~eafbfcfdfefffgfhfif2m$d3m%dNb~uavbv6i7iWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1p~OOb*N+N,NnvPb2paPbPlfshthovpvmf(d7m8m9m3p!m)d#m*d+d$m,d-dhDqvrvsvcPXzdPtvuvvv4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQvRv8p9p!p#p$pSvTv%p'p(p)pUvVvWvXvYvZv0vePfP1v2v3v4v5v6v7v8v9v,M%m'm(m)m*miD-M+mjD,m-m.m/m:m.M;mkD!vuhlDmD#v=d=m?d@d[dnDoD$vNj?m@m[m]m*pofpfqfrfsf^P_P^m|PHhaQ|gIhdQ}g~g%v'vtf_muf`m(v)v*v+vZc0c,v-v#b8c% .v/v:vpDuSqDvSrDbS;vZ vfO wfxf{myf_z`z{z|z|m}z~zaA}mgPbAcAaTbTI tXuXvXJcPcMcwXxXyXzX=v?v@vwS[v+pzfYz]v^v_v`v{vvh9b~mrbs ,p|vanwz! P bnQL}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g:o-N.NjIentDuDAXBX-p.p/p:paw/N:Nbwcwdw;N=N?Newfwgw@N[N]Nhw^N_NiwjwAfZzBfhPiPjPkPkwlweQfn_ mw;pxzCfkb` vDwDxDyDyzzDADCXDXEXFXGXHXnwgn_flP`NmP{NfQDfowpwBDCDEfDDhninjndAknlnmnnnonpnqnrnqwsnFfrwxSswtw=p?puwvwwwxw{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn%iDwEw@p[pFw]pnPoPGwpPHwIwJwKwLwMwqPNwOwrPPwsPQwRwSwTwUwVwWwXwYwyntPZwuP0w1wznAn2w3wvPwP4w5w6w0 mbnb(bQbRb7w8w9w;o!w#w$wzzAzBzCz/M:M;M=MBnCnDnEn?M@M[M]MFnGnHnInDzEzFzGz%w'w(w)wxPyPzPAP^M_M`M{MJnKnLnMnNnOnPnQn|M}M~MaNbNcNdNeNRnSnTnUnVnWnXnYnfNgNhNiNBPCPDPEP*w+w,w-w.w/w:w;wFPGPHPIP^pJPKPLPMP=w?w@w[w]w^w_w`wNPOPPPQPjNRPSPZn0n1n2n3n4n5n6n7n=o?oSbTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxyS* : T g J 1 j gxo p do2 eohxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxkNgQhQDxExFxGxHxIxJxlNKxmNLxMxNxOxPxQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWx|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo4x5x6x7x8x9x!x#x$x%x'xTP(x)x*x+xMfweNfOfPfQfRfSfTfUfVfWfXfYfZf0f1fHo_dIo`dYb-x.x/xzjAj`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paqUPZb~NaObO|x0bbqVPWP4fwhxh}x~x5f|dMoNoOocqPo}dQo~daeRobeceRDaybycyXP3zYPdyeyfydqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAyByhqiqjqkqlqCyDymqnqoqpqEyFyGyHyIyJyKyZP0PLyMyNyOyPyQyRySyTynNSoToUoVoWoSDoNXoTDYoZo0o1o2opN3oUDUyyhVDWDVyhe4oiejekeXDYDWyOj5o6o7o8oqq7f8f9f!f#fiQjQ9omQMhpQchNhsQdhehXyYy$f!o%f#oZy0y1y2y1c2c3y4y$b!c' 5y6y7yZDzS0DAS1DcS8y3 'fQ (f)f$o*fmAnAoApA%oqArAsA'o1PtAuAcTdTK IXJXKXKcQcNcLXMXNXOX

260 

261 

262async def serialize_response( 1abdc

263 *, 

264 field: ModelField | None = None, 

265 response_content: Any, 

266 include: IncEx | None = None, 

267 exclude: IncEx | None = None, 

268 by_alias: bool = True, 

269 exclude_unset: bool = False, 

270 exclude_defaults: bool = False, 

271 exclude_none: bool = False, 

272 is_coroutine: bool = True, 

273 endpoint_ctx: EndpointContext | None = None, 

274) -> Any: 

275 if field: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

276 if is_coroutine: 23cEjFjGjHj4cIjJjKjLj?f;y9ynhQjL RjTj+ +y(oJCUjVj; WjZj4z8j9jzh!j#j$jt u 5 v 'j(j)jyAU ekfkgkhkikjkkklkmknkokpkqk7z8zrksktkukvkwkxkyk9z!zzkAkBkCk#z$zDkEkFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSk( , R e F V h k l TkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k+k,k-k.k:kTd;kUd@g?k@kVdWd[k;A]k^k_kXd`kYdZd{k0d1d2d5c3d4d5d6d[gjl7d8d9dMjklllmlnlCh]g~yazDh^g_gbzczdzplqlXcYc6cW M %z'z(z)zsl`A*z+z,ztl-z.zG [fez#yrhvlN wlyl- -y,o,CzlAl@ BlEl/zNlOlEhPlQlRlw x 8 y TlUlVl~AX -l.l/l:l;l=l?l@l[l]l^l_l`l=z?z{l|l}l~lambmcmdm@z[zemfmgmhm]z^zimjmkmlmmm!dnmom#dpmqmrmsmtmumvmwmxm) . S f H Y i m n ymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVm^ XmYmZm0m2m$d3m%d`g5m6m'd(d7mZB8m9m!m)d#m*d+d$m,d-d.d7c/d:d;d=d{g=m?d@d[dNj?m@m[m]mHh|gqzrzIh}g~gsztzuz_m`mZc0c8cZ O _z`z{z|z|m7B}z~zaA}mbAcAI ^fvz%yvhanP bndn/ /y:osDenfn_ gnjndAsntnJhunvnwnz A # B ynznAn#B0 Zn0n1n2n3n4n5n6n7n8n9n!n#ngAhA$n%n'n(n)n*n+n,niAjA-n.n/n:nkAlA;n=n?n@n[n]d]n^n^d_n`n{n|n}n~naoboco* : T g J 1 j o p doeofogohoiojokolomonooopoqorosotouovowoxoyozoAoCoDoEoFoHo_dIo`dahKoLo{d|dMoACNoOoPo}dQo~daeRobecede9ceefegehebh4oiejekeOj5o6o7o8oMhchHzIzNhdhehJzKzLz!o#o1c2c!c3 Q mAnAoApA%oICqArAsA'otAuAK

277 value, errors = field.validate(response_content, {}, loc=("response",)) 23cEjFjGjHj?f;y9ynhVj; Zj4z$j'jHkRdIkJkSdKkLkMkTkUk)k+k,k-k.k:kTd;kUd@g?kVdWd[k;A]k^k_kXd`kYdZd{k0d1d2d5c3d4d5d6d[gjl7d8d9dMjklllmlnlCh]g~yazDh^g_gbzczdz6c[fez#yrhAl@ El/zRlTlmm!dnmom#dpmqmrmymzmVm^ XmYmZm0m2m$d3m%d`g5m'd(d7mZB8m9m!m)d#m*d+d$m,d-d.d7c/d:d;d=d{g=m?d@d[dNj?m@m[m]mHh|gqzrzIh}g~gsztzuz8c^fvz%yvhfn_ jndAwnyn[n]d]n^n^d_n`n{ndoeoAoCoDoEoFoHo_dIo`dahKo{d|dMoACNoOoPo}dQo~daeRobecede9ceefegehebh4oiejekeOj5o6o7o8oMhchHzIzNhdhehJzKzLz!c

278 else: 

279 value, errors = await run_in_threadpool( 24cIjJjKjLjQjL RjTj+ +y(oJCUjWj8j9jzh!j#jt u 5 v (j)jyAU ekfkgkhkikjkkklkmknkokpkqk7z8zrksktkukvkwkxkyk9z!zzkAkBkCk#z$zDkEkFkGkNkOkPkQkRkSk( , R e F V h k l VkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@kplqlXcYcW M %z'z(z)zsl`A*z+z,ztl-z.zG vlN wlyl- -y,o,CzlBlNlOlEhPlQlw x 8 y UlVl~AX -l.l/l:l;l=l?l@l[l]l^l_l`l=z?z{l|l}l~lambmcmdm@z[zemfmgmhm]z^zimjmkmlmsmtmumvmwmxm) . S f H Y i m n AmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm6m_m`mZc0cZ O _z`z{z|z|m7B}z~zaA}mbAcAI anP bndn/ /y:osDengnsntnJhunvnz A # B znAn#B0 Zn0n1n2n3n4n5n6n7n8n9n!n#ngAhA$n%n'n(n)n*n+n,niAjA-n.n/n:nkAlA;n=n?n@n|n}n~naoboco* : T g J 1 j o p fogohoiojokolomonooopoqorosotouovowoxoyozoLo!o#o1c2c3 Q mAnAoApA%oICqArAsA'otAuAK

280 field.validate, response_content, {}, loc=("response",) 

281 ) 

282 if errors: 23cEjFjGjHj4cIjJjKjLj?f;y9ynhQjL RjTj+ +y(oJCUjVj; WjZj4z8j9jzh!j#j$jt u 5 v 'j(j)jyAU ekfkgkhkikjkkklkmknkokpkqk7z8zrksktkukvkwkxkyk9z!zzkAkBkCk#z$zDkEkFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSk( , R e F V h k l TkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k+k,k-k.k:kTd;kUd@g?k@kVdWd[k;A]k^k_kXd`kYdZd{k0d1d2d5c3d4d5d6d[gjl7d8d9dMjklllmlnlCh]g~yazDh^g_gbzczdzplqlXcYc6cW M %z'z(z)zsl`A*z+z,ztl-z.zG [fez#yrhvlN wlyl- -y,o,CzlAl@ BlEl/zNlOlEhPlQlRlw x 8 y TlUlVl~AX -l.l/l:l;l=l?l@l[l]l^l_l`l=z?z{l|l}l~lambmcmdm@z[zemfmgmhm]z^zimjmkmlmmm!dnmom#dpmqmrmsmtmumvmwmxm) . S f H Y i m n ymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVm^ XmYmZm0m2m$d3m%d`g5m6m'd(d7mZB8m9m!m)d#m*d+d$m,d-d.d7c/d:d;d=d{g=m?d@d[dNj?m@m[m]mHh|gqzrzIh}g~gsztzuz_m`mZc0c8cZ O _z`z{z|z|m7B}z~zaA}mbAcAI ^fvz%yvhanP bndn/ /y:osDenfn_ gnjndAsntnJhunvnwnz A # B ynznAn#B0 Zn0n1n2n3n4n5n6n7n8n9n!n#ngAhA$n%n'n(n)n*n+n,niAjA-n.n/n:nkAlA;n=n?n@n[n]d]n^n^d_n`n{n|n}n~naoboco* : T g J 1 j o p doeofogohoiojokolomonooopoqorosotouovowoxoyozoAoCoDoEoFoHo_dIo`dahKoLo{d|dMoACNoOoPo}dQo~daeRobecede9ceefegehebh4oiejekeOj5o6o7o8oMhchHzIzNhdhehJzKzLz!o#o1c2c!c3 Q mAnAoApA%oICqArAsA'otAuAK

283 ctx = endpoint_ctx or EndpointContext() 24z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAgAhAiAjAkAlAmAnAoApAqArAsAtAuA

284 raise ResponseValidationError( 24z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAgAhAiAjAkAlAmAnAoApAqArAsAtAuA

285 errors=errors, 

286 body=response_content, 

287 endpoint_ctx=ctx, 

288 ) 

289 

290 return field.serialize( 23cEjFjGjHj4cIjJjKjLj?f;y9ynhQjL RjTj+ +y(oJCUjVj; WjZj8j9jzh!j#j$jt u 5 v 'j(j)jyAU ekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSk( , R e F V h k l TkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k+k,k-k.k:kTd;kUd@g?k@kVdWd[k;A]k^k_kXd`kYdZd{k0d1d2d5c3d4d5d6d[gjl7d8d9dMjklllmlnlCh]g~yazDh^g_gbzczdzplqlXcYc6cW M sl`AtlG [fez#yrhvlN wlyl- -y,o,CzlAl@ BlElNlOlEhPlQlRlw x 8 y TlUlVl~AX -l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmm!dnmom#dpmqmrmsmtmumvmwmxm) . S f H Y i m n ymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVm^ XmYmZm0m2m$d3m%d`g5m6m'd(d7mZB8m9m!m)d#m*d+d$m,d-d.d7c/d:d;d=d{g=m?d@d[dNj?m@m[m]mHh|gqzrzIh}g~gsztzuz_m`mZc0c8cZ O |m7B}mI ^fvz%yvhanP bndn/ /y:osDenfn_ gnjnsntnJhunvnwnz A # B ynznAn#B0 Zn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]d]n^n^d_n`n{n|n}n~naoboco* : T g J 1 j o p doeofogohoiojokolomonooopoqorosotouovowoxoyozoAoCoDoEoFoHo_dIo`dahKoLo{d|dMoACNoOoPo}dQo~daeRobecede9ceefegehebh4oiejekeOj5o6o7o8oMhchHzIzNhdhehJzKzLz!o#o1c2c!c3 Q %oIC'oK

291 value, 

292 include=include, 

293 exclude=exclude, 

294 by_alias=by_alias, 

295 exclude_unset=exclude_unset, 

296 exclude_defaults=exclude_defaults, 

297 exclude_none=exclude_none, 

298 ) 

299 

300 else: 

301 return jsonable_encoder(response_content) 2uqvqwqxq@one[o]o^o_ooe`o{o|o}oyeOhyqzqAqBqCq7bPjpbq ~oDq=y4 SjEqFq| `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqSq[D]DepBe} = @y!yTq@f^DCeUqVqDeXjYj0j1j2j3j4jvAwA5j6j7jWqEeXqYqZqfpgp0q_D1q`D2q3q{D|D? ~ peFe4q5qGe6q7qC 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE_q`qwE{qxEyE|qzEAE}qBECEDEEE~qarFEbrGEabbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbF*o+oubvbwbxbybzbCrDrErFrGrHrIrJrKrcbLrMr6 NrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;r=r?r@r[r]r^r_r`rAbHe{r|rIe*kJeKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0eBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2eCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4etpGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUsVsWsXsYsZs0s1s2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s[sHp6e7e8e9e!e+F,Fol-F]g^g_g]s^s#e$e_s`s{s|sXcYc}s~s.F/F:F$ ;F=Fat?F@Fbt[F]Fctdtfi%e'e(e_Arl)egietftgthtIp*ehiitjtktltmt8bulqbr Jpntfz7 xlotptdbxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtCthGiGOp-eeb[ hz$yDt]fjG.eEtFt/eClDlFlGlHlIlJl{A|AKlLlMlGt:eHtItJtPpQpKtkGLtlGMtNtmGnG] fbse;eOtPt=eQtRtD StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLG(t)tMG*tNGOG+tPGQG,tRGSGTGUG-t.tVG/tWGgbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH.o/oGbHbIbJbKbLbmunuoupuqurusutuuuibvuwu9 xuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8u9u!u#u$u%u'u(u)uMb?e*u+u@eWm[e]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfifNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkfmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf3pqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEvFvGvHvIvJvKvLvMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v$v*pofpfqfrfsf|H}H^m~H|g}g~g%v'vtfuf(v)v*v+vZc0c,v-vaIbIcI% dIeI.vfIgI/vhIiI:v;v9ivfwfxf6B{myf!i=v?v@v[v+pzf#i]v^v_v`v{v9b~mrbs ,p|vwz! cn}v~vjbZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwmwxIyI;pCfkb` yz'ynw_fzIDfowpwEfhninknlnmnnnon8B9BpnqnrnqwFfrwswtw=p?puwAIvwBIwwxwCIDI{ lbveGfywzwHfAwBwE Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IZw0w2I1w3I4I2w5I6I3w7I8I9I!I4w5w#I6w$ImbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJ=o?oSb4bTbUbVbWb{w|w}w~waxbxcxdxexobfxgx2 hxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxTxUxVxWxXxYxZx0xXbIf1x2xJfBoKfLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3f{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5fcqaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoypyqyrysytyuyvywygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyWyqq7f8f9f!f#fnKoK9opKchdhehXyYy$f%fZy0y1y2y1c2c3y4yqKrKsK' tKuK5yvKwK6yxKyK7y8yCj'f(f)fHC$o*fDj

302 

303 

304async def run_endpoint_function( 1abdc

305 *, dependant: Dependant, values: dict[str, Any], is_coroutine: bool 

306) -> Any: 

307 # Only called by get_request_handler. Has been split into its own function to 

308 # facilitate profiling endpoints, since inner functions are harder to profile. 

309 assert dependant.call is not None, "dependant.call must be a function" 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@f^DUNVNGSCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsJSisjsDFKSkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSeiLFSSJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol*P+P-FCh-P.P]g~yazDh:P;P^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]fjG%N'N0S.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u3S]u^uTH4S_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#S8i1H$Stv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m`P{P~HHh}P~P|gqzrzIhbQcQ}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_fzI`N{N-SDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x:S%x'x9J;S(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SBj*J`Sdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9okQlQpKMhnQoQchHzIzNhqQrQdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

310 

311 if is_coroutine: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@f^DUNVNGSCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsJSisjsDFKSkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSeiLFSSJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol*P+P-FCh-P.P]g~yazDh:P;P^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]fjG%N'N0S.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u3S]u^uTH4S_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#S8i1H$Stv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m`P{P~HHh}P~P|gqzrzIhbQcQ}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_fzI`N{N-SDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x:S%x'x9J;S(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SBj*J`Sdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9okQlQpKMhnQoQchHzIzNhqQrQdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

312 return await dependant.call(**values) 2uqvqwqxq@one3cEj[oFj]oGj^oHj_oOhzqAqBqCq?f;y9ynh7bPjpbq FqapbpcpdpGqKNLNCSHqIqJqMNLqQNRNESNqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DVj; epZj4z0j1jWqEeXqYqZqfpgp~ $j5q%jxA!qhpip#qjp'j~qarFEbrGEabbbsbtb)ofrgrhrShAhBhXhYh+jZh0h,j1h6h#h$h/j%h:j'h+h,hKELEjrMEkrQEREzABADAHAIA?j@jLAPAQA^j_jTAVAYA5z6z2A3A|j4A}j!A#Abk$Ack)A*AUE2D3DYEZEnr0Eor6E7Err8Esr$E%Ekp)E4D5D-E.Evr/Ewr[E]Ezr^EAr|E}E*o+oHkRdIkJkSdKkLkMkLrTkUknFoFpF9r!r#r$r%r'ruF*rvFwF+rxF@rHS[rISWNXN)k{r|r+kqN,krN-ksN.ktN,yKe}rlp/kCFasbshsJSisjsDFKSkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C7CAsBs2e?kVdppqprpEFspIFJFohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSeiLFSSJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^A6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol*P+P-FCh-P.P]g~yazDh:P;P^g_gbzczdz_s`s{s|s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]F)C*C+C'e(eetftgthtIphijtktltmt[fez#yrh8bulqbr ptKpLpMpNpqt3N4NWSrtsttt5Nvt9N!NYSxt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAl@ OpEl/zFlGlGt:eHtItJtPpQpfbRlPtSl}AUtRpSpVtTpTl-t.tVG/tWGgbhbEbFb-o?t@t[tliFhGhqiriXlsitiYluiziEiFi1lGi2lHiLiMi0G1G^t2G_t6G7GaBcBeBiBjB5l6lmBqBrB9l!luBwBzB:z;zDBEB%lFB'lLBMB*lNB+lRBSB!G6D7D'G(G|t)G}t/G:Gbu;Gcu[G]GUp`G8D9D~GaHfubHguhHiHjujHkunHoH.o/omm!dnmom#dpmqmrmvuymzmDHEHFHTuUuVuWuXuYuKH1uLHMH2uNH#u1S$u2S(N)NVm^ *u+uXmwNYmxNZmyN0mzN.y]e,uVp1mSH.u/u[u3S]u^uTH4S_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`g~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDgDkvlvkf5m'dZp0p1pUH2pYHZHshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#S8i1H$Stv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m`P{P~HHh}P~P|gqzrzIhbQcQ}g~gsztzuz(v)v*v+v#baI8cbIcI% dIeI.vfIgI/vhIiIpDqDrDwfxf=v?v@v[v+p#i^v_v`v{v^fvz%yvh9b~mrbs ~v-p.p/p:paw/N:N)Sbwcwdw;Nfw[N]N+ShwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIfn_ ;pjndAknlnqwFfrwswtw=p?plbwnzwxn!BEw@p[pFw]pyn4w5w#I6w$ImbnbQbRb;o!w#w$w(iKhLh-i.iCn/i:iDn;i]i|i}iGn~iHnajejfj)I*I'w+I(w/I:I$B'B)B-B.BKnLn;B[B]BOnPn`B|BaCeAfAeCfCSngCTnmCnCWnoCXnsCtC?I!D#D^I_I+w`I,wbJcJ/wdJ:whJiJ^plJ$D%DpJqJ?wrJ@wxJyJ^wzJ_wDJEJ=o?o[n]d]n^n^d_n`n{nfxdoeoTJUJVJDxExFxGxHxIx0JLx1J2JMx3JVx.SWx/S|N}NAo1x2xCoCNDoDNEoENFoFN:yLf3x_pGo8J5x6x$x:S%x'x9J;S(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dah-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODQD_x`x3fKo{d}p~paq!Jbq'J(Jwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SBj*J`Sdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjykymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGChebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9okQlQpKMhnQoQchHzIzNhqQrQdhehJzKzLzZy0y1y2y$bqK!crKsK' tKuK5yvKwK6yxKyKZD0D1D(f)f

313 else: 

314 return await run_in_threadpool(dependant.call, **values) 2oe4cIj`oJj{oKj|oLj}oyeyq~oDqQj=y4 L RjSjEqTj| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCNNONDSKqMqPNSNTNFSOqPqQqRqSq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@f^DUNVNGSCeUqVqSCTCDeUCXjYj2j3j4jvAwA5j6j7j8j0q_D1q`D2q3q{D|D? 9jzh!j#jpeFe4qGe6q7qt C u 5 v 8qQh}D9q~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEEU crdrerRhAhBhThUhVh*jWh2h3h-j4h5h7h8h9h!h.j(h)h;j*h-hHEIEJEirNEOElrPESEAACAEAFAGA=jJAKA[jMANAOA]jRASA`jUAWAXA5z6zZA0A1A{j5A6A~j7A8A9Aak%A'Adk(A+ATE2D3DVEWEXEmr1E2Epr3E4E5Eqr9E!Etr#E'Ekp(E4D5D*E+E,Eur:E;Exr=E?E@Eyr_E`EBr{E~EaF.hbFekfkgkhkikjkkklkmkubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkNkOkPkQkRkSkKrcb( , R e F V h Mrk l 6 NrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,A(rqFrF-A)rsFtF.A,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k]r^r_r`rAbHeIe*kJe~rcsdsesfsgsBb6C@kCsCbFFYNLSYQGFZNZQHF0NMSNSDsDb3etp5eRsil#C?sqh$C%C@s]s^s#epl$eqlXcYc}s~sctdtW fi%eM _Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG *eitJpntvlfz7 N wlxlotyldb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.C6N7NXSutwt8N#N$NZSytztAtBtCthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]fjG%N'N0S.eEtFt[C]C/e^CClDlHlIlJl{A|AKlLlMlNlKtkGLtlGMtNtmGnG] OlEhPlQlse;eOt=eQtRtw D x 8 y StjioGTtpGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLG(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUGX :t;t=tkiFhGhminioiWlpiviwiZlxiyiAiBiCiDi0lIiJi3lKiNiXGYGZG]t3G4G`t5G8GbBdBfBgBhB4lkBlB7lnBoBpB8lsBtB#lvBxByB:z;zABBBCB$lGBHB(lIBJBKB)lOBPB,lQBTB9G6D7D#G$G%G{t*G+G~t,G-G.Gau=G?Gdu@G^GUp_G8D9D{G|G}GeucHdHhueHfHgHiukHlHlumHpHqHOirH-l.l/l:l;l=l?l@l[lGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmsmtmumvmwmxmuuib) . S f H Y i wum n 9 xuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBZuGHHHVB0uIHJHWB3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm%u'u(u)uMb?e@eWm[e-u:u;u=u?u@uNbfD6mmvObVH*N5SoRWH+NpRXH,N6S7SnvPblf3pnfBv;mkD!vuhlDmD#v%v'vtf_muf`mZc0c,v-v:v;vZ 9ivfO 6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI zf]v,p|vanwz! P bncn}vdnjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD=N?N*Sewgw@N^N_N,SiwjwkwlwmwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_fzI`N{N-SDfowpwBDCDEfDDhninmnnnon8B9BpnqnrnsnuwAIvwBIwwxwCIDI{ tnJhunvnveGfywHfAwBwz E A # B Cw%iEIDwFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I0 7w8w9w'iKhLh)i*i+iBn,i=i?iEn@i[i^i_i`i{iFnbjcjIndjgj%I'I(I%w,I-I)w.I;I%B(B*B+B,BJn/B:BMn=B?B@BNn^B_BQn{B}B~BeAfAbCcCdCRnhCiCUnjCkClCVnpCqCYnrCuC=I!D#D@I[I]I*w{I|I-w}I~IaJ.weJfJ;wgJjJ^pkJ$D%DmJnJoJ=wsJtJ[wuJvJwJ]wAJBJ`wCJFJGJhjHJZn0n1n2n3n4n5n6n7nSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n|n}n~naobocoexob* : T g J 1 j gxo p 2 hxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCJxWJXJwCKxYJZJxCNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoXxYxZx0xXbIfJfBoKf4x7x8x9x!x#xYbPDLo{xZb#J~N=S(R$JaO)R%JbO?S@S|x0b4fcq6fly3oUDUyyhVDWDVyXyYy$f!o%f#o1c2c3y4y7y8y3 Cj'fQ HC$o*fDjmAnAoApA%oICqArAsA'otAuAK

315 

316 

317def get_request_handler( 1abdc

318 dependant: Dependant, 

319 body_field: ModelField | None = None, 

320 status_code: int | None = None, 

321 response_class: type[Response] | DefaultPlaceholder = Default(JSONResponse), 

322 response_field: ModelField | None = None, 

323 response_model_include: IncEx | None = None, 

324 response_model_exclude: IncEx | None = None, 

325 response_model_by_alias: bool = True, 

326 response_model_exclude_unset: bool = False, 

327 response_model_exclude_defaults: bool = False, 

328 response_model_exclude_none: bool = False, 

329 dependency_overrides_provider: Any | None = None, 

330 embed_body_fields: bool = False, 

331) -> Callable[[Request], Coroutine[Any, Any, Response]]: 

332 assert dependant.call is not None, "dependant.call must be a function" 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

333 is_coroutine = dependant.is_coroutine_callable 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

334 is_body_form = body_field and isinstance(body_field.field_info, params.Form) 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

335 if isinstance(response_class, DefaultPlaceholder): 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

336 actual_response_class: type[Response] = response_class.value 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b' 3 Q K

337 else: 

338 actual_response_class = response_class 2a !bb #bd c $b

339 

340 async def app(request: Request) -> Response: 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

341 response: Response | None = None 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

342 file_stack = request.scope.get("fastapi_middleware_astack") 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

343 assert isinstance(file_stack, AsyncExitStack), ( 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

344 "fastapi_middleware_astack not found in request scope" 

345 ) 

346 

347 # Extract endpoint context for error messages 

348 endpoint_ctx = ( 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

349 _extract_endpoint_context(dependant.call) 

350 if dependant.call 

351 else EndpointContext() 

352 ) 

353 

354 if dependant.path: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

355 # For mounted sub-apps, include the mount path prefix 

356 mount_path = request.scope.get("root_path", "").rstrip("/") 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

357 endpoint_ctx["path"] = f"{request.method} {mount_path}{dependant.path}" 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

358 

359 # Read body and auto-close files 

360 try: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

361 body: Any = None 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

362 if body_field: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

363 if is_body_form: 2ne3coe4cyeMzOh?f;y9ynh4 L zKSj| zePhNzAe?yBeCeDeXjYj0j1j2j3j4jvAwA5jtQuQ6j7jEezh~ peBKCKFeDKGet C u v %jxAU abbb5bEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJMMKKM.hRdSd6 ,ALQLMMQ-ANQMMOQNM.APQQQHeNKIeRQ*kOKJe,yKeLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5d0Q=AOM?A|k@A}k[A~kalbl1Q]APMcldlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qqh6d[g7d8d9d6e7e8e9e!eol*P+PCh-P.P]g~yazDh:P;P^g_gbzczdz#e$eXcYc6cW fi%eM 'e(e+Q,Q_Arl)egiG *eSzhi[fez#yrh7 N ?Kxldb+eiiTz,egz-e.e/eClDlFlGlHlIlJl{A|AKl-Q.QLlMl:eEhfbse[K]K;e^K=ew D x y Sl}AX gbhb6b_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'McL(MOi!d#d9 UBbR)McRVBdR*MeR+MWBfRgR?edL@ehRWmeL[e.y]e^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;dqR0B,M1B%m2B'm3B(m)m*mrR4B-M+m,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHRuh=d{g?d@d[dofpfqfrfsf^m`P{PHh}P~P|gqzrzIhbQcQ}g~gsztzuztfufZc0c8cZ 9ivfO wfxfIRJR6B{myf!iI zfYz#i^fvz%yvh! P QLcnjbAf$iZzBfxzCfDfEfhninknlnmnnnon8B9BpnKRLRqnrnFfJhlbveSLTLGfULHfz E A B xn!B0 mbnb)bVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiN3LjNhj]d^d2 vC2RkN3RwC4RlN5RmNxC6R7RIf4LJf8RBo5LKf:yLfMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefege*RBCnNCCSoDCToECUoVoWo+RFCoNXoYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|Ryhhebhiejeke7f8f9f!f#f9okQlQMhnQoQchHzIzNhqQrQdhehJzKzLz$f%f1c2c!c3 Cj'fQ (f)f}R~RHC$o*fDjK

364 body = await request.form() 2zKSj| XjYj0j1j2j3j4jvAwA5jtQuQ6j7jzh~ %jxAabbb5bzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM,ALQLMMQ-ANQMMOQNM.APQQQRQ*k0Q=AOM?A|k@A}k[A~kalbl1Q]APMcldlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qol*P+PCh-P.P]g~yazDh:P;P^g_gbzczdz+Q,Q_Arl?KxldbClDlFlGlHlIlJl{A|AKl-Q.QLlMlEhfbSl}Agbhb6baB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'MUBbR)McRVBdR*MeR+MWBfRgRhRWmqR0B,M1B%m2B'm3B(m)m*mrR4B-M+m,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR^m`P{PHh}P~P|gqzrzIhbQcQ}g~gsztzuzIRJR6B{mQLcnjbhninknlnmnnnon8B9BpnKRLRqnrnJhlbxn!Bmbnb)b$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvC2RkN3RwC4RlN5RmNxC6R7R8RBo*RBCnNCCSoDCToECUoVoWo+RFCoNXoYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R9okQlQMhnQoQchHzIzNhqQrQdhehJzKzLz}R~RHC$o

365 file_stack.push_async_callback(body.close) 2Sj| XjYj0j1j2j3j4jvAwA5jtQuQ6j7jzh~ %jxAabbb5bzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM,ALQLMMQ-ANQMMOQNM.APQQQRQ*k0Q=AOM?A|k@A}k[A~kalbl1Q]APMcldlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qol*P+PCh-P.P]g~yazDh:P;P^g_gbzczdz+Q,Q_ArlxldbClDlFlGlHlIlJl{A|AKl-Q.QLlMlEhfbSl}Agbhb6baB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'MUBbR)McRVBdR*MeR+MWBfRgRhRWmqR0B,M1B%m2B'm3B(m)m*mrR4B-M+m,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR^m`P{PHh}P~P|gqzrzIhbQcQ}g~gsztzuzIRJR6B{mcnjbhninknlnmnnnon8B9BpnKRLRqnrnJhlbxn!Bmbnb)b$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvC2RkN3RwC4RlN5RmNxC6R7R8RBo*RBCnNCCSoDCToECUoVoWo+RFCoNXoYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R9okQlQMhnQoQchHzIzNhqQrQdhehJzKzLz}R~RHC$o

366 else: 

367 body_bytes = await request.body() 2ne3coe4cyeMzOh?f;y9ynh4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yMKKM.hRdSd6 HeNKIeOKJe,yKeLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[fez#yrh7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzcL(MOi!d#d9 ?edL@eeL[e.y]e^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^fvz%yvh! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz3LjNhj]d^d2 If4LJf5LKf:yLfMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

368 if body_bytes: 2ne3coe4cyeMzOh?f;y9ynh4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yMKKM.hRdSd6 HeNKIeOKJe,yKeLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[fez#yrh7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzcL(MOi!d#d9 ?edL@eeL[e.y]e^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^fvz%yvh! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz3LjNhj]d^d2 If4LJf5LKf:yLfMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

369 json_body: Any = Undefined 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:hos2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi}u3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj,x4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

370 content_type_value = request.headers.get("content-type") 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:hos2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi}u3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj,x4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

371 if not content_type_value: 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:hos2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi}u3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj,x4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

372 json_body = await request.json() 2os}u,x

373 else: 

374 message = email.message.Message() 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:h2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

375 message["content-type"] = content_type_value 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:h2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

376 if message.get_content_maintype() == "application": 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:h2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

377 subtype = message.get_content_subtype() 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:h2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

378 if subtype == "json" or subtype.endswith("+json"): 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:h2P5PgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi3P6PiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj4P7PkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

379 json_body = await request.json() 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:h2P5PPKQKRK;h=h?hSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi3P6PfLgLhLRiSiTiiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj4P7P6L7L8Lkjljmj9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

380 if json_body != Undefined: 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:hosgMPKQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi}uiMfLgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj,xkM6L7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

381 body = json_body 2ne3coe4cyeMzOh?f4 L zePhNzAe?yBeCeDeEepeBKCKFeDKGet C u v U EKFKRh[yShGK]yAh^yHKBh_yThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)hIKJK*h`y+hKK{y,h|yLK-h}yMK.hRdSd6 HeNKIeOKJe,yKeLe/h:hosPKQKRK;h=h?hSKqe@hMe[hTKNe]hUKVKOe^hPeQeWKXKYKZK0K_h1KReSe2K3K`hTe4K5K{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/KTdUd@gre1e:K;K2eVd3e=K4eWdXdYdZd0d1deiRz5e2d5c3d4d5dqh6d[g7d8d9d6e7e8e9e!e#e$eXcYc6cW fi%eM 'e(e)egiG *eSzhi[f7 N +eiiTz,egz-e.e/e:ese[K]K;e^K=ew D x y X _K`Kkiizli{KjzFhkz|KGhlzminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi}K~KKimzLiaLnzMiozbLNipzcLOi!d#d9 ?edL@eeL[e.y]e^ePiQi}ufLgLhLRiSiTiiLteUi_eVijL`eWikLlL{eXi|e}emLnLoLpLqLYirL~eafsLtLZibfuLvL0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML$d%d`guejfNLOLkf'dlfPLmf(d)d*d+d,d-d8iXznf.d7c/d:d;duh=d{g?d@d[dofpfqfrfsftfufZc0c8cZ 9ivfO wfxfyf!iI zfYz#i^f! P Af$iZzBfxzCfDfEfFfveSLTLGfULHfz E A B 0 VLWL'izz(iXLAzKhBzYLLhCz)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjZL0LdjDzej1LEzfjFz2LgjGz3Lhj]d^d2 If4LJf5LKf:yLfMfijjj,x6L7L8Lkjljmj9LwenjNfoj!LOfpj#L$LPfqjQfRf%L'L(L)L*Lrj+LSfTf,L-LsjUf.L/LtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcM_d`dahxe2fdMeM3f{d4ffM5f|d}d~daebeceBj3z6fde9ceefegeyhhebhiejeke7f8f9f!f#f$f%f1c2c!c3 Cj'fQ (f)f*fDjK

382 else: 

383 body = body_bytes 2gMhMiMjMkMlM

384 except json.JSONDecodeError as e: 2zK2P5P?K3P6PQL4P7P

385 validation_error = RequestValidationError( 25P6P7P

386 [ 

387 { 

388 "type": "json_invalid", 

389 "loc": ("body", e.pos), 

390 "msg": "JSON decode error", 

391 "input": {}, 

392 "ctx": {"error": e.msg}, 

393 } 

394 ], 

395 body=e.doc, 

396 endpoint_ctx=endpoint_ctx, 

397 ) 

398 raise validation_error from e 25P6P7P

399 except HTTPException: 2zK2P?K3PQL4P

400 # If a middleware raises an HTTPException, it should be raised again 

401 raise 2zK?KQL

402 except Exception as e: 22P3P4P

403 http_error = HTTPException( 22P3P4P

404 status_code=400, detail="There was an error parsing the body" 

405 ) 

406 raise http_error from e 22P3P4P

407 

408 # Solve dependencies and run path operation function, auto-closing dependencies 

409 errors: list[Any] = [] 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hosgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}uiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,xkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

410 async_exit_stack = request.scope.get("fastapi_inner_astack") 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hosgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}uiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,xkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

411 assert isinstance(async_exit_stack, AsyncExitStack), ( 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hosgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}uiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,xkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

412 "fastapi_inner_astack not found in request scope" 

413 ) 

414 solved_result = await solve_dependencies( 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsesfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hosgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;u=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}uiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8x9x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,xkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

415 request=request, 

416 dependant=dependant, 

417 body=body, 

418 dependency_overrides_provider=dependency_overrides_provider, 

419 async_exit_stack=async_exit_stack, 

420 embed_body_fields=embed_body_fields, 

421 ) 

422 errors = solved_result.errors 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRqVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGSCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,ALQLMMQnFoFpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|rNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsJSis-T.Tjs/T:TDFKSOOks;Tls=Tms?Tns@TLe/h:hosgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprpPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbspQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol*P+P-FCh-P.P]g~yazDh:P;P^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBtAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBbR)McRDHEHFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+udL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u3S]ukVlV^umVnVTH4S}O_uoV`upV{uqV|urV^ePiQi}uiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2paPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m`P{P~HHh}P~P|gqzrzIhbQcQ}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlwfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvC2RkN3RTJUJVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2x4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x:S%xLWMW'xNWOW9J;STP(xPW)xQW*xRW+xSWMfijjj,xkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9okQlQpKMhnQoQchHzIzNhqQrQdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

423 if not errors: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRqVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGSCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,ALQLMMQnFoFpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|rNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsJSis-T.Tjs/T:TDFKSOOks;Tls=Tms?Tns@TLe/h:hosgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprpPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbspQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol*P+P-FCh-P.P]g~yazDh:P;P^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBtAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBbR)McRDHEHFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+udL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u3S]ukVlV^umVnVTH4S}O_uoV`upV{uqV|urV^ePiQi}uiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2paPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m`P{P~HHh}P~P|gqzrzIhbQcQ}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlwfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvC2RkN3RTJUJVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2x4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x:S%xLWMW'xNWOW9J;STP(xPW)xQW*xRW+xSWMfijjj,xkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9okQlQpKMhnQoQchHzIzNhqQrQdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

424 raw_response = await run_endpoint_function( 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@f^DUNVNGSCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsJSisjsDFKSkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSeiLFSSJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol*P+P-FCh-P.P]g~yazDh:P;P^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]fjG%N'N0S.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u3S]u^uTH4S_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#S8i1H$Stv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m`P{P~HHh}P~P|gqzrzIhbQcQ}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_fzI`N{N-SDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x:S%x'x9J;S(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SBj*J`Sdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9okQlQpKMhnQoQchHzIzNhqQrQdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

425 dependant=dependant, 

426 values=solved_result.values, 

427 is_coroutine=is_coroutine, 

428 ) 

429 if isinstance(raw_response, Response): 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCAK'DUjKCLCapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = MCNCOCPC@y!yQCRCTqWj@f^DCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG b etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C@K^Fzl-C.CKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ /C:C;C=Chz$y?C@CDtBl]fjG.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI c =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDRLjIentDuD-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` vDwDxDyDyz'yzDADnwgn_fzIDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

430 if raw_response.background is None: 2a AK'DKCLCMCNCOCPCQCRCSCTCUC1bVCWCqNrNsNtN,y/kXCYCZC0C1C2C3C=k4C5C6C7C8C9C!C#Cqh$C%C'CuN(CvN)C*C+Cb @K^F-C.C/C:C;C=C?C@C[C]C^C2b_C`CwNxNyNzN.y1m{C|C}C~CaDbDcD4mdDeDfDgDhDiDjDkDuhlDmDnDANoDBNpDqDrDc RLjItDuDvDwDxDyDzDADBDCDDD3bEDFDCNDNENFN:yGoGDHDIDJDKDLDMDJoNDODPDQDRDSDTDUDyhVDWDXDGNYDHNZD0D1D

431 raw_response.background = solved_result.background_tasks 2a AK'DKCLCMCNCOCPCQCRCSCTCUC1bVCWCqNrNsNtN,y/kXCYCZC0C1C2C3C=k4C5C6C7C8C9C!C#Cqh$C%C'CuN(CvN)C*C+Cb @K^F-C.C/C:C;C=C?C@C[C]C^C2b_C`CwNxNyNzN.y1m{C|C}C~CaDbDcD4mdDeDfDgDhDiDjDkDuhlDmDnDANoDBNpDqDrDc RLjItDuDvDwDxDyDzDADBDCDDD3bEDFDCNDNENFN:yGoGDHDIDJDKDLDMDJoNDODPDQDRDSDTDUDyhVDWDXDGNYDHNZD0D1D

432 response = raw_response 2a AK'DKCLCMCNCOCPCQCRCSCTCUC1bVCWCqNrNsNtN,y/kXCYCZC0C1C2C3C=k4C5C6C7C8C9C!C#Cqh$C%C'CuN(CvN)C*C+Cb @K^F-C.C/C:C;C=C?C@C[C]C^C2b_C`CwNxNyNzN.y1m{C|C}C~CaDbDcD4mdDeDfDgDhDiDjDkDuhlDmDnDANoDBNpDqDrDc RLjItDuDvDwDxDyDzDADBDCDDD3bEDFDCNDNENFN:yGoGDHDIDJDKDLDMDJoNDODPDQDRDSDTDUDyhVDWDXDGNYDHNZD0D1D

433 else: 

434 response_args: dict[str, Any] = { 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

435 "background": solved_result.background_tasks 

436 } 

437 # If status_code was set, use it, otherwise use the default from the 

438 # response class, in the case of redirect it's 307 

439 current_status_code = ( 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

440 status_code if status_code else solved_result.response.status_code 

441 ) 

442 if current_status_code is not None: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

443 response_args["status_code"] = current_status_code 2~o)o*o+ocbop5cilHpJp-o.o/oibYp7c;m*p,p;o=o?oob|p9c3oqq

444 if solved_result.response.status_code: 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

445 response_args["status_code"] = solved_result.response.status_code 2)o*oil-o.o;m;o=o3o

446 content = await serialize_response( 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj4z0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egi%z'z(z)zsl`A*z+z,ztl-z.zG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlEl/zFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i_z`z{z|z|m7B}z~zaA}mbAcAI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjndAknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDjmAnAoApA%oICqArAsA'otAuAK

447 field=response_field, 

448 response_content=raw_response, 

449 include=response_model_include, 

450 exclude=response_model_exclude, 

451 by_alias=response_model_by_alias, 

452 exclude_unset=response_model_exclude_unset, 

453 exclude_defaults=response_model_exclude_defaults, 

454 exclude_none=response_model_exclude_none, 

455 is_coroutine=is_coroutine, 

456 endpoint_ctx=endpoint_ctx, 

457 ) 

458 response = actual_response_class(content, **response_args) 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egisl`AtlG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i|m7B}mI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

459 if not is_body_allowed_for_status_code(response.status_code): 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egisl`AtlG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i|m7B}mI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

460 response.body = b"" 2+ocb/oib?oob

461 response.headers.raw.extend(solved_result.response.headers.raw) 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCUjapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = @y!yTqWj@f^DCeUqVqDeXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwbxbybzbnkokpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+k,k-k.kKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpsstsreus1evswsxs=kyszsopAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1dGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl]Acldlelflglhl^Ail?s@s6d[gjl7d8d9d[sMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]FctdtW fi%eM 'e(e_Arl)egisl`AtlG etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,CzlKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ hz$yDtBl]fjG.eEtFt/eClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIbJbKbLb]l^l_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmYmZm0m]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcvdvueevjffvgvhv4mivjvYpkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*m4B+m,m-m.m/m:m5B;m!v#v=d{g=m?d@d[d$vNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:v;vZ 9ivfO wfxf6B{myf!i|m7B}mI =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDen-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` yz'ynwgn_fzIDfowpwEfhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTbUbVbWb8n9n!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoDoEoFoLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:x;xxe=x2f?x@x[xJo]x^x|p_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoFCXoYoZo0o1o2oGC3oUyVyhebh4oiejekeWyOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7y8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

462 if errors: 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCAK'DUjKCLCapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRqVj; Sq[D]DepBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DhOCeUqVqSCTCDeUCXjYjZj0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,ALQLMMQnFoFpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsis-T.Tjs/T:TDFOOks;Tls=Tms?Tns@TLe/h:hosgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprpPOEFCbFFGFHFDsDbspQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsKFSOeiRzLFTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egisl`AtlWOG b etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C@K^Fzl-C.CKpLpMpNpqtrtstttutvtwtxtytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBtAl@ CthGiGOp-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG2O.eEtFt[C]C/e^CClDlElFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBbR)McRDHEHFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+udL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u]ukVlV^umVnVTH}O_uoV`upV{uqV|urV^ePiQi}uiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p~OUHObVHWHXHnvPb2paPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqvrvsv0HcP8iXz1HdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i|m7B}mgPI c =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDRLjIentDuD-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlwfn_ mwxIyI;pCfkb` vDwDxDyDyz'yzDADnwgn_flPzImPDfowpwBDCDEfDDhninjnknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvC2RkN3RTJUJVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2x4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x%xLWMW'xNWOW9JTP(xPW)xQW*xRW+xSWMfijjj,xkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqUP!JZb#J$J%J|x0bbqVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDaybycy)JXPBj3z*JYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDj%oIC'o1PK

463 validation_error = RequestValidationError( 2Mz?f9y7bPjNzcOdOeTfTgThTiTjTkTlTeOfOgOhOtQuQBKCKDKmTnToTiOpTjOqTrTkOsTtTuTvTwTxTyTlOzTATBTCTmODTnOETFTGTHTITJTKTLTMTNTOToOpOPTQTRTSTTTUTVTqOrOWT5b%bXTYTZTEKFK[yGK]y^yHK_ymMnMoMpMqMrMsMtMIKJK`yKK{y|yLK}y0T1TsO2TtOuO3TvOvQwQuMxQvMwMyQxMzQAQyMBQzMAMCQBMDQEQCMFQDMEMGQFMHQIQGMJQHMIMKQJM4T5TwO6TxOyO7TzO8T9TAO!TBOCO#TDO$T%TEO'TFOGO(THO)T*TIO+TJOKO,TLOMKKMMONOLQLMMQNQMMOQNMPQQQNKRQOK-T.T/T:TOO;T=T?T@TgMPKSQQKRKhMSKTKUKVKTQWKXKYKUQZK0K1KVQ2K3KWQ4K5KXQ6K7K8K9K!K#K$K%K'K(K)K*K+K,K-K.K/K[T8P]T:K;KPOQORO=KSORzTO^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUUOyUzUVOAUBUCUDUEU0QOM1QPM2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)QQM*Q+Q,QWOSz[f#y8bulTzXOYOFUGUHUIUJUKULUMUZO0O1O2O-Q.Q[K]K^KNUOUPU3OQU4ORUSU5OTUUUVUWUXUYUZU6O0U1U2U3U7O4U8O5U6U7U8U9U!U#U$U%U'U(U9O!O)U*U+U,U-U.U/U#O$O:U6b'b;U=U?U_K`Kiz{Kjzkz|KlzRMSMTMUMVMWMXMYM}K~KmzaLnzozbLpz@U[U%O]U'O(O^U)O/Q:QZM;Q0M1M=Q2M?Q@Q3M[Q4M5M]Q6M^Q_Q7M`Q8M9M{Q!M|Q}Q#M~Q$M%MaR'M_U`U*O{U+O,O|U-O}U~U.OaV/O:ObV;OcVdV=OeV?O@OfV[OgVhV]OiV^O_OjV`OcL(M{O|ObR)McRdR*MeR+MfRgRdLhReLkVlVmVnV}OoVpVqVrViMfLiRgLhLjMiLjLkLlLjRmLnLoLkRpLqLrLlRsLtLmRuLvLnRwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLsV9PtVNLOL~OaPbPPLcPXzdPuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVePZV0VfP1V2V3V4V5VqR,MrR-MsRtRuRvRwRxRyRzRARBRCRDRERFRGR.MHRIRJRgPYz^f%y9b~mZzhPiP6V7V8V9V!V#V$V%VjPkPlPmPKRLRSLTLUL'V(V)VnP*VoP+V,VpP-V.V/V:V;V=V?VqP@V[V]V^VrP_VsP`V{V|V}V~VaWbWcWdWeWfWtPuPgWhWiWjWkWlWmWvPwPnW)b(boWpWqWVLWLzzXLAzBzYLCz/M:M;M=M?M@M[M]MZL0LDz1LEzFz2LGzrWsWxPtWyPzPuWAPMRNR^MOR_M`MPR{MQRRR|MSR}M~MTRaNURVRbNWRcNdNXReNYRZRfN0RgNhN1RiNvWwWBPxWCPDPyWEPzWAWFPBWGPHPCWIPDWEWJPFWKPLPGWMPHWIWNPJWOPPPKWQP3LjNRPSP2RkN3R4RlN5RmN6R7R4L8R5LLWMWNWOWTPPWQWRWSWkM6L9R7L8LlM9L!L#L$L!R%L'L(L#R)L*L+L$R,L-L%R.L/L'R:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMTW!PUWdMeMUPVPWPfMXP3zYPVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=WZP?W@W0P[W]W^W_W`W*RnN+RoN,R-R.R/R:R;R=R?R@R[R]R^R_R`R{RpN|R}R~R1P

464 errors, body=body, endpoint_ctx=endpoint_ctx 

465 ) 

466 raise validation_error 2Mz?f9y7bPjNzcOdOeTfTgThTiTjTkTlTeOfOgOhOtQuQBKCKDKmTnToTiOpTjOqTrTkOsTtTuTvTwTxTyTlOzTATBTCTmODTnOETFTGTHTITJTKTLTMTNTOToOpOPTQTRTSTTTUTVTqOrOWT5b%bXTYTZTEKFK[yGK]y^yHK_ymMnMoMpMqMrMsMtMIKJK`yKK{y|yLK}y0T1TsO2TtOuO3TvOvQwQuMxQvMwMyQxMzQAQyMBQzMAMCQBMDQEQCMFQDMEMGQFMHQIQGMJQHMIMKQJM4T5TwO6TxOyO7TzO8T9TAO!TBOCO#TDO$T%TEO'TFOGO(THO)T*TIO+TJOKO,TLOMKKMMONOLQLMMQNQMMOQNMPQQQNKRQOK-T.T/T:TOO;T=T?T@TgMPKSQQKRKhMSKTKUKVKTQWKXKYKUQZK0K1KVQ2K3KWQ4K5KXQ6K7K8K9K!K#K$K%K'K(K)K*K+K,K-K.K/K[T8P]T:K;KPOQORO=KSORzTO^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUUOyUzUVOAUBUCUDUEU0QOM1QPM2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)QQM*Q+Q,QWOSz[f#y8bulTzXOYOFUGUHUIUJUKULUMUZO0O1O2O-Q.Q[K]K^KNUOUPU3OQU4ORUSU5OTUUUVUWUXUYUZU6O0U1U2U3U7O4U8O5U6U7U8U9U!U#U$U%U'U(U9O!O)U*U+U,U-U.U/U#O$O:U6b'b;U=U?U_K`Kiz{Kjzkz|KlzRMSMTMUMVMWMXMYM}K~KmzaLnzozbLpz@U[U%O]U'O(O^U)O/Q:QZM;Q0M1M=Q2M?Q@Q3M[Q4M5M]Q6M^Q_Q7M`Q8M9M{Q!M|Q}Q#M~Q$M%MaR'M_U`U*O{U+O,O|U-O}U~U.OaV/O:ObV;OcVdV=OeV?O@OfV[OgVhV]OiV^O_OjV`OcL(M{O|ObR)McRdR*MeR+MfRgRdLhReLkVlVmVnV}OoVpVqVrViMfLiRgLhLjMiLjLkLlLjRmLnLoLkRpLqLrLlRsLtLmRuLvLnRwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLsV9PtVNLOL~OaPbPPLcPXzdPuVvVwVxVyVzVAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVePZV0VfP1V2V3V4V5VqR,MrR-MsRtRuRvRwRxRyRzRARBRCRDRERFRGR.MHRIRJRgPYz^f%y9b~mZzhPiP6V7V8V9V!V#V$V%VjPkPlPmPKRLRSLTLUL'V(V)VnP*VoP+V,VpP-V.V/V:V;V=V?VqP@V[V]V^VrP_VsP`V{V|V}V~VaWbWcWdWeWfWtPuPgWhWiWjWkWlWmWvPwPnW)b(boWpWqWVLWLzzXLAzBzYLCz/M:M;M=M?M@M[M]MZL0LDz1LEzFz2LGzrWsWxPtWyPzPuWAPMRNR^MOR_M`MPR{MQRRR|MSR}M~MTRaNURVRbNWRcNdNXReNYRZRfN0RgNhN1RiNvWwWBPxWCPDPyWEPzWAWFPBWGPHPCWIPDWEWJPFWKPLPGWMPHWIWNPJWOPPPKWQP3LjNRPSP2RkN3R4RlN5RmN6R7R4L8R5LLWMWNWOWTPPWQWRWSWkM6L9R7L8LlM9L!L#L$L!R%L'L(L#R)L*L+L$R,L-L%R.L/L'R:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMTW!PUWdMeMUPVPWPfMXP3zYPVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=WZP?W@W0P[W]W^W_W`W*RnN+RoN,R-R.R/R:R;R=R?R@R[R]R^R_R`R{RpN|R}R~R1P

467 

468 # Return response 

469 assert response 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCAK'DUjKCLCapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = MCNCOCPC@y!yQCRCTqWj@f^DCeUqVqSCTCDeUCXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egisl`AtlG b etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C@K^Fzl-C.CKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ /C:C;C=Chz$y?C@CDtBl]fjG.eEtFt[C]C/e^CClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i|m7B}mI c =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDRLjIentDuD-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` vDwDxDyDyz'yzDADnwgn_fzIDfowpwBDCDEfDDhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

470 return response 2a uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCAK'DUjKCLCapbpcpdpGqHqIqJqKqLqMqNqOqPqzePhAe(D)D*D+D,D-D.D/D:D;D=D?D@DQqRqVj; Sq[D]DepBe} = MCNCOCPC@y!yQCRCTqWj@f^DCeUqVqSCTCDeUCXjYjZj0j1j2j3j4jvAwA5j6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peFe4q$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEbEcEdEeEfEgE$qhE%qiE'qjE(q)q*q+qkElEmE,qnEoE-qpEqErE.qsE/q:q;q=q?q@qtEuE[q]q^qvE'j_q`qwE{qxEyE(j)jyA|qzEAE}qBECEDEEE~qarFEbrGEU abbbsbtbcrdrer)ofrgrhrRhShAhBhThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4h5h6h7h8h9h!h.j#h$h/j%h:j'h(h)h;j*h+h,h-hHEIEJEirKELEjrMEkrNEOElrPEQERESEzAAABACADAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAUAVAWAXAYA5z6zZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'Adk(A)A*A+ATEUE2D3DVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr#E$E%E'Ekp(E)E4D5D*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr{E|E}E~EaF.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqkrksktkukCrDrvkwkxkykzkAkBkCkDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLr( , R e F V h Mrk l Tk6 UkNrOrPrcFQrRrSrdFTrUrVreFWrfFXrYrgFZrhF0r1r2r3r4riFjF5r6r7rkFlF8rmF,AnFoFpF9r!r#r$r%r'r(rqFrF-A)rsFtF.AuF*rvFwF+rxF,ryF-rzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@r[r]r^r_r`r)kAbHe{r|rIe*kJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~rasbscsdsesfsgshsisjsDFkslsmsnsLe/h:hos;h=h?hqe@hMe[hNe]hOe^hPe/A:AQe_hReSe`hTe{hUe|hVe}hWe~hXeaiYebiZe0e:kTd;kUd@gBbpsqsrsciOzPzdiQzmpnpssXCYCZCts0C1C2Creus1evswsxs3C=kys4Czsop5C6C7CAsBs2e?k@kVdCsppqprpEFCbFFGFHFDsDbspIFJF3eohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsHsIsKFeiLFJsMFNFKsOFLsPFQFupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXs5cYsZs3d0s1s4d5d2sxp3s4s5s6sRF7sSFTFypzpApBpCp8sUFVF9sWFDpEpFpGp!s#s$sXFYF%sZF0F's1F(s2F)s3F4F5F*s6F+s7F8F,s9F!F-s#F.s$F/s%F:s'F;s(F)F*F=s=A?A|k@A}k[A~kalbl9C]Acl!Cdlelflglhl^Ail#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e+F,Fol-FCh]g~yazDh^g_gbzczdz]s^s#epl$eql_s`s{s|sXcYc}s~s.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e_Arl)egisl`AtlG b etftgthtIp*ehiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wlxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C@K^Fzl-C.CKpLpMpNpqtrtstttutvtwtxtytzt+eii,e_F`F{F|F}F~FaGbGcGdGeGfGgGAtBtAl@ CthGiGOp-eeb[ /C:C;C=Chz$y?C@CDtBl]fjG.eEtFt[C]C/e^CClDlElFlGlHlIlJl{A|AKlLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse;eOtRlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGrGsGtGuGvGwGWtxGXtyGYtzGZt0t1t2tAGBGCG3tDGEG4tFGGGHG5tIG6t7t8t9t!t#tJGKG$t%t'tLGTl(t)tMG*tNGOGUlVl~A+tPGQG,tRGSGTGUG-t.tVG/tWGX gbhbEbFb:t;t=t-o?t@t[tkiliFhGhminioiWlpiqiriXlsitiYluiviwiZlxiyiziAiBiCiDi0lEiFi1lGi2lHiIiJi3lKiLiMiNiXGYGZG]t0G1G^t2G_t3G4G`t5G6G7G8GaBbBcBdBeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luBvBwBxByBzB:z;zABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,lQBRBSBTB9G!G6D7D#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu@G[G]G^GUp_G`G8D9D{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlumHnHoHpHqHOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l{l|l}l~lmunuambmcmdmemfmgmhmimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvu) . S f H Y i wum n ym9 zmxuyuzusHAuBuCutHDuEuFuuHGuvHHuIuwHJuxHKuLuMuNuOuyHzHPuQuRuAHBHSuCHUBDHEHFHTuUuVuWuXuYuZuGHHHVB0uIHJHWBKH1uLHMH2uNH3uOH4uPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u$u%u'u(u)uVm^ Mb?e*u+u@eWm[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-u.u/u:u;u=u?u@u[u]u^uTH_u`u{u|u^ePiQi}uRiSiTiteUi_eVi`eWi{eXi|eXBYB}eYi~eafZibf0icf1idf2ief3iff4igf5ihfif2m$d3m%d`gNb~uavbv6iUzVz7iWzWpXpcv{C|C}Cdv~CaDbDueevjffvgvhvcD4mivdDjvYpeDfDgDkvlvkf5m6m'dmvZp0p1pUHObVHWHXHnvPb2pYHZHlfshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqvrvsv0H8i1Htv2H3Huv4Hvv5H6H4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv7cIvJv/dKvLv:d;dMv7pNvOvPvQv7HRv8H9H8p9p!p#p$pSv!H#HTv$H%p'p(p)pUvVvWv%H'HXv(H)HYv*HZv+H0v,H-H.H1v/H2v:H;H3v=H?H4v@H5v[H6v]H7v^H8v_H`H{H9v0B1B%m2B'm3B(m)m*miD4B+mjD,m-m.m/m:m5B;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf|H}H^m~HHh|gqzrzIh}g~gsztzuz%v'vtf_muf`m(v)v*v+vZc0c,v-vaI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxf6B{myf!i|m7B}mI c =v?v@v[v+pzf#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bncn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osDRLjIentDuD-p.p/p:pawbwcwdwewfwgwhwiwjwAf$iBfkIlImInIoIpIqIrIsItIuIvIwIkwlwfn_ mwxIyI;pCfkb` vDwDxDyDyz'yzDADnwgn_fzIDfowpwBDCDEfDDhninjnknlnmnnnon8B9BpnqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveGfywwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGIHIIIJIKILIMIGwNIHwOIIwPIJwKwLwMwQIRISINwTIUIOwVIWIXIPwYIQwRwSwTwUwVwZI0IWwXwYw1IynZw0w2I1w3I4IznAn#B2w5I6I3w7I8I9I!I4w5w#I6w$I0 mbnbQbRb7w8w9w;o!w#w$w'i(iKhLh)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i[i]i^i_i`i{iFn|i}iGn~iHnajbjcjIndjejfjgj%I'I(I%w)I*I'w+I(w,I-I)w.I/I:I;I$B%B'B(B)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`B{B|B}B~BaCeAfAbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnrCsCtCuC=I?I!D#D@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wgJhJiJjJ^pkJlJ$D%DmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wCJDJEJFJGJhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#n$n%n'n(n{w|w)n*n+n,n-n.n/n:n;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfx* : T g J 1 j gxo p do2 eohxixjxIJkxlxmxJJnxoxpxKJqxLJrxsxMJtxNJuxvxwxxxyxOJPJzxAxBxQJRJCxSJvCTJUJVJDxExFxGxHxIxJxWJXJwCKxYJZJxC0JLx1J2JMx3JNx4JOx5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVxWxXxYxZx0xAoXbIf1x2xJfBoKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4x5x6x7x8x9x!x#x$x%x'x9J(x)x*x+xMfijjj,xkjljmjwenjNfojOfpjPfqjQfyCzCRfrjSfTfsjUftjVfujWfvjXfwjYfxjZfyj0f1fHo_dIo`dahYb-x.x/xzj0z1zAj2z`p{p:xGDHDID;xJDKDLDxe=x2f?x@x[xMDJo]xND^x|pODPDQD_x`x3fKoLo{d{x}p~paq!JZb#J$J%J|x0bbq'J(J4fwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDaybycy)JBj*Jdy+J,Jey-Jfy.J/Jdqeqfqgyhyiyjyky6flymynyoydepyqyry9csytyeeuyvyfegewygqxyyyzyAy:JBy;J=JhqiqjqkqlqCy?J@JDy[JmqnqoqpqEyFyGy]J^JHy_J`JIy{JJy|JKy}J~JaKLybKMycKdKNyeKfKOygKPyhKQyiKRyjKSykKlKmKTyBCCCSoDCToECUoVoWoSDFCXoTDYoZo0o1o2oGC3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fnKoK9opKMhchHzIzNhdhehJzKzLzXyYy$f!o%f#oZy0y1y2y1c2c3y4yqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)fHC$o*fDj%oIC'oK

471 

472 return app 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

473 

474 

475def get_websocket_app( 1abdc

476 dependant: Dependant, 

477 dependency_overrides_provider: Any | None = None, 

478 embed_body_fields: bool = False, 

479) -> Callable[[WebSocket], Coroutine[Any, Any, Any]]: 

480 async def app(websocket: WebSocket) -> None: 2a IcOcLcb JcPcMcd c KcQcNc

481 endpoint_ctx = ( 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

482 _extract_endpoint_context(dependant.call) 

483 if dependant.call 

484 else EndpointContext() 

485 ) 

486 if dependant.path: 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

487 # For mounted sub-apps, include the mount path prefix 

488 mount_path = websocket.scope.get("root_path", "").rstrip("/") 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

489 endpoint_ctx["path"] = f"WS {mount_path}{dependant.path}" 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

490 async_exit_stack = websocket.scope.get("fastapi_inner_astack") 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

491 assert isinstance(async_exit_stack, AsyncExitStack), ( 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

492 "fastapi_inner_astack not found in request scope" 

493 ) 

494 solved_result = await solve_dependencies( 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

495 request=websocket, 

496 dependant=dependant, 

497 dependency_overrides_provider=dependency_overrides_provider, 

498 async_exit_stack=async_exit_stack, 

499 embed_body_fields=embed_body_fields, 

500 ) 

501 if solved_result.errors: 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(ZqS7Z8ZaS}S~SeXfXgXIcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)ZvS!Z#ZbSaTbTtXuXvXJcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*ZAS%Z'ZcScTdTIXJXKXKcNcLXMXNXOX:Z

502 raise WebSocketRequestValidationError( 2(Z}S~SLc)ZaTbTMc*ZcTdTNc

503 solved_result.errors, 

504 endpoint_ctx=endpoint_ctx, 

505 ) 

506 assert dependant.call is not None, "dependant.call must be a function" 2mS{W|W}W~WaXbXcXdXnSoS6ZpSqS7Z8ZaSeXfXgXIchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuSvS!Z#ZbStXuXvXJcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzSAS%Z'ZcSIXJXKXKcLXMXNXOX:Z

507 await dependant.call(**solved_result.values) 2mS{W|W}W~WaXbXcXdXnSoS6ZpSqS7Z8ZaSeXfXgXIchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuSvS!Z#ZbStXuXvXJcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzSAS%Z'ZcSIXJXKXKcLXMXNXOX:Z

508 

509 return app 2a IcOcLcb JcPcMcd c KcQcNc

510 

511 

512class APIWebSocketRoute(routing.WebSocketRoute): 1abdc

513 def __init__( 1abdc

514 self, 

515 path: str, 

516 endpoint: Callable[..., Any], 

517 *, 

518 name: str | None = None, 

519 dependencies: Sequence[params.Depends] | None = None, 

520 dependency_overrides_provider: Any | None = None, 

521 ) -> None: 

522 self.path = path 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

523 self.endpoint = endpoint 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

524 self.name = get_name(endpoint) if name is None else name 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

525 self.dependencies = list(dependencies or []) 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

526 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

527 self.dependant = get_dependant( 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

528 path=self.path_format, call=self.endpoint, scope="function" 

529 ) 

530 for depends in self.dependencies[::-1]: 2a IcOcLcb JcPcMcd c KcQcNc

531 self.dependant.dependencies.insert( 1abdc

532 0, 

533 get_parameterless_sub_dependant(depends=depends, path=self.path_format), 

534 ) 

535 self._flat_dependant = get_flat_dependant(self.dependant) 2a IcOcLcb JcPcMcd c KcQcNc

536 self._embed_body_fields = _should_embed_body_fields( 2a IcOcLcb JcPcMcd c KcQcNc

537 self._flat_dependant.body_params 

538 ) 

539 self.app = websocket_session( 2a IcOcLcb JcPcMcd c KcQcNc

540 get_websocket_app( 

541 dependant=self.dependant, 

542 dependency_overrides_provider=dependency_overrides_provider, 

543 embed_body_fields=self._embed_body_fields, 

544 ) 

545 ) 

546 

547 def matches(self, scope: Scope) -> tuple[Match, Scope]: 1abdc

548 match, child_scope = super().matches(scope) 2mS{W|W}W~WaXbXcXdXnSd0j0oSk06ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXs0iXjXkX,Zt0rSlXmXnXoXpXqXrXsXsSe0l0tSm09ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXu0xXyXzX.Zv0wSAXBXCXDXEXFXGXHXxSf0n0ySo0$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXw0MXNXOX:Zx0

549 if match != Match.NONE: 2mS{W|W}W~WaXbXcXdXnSd0j0oSk06ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXs0iXjXkX,Zt0rSlXmXnXoXpXqXrXsXsSe0l0tSm09ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXu0xXyXzX.Zv0wSAXBXCXDXEXFXGXHXxSf0n0ySo0$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXw0MXNXOX:Zx0

550 child_scope["route"] = self 2mS{W|W}W~WaXbXcXdXnSoS6ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXiXjXkX,ZrSlXmXnXoXpXqXrXsXsStS9ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXxXyXzX.ZwSAXBXCXDXEXFXGXHXxSyS$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXMXNXOX:Z

551 return match, child_scope 2mS{W|W}W~WaXbXcXdXnSd0j0oSk06ZpS(Z+ZqS7Z8ZaS}S~SeXfXgXIcOcLchXs0iXjXkX,Zt0rSlXmXnXoXpXqXrXsXsSe0l0tSm09ZuS)Z-ZvS!Z#ZbSaTbTtXuXvXJcPcMcwXu0xXyXzX.Zv0wSAXBXCXDXEXFXGXHXxSf0n0ySo0$ZzS*Z/ZAS%Z'ZcScTdTIXJXKXKcQcNcLXw0MXNXOX:Zx0

552 

553 

554class APIRoute(routing.Route): 1abdc

555 def __init__( 1abdc

556 self, 

557 path: str, 

558 endpoint: Callable[..., Any], 

559 *, 

560 response_model: Any = Default(None), 

561 status_code: int | None = None, 

562 tags: list[str | Enum] | None = None, 

563 dependencies: Sequence[params.Depends] | None = None, 

564 summary: str | None = None, 

565 description: str | None = None, 

566 response_description: str = "Successful Response", 

567 responses: dict[int | str, dict[str, Any]] | None = None, 

568 deprecated: bool | None = None, 

569 name: str | None = None, 

570 methods: set[str] | list[str] | None = None, 

571 operation_id: str | None = None, 

572 response_model_include: IncEx | None = None, 

573 response_model_exclude: IncEx | None = None, 

574 response_model_by_alias: bool = True, 

575 response_model_exclude_unset: bool = False, 

576 response_model_exclude_defaults: bool = False, 

577 response_model_exclude_none: bool = False, 

578 include_in_schema: bool = True, 

579 response_class: type[Response] | DefaultPlaceholder = Default(JSONResponse), 

580 dependency_overrides_provider: Any | None = None, 

581 callbacks: list[BaseRoute] | None = None, 

582 openapi_extra: dict[str, Any] | None = None, 

583 generate_unique_id_function: Callable[["APIRoute"], str] 

584 | DefaultPlaceholder = Default(generate_unique_id), 

585 ) -> None: 

586 self.path = path 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

587 self.endpoint = endpoint 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

588 if isinstance(response_model, DefaultPlaceholder): 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

589 return_annotation = get_typed_return_annotation(endpoint) 2a 7b(ypbq 4 L | ; } = rqnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c+f{c|cabpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ M G b 8b)yqbr 7 N db@ eb[ squc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% O I d c 9b*yrbs ! P jb_ kb` tqBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B Od:fPdQdmbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' Q K

590 if lenient_issubclass(return_annotation, Response): 2a 7b(ypbq 4 L | ; } = rqnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c+f{c|cabpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ M G b 8b)yqbr 7 N db@ eb[ squc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% O I d c 9b*yrbs ! P jb_ kb` tqBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B Od:fPdQdmbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' Q K

591 response_model = None 1abdc

592 else: 

593 response_model = return_annotation 2a 7b(ypbq 4 L | ; } = rqnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c+f{c|cabpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ M G b 8b)yqbr 7 N db@ eb[ squc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% O I d c 9b*yrbs ! P jb_ kb` tqBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B Od:fPdQdmbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' Q K

594 self.response_model = response_model 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

595 self.summary = summary 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

596 self.response_description = response_description 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

597 self.deprecated = deprecated 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

598 self.operation_id = operation_id 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

599 self.response_model_include = response_model_include 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

600 self.response_model_exclude = response_model_exclude 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

601 self.response_model_by_alias = response_model_by_alias 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

602 self.response_model_exclude_unset = response_model_exclude_unset 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

603 self.response_model_exclude_defaults = response_model_exclude_defaults 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

604 self.response_model_exclude_none = response_model_exclude_none 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

605 self.include_in_schema = include_in_schema 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

606 self.response_class = response_class 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

607 self.dependency_overrides_provider = dependency_overrides_provider 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

608 self.callbacks = callbacks 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

609 self.openapi_extra = openapi_extra 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

610 self.generate_unique_id_function = generate_unique_id_function 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

611 self.tags = tags or [] 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

612 self.responses = responses or {} 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

613 self.name = get_name(endpoint) if name is None else name 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

614 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

615 if methods is None: 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

616 methods = ["GET"] 1abdc

617 self.methods: set[str] = {method.upper() for method in methods} 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

618 if isinstance(generate_unique_id_function, DefaultPlaceholder): 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

619 current_generate_unique_id: Callable[[APIRoute], str] = ( 2a 7b(ypbq 4 L | + ; } = rq*b+b? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq,b-b] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq.b/b{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

620 generate_unique_id_function.value 

621 ) 

622 else: 

623 current_generate_unique_id = generate_unique_id_function 2a :bec;b=b?b*b+bncb @bfc[b]b^b,b-bucd c _bgc`b{b|b.b/bBc

624 self.unique_id = self.operation_id or current_generate_unique_id(self) 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

625 # normalize enums e.g. http.HTTPStatus 

626 if isinstance(status_code, IntEnum): 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

627 status_code = int(status_code) 2a cbb ibd c ob

628 self.status_code = status_code 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

629 if self.response_model: 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

630 assert is_body_allowed_for_status_code(status_code), ( 2a L + ; rq:bec;b=b?b*b+bt C u }b~b5 v fh+fU ,fghhh( , R e F V h k l -fW M G b N - @ sq@bfc[b]b^b,b-bw D x acbc8 y X .fihjh) . S f H Y i m n ^ /fZ O I d c P / _ tq_bgc`b{b|b.b/bz E A ccdc# B kh:f0 ;flhmh* : T g J 1 j o p =f3 Q K

631 f"Status code {status_code} must not have a response body" 

632 ) 

633 response_name = "Response_" + self.unique_id 2a L + ; rq:bec;b=b?b*b+bt C u }b~b5 v fh+fU ,fghhh( , R e F V h k l -fW M G b N - @ sq@bfc[b]b^b,b-bw D x acbc8 y X .fihjh) . S f H Y i m n ^ /fZ O I d c P / _ tq_bgc`b{b|b.b/bz E A ccdc# B kh:f0 ;flhmh* : T g J 1 j o p =f3 Q K

634 self.response_field = create_model_field( 2a L + ; rq:bec;b=b?b*b+bt C u }b~b5 v fh+fU ,fghhh( , R e F V h k l -fW M G b N - @ sq@bfc[b]b^b,b-bw D x acbc8 y X .fihjh) . S f H Y i m n ^ /fZ O I d c P / _ tq_bgc`b{b|b.b/bz E A ccdc# B kh:f0 ;flhmh* : T g J 1 j o p =f3 Q K

635 name=response_name, 

636 type_=self.response_model, 

637 mode="serialization", 

638 ) 

639 else: 

640 self.response_field = None # type: ignore 2a 7b(ypbq 4 | } = nc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`c{c|cabpcbb5bqc%bsbtbubvbwb1bxbybzbRcSccb6 kcAbrchcBbsctcCbDb!b$ b 8b)yqbr 7 dbeb[ uc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y gbwchb6bxc'bEbFbGbHbIb2bJbKbLbTcUcib9 lcMbycicNbzcAcObPb#b% d c 9b*yrbs ! jbkb` Bc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdPdQdmbDcnb)bEc(bQbRbSb4bTb3bUbVbWbVcWcob2 mcXbFcjcYbGcHcZb0b$b'

641 self.dependencies = list(dependencies or []) 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

642 self.description = description or inspect.cleandoc(self.endpoint.__doc__ or "") 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

643 # if a "form feed" character (page break) is found in the description text, 

644 # truncate description text to the content preceding the first "form feed" 

645 self.description = self.description.split("\f")[0].strip() 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

646 response_fields = {} 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

647 for additional_status_code, response in self.responses.items(): 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbRcSccb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbTcUcib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbVcWcob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

648 assert isinstance(response, dict), "An additional response must be a dict" 2a :bec;b=b?b*b+bt C u }b~b5 v leRcScb @bfc[b]b^b,b-bw D x acbc8 y TcUcd c _bgc`b{b|b.b/bz E A ccdc# B meVcWc

649 model = response.get("model") 2a :bec;b=b?b*b+bt C u }b~b5 v leRcScb @bfc[b]b^b,b-bw D x acbc8 y TcUcd c _bgc`b{b|b.b/bz E A ccdc# B meVcWc

650 if model: 2a :bec;b=b?b*b+bt C u }b~b5 v leRcScb @bfc[b]b^b,b-bw D x acbc8 y TcUcd c _bgc`b{b|b.b/bz E A ccdc# B meVcWc

651 assert is_body_allowed_for_status_code(additional_status_code), ( 2a :bec;b=b?b*b+bt C u }b~b5 v leRcScb @bfc[b]b^b,b-bw D x acbc8 y TcUcd c _bgc`b{b|b.b/bz E A ccdc# B meVcWc

652 f"Status code {additional_status_code} must not have a response body" 

653 ) 

654 response_name = f"Response_{additional_status_code}_{self.unique_id}" 2a :bec;b=b?b*b+bt C u }b~b5 v leRcScb @bfc[b]b^b,b-bw D x acbc8 y TcUcd c _bgc`b{b|b.b/bz E A ccdc# B meVcWc

655 response_field = create_model_field( 2a :bec;b=b?b*b+bt C u }b~b5 v leRcScb @bfc[b]b^b,b-bw D x acbc8 y TcUcd c _bgc`b{b|b.b/bz E A ccdc# B meVcWc

656 name=response_name, type_=model, mode="serialization" 

657 ) 

658 response_fields[additional_status_code] = response_field 2a :bec;b=b?b*b+bt C u }b~b5 v b @bfc[b]b^b,b-bw D x acbc8 y d c _bgc`b{b|b.b/bz E A ccdc# B

659 if response_fields: 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B OdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

660 self.response_fields: dict[int | str, ModelField] = response_fields 2a :bec;b=b?b*b+bt C u }b~b5 v b @bfc[b]b^b,b-bw D x acbc8 y d c _bgc`b{b|b.b/bz E A ccdc# B

661 else: 

662 self.response_fields = {} 2a 7b(ypbq 4 L | + ; } = rqnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ squc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tqBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B OdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

663 

664 assert callable(endpoint), "An endpoint must be a callable" 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B OdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

665 self.dependant = get_dependant( 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B OdPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

666 path=self.path_format, call=self.endpoint, scope="function" 

667 ) 

668 for depends in self.dependencies[::-1]: 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

669 self.dependant.dependencies.insert( 2a } = b eb[ d c kb`

670 0, 

671 get_parameterless_sub_dependant(depends=depends, path=self.path_format), 

672 ) 

673 self._flat_dependant = get_flat_dependant(self.dependant) 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

674 self._embed_body_fields = _should_embed_body_fields( 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

675 self._flat_dependant.body_params 

676 ) 

677 self.body_field = get_body_field( 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

678 flat_dependant=self._flat_dependant, 

679 name=self.unique_id, 

680 embed_body_fields=self._embed_body_fields, 

681 ) 

682 self.app = request_response(self.get_route_handler()) 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

683 

684 def get_route_handler(self) -> Callable[[Request], Coroutine[Any, Any, Response]]: 1abdc

685 return get_request_handler( 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

686 dependant=self.dependant, 

687 body_field=self.body_field, 

688 status_code=self.status_code, 

689 response_class=self.response_class, 

690 response_field=self.response_field, 

691 response_model_include=self.response_model_include, 

692 response_model_exclude=self.response_model_exclude, 

693 response_model_by_alias=self.response_model_by_alias, 

694 response_model_exclude_unset=self.response_model_exclude_unset, 

695 response_model_exclude_defaults=self.response_model_exclude_defaults, 

696 response_model_exclude_none=self.response_model_exclude_none, 

697 dependency_overrides_provider=self.dependency_overrides_provider, 

698 embed_body_fields=self._embed_body_fields, 

699 ) 

700 

701 def matches(self, scope: Scope) -> tuple[Match, Scope]: 1abdc

702 match, child_scope = super().matches(scope) 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqnSYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qy0Ge6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjpz0~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLrd0j0oSk0( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsp0esfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@ghcBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsA0OsPsB0C0Qs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}sD0~s!b.F6c/F:F6Z$ ;F=Fat?F@Fbt[F]Fct)CpS*C(Z+ZqS7Z8Z+CaSdtE0W fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.z}S~SG etftgtrShtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtsSItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPtF0=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTpG0pGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvue0l0tSm0) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;uq0=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gicNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvH0yvzvI0J0AvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,vK0-v#baI8cbIcI9Z% dIeI.vfIgI/vhIiI:vpDuSqD)Z-ZvS!Z#ZrDbS;vL0Z 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAaTbTI =v?v@vwS[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwxSswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwM0HfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pN0FIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxf0n0ySo0* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8xr09x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahjcYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyO0iyjyP0Q0ky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3yR04y$bqK!crKsK$Z' tKuK5yvKwK6yxKyK7yZDzS0D*Z/ZAS%Z'Z1DcS8yS03 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAcTdTK

703 if match != Match.NONE: 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqnSYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qy0Ge6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjpz0~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLrd0j0oSk0( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsp0esfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@ghcBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsA0OsPsB0C0Qs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}sD0~s!b.F6c/F:F6Z$ ;F=Fat?F@Fbt[F]Fct)CpS*C(Z+ZqS7Z8Z+CaSdtE0W fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.z}S~SG etftgtrShtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtsSItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPtF0=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTpG0pGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvue0l0tSm0) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;uq0=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gicNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvH0yvzvI0J0AvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,vK0-v#baI8cbIcI9Z% dIeI.vfIgI/vhIiI:vpDuSqD)Z-ZvS!Z#ZrDbS;vL0Z 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAaTbTI =v?v@vwS[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwxSswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwM0HfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pN0FIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxf0n0ySo0* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8xr09x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahjcYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyO0iyjyP0Q0ky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3yR04y$bqK!crKsK$Z' tKuK5yvKwK6yxKyK7yZDzS0D*Z/ZAS%Z'Z1DcS8yS03 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAcTdTK

704 child_scope["route"] = self 2uqvqwqxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qGe6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjp~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLrd0( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsp0esfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@gBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsOsPsQs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}s~s!b.F6c/F:F$ ;F=Fat?F@Fbt[F]Fct)C*C+CdtW fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.zG etftgthtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPt=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTppGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvue0) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;uq0=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvyvzvAvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,v-v#baI8cbIcI% dIeI.vfIgI/vhIiI:vpDqDrD;vZ 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAI =v?v@v[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwHfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pFIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxf0* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8xr09x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyiyjyky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3y4y$bqK!crKsK' tKuK5yvKwK6yxKyK7yZD0D1D8y3 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAK

705 return match, child_scope 2uqvqwqmSxq@one3cEj[oFj]oGj^oHj_ooe4cIj`oJj{oKj|oLj}oyeMzOhyqzqAqBqCq?f;y9ynh7bPjpbq ~oDqQj=y4 L RjzKSjEqTjFq| + `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+y(oJCINJNBSAK'DUjKCLCapbpcpdpGqKNLNCSHqIqJqMNNNONDSKqLqMqPNQNRNESNqSNTNFSOqPqzePhNzAecO(D)DdO*D+D,DeTfT-DgThT.DiT/DjTkT:DlTeO;D=DfO?D@DQqRq#PVj; Sq[D]Dep?yBe} = MCNCOCPC@y!yQCRCTqWj@fgO^DUNhOVNGS$PCeUqVqSCTCDeUCXjYjZj4z0j1j2j3j4jvAwA5jtQuQ6j7jWq8jEeXqnSYqZqfpgp0q_D1q`D2q3q{D|D? 9jzh!j#j~ peBKCKFeDK4qmT$j5qy0Ge6q7qt C u 5 v 8q%jxAQh}D9q!qhpip#qjpz0~DaEnToTbEcEdEiOeEfEgEpTjO$qhEqTrTkO%qsTiE'qtTuTjE(qvT)qwT*qxTyT+qkElElOmE,qnEzToE-qATpEBTqECTrEmODT.qsEnOET/qFTGT:qHTIT;qJTKT=qLTMT?qNTOT@qtEuE[q]q^qvE'joO_qpO`qwEPTQT{qxERTyESTTT(j)jyAUTVT|qzEAE}qBEqOrOCEWTDEEE~qarFEbrGEU abbb5b%bsbtbcrdrer)ofrXTgrYThrZTEKFKRh[yShGK]yAh^yHKBh_ymMnMoMpMThUhVh*jWhXhYh+jZh0h,j1h2h3h-j4hqM5hrM6hsMtM7h8h9h!h.j#h$h/j%h:j'h(h)h;jIKJK*h`y+hKK{y,h|yLK-h}yHEIEJEirKELEjrMEkrNEOElr0T1TPEsOQE2TtOREuO3TSEvOzAvQwQAAuMBAxQvMwMyQCAxMDAEAFAGA=jHAIA?j@jJAKA[jLAMANAOA]jPAQA^j_jRASA`jTAzQAQUAyMVABQzMAMCQWABMDQEQXACMYAFQDM5zEMGQ6zFMZA0A1A{j2A3A|j4A}j5A6A~j7A8A9Aak!A#Abk$Ack%A'AdkHQIQ(AGM)AJQHM*AIMKQ+AJM4T5TTEwOUE6TxO2DyO7T3DzOVEWEXEmrYEZEnr0Eor1E2Epr3E4E5Eqr6E7Err8Esr9E!Etr8T9T#EAO$E!TBO%ECO#T'EDOkp$T%T(EEO)E'TFO4DGO(T5DHO*E+E,Eur-E.Evr/Ewr:E;Exr=E?E@Eyr[E]Ezr^EAr_E`EBr)T*T{EIO|E+TJO}EKO,T~ELOMKKMMOaFNO.hbFekfkgkhkikjkkklkmk*o+oubvbwb1bxbybzbnkVCokWCpkqk7z8zrksktkukCrDrvkwkxkyk9z!zzkAkBkCk#z$zDkEkErFrGrHrIrJrFkGkHkRdIkJkSdKkLkMkNkOkPkQkRkSkKrcbLrd0j0oSk0( , R e F V h Mrk l Tk6 UkNrPXOrQXPrcFQrRXRrSXSrdFTrTXUrUXVreFWrVXfFXrWXYrgFZrXXhFYX0rZX0X1X1r2X3X4X2r5X6X3r7X8X4riFjF5r9X!X6r#X$X7rkFlF8r%XmF,ALQLMMQ'X%PnFoF(X'PpF9r!r#r$r%r'r(rqFrF-ANQMMOQ)rsFtFNM.APQQQuF*rvFwF+rxF,r)XyF-r*XzF.rAFBF/r:r;rVkWkXkYk=r?rZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k@rHS[rISWNXN]r^r_r`r)kAbHe{r|r+XNKIeRQ*kOKJe+kqN,krN-ksN.ktN,yKe}rlp/kCF~r,Xasbscsdsp0esfsgshs-XJS.Xis-T.Tjs/X/T:TDFKS:XOOks;Tls=Tms?Tns;X@TLe/h:hos2P5PgMPKSQQKRK;h=h?hhMSKqe@hMe[hTKNe]hUKVKOe^hPeTQ/A:AQeWKXKYKUQZK0K_h1KVQReSe2K3KWQ`hTe4K5KXQ{hUe6K7K|hVe8K9K!K}hWe#K$K%K~h'KXe(K)KaiYe*K+K,KbiZe-K.K0e/K:kTd;kUd@ghcBbpsqsrsciOzPz[TdiQz8P]TmpnpssXCYCZCts0C1C2Creus1e:Kvswsxs3C=kys4Czsop5C6C7CAsBs;K2e?k@kVdCsppqprp=X?XPOEFCbFFYNLSYQGFZNZQHF0NMSNSDsDbsp@X[X]X^XQOROIFJF3e=KohphEsFs4eWd[k;A]k^ktp_kXd`kYdZd{k0d1d8CGsOSHsPSIsQSKFRSSOeiRzLFSSTOJsMFNF^TKsOF_T`TLsPFQF{T|TupvpwpMsNsA0OsPsB0C0Qs5eRsSsTsUs2dVsWsXsTSUS5cYsZs3d0s1s4d5d2sxp3s}T4s5s6sRF7s~TSFTFypaUzpbUcUApdUeUfUBpgUhUiUjUCpkUlUmUnU8sUFVFoU9sWFpUqUDpEpFpGp!srU#ssU$sXFYF%sZF0FtU's1FuUvU(s2FwU)s3FxUUO4FyUzUVO5FAU*s6FBU+s7FCU8F,s9F!FDU-s#F.s$F/s%F:s'F;s(FEU)F*F=s0Q=AOM?A|k@A}k[A~kalbl9C1Q]APMcl!Cdlelfl2Q3Q4Q5Q6Qgl7Q8Q9Q!Qhl#Q$Q%Q'Q(Q)Q^AQM*Qil#C?sqh$C%C@s6d[gjl7d8d9d'CuN(C[svNMjklllmlnlHp6e7e8e9e!e_X(P+F)P,F`X{X|Xol*P+P,P-F}X~XCh-P.P/P]g~yazaYbYcYdYeYDh:P;P=P^g_gfYbzczdzgYhYiY]sjYkYlY^smYnYoYpYqY#epl$eql_s`s{s|sXcYc}sD0~s!b.F6c/F:F6Z$ ;F=Fat?F@Fbt[F]Fct)CpS*C(Z+ZqS7Z8Z+CaSdtE0W fi%eM 'e(e+Q,Q_Arl)egi%z'z(z)zsl`A*z+z,ztlWO-z.z}S~SG etftgtrShtIp*eSzhiitjtktltmt[fez#yrh8bulqbr Jpntvlfz7 N wl?Kxlotylptdb- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y,o,C1N2NVS@K^Fzl-C.CKpLpMpNpqt3N4NWSrtsttt5N6N7NXSutvtwt8N9N!NYSxt#N$NZSytzt+eiiTz,eXO_F`FYO{F|F}FFUGU~FHUIUaGJUbGKULUcGMUZOdGeG0OfGgGAtBt?PAl@ CthGiGOpgz-eeb[ /C:C;C=Chz$y?C@CDtBl]f1OjG%N2O'N0S@P.eEtFt[C]C/e^CClDlEl/zFlGlHlIlJl{A|AKl-Q.QLlMlGtNl:eHtsSItJtPpQpKtkGLtlGMtNtmGnG] OlEhPlQlfbse[K]K;e^KOtNURlPtF0=eQtRtw D x 8 y StSl}AjioGTtUtRpSpVtTpG0pGqGOUPUrGsGtG3OuGvGwGQU4OWtxGRUSU5OXtTUyGYtUUVUzGZtWU0tXU1tYUZU2tAGBG6OCG3tDG0UEG4t1UFG2UGG3UHG7O4U5tIG8O5U6t6U7U7t8U9U8t!U#U9t$U%U!t'U(U#tJGKG$t%t'tLGTl9O(t!O)tMG)U*U*tNG+UOG,U-UUlVl~A.U/U+tPGQG,tRG#O$OSG:UTGUG-t.tVG/tWGX gbhb6b'bEbFb:t;t=t-o?t;U@t=U[t?U_K`Kkiizli{KjzFhkz|KGhlzRMSMTMUMminioiWlpiqiriXlsitiYluiviwiZlxiVMyiWMziXMYMAiBiCiDi0lEiFi1lGi2lHiIiJi3l}K~KKimzLiaLnzMiozbLNipzXGYGZG]t0G1G^t2G_t3G4G`t@U[U5G%O6G]U'O7G(O^U8G)OaB/Q:QbBZMcB;Q0M1M=QdB2MeBfBgBhB4liBjB5l6lkBlB7lmBnBoBpB8lqBrB9l!lsBtB#luB?Q@QvB3MwB[Q4M5M]QxB6M^Q_QyB7MzB`Q8M:z9M{Q;z!MABBBCB$lDBEB%lFB'lGBHB(lIBJBKB)lLBMB*lNB+lOBPB,l|Q}QQB#MRB~Q$MSB%MaRTB'M_U`U9G*O!G{U+O6D,O|U7D-O#G$G%G{t'G(G|t)G}t*G+G~t,G-G.Gau/G:Gbu;Gcu=G?Gdu}U~U@G.O[GaV/O]G:ObV^G;OUpcVdV_G=O`GeV?O8D@OfV9D[O{G|G}Geu~GaHfubHgucHdHhueHfHgHiuhHiHjujHkukHlHlugVhVmH]OnHiV^OoH_OjVpH`OcL(M{OqH|OOirH-l.l/l:l;l=l?l@l[l.o/oGbHbIb2bJbKbLb]l_C^l`C_l`l=z?z{l|l}l~lmunuambmcmdm@z[zemfmgmhm]z^zimjmoupuqurusutukmlmmm!dnmom#dpmqmrmsmtmumvmwmxmuuibvue0l0tSm0) . S f H Y i wum n ym9 zmxurYyusYzusHAutYBuuYCutHDuvYEuwYFuuHGuxYvHHuyYIuwHJuzYxHAYKuBYCYDYLuEYFYGYMuHYIYNuJYKYOuyHzHPuLYMYQuNYOYRuAHBHSuPYCHUBbR)McRQY[PDHEHRY]PFHTuUuVuWuXuYuZuGHHHVBdR*MeR0uIHJH+MWBfRgRKH1uLHMH2uNH3uSYOH4uTYPH5uQHRH6u7u8uAmBmCmDm9u!uEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUm#u1S$u2S(N)N%u'u(u)uVm^ Mb?e*u+uUYdL@ehRWmeL[eXmwNYmxNZmyN0mzN.y]e,uVp1mSH-uVY.u/u:u;uq0=u?u@u[uWY3SXY]ukVlV^uYYmVnVTH4SZY}O_uoV`upV{uqV|u0YrV^ePiQi}u3P6PiMfLiRgLhLRiSiTijMiLteUi_eVijL`eWikLlL{eXi|ejRXBYB}emLnLoLkRpLqLYirLlR~eafsLtLmRZibfuLvLnR0icfwLxL1idfyLzLAL2iefBLCLDL3iELffFLGL4igfHLILJL5ihfKLLLifML2m$d3m%d`gicNb~uavbv6iUzVzsV7iWz9PtVWpXpcv{C|C}Cdv~CaDbDueevjfNLfvgvhvcD4mivdDjvYpeDfDgDkvlvOLkf5m6m'dmvZp0p1p1Y2Y~OUHObVH*N5SoRWH+NpRXH,N6S7SnvPb2p3Y4Y5Y6YaPbPYHZHlfPLshthovpvmf(d7mZB8m9m3p!m)d#m*d+d$m,d-dhDqv8Srv9Ssv!S0H#ScP8iXz1H$SdPtv2H3HuVuv4HvVwVvv5H6HxVyV4p5p6pwvxvH0yvzvI0J0AvnfBvCvDvEv.dFvGvHv%S'S7cIvJv/dKvLv:d;dMv7pNvzVOvPvQv7HRvAV8H9H8pBV9pCVDV!pEVFVGV#pHVIVJVKV$pLVMVNVOVSv!H#HPVTv$HQVRV%p'p(p)pUvSVVvTVWv%H'HXv(H)HUVYv*HVVWVZv+HXV0v,HYVeP-HZV0VfP.H1V1v/H2V2v:H3V;H3v=H?H4V4v@H5v[H6v]H7v^H8v_H5V`H{H9vqR0B,M1B%m2B'm3B(m)m*miDrR4B-M+mjD,m-m.msRtRuRvRwR/mxRyRzRAR:mBRCRDRERFRGR5B.MHR;mkD!vuhlDmD#v=d{g=m?d@d[dnDANoD$vBNNj?m@m[m]m*pofpfqfrfsf7Y^P|H_P}H8Y9Y!Y^m`P{P|P~H#Y$YHh}P~PaQ|gqzrz%Y'Y(Y)Y*YIhbQcQdQ}g~g+Ysztzuz,Y-Y.Y%v/Y:Y;Y'v=Y?Y@Y[Y]Ytf_muf`m(v)v*v+vZc0c,vK0-v#baI8cbIcI9Z% dIeI.vfIgI/vhIiI:vpDuSqD)Z-ZvS!Z#ZrDbS;vL0Z 9ivfO wfxfIRJR6B{myf!i_z`z{z|z|m7B}z~zaA}mgPbAcAaTbTI =v?v@vwS[v+pzfYz#i]v^v_v`v{v^fvz%yvh9b~mrbs ,p|vanwz! P bnQLcn}vdn~vjb/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/y:osD-N.N(SRLjIentDuD-p.p/p:paw/N:N)Sbwcwdw;N=N?N*Sewfwgw@N[N]N+Shw^N_N,SiwjwAf$iZzBfhPkIlIiPmInIoI6V7VpI8V9VqI!VrI#V$VsI%VjPtIuIkPvIwIkwlweQfn_ mwxIyI;pxzCfkb` vDwDxDyDyz'yzDADnwgn_flPzI`NmP{N-SfQDfowpwBDCDEfDDhninjndAknlnmnnnon8B9BpnKRLRqnrnqwsnFfrwxSswtw=p?puwAIvwBIwwxwCIDI{ tnJhunvnlbveSLTLGfULyw'VwnzwM0HfAwBwz E A # B Cwxn!B%iEIDwEw@p[pFw]pN0FIGI(V)VHIIIJInPKILIMI*VoPGwNI+V,VpPHw-VOIIw.V/VPIJw:VKw;VLw=V?VMwQIRIqPSINwTI@VUIOw[VVI]VWI^VXIrP_VPwYIsP`VQw{V|VRw}V~VSwaWbWTwcWdWUweWfWVwZI0IWwXwYw1IyntPZwuP0w2IgWhW1w3IiW4IjWkWznAn#BlWmW2w5I6I3w7IvPwP8InW9I!I4w5w#I6w$I0 mbnb)b(bQbRb7w8w9w;o!woW#wpW$wqWVLWL'izz(iXLAzKhBzYLLhCz/M:M;M=M)i*i+iBn,i-i.iCn/i:iDn;i=i?iEn@i?M[i@M]i[M]M^i_i`i{iFn|i}iGn~iHnajbjcjInZL0LdjDzej1LEzfjFz2LgjGz%I'I(I%w)I*I'w+I(w,I-I)wrWsW.IxP/ItWyP:IzPuW;IAP$BMRNR%B^M'BOR_M`MPR(B{M)B*B+B,BJn-B.BKnLn/B:BMn;B=B?B@BNn[B]BOnPn^B_BQn`BQRRR{B|M|BSR}M~MTR}BaNURVR~BbNaCWRcNeAdNXRfAeNbCcCdCRneCfCSngCTnhCiCUnjCkClCVnmCnCWnoCXnpCqCYnYRZRrCfNsC0RgNtChN1RuCiNvWwW=IBP?IxWCP!DDPyW#DEP@I[I]I*w^I_I+w`I,w{I|I-w}I~IaJ.wbJcJ/wdJ:weJfJ;wzWAWgJFPhJBWGPiJHPCWjJIP^pDWEWkJJPlJFWKP$DLPGW%DMPmJnJoJ=wpJqJ?wrJ@wsJtJ[wuJvJwJ]wxJyJ^wzJ_wAJBJ`wHWIWCJNPDJJWOPEJPPKWFJQP3LjNRPGJSPhjHJZn0n1n2n3n4n5n6n7n=o?oSb4bTb3bUbVbWb8nED9nFD!n#ngAhA$n%n'n(n{w|w)n*n+n,niAjA-n.n/n:nkAlA;n=n}w~waxbxcxdx?n@n[n]d]n^n^d_n`n{n|n}n~naobocoexobfxf0n0ySo0* : T g J 1 j gxo p do2 eohx^Yix_YjxIJkx`Ylx{YmxJJnx|Yox}YpxKJqx~YLJrxaZsxMJtxbZNJcZuxdZeZfZvxgZhZiZwxjZkZxxlZmZyxOJPJzxnZoZAxpZqZBxQJRJCxrZSJvC2RkN3RsZgQTJUJtZhQVJDxExFxGxHxIxJxWJXJwC4RlN5RKxYJZJmNxC6R7R0JLx1J2JMx3JNxuZ4JOxvZ5JPx6J7JQxRxSxfogohoioTxUxjokolomonooopoqorosotouovowoxoyozoVx.SWx/S|N}NXxYxZx0xAoXbIf1x2xwZ4LJf8RBo5LKfCoCNDoDNEoENFoFN:yLf3x_pGo8J4xxZ5x6x7x8xr09x!x#x$xyZ:SzZ%xLWMW'xAZNWOW9J;SBZTP(xPW)xQW*xRW+xCZSWMfijjj,x4P7PkM6L9R7L8LkjljmjlM9LwenjNfoj!LOfpj#L$LPfqjQf!RyCzCRf%L'L(L#R)L*Lrj+L$RSfTf,L-L%RsjUf.L/L'RtjVf:L;LujWf=L?L@LvjXf[L]L^Lwj_LYf`L{LxjZf|L}L~Lyj0faMbM1fcMHo_dIo`dahjcYb-x.x/xzj0z1zTWAj2z!PUW`p{p:xGDHDID;xJDKDLDxe=x2fdM?x@x[xMDJo]xND^x|pODPDQD_x`xeM3fKoLo{d{x}p~paqDZEZUP!JZb#J~N=S(R$JaO)R%JbO?S@S|x0bbqFZGZHZIZVPWP'J(J4ffMwhxh}x~x5f|dMoACNoOocqPo}dQo~daeRobeceRDay[Sby]Scy^S)J_SXPBj3z*J`SYPdy+J,JVWey-JWWXWfy.J/JYWZWdqeqfqgyhyO0iyjyP0Q0ky6flymynyoydepyqyry{S|S9csytyeeuyvyfegewygqxy0WyyzyAy:JBy1W;J=Jhq2Wiq3W4Wjq5W6W7Wkq8W9W!W#Wlq$W%W'W(WCy?J@J)WDy[J*W+WmqnqoqpqEy,WFy-WGy]J^JHy_J`J.WIy{J/W:WJy|J;WKy}J=WZP~J?W@W0PaK[WLybK]WMycK^WdKNyeKfK_WOygKPyhKQyiKRyjKSykK`WlKmKTy*RBCnNCCSoDCToECUoVoWoSD+RFCoNXoTDYoZo0o,R-R.R/R:R1o;R=R?R@R2o[R]R^R_R`R{RGCpN|R3oUDUyyhVDWDVyhebh4oiejekeXDGNYDWyHNOj5o6o7o8oqq7f8f9f!f#fJZiQnKjQoKKZLZMZ9okQlQmQpKNZOZMhnQoQpQchHzIzPZQZRZSZTZNhqQrQsQdhehUZJzKzLzVZWZXZXyYZZZ0ZYy1Z2Z3Z4Z5Z$f!o%f#oZy0y1y2y1c2c3yR04y$bqK!crKsK$Z' tKuK5yvKwK6yxKyK7yZDzS0D*Z/ZAS%Z'Z1DcS8yS03 Cj'fQ (f)f}R~RHC$o*fDjmAnAoApA%oICqArAsA'o1PtAuAcTdTK

706 

707 

708class APIRouter(routing.Router): 1abdc

709 """ 

710 `APIRouter` class, used to group *path operations*, for example to structure 

711 an app in multiple files. It would then be included in the `FastAPI` app, or 

712 in another `APIRouter` (ultimately included in the app). 

713 

714 Read more about it in the 

715 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/). 

716 

717 ## Example 

718 

719 ```python 

720 from fastapi import APIRouter, FastAPI 

721 

722 app = FastAPI() 

723 router = APIRouter() 

724 

725 

726 @router.get("/users/", tags=["users"]) 

727 async def read_users(): 

728 return [{"username": "Rick"}, {"username": "Morty"}] 

729 

730 

731 app.include_router(router) 

732 ``` 

733 """ 

734 

735 def __init__( 1abdc

736 self, 

737 *, 

738 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "", 

739 tags: Annotated[ 

740 list[str | Enum] | None, 

741 Doc( 

742 """ 

743 A list of tags to be applied to all the *path operations* in this 

744 router. 

745 

746 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

747 

748 Read more about it in the 

749 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

750 """ 

751 ), 

752 ] = None, 

753 dependencies: Annotated[ 

754 Sequence[params.Depends] | None, 

755 Doc( 

756 """ 

757 A list of dependencies (using `Depends()`) to be applied to all the 

758 *path operations* in this router. 

759 

760 Read more about it in the 

761 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

762 """ 

763 ), 

764 ] = None, 

765 default_response_class: Annotated[ 

766 type[Response], 

767 Doc( 

768 """ 

769 The default response class to be used. 

770 

771 Read more in the 

772 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class). 

773 """ 

774 ), 

775 ] = Default(JSONResponse), 

776 responses: Annotated[ 

777 dict[int | str, dict[str, Any]] | None, 

778 Doc( 

779 """ 

780 Additional responses to be shown in OpenAPI. 

781 

782 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

783 

784 Read more about it in the 

785 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/). 

786 

787 And in the 

788 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

789 """ 

790 ), 

791 ] = None, 

792 callbacks: Annotated[ 

793 list[BaseRoute] | None, 

794 Doc( 

795 """ 

796 OpenAPI callbacks that should apply to all *path operations* in this 

797 router. 

798 

799 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

800 

801 Read more about it in the 

802 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

803 """ 

804 ), 

805 ] = None, 

806 routes: Annotated[ 

807 list[BaseRoute] | None, 

808 Doc( 

809 """ 

810 **Note**: you probably shouldn't use this parameter, it is inherited 

811 from Starlette and supported for compatibility. 

812 

813 --- 

814 

815 A list of routes to serve incoming HTTP and WebSocket requests. 

816 """ 

817 ), 

818 deprecated( 

819 """ 

820 You normally wouldn't use this parameter with FastAPI, it is inherited 

821 from Starlette and supported for compatibility. 

822 

823 In FastAPI, you normally would use the *path operation methods*, 

824 like `router.get()`, `router.post()`, etc. 

825 """ 

826 ), 

827 ] = None, 

828 redirect_slashes: Annotated[ 

829 bool, 

830 Doc( 

831 """ 

832 Whether to detect and redirect slashes in URLs when the client doesn't 

833 use the same format. 

834 """ 

835 ), 

836 ] = True, 

837 default: Annotated[ 

838 ASGIApp | None, 

839 Doc( 

840 """ 

841 Default function handler for this router. Used to handle 

842 404 Not Found errors. 

843 """ 

844 ), 

845 ] = None, 

846 dependency_overrides_provider: Annotated[ 

847 Any | None, 

848 Doc( 

849 """ 

850 Only used internally by FastAPI to handle dependency overrides. 

851 

852 You shouldn't need to use it. It normally points to the `FastAPI` app 

853 object. 

854 """ 

855 ), 

856 ] = None, 

857 route_class: Annotated[ 

858 type[APIRoute], 

859 Doc( 

860 """ 

861 Custom route (*path operation*) class to be used by this router. 

862 

863 Read more about it in the 

864 [FastAPI docs for Custom Request and APIRoute class](https://fastapi.tiangolo.com/how-to/custom-request-and-route/#custom-apiroute-class-in-a-router). 

865 """ 

866 ), 

867 ] = APIRoute, 

868 on_startup: Annotated[ 

869 Sequence[Callable[[], Any]] | None, 

870 Doc( 

871 """ 

872 A list of startup event handler functions. 

873 

874 You should instead use the `lifespan` handlers. 

875 

876 Read more in the [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/). 

877 """ 

878 ), 

879 ] = None, 

880 on_shutdown: Annotated[ 

881 Sequence[Callable[[], Any]] | None, 

882 Doc( 

883 """ 

884 A list of shutdown event handler functions. 

885 

886 You should instead use the `lifespan` handlers. 

887 

888 Read more in the 

889 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/). 

890 """ 

891 ), 

892 ] = None, 

893 # the generic to Lifespan[AppType] is the type of the top level application 

894 # which the router cannot know statically, so we use typing.Any 

895 lifespan: Annotated[ 

896 Lifespan[Any] | None, 

897 Doc( 

898 """ 

899 A `Lifespan` context manager handler. This replaces `startup` and 

900 `shutdown` functions with a single context manager. 

901 

902 Read more in the 

903 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/). 

904 """ 

905 ), 

906 ] = None, 

907 deprecated: Annotated[ 

908 bool | None, 

909 Doc( 

910 """ 

911 Mark all *path operations* in this router as deprecated. 

912 

913 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

914 

915 Read more about it in the 

916 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

917 """ 

918 ), 

919 ] = None, 

920 include_in_schema: Annotated[ 

921 bool, 

922 Doc( 

923 """ 

924 To include (or not) all the *path operations* in this router in the 

925 generated OpenAPI. 

926 

927 This affects the generated OpenAPI (e.g. visible at `/docs`). 

928 

929 Read more about it in the 

930 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

931 """ 

932 ), 

933 ] = True, 

934 generate_unique_id_function: Annotated[ 

935 Callable[[APIRoute], str], 

936 Doc( 

937 """ 

938 Customize the function used to generate unique IDs for the *path 

939 operations* shown in the generated OpenAPI. 

940 

941 This is particularly useful when automatically generating clients or 

942 SDKs for your API. 

943 

944 Read more about it in the 

945 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

946 """ 

947 ), 

948 ] = Default(generate_unique_id), 

949 ) -> None: 

950 # Determine the lifespan context to use 

951 if lifespan is None: 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

952 # Use the default lifespan that runs on_startup/on_shutdown handlers 

953 lifespan_context: Lifespan[Any] = _DefaultLifespan(self) 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

954 elif inspect.isasyncgenfunction(lifespan): 2a ( dSeS, F fSV b ) gShS. H iSY d c * jSkS: J lS1

955 lifespan_context = asynccontextmanager(lifespan) 1,.:

956 elif inspect.isgeneratorfunction(lifespan): 2a ( dSeSF fSV b ) gShSH iSY d c * jSkSJ lS1

957 lifespan_context = _wrap_gen_lifespan_context(lifespan) 1VY1

958 else: 

959 lifespan_context = lifespan 2a ( dSeSF fSb ) gShSH iSd c * jSkSJ lS

960 self.lifespan_context = lifespan_context 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

961 

962 super().__init__( 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

963 routes=routes, 

964 redirect_slashes=redirect_slashes, 

965 default=default, 

966 lifespan=lifespan_context, 

967 ) 

968 if prefix: 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

969 assert prefix.startswith("/"), "A path prefix must start with '/'" 1aqbrdcs

970 assert not prefix.endswith("/"), ( 1aqbrdcs

971 "A path prefix must not end with '/', as the routes will start with '/'" 

972 ) 

973 

974 # Handle on_startup/on_shutdown locally since Starlette removed support 

975 # Ref: https://github.com/Kludex/starlette/pull/3117 

976 # TODO: deprecate this once the lifespan (or alternative) interface is improved 

977 self.on_startup: list[Callable[[], Any]] = ( 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

978 [] if on_startup is None else list(on_startup) 

979 ) 

980 self.on_shutdown: list[Callable[[], Any]] = ( 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

981 [] if on_shutdown is None else list(on_shutdown) 

982 ) 

983 

984 self.prefix = prefix 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

985 self.tags: list[str | Enum] = tags or [] 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

986 self.dependencies = list(dependencies or []) 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

987 self.deprecated = deprecated 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

988 self.include_in_schema = include_in_schema 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

989 self.responses = responses or {} 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

990 self.callbacks = callbacks or [] 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

991 self.dependency_overrides_provider = dependency_overrides_provider 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

992 self.route_class = route_class 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

993 self.default_response_class = default_response_class 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

994 self.generate_unique_id_function = generate_unique_id_function 2a pbq 4 L | + ; } = :bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb;Z( dSeS, R e F fSV h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G IcOcLcb qbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib=Z) gShS. S f H iSY i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I JcPcMcd c rbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob?Z* jSkS: T g J lS1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K KcQcNc

995 

996 def route( 1abdc

997 self, 

998 path: str, 

999 methods: Collection[str] | None = None, 

1000 name: str | None = None, 

1001 include_in_schema: bool = True, 

1002 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1003 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1abdc

1004 self.add_route( 1abdc

1005 path, 

1006 func, 

1007 methods=methods, 

1008 name=name, 

1009 include_in_schema=include_in_schema, 

1010 ) 

1011 return func 1abdc

1012 

1013 return decorator 1abdc

1014 

1015 def add_api_route( 1abdc

1016 self, 

1017 path: str, 

1018 endpoint: Callable[..., Any], 

1019 *, 

1020 response_model: Any = Default(None), 

1021 status_code: int | None = None, 

1022 tags: list[str | Enum] | None = None, 

1023 dependencies: Sequence[params.Depends] | None = None, 

1024 summary: str | None = None, 

1025 description: str | None = None, 

1026 response_description: str = "Successful Response", 

1027 responses: dict[int | str, dict[str, Any]] | None = None, 

1028 deprecated: bool | None = None, 

1029 methods: set[str] | list[str] | None = None, 

1030 operation_id: str | None = None, 

1031 response_model_include: IncEx | None = None, 

1032 response_model_exclude: IncEx | None = None, 

1033 response_model_by_alias: bool = True, 

1034 response_model_exclude_unset: bool = False, 

1035 response_model_exclude_defaults: bool = False, 

1036 response_model_exclude_none: bool = False, 

1037 include_in_schema: bool = True, 

1038 response_class: type[Response] | DefaultPlaceholder = Default(JSONResponse), 

1039 name: str | None = None, 

1040 route_class_override: type[APIRoute] | None = None, 

1041 callbacks: list[BaseRoute] | None = None, 

1042 openapi_extra: dict[str, Any] | None = None, 

1043 generate_unique_id_function: Callable[[APIRoute], str] 

1044 | DefaultPlaceholder = Default(generate_unique_id), 

1045 ) -> None: 

1046 route_class = route_class_override or self.route_class 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1047 responses = responses or {} 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1048 combined_responses = {**self.responses, **responses} 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1049 current_response_class = get_value_or_default( 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1050 response_class, self.default_response_class 

1051 ) 

1052 current_tags = self.tags.copy() 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1053 if tags: 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1054 current_tags.extend(tags) 1abdc

1055 current_dependencies = self.dependencies.copy() 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1056 if dependencies: 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1057 current_dependencies.extend(dependencies) 1abdc

1058 current_callbacks = self.callbacks.copy() 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1059 if callbacks: 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1060 current_callbacks.extend(callbacks) 2a ecb fcd c gc

1061 current_generate_unique_id = get_value_or_default( 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1062 generate_unique_id_function, self.generate_unique_id_function 

1063 ) 

1064 route = route_class( 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1065 self.prefix + path, 

1066 endpoint=endpoint, 

1067 response_model=response_model, 

1068 status_code=status_code, 

1069 tags=current_tags, 

1070 dependencies=current_dependencies, 

1071 summary=summary, 

1072 description=description, 

1073 response_description=response_description, 

1074 responses=combined_responses, 

1075 deprecated=deprecated or self.deprecated, 

1076 methods=methods, 

1077 operation_id=operation_id, 

1078 response_model_include=response_model_include, 

1079 response_model_exclude=response_model_exclude, 

1080 response_model_by_alias=response_model_by_alias, 

1081 response_model_exclude_unset=response_model_exclude_unset, 

1082 response_model_exclude_defaults=response_model_exclude_defaults, 

1083 response_model_exclude_none=response_model_exclude_none, 

1084 include_in_schema=include_in_schema and self.include_in_schema, 

1085 response_class=current_response_class, 

1086 name=name, 

1087 dependency_overrides_provider=self.dependency_overrides_provider, 

1088 callbacks=current_callbacks, 

1089 openapi_extra=openapi_extra, 

1090 generate_unique_id_function=current_generate_unique_id, 

1091 ) 

1092 self.routes.append(route) 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

1093 

1094 def api_route( 1abdc

1095 self, 

1096 path: str, 

1097 *, 

1098 response_model: Any = Default(None), 

1099 status_code: int | None = None, 

1100 tags: list[str | Enum] | None = None, 

1101 dependencies: Sequence[params.Depends] | None = None, 

1102 summary: str | None = None, 

1103 description: str | None = None, 

1104 response_description: str = "Successful Response", 

1105 responses: dict[int | str, dict[str, Any]] | None = None, 

1106 deprecated: bool | None = None, 

1107 methods: list[str] | None = None, 

1108 operation_id: str | None = None, 

1109 response_model_include: IncEx | None = None, 

1110 response_model_exclude: IncEx | None = None, 

1111 response_model_by_alias: bool = True, 

1112 response_model_exclude_unset: bool = False, 

1113 response_model_exclude_defaults: bool = False, 

1114 response_model_exclude_none: bool = False, 

1115 include_in_schema: bool = True, 

1116 response_class: type[Response] = Default(JSONResponse), 

1117 name: str | None = None, 

1118 callbacks: list[BaseRoute] | None = None, 

1119 openapi_extra: dict[str, Any] | None = None, 

1120 generate_unique_id_function: Callable[[APIRoute], str] = Default( 

1121 generate_unique_id 

1122 ), 

1123 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1124 def decorator(func: DecoratedCallable) -> DecoratedCallable: 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1125 self.add_api_route( 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1126 path, 

1127 func, 

1128 response_model=response_model, 

1129 status_code=status_code, 

1130 tags=tags, 

1131 dependencies=dependencies, 

1132 summary=summary, 

1133 description=description, 

1134 response_description=response_description, 

1135 responses=responses, 

1136 deprecated=deprecated, 

1137 methods=methods, 

1138 operation_id=operation_id, 

1139 response_model_include=response_model_include, 

1140 response_model_exclude=response_model_exclude, 

1141 response_model_by_alias=response_model_by_alias, 

1142 response_model_exclude_unset=response_model_exclude_unset, 

1143 response_model_exclude_defaults=response_model_exclude_defaults, 

1144 response_model_exclude_none=response_model_exclude_none, 

1145 include_in_schema=include_in_schema, 

1146 response_class=response_class, 

1147 name=name, 

1148 callbacks=callbacks, 

1149 openapi_extra=openapi_extra, 

1150 generate_unique_id_function=generate_unique_id_function, 

1151 ) 

1152 return func 2a 7bpbq 4 L | + ; } = :bec;b=b?b*b+bnc? ~ oct C u }b~b5 v U abpcbb5bqc%bsbtbubvbwb1bxbybzbcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb!b$ W M G b 8bqbr 7 N db- @ eb[ @bfc[b]b^b,b-buc] fbvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLbib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb#b% Z O I d c 9brbs ! P jb/ _ kb` _bgc`b{b|b.b/bBc{ lbCcz E A ccdc# B 0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWbob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b$b' 3 Q K

1153 

1154 return decorator 2a 7b(ypbq 4 L | + ; } = rq:bec;b=b?b*b+bnc? #c$c%c'c(c)c*c+c,c-c.c~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v le`cfh+f{c|cU abpcbb5bqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ W M G b 8b)yqbr 7 N db- @ eb[ sq@bfc[b]b^b,b-buc] }c~cadbdcdddedfdgdhdidfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6bxc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% Z O I d c 9b*yrbs ! P jb/ _ kb` tq_bgc`b{b|b.b/bBc{ tdudvdwdxdydzdAdBdCdDdlbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B meOdkh:fPdQd0 mbDcnb)bEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b' 3 Q K

1155 

1156 def add_api_websocket_route( 1abdc

1157 self, 

1158 path: str, 

1159 endpoint: Callable[..., Any], 

1160 name: str | None = None, 

1161 *, 

1162 dependencies: Sequence[params.Depends] | None = None, 

1163 ) -> None: 

1164 current_dependencies = self.dependencies.copy() 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

1165 if dependencies: 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

1166 current_dependencies.extend(dependencies) 1abdc

1167 

1168 route = APIWebSocketRoute( 2a ^ZIcOcLcb _ZJcPcMcd c `ZKcQcNc

1169 self.prefix + path, 

1170 endpoint=endpoint, 

1171 name=name, 

1172 dependencies=current_dependencies, 

1173 dependency_overrides_provider=self.dependency_overrides_provider, 

1174 ) 

1175 self.routes.append(route) 2a IcOcLcb JcPcMcd c KcQcNc

1176 

1177 def websocket( 1abdc

1178 self, 

1179 path: Annotated[ 

1180 str, 

1181 Doc( 

1182 """ 

1183 WebSocket path. 

1184 """ 

1185 ), 

1186 ], 

1187 name: Annotated[ 

1188 str | None, 

1189 Doc( 

1190 """ 

1191 A name for the WebSocket. Only used internally. 

1192 """ 

1193 ), 

1194 ] = None, 

1195 *, 

1196 dependencies: Annotated[ 

1197 Sequence[params.Depends] | None, 

1198 Doc( 

1199 """ 

1200 A list of dependencies (using `Depends()`) to be used for this 

1201 WebSocket. 

1202 

1203 Read more about it in the 

1204 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/). 

1205 """ 

1206 ), 

1207 ] = None, 

1208 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1209 """ 

1210 Decorate a WebSocket function. 

1211 

1212 Read more about it in the 

1213 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/). 

1214 

1215 **Example** 

1216 

1217 ## Example 

1218 

1219 ```python 

1220 from fastapi import APIRouter, FastAPI, WebSocket 

1221 

1222 app = FastAPI() 

1223 router = APIRouter() 

1224 

1225 @router.websocket("/ws") 

1226 async def websocket_endpoint(websocket: WebSocket): 

1227 await websocket.accept() 

1228 while True: 

1229 data = await websocket.receive_text() 

1230 await websocket.send_text(f"Message text was: {data}") 

1231 

1232 app.include_router(router) 

1233 ``` 

1234 """ 

1235 

1236 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1abdc

1237 self.add_api_websocket_route( 1abdc

1238 path, func, name=name, dependencies=dependencies 

1239 ) 

1240 return func 1abdc

1241 

1242 return decorator 1abdc

1243 

1244 def websocket_route( 1abdc

1245 self, path: str, name: str | None = None 

1246 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1247 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1abdc

1248 self.add_websocket_route(path, func, name=name) 1abdc

1249 return func 1abdc

1250 

1251 return decorator 1abdc

1252 

1253 def include_router( 1abdc

1254 self, 

1255 router: Annotated["APIRouter", Doc("The `APIRouter` to include.")], 

1256 *, 

1257 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "", 

1258 tags: Annotated[ 

1259 list[str | Enum] | None, 

1260 Doc( 

1261 """ 

1262 A list of tags to be applied to all the *path operations* in this 

1263 router. 

1264 

1265 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1266 

1267 Read more about it in the 

1268 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1269 """ 

1270 ), 

1271 ] = None, 

1272 dependencies: Annotated[ 

1273 Sequence[params.Depends] | None, 

1274 Doc( 

1275 """ 

1276 A list of dependencies (using `Depends()`) to be applied to all the 

1277 *path operations* in this router. 

1278 

1279 Read more about it in the 

1280 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

1281 """ 

1282 ), 

1283 ] = None, 

1284 default_response_class: Annotated[ 

1285 type[Response], 

1286 Doc( 

1287 """ 

1288 The default response class to be used. 

1289 

1290 Read more in the 

1291 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class). 

1292 """ 

1293 ), 

1294 ] = Default(JSONResponse), 

1295 responses: Annotated[ 

1296 dict[int | str, dict[str, Any]] | None, 

1297 Doc( 

1298 """ 

1299 Additional responses to be shown in OpenAPI. 

1300 

1301 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1302 

1303 Read more about it in the 

1304 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/). 

1305 

1306 And in the 

1307 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

1308 """ 

1309 ), 

1310 ] = None, 

1311 callbacks: Annotated[ 

1312 list[BaseRoute] | None, 

1313 Doc( 

1314 """ 

1315 OpenAPI callbacks that should apply to all *path operations* in this 

1316 router. 

1317 

1318 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1319 

1320 Read more about it in the 

1321 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

1322 """ 

1323 ), 

1324 ] = None, 

1325 deprecated: Annotated[ 

1326 bool | None, 

1327 Doc( 

1328 """ 

1329 Mark all *path operations* in this router as deprecated. 

1330 

1331 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1332 

1333 Read more about it in the 

1334 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1335 """ 

1336 ), 

1337 ] = None, 

1338 include_in_schema: Annotated[ 

1339 bool, 

1340 Doc( 

1341 """ 

1342 Include (or not) all the *path operations* in this router in the 

1343 generated OpenAPI schema. 

1344 

1345 This affects the generated OpenAPI (e.g. visible at `/docs`). 

1346 """ 

1347 ), 

1348 ] = True, 

1349 generate_unique_id_function: Annotated[ 

1350 Callable[[APIRoute], str], 

1351 Doc( 

1352 """ 

1353 Customize the function used to generate unique IDs for the *path 

1354 operations* shown in the generated OpenAPI. 

1355 

1356 This is particularly useful when automatically generating clients or 

1357 SDKs for your API. 

1358 

1359 Read more about it in the 

1360 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

1361 """ 

1362 ), 

1363 ] = Default(generate_unique_id), 

1364 ) -> None: 

1365 """ 

1366 Include another `APIRouter` in the same current `APIRouter`. 

1367 

1368 Read more about it in the 

1369 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/). 

1370 

1371 ## Example 

1372 

1373 ```python 

1374 from fastapi import APIRouter, FastAPI 

1375 

1376 app = FastAPI() 

1377 internal_router = APIRouter() 

1378 users_router = APIRouter() 

1379 

1380 @users_router.get("/users/") 

1381 def read_users(): 

1382 return [{"name": "Rick"}, {"name": "Morty"}] 

1383 

1384 internal_router.include_router(users_router) 

1385 app.include_router(internal_router) 

1386 ``` 

1387 """ 

1388 assert self is not router, ( 2a q g0:b;b=b?b*b+b;ZdSeSe F fSh k l IcOcLcb r h0@b[b]b^b,b-b=ZgShSf H iSi m n JcPcMcd c s i0_b`b{b|b.b/b?ZjSkSg J lSj o p KcQcNc

1389 "Cannot include the same APIRouter instance into itself. " 

1390 "Did you mean to include a different router?" 

1391 ) 

1392 if prefix: 2a q g0:b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r h0@b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s i0_b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1393 assert prefix.startswith("/"), "A path prefix must start with '/'" 2a IcOcLcb JcPcMcd c KcQcNc

1394 assert not prefix.endswith("/"), ( 2a IcOcLcb JcPcMcd c KcQcNc

1395 "A path prefix must not end with '/', as the routes will start with '/'" 

1396 ) 

1397 else: 

1398 for r in router.routes: 2a q g0:b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r h0@b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s i0_b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1399 path = getattr(r, "path") # noqa: B009 2a q g0:b;b=b?b*b+bk l IcOcLcb r h0@b[b]b^b,b-bm n JcPcMcd c s i0_b`b{b|b.b/bo p KcQcNc

1400 name = getattr(r, "name", "unknown") 2a q g0:b;b=b?b*b+bk l IcOcLcb r h0@b[b]b^b,b-bm n JcPcMcd c s i0_b`b{b|b.b/bo p KcQcNc

1401 if path is not None and not path: 2a q g0:b;b=b?b*b+bk l IcOcLcb r h0@b[b]b^b,b-bm n JcPcMcd c s i0_b`b{b|b.b/bo p KcQcNc

1402 raise FastAPIError( 2g0h0i0

1403 f"Prefix and path cannot be both empty (path operation: {name})" 

1404 ) 

1405 if responses is None: 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1406 responses = {} 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1407 for route in router.routes: 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1408 if isinstance(route, APIRoute): 2a q :b;b=b?b*b+bk l IcOcLcb r @b[b]b^b,b-bm n JcPcMcd c s _b`b{b|b.b/bo p KcQcNc

1409 combined_responses = {**responses, **route.responses} 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1410 use_response_class = get_value_or_default( 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1411 route.response_class, 

1412 router.default_response_class, 

1413 default_response_class, 

1414 self.default_response_class, 

1415 ) 

1416 current_tags = [] 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1417 if tags: 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1418 current_tags.extend(tags) 1abdc

1419 if route.tags: 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1420 current_tags.extend(route.tags) 1abdc

1421 current_dependencies: list[params.Depends] = [] 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1422 if dependencies: 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1423 current_dependencies.extend(dependencies) 1abdc

1424 if route.dependencies: 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1425 current_dependencies.extend(route.dependencies) 1abdc

1426 current_callbacks = [] 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1427 if callbacks: 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1428 current_callbacks.extend(callbacks) 1abdc

1429 if route.callbacks: 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1430 current_callbacks.extend(route.callbacks) 1abdc

1431 current_generate_unique_id = get_value_or_default( 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1432 route.generate_unique_id_function, 

1433 router.generate_unique_id_function, 

1434 generate_unique_id_function, 

1435 self.generate_unique_id_function, 

1436 ) 

1437 self.add_api_route( 2a q :b;b=b?b*b+bk l b r @b[b]b^b,b-bm n d c s _b`b{b|b.b/bo p

1438 prefix + route.path, 

1439 route.endpoint, 

1440 response_model=route.response_model, 

1441 status_code=route.status_code, 

1442 tags=current_tags, 

1443 dependencies=current_dependencies, 

1444 summary=route.summary, 

1445 description=route.description, 

1446 response_description=route.response_description, 

1447 responses=combined_responses, 

1448 deprecated=route.deprecated or deprecated or self.deprecated, 

1449 methods=route.methods, 

1450 operation_id=route.operation_id, 

1451 response_model_include=route.response_model_include, 

1452 response_model_exclude=route.response_model_exclude, 

1453 response_model_by_alias=route.response_model_by_alias, 

1454 response_model_exclude_unset=route.response_model_exclude_unset, 

1455 response_model_exclude_defaults=route.response_model_exclude_defaults, 

1456 response_model_exclude_none=route.response_model_exclude_none, 

1457 include_in_schema=route.include_in_schema 

1458 and self.include_in_schema 

1459 and include_in_schema, 

1460 response_class=use_response_class, 

1461 name=route.name, 

1462 route_class_override=type(route), 

1463 callbacks=current_callbacks, 

1464 openapi_extra=route.openapi_extra, 

1465 generate_unique_id_function=current_generate_unique_id, 

1466 ) 

1467 elif isinstance(route, routing.Route): 2a IcOcLcb JcPcMcd c KcQcNc

1468 methods = list(route.methods or []) 1abdc

1469 self.add_route( 1abdc

1470 prefix + route.path, 

1471 route.endpoint, 

1472 methods=methods, 

1473 include_in_schema=route.include_in_schema, 

1474 name=route.name, 

1475 ) 

1476 elif isinstance(route, APIWebSocketRoute): 2a IcOcLcb JcPcMcd c KcQcNc

1477 current_dependencies = [] 2a IcOcLcb JcPcMcd c KcQcNc

1478 if dependencies: 2a IcOcLcb JcPcMcd c KcQcNc

1479 current_dependencies.extend(dependencies) 1abdc

1480 if route.dependencies: 2a IcOcLcb JcPcMcd c KcQcNc

1481 current_dependencies.extend(route.dependencies) 1abdc

1482 self.add_api_websocket_route( 2a IcOcLcb JcPcMcd c KcQcNc

1483 prefix + route.path, 

1484 route.endpoint, 

1485 dependencies=current_dependencies, 

1486 name=route.name, 

1487 ) 

1488 elif isinstance(route, routing.WebSocketRoute): 2a IcOcLcb JcPcMcd c KcQcNc

1489 self.add_websocket_route( 2a IcOcLcb JcPcMcd c KcQcNc

1490 prefix + route.path, route.endpoint, name=route.name 

1491 ) 

1492 for handler in router.on_startup: 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1493 self.add_event_handler("startup", handler) 1ehfigj

1494 for handler in router.on_shutdown: 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1495 self.add_event_handler("shutdown", handler) 1ehfigj

1496 self.lifespan_context = _merge_lifespan_context( 2a q :b;b=b?b*b+bdSeSe F fSh k l IcOcLcb r @b[b]b^b,b-bgShSf H iSi m n JcPcMcd c s _b`b{b|b.b/bjSkSg J lSj o p KcQcNc

1497 self.lifespan_context, 

1498 router.lifespan_context, 

1499 ) 

1500 

1501 def get( 2a b {Zd c

1502 self, 

1503 path: Annotated[ 

1504 str, 

1505 Doc( 

1506 """ 

1507 The URL path to be used for this *path operation*. 

1508 

1509 For example, in `http://example.com/items`, the path is `/items`. 

1510 """ 

1511 ), 

1512 ], 

1513 *, 

1514 response_model: Annotated[ 

1515 Any, 

1516 Doc( 

1517 """ 

1518 The type to use for the response. 

1519 

1520 It could be any valid Pydantic *field* type. So, it doesn't have to 

1521 be a Pydantic model, it could be other things, like a `list`, `dict`, 

1522 etc. 

1523 

1524 It will be used for: 

1525 

1526 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

1527 show it as the response (JSON Schema). 

1528 * Serialization: you could return an arbitrary object and the 

1529 `response_model` would be used to serialize that object into the 

1530 corresponding JSON. 

1531 * Filtering: the JSON sent to the client will only contain the data 

1532 (fields) defined in the `response_model`. If you returned an object 

1533 that contains an attribute `password` but the `response_model` does 

1534 not include that field, the JSON sent to the client would not have 

1535 that `password`. 

1536 * Validation: whatever you return will be serialized with the 

1537 `response_model`, converting any data as necessary to generate the 

1538 corresponding JSON. But if the data in the object returned is not 

1539 valid, that would mean a violation of the contract with the client, 

1540 so it's an error from the API developer. So, FastAPI will raise an 

1541 error and return a 500 error code (Internal Server Error). 

1542 

1543 Read more about it in the 

1544 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

1545 """ 

1546 ), 

1547 ] = Default(None), 

1548 status_code: Annotated[ 

1549 int | None, 

1550 Doc( 

1551 """ 

1552 The default status code to be used for the response. 

1553 

1554 You could override the status code by returning a response directly. 

1555 

1556 Read more about it in the 

1557 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

1558 """ 

1559 ), 

1560 ] = None, 

1561 tags: Annotated[ 

1562 list[str | Enum] | None, 

1563 Doc( 

1564 """ 

1565 A list of tags to be applied to the *path operation*. 

1566 

1567 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1568 

1569 Read more about it in the 

1570 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

1571 """ 

1572 ), 

1573 ] = None, 

1574 dependencies: Annotated[ 

1575 Sequence[params.Depends] | None, 

1576 Doc( 

1577 """ 

1578 A list of dependencies (using `Depends()`) to be applied to the 

1579 *path operation*. 

1580 

1581 Read more about it in the 

1582 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

1583 """ 

1584 ), 

1585 ] = None, 

1586 summary: Annotated[ 

1587 str | None, 

1588 Doc( 

1589 """ 

1590 A summary for the *path operation*. 

1591 

1592 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1593 

1594 Read more about it in the 

1595 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1596 """ 

1597 ), 

1598 ] = None, 

1599 description: Annotated[ 

1600 str | None, 

1601 Doc( 

1602 """ 

1603 A description for the *path operation*. 

1604 

1605 If not provided, it will be extracted automatically from the docstring 

1606 of the *path operation function*. 

1607 

1608 It can contain Markdown. 

1609 

1610 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1611 

1612 Read more about it in the 

1613 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1614 """ 

1615 ), 

1616 ] = None, 

1617 response_description: Annotated[ 

1618 str, 

1619 Doc( 

1620 """ 

1621 The description for the default response. 

1622 

1623 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1624 """ 

1625 ), 

1626 ] = "Successful Response", 

1627 responses: Annotated[ 

1628 dict[int | str, dict[str, Any]] | None, 

1629 Doc( 

1630 """ 

1631 Additional responses that could be returned by this *path operation*. 

1632 

1633 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1634 """ 

1635 ), 

1636 ] = None, 

1637 deprecated: Annotated[ 

1638 bool | None, 

1639 Doc( 

1640 """ 

1641 Mark this *path operation* as deprecated. 

1642 

1643 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1644 """ 

1645 ), 

1646 ] = None, 

1647 operation_id: Annotated[ 

1648 str | None, 

1649 Doc( 

1650 """ 

1651 Custom operation ID to be used by this *path operation*. 

1652 

1653 By default, it is generated automatically. 

1654 

1655 If you provide a custom operation ID, you need to make sure it is 

1656 unique for the whole API. 

1657 

1658 You can customize the 

1659 operation ID generation with the parameter 

1660 `generate_unique_id_function` in the `FastAPI` class. 

1661 

1662 Read more about it in the 

1663 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

1664 """ 

1665 ), 

1666 ] = None, 

1667 response_model_include: Annotated[ 

1668 IncEx | None, 

1669 Doc( 

1670 """ 

1671 Configuration passed to Pydantic to include only certain fields in the 

1672 response data. 

1673 

1674 Read more about it in the 

1675 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1676 """ 

1677 ), 

1678 ] = None, 

1679 response_model_exclude: Annotated[ 

1680 IncEx | None, 

1681 Doc( 

1682 """ 

1683 Configuration passed to Pydantic to exclude certain fields in the 

1684 response data. 

1685 

1686 Read more about it in the 

1687 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1688 """ 

1689 ), 

1690 ] = None, 

1691 response_model_by_alias: Annotated[ 

1692 bool, 

1693 Doc( 

1694 """ 

1695 Configuration passed to Pydantic to define if the response model 

1696 should be serialized by alias when an alias is used. 

1697 

1698 Read more about it in the 

1699 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1700 """ 

1701 ), 

1702 ] = True, 

1703 response_model_exclude_unset: Annotated[ 

1704 bool, 

1705 Doc( 

1706 """ 

1707 Configuration passed to Pydantic to define if the response data 

1708 should have all the fields, including the ones that were not set and 

1709 have their default values. This is different from 

1710 `response_model_exclude_defaults` in that if the fields are set, 

1711 they will be included in the response, even if the value is the same 

1712 as the default. 

1713 

1714 When `True`, default values are omitted from the response. 

1715 

1716 Read more about it in the 

1717 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

1718 """ 

1719 ), 

1720 ] = False, 

1721 response_model_exclude_defaults: Annotated[ 

1722 bool, 

1723 Doc( 

1724 """ 

1725 Configuration passed to Pydantic to define if the response data 

1726 should have all the fields, including the ones that have the same value 

1727 as the default. This is different from `response_model_exclude_unset` 

1728 in that if the fields are set but contain the same default values, 

1729 they will be excluded from the response. 

1730 

1731 When `True`, default values are omitted from the response. 

1732 

1733 Read more about it in the 

1734 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

1735 """ 

1736 ), 

1737 ] = False, 

1738 response_model_exclude_none: Annotated[ 

1739 bool, 

1740 Doc( 

1741 """ 

1742 Configuration passed to Pydantic to define if the response data should 

1743 exclude fields set to `None`. 

1744 

1745 This is much simpler (less smart) than `response_model_exclude_unset` 

1746 and `response_model_exclude_defaults`. You probably want to use one of 

1747 those two instead of this one, as those allow returning `None` values 

1748 when it makes sense. 

1749 

1750 Read more about it in the 

1751 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

1752 """ 

1753 ), 

1754 ] = False, 

1755 include_in_schema: Annotated[ 

1756 bool, 

1757 Doc( 

1758 """ 

1759 Include this *path operation* in the generated OpenAPI schema. 

1760 

1761 This affects the generated OpenAPI (e.g. visible at `/docs`). 

1762 

1763 Read more about it in the 

1764 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

1765 """ 

1766 ), 

1767 ] = True, 

1768 response_class: Annotated[ 

1769 type[Response], 

1770 Doc( 

1771 """ 

1772 Response class to be used for this *path operation*. 

1773 

1774 This will not be used if you return a response directly. 

1775 

1776 Read more about it in the 

1777 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

1778 """ 

1779 ), 

1780 ] = Default(JSONResponse), 

1781 name: Annotated[ 

1782 str | None, 

1783 Doc( 

1784 """ 

1785 Name for this *path operation*. Only used internally. 

1786 """ 

1787 ), 

1788 ] = None, 

1789 callbacks: Annotated[ 

1790 list[BaseRoute] | None, 

1791 Doc( 

1792 """ 

1793 List of *path operations* that will be used as OpenAPI callbacks. 

1794 

1795 This is only for OpenAPI documentation, the callbacks won't be used 

1796 directly. 

1797 

1798 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1799 

1800 Read more about it in the 

1801 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

1802 """ 

1803 ), 

1804 ] = None, 

1805 openapi_extra: Annotated[ 

1806 dict[str, Any] | None, 

1807 Doc( 

1808 """ 

1809 Extra metadata to be included in the OpenAPI schema for this *path 

1810 operation*. 

1811 

1812 Read more about it in the 

1813 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

1814 """ 

1815 ), 

1816 ] = None, 

1817 generate_unique_id_function: Annotated[ 

1818 Callable[[APIRoute], str], 

1819 Doc( 

1820 """ 

1821 Customize the function used to generate unique IDs for the *path 

1822 operations* shown in the generated OpenAPI. 

1823 

1824 This is particularly useful when automatically generating clients or 

1825 SDKs for your API. 

1826 

1827 Read more about it in the 

1828 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

1829 """ 

1830 ), 

1831 ] = Default(generate_unique_id), 

1832 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1833 """ 

1834 Add a *path operation* using an HTTP GET operation. 

1835 

1836 ## Example 

1837 

1838 ```python 

1839 from fastapi import APIRouter, FastAPI 

1840 

1841 app = FastAPI() 

1842 router = APIRouter() 

1843 

1844 @router.get("/items/") 

1845 def read_items(): 

1846 return [{"name": "Empanada"}, {"name": "Arepa"}] 

1847 

1848 app.include_router(router) 

1849 ``` 

1850 """ 

1851 return self.api_route( 2a 7b(ypbq + ; } = rq? #c$c%c'c(c)c*c+c,c-c.ct C u }b~b5 v lefh+fqc%bsbtbubvbwb1bxbybzb,fRcghSchhcb( , R e F V h k l 6 kcAbrchcBbsctcCbDb-f!b$ b 8b)yqbr - @ eb[ sq] }c~cadbdcdddedfdgdhdidw D x acbc8 y xc'bEbFbGbHbIb2bJbKbLb.fTcihUcjhib) . S f H Y i m n 9 lc^ MbycicNbzcAcObPb/f#b% d c 9b*yrbs / _ kb` tq{ tdudvdwdxdydzdAdBdCdDdz E A ccdc# B mekh:fEc(bQbRbSb4bTb3bUbVbWb;fVclhWcmhob* : T g J 1 j o p 2 mcXbFcjcYbGcHcZb0b=f$b'

1852 path=path, 

1853 response_model=response_model, 

1854 status_code=status_code, 

1855 tags=tags, 

1856 dependencies=dependencies, 

1857 summary=summary, 

1858 description=description, 

1859 response_description=response_description, 

1860 responses=responses, 

1861 deprecated=deprecated, 

1862 methods=["GET"], 

1863 operation_id=operation_id, 

1864 response_model_include=response_model_include, 

1865 response_model_exclude=response_model_exclude, 

1866 response_model_by_alias=response_model_by_alias, 

1867 response_model_exclude_unset=response_model_exclude_unset, 

1868 response_model_exclude_defaults=response_model_exclude_defaults, 

1869 response_model_exclude_none=response_model_exclude_none, 

1870 include_in_schema=include_in_schema, 

1871 response_class=response_class, 

1872 name=name, 

1873 callbacks=callbacks, 

1874 openapi_extra=openapi_extra, 

1875 generate_unique_id_function=generate_unique_id_function, 

1876 ) 

1877 

1878 def put( 2a b {Zd c

1879 self, 

1880 path: Annotated[ 

1881 str, 

1882 Doc( 

1883 """ 

1884 The URL path to be used for this *path operation*. 

1885 

1886 For example, in `http://example.com/items`, the path is `/items`. 

1887 """ 

1888 ), 

1889 ], 

1890 *, 

1891 response_model: Annotated[ 

1892 Any, 

1893 Doc( 

1894 """ 

1895 The type to use for the response. 

1896 

1897 It could be any valid Pydantic *field* type. So, it doesn't have to 

1898 be a Pydantic model, it could be other things, like a `list`, `dict`, 

1899 etc. 

1900 

1901 It will be used for: 

1902 

1903 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

1904 show it as the response (JSON Schema). 

1905 * Serialization: you could return an arbitrary object and the 

1906 `response_model` would be used to serialize that object into the 

1907 corresponding JSON. 

1908 * Filtering: the JSON sent to the client will only contain the data 

1909 (fields) defined in the `response_model`. If you returned an object 

1910 that contains an attribute `password` but the `response_model` does 

1911 not include that field, the JSON sent to the client would not have 

1912 that `password`. 

1913 * Validation: whatever you return will be serialized with the 

1914 `response_model`, converting any data as necessary to generate the 

1915 corresponding JSON. But if the data in the object returned is not 

1916 valid, that would mean a violation of the contract with the client, 

1917 so it's an error from the API developer. So, FastAPI will raise an 

1918 error and return a 500 error code (Internal Server Error). 

1919 

1920 Read more about it in the 

1921 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

1922 """ 

1923 ), 

1924 ] = Default(None), 

1925 status_code: Annotated[ 

1926 int | None, 

1927 Doc( 

1928 """ 

1929 The default status code to be used for the response. 

1930 

1931 You could override the status code by returning a response directly. 

1932 

1933 Read more about it in the 

1934 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

1935 """ 

1936 ), 

1937 ] = None, 

1938 tags: Annotated[ 

1939 list[str | Enum] | None, 

1940 Doc( 

1941 """ 

1942 A list of tags to be applied to the *path operation*. 

1943 

1944 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1945 

1946 Read more about it in the 

1947 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

1948 """ 

1949 ), 

1950 ] = None, 

1951 dependencies: Annotated[ 

1952 Sequence[params.Depends] | None, 

1953 Doc( 

1954 """ 

1955 A list of dependencies (using `Depends()`) to be applied to the 

1956 *path operation*. 

1957 

1958 Read more about it in the 

1959 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

1960 """ 

1961 ), 

1962 ] = None, 

1963 summary: Annotated[ 

1964 str | None, 

1965 Doc( 

1966 """ 

1967 A summary for the *path operation*. 

1968 

1969 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1970 

1971 Read more about it in the 

1972 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1973 """ 

1974 ), 

1975 ] = None, 

1976 description: Annotated[ 

1977 str | None, 

1978 Doc( 

1979 """ 

1980 A description for the *path operation*. 

1981 

1982 If not provided, it will be extracted automatically from the docstring 

1983 of the *path operation function*. 

1984 

1985 It can contain Markdown. 

1986 

1987 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1988 

1989 Read more about it in the 

1990 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1991 """ 

1992 ), 

1993 ] = None, 

1994 response_description: Annotated[ 

1995 str, 

1996 Doc( 

1997 """ 

1998 The description for the default response. 

1999 

2000 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2001 """ 

2002 ), 

2003 ] = "Successful Response", 

2004 responses: Annotated[ 

2005 dict[int | str, dict[str, Any]] | None, 

2006 Doc( 

2007 """ 

2008 Additional responses that could be returned by this *path operation*. 

2009 

2010 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2011 """ 

2012 ), 

2013 ] = None, 

2014 deprecated: Annotated[ 

2015 bool | None, 

2016 Doc( 

2017 """ 

2018 Mark this *path operation* as deprecated. 

2019 

2020 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2021 """ 

2022 ), 

2023 ] = None, 

2024 operation_id: Annotated[ 

2025 str | None, 

2026 Doc( 

2027 """ 

2028 Custom operation ID to be used by this *path operation*. 

2029 

2030 By default, it is generated automatically. 

2031 

2032 If you provide a custom operation ID, you need to make sure it is 

2033 unique for the whole API. 

2034 

2035 You can customize the 

2036 operation ID generation with the parameter 

2037 `generate_unique_id_function` in the `FastAPI` class. 

2038 

2039 Read more about it in the 

2040 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2041 """ 

2042 ), 

2043 ] = None, 

2044 response_model_include: Annotated[ 

2045 IncEx | None, 

2046 Doc( 

2047 """ 

2048 Configuration passed to Pydantic to include only certain fields in the 

2049 response data. 

2050 

2051 Read more about it in the 

2052 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2053 """ 

2054 ), 

2055 ] = None, 

2056 response_model_exclude: Annotated[ 

2057 IncEx | None, 

2058 Doc( 

2059 """ 

2060 Configuration passed to Pydantic to exclude certain fields in the 

2061 response data. 

2062 

2063 Read more about it in the 

2064 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2065 """ 

2066 ), 

2067 ] = None, 

2068 response_model_by_alias: Annotated[ 

2069 bool, 

2070 Doc( 

2071 """ 

2072 Configuration passed to Pydantic to define if the response model 

2073 should be serialized by alias when an alias is used. 

2074 

2075 Read more about it in the 

2076 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2077 """ 

2078 ), 

2079 ] = True, 

2080 response_model_exclude_unset: Annotated[ 

2081 bool, 

2082 Doc( 

2083 """ 

2084 Configuration passed to Pydantic to define if the response data 

2085 should have all the fields, including the ones that were not set and 

2086 have their default values. This is different from 

2087 `response_model_exclude_defaults` in that if the fields are set, 

2088 they will be included in the response, even if the value is the same 

2089 as the default. 

2090 

2091 When `True`, default values are omitted from the response. 

2092 

2093 Read more about it in the 

2094 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2095 """ 

2096 ), 

2097 ] = False, 

2098 response_model_exclude_defaults: Annotated[ 

2099 bool, 

2100 Doc( 

2101 """ 

2102 Configuration passed to Pydantic to define if the response data 

2103 should have all the fields, including the ones that have the same value 

2104 as the default. This is different from `response_model_exclude_unset` 

2105 in that if the fields are set but contain the same default values, 

2106 they will be excluded from the response. 

2107 

2108 When `True`, default values are omitted from the response. 

2109 

2110 Read more about it in the 

2111 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2112 """ 

2113 ), 

2114 ] = False, 

2115 response_model_exclude_none: Annotated[ 

2116 bool, 

2117 Doc( 

2118 """ 

2119 Configuration passed to Pydantic to define if the response data should 

2120 exclude fields set to `None`. 

2121 

2122 This is much simpler (less smart) than `response_model_exclude_unset` 

2123 and `response_model_exclude_defaults`. You probably want to use one of 

2124 those two instead of this one, as those allow returning `None` values 

2125 when it makes sense. 

2126 

2127 Read more about it in the 

2128 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

2129 """ 

2130 ), 

2131 ] = False, 

2132 include_in_schema: Annotated[ 

2133 bool, 

2134 Doc( 

2135 """ 

2136 Include this *path operation* in the generated OpenAPI schema. 

2137 

2138 This affects the generated OpenAPI (e.g. visible at `/docs`). 

2139 

2140 Read more about it in the 

2141 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

2142 """ 

2143 ), 

2144 ] = True, 

2145 response_class: Annotated[ 

2146 type[Response], 

2147 Doc( 

2148 """ 

2149 Response class to be used for this *path operation*. 

2150 

2151 This will not be used if you return a response directly. 

2152 

2153 Read more about it in the 

2154 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

2155 """ 

2156 ), 

2157 ] = Default(JSONResponse), 

2158 name: Annotated[ 

2159 str | None, 

2160 Doc( 

2161 """ 

2162 Name for this *path operation*. Only used internally. 

2163 """ 

2164 ), 

2165 ] = None, 

2166 callbacks: Annotated[ 

2167 list[BaseRoute] | None, 

2168 Doc( 

2169 """ 

2170 List of *path operations* that will be used as OpenAPI callbacks. 

2171 

2172 This is only for OpenAPI documentation, the callbacks won't be used 

2173 directly. 

2174 

2175 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2176 

2177 Read more about it in the 

2178 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

2179 """ 

2180 ), 

2181 ] = None, 

2182 openapi_extra: Annotated[ 

2183 dict[str, Any] | None, 

2184 Doc( 

2185 """ 

2186 Extra metadata to be included in the OpenAPI schema for this *path 

2187 operation*. 

2188 

2189 Read more about it in the 

2190 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

2191 """ 

2192 ), 

2193 ] = None, 

2194 generate_unique_id_function: Annotated[ 

2195 Callable[[APIRoute], str], 

2196 Doc( 

2197 """ 

2198 Customize the function used to generate unique IDs for the *path 

2199 operations* shown in the generated OpenAPI. 

2200 

2201 This is particularly useful when automatically generating clients or 

2202 SDKs for your API. 

2203 

2204 Read more about it in the 

2205 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2206 """ 

2207 ), 

2208 ] = Default(generate_unique_id), 

2209 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

2210 """ 

2211 Add a *path operation* using an HTTP PUT operation. 

2212 

2213 ## Example 

2214 

2215 ```python 

2216 from fastapi import APIRouter, FastAPI 

2217 from pydantic import BaseModel 

2218 

2219 class Item(BaseModel): 

2220 name: str 

2221 description: str | None = None 

2222 

2223 app = FastAPI() 

2224 router = APIRouter() 

2225 

2226 @router.put("/items/{item_id}") 

2227 def replace_item(item_id: str, item: Item): 

2228 return {"message": "Item replaced", "id": item_id} 

2229 

2230 app.include_router(router) 

2231 ``` 

2232 """ 

2233 return self.api_route( 1abdc

2234 path=path, 

2235 response_model=response_model, 

2236 status_code=status_code, 

2237 tags=tags, 

2238 dependencies=dependencies, 

2239 summary=summary, 

2240 description=description, 

2241 response_description=response_description, 

2242 responses=responses, 

2243 deprecated=deprecated, 

2244 methods=["PUT"], 

2245 operation_id=operation_id, 

2246 response_model_include=response_model_include, 

2247 response_model_exclude=response_model_exclude, 

2248 response_model_by_alias=response_model_by_alias, 

2249 response_model_exclude_unset=response_model_exclude_unset, 

2250 response_model_exclude_defaults=response_model_exclude_defaults, 

2251 response_model_exclude_none=response_model_exclude_none, 

2252 include_in_schema=include_in_schema, 

2253 response_class=response_class, 

2254 name=name, 

2255 callbacks=callbacks, 

2256 openapi_extra=openapi_extra, 

2257 generate_unique_id_function=generate_unique_id_function, 

2258 ) 

2259 

2260 def post( 2a b {Zd c

2261 self, 

2262 path: Annotated[ 

2263 str, 

2264 Doc( 

2265 """ 

2266 The URL path to be used for this *path operation*. 

2267 

2268 For example, in `http://example.com/items`, the path is `/items`. 

2269 """ 

2270 ), 

2271 ], 

2272 *, 

2273 response_model: Annotated[ 

2274 Any, 

2275 Doc( 

2276 """ 

2277 The type to use for the response. 

2278 

2279 It could be any valid Pydantic *field* type. So, it doesn't have to 

2280 be a Pydantic model, it could be other things, like a `list`, `dict`, 

2281 etc. 

2282 

2283 It will be used for: 

2284 

2285 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

2286 show it as the response (JSON Schema). 

2287 * Serialization: you could return an arbitrary object and the 

2288 `response_model` would be used to serialize that object into the 

2289 corresponding JSON. 

2290 * Filtering: the JSON sent to the client will only contain the data 

2291 (fields) defined in the `response_model`. If you returned an object 

2292 that contains an attribute `password` but the `response_model` does 

2293 not include that field, the JSON sent to the client would not have 

2294 that `password`. 

2295 * Validation: whatever you return will be serialized with the 

2296 `response_model`, converting any data as necessary to generate the 

2297 corresponding JSON. But if the data in the object returned is not 

2298 valid, that would mean a violation of the contract with the client, 

2299 so it's an error from the API developer. So, FastAPI will raise an 

2300 error and return a 500 error code (Internal Server Error). 

2301 

2302 Read more about it in the 

2303 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

2304 """ 

2305 ), 

2306 ] = Default(None), 

2307 status_code: Annotated[ 

2308 int | None, 

2309 Doc( 

2310 """ 

2311 The default status code to be used for the response. 

2312 

2313 You could override the status code by returning a response directly. 

2314 

2315 Read more about it in the 

2316 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

2317 """ 

2318 ), 

2319 ] = None, 

2320 tags: Annotated[ 

2321 list[str | Enum] | None, 

2322 Doc( 

2323 """ 

2324 A list of tags to be applied to the *path operation*. 

2325 

2326 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2327 

2328 Read more about it in the 

2329 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

2330 """ 

2331 ), 

2332 ] = None, 

2333 dependencies: Annotated[ 

2334 Sequence[params.Depends] | None, 

2335 Doc( 

2336 """ 

2337 A list of dependencies (using `Depends()`) to be applied to the 

2338 *path operation*. 

2339 

2340 Read more about it in the 

2341 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

2342 """ 

2343 ), 

2344 ] = None, 

2345 summary: Annotated[ 

2346 str | None, 

2347 Doc( 

2348 """ 

2349 A summary for the *path operation*. 

2350 

2351 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2352 

2353 Read more about it in the 

2354 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2355 """ 

2356 ), 

2357 ] = None, 

2358 description: Annotated[ 

2359 str | None, 

2360 Doc( 

2361 """ 

2362 A description for the *path operation*. 

2363 

2364 If not provided, it will be extracted automatically from the docstring 

2365 of the *path operation function*. 

2366 

2367 It can contain Markdown. 

2368 

2369 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2370 

2371 Read more about it in the 

2372 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2373 """ 

2374 ), 

2375 ] = None, 

2376 response_description: Annotated[ 

2377 str, 

2378 Doc( 

2379 """ 

2380 The description for the default response. 

2381 

2382 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2383 """ 

2384 ), 

2385 ] = "Successful Response", 

2386 responses: Annotated[ 

2387 dict[int | str, dict[str, Any]] | None, 

2388 Doc( 

2389 """ 

2390 Additional responses that could be returned by this *path operation*. 

2391 

2392 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2393 """ 

2394 ), 

2395 ] = None, 

2396 deprecated: Annotated[ 

2397 bool | None, 

2398 Doc( 

2399 """ 

2400 Mark this *path operation* as deprecated. 

2401 

2402 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2403 """ 

2404 ), 

2405 ] = None, 

2406 operation_id: Annotated[ 

2407 str | None, 

2408 Doc( 

2409 """ 

2410 Custom operation ID to be used by this *path operation*. 

2411 

2412 By default, it is generated automatically. 

2413 

2414 If you provide a custom operation ID, you need to make sure it is 

2415 unique for the whole API. 

2416 

2417 You can customize the 

2418 operation ID generation with the parameter 

2419 `generate_unique_id_function` in the `FastAPI` class. 

2420 

2421 Read more about it in the 

2422 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2423 """ 

2424 ), 

2425 ] = None, 

2426 response_model_include: Annotated[ 

2427 IncEx | None, 

2428 Doc( 

2429 """ 

2430 Configuration passed to Pydantic to include only certain fields in the 

2431 response data. 

2432 

2433 Read more about it in the 

2434 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2435 """ 

2436 ), 

2437 ] = None, 

2438 response_model_exclude: Annotated[ 

2439 IncEx | None, 

2440 Doc( 

2441 """ 

2442 Configuration passed to Pydantic to exclude certain fields in the 

2443 response data. 

2444 

2445 Read more about it in the 

2446 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2447 """ 

2448 ), 

2449 ] = None, 

2450 response_model_by_alias: Annotated[ 

2451 bool, 

2452 Doc( 

2453 """ 

2454 Configuration passed to Pydantic to define if the response model 

2455 should be serialized by alias when an alias is used. 

2456 

2457 Read more about it in the 

2458 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2459 """ 

2460 ), 

2461 ] = True, 

2462 response_model_exclude_unset: Annotated[ 

2463 bool, 

2464 Doc( 

2465 """ 

2466 Configuration passed to Pydantic to define if the response data 

2467 should have all the fields, including the ones that were not set and 

2468 have their default values. This is different from 

2469 `response_model_exclude_defaults` in that if the fields are set, 

2470 they will be included in the response, even if the value is the same 

2471 as the default. 

2472 

2473 When `True`, default values are omitted from the response. 

2474 

2475 Read more about it in the 

2476 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2477 """ 

2478 ), 

2479 ] = False, 

2480 response_model_exclude_defaults: Annotated[ 

2481 bool, 

2482 Doc( 

2483 """ 

2484 Configuration passed to Pydantic to define if the response data 

2485 should have all the fields, including the ones that have the same value 

2486 as the default. This is different from `response_model_exclude_unset` 

2487 in that if the fields are set but contain the same default values, 

2488 they will be excluded from the response. 

2489 

2490 When `True`, default values are omitted from the response. 

2491 

2492 Read more about it in the 

2493 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2494 """ 

2495 ), 

2496 ] = False, 

2497 response_model_exclude_none: Annotated[ 

2498 bool, 

2499 Doc( 

2500 """ 

2501 Configuration passed to Pydantic to define if the response data should 

2502 exclude fields set to `None`. 

2503 

2504 This is much simpler (less smart) than `response_model_exclude_unset` 

2505 and `response_model_exclude_defaults`. You probably want to use one of 

2506 those two instead of this one, as those allow returning `None` values 

2507 when it makes sense. 

2508 

2509 Read more about it in the 

2510 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

2511 """ 

2512 ), 

2513 ] = False, 

2514 include_in_schema: Annotated[ 

2515 bool, 

2516 Doc( 

2517 """ 

2518 Include this *path operation* in the generated OpenAPI schema. 

2519 

2520 This affects the generated OpenAPI (e.g. visible at `/docs`). 

2521 

2522 Read more about it in the 

2523 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

2524 """ 

2525 ), 

2526 ] = True, 

2527 response_class: Annotated[ 

2528 type[Response], 

2529 Doc( 

2530 """ 

2531 Response class to be used for this *path operation*. 

2532 

2533 This will not be used if you return a response directly. 

2534 

2535 Read more about it in the 

2536 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

2537 """ 

2538 ), 

2539 ] = Default(JSONResponse), 

2540 name: Annotated[ 

2541 str | None, 

2542 Doc( 

2543 """ 

2544 Name for this *path operation*. Only used internally. 

2545 """ 

2546 ), 

2547 ] = None, 

2548 callbacks: Annotated[ 

2549 list[BaseRoute] | None, 

2550 Doc( 

2551 """ 

2552 List of *path operations* that will be used as OpenAPI callbacks. 

2553 

2554 This is only for OpenAPI documentation, the callbacks won't be used 

2555 directly. 

2556 

2557 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2558 

2559 Read more about it in the 

2560 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

2561 """ 

2562 ), 

2563 ] = None, 

2564 openapi_extra: Annotated[ 

2565 dict[str, Any] | None, 

2566 Doc( 

2567 """ 

2568 Extra metadata to be included in the OpenAPI schema for this *path 

2569 operation*. 

2570 

2571 Read more about it in the 

2572 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

2573 """ 

2574 ), 

2575 ] = None, 

2576 generate_unique_id_function: Annotated[ 

2577 Callable[[APIRoute], str], 

2578 Doc( 

2579 """ 

2580 Customize the function used to generate unique IDs for the *path 

2581 operations* shown in the generated OpenAPI. 

2582 

2583 This is particularly useful when automatically generating clients or 

2584 SDKs for your API. 

2585 

2586 Read more about it in the 

2587 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2588 """ 

2589 ), 

2590 ] = Default(generate_unique_id), 

2591 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

2592 """ 

2593 Add a *path operation* using an HTTP POST operation. 

2594 

2595 ## Example 

2596 

2597 ```python 

2598 from fastapi import APIRouter, FastAPI 

2599 from pydantic import BaseModel 

2600 

2601 class Item(BaseModel): 

2602 name: str 

2603 description: str | None = None 

2604 

2605 app = FastAPI() 

2606 router = APIRouter() 

2607 

2608 @router.post("/items/") 

2609 def create_item(item: Item): 

2610 return {"message": "Item created"} 

2611 

2612 app.include_router(router) 

2613 ``` 

2614 """ 

2615 return self.api_route( 2a 4 L | :bec;b=b?b*b+bnc~ /c:c;c=c?c@c[c]c^c_coct C u }b~b5 v `c{c|cU abpcbb5b6 kcW M G b 7 N db@bfc[b]b^b,b-bucfbjdkdldmdndodpdqdrdsdvcw D x acbc8 y X gbwchb6b9 lcZ O I d c ! P jb_bgc`b{b|b.b/bBclbEdFdGdHdIdJdKdLdMdNdCcz E A ccdc# B OdPdQd0 mbDcnb)b2 mc3 Q K

2616 path=path, 

2617 response_model=response_model, 

2618 status_code=status_code, 

2619 tags=tags, 

2620 dependencies=dependencies, 

2621 summary=summary, 

2622 description=description, 

2623 response_description=response_description, 

2624 responses=responses, 

2625 deprecated=deprecated, 

2626 methods=["POST"], 

2627 operation_id=operation_id, 

2628 response_model_include=response_model_include, 

2629 response_model_exclude=response_model_exclude, 

2630 response_model_by_alias=response_model_by_alias, 

2631 response_model_exclude_unset=response_model_exclude_unset, 

2632 response_model_exclude_defaults=response_model_exclude_defaults, 

2633 response_model_exclude_none=response_model_exclude_none, 

2634 include_in_schema=include_in_schema, 

2635 response_class=response_class, 

2636 name=name, 

2637 callbacks=callbacks, 

2638 openapi_extra=openapi_extra, 

2639 generate_unique_id_function=generate_unique_id_function, 

2640 ) 

2641 

2642 def delete( 2a b {Zd c

2643 self, 

2644 path: Annotated[ 

2645 str, 

2646 Doc( 

2647 """ 

2648 The URL path to be used for this *path operation*. 

2649 

2650 For example, in `http://example.com/items`, the path is `/items`. 

2651 """ 

2652 ), 

2653 ], 

2654 *, 

2655 response_model: Annotated[ 

2656 Any, 

2657 Doc( 

2658 """ 

2659 The type to use for the response. 

2660 

2661 It could be any valid Pydantic *field* type. So, it doesn't have to 

2662 be a Pydantic model, it could be other things, like a `list`, `dict`, 

2663 etc. 

2664 

2665 It will be used for: 

2666 

2667 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

2668 show it as the response (JSON Schema). 

2669 * Serialization: you could return an arbitrary object and the 

2670 `response_model` would be used to serialize that object into the 

2671 corresponding JSON. 

2672 * Filtering: the JSON sent to the client will only contain the data 

2673 (fields) defined in the `response_model`. If you returned an object 

2674 that contains an attribute `password` but the `response_model` does 

2675 not include that field, the JSON sent to the client would not have 

2676 that `password`. 

2677 * Validation: whatever you return will be serialized with the 

2678 `response_model`, converting any data as necessary to generate the 

2679 corresponding JSON. But if the data in the object returned is not 

2680 valid, that would mean a violation of the contract with the client, 

2681 so it's an error from the API developer. So, FastAPI will raise an 

2682 error and return a 500 error code (Internal Server Error). 

2683 

2684 Read more about it in the 

2685 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

2686 """ 

2687 ), 

2688 ] = Default(None), 

2689 status_code: Annotated[ 

2690 int | None, 

2691 Doc( 

2692 """ 

2693 The default status code to be used for the response. 

2694 

2695 You could override the status code by returning a response directly. 

2696 

2697 Read more about it in the 

2698 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

2699 """ 

2700 ), 

2701 ] = None, 

2702 tags: Annotated[ 

2703 list[str | Enum] | None, 

2704 Doc( 

2705 """ 

2706 A list of tags to be applied to the *path operation*. 

2707 

2708 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2709 

2710 Read more about it in the 

2711 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

2712 """ 

2713 ), 

2714 ] = None, 

2715 dependencies: Annotated[ 

2716 Sequence[params.Depends] | None, 

2717 Doc( 

2718 """ 

2719 A list of dependencies (using `Depends()`) to be applied to the 

2720 *path operation*. 

2721 

2722 Read more about it in the 

2723 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

2724 """ 

2725 ), 

2726 ] = None, 

2727 summary: Annotated[ 

2728 str | None, 

2729 Doc( 

2730 """ 

2731 A summary for the *path operation*. 

2732 

2733 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2734 

2735 Read more about it in the 

2736 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2737 """ 

2738 ), 

2739 ] = None, 

2740 description: Annotated[ 

2741 str | None, 

2742 Doc( 

2743 """ 

2744 A description for the *path operation*. 

2745 

2746 If not provided, it will be extracted automatically from the docstring 

2747 of the *path operation function*. 

2748 

2749 It can contain Markdown. 

2750 

2751 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2752 

2753 Read more about it in the 

2754 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2755 """ 

2756 ), 

2757 ] = None, 

2758 response_description: Annotated[ 

2759 str, 

2760 Doc( 

2761 """ 

2762 The description for the default response. 

2763 

2764 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2765 """ 

2766 ), 

2767 ] = "Successful Response", 

2768 responses: Annotated[ 

2769 dict[int | str, dict[str, Any]] | None, 

2770 Doc( 

2771 """ 

2772 Additional responses that could be returned by this *path operation*. 

2773 

2774 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2775 """ 

2776 ), 

2777 ] = None, 

2778 deprecated: Annotated[ 

2779 bool | None, 

2780 Doc( 

2781 """ 

2782 Mark this *path operation* as deprecated. 

2783 

2784 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2785 """ 

2786 ), 

2787 ] = None, 

2788 operation_id: Annotated[ 

2789 str | None, 

2790 Doc( 

2791 """ 

2792 Custom operation ID to be used by this *path operation*. 

2793 

2794 By default, it is generated automatically. 

2795 

2796 If you provide a custom operation ID, you need to make sure it is 

2797 unique for the whole API. 

2798 

2799 You can customize the 

2800 operation ID generation with the parameter 

2801 `generate_unique_id_function` in the `FastAPI` class. 

2802 

2803 Read more about it in the 

2804 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2805 """ 

2806 ), 

2807 ] = None, 

2808 response_model_include: Annotated[ 

2809 IncEx | None, 

2810 Doc( 

2811 """ 

2812 Configuration passed to Pydantic to include only certain fields in the 

2813 response data. 

2814 

2815 Read more about it in the 

2816 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2817 """ 

2818 ), 

2819 ] = None, 

2820 response_model_exclude: Annotated[ 

2821 IncEx | None, 

2822 Doc( 

2823 """ 

2824 Configuration passed to Pydantic to exclude certain fields in the 

2825 response data. 

2826 

2827 Read more about it in the 

2828 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2829 """ 

2830 ), 

2831 ] = None, 

2832 response_model_by_alias: Annotated[ 

2833 bool, 

2834 Doc( 

2835 """ 

2836 Configuration passed to Pydantic to define if the response model 

2837 should be serialized by alias when an alias is used. 

2838 

2839 Read more about it in the 

2840 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2841 """ 

2842 ), 

2843 ] = True, 

2844 response_model_exclude_unset: Annotated[ 

2845 bool, 

2846 Doc( 

2847 """ 

2848 Configuration passed to Pydantic to define if the response data 

2849 should have all the fields, including the ones that were not set and 

2850 have their default values. This is different from 

2851 `response_model_exclude_defaults` in that if the fields are set, 

2852 they will be included in the response, even if the value is the same 

2853 as the default. 

2854 

2855 When `True`, default values are omitted from the response. 

2856 

2857 Read more about it in the 

2858 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2859 """ 

2860 ), 

2861 ] = False, 

2862 response_model_exclude_defaults: Annotated[ 

2863 bool, 

2864 Doc( 

2865 """ 

2866 Configuration passed to Pydantic to define if the response data 

2867 should have all the fields, including the ones that have the same value 

2868 as the default. This is different from `response_model_exclude_unset` 

2869 in that if the fields are set but contain the same default values, 

2870 they will be excluded from the response. 

2871 

2872 When `True`, default values are omitted from the response. 

2873 

2874 Read more about it in the 

2875 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2876 """ 

2877 ), 

2878 ] = False, 

2879 response_model_exclude_none: Annotated[ 

2880 bool, 

2881 Doc( 

2882 """ 

2883 Configuration passed to Pydantic to define if the response data should 

2884 exclude fields set to `None`. 

2885 

2886 This is much simpler (less smart) than `response_model_exclude_unset` 

2887 and `response_model_exclude_defaults`. You probably want to use one of 

2888 those two instead of this one, as those allow returning `None` values 

2889 when it makes sense. 

2890 

2891 Read more about it in the 

2892 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

2893 """ 

2894 ), 

2895 ] = False, 

2896 include_in_schema: Annotated[ 

2897 bool, 

2898 Doc( 

2899 """ 

2900 Include this *path operation* in the generated OpenAPI schema. 

2901 

2902 This affects the generated OpenAPI (e.g. visible at `/docs`). 

2903 

2904 Read more about it in the 

2905 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

2906 """ 

2907 ), 

2908 ] = True, 

2909 response_class: Annotated[ 

2910 type[Response], 

2911 Doc( 

2912 """ 

2913 Response class to be used for this *path operation*. 

2914 

2915 This will not be used if you return a response directly. 

2916 

2917 Read more about it in the 

2918 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

2919 """ 

2920 ), 

2921 ] = Default(JSONResponse), 

2922 name: Annotated[ 

2923 str | None, 

2924 Doc( 

2925 """ 

2926 Name for this *path operation*. Only used internally. 

2927 """ 

2928 ), 

2929 ] = None, 

2930 callbacks: Annotated[ 

2931 list[BaseRoute] | None, 

2932 Doc( 

2933 """ 

2934 List of *path operations* that will be used as OpenAPI callbacks. 

2935 

2936 This is only for OpenAPI documentation, the callbacks won't be used 

2937 directly. 

2938 

2939 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2940 

2941 Read more about it in the 

2942 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

2943 """ 

2944 ), 

2945 ] = None, 

2946 openapi_extra: Annotated[ 

2947 dict[str, Any] | None, 

2948 Doc( 

2949 """ 

2950 Extra metadata to be included in the OpenAPI schema for this *path 

2951 operation*. 

2952 

2953 Read more about it in the 

2954 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

2955 """ 

2956 ), 

2957 ] = None, 

2958 generate_unique_id_function: Annotated[ 

2959 Callable[[APIRoute], str], 

2960 Doc( 

2961 """ 

2962 Customize the function used to generate unique IDs for the *path 

2963 operations* shown in the generated OpenAPI. 

2964 

2965 This is particularly useful when automatically generating clients or 

2966 SDKs for your API. 

2967 

2968 Read more about it in the 

2969 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2970 """ 

2971 ), 

2972 ] = Default(generate_unique_id), 

2973 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

2974 """ 

2975 Add a *path operation* using an HTTP DELETE operation. 

2976 

2977 ## Example 

2978 

2979 ```python 

2980 from fastapi import APIRouter, FastAPI 

2981 

2982 app = FastAPI() 

2983 router = APIRouter() 

2984 

2985 @router.delete("/items/{item_id}") 

2986 def delete_item(item_id: str): 

2987 return {"message": "Item deleted"} 

2988 

2989 app.include_router(router) 

2990 ``` 

2991 """ 

2992 return self.api_route( 1abdc

2993 path=path, 

2994 response_model=response_model, 

2995 status_code=status_code, 

2996 tags=tags, 

2997 dependencies=dependencies, 

2998 summary=summary, 

2999 description=description, 

3000 response_description=response_description, 

3001 responses=responses, 

3002 deprecated=deprecated, 

3003 methods=["DELETE"], 

3004 operation_id=operation_id, 

3005 response_model_include=response_model_include, 

3006 response_model_exclude=response_model_exclude, 

3007 response_model_by_alias=response_model_by_alias, 

3008 response_model_exclude_unset=response_model_exclude_unset, 

3009 response_model_exclude_defaults=response_model_exclude_defaults, 

3010 response_model_exclude_none=response_model_exclude_none, 

3011 include_in_schema=include_in_schema, 

3012 response_class=response_class, 

3013 name=name, 

3014 callbacks=callbacks, 

3015 openapi_extra=openapi_extra, 

3016 generate_unique_id_function=generate_unique_id_function, 

3017 ) 

3018 

3019 def options( 2a b {Zd c

3020 self, 

3021 path: Annotated[ 

3022 str, 

3023 Doc( 

3024 """ 

3025 The URL path to be used for this *path operation*. 

3026 

3027 For example, in `http://example.com/items`, the path is `/items`. 

3028 """ 

3029 ), 

3030 ], 

3031 *, 

3032 response_model: Annotated[ 

3033 Any, 

3034 Doc( 

3035 """ 

3036 The type to use for the response. 

3037 

3038 It could be any valid Pydantic *field* type. So, it doesn't have to 

3039 be a Pydantic model, it could be other things, like a `list`, `dict`, 

3040 etc. 

3041 

3042 It will be used for: 

3043 

3044 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

3045 show it as the response (JSON Schema). 

3046 * Serialization: you could return an arbitrary object and the 

3047 `response_model` would be used to serialize that object into the 

3048 corresponding JSON. 

3049 * Filtering: the JSON sent to the client will only contain the data 

3050 (fields) defined in the `response_model`. If you returned an object 

3051 that contains an attribute `password` but the `response_model` does 

3052 not include that field, the JSON sent to the client would not have 

3053 that `password`. 

3054 * Validation: whatever you return will be serialized with the 

3055 `response_model`, converting any data as necessary to generate the 

3056 corresponding JSON. But if the data in the object returned is not 

3057 valid, that would mean a violation of the contract with the client, 

3058 so it's an error from the API developer. So, FastAPI will raise an 

3059 error and return a 500 error code (Internal Server Error). 

3060 

3061 Read more about it in the 

3062 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

3063 """ 

3064 ), 

3065 ] = Default(None), 

3066 status_code: Annotated[ 

3067 int | None, 

3068 Doc( 

3069 """ 

3070 The default status code to be used for the response. 

3071 

3072 You could override the status code by returning a response directly. 

3073 

3074 Read more about it in the 

3075 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

3076 """ 

3077 ), 

3078 ] = None, 

3079 tags: Annotated[ 

3080 list[str | Enum] | None, 

3081 Doc( 

3082 """ 

3083 A list of tags to be applied to the *path operation*. 

3084 

3085 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3086 

3087 Read more about it in the 

3088 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

3089 """ 

3090 ), 

3091 ] = None, 

3092 dependencies: Annotated[ 

3093 Sequence[params.Depends] | None, 

3094 Doc( 

3095 """ 

3096 A list of dependencies (using `Depends()`) to be applied to the 

3097 *path operation*. 

3098 

3099 Read more about it in the 

3100 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

3101 """ 

3102 ), 

3103 ] = None, 

3104 summary: Annotated[ 

3105 str | None, 

3106 Doc( 

3107 """ 

3108 A summary for the *path operation*. 

3109 

3110 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3111 

3112 Read more about it in the 

3113 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3114 """ 

3115 ), 

3116 ] = None, 

3117 description: Annotated[ 

3118 str | None, 

3119 Doc( 

3120 """ 

3121 A description for the *path operation*. 

3122 

3123 If not provided, it will be extracted automatically from the docstring 

3124 of the *path operation function*. 

3125 

3126 It can contain Markdown. 

3127 

3128 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3129 

3130 Read more about it in the 

3131 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3132 """ 

3133 ), 

3134 ] = None, 

3135 response_description: Annotated[ 

3136 str, 

3137 Doc( 

3138 """ 

3139 The description for the default response. 

3140 

3141 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3142 """ 

3143 ), 

3144 ] = "Successful Response", 

3145 responses: Annotated[ 

3146 dict[int | str, dict[str, Any]] | None, 

3147 Doc( 

3148 """ 

3149 Additional responses that could be returned by this *path operation*. 

3150 

3151 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3152 """ 

3153 ), 

3154 ] = None, 

3155 deprecated: Annotated[ 

3156 bool | None, 

3157 Doc( 

3158 """ 

3159 Mark this *path operation* as deprecated. 

3160 

3161 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3162 """ 

3163 ), 

3164 ] = None, 

3165 operation_id: Annotated[ 

3166 str | None, 

3167 Doc( 

3168 """ 

3169 Custom operation ID to be used by this *path operation*. 

3170 

3171 By default, it is generated automatically. 

3172 

3173 If you provide a custom operation ID, you need to make sure it is 

3174 unique for the whole API. 

3175 

3176 You can customize the 

3177 operation ID generation with the parameter 

3178 `generate_unique_id_function` in the `FastAPI` class. 

3179 

3180 Read more about it in the 

3181 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3182 """ 

3183 ), 

3184 ] = None, 

3185 response_model_include: Annotated[ 

3186 IncEx | None, 

3187 Doc( 

3188 """ 

3189 Configuration passed to Pydantic to include only certain fields in the 

3190 response data. 

3191 

3192 Read more about it in the 

3193 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3194 """ 

3195 ), 

3196 ] = None, 

3197 response_model_exclude: Annotated[ 

3198 IncEx | None, 

3199 Doc( 

3200 """ 

3201 Configuration passed to Pydantic to exclude certain fields in the 

3202 response data. 

3203 

3204 Read more about it in the 

3205 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3206 """ 

3207 ), 

3208 ] = None, 

3209 response_model_by_alias: Annotated[ 

3210 bool, 

3211 Doc( 

3212 """ 

3213 Configuration passed to Pydantic to define if the response model 

3214 should be serialized by alias when an alias is used. 

3215 

3216 Read more about it in the 

3217 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3218 """ 

3219 ), 

3220 ] = True, 

3221 response_model_exclude_unset: Annotated[ 

3222 bool, 

3223 Doc( 

3224 """ 

3225 Configuration passed to Pydantic to define if the response data 

3226 should have all the fields, including the ones that were not set and 

3227 have their default values. This is different from 

3228 `response_model_exclude_defaults` in that if the fields are set, 

3229 they will be included in the response, even if the value is the same 

3230 as the default. 

3231 

3232 When `True`, default values are omitted from the response. 

3233 

3234 Read more about it in the 

3235 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3236 """ 

3237 ), 

3238 ] = False, 

3239 response_model_exclude_defaults: Annotated[ 

3240 bool, 

3241 Doc( 

3242 """ 

3243 Configuration passed to Pydantic to define if the response data 

3244 should have all the fields, including the ones that have the same value 

3245 as the default. This is different from `response_model_exclude_unset` 

3246 in that if the fields are set but contain the same default values, 

3247 they will be excluded from the response. 

3248 

3249 When `True`, default values are omitted from the response. 

3250 

3251 Read more about it in the 

3252 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3253 """ 

3254 ), 

3255 ] = False, 

3256 response_model_exclude_none: Annotated[ 

3257 bool, 

3258 Doc( 

3259 """ 

3260 Configuration passed to Pydantic to define if the response data should 

3261 exclude fields set to `None`. 

3262 

3263 This is much simpler (less smart) than `response_model_exclude_unset` 

3264 and `response_model_exclude_defaults`. You probably want to use one of 

3265 those two instead of this one, as those allow returning `None` values 

3266 when it makes sense. 

3267 

3268 Read more about it in the 

3269 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

3270 """ 

3271 ), 

3272 ] = False, 

3273 include_in_schema: Annotated[ 

3274 bool, 

3275 Doc( 

3276 """ 

3277 Include this *path operation* in the generated OpenAPI schema. 

3278 

3279 This affects the generated OpenAPI (e.g. visible at `/docs`). 

3280 

3281 Read more about it in the 

3282 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

3283 """ 

3284 ), 

3285 ] = True, 

3286 response_class: Annotated[ 

3287 type[Response], 

3288 Doc( 

3289 """ 

3290 Response class to be used for this *path operation*. 

3291 

3292 This will not be used if you return a response directly. 

3293 

3294 Read more about it in the 

3295 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

3296 """ 

3297 ), 

3298 ] = Default(JSONResponse), 

3299 name: Annotated[ 

3300 str | None, 

3301 Doc( 

3302 """ 

3303 Name for this *path operation*. Only used internally. 

3304 """ 

3305 ), 

3306 ] = None, 

3307 callbacks: Annotated[ 

3308 list[BaseRoute] | None, 

3309 Doc( 

3310 """ 

3311 List of *path operations* that will be used as OpenAPI callbacks. 

3312 

3313 This is only for OpenAPI documentation, the callbacks won't be used 

3314 directly. 

3315 

3316 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3317 

3318 Read more about it in the 

3319 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

3320 """ 

3321 ), 

3322 ] = None, 

3323 openapi_extra: Annotated[ 

3324 dict[str, Any] | None, 

3325 Doc( 

3326 """ 

3327 Extra metadata to be included in the OpenAPI schema for this *path 

3328 operation*. 

3329 

3330 Read more about it in the 

3331 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

3332 """ 

3333 ), 

3334 ] = None, 

3335 generate_unique_id_function: Annotated[ 

3336 Callable[[APIRoute], str], 

3337 Doc( 

3338 """ 

3339 Customize the function used to generate unique IDs for the *path 

3340 operations* shown in the generated OpenAPI. 

3341 

3342 This is particularly useful when automatically generating clients or 

3343 SDKs for your API. 

3344 

3345 Read more about it in the 

3346 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3347 """ 

3348 ), 

3349 ] = Default(generate_unique_id), 

3350 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

3351 """ 

3352 Add a *path operation* using an HTTP OPTIONS operation. 

3353 

3354 ## Example 

3355 

3356 ```python 

3357 from fastapi import APIRouter, FastAPI 

3358 

3359 app = FastAPI() 

3360 router = APIRouter() 

3361 

3362 @router.options("/items/") 

3363 def get_item_options(): 

3364 return {"additions": ["Aji", "Guacamole"]} 

3365 

3366 app.include_router(router) 

3367 ``` 

3368 """ 

3369 return self.api_route( 1abdc

3370 path=path, 

3371 response_model=response_model, 

3372 status_code=status_code, 

3373 tags=tags, 

3374 dependencies=dependencies, 

3375 summary=summary, 

3376 description=description, 

3377 response_description=response_description, 

3378 responses=responses, 

3379 deprecated=deprecated, 

3380 methods=["OPTIONS"], 

3381 operation_id=operation_id, 

3382 response_model_include=response_model_include, 

3383 response_model_exclude=response_model_exclude, 

3384 response_model_by_alias=response_model_by_alias, 

3385 response_model_exclude_unset=response_model_exclude_unset, 

3386 response_model_exclude_defaults=response_model_exclude_defaults, 

3387 response_model_exclude_none=response_model_exclude_none, 

3388 include_in_schema=include_in_schema, 

3389 response_class=response_class, 

3390 name=name, 

3391 callbacks=callbacks, 

3392 openapi_extra=openapi_extra, 

3393 generate_unique_id_function=generate_unique_id_function, 

3394 ) 

3395 

3396 def head( 2a b {Zd c

3397 self, 

3398 path: Annotated[ 

3399 str, 

3400 Doc( 

3401 """ 

3402 The URL path to be used for this *path operation*. 

3403 

3404 For example, in `http://example.com/items`, the path is `/items`. 

3405 """ 

3406 ), 

3407 ], 

3408 *, 

3409 response_model: Annotated[ 

3410 Any, 

3411 Doc( 

3412 """ 

3413 The type to use for the response. 

3414 

3415 It could be any valid Pydantic *field* type. So, it doesn't have to 

3416 be a Pydantic model, it could be other things, like a `list`, `dict`, 

3417 etc. 

3418 

3419 It will be used for: 

3420 

3421 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

3422 show it as the response (JSON Schema). 

3423 * Serialization: you could return an arbitrary object and the 

3424 `response_model` would be used to serialize that object into the 

3425 corresponding JSON. 

3426 * Filtering: the JSON sent to the client will only contain the data 

3427 (fields) defined in the `response_model`. If you returned an object 

3428 that contains an attribute `password` but the `response_model` does 

3429 not include that field, the JSON sent to the client would not have 

3430 that `password`. 

3431 * Validation: whatever you return will be serialized with the 

3432 `response_model`, converting any data as necessary to generate the 

3433 corresponding JSON. But if the data in the object returned is not 

3434 valid, that would mean a violation of the contract with the client, 

3435 so it's an error from the API developer. So, FastAPI will raise an 

3436 error and return a 500 error code (Internal Server Error). 

3437 

3438 Read more about it in the 

3439 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

3440 """ 

3441 ), 

3442 ] = Default(None), 

3443 status_code: Annotated[ 

3444 int | None, 

3445 Doc( 

3446 """ 

3447 The default status code to be used for the response. 

3448 

3449 You could override the status code by returning a response directly. 

3450 

3451 Read more about it in the 

3452 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

3453 """ 

3454 ), 

3455 ] = None, 

3456 tags: Annotated[ 

3457 list[str | Enum] | None, 

3458 Doc( 

3459 """ 

3460 A list of tags to be applied to the *path operation*. 

3461 

3462 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3463 

3464 Read more about it in the 

3465 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

3466 """ 

3467 ), 

3468 ] = None, 

3469 dependencies: Annotated[ 

3470 Sequence[params.Depends] | None, 

3471 Doc( 

3472 """ 

3473 A list of dependencies (using `Depends()`) to be applied to the 

3474 *path operation*. 

3475 

3476 Read more about it in the 

3477 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

3478 """ 

3479 ), 

3480 ] = None, 

3481 summary: Annotated[ 

3482 str | None, 

3483 Doc( 

3484 """ 

3485 A summary for the *path operation*. 

3486 

3487 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3488 

3489 Read more about it in the 

3490 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3491 """ 

3492 ), 

3493 ] = None, 

3494 description: Annotated[ 

3495 str | None, 

3496 Doc( 

3497 """ 

3498 A description for the *path operation*. 

3499 

3500 If not provided, it will be extracted automatically from the docstring 

3501 of the *path operation function*. 

3502 

3503 It can contain Markdown. 

3504 

3505 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3506 

3507 Read more about it in the 

3508 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3509 """ 

3510 ), 

3511 ] = None, 

3512 response_description: Annotated[ 

3513 str, 

3514 Doc( 

3515 """ 

3516 The description for the default response. 

3517 

3518 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3519 """ 

3520 ), 

3521 ] = "Successful Response", 

3522 responses: Annotated[ 

3523 dict[int | str, dict[str, Any]] | None, 

3524 Doc( 

3525 """ 

3526 Additional responses that could be returned by this *path operation*. 

3527 

3528 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3529 """ 

3530 ), 

3531 ] = None, 

3532 deprecated: Annotated[ 

3533 bool | None, 

3534 Doc( 

3535 """ 

3536 Mark this *path operation* as deprecated. 

3537 

3538 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3539 """ 

3540 ), 

3541 ] = None, 

3542 operation_id: Annotated[ 

3543 str | None, 

3544 Doc( 

3545 """ 

3546 Custom operation ID to be used by this *path operation*. 

3547 

3548 By default, it is generated automatically. 

3549 

3550 If you provide a custom operation ID, you need to make sure it is 

3551 unique for the whole API. 

3552 

3553 You can customize the 

3554 operation ID generation with the parameter 

3555 `generate_unique_id_function` in the `FastAPI` class. 

3556 

3557 Read more about it in the 

3558 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3559 """ 

3560 ), 

3561 ] = None, 

3562 response_model_include: Annotated[ 

3563 IncEx | None, 

3564 Doc( 

3565 """ 

3566 Configuration passed to Pydantic to include only certain fields in the 

3567 response data. 

3568 

3569 Read more about it in the 

3570 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3571 """ 

3572 ), 

3573 ] = None, 

3574 response_model_exclude: Annotated[ 

3575 IncEx | None, 

3576 Doc( 

3577 """ 

3578 Configuration passed to Pydantic to exclude certain fields in the 

3579 response data. 

3580 

3581 Read more about it in the 

3582 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3583 """ 

3584 ), 

3585 ] = None, 

3586 response_model_by_alias: Annotated[ 

3587 bool, 

3588 Doc( 

3589 """ 

3590 Configuration passed to Pydantic to define if the response model 

3591 should be serialized by alias when an alias is used. 

3592 

3593 Read more about it in the 

3594 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3595 """ 

3596 ), 

3597 ] = True, 

3598 response_model_exclude_unset: Annotated[ 

3599 bool, 

3600 Doc( 

3601 """ 

3602 Configuration passed to Pydantic to define if the response data 

3603 should have all the fields, including the ones that were not set and 

3604 have their default values. This is different from 

3605 `response_model_exclude_defaults` in that if the fields are set, 

3606 they will be included in the response, even if the value is the same 

3607 as the default. 

3608 

3609 When `True`, default values are omitted from the response. 

3610 

3611 Read more about it in the 

3612 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3613 """ 

3614 ), 

3615 ] = False, 

3616 response_model_exclude_defaults: Annotated[ 

3617 bool, 

3618 Doc( 

3619 """ 

3620 Configuration passed to Pydantic to define if the response data 

3621 should have all the fields, including the ones that have the same value 

3622 as the default. This is different from `response_model_exclude_unset` 

3623 in that if the fields are set but contain the same default values, 

3624 they will be excluded from the response. 

3625 

3626 When `True`, default values are omitted from the response. 

3627 

3628 Read more about it in the 

3629 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3630 """ 

3631 ), 

3632 ] = False, 

3633 response_model_exclude_none: Annotated[ 

3634 bool, 

3635 Doc( 

3636 """ 

3637 Configuration passed to Pydantic to define if the response data should 

3638 exclude fields set to `None`. 

3639 

3640 This is much simpler (less smart) than `response_model_exclude_unset` 

3641 and `response_model_exclude_defaults`. You probably want to use one of 

3642 those two instead of this one, as those allow returning `None` values 

3643 when it makes sense. 

3644 

3645 Read more about it in the 

3646 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

3647 """ 

3648 ), 

3649 ] = False, 

3650 include_in_schema: Annotated[ 

3651 bool, 

3652 Doc( 

3653 """ 

3654 Include this *path operation* in the generated OpenAPI schema. 

3655 

3656 This affects the generated OpenAPI (e.g. visible at `/docs`). 

3657 

3658 Read more about it in the 

3659 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

3660 """ 

3661 ), 

3662 ] = True, 

3663 response_class: Annotated[ 

3664 type[Response], 

3665 Doc( 

3666 """ 

3667 Response class to be used for this *path operation*. 

3668 

3669 This will not be used if you return a response directly. 

3670 

3671 Read more about it in the 

3672 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

3673 """ 

3674 ), 

3675 ] = Default(JSONResponse), 

3676 name: Annotated[ 

3677 str | None, 

3678 Doc( 

3679 """ 

3680 Name for this *path operation*. Only used internally. 

3681 """ 

3682 ), 

3683 ] = None, 

3684 callbacks: Annotated[ 

3685 list[BaseRoute] | None, 

3686 Doc( 

3687 """ 

3688 List of *path operations* that will be used as OpenAPI callbacks. 

3689 

3690 This is only for OpenAPI documentation, the callbacks won't be used 

3691 directly. 

3692 

3693 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3694 

3695 Read more about it in the 

3696 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

3697 """ 

3698 ), 

3699 ] = None, 

3700 openapi_extra: Annotated[ 

3701 dict[str, Any] | None, 

3702 Doc( 

3703 """ 

3704 Extra metadata to be included in the OpenAPI schema for this *path 

3705 operation*. 

3706 

3707 Read more about it in the 

3708 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

3709 """ 

3710 ), 

3711 ] = None, 

3712 generate_unique_id_function: Annotated[ 

3713 Callable[[APIRoute], str], 

3714 Doc( 

3715 """ 

3716 Customize the function used to generate unique IDs for the *path 

3717 operations* shown in the generated OpenAPI. 

3718 

3719 This is particularly useful when automatically generating clients or 

3720 SDKs for your API. 

3721 

3722 Read more about it in the 

3723 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3724 """ 

3725 ), 

3726 ] = Default(generate_unique_id), 

3727 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

3728 """ 

3729 Add a *path operation* using an HTTP HEAD operation. 

3730 

3731 ## Example 

3732 

3733 ```python 

3734 from fastapi import APIRouter, FastAPI 

3735 from pydantic import BaseModel 

3736 

3737 class Item(BaseModel): 

3738 name: str 

3739 description: str | None = None 

3740 

3741 app = FastAPI() 

3742 router = APIRouter() 

3743 

3744 @router.head("/items/", status_code=204) 

3745 def get_items_headers(response: Response): 

3746 response.headers["X-Cat-Dog"] = "Alone in the world" 

3747 

3748 app.include_router(router) 

3749 ``` 

3750 """ 

3751 return self.api_route( 1abdc

3752 path=path, 

3753 response_model=response_model, 

3754 status_code=status_code, 

3755 tags=tags, 

3756 dependencies=dependencies, 

3757 summary=summary, 

3758 description=description, 

3759 response_description=response_description, 

3760 responses=responses, 

3761 deprecated=deprecated, 

3762 methods=["HEAD"], 

3763 operation_id=operation_id, 

3764 response_model_include=response_model_include, 

3765 response_model_exclude=response_model_exclude, 

3766 response_model_by_alias=response_model_by_alias, 

3767 response_model_exclude_unset=response_model_exclude_unset, 

3768 response_model_exclude_defaults=response_model_exclude_defaults, 

3769 response_model_exclude_none=response_model_exclude_none, 

3770 include_in_schema=include_in_schema, 

3771 response_class=response_class, 

3772 name=name, 

3773 callbacks=callbacks, 

3774 openapi_extra=openapi_extra, 

3775 generate_unique_id_function=generate_unique_id_function, 

3776 ) 

3777 

3778 def patch( 2a b {Zd c

3779 self, 

3780 path: Annotated[ 

3781 str, 

3782 Doc( 

3783 """ 

3784 The URL path to be used for this *path operation*. 

3785 

3786 For example, in `http://example.com/items`, the path is `/items`. 

3787 """ 

3788 ), 

3789 ], 

3790 *, 

3791 response_model: Annotated[ 

3792 Any, 

3793 Doc( 

3794 """ 

3795 The type to use for the response. 

3796 

3797 It could be any valid Pydantic *field* type. So, it doesn't have to 

3798 be a Pydantic model, it could be other things, like a `list`, `dict`, 

3799 etc. 

3800 

3801 It will be used for: 

3802 

3803 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

3804 show it as the response (JSON Schema). 

3805 * Serialization: you could return an arbitrary object and the 

3806 `response_model` would be used to serialize that object into the 

3807 corresponding JSON. 

3808 * Filtering: the JSON sent to the client will only contain the data 

3809 (fields) defined in the `response_model`. If you returned an object 

3810 that contains an attribute `password` but the `response_model` does 

3811 not include that field, the JSON sent to the client would not have 

3812 that `password`. 

3813 * Validation: whatever you return will be serialized with the 

3814 `response_model`, converting any data as necessary to generate the 

3815 corresponding JSON. But if the data in the object returned is not 

3816 valid, that would mean a violation of the contract with the client, 

3817 so it's an error from the API developer. So, FastAPI will raise an 

3818 error and return a 500 error code (Internal Server Error). 

3819 

3820 Read more about it in the 

3821 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

3822 """ 

3823 ), 

3824 ] = Default(None), 

3825 status_code: Annotated[ 

3826 int | None, 

3827 Doc( 

3828 """ 

3829 The default status code to be used for the response. 

3830 

3831 You could override the status code by returning a response directly. 

3832 

3833 Read more about it in the 

3834 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

3835 """ 

3836 ), 

3837 ] = None, 

3838 tags: Annotated[ 

3839 list[str | Enum] | None, 

3840 Doc( 

3841 """ 

3842 A list of tags to be applied to the *path operation*. 

3843 

3844 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3845 

3846 Read more about it in the 

3847 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

3848 """ 

3849 ), 

3850 ] = None, 

3851 dependencies: Annotated[ 

3852 Sequence[params.Depends] | None, 

3853 Doc( 

3854 """ 

3855 A list of dependencies (using `Depends()`) to be applied to the 

3856 *path operation*. 

3857 

3858 Read more about it in the 

3859 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

3860 """ 

3861 ), 

3862 ] = None, 

3863 summary: Annotated[ 

3864 str | None, 

3865 Doc( 

3866 """ 

3867 A summary for the *path operation*. 

3868 

3869 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3870 

3871 Read more about it in the 

3872 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3873 """ 

3874 ), 

3875 ] = None, 

3876 description: Annotated[ 

3877 str | None, 

3878 Doc( 

3879 """ 

3880 A description for the *path operation*. 

3881 

3882 If not provided, it will be extracted automatically from the docstring 

3883 of the *path operation function*. 

3884 

3885 It can contain Markdown. 

3886 

3887 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3888 

3889 Read more about it in the 

3890 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3891 """ 

3892 ), 

3893 ] = None, 

3894 response_description: Annotated[ 

3895 str, 

3896 Doc( 

3897 """ 

3898 The description for the default response. 

3899 

3900 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3901 """ 

3902 ), 

3903 ] = "Successful Response", 

3904 responses: Annotated[ 

3905 dict[int | str, dict[str, Any]] | None, 

3906 Doc( 

3907 """ 

3908 Additional responses that could be returned by this *path operation*. 

3909 

3910 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3911 """ 

3912 ), 

3913 ] = None, 

3914 deprecated: Annotated[ 

3915 bool | None, 

3916 Doc( 

3917 """ 

3918 Mark this *path operation* as deprecated. 

3919 

3920 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3921 """ 

3922 ), 

3923 ] = None, 

3924 operation_id: Annotated[ 

3925 str | None, 

3926 Doc( 

3927 """ 

3928 Custom operation ID to be used by this *path operation*. 

3929 

3930 By default, it is generated automatically. 

3931 

3932 If you provide a custom operation ID, you need to make sure it is 

3933 unique for the whole API. 

3934 

3935 You can customize the 

3936 operation ID generation with the parameter 

3937 `generate_unique_id_function` in the `FastAPI` class. 

3938 

3939 Read more about it in the 

3940 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3941 """ 

3942 ), 

3943 ] = None, 

3944 response_model_include: Annotated[ 

3945 IncEx | None, 

3946 Doc( 

3947 """ 

3948 Configuration passed to Pydantic to include only certain fields in the 

3949 response data. 

3950 

3951 Read more about it in the 

3952 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3953 """ 

3954 ), 

3955 ] = None, 

3956 response_model_exclude: Annotated[ 

3957 IncEx | None, 

3958 Doc( 

3959 """ 

3960 Configuration passed to Pydantic to exclude certain fields in the 

3961 response data. 

3962 

3963 Read more about it in the 

3964 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3965 """ 

3966 ), 

3967 ] = None, 

3968 response_model_by_alias: Annotated[ 

3969 bool, 

3970 Doc( 

3971 """ 

3972 Configuration passed to Pydantic to define if the response model 

3973 should be serialized by alias when an alias is used. 

3974 

3975 Read more about it in the 

3976 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3977 """ 

3978 ), 

3979 ] = True, 

3980 response_model_exclude_unset: Annotated[ 

3981 bool, 

3982 Doc( 

3983 """ 

3984 Configuration passed to Pydantic to define if the response data 

3985 should have all the fields, including the ones that were not set and 

3986 have their default values. This is different from 

3987 `response_model_exclude_defaults` in that if the fields are set, 

3988 they will be included in the response, even if the value is the same 

3989 as the default. 

3990 

3991 When `True`, default values are omitted from the response. 

3992 

3993 Read more about it in the 

3994 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3995 """ 

3996 ), 

3997 ] = False, 

3998 response_model_exclude_defaults: Annotated[ 

3999 bool, 

4000 Doc( 

4001 """ 

4002 Configuration passed to Pydantic to define if the response data 

4003 should have all the fields, including the ones that have the same value 

4004 as the default. This is different from `response_model_exclude_unset` 

4005 in that if the fields are set but contain the same default values, 

4006 they will be excluded from the response. 

4007 

4008 When `True`, default values are omitted from the response. 

4009 

4010 Read more about it in the 

4011 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

4012 """ 

4013 ), 

4014 ] = False, 

4015 response_model_exclude_none: Annotated[ 

4016 bool, 

4017 Doc( 

4018 """ 

4019 Configuration passed to Pydantic to define if the response data should 

4020 exclude fields set to `None`. 

4021 

4022 This is much simpler (less smart) than `response_model_exclude_unset` 

4023 and `response_model_exclude_defaults`. You probably want to use one of 

4024 those two instead of this one, as those allow returning `None` values 

4025 when it makes sense. 

4026 

4027 Read more about it in the 

4028 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

4029 """ 

4030 ), 

4031 ] = False, 

4032 include_in_schema: Annotated[ 

4033 bool, 

4034 Doc( 

4035 """ 

4036 Include this *path operation* in the generated OpenAPI schema. 

4037 

4038 This affects the generated OpenAPI (e.g. visible at `/docs`). 

4039 

4040 Read more about it in the 

4041 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

4042 """ 

4043 ), 

4044 ] = True, 

4045 response_class: Annotated[ 

4046 type[Response], 

4047 Doc( 

4048 """ 

4049 Response class to be used for this *path operation*. 

4050 

4051 This will not be used if you return a response directly. 

4052 

4053 Read more about it in the 

4054 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

4055 """ 

4056 ), 

4057 ] = Default(JSONResponse), 

4058 name: Annotated[ 

4059 str | None, 

4060 Doc( 

4061 """ 

4062 Name for this *path operation*. Only used internally. 

4063 """ 

4064 ), 

4065 ] = None, 

4066 callbacks: Annotated[ 

4067 list[BaseRoute] | None, 

4068 Doc( 

4069 """ 

4070 List of *path operations* that will be used as OpenAPI callbacks. 

4071 

4072 This is only for OpenAPI documentation, the callbacks won't be used 

4073 directly. 

4074 

4075 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4076 

4077 Read more about it in the 

4078 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

4079 """ 

4080 ), 

4081 ] = None, 

4082 openapi_extra: Annotated[ 

4083 dict[str, Any] | None, 

4084 Doc( 

4085 """ 

4086 Extra metadata to be included in the OpenAPI schema for this *path 

4087 operation*. 

4088 

4089 Read more about it in the 

4090 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

4091 """ 

4092 ), 

4093 ] = None, 

4094 generate_unique_id_function: Annotated[ 

4095 Callable[[APIRoute], str], 

4096 Doc( 

4097 """ 

4098 Customize the function used to generate unique IDs for the *path 

4099 operations* shown in the generated OpenAPI. 

4100 

4101 This is particularly useful when automatically generating clients or 

4102 SDKs for your API. 

4103 

4104 Read more about it in the 

4105 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

4106 """ 

4107 ), 

4108 ] = Default(generate_unique_id), 

4109 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

4110 """ 

4111 Add a *path operation* using an HTTP PATCH operation. 

4112 

4113 ## Example 

4114 

4115 ```python 

4116 from fastapi import APIRouter, FastAPI 

4117 from pydantic import BaseModel 

4118 

4119 class Item(BaseModel): 

4120 name: str 

4121 description: str | None = None 

4122 

4123 app = FastAPI() 

4124 router = APIRouter() 

4125 

4126 @router.patch("/items/") 

4127 def update_item(item: Item): 

4128 return {"message": "Item updated in place"} 

4129 

4130 app.include_router(router) 

4131 ``` 

4132 """ 

4133 return self.api_route( 1abdc

4134 path=path, 

4135 response_model=response_model, 

4136 status_code=status_code, 

4137 tags=tags, 

4138 dependencies=dependencies, 

4139 summary=summary, 

4140 description=description, 

4141 response_description=response_description, 

4142 responses=responses, 

4143 deprecated=deprecated, 

4144 methods=["PATCH"], 

4145 operation_id=operation_id, 

4146 response_model_include=response_model_include, 

4147 response_model_exclude=response_model_exclude, 

4148 response_model_by_alias=response_model_by_alias, 

4149 response_model_exclude_unset=response_model_exclude_unset, 

4150 response_model_exclude_defaults=response_model_exclude_defaults, 

4151 response_model_exclude_none=response_model_exclude_none, 

4152 include_in_schema=include_in_schema, 

4153 response_class=response_class, 

4154 name=name, 

4155 callbacks=callbacks, 

4156 openapi_extra=openapi_extra, 

4157 generate_unique_id_function=generate_unique_id_function, 

4158 ) 

4159 

4160 def trace( 2a b {Zd c

4161 self, 

4162 path: Annotated[ 

4163 str, 

4164 Doc( 

4165 """ 

4166 The URL path to be used for this *path operation*. 

4167 

4168 For example, in `http://example.com/items`, the path is `/items`. 

4169 """ 

4170 ), 

4171 ], 

4172 *, 

4173 response_model: Annotated[ 

4174 Any, 

4175 Doc( 

4176 """ 

4177 The type to use for the response. 

4178 

4179 It could be any valid Pydantic *field* type. So, it doesn't have to 

4180 be a Pydantic model, it could be other things, like a `list`, `dict`, 

4181 etc. 

4182 

4183 It will be used for: 

4184 

4185 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

4186 show it as the response (JSON Schema). 

4187 * Serialization: you could return an arbitrary object and the 

4188 `response_model` would be used to serialize that object into the 

4189 corresponding JSON. 

4190 * Filtering: the JSON sent to the client will only contain the data 

4191 (fields) defined in the `response_model`. If you returned an object 

4192 that contains an attribute `password` but the `response_model` does 

4193 not include that field, the JSON sent to the client would not have 

4194 that `password`. 

4195 * Validation: whatever you return will be serialized with the 

4196 `response_model`, converting any data as necessary to generate the 

4197 corresponding JSON. But if the data in the object returned is not 

4198 valid, that would mean a violation of the contract with the client, 

4199 so it's an error from the API developer. So, FastAPI will raise an 

4200 error and return a 500 error code (Internal Server Error). 

4201 

4202 Read more about it in the 

4203 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

4204 """ 

4205 ), 

4206 ] = Default(None), 

4207 status_code: Annotated[ 

4208 int | None, 

4209 Doc( 

4210 """ 

4211 The default status code to be used for the response. 

4212 

4213 You could override the status code by returning a response directly. 

4214 

4215 Read more about it in the 

4216 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

4217 """ 

4218 ), 

4219 ] = None, 

4220 tags: Annotated[ 

4221 list[str | Enum] | None, 

4222 Doc( 

4223 """ 

4224 A list of tags to be applied to the *path operation*. 

4225 

4226 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4227 

4228 Read more about it in the 

4229 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

4230 """ 

4231 ), 

4232 ] = None, 

4233 dependencies: Annotated[ 

4234 Sequence[params.Depends] | None, 

4235 Doc( 

4236 """ 

4237 A list of dependencies (using `Depends()`) to be applied to the 

4238 *path operation*. 

4239 

4240 Read more about it in the 

4241 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

4242 """ 

4243 ), 

4244 ] = None, 

4245 summary: Annotated[ 

4246 str | None, 

4247 Doc( 

4248 """ 

4249 A summary for the *path operation*. 

4250 

4251 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4252 

4253 Read more about it in the 

4254 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

4255 """ 

4256 ), 

4257 ] = None, 

4258 description: Annotated[ 

4259 str | None, 

4260 Doc( 

4261 """ 

4262 A description for the *path operation*. 

4263 

4264 If not provided, it will be extracted automatically from the docstring 

4265 of the *path operation function*. 

4266 

4267 It can contain Markdown. 

4268 

4269 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4270 

4271 Read more about it in the 

4272 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

4273 """ 

4274 ), 

4275 ] = None, 

4276 response_description: Annotated[ 

4277 str, 

4278 Doc( 

4279 """ 

4280 The description for the default response. 

4281 

4282 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4283 """ 

4284 ), 

4285 ] = "Successful Response", 

4286 responses: Annotated[ 

4287 dict[int | str, dict[str, Any]] | None, 

4288 Doc( 

4289 """ 

4290 Additional responses that could be returned by this *path operation*. 

4291 

4292 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4293 """ 

4294 ), 

4295 ] = None, 

4296 deprecated: Annotated[ 

4297 bool | None, 

4298 Doc( 

4299 """ 

4300 Mark this *path operation* as deprecated. 

4301 

4302 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4303 """ 

4304 ), 

4305 ] = None, 

4306 operation_id: Annotated[ 

4307 str | None, 

4308 Doc( 

4309 """ 

4310 Custom operation ID to be used by this *path operation*. 

4311 

4312 By default, it is generated automatically. 

4313 

4314 If you provide a custom operation ID, you need to make sure it is 

4315 unique for the whole API. 

4316 

4317 You can customize the 

4318 operation ID generation with the parameter 

4319 `generate_unique_id_function` in the `FastAPI` class. 

4320 

4321 Read more about it in the 

4322 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

4323 """ 

4324 ), 

4325 ] = None, 

4326 response_model_include: Annotated[ 

4327 IncEx | None, 

4328 Doc( 

4329 """ 

4330 Configuration passed to Pydantic to include only certain fields in the 

4331 response data. 

4332 

4333 Read more about it in the 

4334 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

4335 """ 

4336 ), 

4337 ] = None, 

4338 response_model_exclude: Annotated[ 

4339 IncEx | None, 

4340 Doc( 

4341 """ 

4342 Configuration passed to Pydantic to exclude certain fields in the 

4343 response data. 

4344 

4345 Read more about it in the 

4346 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

4347 """ 

4348 ), 

4349 ] = None, 

4350 response_model_by_alias: Annotated[ 

4351 bool, 

4352 Doc( 

4353 """ 

4354 Configuration passed to Pydantic to define if the response model 

4355 should be serialized by alias when an alias is used. 

4356 

4357 Read more about it in the 

4358 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

4359 """ 

4360 ), 

4361 ] = True, 

4362 response_model_exclude_unset: Annotated[ 

4363 bool, 

4364 Doc( 

4365 """ 

4366 Configuration passed to Pydantic to define if the response data 

4367 should have all the fields, including the ones that were not set and 

4368 have their default values. This is different from 

4369 `response_model_exclude_defaults` in that if the fields are set, 

4370 they will be included in the response, even if the value is the same 

4371 as the default. 

4372 

4373 When `True`, default values are omitted from the response. 

4374 

4375 Read more about it in the 

4376 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

4377 """ 

4378 ), 

4379 ] = False, 

4380 response_model_exclude_defaults: Annotated[ 

4381 bool, 

4382 Doc( 

4383 """ 

4384 Configuration passed to Pydantic to define if the response data 

4385 should have all the fields, including the ones that have the same value 

4386 as the default. This is different from `response_model_exclude_unset` 

4387 in that if the fields are set but contain the same default values, 

4388 they will be excluded from the response. 

4389 

4390 When `True`, default values are omitted from the response. 

4391 

4392 Read more about it in the 

4393 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

4394 """ 

4395 ), 

4396 ] = False, 

4397 response_model_exclude_none: Annotated[ 

4398 bool, 

4399 Doc( 

4400 """ 

4401 Configuration passed to Pydantic to define if the response data should 

4402 exclude fields set to `None`. 

4403 

4404 This is much simpler (less smart) than `response_model_exclude_unset` 

4405 and `response_model_exclude_defaults`. You probably want to use one of 

4406 those two instead of this one, as those allow returning `None` values 

4407 when it makes sense. 

4408 

4409 Read more about it in the 

4410 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

4411 """ 

4412 ), 

4413 ] = False, 

4414 include_in_schema: Annotated[ 

4415 bool, 

4416 Doc( 

4417 """ 

4418 Include this *path operation* in the generated OpenAPI schema. 

4419 

4420 This affects the generated OpenAPI (e.g. visible at `/docs`). 

4421 

4422 Read more about it in the 

4423 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

4424 """ 

4425 ), 

4426 ] = True, 

4427 response_class: Annotated[ 

4428 type[Response], 

4429 Doc( 

4430 """ 

4431 Response class to be used for this *path operation*. 

4432 

4433 This will not be used if you return a response directly. 

4434 

4435 Read more about it in the 

4436 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

4437 """ 

4438 ), 

4439 ] = Default(JSONResponse), 

4440 name: Annotated[ 

4441 str | None, 

4442 Doc( 

4443 """ 

4444 Name for this *path operation*. Only used internally. 

4445 """ 

4446 ), 

4447 ] = None, 

4448 callbacks: Annotated[ 

4449 list[BaseRoute] | None, 

4450 Doc( 

4451 """ 

4452 List of *path operations* that will be used as OpenAPI callbacks. 

4453 

4454 This is only for OpenAPI documentation, the callbacks won't be used 

4455 directly. 

4456 

4457 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4458 

4459 Read more about it in the 

4460 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

4461 """ 

4462 ), 

4463 ] = None, 

4464 openapi_extra: Annotated[ 

4465 dict[str, Any] | None, 

4466 Doc( 

4467 """ 

4468 Extra metadata to be included in the OpenAPI schema for this *path 

4469 operation*. 

4470 

4471 Read more about it in the 

4472 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

4473 """ 

4474 ), 

4475 ] = None, 

4476 generate_unique_id_function: Annotated[ 

4477 Callable[[APIRoute], str], 

4478 Doc( 

4479 """ 

4480 Customize the function used to generate unique IDs for the *path 

4481 operations* shown in the generated OpenAPI. 

4482 

4483 This is particularly useful when automatically generating clients or 

4484 SDKs for your API. 

4485 

4486 Read more about it in the 

4487 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

4488 """ 

4489 ), 

4490 ] = Default(generate_unique_id), 

4491 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

4492 """ 

4493 Add a *path operation* using an HTTP TRACE operation. 

4494 

4495 ## Example 

4496 

4497 ```python 

4498 from fastapi import APIRouter, FastAPI 

4499 from pydantic import BaseModel 

4500 

4501 class Item(BaseModel): 

4502 name: str 

4503 description: str | None = None 

4504 

4505 app = FastAPI() 

4506 router = APIRouter() 

4507 

4508 @router.trace("/items/{item_id}") 

4509 def trace_item(item_id: str): 

4510 return None 

4511 

4512 app.include_router(router) 

4513 ``` 

4514 """ 

4515 return self.api_route( 1abdc

4516 path=path, 

4517 response_model=response_model, 

4518 status_code=status_code, 

4519 tags=tags, 

4520 dependencies=dependencies, 

4521 summary=summary, 

4522 description=description, 

4523 response_description=response_description, 

4524 responses=responses, 

4525 deprecated=deprecated, 

4526 methods=["TRACE"], 

4527 operation_id=operation_id, 

4528 response_model_include=response_model_include, 

4529 response_model_exclude=response_model_exclude, 

4530 response_model_by_alias=response_model_by_alias, 

4531 response_model_exclude_unset=response_model_exclude_unset, 

4532 response_model_exclude_defaults=response_model_exclude_defaults, 

4533 response_model_exclude_none=response_model_exclude_none, 

4534 include_in_schema=include_in_schema, 

4535 response_class=response_class, 

4536 name=name, 

4537 callbacks=callbacks, 

4538 openapi_extra=openapi_extra, 

4539 generate_unique_id_function=generate_unique_id_function, 

4540 ) 

4541 

4542 # TODO: remove this once the lifespan (or alternative) interface is improved 

4543 async def _startup(self) -> None: 1abdc

4544 """ 

4545 Run any `.on_startup` event handlers. 

4546 

4547 This method is kept for backward compatibility after Starlette removed 

4548 support for on_startup/on_shutdown handlers. 

4549 

4550 Ref: https://github.com/Kludex/starlette/pull/3117 

4551 """ 

4552 for handler in self.on_startup: 2a zKSj+ `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+yAK} = !y@f? QhR e h @ZciOzPzdiQz8Poh|Zph}Z$ G b ?Kxl- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y@Keb[ $y]f] jiS f i [Z6iUzVz7iWz9Psh~Ztha0% I c QLcn/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/yRLkb` 'y_f{ %iT g j ]Zzj0z1zAj2z!Pwhb0xhc0' K

4553 if is_async_callable(handler): 2a e h oh|Z$ b f i sh~Z% c g j whb0'

4554 await handler() 2oh|Z$ sh~Z% whb0'

4555 else: 

4556 handler() 1aehbficgj

4557 

4558 # TODO: remove this once the lifespan (or alternative) interface is improved 

4559 async def _shutdown(self) -> None: 1abdc

4560 """ 

4561 Run any `.on_shutdown` event handlers. 

4562 

4563 This method is kept for backward compatibility after Starlette removed 

4564 support for on_startup/on_shutdown handlers. 

4565 

4566 Ref: https://github.com/Kludex/starlette/pull/3117 

4567 """ 

4568 for handler in self.on_shutdown: 2a zKSj+ `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwg+yAK} = !y@f? QhR e h @ZciOzPzdiQz8Poh|Zph}Z$ G b ?Kxl- xgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYg-y@Keb[ $y]f] jiS f i [Z6iUzVz7iWz9Psh~Ztha0% I c QLcn/ Zg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g/yRLkb` 'y_f{ %iT g j ]Zzj0z1zAj2z!Pwhb0xhc0' K

4569 if is_async_callable(handler): 2R e h ph}ZS f i tha0T g j xhc0

4570 await handler() 1RST

4571 else: 

4572 handler() 2e h ph}Zf i tha0g j xhc0

4573 

4574 # TODO: remove this once the lifespan (or alternative) interface is improved 

4575 def add_event_handler( 1abdc

4576 self, 

4577 event_type: str, 

4578 func: Callable[[], Any], 

4579 ) -> None: 

4580 """ 

4581 Add an event handler function for startup or shutdown. 

4582 

4583 This method is kept for backward compatibility after Starlette removed 

4584 support for on_startup/on_shutdown handlers. 

4585 

4586 Ref: https://github.com/Kludex/starlette/pull/3117 

4587 """ 

4588 assert event_type in ("startup", "shutdown") 1aReh$bSfi%cTgj'

4589 if event_type == "startup": 1aReh$bSfi%cTgj'

4590 self.on_startup.append(func) 1aeh$bfi%cgj'

4591 else: 

4592 self.on_shutdown.append(func) 1aRehbSficTgj

4593 

4594 @deprecated( 1abdc

4595 """ 

4596 on_event is deprecated, use lifespan event handlers instead. 

4597 

4598 Read more about it in the 

4599 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). 

4600 """ 

4601 ) 

4602 def on_event( 1abdc

4603 self, 

4604 event_type: Annotated[ 

4605 str, 

4606 Doc( 

4607 """ 

4608 The type of event. `startup` or `shutdown`. 

4609 """ 

4610 ), 

4611 ], 

4612 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

4613 """ 

4614 Add an event handler for the router. 

4615 

4616 `on_event` is deprecated, use `lifespan` event handlers instead. 

4617 

4618 Read more about it in the 

4619 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/#alternative-events-deprecated). 

4620 """ 

4621 

4622 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1aRe$bSf%cTg'

4623 self.add_event_handler(event_type, func) 1aRe$bSf%cTg'

4624 return func 1aRe$bSf%cTg'

4625 

4626 return decorator 1aRe$bSf%cTg'