§
    ~Štju«  ã                   óØ  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dl
mZ d dlmZ d dlmZmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z%m&Z' d	d
l(m)Z) d	dl m*Z*m+Z+m,Z, d	dl-m.Z.m/Z/ d	dl0m1Z1 d	dl2m3Z3m4Z4 d	dl5m6Z6m7Z7m8Z8m9Z9m:Z: d	dl;m<Z< d	dl=m>Z> d	dl?m@Z@mAZA d	dlBmCZC dZDerd	dlEmFZF eGeHeHf         ZIneGZIejJ        dk     reKfndZL eM eNeO e'jP        d¦  «        dd…         ¦  «        ¦  «        ZQeeMeOdf                  eRd<    e
jS        d¦  «        ZTeeeH                  eRd<    e
jS        d¦  «        ZUeeeH                  eRd<    e
jV        d ¦  «        ZWeeH         eRd!<    e	jX        ¦   «         d"k    ZYeeZ         eRd#<   ee>geeAdz           f         Z[eMe!d$         e\eH         f         Z] ej^        ejV        d%¬&¦  «        Z_ G d'„ d(e"d)¬*¦  «        Z` G d+„ d,eed-         ¦  «        Za G d.„ d-e jb        ¦  «        Zc G d/„ d$eIe*¦  «        Zd G d0„ d1ed¦  «        Zed2e>d3dfd4„Zf G d5„ d6ea¦  «        Zg G d7„ d8eg¦  «        Zh G d9„ d:eg¦  «        Zi G d;„ d<ea¦  «        Zj G d=„ d>ej¦  «        Zk G d?„ d@ej¦  «        Zl G dA„ dBe jb        ¦  «        Zm G dC„ dDem¦  «        Zn G dE„ dFen¦  «        Zo G dG„ dHel¦  «        Zp G dI„ dJec¦  «        Zq G dK„ dLec¦  «        Zr G dM„ dNe,¦  «        Zs G dO„ dPeeea         eea         ¦  «        Zt G dQ„ dReeec         eec         ¦  «        Zu G dS„ dTe+eeHeaf         ¦  «        ZvdUeHd3eHfdV„ZwdUeHd3eHfdW„ZxdUeHd3eHfdX„ZydS )Yé    N)Ú	AwaitableÚCallableÚ	ContainerÚ	GeneratorÚIterableÚIteratorÚMappingÚSized)Úwraps)ÚPath)ÚPattern)ÚMappingProxyType)ÚTYPE_CHECKINGÚAnyÚFinalÚNoReturnÚOptionalÚ	TypedDictÚcast)ÚURLÚ__version__é   )Úhdrs)ÚAbstractMatchInfoÚAbstractRouterÚAbstractView)ÚDEBUGÚDEFAULT_CHUNK_SIZE)ÚHttpVersion11)ÚHandlerÚPathLike)ÚHTTPExceptionÚHTTPExpectationFailedÚHTTPForbiddenÚHTTPMethodNotAllowedÚHTTPNotFound)ÚFileResponse)ÚRequest)ÚResponseÚStreamResponse)ÚAbstractRouteDef)
ÚUrlDispatcherÚUrlMappingMatchInfoÚAbstractResourceÚResourceÚPlainResourceÚDynamicResourceÚAbstractRouteÚResourceRouteÚStaticResourceÚView)ÚApplication)é   é   © ú.é   .ÚYARL_VERSIONz$^[0-9A-Za-z!#\$%&'\*\+\-\.\^_`\|~]+$ÚHTTP_METHOD_REz*(\{[_a-zA-Z][^{}]*(?:\{[^{}]*\}[^{}]*)*\})ÚROUTE_REú/ÚPATH_SEPÚWindowsÚ
IS_WINDOWSr-   T)Úquotec                   ó�   — e Zd ZU eed<   eed<   ee         ed<   eed<   eed<   eedf         ed<   ded	<   eed
<   ded<   eed<   dS )Ú	_InfoDictÚpathÚ	formatterÚpatternÚ	directoryÚprefixr2   Úroutesr6   ÚappÚdomainÚAbstractRuleMatchingÚruleÚhttp_exceptionN)	Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   r   r	   r"   r9   ó    úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/aiohttp/web_urldispatcher.pyrE   rE   Z   s‰   € € € € € € Ø
€I€I�Ià€N€N�NØ�SŒ\ÐÐÑà€O€O�OØ€K€K�KØ�C˜Ð(Ô)Ð)Ð)Ñ)à	ÐÐÑà€K€K�Kà
 Ð Ð Ñ à!Ð!Ð!Ñ!Ð!Ð!rV   rE   F)Útotalc                   óX  — e Zd Zddœdedz  ddfd„Zededz  fd„¦   «         Zeej        defd„¦   «         ¦   «         Z	ej        dede
fd	„¦   «         Zej        d
edefd„¦   «         Zej        deddfd„¦   «         Zej        defd„¦   «         Zdd„Zej        dedefd„¦   «         ZdS )r.   N©Únamer[   Úreturnc                ó   — || _         d S ©N©Ú_name©Úselfr[   s     rW   Ú__init__zAbstractResource.__init__n   s   € ØˆŒ
ˆ
ˆ
rV   c                 ó   — | j         S r^   r_   ©rb   s    rW   r[   zAbstractResource.nameq   ó
   € àŒzÐrV   c                 ó   — dS )zWExposes the resource's canonical path.

        For example '/foo/bar/{name}'

        Nr9   re   s    rW   Ú	canonicalzAbstractResource.canonicalu   ó   € € € rV   Úkwargsc                 ó   — dS )z2Construct url for resource with additional params.Nr9   )rb   rj   s     rW   Úurl_forzAbstractResource.url_for~   ri   rV   Úrequestc              ƒ   ó
   K  — dS )zWResolve resource.

        Return (UrlMappingMatchInfo, allowed_methods) pair.
        Nr9   ©rb   rm   s     rW   ÚresolvezAbstractResource.resolve‚   ó
   è è € € € rV   rJ   c                 ó   — dS )zWAdd a prefix to processed URLs.

        Required for subapplications support.
        Nr9   ©rb   rJ   s     rW   Ú
add_prefixzAbstractResource.add_prefix‰   ri   rV   c                 ó   — dS ©z;Return a dict with additional info useful for introspectionNr9   re   s    rW   Úget_infozAbstractResource.get_info�   ri   rV   c                 ó   — d S r^   r9   re   s    rW   ÚfreezezAbstractResource.freeze”   s   € ØˆrV   rF   c                 ó   — dS )z Perform a raw match against pathNr9   ©rb   rF   s     rW   Ú	raw_matchzAbstractResource.raw_match—   ri   rV   ©r\   N)rQ   rR   rS   rT   rc   Úpropertyr[   ÚabcÚabstractmethodrh   r   rl   r(   Ú_Resolverp   rt   rE   rw   ry   Úboolr|   r9   rV   rW   r.   r.   m   s¹  € € € € € Ø-1ð ð ð   d¡
ð °dð ð ð ð ð ð�c˜D‘jð ð ð ñ „Xðð ØÔð˜3ð ð ð ñ Ôñ „Xðð 	ÔðA ð A¨ð Að Að Añ ÔðAð 	Ôð Wð °ð ð ð ñ Ôðð 	Ôð ð ¨ð ð ð ñ Ôðð 	ÔðJ˜)ð Jð Jð Jñ ÔðJðð ð ð ð 	Ôð/˜cð / dð /ð /ð /ñ Ôð/ð /ð /rV   r.   r2   c                   óP  — e Zd Zdddœdedeee         z  dedz  dedz  ddf
d„Z	e
defd	„¦   «         Ze
defd
„¦   «         Ze
ej        dedz  fd„¦   «         ¦   «         Ze
dedz  fd„¦   «         Zej        defd„¦   «         Zej        dededefd„¦   «         Zdededz  fd„ZdS )r2   N©Úexpect_handlerÚresourceÚmethodÚhandlerr…   r†   r\   c                óT  ‡— |€t           }t          j        |¦  «        s1t          j        dk     rt          j        |¦  «        sJ d|›�¦   «         ‚|                     ¦   «         }t                               |¦  «        st          |› d�¦  «        ‚t          |¦  «        s
J |¦   «         ‚t          j        |¦  «        s$t          j        dk     rt          j        |¦  «        rnªt          j        |¦  «        r$t          rJ ‚t          j        dt          ¦  «         nrt!          |t"          ¦  «        rt%          |t&          ¦  «        rnGt          j        dt          ¦  «         t)          |¦  «        dt*          dt,          fˆfd	„¦   «         }|Š|}|| _        || _        || _        || _        d S )
N)r7   é   zCoroutine is expected, got z is not allowed HTTP methodFz6Bare generators are deprecated, use @coroutine wrapperz-Bare functions are deprecated, use async onesrm   r\   c              “   óˆ   •K  —  ‰| ¦  «        }t          j        |¦  «        r|ƒ d {V —†}t          |t          ¦  «        sJ ‚|S r^   )ÚasyncioÚiscoroutineÚ
isinstancer*   )rm   ÚresultÚold_handlers     €rW   Úhandler_wrapperz/AbstractRoute.__init__.<locals>.handler_wrapperÄ   sU   øè è € à$˜ WÑ-Ô-�ÝÔ& vÑ.Ô.ð *Ø#)˜\˜\˜\˜\˜\˜\�FÝ! &­.Ñ9Ô9Ð9Ð9Ð9Ø�rV   )Ú_default_expect_handlerÚinspectÚiscoroutinefunctionÚsysÚversion_inforŒ   Úupperr=   ÚmatchÚ
ValueErrorÚcallableÚisgeneratorfunctionr   ÚwarningsÚwarnÚDeprecationWarningrŽ   ÚtypeÚ
issubclassr   r   r(   r*   Ú_methodÚ_handlerÚ_expect_handlerÚ	_resource)rb   r‡   rˆ   r…   r†   r‘   r�   s         @rW   rc   zAbstractRoute.__init__�   sÕ  ø€ ð Ð!Ý4ˆNåÔ*¨>Ñ:Ô:ð 	<ÝÔ˜wÒ&Ð&­7Ô+FÀ~Ñ+VÔ+VÐ&Ð&Ø;¨Ð;Ð;ñ 'Ô&ð
ð —’‘”ˆÝ×#Ò# FÑ+Ô+ð 	EÝ ÐCÐCÐCÑDÔDÐDå˜Ñ Ô Ð)Ð) 'Ñ)Ô)Ð ÝÔ& wÑ/Ô/ð 	&ÝÔ˜wÒ&Ð&­7Ô+FÀwÑ+OÔ+OÐ&àÝÔ(¨Ñ1Ô1ð 	&Ýð Ø�uÝŒMØHÝ"ñô ð ð õ ˜¥Ñ&Ô&ð 	&­:°g½|Ñ+LÔ+Lð 	&ØåŒMØ?ÕASñô ð õ �7‰^Œ^ð­wð ½>ð ð ð ð ð ñ Œ^ðð "ˆKØ%ˆGàˆŒØˆŒØ-ˆÔØ!ˆŒˆˆrV   c                 ó   — | j         S r^   )r¡   re   s    rW   r‡   zAbstractRoute.methodÔ   ó
   € àŒ|ÐrV   c                 ó   — | j         S r^   )r¢   re   s    rW   rˆ   zAbstractRoute.handlerØ   s
   € àŒ}ÐrV   c                 ó   — dS )z8Optional route's name, always equals to resource's name.Nr9   re   s    rW   r[   zAbstractRoute.nameÜ   ri   rV   c                 ó   — | j         S r^   )r¤   re   s    rW   r†   zAbstractRoute.resourceá   s
   € àŒ~ÐrV   c                 ó   — dS rv   r9   re   s    rW   rw   zAbstractRoute.get_infoå   ri   rV   Úargsrj   c                 ó   — dS )ú/Construct url for route with additional params.Nr9   ©rb   r«   rj   s      rW   rl   zAbstractRoute.url_foré   ri   rV   rm   c              ƒ   ó<   K  — |                       |¦  «        ƒ d {V —†S r^   )r£   ro   s     rW   Úhandle_expect_headerz"AbstractRoute.handle_expect_headerí   s,   è è € Ø×)Ò)¨'Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2rV   )rQ   rR   rS   rT   r    rŸ   r   Ú_ExpectHandlerr.   rc   r~   r‡   rˆ   r   r€   r[   r†   rE   rw   r   rl   r(   r*   r°   r9   rV   rW   r2   r2   œ   sÈ  € € € € € ð 15Ø,0ð5"ð 5"ð 5"àð5"ð ˜4 Ô-Ñ-ð5"ð
 '¨Ñ-ð5"ð # TÑ)ð5"ð 
ð5"ð 5"ð 5"ð 5"ðn ð˜ð ð ð ñ „Xðð ð˜ð ð ð ñ „Xðð ØÔðG�c˜D‘jð Gð Gð Gñ Ôñ „XðGð ðÐ*¨TÑ1ð ð ð ñ „Xðð 	ÔðJ˜)ð Jð Jð Jñ ÔðJð 	Ôð>˜Sð >¨Cð >°Cð >ð >ð >ñ Ôð>ð3°'ð 3¸nÈtÑ>Sð 3ð 3ð 3ð 3ð 3ð 3rV   c                   óD  ‡ — e Zd ZdZdeeef         deddfˆ fd„Zede	fd„¦   «         Z
edefd„¦   «         Zedefd	„¦   «         Zededz  fd
„¦   «         Zdefd„Zeded         fd„¦   «         Zdd„Zedd„¦   «         Zej        dd„¦   «         Zdd„Zdefˆ fd„Zˆ xZS )r-   )Ú_routeÚ_appsÚ_current_appÚ_frozenÚ
match_dictÚrouter\   Nc                 ó‚   •— t          ¦   «                              |¦  «         || _        g | _        d | _        d| _        d S ©NF)Úsuperrc   r³   r´   rµ   r¶   )rb   r·   r¸   Ú	__class__s      €rW   rc   zUrlMappingMatchInfo.__init__õ   s<   ø€ Ý‰Œ×Ò˜Ñ$Ô$Ð$ØˆŒØ(*ˆŒ
Ø04ˆÔØˆŒˆˆrV   c                 ó   — | j         j        S r^   )r³   rˆ   re   s    rW   rˆ   zUrlMappingMatchInfo.handlerü   s   € àŒ{Ô"Ð"rV   c                 ó   — | j         S r^   )r³   re   s    rW   r¸   zUrlMappingMatchInfo.route   s
   € àŒ{ÐrV   c                 ó   — | j         j        S r^   )r³   r°   re   s    rW   r…   z"UrlMappingMatchInfo.expect_handler  s   € àŒ{Ô/Ð/rV   c                 ó   — d S r^   r9   re   s    rW   rP   z"UrlMappingMatchInfo.http_exception  ó   € àˆtrV   c                 ó4   — | j                              ¦   «         S r^   )r³   rw   re   s    rW   rw   zUrlMappingMatchInfo.get_info  s   € ØŒ{×#Ò#Ñ%Ô%Ð%rV   )r6   .c                 ó*   — t          | j        ¦  «        S r^   )Útupler´   re   s    rW   ÚappszUrlMappingMatchInfo.apps  s   € å�T”ZÑ Ô Ð rV   rL   r6   c                 ó„   — | j         rt          d¦  «        ‚| j        €|| _        | j                             d|¦  «         d S )Nz-Cannot change apps stack after .freeze() callr   )r¶   ÚRuntimeErrorrµ   r´   Úinsert©rb   rL   s     rW   Úadd_appzUrlMappingMatchInfo.add_app  sK   € ØŒ<ð 	PÝÐNÑOÔOÐOØÔÐ$Ø #ˆDÔØŒ
×Ò˜!˜SÑ!Ô!Ð!Ð!Ð!rV   c                 ó   — | j         }|€J ‚|S r^   )rµ   rÉ   s     rW   Úcurrent_appzUrlMappingMatchInfo.current_app  s   € àÔˆØˆˆˆØˆ
rV   c                 óh   — t           r#|| j        vrt          d| j        ›d|›�¦  «        ‚|| _        d S )Nz#Expected one of the following apps z, got )r   r´   rÇ   rµ   rÉ   s     rW   rÌ   zUrlMappingMatchInfo.current_app   sN   € åð 	Ø˜$œ*Ð$Ð$Ý"ØU¸$¼*ÐUÐUÈcÐUÐUñô ð ð  ˆÔÐÐrV   c                 ó   — d| _         d S )NT)r¶   re   s    rW   ry   zUrlMappingMatchInfo.freeze)  s   € ØˆŒˆˆrV   c                 ó\   •— dt          ¦   «                              ¦   «         › d| j        › d�S )Nz<MatchInfo ú: ú>)r»   Ú__repr__r³   ©rb   r¼   s    €rW   rÒ   zUrlMappingMatchInfo.__repr__,  s.   ø€ ØA�U™WœW×-Ò-Ñ/Ô/ÐAÐA°4´;ÐAÐAÐAÐArV   )rL   r6   r\   N)r\   r6   r}   )rQ   rR   rS   Ú	__slots__ÚdictrT   r2   rc   r~   r    rˆ   r¸   r±   r…   r"   rP   rE   rw   rÄ   rÅ   rÊ   rÌ   Úsetterry   rÒ   Ú__classcell__©r¼   s   @rW   r-   r-   ñ   sä  ø€ € € € € à>€Ið 4¨¨S¨¤>ð ¸-ð ÈDð ð ð ð ð ð ð ð#˜ð #ð #ð #ñ „Xð#ð ð�}ð ð ð ñ „Xðð ð0 ð 0ð 0ð 0ñ „Xð0ð ð °Ñ 4ð ð ð ñ „Xðð&˜)ð &ð &ð &ð &ð ð!�eÐ.Ô/ð !ð !ð !ñ „Xð!ð"ð "ð "ð "ð ðð ð ñ „Xðð
 Ôð ð  ð  ñ Ôð ðð ð ð ðB˜#ð Bð Bð Bð Bð Bð Bð Bð Bð Bð BrV   c                   óT   ‡ — e Zd ZdZdeddfˆ fd„Zedefd„¦   «         Zdefd„Z	ˆ xZ
S )ÚMatchInfoError©Ú
_exceptionrP   r\   Nc                 ó~   •— || _         t          ¦   «                              i t          | j         ¦  «        ¦  «         d S r^   )rÜ   r»   rc   ÚSystemRoute©rb   rP   r¼   s     €rW   rc   zMatchInfoError.__init__4  s4   ø€ Ø(ˆŒÝ‰Œ×Ò˜�[¨¬Ñ9Ô9Ñ:Ô:Ð:Ð:Ð:rV   c                 ó   — | j         S r^   rÛ   re   s    rW   rP   zMatchInfoError.http_exception8  ó
   € àŒÐrV   c                 ó<   — d| j         j        › d| j         j        › d�S )Nz<MatchInfoError rÐ   rÑ   )rÜ   ÚstatusÚreasonre   s    rW   rÒ   zMatchInfoError.__repr__<  s%   € ØU $¤/Ô"8ÐUÐU¸D¼OÔ<RÐUÐUÐUÐUrV   )rQ   rR   rS   rÔ   r"   rc   r~   rP   rT   rÒ   r×   rØ   s   @rW   rÚ   rÚ   0  s›   ø€ € € € € à€Ið; }ð ;¸ð ;ð ;ð ;ð ;ð ;ð ;ð ð ð ð ð ñ „XððV˜#ð Vð Vð Vð Vð Vð Vð Vð VrV   rÚ   rm   r\   c              ƒ   ó&  K  — | j                              t          j        d¦  «        }| j        t
          k    rY|                     ¦   «         dk    r.| j                             d¦  «        ƒ d{V —† d| j        _	        dS t          d|z  ¬¦  «        ‚dS )z™Default handler for Expect header.

    Just send "100 Continue" to client.
    raise HTTPExpectationFailed if value of header is not "100-continue"
    Ú z100-continues   HTTP/1.1 100 Continue

Nr   zUnknown Expect: %s)Útext)ÚheadersÚgetr   ÚEXPECTÚversionr   ÚlowerÚwriterÚwriteÚoutput_sizer#   )rm   Úexpects     rW   r’   r’   @  s™   è è € ð Œ_× Ò ¥¤¨bÑ1Ô1€FØ„�-Ò'Ð'Ø�<Š<‰>Œ>˜^Ò+Ð+Ø”.×&Ò&Ð'GÑHÔHÐHÐHÐHÐHÐHÐHÐHà)*ˆGŒNÔ&Ð&Ð&å'Ð-AÀFÑ-JÐKÑKÔKÐKð (Ð'rV   c            	       óæ   ‡ — e Zd Zddœdedz  ddfˆ fd„Zddœdedee         ez  d	edz  dd
fd„Z	dd„Z
dedefd„Zej        dedeeef         dz  fd„¦   «         Zdefd„Zded
         fd„Zˆ xZS )r/   NrZ   r[   r\   c                óŽ   •— t          ¦   «                              |¬¦  «         i | _        d | _        t	          ¦   «         | _        d S )NrZ   )r»   rc   Ú_routesÚ
_any_routeÚsetÚ_allowed_methods)rb   r[   r¼   s     €rW   rc   zResource.__init__Q  s>   ø€ Ý‰Œ×Ò˜dÐÑ#Ô#Ð#Ø13ˆŒØ04ˆŒÝ*-©%¬%ˆÔÐÐrV   ©r…   r‡   rˆ   r…   r3   c                óÊ   — | j                              || j        ¦  «        x}rt          d|j        › d�¦  «        ‚t          ||| |¬¦  «        }|                      |¦  «         |S )Nz+Added route will never be executed, method z is already registeredr÷   )ró   ré   rô   rÇ   r‡   r3   Úregister_route)rb   r‡   rˆ   r…   r¸   Ú	route_objs         rW   Ú	add_routezResource.add_routeW  s‚   € ð ”L×$Ò$ V¨T¬_Ñ=Ô=Ð=ˆ5ð 	ÝðØœ,ðð ð ñô ð õ " &¨'°4ÈÐWÑWÔWˆ	Ø×Ò˜IÑ&Ô&Ð&ØÐrV   r¸   c                 óÞ   — t          |t          ¦  «        sJ d|›�¦   «         ‚|j        t          j        k    r|| _        | j                             |j        ¦  «         || j        |j        <   d S )Nz)Instance of Route class is required, got )	rŽ   r3   r‡   r   ÚMETH_ANYrô   rö   Úaddró   ©rb   r¸   s     rW   rù   zResource.register_routei  s�   € ÝØ•=ñ
ô 
ð 	Að 	Aà@°uÐ@Ð@ñ	Aô 	Að 
ð Œ<�4œ=Ò(Ð(Ø#ˆDŒOØÔ×!Ò! %¤,Ñ/Ô/Ð/Ø%*ˆŒ�U”\Ñ"Ð"Ð"rV   rm   c              ƒ   óö   K  — |                       |j        j        ¦  «        x}€d t          ¦   «         fS | j                             |j        | j        ¦  «        x}rt          ||¦  «        | j	        fS d | j	        fS r^   )
Ú_matchÚrel_urlÚ	path_saferõ   ró   ré   r‡   rô   r-   rö   )rb   rm   r·   r¸   s       rW   rp   zResource.resolver  sz   è è € ØŸ+š+ g¤oÔ&?Ñ@Ô@Ð@ˆJÐIØ�™œ�;ÐØ”L×$Ò$ W¤^°T´_ÑEÔEÐEˆ5ð 	QÝ& z°5Ñ9Ô9¸4Ô;PÐPÐPØ�TÔ*Ð*Ð*rV   rF   c                 ó   — d S r^   r9   r{   s     rW   r  zResource._matchy  s   € àˆrV   c                 ó*   — t          | j        ¦  «        S r^   ©Úlenró   re   s    rW   Ú__len__zResource.__len__}  ó   € Ý�4”<Ñ Ô Ð rV   c                 óN   — t          | j                             ¦   «         ¦  «        S r^   ©Úiterró   Úvaluesre   s    rW   Ú__iter__zResource.__iter__€  ó   € Ý�D”L×'Ò'Ñ)Ô)Ñ*Ô*Ð*rV   )r¸   r3   r\   N)rQ   rR   rS   rT   rc   rŸ   r   r    r±   rû   rù   r(   r�   rp   r   r€   rÕ   r  Úintr  r   r  r×   rØ   s   @rW   r/   r/   P  sd  ø€ € € € € Ø-1ð 0ð 0ð 0  d¡
ð 0°dð 0ð 0ð 0ð 0ð 0ð 0ð 15ðð ð àðð �lÔ# gÑ-ðð
 '¨Ñ-ðð 
ðð ð ð ð$+ð +ð +ð +ð+ Wð +°ð +ð +ð +ð +ð 	Ôð˜3ð  4¨¨S¨¤>°DÑ#8ð ð ð ñ Ôðð!˜ð !ð !ð !ð !ð+˜( ?Ô3ð +ð +ð +ð +ð +ð +ð +ð +rV   r/   c                   óÆ   ‡ — e Zd Zddœdededz  ddfˆ fd„Zedefd„¦   «         Zdd„Zd	eddfd
„Zdede	eef         dz  fd„Z
dedefd„Zdefd„Zdefd„Zdefd„Zˆ xZS )r0   NrZ   rF   r[   r\   c                óŒ   •— t          ¦   «                              |¬¦  «         |r|                     d¦  «        sJ ‚|| _        d S )NrZ   r?   )r»   rc   Ú
startswithÚ_path)rb   rF   r[   r¼   s      €rW   rc   zPlainResource.__init__‡  sF   ø€ Ý‰Œ×Ò˜dÐÑ#Ô#Ð#ØÐ/˜4Ÿ?š?¨3Ñ/Ô/Ð/Ð/Ð/ØˆŒ
ˆ
ˆ
rV   c                 ó   — | j         S r^   ©r  re   s    rW   rh   zPlainResource.canonicalŒ  rf   rV   c                 ó&   — | j         s	d| _         d S d S )Nr?   r  re   s    rW   ry   zPlainResource.freeze�  s!   € ØŒzð 	ØˆDŒJˆJˆJð	ð 	rV   rJ   c                 óª   — |                      d¦  «        sJ ‚|                     d¦  «        rJ ‚t          |¦  «        dk    sJ ‚|| j        z   | _        d S ©Nr?   r   )r  Úendswithr  r  rs   s     rW   rt   zPlainResource.add_prefix”  sY   € Ø× Ò  Ñ%Ô%Ð%Ð%Ð%Ø—?’? 3Ñ'Ô'Ð'Ð'Ð'Ý�6‰{Œ{˜QŠˆˆˆØ˜dœjÑ(ˆŒ
ˆ
ˆ
rV   c                 ó    — | j         |k    ri S d S r^   r  r{   s     rW   r  zPlainResource._matchš  s   € àŒ:˜ÒÐØˆIØˆtrV   c                 ó   — | j         |k    S r^   r  r{   s     rW   r|   zPlainResource.raw_match   s   € ØŒz˜TÒ!Ð!rV   c                 ó   — d| j         iS )NrF   r  re   s    rW   rw   zPlainResource.get_info£  s   € Ø˜œ
Ð#Ð#rV   c                 ó8   — t          j        | j        d¬¦  «        S )NT©rF   Úencoded)r   Úbuildr  re   s    rW   rl   zPlainResource.url_for¦  s   € ÝŒy˜dœj°$Ð7Ñ7Ô7Ð7rV   c                 óJ   — | j         �d| j         z   dz   nd}d|› d| j        › d�S )Nú'ú' ræ   z<PlainResource ú rÑ   )r[   r  ra   s     rW   rÒ   zPlainResource.__repr__©  s9   € Ø)-¬Ð)>ˆs�T”Y‰ Ñ%Ð%ÀBˆØ5 Ð5Ð5¨¬
Ð5Ð5Ð5Ð5rV   r}   )rQ   rR   rS   rT   rc   r~   rh   ry   rt   rÕ   r  r‚   r|   rE   rw   r   rl   rÒ   r×   rØ   s   @rW   r0   r0   †  sb  ø€ € € € € Ø8<ð ð ð ˜Sð ¨3°©:ð Àð ð ð ð ð ð ð
 ð˜3ð ð ð ñ „Xððð ð ð ð) ð )¨ð )ð )ð )ð )ð˜3ð  4¨¨S¨¤>°DÑ#8ð ð ð ð ð"˜cð " dð "ð "ð "ð "ð$˜)ð $ð $ð $ð $ð8˜ð 8ð 8ð 8ð 8ð6˜#ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6rV   r0   c                   ó  ‡ — e Zd Z ej        d¦  «        Z ej        d¦  «        ZdZddœdededz  ddfˆ fd	„Z	e
defd
„¦   «         Zdeddfd„Zdedeeef         dz  fd„Zdedefd„Zdefd„Zdedefd„Zdefd„Zˆ xZS )r1   z#\{(?P<var>[_a-zA-Z][_a-zA-Z0-9]*)\}z.\{(?P<var>[_a-zA-Z][_a-zA-Z0-9]*):(?P<re>.+)\}z[^{}/]+NrZ   rF   r[   r\   c                óÖ  •— t          ¦   «                              |¬¦  «         || _        d}d}t                               |¦  «        D �]}| j                             |¦  «        }|rP|d                     |                     d¦  «        | j	        ¦  «        z  }|d|                     d¦  «        z   dz   z  }Œo| j
                             |¦  «        }|rA| dj        di |                     ¦   «         ¤Žz  }|d|                     d¦  «        z   dz   z  }ŒÌd|v sd|v rt          d|› d	|› d
�¦  «        ‚t          |¦  «        }||z  }|t          j        |¦  «        z  }�Œ	 t          j        |¦  «        }n-# t          j        $ r}t          d|› d|› �¦  «        d ‚d }~ww xY w|j                             t(          ¦  «        sJ ‚|                     d¦  «        sJ ‚|| _        || _        d S )NrZ   ræ   z
(?P<{}>{})ÚvarÚ{Ú}z(?P<{var}>{re})zInvalid path 'z'['z']zBad pattern 'z': r?   r9   )r»   rc   Ú
_orig_pathr>   ÚsplitÚDYNÚ	fullmatchÚformatÚgroupÚGOODÚDYN_WITH_REÚ	groupdictr™   Ú_requote_pathÚreÚescapeÚcompileÚerrorrH   r  r@   Ú_patternÚ
_formatter)
rb   rF   r[   rH   rG   Úpartr˜   ÚcompiledÚexcr¼   s
            €rW   rc   zDynamicResource.__init__´  s   ø€ Ý‰Œ×Ò˜dÐÑ#Ô#Ð#ØˆŒØˆØˆ	Ý—N’N 4Ñ(Ô(ð 	'ñ 	'ˆDØ”H×&Ò& tÑ,Ô,ˆEØð Ø˜<×.Ò.¨u¯{ª{¸5Ñ/AÔ/AÀ4Ä9ÑMÔMÑM�Ø˜S 5§;¢;¨uÑ#5Ô#5Ñ5¸Ñ;Ñ;�	ØàÔ$×.Ò.¨tÑ4Ô4ˆEØð ØÐ3Ð,Ô3ÐHÐH°e·o²oÑ6GÔ6GÐHÐHÑH�Ø˜S 5§;¢;¨uÑ#5Ô#5Ñ5¸Ñ;Ñ;�	Øà�dˆ{ˆ{˜c T˜k˜kÝ Ð!C°$Ð!CÐ!C¸4Ð!CÐ!CÐ!CÑDÔDÐDå  Ñ&Ô&ˆDØ˜ÑˆIØ•r”y ‘”Ñ&ˆG‰Gð	JÝ”z 'Ñ*Ô*ˆHˆHøÝŒxð 	Jð 	Jð 	JÝÐ>¨WÐ>Ð>¸Ð>Ð>Ñ?Ô?ÀTÐIøøøøð	JøøøàÔ×*Ò*­8Ñ4Ô4Ð4Ð4Ð4Ø×#Ò# CÑ(Ô(Ð(Ð(Ð(Ø ˆŒØ#ˆŒˆˆs   Å!E6 Å6F ÆFÆF c                 ó   — | j         S r^   )r:  re   s    rW   rh   zDynamicResource.canonicalÖ  rá   rV   rJ   c                 ó  — |                      d¦  «        sJ ‚|                     d¦  «        rJ ‚t          |¦  «        dk    sJ ‚t          j        t          j        |¦  «        | j        j        z   ¦  «        | _        || j        z   | _        d S r  )	r  r  r  r5  r7  r6  r9  rH   r:  rs   s     rW   rt   zDynamicResource.add_prefixÚ  s~   € Ø× Ò  Ñ%Ô%Ð%Ð%Ð%Ø—?’? 3Ñ'Ô'Ð'Ð'Ð'Ý�6‰{Œ{˜QŠˆˆˆÝœ
¥2¤9¨VÑ#4Ô#4°t´}Ô7LÑ#LÑMÔMˆŒØ  4¤?Ñ2ˆŒˆˆrV   c                 óž   — | j                              |¦  «        }|€d S d„ |                     ¦   «                              ¦   «         D ¦   «         S )Nc                 ó4   — i | ]\  }}|t          |¦  «        “ŒS r9   )Ú_unquote_path_safe)Ú.0ÚkeyÚvalues      rW   ú
<dictcomp>z*DynamicResource._match.<locals>.<dictcomp>å  s4   € ð 
ð 
ð 
Ù/9¨s°EˆCÕ# EÑ*Ô*ð
ð 
ð 
rV   )r9  r.  r3  Úitems)rb   rF   r˜   s      rW   r  zDynamicResource._matchá  sX   € Ø”×'Ò'¨Ñ-Ô-ˆØˆ=Ø�4ð
ð 
Ø=B¿_º_Ñ=NÔ=N×=TÒ=TÑ=VÔ=Vð
ñ 
ô 
ð 	
rV   c                 ó   — | j         |k    S r^   )r+  r{   s     rW   r|   zDynamicResource.raw_matché  s   € ØŒ $Ò&Ð&rV   c                 ó    — | j         | j        dœS )N)rG   rH   )r:  r9  re   s    rW   rw   zDynamicResource.get_infoì  s   € Ø!œ_¸¼ÐGÐGÐGrV   Úpartsc                 óš   — | j                              d„ |                     ¦   «         D ¦   «         ¦  «        }t          j        |d¬¦  «        S )Nc                 ó4   — i | ]\  }}|t          |¦  «        “ŒS r9   )Ú_quote_path)rC  ÚkÚvs      rW   rF  z+DynamicResource.url_for.<locals>.<dictcomp>ð  s$   € Ð)VÐ)VÐ)VÁÀÀ1¨!­[¸©^¬^Ð)VÐ)VÐ)VrV   Tr  )r:  Ú
format_maprG  r   r!  )rb   rJ  Úurls      rW   rl   zDynamicResource.url_forï  sC   € ØŒo×(Ò(Ð)VÐ)VÈÏÊÉÌÐ)VÑ)VÔ)VÑWÔWˆÝŒy˜c¨4Ð0Ñ0Ô0Ð0rV   c                 óJ   — | j         �d| j         z   dz   nd}d|› d| j        › d�S )Nr#  r$  ræ   z<DynamicResource r%  rÑ   )r[   r:  ra   s     rW   rÒ   zDynamicResource.__repr__ó  s9   € Ø)-¬Ð)>ˆs�T”Y‰ Ñ%Ð%ÀBˆØ< 4Ð<Ð<¨$¬/Ð<Ð<Ð<Ð<rV   )rQ   rR   rS   r5  r7  r-  r2  r1  rT   rc   r~   rh   rt   rÕ   r  r‚   r|   rE   rw   r   rl   rÒ   r×   rØ   s   @rW   r1   r1   ®  s„  ø€ € € € € à
ˆ"Œ*Ð;Ñ
<Ô
<€CØ�"”*ÐNÑOÔO€KØ€Dà8<ð  $ð  $ð  $˜Sð  $¨3°©:ð  $Àð  $ð  $ð  $ð  $ð  $ð  $ðD ð˜3ð ð ð ñ „Xðð3 ð 3¨ð 3ð 3ð 3ð 3ð
˜3ð 
 4¨¨S¨¤>°DÑ#8ð 
ð 
ð 
ð 
ð'˜cð ' dð 'ð 'ð 'ð 'ðH˜)ð Hð Hð Hð Hð1˜sð 1 sð 1ð 1ð 1ð 1ð=˜#ð =ð =ð =ð =ð =ð =ð =ð =rV   r1   c                   ót   ‡ — e Zd Zddœdededz  ddfˆ fd„Zedefd„¦   «         Zdeddfd„Zdedefd	„Z	ˆ xZ
S )
ÚPrefixResourceNrZ   rJ   r[   r\   c                ó  •— |r|                      d¦  «        s
J |¦   «         ‚|dv s|                     d¦  «        r
J |¦   «         ‚t          ¦   «                              |¬¦  «         t	          |¦  «        | _        | j        dz   | _        d S )Nr?   )ræ   r?   rZ   )r  r  r»   rc   r4  Ú_prefixÚ_prefix2)rb   rJ   r[   r¼   s      €rW   rc   zPrefixResource.__init__ù  s�   ø€ ØÐ;˜V×.Ò.¨sÑ3Ô3Ð;Ð;°VÑ;Ô;Ð3Ø˜Ð"Ð"¨&¯/ª/¸#Ñ*>Ô*>Ð"Ð"ÀÑ"Ô"Ð>Ý‰Œ×Ò˜dÐÑ#Ô#Ð#Ý$ VÑ,Ô,ˆŒØœ sÑ*ˆŒˆˆrV   c                 ó   — | j         S r^   )rV  re   s    rW   rh   zPrefixResource.canonical   r¦   rV   c                 óÈ   — |                      d¦  «        sJ ‚|                     d¦  «        rJ ‚t          |¦  «        dk    sJ ‚|| j        z   | _        | j        dz   | _        d S r  )r  r  r  rV  rW  rs   s     rW   rt   zPrefixResource.add_prefix  sg   € Ø× Ò  Ñ%Ô%Ð%Ð%Ð%Ø—?’? 3Ñ'Ô'Ð'Ð'Ð'Ý�6‰{Œ{˜QŠˆˆˆØ ¤Ñ,ˆŒØœ sÑ*ˆŒˆˆrV   c                 ó   — dS rº   r9   rs   s     rW   r|   zPrefixResource.raw_match  s   € ØˆurV   )rQ   rR   rS   rT   rc   r~   rh   rt   r‚   r|   r×   rØ   s   @rW   rT  rT  ø  sÎ   ø€ € € € € Ø:>ð +ð +ð +˜sð +¨S°4©Zð +À4ð +ð +ð +ð +ð +ð +ð ð˜3ð ð ð ñ „Xðð+ ð +¨ð +ð +ð +ð +ð ð ¨ð ð ð ð ð ð ð ð rV   rT  c                   ó0  ‡ — e Zd ZdZddeddddœdedededz  dedz  d	ed
e	de	de	ddfˆ fd„Z
ddœdede	dz  defd„Zededefd„¦   «         Zdefd„Zdeddfd„Zdedefd„Zdefd„Zdee         fd„Zdedefd„Zdedefd„Zdedefd„Zdefd „Z ˆ xZ!S )!r4   rO  NF©r[   r…   Ú
chunk_sizeÚ
show_indexÚfollow_symlinksÚappend_versionrJ   rI   r[   r…   r]  r^  r_  r`  r\   c                óH  •— t          ¦   «                              ||¬¦  «         	 t          |¦  «                             ¦   «                              d¬¦  «        }n&# t
          $ r}	t          d|› d�¦  «        |	‚d }	~	ww xY w|                     ¦   «         st          d|› d�¦  «        ‚|| _        || _	        || _
        || _        || _        || _        t          d| j        | |¬¦  «        t          d	| j        | |¬¦  «        d
œ| _        t#          | j        ¦  «        | _        d S )NrZ   T)Ústrictr#  z' does not existz' is not a directoryÚGETr÷   ÚHEAD)rc  rd  )r»   rc   r   Ú
expanduserrp   ÚFileNotFoundErrorr™   Úis_dirÚ
_directoryÚ_show_indexÚ_chunk_sizeÚ_follow_symlinksr£   Ú_append_versionr3   Ú_handleró   rõ   rö   )rb   rJ   rI   r[   r…   r]  r^  r_  r`  r8  r¼   s             €rW   rc   zStaticResource.__init__  sU  ø€ õ 	‰Œ×Ò˜ dÐÑ+Ô+Ð+ð	IÝ˜Y™œ×2Ò2Ñ4Ô4×<Ò<ÀDÐ<ÑIÔIˆIˆIøÝ ð 	Ið 	Ið 	IÝÐ< Ð<Ð<Ð<Ñ=Ô=À5ÐHøøøøð	Iøøøà×ÒÑ!Ô!ð 	BÝÐ@ Ð@Ð@Ð@ÑAÔAÐAØ#ˆŒØ%ˆÔØ%ˆÔØ /ˆÔØ-ˆÔØ-ˆÔõ !Ø�t”| T¸.ðñ ô õ "Ø˜œ d¸>ðñ ô ð	
ð 
ˆŒõ !$ D¤LÑ 1Ô 1ˆÔÐÐs   ¦5A Á
A?Á&A:Á:A?)r`  Úfilenamec                ó†  — |€| j         }t          |¦  «                             d¦  «        }t          j        | j        d¬¦  «        }t          dk     r||                     dd¦  «        z  }n||z  }|�rM| j         	                    |¦  «        }	 | j
        r[t          t          j                             |¦  «        ¦  «        }|                     | j        ¦  «         |                     ¦   «         }n.|                     ¦   «         }|                     | j        ¦  «         n# t"          t$          f$ r |cY S w xY w|                     ¦   «         rt|                     d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }	|                     | j        |	i¦  «        }|S |S )Nr?   Tr  ©r   é   ú%ú%25Úrb)rl  rT   Úlstripr   r!  rV  r<   Úreplacerh  Újoinpathrk  r   ÚosrF   ÚnormpathÚrelative_torp   r™   rf  Úis_fileÚopenÚreadÚ_get_file_hashÚ
with_queryÚVERSION_KEY)
rb   rn  r`  rQ  Úunresolved_pathÚnormalized_pathÚfilepathÚfÚ
file_bytesÚhs
             rW   rl   zStaticResource.url_for8  s÷  € ð Ð!Ø!Ô1ˆNÝ�x‘=”=×'Ò'¨Ñ,Ô,ˆåŒi˜Tœ\°4Ð8Ñ8Ô8ˆå˜&Ò Ð Ø˜×(Ò(¨¨eÑ4Ô4Ñ4ˆCˆCà˜‘.ˆCàñ 	Ø"œo×6Ò6°xÑ@Ô@ˆOðØÔ(ð :Ý&*­2¬7×+;Ò+;¸OÑ+LÔ+LÑ&MÔ&M�OØ#×/Ò/°´Ñ@Ô@Ð@Ø.×6Ò6Ñ8Ô8�H�Hà.×6Ò6Ñ8Ô8�HØ×(Ò(¨¬Ñ9Ô9Ð9øøÝÕ 1Ð2ð ð ð ð �
�
�
ðøøøð ×ÒÑ!Ô!ð ð —]’] 4Ñ(Ô(ð *¨AØ!"§¢¡¤�Jð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *à×'Ò'¨
Ñ3Ô3�Ø—n’n dÔ&6¸Ð%:Ñ;Ô;�Ø�
Øˆ
s%   ÂBD  Ä D6Ä5D6Å"FÆFÆ
FÚ
byte_arrayc                 óÈ   — t          j        ¦   «         }|                     | ¦  «         t          j        |                     ¦   «         ¦  «        }|                     d¦  «        S )NÚascii)ÚhashlibÚsha256ÚupdateÚbase64Úurlsafe_b64encodeÚdigestÚdecode)r‡  ÚmÚb64s      rW   r~  zStaticResource._get_file_hasha  sK   € åŒNÑÔˆØ	�Š�ÑÔÐÝÔ& q§x¢x¡z¤zÑ2Ô2ˆØ�zŠz˜'Ñ"Ô"Ð"rV   c                 ó,   — | j         | j        | j        dœS )N)rI   rJ   rK   )rh  rV  ró   re   s    rW   rw   zStaticResource.get_infoh  s    € àœØ”lØ”lð
ð 
ð 	
rV   rˆ   c                 óª   — d| j         v rt          d¦  «        ‚t          d|| | j        ¬¦  «        | j         d<   | j                             d¦  «         d S )NÚOPTIONSzOPTIONS route was set alreadyr÷   )ró   rÇ   r3   r£   rö   rþ   )rb   rˆ   s     rW   Úset_options_routez StaticResource.set_options_routeo  sd   € Ø˜œÐ$Ð$ÝÐ>Ñ?Ô?Ð?Ý"/Ø�w °TÔ5Ið#
ñ #
ô #
ˆŒ�YÑð 	Ô×!Ò! )Ñ,Ô,Ð,Ð,Ð,rV   rm   c              ƒ   óÂ  K  — |j         j        }|j        }t          j                             |¦  «        }t          r|                     dd¦  «        }|                     | j	        ¦  «        s|| j
        k    rd t          ¦   «         fS | j        }||vrd |fS dt          |t          | j
        ¦  «        dz   d …         ¦  «        i}t          || j        |         ¦  «        |fS )Nú\r?   rn  r   )r  r  r‡   rx  rF   ry  rB   rv  r  rW  rV  rõ   rö   rB  r  r-   ró   )rb   rm   rF   r‡   Ú	norm_pathÚallowed_methodsr·   s          rW   rp   zStaticResource.resolvew  sä   è è € ØŒÔ(ˆØ”ˆõ ”G×$Ò$ TÑ*Ô*ˆ	Ýð 	5Ø!×)Ò)¨$°Ñ4Ô4ˆIØ×#Ò# D¤MÑ2Ô2ð 	°yÀDÄLÒ7PÐ7PØ�™œ�;ÐàÔ/ˆØ˜Ð(Ð(Ø˜Ð(Ð(à Õ"4°T½#¸d¼lÑ:KÔ:KÈaÑ:OÐ:QÐ:QÔ5RÑ"SÔ"SÐTˆ
Ý# J°´¸VÔ0DÑEÔEÀÐWÐWrV   c                 ó*   — t          | j        ¦  «        S r^   r  re   s    rW   r  zStaticResource.__len__‰  r	  rV   c                 óN   — t          | j                             ¦   «         ¦  «        S r^   r  re   s    rW   r  zStaticResource.__iter__Œ  r  rV   c              ƒ   ó  K  — |j         d         }t          |¦  «                             ¦   «         rt          ¦   «         ‚| j                             |¦  «        }t          j        ¦   «         }|                     d | j	        |¦  «        ƒ d {V —†S )Nrn  )
Ú
match_infor   Úis_absoluter&   rh  rw  rŒ   Úget_running_loopÚrun_in_executorÚ_resolve_path_to_response)rb   rm   rn  r�  Úloops        rW   rm  zStaticResource._handle�  sœ   è è € ØÔ% jÔ1ˆÝ�‰>Œ>×%Ò%Ñ'Ô'ð 	!õ ‘.”.Ð Øœ/×2Ò2°8Ñ<Ô<ˆÝÔ'Ñ)Ô)ˆØ×)Ò)Ø�$Ô0°/ñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
rV   r�  c                 ó†  — 	 | j         r[t          t          j                             |¦  «        ¦  «        }|                     | j        ¦  «         |                     ¦   «         }n.|                     ¦   «         }|                     | j        ¦  «         n*# t          gt          ¢R $ r}t          ¦   «         |‚d}~ww xY w	 |                     ¦   «         r9| j        r$t          |                      |¦  «        d¬¦  «        S t          ¦   «         ‚n!# t           $ r}t          ¦   «         |‚d}~ww xY wt#          || j        ¬¦  «        S )zFTake the unresolved path and query the file system to form a response.Nz	text/html)rç   Úcontent_type)r]  )rk  r   rx  rF   ry  rz  rh  rp   r™   ÚCIRCULAR_SYMLINK_ERRORr&   rg  ri  r)   Ú_directory_as_htmlr$   ÚPermissionErrorr'   rj  )rb   r�  r‚  Ú	file_pathr8  s        rW   r¢  z(StaticResource._resolve_path_to_response›  s^  € ð
	,ØÔ$ð 7Ý"&¥r¤w×'7Ò'7¸Ñ'HÔ'HÑ"IÔ"I�Ø×+Ò+¨D¬OÑ<Ô<Ð<Ø+×3Ò3Ñ5Ô5�	�	à+×3Ò3Ñ5Ô5�	Ø×%Ò% d¤oÑ6Ô6Ð6øøÝÐ4Õ3Ð4Ð4ð 	,ð 	,ð 	,õ ‘.”. eÐ+øøøøð	,øøøð
	-Ø×ÒÑ!Ô!ð *ØÔ#ð *Ý#Ø!×4Ò4°YÑ?Ô?Ø%0ðñ ô ð õ
 (™/œ/Ð)ð*øõ ð 	-ð 	-ð 	-Ý‘/”/ uÐ,øøøøð	-øøøõ ˜I°$Ô2BÐCÑCÔCÐCs6   ‚BB ÂB:Â&B5Â5B:Â>>D Ã=D Ä
D*ÄD%Ä%D*Údir_pathc           	      ó²  — |                      ¦   «         sJ ‚|                     | j        ¦  «                             ¦   «         }dt	          |¦  «        › �}d|› d�}g }|                     ¦   «         }t          |¦  «        D ]–}|                     | j        ¦  «                             ¦   «         }t          | j        › d|› �¦  «        }	|                      ¦   «         r|j	        › d�}
n|j	        }
| 
                    d|	› dt	          |
¦  «        › d�¦  «         Œ—d                     d	                     |¦  «        ¦  «        }d
|› d	|› d�}d|› d�}d|› d	|› d�}|S )z"returns directory's index as html.z
Index of /z<h1>z</h1>r?   z<li><a href="z">z	</a></li>z<ul>
{}
</ul>ú
z<body>
z
</body>z<head>
<title>z</title>
</head>z<html>
z
</html>)rg  rz  rh  Úas_posixÚhtml_escapeÚiterdirÚsortedrM  rV  r[   Úappendr/  Újoin)rb   rª  Úrelative_path_to_dirÚindex_ofÚh1Ú
index_listÚ	dir_indexÚ_fileÚrel_pathÚquoted_file_urlÚ	file_nameÚulÚbodyÚhead_strÚhtmls                  rW   r§  z!StaticResource._directory_as_html¾  s—  € à�ŠÑ Ô Ð Ð Ð à'×3Ò3°D´OÑDÔD×MÒMÑOÔOÐØC¥Ð,@Ñ AÔ AÐCÐCˆØ#�HÐ#Ð#Ð#ˆàˆ
Ø×$Ò$Ñ&Ô&ˆ	Ý˜IÑ&Ô&ð 	ð 	ˆEà×(Ò(¨¬Ñ9Ô9×BÒBÑDÔDˆHÝ)¨T¬\Ð*FÐ*F¸HÐ*FÐ*FÑGÔGˆOð �|Š|‰~Œ~ð 'Ø$œzÐ,Ð,Ð,�	�	à!œJ�	à×ÒØT ÐTÐTµ;¸yÑ3IÔ3IÐTÐTÐTñô ð ð ð ×%Ò% d§i¢i°
Ñ&;Ô&;Ñ<Ô<ˆØ-˜"Ð-Ð- Ð-Ð-Ð-ˆà@ XÐ@Ð@Ð@ˆØ5˜(Ð5Ð5 dÐ5Ð5Ð5ˆàˆrV   c                 óZ   — | j         �d| j         z   dz   nd}d|› d| j        › d| j        ›d�S )Nr#  ræ   z<StaticResource r%  ú -> rÑ   )r[   rV  rh  ra   s     rW   rÒ   zStaticResource.__repr__Þ  sC   € Ø(,¬	Ð(=ˆs�T”Y‰ Ñ$Ð$À2ˆØO $ÐOÐO¨¬ÐOÐO¸4¼?ÐOÐOÐOÐOrV   )"rQ   rR   rS   r€  r   rT   r!   r±   r  r‚   rc   r   rl   ÚstaticmethodÚbytesr~  rE   rw   r    r–  r(   r�   rp   r  r   r2   r  r*   rm  r   r¢  r§  rÒ   r×   rØ   s   @rW   r4   r4     sh  ø€ € € € € Ø€Kð  Ø04Ø,Ø Ø %Ø$ð"2ð "2ð "2àð"2ð ð"2ð
 �D‰jð"2ð '¨Ñ-ð"2ð ð"2ð ð"2ð ð"2ð ð"2ð 
ð"2ð "2ð "2ð "2ð "2ð "2ðP '+ð	'ð 'ð 'ð ð'ð ˜t™ð	'ð
 
ð'ð 'ð 'ð 'ðR ð# 5ð #¨Sð #ð #ð #ñ „\ð#ð
˜)ð 
ð 
ð 
ð 
ð-¨ð -°Tð -ð -ð -ð -ðX Wð X°ð Xð Xð Xð Xð$!˜ð !ð !ð !ð !ð+˜( =Ô1ð +ð +ð +ð +ð

 Wð 

°ð 

ð 

ð 

ð 

ð!D¸ð !DÀ.ð !Dð !Dð !Dð !DðF¨4ð °Cð ð ð ð ð@P˜#ð Pð Pð Pð Pð Pð Pð Pð PrV   r4   c                   ó°   ‡ — e Zd Zdeddddfˆ fd„Zdeddfˆ fd„Zdeddfd„Zd	ed
edefd„Zde	fd„Z
dedefd„Zdefd„Zdee         fd„Zdefd„Zˆ xZS )ÚPrefixedSubAppResourcerJ   rL   r6   r\   Nc                 ó‚   •— t          ¦   «                              |¦  «         || _        |                      |¦  «         d S r^   )r»   rc   Ú_appÚ_add_prefix_to_resources)rb   rJ   rL   r¼   s      €rW   rc   zPrefixedSubAppResource.__init__ä  s<   ø€ Ý‰Œ×Ò˜Ñ Ô Ð ØˆŒ	Ø×%Ò% fÑ-Ô-Ð-Ð-Ð-rV   c                 ót   •— t          ¦   «                              |¦  «         |                      |¦  «         d S r^   )r»   rt   rÈ  )rb   rJ   r¼   s     €rW   rt   z!PrefixedSubAppResource.add_prefixé  s5   ø€ Ý‰Œ×Ò˜6Ñ"Ô"Ð"Ø×%Ò% fÑ-Ô-Ð-Ð-Ð-rV   c                 óÊ   — | j         j        }|                     ¦   «         D ]A}|                     |¦  «         |                     |¦  «         |                     |¦  «         ŒBd S r^   )rÇ  ÚrouterÚ	resourcesÚunindex_resourcert   Úindex_resource)rb   rJ   rË  r†   s       rW   rÈ  z/PrefixedSubAppResource._add_prefix_to_resourcesí  sr   € Ø”Ô!ˆØ×(Ò(Ñ*Ô*ð 	,ð 	,ˆHð ×#Ò# HÑ-Ô-Ð-Ø×Ò Ñ'Ô'Ð'Ø×!Ò! (Ñ+Ô+Ð+Ð+ð	,ð 	,rV   r«   rj   c                 ó    — t          d¦  «        ‚)Nz3.url_for() is not supported by sub-application root©rÇ   r®   s      rW   rl   zPrefixedSubAppResource.url_forö  s   € ÝÐPÑQÔQÐQrV   c                 ó    — | j         | j        dœS )N)rL   rJ   )rÇ  rV  re   s    rW   rw   zPrefixedSubAppResource.get_infoù  s   € Ø”y¨D¬LÐ9Ð9Ð9rV   rm   c              ƒ   óö   K  — | j         j                             |¦  «        ƒ d {V —†}|                     | j         ¦  «         t	          |j        t          ¦  «        r|j        j        }nt          ¦   «         }||fS r^   )	rÇ  rË  rp   rÊ   rŽ   rP   r%   rš  rõ   ©rb   rm   rž  Úmethodss       rW   rp   zPrefixedSubAppResource.resolveü  s}   è è € Øœ9Ô+×3Ò3°GÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<ˆ
Ø×Ò˜4œ9Ñ%Ô%Ð%Ý�jÔ/Õ1EÑFÔFð 	Ø Ô/Ô?ˆGˆGå‘e”eˆGØ˜7Ð"Ð"rV   c                 óX   — t          | j        j                             ¦   «         ¦  «        S r^   )r  rÇ  rË  rK   re   s    rW   r  zPrefixedSubAppResource.__len__  s!   € Ý�4”9Ô#×*Ò*Ñ,Ô,Ñ-Ô-Ð-rV   c                 óX   — t          | j        j                             ¦   «         ¦  «        S r^   )r  rÇ  rË  rK   re   s    rW   r  zPrefixedSubAppResource.__iter__  s!   € Ý�D”IÔ$×+Ò+Ñ-Ô-Ñ.Ô.Ð.rV   c                 ó(   — d| j         › d| j        ›d�S )Nz<PrefixedSubAppResource rÁ  rÑ   )rV  rÇ  re   s    rW   rÒ   zPrefixedSubAppResource.__repr__  s   € ØJ¨$¬,ÐJÐJ¸D¼IÐJÐJÐJÐJrV   )rQ   rR   rS   rT   rc   rt   rÈ  r   rl   rE   rw   r(   r�   rp   r  r  r   r2   r  rÒ   r×   rØ   s   @rW   rÅ  rÅ  ã  sl  ø€ € € € € ð.˜sð .¨ð .¸4ð .ð .ð .ð .ð .ð .ð
. ð .¨ð .ð .ð .ð .ð .ð .ð,¨sð ,°tð ,ð ,ð ,ð ,ðR˜Sð R¨Cð R°Cð Rð Rð Rð Rð:˜)ð :ð :ð :ð :ð# Wð #°ð #ð #ð #ð #ð.˜ð .ð .ð .ð .ð/˜( =Ô1ð /ð /ð /ð /ðK˜#ð Kð Kð Kð Kð Kð Kð Kð KrV   rÅ  c                   ó”   — e Zd Zej        dedefd„¦   «         Zej        defd„¦   «         Z	e
ej        defd„¦   «         ¦   «         ZdS )rN   rm   r\   c              ƒ   ó
   K  — dS )z1Return bool if the request satisfies the criteriaNr9   ro   s     rW   r˜   zAbstractRuleMatching.match  rq   rV   c                 ó   — dS rv   r9   re   s    rW   rw   zAbstractRuleMatching.get_info  ri   rV   c                 ó   — dS )zReturn a strNr9   re   s    rW   rh   zAbstractRuleMatching.canonical  ri   rV   N)rQ   rR   rS   r   r€   r(   r‚   r˜   rE   rw   r~   rT   rh   r9   rV   rW   rN   rN     s¯   € € € € € ØÔð@ 7ð @¨tð @ð @ð @ñ Ôð@ð 	ÔðJ˜)ð Jð Jð Jñ ÔðJð ØÔð˜3ð ð ð ñ Ôñ „Xðð ð rV   rN   c                   ó    ‡ — e Zd Z ej        d¦  «        Zdeddfˆ fd„Zedefd„¦   «         Z	dedefd„Z
dedefd	„Zd
edefd„Zdefd„Zˆ xZS )ÚDomainz(?!-)[a-z\d-]{1,63}(?<!-)rM   r\   Nc                 ó|   •— t          ¦   «                              ¦   «          |                      |¦  «        | _        d S r^   )r»   rc   Ú
validationÚ_domain)rb   rM   r¼   s     €rW   rc   zDomain.__init__!  s0   ø€ Ý‰Œ×ÒÑÔÐØ—’ vÑ.Ô.ˆŒˆˆrV   c                 ó   — | j         S r^   ©rà  re   s    rW   rh   zDomain.canonical%  r¦   rV   c                 óâ  ‡ — t          |t          ¦  «        st          d¦  «        ‚|                     d¦  «                             ¦   «         }|st          d¦  «        ‚d|v rt          d¦  «        ‚t          d|z   ¦  «        }|j        €J ‚t          ˆ fd„|j         	                    d¦  «        D ¦   «         ¦  «        st          d¦  «        ‚|j
        d	k    r|j        S |j        › d
|j
        › �S )NzDomain must be strr:   zDomain cannot be emptyz://zScheme not supportedzhttp://c              3   óL   •K  — | ]}‰j                              |¦  «        V — Œd S r^   )Úre_partr.  )rC  Úxrb   s     €rW   ú	<genexpr>z$Domain.validation.<locals>.<genexpr>3  s3   øè è € ÐNÐN°�4”<×)Ò)¨!Ñ,Ô,ÐNÐNÐNÐNÐNÐNrV   zDomain not validéP   ú:)rŽ   rT   Ú	TypeErrorÚrstriprì   r™   r   Úraw_hostÚallr,  Úport)rb   rM   rQ  s   `  rW   rß  zDomain.validation)  sÿ   ø€ Ý˜&¥#Ñ&Ô&ð 	2ÝÐ0Ñ1Ô1Ð1Ø—’˜sÑ#Ô#×)Ò)Ñ+Ô+ˆØð 	5ÝÐ5Ñ6Ô6Ð6Ø�fˆ_ˆ_ÝÐ3Ñ4Ô4Ð4Ý�)˜fÑ$Ñ%Ô%ˆØŒ|Ð'Ð'Ð'ÝÐNÐNÐNÐN°c´l×6HÒ6HÈÑ6MÔ6MÐNÑNÔNÑNÔNð 	1ÝÐ/Ñ0Ô0Ð0ØŒ8�rŠ>ˆ>Ø”<ÐØ”,Ð+Ð+ ¤Ð+Ð+Ð+rV   rm   c              ƒ   ó€   K  — |j                              t          j        ¦  «        }|sdS |                      |¦  «        S rº   )rè   ré   r   ÚHOSTÚmatch_domain)rb   rm   Úhosts      rW   r˜   zDomain.match9  s>   è è € ØŒ×"Ò"¥4¤9Ñ-Ô-ˆØð 	Ø�5Ø× Ò  Ñ&Ô&Ð&rV   rò  c                 ó<   — |                      ¦   «         | j        k    S r^   )rì   rà  ©rb   rò  s     rW   rñ  zDomain.match_domain?  s   € Ø�zŠz‰|Œ|˜tœ|Ò+Ð+rV   c                 ó   — d| j         iS )NrM   râ  re   s    rW   rw   zDomain.get_infoB  s   € Ø˜$œ,Ð'Ð'rV   )rQ   rR   rS   r5  r7  rå  rT   rc   r~   rh   rß  r(   r‚   r˜   rñ  rE   rw   r×   rØ   s   @rW   rÝ  rÝ    s  ø€ € € € € ØˆbŒjÐ5Ñ6Ô6€Gð/˜sð / tð /ð /ð /ð /ð /ð /ð ð˜3ð ð ð ñ „Xðð, ð ,¨ð ,ð ,ð ,ð ,ð ' 7ð '¨tð 'ð 'ð 'ð 'ð, ð ,¨ð ,ð ,ð ,ð ,ð(˜)ð (ð (ð (ð (ð (ð (ð (ð (rV   rÝ  c                   ót   ‡ — e Zd Z ej        d¦  «        Zdeddfˆ fd„Zedefd„¦   «         Z	dede
fd„Zˆ xZS )	Ú
MaskDomainz(?!-)[a-z\d\*-]{1,63}(?<!-)rM   r\   Nc                 óÚ   •— t          ¦   «                              |¦  «         | j                             dd¦  «                             dd¦  «        }t	          j        |¦  «        | _        d S )Nr:   z\.Ú*z.*)r»   rc   rà  rv  r5  r7  Ú_mask)rb   rM   Úmaskr¼   s      €rW   rc   zMaskDomain.__init__I  sW   ø€ Ý‰Œ×Ò˜Ñ Ô Ð ØŒ|×#Ò# C¨Ñ/Ô/×7Ò7¸¸TÑBÔBˆÝ”Z Ñ%Ô%ˆŒ
ˆ
ˆ
rV   c                 ó   — | j         j        S r^   )rú  rH   re   s    rW   rh   zMaskDomain.canonicalN  s   € àŒzÔ!Ð!rV   rò  c                 ó:   — | j                              |¦  «        d uS r^   )rú  r.  rô  s     rW   rñ  zMaskDomain.match_domainR  s   € ØŒz×#Ò# DÑ)Ô)°Ð5Ð5rV   )rQ   rR   rS   r5  r7  rå  rT   rc   r~   rh   r‚   rñ  r×   rØ   s   @rW   r÷  r÷  F  s¦   ø€ € € € € ØˆbŒjÐ7Ñ8Ô8€Gð&˜sð & tð &ð &ð &ð &ð &ð &ð
 ð"˜3ð "ð "ð "ñ „Xð"ð6 ð 6¨ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6rV   r÷  c                   óf   — e Zd Zdeddddfd„Zedefd„¦   «         Zdefd„Z	d	e
defd
„Zdefd„ZdS )ÚMatchedSubAppResourcerO   rL   r6   r\   Nc                 ód   — t                                | ¦  «         d| _        || _        || _        d S )Nræ   )r.   rc   rV  rÇ  Ú_rule)rb   rO   rL   s      rW   rc   zMatchedSubAppResource.__init__W  s/   € Ý×!Ò! $Ñ'Ô'Ð'ØˆŒØˆŒ	ØˆŒ
ˆ
ˆ
rV   c                 ó   — | j         j        S r^   )r  rh   re   s    rW   rh   zMatchedSubAppResource.canonical]  s   € àŒzÔ#Ð#rV   c                 ó    — | j         | j        dœS )N)rL   rO   )rÇ  r  re   s    rW   rw   zMatchedSubAppResource.get_infoa  s   € Ø”y¨$¬*Ð5Ð5Ð5rV   rm   c              ƒ   óV  K  — | j                              |¦  «        ƒ d {V —†sd t          ¦   «         fS | j        j                             |¦  «        ƒ d {V —†}|                     | j        ¦  «         t          |j        t          ¦  «        r|j        j
        }nt          ¦   «         }||fS r^   )r  r˜   rõ   rÇ  rË  rp   rÊ   rŽ   rP   r%   rš  rÓ  s       rW   rp   zMatchedSubAppResource.resolved  sµ   è è € Ø”Z×%Ò% gÑ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.ð 	Ø�™œ�;ÐØœ9Ô+×3Ò3°GÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<ˆ
Ø×Ò˜4œ9Ñ%Ô%Ð%Ý�jÔ/Õ1EÑFÔFð 	Ø Ô/Ô?ˆGˆGå‘e”eˆGØ˜7Ð"Ð"rV   c                 ó   — d| j         ›d�S )Nz<MatchedSubAppResource -> rÑ   )rÇ  re   s    rW   rÒ   zMatchedSubAppResource.__repr__o  s   € Ø:¨D¬IÐ:Ð:Ð:Ð:rV   )rQ   rR   rS   rN   rc   r~   rT   rh   rE   rw   r(   r�   rp   rÒ   r9   rV   rW   rÿ  rÿ  V  s½   € € € € € ðÐ1ð ¸ð È$ð ð ð ð ð ð$˜3ð $ð $ð $ñ „Xð$ð6˜)ð 6ð 6ð 6ð 6ð	# Wð 	#°ð 	#ð 	#ð 	#ð 	#ð;˜#ð ;ð ;ð ;ð ;ð ;ð ;rV   rÿ  c                   ó¤   ‡ — e Zd ZdZddœdedeee         z  dede	dz  ddf
ˆ fd	„Z
defd
„Zededz  fd„¦   «         Zdededefd„Zdefd„Zˆ xZS )r3   zA route with resourceNr÷   r‡   rˆ   r†   r…   r\   c                óR   •— t          ¦   «                              ||||¬¦  «         d S )Nr„   )r»   rc   )rb   r‡   rˆ   r†   r…   r¼   s        €rW   rc   zResourceRoute.__init__v  s9   ø€ õ 	‰Œ×ÒØ�G¨NÀXð 	ñ 	
ô 	
ð 	
ð 	
ð 	
rV   c                 ó6   — d| j         › d| j        › d| j        ›�S )Nz<ResourceRoute [z] rÁ  )r‡   r¤   rˆ   re   s    rW   rÒ   zResourceRoute.__repr__‚  s&   € ØU $¤+ÐUÐU°´ÐUÐUÀTÄ\ÐUÐUÐUrV   c                 ó,   — | j         €d S | j         j        S r^   )r¤   r[   re   s    rW   r[   zResourceRoute.name…  s   € àŒ>Ð!Ø�4ØŒ~Ô"Ð"rV   r«   rj   c                 ó8   — | j         €J ‚ | j         j        |i |¤ŽS )r­   )r¤   rl   r®   s      rW   rl   zResourceRoute.url_for‹  s*   € àŒ~Ð)Ð)Ð)Ø%ˆtŒ~Ô% tÐ6¨vÐ6Ð6Ð6rV   c                 óF   — | j         €J ‚| j                              ¦   «         S r^   )r¤   rw   re   s    rW   rw   zResourceRoute.get_info�  s$   € ØŒ~Ð)Ð)Ð)ØŒ~×&Ò&Ñ(Ô(Ð(rV   )rQ   rR   rS   Ú__doc__rT   r    rŸ   r   r.   r±   rc   rÒ   r~   r[   r   rl   rE   rw   r×   rØ   s   @rW   r3   r3   s  s   ø€ € € € € ØÐð 15ð

ð 

ð 

àð

ð ˜4 Ô-Ñ-ð

ð #ð	

ð '¨Ñ-ð

ð 
ð

ð 

ð 

ð 

ð 

ð 

ðV˜#ð Vð Vð Vð Vð ð#�c˜D‘jð #ð #ð #ñ „Xð#ð
7˜Sð 7¨Cð 7°Cð 7ð 7ð 7ð 7ð
)˜)ð )ð )ð )ð )ð )ð )ð )ð )rV   r3   c                   ó¾   ‡ — e Zd Zdeddfˆ fd„Zdededefd„Zededz  fd„¦   «         Z	de
fd	„Zd
edefd„Zedefd„¦   «         Zedefd„¦   «         Zdefd„Zˆ xZS )rÞ   rP   r\   Nc                 óx   •— t          ¦   «                              t          j        | j        ¦  «         || _        d S r^   )r»   rc   r   rý   rm  Ú_http_exceptionrß   s     €rW   rc   zSystemRoute.__init__–  s/   ø€ Ý‰Œ×Ò�œ¨¬Ñ5Ô5Ð5Ø-ˆÔÐÐrV   r«   rj   c                 ó    — t          d¦  «        ‚)Nz).url_for() is not allowed for SystemRouterÐ  r®   s      rW   rl   zSystemRoute.url_forš  s   € ÝÐFÑGÔGÐGrV   c                 ó   — d S r^   r9   re   s    rW   r[   zSystemRoute.name�  rÁ   rV   c                 ó   — d| j         iS )NrP   ©r  re   s    rW   rw   zSystemRoute.get_info¡  s   € Ø  $Ô"6Ð7Ð7rV   rm   c              ƒ   ó   K  — | j         ‚r^   r  ro   s     rW   rm  zSystemRoute._handle¤  s   è è € ØÔ"Ð"rV   c                 ó   — | j         j        S r^   )r  rã   re   s    rW   rã   zSystemRoute.status§  ó   € àÔ#Ô*Ð*rV   c                 ó   — | j         j        S r^   )r  rä   re   s    rW   rä   zSystemRoute.reason«  r  rV   c                 ó(   — d| j         › d| j        › d�S )Nz<SystemRoute rÐ   rÑ   )rã   rä   re   s    rW   rÒ   zSystemRoute.__repr__¯  s   € Ø<˜tœ{Ð<Ð<¨d¬kÐ<Ð<Ð<Ð<rV   )rQ   rR   rS   r"   rc   rT   r   rl   r~   r[   rE   rw   r(   r*   rm  r  rã   rä   rÒ   r×   rØ   s   @rW   rÞ   rÞ   •  sL  ø€ € € € € ð. }ð .¸ð .ð .ð .ð .ð .ð .ðH˜Sð H¨Cð H°Cð Hð Hð Hð Hð ð�c˜D‘jð ð ð ñ „Xðð8˜)ð 8ð 8ð 8ð 8ð# Wð #°ð #ð #ð #ð #ð ð+˜ð +ð +ð +ñ „Xð+ð ð+˜ð +ð +ð +ñ „Xð+ð=˜#ð =ð =ð =ð =ð =ð =ð =ð =rV   rÞ   c                   óD   — e Zd Zdefd„Zdeddef         fd„Zdefd„ZdS )r5   r\   c              ƒ   ó6  K  — | j         j        t          j        vr|                      ¦   «          t          | | j         j                             ¦   «         d ¦  «        }|€|                      ¦   «           |¦   «         ƒ d {V —†}t          |t          ¦  «        sJ ‚|S r^   )	rm   r‡   r   ÚMETH_ALLÚ_raise_allowed_methodsÚgetattrrì   rŽ   r*   )rb   r‡   Úrets      rW   Ú_iterz
View._iter´  s•   è è € ØŒ<Ô¥d¤mÐ3Ð3Ø×'Ò'Ñ)Ô)Ð)å˜˜tœ|Ô2×8Ò8Ñ:Ô:¸DÑAÔAˆØˆ>Ø×'Ò'Ñ)Ô)Ð)Ø�F‘H”HˆnˆnˆnˆnˆnˆnˆÝ˜#�~Ñ.Ô.Ð.Ð.Ð.Øˆ
rV   Nc                 óN   — |                       ¦   «                              ¦   «         S r^   )r  Ú	__await__re   s    rW   r!  zView.__await__¿  s   € Ø�zŠz‰|Œ|×%Ò%Ñ'Ô'Ð'rV   c                 óh   ‡ — ˆ fd„t           j        D ¦   «         }t          ‰ j        j        |¦  «        ‚)Nc                 óX   •— h | ]&}t          ‰|                     ¦   «         ¦  «        ¯$|’Œ'S r9   )Úhasattrrì   )rC  r‘  rb   s     €rW   ú	<setcomp>z.View._raise_allowed_methods.<locals>.<setcomp>Ã  s0   ø€ ÐPÐPÐP µw¸tÀQÇWÂWÁYÄYÑ7OÔ7OÐP˜1ÐPÐPÐPrV   )r   r  r%   rm   r‡   )rb   rš  s   ` rW   r  zView._raise_allowed_methodsÂ  s3   ø€ ØPÐPÐPÐP¥d¤mÐPÑPÔPˆÝ" 4¤<Ô#6¸ÑHÔHÐHrV   )	rQ   rR   rS   r*   r  r   r!  r   r  r9   rV   rW   r5   r5   ³  sx   € € € € € ð	˜^ð 	ð 	ð 	ð 	ð(˜9 T¨4°Ð%?Ô@ð (ð (ð (ð (ðI¨ð Ið Ið Ið Ið Ið IrV   r5   c                   ó^   — e Zd Zdee         ddfd„Zdefd„Zdee         fd„Z	de
defd„ZdS )	ÚResourcesViewrÌ  r\   Nc                 ó   — || _         d S r^   ©Ú
_resources)rb   rÌ  s     rW   rc   zResourcesView.__init__È  s   € Ø#ˆŒˆˆrV   c                 ó*   — t          | j        ¦  «        S r^   )r  r*  re   s    rW   r  zResourcesView.__len__Ë  s   € Ý�4”?Ñ#Ô#Ð#rV   c              #   ó$   K  — | j         E d {V —† d S r^   r)  re   s    rW   r  zResourcesView.__iter__Î  s&   è è € Ø”?Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"rV   r†   c                 ó   — || j         v S r^   r)  ©rb   r†   s     rW   Ú__contains__zResourcesView.__contains__Ñ  s   € Ø˜4œ?Ð*Ð*rV   )rQ   rR   rS   Úlistr.   rc   r  r  r   r  Úobjectr‚   r/  r9   rV   rW   r'  r'  Ç  sš   € € € € € ð$ $Ð'7Ô"8ð $¸Tð $ð $ð $ð $ð$˜ð $ð $ð $ð $ð#˜(Ð#3Ô4ð #ð #ð #ð #ð+ Vð +°ð +ð +ð +ð +ð +ð +rV   r'  c                   óZ   — e Zd Zdee         fd„Zdefd„Zdee	         fd„Z
dedefd„ZdS )	Ú
RoutesViewrÌ  c                 ó\   — g | _         |D ]!}|D ]}| j                              |¦  «         ŒŒ"d S r^   )ró   r±  )rb   rÌ  r†   r¸   s       rW   rc   zRoutesView.__init__Ö  sO   € Ø,.ˆŒØ!ð 	+ð 	+ˆHØ!ð +ð +�Ø”×#Ò# EÑ*Ô*Ð*Ð*ð+ð	+ð 	+rV   r\   c                 ó*   — t          | j        ¦  «        S r^   r  re   s    rW   r  zRoutesView.__len__Ü  r	  rV   c              #   ó$   K  — | j         E d {V —† d S r^   ©ró   re   s    rW   r  zRoutesView.__iter__ß  s&   è è € Ø”<ÐÐÐÐÐÐÐÐÐrV   r¸   c                 ó   — || j         v S r^   r7  rÿ   s     rW   r/  zRoutesView.__contains__â  s   € Ø˜œÐ$Ð$rV   N)rQ   rR   rS   r0  r.   rc   r  r  r   r2   r  r1  r‚   r/  r9   rV   rW   r3  r3  Õ  s’   € € € € € ð+ $Ð'7Ô"8ð +ð +ð +ð +ð!˜ð !ð !ð !ð !ð ˜( =Ô1ð  ð  ð  ð  ð% &ð %¨Tð %ð %ð %ð %ð %ð %rV   r3  c                   óÌ  ‡ — e Zd Z ej        d¦  «        Zd3ˆ fd„Zdedefd„Z	de
e         fd„Zdefd„Zd	edefd
„Zdedefd„Zdefd„Zdefd„Zdeeef         fd„Zd	eddfd„Zd	edefd„Zd	eddfd„Zd	eddfd„Zddœdededz  defd„Zdddœdedede e!e"         z  dedz  de#dz  de$fd„Z%dde&ddddœdede'dedz  de#dz  ded ed!ed"edefd#„Z(dede d$e)de$fd%„Z*dede d$e)de$fd&„Z+dd'd(œdede dedz  d)ed$e)de$fd*„Z,dede d$e)de$fd+„Z-dede d$e)de$fd,„Z.dede d$e)de$fd-„Z/dede d$e)de$fd.„Z0dede!e"         d$e)de$fd/„Z1d3ˆ fd0„Z2d1e3e4         de5e$         fd2„Z6ˆ xZ7S )4r,   z[.:-]r\   Nc                 ó€   •— t          ¦   «                              ¦   «          g | _        i | _        i | _        g | _        d S r^   )r»   rc   r*  Ú_named_resourcesÚ_resource_indexÚ_matched_sub_app_resourcesrÓ   s    €rW   rc   zUrlDispatcher.__init__ê  s>   ø€ Ý‰Œ×ÒÑÔÐØ24ˆŒØ=?ˆÔØBDˆÔØGIˆÔ'Ð'Ð'rV   rm   c              ƒ   ó   K  — | j         }t          ¦   «         }| j        D ]+}|                     |¦  «        ƒ d {V —†\  }}|�|c S ||z  }Œ,|j        j        }|rh|                     |d¦  «        D ]+}|                     |¦  «        ƒ d {V —†\  }}|�|c S ||z  }Œ,|dk    rn|                     d¦  «        d         pd}|°h|r"t          t          |j
        |¦  «        ¦  «        S t          t          ¦   «         ¦  «        S )Nr9   r?   r   )r<  rõ   r=  rp   r  r  ré   Ú
rpartitionrÚ   r%   r‡   r&   )	rb   rm   Úresource_indexrš  r†   r·   ÚallowedÚurl_partÚ	candidates	            rW   rp   zUrlDispatcher.resolveñ  sY  è è € ØÔ-ˆÝ$'¡E¤Eˆð Ô7ð 	+ð 	+ˆHØ(0×(8Ò(8¸Ñ(AÔ(AÐ"AÐ"AÐ"AÐ"AÐ"AÐ"AÑˆJ˜ØÐ%Ø!Ð!Ð!Ð!à 7Ñ*��ð ”?Ô,ˆØð 		:Ø+×/Ò/°¸"Ñ=Ô=ð /ð /�	Ø,5×,=Ò,=¸gÑ,FÔ,FÐ&FÐ&FÐ&FÐ&FÐ&FÐ&FÑ#�
˜GØÐ)Ø%Ð%Ð%Ð%à# wÑ.�O�OØ˜3ŠˆØØ×*Ò*¨3Ñ/Ô/°Ô2Ð9°cˆHð ð 		:ð ð 	YÝ!Õ"6°w´~ÀÑ"WÔ"WÑXÔXÐXå�l™nœnÑ-Ô-Ð-rV   c                 ó*   — t          | j        ¦  «        S r^   )r  r;  re   s    rW   r  zUrlDispatcher.__iter__  s   € Ý�DÔ)Ñ*Ô*Ð*rV   c                 ó*   — t          | j        ¦  «        S r^   )r  r;  re   s    rW   r  zUrlDispatcher.__len__  s   € Ý�4Ô(Ñ)Ô)Ð)rV   r†   c                 ó   — || j         v S r^   ©r;  r.  s     rW   r/  zUrlDispatcher.__contains__   s   € Ø˜4Ô0Ð0Ð0rV   r[   c                 ó   — | j         |         S r^   rG  ra   s     rW   Ú__getitem__zUrlDispatcher.__getitem__#  s   € ØÔ$ TÔ*Ð*rV   c                 ó*   — t          | j        ¦  «        S r^   )r'  r*  re   s    rW   rÌ  zUrlDispatcher.resources&  s   € Ý˜Tœ_Ñ-Ô-Ð-rV   c                 ó*   — t          | j        ¦  «        S r^   )r3  r*  re   s    rW   rK   zUrlDispatcher.routes)  s   € Ý˜$œ/Ñ*Ô*Ð*rV   c                 ó*   — t          | j        ¦  «        S r^   )r   r;  re   s    rW   Únamed_resourceszUrlDispatcher.named_resources,  s   € Ý Ô 5Ñ6Ô6Ð6rV   c                 óˆ  — t          |t          ¦  «        sJ d|›�¦   «         ‚| j        rt          d¦  «        ‚|j        }|� | j                             |¦  «        }|D ]P}t          j        |¦  «        rt          d|›d�¦  «        ‚| 
                    ¦   «         st          d|›d�¦  «        ‚ŒQ|| j        v r t          d|›d| j        |         ›�¦  «        ‚|| j        |<   | j                             |¦  «         t          |t          ¦  «        r| j                             |¦  «         d S |                      |¦  «         d S )Nz4Instance of AbstractResource class is required, got z.Cannot register a resource into frozen router.zIncorrect route name z/, python keywords cannot be used for route namezV, the name should be a sequence of python identifiers separated by dash, dot or columnz
Duplicate z, already handled by )rŽ   r.   ÚfrozenrÇ   r[   ÚNAME_SPLIT_REr,  ÚkeywordÚ	iskeywordr™   Úisidentifierr;  r*  r±  rÿ  r=  rÎ  )rb   r†   r[   rJ  r;  s        rW   Úregister_resourcezUrlDispatcher.register_resource/  sÅ  € ÝØÕ&ñ
ô 
ð 	Oð 	OàNÀ(ÐNÐNñ	Oô 	Oð 
ð Œ;ð 	QÝÐOÑPÔPÐPàŒ}ˆàÐØÔ&×,Ò,¨TÑ2Ô2ˆEØð ð �ÝÔ$ TÑ*Ô*ð Ý$ð)°ð )ð )ð )ñô ð ð
 ×(Ò(Ñ*Ô*ð Ý$ð1°ð 1ð 1ð 1ñô ð ðð �tÔ,Ð,Ð,Ý ðJ ð Jð JØ*.Ô*?ÀÔ*EðJð Jñô ð ð +3ˆDÔ! $Ñ'ØŒ×Ò˜xÑ(Ô(Ð(å�hÕ 5Ñ6Ô6ð 	*àÔ+×2Ò2°8Ñ<Ô<Ð<Ð<Ð<à×Ò Ñ)Ô)Ð)Ð)Ð)rV   c                 ó®   — d|j         x}v r4|                     d¦  «        d                              d¦  «        d         }|                     d¦  «        pdS )z9Return a key to index the resource in the resource index.r)  r   r?   )rh   Ú	partitionr?  rë  )rb   r†   Ú	index_keys      rW   Ú_get_resource_index_keyz%UrlDispatcher._get_resource_index_keyV  s[   € à Ô 2Ð2�9Ð3Ð3ð "×+Ò+¨CÑ0Ô0°Ô3×>Ò>¸sÑCÔCÀAÔFˆIØ×Ò Ñ$Ô$Ð+¨Ð+rV   c                 óŒ   — |                       |¦  «        }| j                             |g ¦  «                             |¦  «         dS )z%Add a resource to the resource index.N)rX  r<  Ú
setdefaultr±  ©rb   r†   Úresource_keys      rW   rÎ  zUrlDispatcher.index_resourcea  sD   € à×3Ò3°HÑ=Ô=ˆð 	Ô×'Ò'¨°bÑ9Ô9×@Ò@ÀÑJÔJÐJÐJÐJrV   c                 óp   — |                       |¦  «        }| j        |                              |¦  «         dS )z*Remove a resource from the resource index.N)rX  r<  Úremover[  s      rW   rÍ  zUrlDispatcher.unindex_resourcei  s7   € à×3Ò3°HÑ=Ô=ˆØÔ˜\Ô*×1Ò1°(Ñ;Ô;Ð;Ð;Ð;rV   rZ   rF   c                óÄ  — |r$|                      d¦  «        st          d¦  «        ‚| j        rB| j        d         }|j        |k    r*|                     |¦  «        rt          t          |¦  «        S d|v sFd|v sBt                               |¦  «        s(t          ||¬¦  «        }|  
                    |¦  «         |S t          ||¬¦  «        }|  
                    |¦  «         |S )Nr?   z)path should be started with / or be emptyéÿÿÿÿr)  r*  rZ   )r  r™   r*  r[   r|   r   r/   r>   Úsearchr0   rT  r1   )rb   rF   r[   r†   s       rW   Úadd_resourcezUrlDispatcher.add_resourcen  së   € Øð 	J˜Ÿš¨Ñ,Ô,ð 	JÝÐHÑIÔIÐIàŒ?ð 	0Ø” rÔ*ˆHØŒ} Ò$Ð$¨×);Ò);¸DÑ)AÔ)AÐ$Ý�H hÑ/Ô/Ð/Ø�t��˜s d˜{˜{­h¯oªo¸dÑ.CÔ.C˜{Ý$ T°Ð5Ñ5Ô5ˆHØ×"Ò" 8Ñ,Ô,Ð,ØˆOÝ" 4¨dÐ3Ñ3Ô3ˆØ×Ò˜xÑ(Ô(Ð(ØˆrV   )r[   r…   r‡   rˆ   r…   c                ó`   — |                       ||¬¦  «        }|                     |||¬¦  «        S )NrZ   r÷   )rb  rû   )rb   r‡   rF   rˆ   r[   r…   r†   s          rW   rû   zUrlDispatcher.add_route~  s7   € ð ×$Ò$ T°Ð$Ñ5Ô5ˆØ×!Ò! &¨'À.Ð!ÑQÔQÐQrV   Fr\  rJ   r]  r^  r_  r`  c          
      óÊ   — |                      d¦  «        sJ ‚|                     d¦  «        r
|dd…         }t          ||||||||¬¦  «        }	|                      |	¦  «         |	S )z^Add static files view.

        prefix - url prefix
        path - folder with files

        r?   Nr`  r\  )r  r  r4   rT  )
rb   rJ   rF   r[   r…   r]  r^  r_  r`  r†   s
             rW   Ú
add_staticzUrlDispatcher.add_staticŠ  s†   € ð$ × Ò  Ñ%Ô%Ð%Ð%Ð%Ø�?Š?˜3ÑÔð 	!Ø˜C˜R˜C”[ˆFÝ!ØØØØ)Ø!Ø!Ø+Ø)ð	
ñ 	
ô 	
ˆð 	×Ò˜xÑ(Ô(Ð(ØˆrV   rj   c                 ó6   —  | j         t          j        ||fi |¤ŽS )z(Shortcut for add_route with method HEAD.)rû   r   Ú	METH_HEAD©rb   rF   rˆ   rj   s       rW   Úadd_headzUrlDispatcher.add_head¬  ó"   € àˆtŒ~�dœn¨d°GÐFÐF¸vÐFÐFÐFrV   c                 ó6   —  | j         t          j        ||fi |¤ŽS )z+Shortcut for add_route with method OPTIONS.)rû   r   ÚMETH_OPTIONSrh  s       rW   Úadd_optionszUrlDispatcher.add_options°  s#   € àˆtŒ~�dÔ/°°wÐIÐIÀ&ÐIÐIÐIrV   T)r[   Ú
allow_headrn  c                ó˜   — |                       ||¬¦  «        }|r |j        t          j        |fi |¤Ž  |j        t          j        |fi |¤ŽS )zœShortcut for add_route with method GET.

        If allow_head is true, another
        route is added allowing head requests to the same endpoint.
        rZ   )rb  rû   r   rg  ÚMETH_GET)rb   rF   rˆ   r[   rn  rj   r†   s          rW   Úadd_getzUrlDispatcher.add_get´  sc   € ð ×$Ò$ T°Ð$Ñ5Ô5ˆØð 	BØˆHÔ�tœ~¨wÐAÐA¸&ÐAÐAÐAØ!ˆxÔ!¥$¤-°ÐCÐC¸FÐCÐCÐCrV   c                 ó6   —  | j         t          j        ||fi |¤ŽS )z(Shortcut for add_route with method POST.)rû   r   Ú	METH_POSTrh  s       rW   Úadd_postzUrlDispatcher.add_postÇ  rj  rV   c                 ó6   —  | j         t          j        ||fi |¤ŽS )z'Shortcut for add_route with method PUT.)rû   r   ÚMETH_PUTrh  s       rW   Úadd_putzUrlDispatcher.add_putË  s"   € àˆtŒ~�dœm¨T°7ÐEÐE¸fÐEÐEÐErV   c                 ó6   —  | j         t          j        ||fi |¤ŽS )z)Shortcut for add_route with method PATCH.)rû   r   Ú
METH_PATCHrh  s       rW   Ú	add_patchzUrlDispatcher.add_patchÏ  s"   € àˆtŒ~�dœo¨t°WÐGÐGÀÐGÐGÐGrV   c                 ó6   —  | j         t          j        ||fi |¤ŽS )z*Shortcut for add_route with method DELETE.)rû   r   ÚMETH_DELETErh  s       rW   Ú
add_deletezUrlDispatcher.add_deleteÓ  s#   € àˆtŒ~�dÔ.°°gÐHÐHÀÐHÐHÐHrV   c                 ó6   —  | j         t          j        ||fi |¤ŽS )z?Shortcut for add_route with ANY methods for a class-based view.)rû   r   rý   rh  s       rW   Úadd_viewzUrlDispatcher.add_view×  s$   € ð ˆtŒ~�dœm¨T°7ÐEÐE¸fÐEÐEÐErV   c                 ó„   •— t          ¦   «                              ¦   «          | j        D ]}|                     ¦   «          Œd S r^   )r»   ry   r*  )rb   r†   r¼   s     €rW   ry   zUrlDispatcher.freezeÝ  sE   ø€ Ý‰Œ�ŠÑÔÐØœð 	ð 	ˆHØ�OŠOÑÔÐÐð	ð 	rV   rK   c                 ód   — g }|D ]*}|                      |                     | ¦  «        ¦  «         Œ+|S )z¢Append routes to route table.

        Parameter should be a sequence of RouteDef objects.

        Returns a list of registered AbstractRoute instances.
        )ÚextendÚregister)rb   rK   Úregistered_routesÚ	route_defs       rW   Ú
add_routeszUrlDispatcher.add_routesâ  sD   € ð ÐØð 	?ð 	?ˆIØ×$Ò$ Y×%7Ò%7¸Ñ%=Ô%=Ñ>Ô>Ð>Ð>Ø Ð rV   r}   )8rQ   rR   rS   r5  r7  rP  rc   r(   r-   rp   r   rT   r  r  r  r1  r‚   r/  r.   rI  r'  rÌ  r3  rK   r	   rM  rT  rX  rÎ  rÍ  r/   rb  r    rŸ   r   r±   r2   rû   r   r!   re  r   ri  rm  rq  rt  rw  rz  r}  r  ry   r   r+   r0  r†  r×   rØ   s   @rW   r,   r,   æ  s‚  ø€ € € € € à�B”J˜xÑ(Ô(€MðJð Jð Jð Jð Jð Jð'. Wð '.Ð1Dð '.ð '.ð '.ð '.ðR+˜( 3œ-ð +ð +ð +ð +ð*˜ð *ð *ð *ð *ð1 Vð 1°ð 1ð 1ð 1ð 1ð+ ð +Ð(8ð +ð +ð +ð +ð.˜=ð .ð .ð .ð .ð+˜
ð +ð +ð +ð +ð7 ¨Ð.>Ð)>Ô!?ð 7ð 7ð 7ð 7ð%*Ð*:ð %*¸tð %*ð %*ð %*ð %*ðN	,Ð0@ð 	,ÀSð 	,ð 	,ð 	,ð 	,ðKÐ'7ð K¸Dð Kð Kð Kð Kð<Ð)9ð <¸dð <ð <ð <ð <ð
 =Að ð ð  ð ¨s°T©zð ÀXð ð ð ð ð,  Ø04ð
Rð 
Rð 
Ràð
Rð ð
Rð ˜4 Ô-Ñ-ð	
Rð �D‰jð
Rð '¨Ñ-ð
Rð 
ð
Rð 
Rð 
Rð 
Rð"  Ø04Ø,Ø Ø %Ø$ð ð  ð  àð ð ð ð
 �D‰jð ð '¨Ñ-ð ð ð ð ð ð ð ð ð ð 
ð ð  ð  ð  ðDG˜Sð G¨7ð G¸cð GÀmð Gð Gð Gð GðJ ð J¨gð JÀð JÈð Jð Jð Jð Jð  ØðDð Dð DàðDð ðDð
 �D‰jðDð ðDð ðDð 
ðDð Dð Dð Dð&G˜Sð G¨7ð G¸cð GÀmð Gð Gð Gð GðF˜Cð F¨'ð F¸Sð FÀ]ð Fð Fð Fð FðH˜cð H¨Gð H¸sð HÀ}ð Hð Hð Hð HðI˜sð I¨Wð IÀð IÈð Ið Ið Ið IðFØðFØ"& |Ô"4ðFØ@CðFà	ðFð Fð Fð Fðð ð ð ð ð ð

! Ð*:Ô!;ð 
!ÀÀ]Ô@Sð 
!ð 
!ð 
!ð 
!ð 
!ð 
!ð 
!ð 
!rV   r,   rE  c                 óz   — t           dk     r|                      dd¦  «        } t          j        | d¬¦  «        j        S )Nrp  rr  rs  Fr  )r<   rv  r   r!  Úraw_path©rE  s    rW   rM  rM  ï  s8   € Ý�fÒÐØ—’˜c 5Ñ)Ô)ˆÝŒ9˜%¨Ð/Ñ/Ô/Ô8Ð8rV   c                 ób   — d| vr| S |                       dd¦  «                              dd¦  «        S )Nrr  z%2Fr?   rs  )rv  r‰  s    rW   rB  rB  õ  s6   € Ø
�%ÐÐØˆØ�=Š=˜ Ñ$Ô$×,Ò,¨U°CÑ8Ô8Ð8rV   c                 óX   — t          | ¦  «        }d| v r|                     dd¦  «        }|S )Nrr  rs  )rM  rv  )rE  r�   s     rW   r4  r4  û  s2   € õ ˜ÑÔ€FØ
ˆe€|€|Ø—’  sÑ+Ô+ˆØ€MrV   )zr   rŒ   r�  Ú	functoolsrŠ  r¿  r“   rQ  rx  Úplatformr5  r•   rœ   Úcollections.abcr   r   r   r   r   r   r	   r
   r   Úpathlibr   r   Útypesr   Útypingr   r   r   r   r   r   r   Úyarlr   r   Úyarl_versionræ   r   r   r   r   Úhelpersr   r   Úhttpr   Útypedefsr    r!   Úweb_exceptionsr"   r#   r$   r%   r&   Úweb_fileresponser'   Úweb_requestr(   Úweb_responser)   r*   Úweb_routedefr+   Ú__all__Úweb_appr6   rÕ   rT   ÚBaseDictr–   rÇ   r¦  rÄ   Úmapr  r,  r<   rU   r7  r=   r>   r6  r@   ÚsystemrB   r‚   r±   rõ   r�   Úpartialr®  rE   r.   ÚABCr2   r-   rÚ   r’   r/   r0   r1   rT  r4   rÅ  rN   rÝ  r÷  rÿ  r3   rÞ   r5   r'  r3  r,   rM  rB  r4  r9   rV   rW   ú<module>r£     s±  ðØ 
€
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ Qà 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø  Ð  Ð  Ð  Ð  Ð  Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø *Ð *Ð *Ð *Ð *Ð *ð€ð ð Ø$Ð$Ð$Ð$Ð$Ð$à�C˜�HŒ~€H€Hà€Hà,/Ô,<¸wÒ,FÐ,F˜,˜˜ÈBÐ à', u¨S¨S°Ð6H°lÔ6HÈÑ6MÔ6MÈbÈqÈbÔ6QÑ-RÔ-RÑ'SÔ'S€ˆe�E˜#˜s˜(”OÔ$Ð SÐ SÑ Sà&0 b¤jØ+ñ'ô '€��g˜c”lÔ#ð ð ñ ð !+ ¤
Ø1ñ!ô !€ˆ%�˜”Ô
ð ð ñ ð !�r”y ‘~”~€ˆ%�Œ*Ð %Ð %Ñ %à)˜(œ/Ñ+Ô+¨yÒ8€
ˆE�$ŒKÐ 8Ð 8Ñ 8à˜7˜) Y¨~ÀÑ/DÔ%EÐEÔF€Ø�Ð/Ô0°#°c´(Ð:Ô;€àˆiÔ ¤°4Ð8Ñ8Ô8€ð"ð "ð "ð "ð "�	 ð "ñ "ô "ð "ð&,/ð ,/ð ,/ð ,/ð ,/�u˜h Ô7ñ ,/ô ,/ð ,/ð^R3ð R3ð R3ð R3ð R3�C”Gñ R3ô R3ð R3ðj<Bð <Bð <Bð <Bð <B˜(Ð$5ñ <Bô <Bð <Bð~Vð Vð Vð Vð VÐ(ñ Vô Vð Vð L¨7ð L°tð Lð Lð Lð Lð 1+ð 1+ð 1+ð 1+ð 1+Ðñ 1+ô 1+ð 1+ðl%6ð %6ð %6ð %6ð %6�Hñ %6ô %6ð %6ðPG=ð G=ð G=ð G=ð G=�hñ G=ô G=ð G=ðTð ð ð ð Ð%ñ ô ð ð2OPð OPð OPð OPð OP�^ñ OPô OPð OPðd)Kð )Kð )Kð )Kð )K˜^ñ )Kô )Kð )KðXð ð ð ð ˜3œ7ñ ô ð ð%(ð %(ð %(ð %(ð %(Ð!ñ %(ô %(ð %(ðP6ð 6ð 6ð 6ð 6�ñ 6ô 6ð 6ð ;ð ;ð ;ð ;ð ;Ð2ñ ;ô ;ð ;ð:)ð )ð )ð )ð )�Mñ )ô )ð )ðD=ð =ð =ð =ð =�-ñ =ô =ð =ð<Ið Ið Ið Ið Iˆ<ñ Iô Ið Ið(+ð +ð +ð +ð +�E˜8Ð$4Ô5°yÐAQÔ7Rñ +ô +ð +ð%ð %ð %ð %ð %�˜ Ô/°¸=Ô1Iñ %ô %ð %ð"F!ð F!ð F!ð F!ð F!�N G¨CÐ1AÐ,AÔ$Bñ F!ô F!ð F!ðR9�sð 9˜sð 9ð 9ð 9ð 9ð9˜cð 9 cð 9ð 9ð 9ð 9ð˜ð  ð ð ð ð ð ð rV   