§
    ¬	Êj`‚  ã                  ó	  — d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	m
Z
mZ dZ ed¬¦  «         G d	„ d
¦  «        ¦   «         Zi dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,“i d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“¥i dOdP“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d[“d\d]“d^d_“d`da“dbdc“ddde“dfdg“dhdi“djdk“dldm“dndo“¥i dpdq“drds“dtdu“dvdw“dxdy“dzd{“d|d}“d~d“d€d�“d‚dƒ“d„d…“d†d‡“dˆd‰“dŠd‹“dŒd�“dŽd�“d�d‘“¥i d’d““d”d•“d–d—“d˜d™“dšd›“dœd�“dždŸ“d d¡“d¢d£“d¤d¥“d¦d$“d§d¨“d©dª“d«d¬“d­d®“d¯d°“d±d²“¥d³d´dµd¶d·œ¥Zdd¸d¹dºd»d¼d½œZ ed¾                     ¦   «         ¦  «        Zi d¿dÀ“dÁdÂ“dÃdÄ“dÅdÆ“dÇdÈ“dÉdÊ“dËdÌ“dÍdÎ“dÏdÐ“dÑdÒ“dÓdÔ“dÕdÖ“d×dØ“dÙdÚ“dÛdÜ“dÝdÞ“dßdà“i dádâ“dãdä“dådæ“dçdè“dédê“dëdì“dídî“dïdð“dñdò“dódô“dõdö“d÷dø“dùdú“dûdü“dýdþ“dÿ�d “�d�d“¥i �d�d“�d�d“�d�d“�d	�d
“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d “�d!�d"“�d#�d$“¥i �d%�d&“�d'�d(“�d)�d*“�d+�d,“�d-�d.“�d/�d0“�d1�d2“�d3�d4“�d5�d6“�d7�d8“�d9�d:“�d;�d<“�d=�d>“�d?�d@“�dA�dB“�dC�dD“�dE�dF“¥i �dG�dH“�dI�dJ“�dK�dL“�dM�dN“�dO�dP“�dQ�dR“�dS�dT“�dU�dV“�dW�dX“�dY�dZ“�d[�d\“�d]�d^“�d_�d`“�da�db“�dc�dd“�de�df“�dg�dh“¥i �di�dj“�dk�dl“�dm�dn“�do�dp“�dq�dr“�ds�dt“�du�dv“�dw�dx“�dy�dz“�d{�d|“�d}�d~“�d�d€“�d��d‚“�dƒ�d„“�d…�d†“�d‡�dˆ“�d‰�dŠ“¥i �d‹�dŒ“�d��dŽ“�d��d�“�d‘�d’“�d“�d”“�d•�d–“�d—�d˜“�d™�dš“�d›�dœ“�d��dž“�dŸ�d “�d¡�d¢“�d£�d¤“�d¥�d¦“�d§�d¨“�d©�dª“�d«�d¬“¥i �d­�d®“�d¯�d°“�d±�d²“�d³�d´“�dµ�d¶“�d·�d¸“�d¹�dº“�d»�d¼“�d½�d¾“�d¿�dÀ“�dÁ�dÂ“�dÃ�dÄ“�dÅ�dÆ“�dÇ�dÈ“�dÉ�dÊ“�dË�dÌ“�dÍ�dÎ“¥i �dÏ�dÐ“�dÑ�dÒ“�dÓ�dÔ“�dÕ�dÖ“�d×�dØ“�dÙ�dÚ“�dÛ�dÜ“�dÝ�dÞ“�dß�dà“�dá�dâ“�dã�dä“�då�dæ“�dç�dè“�dé�dê“�dë�dì“�dí�dî“�dï�dð“¥�dñ�dò�dó�dôœ¥Z�d�dù„Z�d�dû„Z�d�dÿ„Z�d�d„Z�d�d„Zd�dœ�d�d	„Z	 �ddd�dœ�d�d„ZdS (  a  The session language: decided ONCE, read everywhere.

WHY THIS MODULE EXISTS. Until 36.x the language of a session was decided in
pieces. `resolve_session_locale` turned "auto" into a tag from the egress
country, every caller repeated the `if locale == "auto"` branch around it, and
then each consumer derived more values from the RAW tag: the prefs wrote
`general.useragent.locale` from the tag and `intl.accept_languages` from the
table below, the wrapper's server converted a context's tag with the same
table, and three copies of the cookie builder took the CONSENT token from the
tag again.

The Australian egress is the case that showed it, measured 2026-10-04: the
country maps to "en-AU", the table maps "en-AU" to "en-US, en" (it is keyed by
LANGUAGE, as Firefox's is: there is no en-AU build), so `navigator.language`
said en-US while the requested locale said en-AU. Two answers to one question,
both computed in this package.

Now one function, :func:`decide_session_locale`, is the ONLY place "auto" is
resolved and the ONLY place the table is applied, and its result is a value
object, :class:`SessionLocale`. Every tag-shaped value reads
:attr:`SessionLocale.primary`, every list-shaped value reads
:attr:`SessionLocale.accept_languages`, and nothing re-derives either.
é    )ÚannotationsN)Ú	dataclass)ÚAnyÚDictÚOptionalÚTupleúen-UST)Úfrozenc                  ó|   — e Zd ZU dZded<   dZded<   dd	„Zedd„¦   «         Zedd„¦   «         Z	e
dd„¦   «         ZdS )ÚSessionLocalea6  The language list a session declares, and the region it was decided for.

    Built by :func:`decide_session_locale`; consumers read it and never derive
    from the tag that produced it.

    ``languages`` is the list Firefox's language prefs carry, in order: the
    first entry is what ``navigator.language`` reports and the whole tuple is
    ``navigator.languages`` and the Accept-Language header (Firefox prepares
    the header from it, with its own q-values).

    ``region`` is, for "auto", the egress country; for an explicit tag, its
    region subtag, or None when the tag has none. It is NOT a language: it answers "where", which the language list
    cannot always say (French is "fr" first, with no region, for a French and a
    Belgian egress alike), and the Google CONSENT cookie needs exactly that.
    zTuple[str, ...]Ú	languagesNúOptional[str]ÚregionÚreturnÚNonec                ó~   — | j         rt          d„ | j         D ¦   «         ¦  «        st          d| j         ›�¦  «        ‚d S )Nc              3  óD   K  — | ]}t          |t          ¦  «        o|V — Œd S ©N)Ú
isinstanceÚstr©Ú.0Úts     úFC:\Projects\Muse2API\.venv\Lib\site-packages\invisible_core/_locale.pyú	<genexpr>z.SessionLocale.__post_init__.<locals>.<genexpr>;   sJ   è è € ð )Bð )BØ-.•
˜1�cÑ"Ô"Ð( qð)Bð )Bð )Bð )Bð )Bð )Bó    z=a SessionLocale needs a non-empty list of language tags, got )r   ÚallÚ
ValueError©Úselfs    r   Ú__post_init__zSessionLocale.__post_init__:   sr   € ØŒ~ð 	+¥Sð )Bð )BØ26´.ð)Bñ )Bô )Bñ &Bô &Bð 	+åð*Ø”~ð*ð *ñ+ô +ð +ð	+ð 	+r   r   c                ó   — | j         d         S )a  The language the session reports: ``navigator.language``.

        Every pref or value shaped like ONE tag uses this, never the requested
        tag: for "en-AU" it is "en-US", because that is what the list starts
        with and therefore what the page reads.
        r   )r   r   s    r   ÚprimaryzSessionLocale.primaryA   s   € ð Œ~˜aÔ Ð r   c                ó6   — d                      | j        ¦  «        S )z5The list as Firefox's prefs take it: ``"en-US, en"``.ú, )Újoinr   r   s    r   Úaccept_languageszSessionLocale.accept_languagesK   s   € ð �yŠy˜œÑ(Ô(Ð(r   Úvaluer   ú'SessionLocale'c                ó€   — t          || ¦  «        r|S t          |¦  «        rt          d¦  «        ‚t          |¦  «        S )a%  The decision for a value that needs no egress: a tag, or a decision.

        A :class:`SessionLocale` passes through; a tag goes through the same
        table :func:`decide_session_locale` applies, so a caller handing a tag
        and a caller handing the decision get identical output. This is what a
        PURE consumer uses: the prefs and cookie builders, and a browser
        context that asks for its own locale (``new_context(locale="de-DE")``).

        "auto" is REFUSED: resolving it needs the egress address, which only
        the launch has (:func:`prepare_session_geo`). Resolved anywhere else it
        would discover the HOST's address and give the home country's language
        next to the proxy country's timezone; written verbatim it became the
        language "auto".
        z¦locale="auto" is decided once, at launch, from the egress address: pass the SessionLocale from prepare_session_geo() (its .locale) or an explicit tag such as 'de-DE'.)r   Ú_is_autor   Ú	_from_tag)Úclsr(   s     r   ÚofzSessionLocale.ofP   sU   € õ  �e˜SÑ!Ô!ð 	ØˆLÝ�E‰?Œ?ð 	EÝðDñEô Eð Eõ ˜ÑÔÐr   )r   r   )r   r   )r(   r   r   r)   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r!   Úpropertyr#   r'   Úclassmethodr.   © r   r   r   r   %   s³   € € € € € € ðð ð  ÐÐÑØ €FÐ Ð Ð Ñ ð+ð +ð +ð +ð ð!ð !ð !ñ „Xð!ð ð)ð )ð )ñ „Xð)ð ð ð  ð  ñ „[ð ð  ð  r   r   Úacezace, idÚachz
ach, en-GBÚafzaf, en-ZA, en-GBÚakz	ak, ak-GHÚanzan, es-ES, es, caÚastzast, es-ES, esÚazz	az-AZ, azÚbozbo-CN, bo-IN, boÚbrzbr, fr-FR, frÚbrxzbrx, asÚbsz	bs-BA, bsÚcakzcak, kaq, esÚcrhz	tr-TR, trÚcszcs, skÚcsbzcsb, csb-PL, plÚcyz	cy-GB, cyÚdsbzdsb, hsb, deÚelz	el-GR, elÚetz	et, et-EEÚfaz	fa-IR, faÚffzff, fr-FR, fr, en-GBÚfiz	fi-FI, fiÚfrz	fr, fr-FRÚfrpzfrp, fr-FR, frÚfurzfur-IT, fur, it-IT, itÚfyzfy-NL, fy, nlÚgazga-IE, ga, en-IE, en-GBÚgdzgd-GB, gd, en-GBÚglz	gl-ES, glÚgnzgn, esÚgvz	gv, en-GBÚhez	he, he-ILÚhrz	hr, hr-HRÚhsbzhsb, dsb, deÚhtozes-MX, es-ES, es, es-AR, es-CLÚhuz	hu-HU, huÚhyezhye, hyÚilozilo-PH, iloÚitz	it-IT, itÚixlzixl, es-MX, esÚjaÚkaz	ka-GE, kaÚkabzkab-DZ, kab, fr-FR, frÚkkzkk, ru, ru-RUÚknz	kn-IN, knÚkoz	ko-KR, koÚlbzlb, de-DE, deÚlgz	lg, en-GBÚlijzlij, itÚltz
lt, ru, plÚltgzltg, lvÚmaizmai, hi-IN, enÚmehzmeh, es-MX, esÚmixzmix, es-MX, esÚmkz	mk-MK, mkÚmlz	ml-IN, mlÚmrz	mr-IN, mrÚnbznb-NO, nb, no-NO, no, nn-NO, nnÚnnznn-NO, nn, no-NO, no, nb-NO, nbÚnrznr-ZA, nr, en-ZA, en-GBÚnsoznso-ZA, nso, en-ZA, en-GBÚoczoc, ca, fr, es, itÚpaz	pa, pa-INÚpplzppl, es-MX, esÚrmzrm, rm-CH, de-CH, deÚruz	ru-RU, ruÚsahzsah, ru-RU, ruÚsczsc, it-IT, itÚscnzscn, it-IT, itÚsiz	si-LK, siÚskzsk, csÚsonzson, son-ML, frÚsqz	sq, sq-ALÚsrz	sr-RS, srÚstzst-ZA, st, en-ZA, en-GBÚtaz	ta-IN, taÚtez	te-IN, teÚtlz	tl-PH, tlÚtrÚtrsztrs, es-MX, esÚtszts-ZA, ts, en-ZA, en-GBÚukz	uk-UA, ukÚurz	ur-PK, urÚuzzuz, ruÚvezve-ZA, ve, en-ZA, en-GBz	vi-VN, vizxcl, hyz	xh-ZA, xhzzam, es-MX, es)ÚviÚxclÚxhÚzamzmy, en-GB, enzro-RO, ro-GB, enzsco, en-GB, enzsl, en-GB, enzszl, pl-PL, pl, en, de)ÚenÚmyÚroÚscoÚslÚszla¤  
    ach af an ar ast az be bg bn br bs ca ca-valencia cak cs cy da de dsb el
    en-CA en-GB en-US eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fur fy-NL
    ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja ka kab kk km
    kn ko lij lt lv mk mr ms my nb-NO ne-NP nl nn-NO oc pa-IN pl pt-BR pt-PT rm
    ro ru sat sc sco si sk skr sl son sq sr sv-SE szl ta te tg th tl tr trs uk
    ur uz vi xh zh-CN zh-TW
ÚAE))r	   g     @V@)úen-GBçffffff@)rx   ç      @)ÚarçÍÌÌÌÌÌô?©rM   ç333333Ó?©úzh-CNçš™™™™™É?ÚAF))r	   g      X@©r—   r›   )rJ   r›   ©rM   çš™™™™™Ù?©rx   çš™™™™™¹?©úen-CAr¦   ©Úplr¦   ©r…   r¦   ÚAL))r	   gš™™™™YR@)r—   ç      %@)rM   çffffff@)Údeçš™™™™™@)r]   çÍÌÌÌÌÌ@ÚAM))r	   gš™™™™™M@)rx   g     €A@)zhy-AMç      ø?©rŸ   r›   ©r—   çš™™™™™ñ?r£   ÚAO))úpt-PTgfffffæB@)r	   gš™™™™™=@)úpt-BRg33333³9@)úes-ESçÍÌÌÌÌÌ @)rM   ç       @ÚAR))úes-ARgÍÌÌÌÌÌJ@)rº   g     €>@©r	   ç      '@)úes-MXçffffff
@©r—   r�   ÚAT))r¯   çfffff†T@)r	   g333333,@)r—   çffffffö?©rx   ç333333ã?)rZ   r¤   ÚAU))r	   g33333óU@)r—   çffffff%@©rŸ   ç      à?©r¨   r    ©rM   r    ÚAZ))r	   gÍÌÌÌÌŒL@)rx   g33333³<@)r…   ç333333@)r=   ç333333@©r—   r¼   ÚBA))r	   gÍÌÌÌÌQ@)rW   gÍÌÌÌÌÌ-@)rA   çš™™™™™@)r€   r˜   ©r—   g      @ÚBD))r	   gfffffFX@©r—   çš™™™™™@ÚBE))rM   g333333D@)Únlg333333?@)r	   g      6@©r—   gffffff@)r¯   ç333333û?ÚBF))rM   çš™™™™ÙV@)r	   gÍÌÌÌÌÌ @©rŸ   r¦   r¥   ©r—   r¦   ÚBG))r	   ç     €N@)Úbggš™™™™™?@rÕ   )rx   rÆ   ©r¯   çffffffæ?ÚBH))r	   g33333³V@)r—   ç333333@)rš   ç333333@)rˆ   r    ©r…   r    ÚBI))rM   g33333sM@)r	   gš™™™™ÙC@)rx   ç      ð?©r]   r    rÍ   ÚBJ))rM   g33333sU@)r	   g      +@©r¨   r�   ©r¯   r    r¥   rß   ÚBN)©r	   çÍÌÌÌÌìW@©r—   r°   ©r¯   r�   ©rM   r¦   ©rŒ   r¦   ÚBO))rº   g33333“P@)rÁ   ç     €5@)r	   g      !@)r¾   r™   )úes-CLrÈ   ÚBR))r¹   ç      V@)r	   çš™™™™™#@)r¸   r¶   ©r—   r    ©rº   r¦   ÚBW))r	   gffffffW@©r—   çffffff@©rŸ   r�   )rx   r�   )únb-NOr¦   ÚBY)©rx   rÞ   ©r	   ç      @)ÚberÈ   rÃ   ÚCA))r	   çfffffæI@)r¨   g     @@@)rM   ç      &@)r—   çš™™™™™	@)rŸ   r¤   ÚCD))rM   g      S@)r	   rø   ©r—   çÍÌÌÌÌÌì?©rx   r  r  )rH   r¦   ÚCG))rM   çš™™™™ùU@r¿   ©r—   rÌ   rž   ÚCH))r¯   gÍÌÌÌÌÌK@)rM   ç     €3@)r	   çš™™™™™2@)r]   rØ   rÒ   ÚCI))rM   çÍÌÌÌÌÌU@)r	   gš™™™™™(@rÃ   r¥   rþ   ÚCL))rù   gÍÌÌÌÌF@)rº   gš™™™™YB@)r	   g333333*@)rÁ   çffffff@)r¾   rë   ÚCM))rM   çš™™™™™Q@)r	   g33333³;@©r—   rë   rž   ©rx   r    rÍ   ÚCN))rŸ   rò   )r	   r®   )úzh-TWr    rà   ÚCO))rº   gfffffÆR@)r	   rÊ   )rÁ   r­   ©r¾   rè   )rù   rå   ÚCR))rº   g33333sH@)rÁ   gffffff<@)r	   çfffffæ2@r"  ©r¯   r¤   rà   ÚCU))rº   gfffffFQ@)r	   gš™™™™4@)rÁ   rü   )r¾   rÈ   rà   ÚCY))r	   g33333³Q@)r—   gffffff+@)rH   r˜   ©rx   ç      @)r¯   çÍÌÌÌÌÌü?ÚCZ))rD   gÍÌÌÌÌŒT@)r	   gÍÌÌÌÌÌ+@rµ   )rx   r¶   r%  )r}   r¦   ÚDE))r¯   rû   ©r	   g333333"@©r—   rå   ©rx   rå   )rª   r    ÚDK))Údagš™™™™YK@)r	   g     €B@ró   )r¯   çš™™™™™@r£   ÚDO))rº   g33333óK@)r	   ç      A@)rÁ   çš™™™™™@©r¾   ç333333ó?)rM   r  ÚDZ))rM   g333333Q@©r	   gš™™™™7@)rš   gÍÌÌÌÌÌ@©r—   çš™™™™™é?r  ÚEC))rº   g33333³S@)rÁ   ç      (@)r	   r  ©r¾   ç      @©rù   r�   ÚEE))r	   g33333sK@)rI   gffffff3@)rx   g      1@)r—   gffffff@r%  )rL   r¤   ÚEG))r	   g33333“S@)rš   r$  ©r—   r»   rï   r¥   ÚES))rº   çÍÌÌÌÌ¬R@)r	   çš™™™™™'@)ÚcaçÍÌÌÌÌÌ@)zca-valenciaç333333@r.  rï   ÚET))r	   gÍÌÌÌÌLX@©r—   gffffff@r  rõ   r§   ÚFI))rL   g333333N@)r	   gš™™™™>@)rx   r°   ©r—   rI  )úsv-SEr¶   ÚFR))rM   g     àV@)r	   gffffff@©r—   rÈ   rô   r¥   ÚGA))rM   g     àU@©r	   çffffff'@r%  r  rì   ÚGB))r—   gÍÌÌÌÌ,P@)r	   gš™™™™Y@@©rx   r¤   ©rª   r¤   rÎ   ©r¯   r¦   rß   ÚGE))r	   gÍÌÌÌÌÌR@)rx   gš™™™™™0@)r`   rÑ   rC  rï   ré   rõ   ©r¸   r¦   ÚGF))rM   çfffff†W@)r	   g      @©r—   r7  rž   ÚGH))r	   ç     `W@©r—   g      @rœ   r  rW  ÚGN))rM   rE  )r	   gš™™™™5@©rŸ   r  )rÁ   rå   r/  ©r¨   rå   )r…   rÌ   ÚGP))rM   r^  )r	   r5  r  r§   ÚGR))rH   g      P@)r	   gffffff=@rÒ   ©r¯   r  rU  ÚGT))rº   g      Q@)rÁ   g      -@)r	   gš™™™™™*@r6  ÚHK))r	   g      B@)rŸ   r4  )r   g33333³:@rÒ   r  r§   ©r_   r¦   ÚHN))rº   râ   )r	   gÍÌÌÌÌL3@)rÁ   gÍÌÌÌÌÌ0@©r¾   r»   r  ÚHR))r	   g33333óJ@)rW   g     ÀA@r   )r¯   rØ   ©rª   r�   ©rD   r    ÚHT))r	   g      O@)rM   gÍÌÌÌÌLA@)rº   rÆ   ©r¯   rë   rb  rÃ   ÚHU))rZ   r  )r	   r­   r  ©r¯   rÈ   r  ÚID)©r	   gÍÌÌÌÌR@)Úidçffffff:@r\  rß   r§   ÚIE)rs  )r—   gš™™™™™5@©rM   rë   )rª   r;  r%  ©rº   r¤   r  ÚIL))r	   g      R@)rV   çÍÌÌÌÌÌ(@)rx   r  ©r—   rÑ   )rM   çš™™™™™ù?ÚIN)rñ   rÕ   rÍ   ÚIQ))r	   gfffffS@)rš   gfffffæ4@)r—   r2  r¥   ÚIS))r	   g33333SR@)r—   gffffff(@)Úisr)  )rx   r³   )rª   r›   rw  ©r¯   rÌ   ÚIT))r]   çÍÌÌÌÌìU@)r	   ç      "@)r¯   r|  r.  rœ   ÚJM)©r	   r[  ró   )r¨   r¶   r�  rx  ©rÁ   r¦   ÚJO))r	   g     @T@)rš   ç      .@©r—   r?  r%  r  ÚJP))r_   g33333ÓU@)r	   çÍÌÌÌÌÌ@)rŸ   r±   ©r—   r¤   ÚKE))r	   gÍÌÌÌÌLW@)r—   gÍÌÌÌÌÌ@rÍ   rW  rõ   ÚKG))rx   g33333ÓS@)r	   r  r�  ©r…   r�   )rš   r    )r¹   r    rß   ÚKH))r	   gš™™™™™W@r×   ra  )rt  r  )Úkmr¦   rõ   ÚKR))rd   gffffffS@)r	   g      2@)rŸ   r¼   r�  r  )rŒ   r    ÚKW))r	   r  )rš   gffffff@©r—   gÍÌÌÌÌÌ@©rº   r�   r§   ÚKZ)r  r  r  )rb   r    rW  ÚLA))r	   gš™™™™ùS@)Úthr=  ró   )rŸ   rØ   )rŒ   rÈ   rï   rÎ   ÚLB)©r	   g33333W@)r—   gÍÌÌÌÌÌ@)rM   r2  )rš   r7  rï   ©rº   r    ÚLK))r	   gš™™™™X@©r—   r±   rÍ   rW  ÚLT))r	   gš™™™™ÙI@)rh   g333333A@)rx   gÍÌÌÌÌÌ!@r{  rW  rõ   ÚLU))r	   gfffffæ>@)r¯   gÍÌÌÌÌL=@)rM   g      9@)r—   r  )rÚ   rÈ   rœ  ÚLV))r	   gffffffI@)rx   gÍÌÌÌÌL9@)Úlvr  rÕ   r«   rW  ©rˆ   r¦   ÚLY))r	   gš™™™™ÙK@)rš   g33333óD@)r—   r|  )r…   r¤   rô   ÚMA))rM   gÍÌÌÌÌŒR@)r	   g     €6@)rš   r¶   r:  )rº   rÌ   ÚMD))rx   g     @L@)r	   g     €?@)r’   r  rÕ   rß   r£  ÚME))r	   gš™™™™ùQ@©r—   gš™™™™™@)r€   rç   )rx   g333333@©r¯   r7  )rW   r¤   rl  ÚMG)©rM   g33333óT@©r	   gš™™™™™.@r�  r  r§   rß   ÚMK))r	   g     @W@r{  )rm   r  )r€   r¤   r%  rþ   r«   ÚML))rM   gÍÌÌÌÌlV@)r	   g      #@rP  )r¸   r    ÚMM))r	   g     @X@rK  r  r§   )r‘   r¦   ÚMN)©r	   gfffffX@©r—   rè   rË   )rd   r    rï   r  rõ   rh  ÚMO))r   gš™™™™YE@)r	   g33333sC@)rŸ   gffffff-@r×   )r¸   rÈ   ©r_   r    ÚMQ))rM   g     €W@)r	   r˜   )rº   r;  rý   ÚMT))r	   gfffff†Q@)r—   g      4@)r]   r*  )r¯   r¶   r  rV  r–  )rH   r    ÚMU))r	   g33333ST@)r—   ç333333'@)rM   r)  ©r¯   r;  rm  r  ©r]   r¦   ÚMV))r	   rƒ  )r—   r„  )r…   rë   r¹  )rD   r�   rž   r  rÎ   ÚMW))r	   g33333“W@©r—   rH  rU  r§   ÚMX))rÁ   gfffff¦M@)rº   ru  ©r	   gffffff)@)r¾   r¶   rý   ÚMY)r†  r{  r´   )Úmsr    )r   r¦   ÚMZ))r	   g33333³K@)r¸   gÍÌÌÌÌL4@)r¹   gfffffæ3@ró   ©rt  r�   rö   ÚNA))r	   gÍÌÌÌÌÌV@)r—   rŒ  )r¹   r¤   r%  rº  rY  ÚNC))rM   gÍÌÌÌÌ,X@)r	   r  rW  ÚNE))rM   gfffffæU@)r	   gš™™™™™&@r  rý   ÚNG)rñ   ró   rœ   r§   r¥   ÚNI))rº   r  )rÁ   gš™™™™™,@)r	   gš™™™™™+@)r¾   r  r@  rà   ÚNL))rÚ   gÍÌÌÌÌI@)r	   gÍÌÌÌÌA@r(  r•  r©  r£   ÚNO))r  gš™™™™ÙF@)r	   g     ÀD@r½  )rª   rÆ   )rx   r;  rä   ÚNP)©r	   g333333X@rÛ   )zne-NPr¦   rõ   r§   ÚNZ))r	   gfffff†U@)r—   rS  rË   ©r¨   r¤   rÎ   rï   ÚOM))r	   g     @M@)rš   gfffff&C@r²  rœ   rÍ   rW  ÚPA))rº   gÍÌÌÌÌN@)r	   çffffff9@)rÁ   gÍÌÌÌÌÌ$@)r¾   r›   r  rõ   ÚPE))rº   g33333sR@rR  )rÁ   rÀ   rj  )rù   r    ÚPF))rM   gÍÌÌÌÌìV@)r	   gffffff@r.  ÚPG))r	   gfffff†X@)r—   rÜ   rž   ÚPH)rÌ  rK  r  r§   rW  ÚPK))r	   gÍÌÌÌÌŒW@r_  r§   ÚPL))rª   g     ÀV@)r	   rÐ   rÇ   rP  r£  rW  ÚPR))r	   rÅ   )rº   çffffff,@)rÁ   r»   r  )r¾   r¤   ÚPS))r	   gš™™™™ÙJ@)rš   g     ÀE@rC  r%  r  )rV   r¦   ÚPT))r¸   g33333³M@r9  )r¹   gš™™™™™$@)r—   rÂ   )rM   rÆ   ÚPY))rº   gÍÌÌÌÌlR@)r	   ç       @)rÁ   rÝ  )r¾   rç   )r¹   rÜ   ÚQA))r	   gš™™™™¹V@)r—   rÔ   )rš   gffffffþ?©rM   rÈ   rî   rž   rW  ÚRE))rM   g33333ÓW@)r	   gš™™™™™@rÃ   ÚRO))r	   g      P@)r’   rÑ  )r—   g333333@)rZ   rÜ   r/  rï   ÚRS))r	   gÍÌÌÌÌS@)r€   g      /@©r—   r  )rx   r›   )rZ   r7  ÚRU))rx   gfffff¦V@r-  rà   rß   ÚRW))r	   g33333X@rK  )rM   r;  )rš   r¤   rþ   r¥   ÚSA))r	   g333333K@)rš   g333333E@r×   rõ   r§   ÚSD))r	   g33333V@)rš   gffffff"@rÒ   rî   rW  ÚSE))rN  gÍÌÌÌÌJ@)r	   g     €C@rM  )rx   rè   re  ÚSG))r	   gš™™™™ÙR@)rŸ   g33333³0@rã  )rt  rÈ   rï   r  ÚSI))r”   gÍÌÌÌÌlP@)r	   gš™™™™=@rž  r¹  ©r]   r�   r¥   ÚSK))r}   gfffffFS@)r	   g     €0@)rD   r»   )rZ   r›   r¢   ÚSN)r«  ©r	   gÍÌÌÌÌÌ.@r–  rì   rà   ÚSO))r	   gÍÌÌÌÌlW@r_  )rš   rÌ   rî   ÚSV))rº   gš™™™™YQ@)r	   r‰  )rÁ   rÙ  )r¾   rå   rÃ   ÚSY))r	   gÍÌÌÌÌŒP@)rš   g33333³?@r:  r%  r�  r¥   ÚTG))rM   gÍÌÌÌÌV@)r	   r¸  rþ   ÚTH))r	   g33333óI@)r™  g      F@r\  ©rŸ   r;  r%  r  ÚTN))rM   gš™™™™¹Q@)r	   gÍÌÌÌÌL:@rµ   rq  rë  )rš   r¦   ÚTR))r…   gffffffT@rî  r  rä   rÇ   ÚTT))r	   gfffffÆW@)r—   gÍÌÌÌÌÌ@rË   rh  ÚTW))r   gÍÌÌÌÌ¬S@r¬  )rŸ   çffffff@r�  r´  rõ   ÚTZ)r±  rŠ  rÎ   rï   rž   ÚUA))rx   r
  )rˆ   g33333sA@)r	   rz  r  r©   ÚUG))r	   g     àW@rÕ   r§   rß   r¥   rõ   ÚUS))r	   g33333SX@rô  r  r–  r  ÚUY))rº   gÍÌÌÌÌlQ@r¿  )r¾   g333333(@)rÁ   rù  r  ÚUZ))rx   g     ÀT@rî  )rŠ   rå   r�  r«   ÚVE))rº   gÍÌÌÌÌìR@)rÁ   rF  )r	   g333333!@r>  )rù   r¤   ÚVN))rŒ   gfffff¦H@)r	   gfffff¦G@)r—   r*  rË   r  rõ   ÚXK))r	   gš™™™™™U@)r—   gš™™™™™@)r€   r¼   )r   rë   ro  rß  )r}   r    ÚYE))rš   g     €J@)r	   gfffff¦F@rÎ  rU  rÃ  rý   rW  ))r	   gš™™™™™V@)r—   gš™™™™™ @r£   rW  rß   )	r›  r¨  r  rÍ   r  rõ   rh  rW  r‡  ))r	   gš™™™™YW@r_  rÎ  rÎ   rž   r¥   r©   )ÚZAÚZMÚZWÚcountryr   Ú	egress_ipr   c                óÚ  — t                                | ¦  «        }|st          S t          j        |                     ¦   «         ¦  «        j        }t                               t          j
        |                     d¦  «        ¦  «                             ¦   «         dd…         d¦  «        }|dz  t          d„ |D ¦   «         ¦  «        z  }|D ]\  }}||z  }|dk     r|c S Œ|d         d         S )	aæ  The build a session in ``country`` runs, picked by its egress IP.

    The IP plays the part of a seed, owner's decision (2026-10-06): the same
    address always gets the same build, so a session does not change language
    between two launches behind the same exit, and different addresses of a
    country spread over its builds in the measured proportions. NOT the
    persona seed: the language is a fact of the place the session comes from,
    and nothing else may move it.
    ÚasciiNé   Úbigl            c              3  ó    K  — | ]	\  }}|V — Œ
d S r   r6   )r   Ú_Úweights      r   r   z!_country_build.<locals>.<genexpr>t  s&   è è € Ð"BÐ"B©i¨a° 6Ð"BÐ"BÐ"BÐ"BÐ"BÐ"Br   r   éÿÿÿÿ)Ú_COUNTRY_FIREFOX_BUILDSÚgetÚDEFAULT_LOCALEÚ	ipaddressÚ
ip_addressÚstripÚ
compressedÚintÚ
from_bytesÚhashlibÚsha256ÚencodeÚdigestÚsum)r  r  ÚsharesÚipr  ÚpointÚbuildr  s           r   Ú_country_buildr#  e  sç   € õ %×(Ò(¨Ñ1Ô1€FØð ÝÐÝ	Ô	˜iŸošoÑ/Ô/Ñ	0Ô	0Ô	;€BÝ�^Š^�GœN¨2¯9ª9°WÑ+=Ô+=Ñ>Ô>×EÒEÑGÔGÈÈÈÔKÈUÑSÔS€FØ�WÑ�sÐ"BÐ"B¸6Ð"BÑ"BÔ"BÑBÔBÑB€EØð ð ‰ˆˆvØ�‰ˆØ�1Š9ˆ9ØˆLˆLˆLð à�"Œ:�aŒ=Ðr   Útagc                óÀ  — |                       dd¦  «        }|                     d¦  «        }|d         }t          |¦  «        dk    r|d         nd}|dk    rddd	d
œ                     |d¦  «        S |t          v rt          |         S |dk    rd|                     ¦   «         v rd}n5|dk    r	|dk    rd}n&|t          v rt          |         }n|r|› d|› d|› �}n|}|› d�S )ui  The language list Firefox 151 builds for ``tag``. PRIVATE on purpose.

    It is applied in exactly one place, :func:`decide_session_locale`. It was
    public for one unreleased commit as `accept_languages`, for the wrapper's
    server to convert a context's locale; that server now asks
    ``decide_session_locale(tag).accept_languages``, so the table has one
    caller and no consumer can re-derive from a raw tag.

    â›” THIS FUNCTION USED TO RETURN TWO ENTRIES FOR EVERY LOCALE, AND FOR 89
    LANGUAGES OUT OF 95 THAT WAS WRONG. It returned `"<locale>, <base>"` with the
    comment "the desktop default form (e.g. `en-US, en`)". That form is right
    **only for English**, which is one of the six languages where Firefox does
    not append the tail.

    The source is `locale_service_default_accept_languages`
    (`intl/locale/rust/locale_service_glue/src/lib.rs:82-234`) and it does two
    things: a TABLE of per-language special cases, and then

        if add_en_us { format!("{langs}, en-US, en") } else { langs }

    with `add_en_us` TRUE by default and false only for en, my, ro, sco, sl, szl.
    The table's default branch is `"{lang}-{region}, {lang}"`, that is, exactly
    our old formula: only the tail was missing, which is the part that shows.

    What it cost, measured: an Italian profile emitted
        it-IT,it;q=0.9
    where a real Italian Firefox emits
        it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7
    on EVERY HTTP request and in `navigator.languages`.

    â›” AND WHY IT HAD NOT BEEN SEEN: the comparison against retail had been made
    against an **en-US** build, that is, the one case where the old formula and
    the real one coincide by construction. The control arm was badly chosen, not
    the measurement wrong. When comparing a function that depends on a parameter,
    the arm cannot sit on the value where the defect cancels itself out.
    r  ú-r   é   Nr�   zen-CA, en-US, enz	en-GB, enzen-ZA, en-GB, en-US, en)r	  rT  r  z	en-US, enrG  Úvalenciazca-valencia, caÚzhr  zzh-CN, zh, zh-TW, zh-HKr%   z, en-US, en)ÚreplaceÚsplitÚlenr  Ú_ACCEPT_LANG_NO_ENÚlowerÚ_ACCEPT_LANG_TABLE)r$  ÚlangÚpartsÚbaser   Úlangss         r   Ú_language_listr4  |  s  € ðJ �;Š;�s˜CÑ Ô €DØ�JŠJ�s‰OŒO€EØ�Œ8€DÝ˜U™œ aš˜ˆU�1ŒXˆX¨T€Fàˆt‚|€|à(°Ø/ð1ð 1ß14²°V¸[Ñ1IÔ1Ið	JàÕ!Ð!Ð!Ý! $Ô'Ð'àˆt‚|€|˜
 d§j¢j¡l¤lÐ2Ð2Ø!ˆˆØ	�Šˆ˜& Dš.˜.Ø)ˆˆØ	Õ#Ð	#Ð	#Ý" 4Ô(ˆˆØ	ð ØÐ*Ð*˜&Ð*Ð* DÐ*Ð*ˆˆàˆØÐ Ð Ð Ð r   Ú	requestedr   Úboolc                ó€   — t          | t          ¦  «        o)|                      ¦   «                              ¦   «         dk    S )NÚauto)r   r   r  r.  )r5  s    r   r+   r+   º  s2   € Ý�i¥Ñ%Ô%ÐM¨)¯/ª/Ñ*;Ô*;×*AÒ*AÑ*CÔ*CÀvÒ*MÐMr   r   c           
     ó‚  ‡ — ‰ pd                      ¦   «                              dd¦  «        pt          Š ‰                      d¦  «        }d„ |D ¦   «         }t	          d„ t          |dd…         |dd…         ¦  «        D ¦   «         d¦  «        }d                     |d                              ¦   «         gd	„ t          |dd…         |dd…         ¦  «        D ¦   «         z   ¦  «        Š d
„ t          ‰ ¦  «                             d¦  «        D ¦   «         }‰ ft          ˆ fd„|D ¦   «         ¦  «        z   }t          ||¬¦  «        S )a  One explicit tag: the tag FIRST, then the tail Firefox's table gives it.

    The caller asked for a language by name, and Playwright's contract is that
    ``locale`` IS ``navigator.language``. Until 36.32.x the table's list was
    taken whole, so ``locale="en-AU"`` answered "en-US" (there is no en-AU
    build) and ``"fr-FR"`` answered "fr": the request was silently replaced.
    The tail is still Firefox's, so the list is one a real Firefox produces
    when its user adds that language first in the settings: "en-AU, en-US, en".
    Ú r  r&  c                óª   — g | ]P}t          |¦  «        d k    r|                     ¦   «         p&t          |¦  «        dk    o|                     ¦   «         ‘ŒQS )é   é   )r,  ÚisalphaÚisdigit)r   Úps     r   ú
<listcomp>z_from_tag.<locals>.<listcomp>Ì  s[   € ð !ð !ð !Øõ �a‘&”&˜A’+Ð- !§)¢)¡+¤+ÐOµ3°q±6´6¸Q²;Ð3NÀ1Ç9Â9Á;Ä;ð !ð !ð !r   c              3  óH   K  — | ]\  }}|¯|                      ¦   «         V — Œd S r   ©Úupper©r   r@  Úrs      r   r   z_from_tag.<locals>.<genexpr>Î  s3   è è € ÐLÐL¡  AÈ!ÐL�1—7’7‘9”9ÐLÐLÐLÐLÐLÐLr   r'  Nr   c                óD   — g | ]\  }}|r|                      ¦   «         n|‘ŒS r6   rC  rE  s      r   rA  z_from_tag.<locals>.<listcomp>Ï  sC   € ð )Tð )Tð )TÙ-1¨Q°ð 78Ð)>¨¯ª©¬¨¸Qð )Tð )Tð )Tr   c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r   ©r  r   s     r   r   z_from_tag.<locals>.<genexpr>Ñ  s*   è è € Ð>Ð>˜!ˆA�GŠG‰IŒIÐ>Ð>Ð>Ð>Ð>Ð>r   ú,c              3  óp   •K  — | ]0}|                      ¦   «         ‰                      ¦   «         k    ¯,|V — Œ1d S r   )r.  )r   r   r$  s     €r   r   z_from_tag.<locals>.<genexpr>Ò  s=   øè è € ÐKÐK Q°!·'²'±)´)¸s¿yºy¹{¼{Ò2JÐ2J˜qÐ2JÐ2JÐ2JÐ2JÐKÐKr   ©r   r   )r  r*  r  r+  ÚnextÚzipr&   r.  r4  Útupler   )r$  r1  Ú	is_regionr   Útailr   s   `     r   r,   r,   ¾  sb  ø€ ð ˆ9�"×
Ò
Ñ
Ô
×
%Ò
% c¨3Ñ
/Ô
/Ð
Aµ>€CØ�IŠI�c‰NŒN€Eð!ð !Øð!ñ !ô !€IåÐLÐL­¨U°1°2°2¬Y¸	À!À"À"¼Ñ)FÔ)FÐLÑLÔLÈdÑSÔS€FØ
�(Š(�E˜!”H—N’NÑ$Ô$Ð%ð )Tð )TÝ58¸¸q¸r¸r¼ÀIÈaÈbÈbÄMÑ5RÔ5Rð)Tñ )Tô )Tñ Tñ Uô U€Cà>Ð>�~¨cÑ2Ô2×8Ò8¸Ñ=Ô=Ð>Ñ>Ô>€DØ��ÐKÐKÐKÐK¨$ÐKÑKÔKÑKÔKÑK€IÝ 9°VÐ<Ñ<Ô<Ð<r   c                óÞ   — |                       ¦   «         } t          | |¦  «        }t          d„ t          |¦  «                             d¦  «        D ¦   «         ¦  «        }t          || ¬¦  «        S )aŒ  What the Firefox of a session in ``country`` declares, and the country.

    The list comes from the build `_country_build` picks, through the same
    Firefox function `_from_tag` uses; the region is the country, for the
    CONSENT cookie, which needs "where" even when the build has no region (the
    German build is "de": the region DE comes from the egress, not from the
    language).
    c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r   rI  r   s     r   r   z _from_country.<locals>.<genexpr>á  s*   è è € ÐJÐJ A�a—g’g‘i”iÐJÐJÐJÐJÐJÐJr   rJ  rL  )rD  r#  rO  r4  r+  r   )r  r  r"  r   s       r   Ú_from_countryrT  Ö  se   € ð �mŠm‰oŒo€GÝ˜7 IÑ.Ô.€EÝÐJÐJ­¸Ñ)>Ô)>×)DÒ)DÀSÑ)IÔ)IÐJÑJÔJÑJÔJ€IÝ 9°WÐ=Ñ=Ô=Ð=r   )Údiscovery_failureÚproxyúOptional[Dict[str, str]]Úmay_discoverrU  úOptional[BaseException]c               óÈ   — t          | ¦  «        st          | ¦  «        S ddlm}  |||||¬¦  «        }|rt	          |j        |j        ¦  «        nt          t          ¦  «        S )aq  The decision, with the one switch only :func:`prepare_session_geo` needs.

    ``may_discover=False`` is for a caller that has ALREADY tried to discover
    the egress and failed: asking the network a second time in the same launch
    would double the wait for nothing, so the warned en-US fallback is taken at
    once, naming ``discovery_failure`` as the cause.
    r'  )Ú_egress_country)rX  rU  )r+   r,   Ú_geor[  rT  r  r   r  )r5  r  rV  rX  rU  r[  Úegresss          r   Ú_decider^  å  s|   € õ �IÑÔð $Ý˜Ñ#Ô#Ð#Ø%Ð%Ð%Ð%Ð%Ð%àˆ_Ø�5 |Ø+ð-ñ -ô -€Fð 8>Ð\�=˜œ¨¬Ñ3Ô3Ð3Å9Í^ÑC\ÔC\Ð\r   r8  )r  rV  c               ó(   — t          | ||d¬¦  «        S )aƒ  Decide the session language: the ONE place it is decided.

    ``requested`` is what the caller asked for: a BCP-47 tag ("it-IT", "pt_BR",
    "fr") or "auto". None or "" means nobody asked, which is en-US.

    * An explicit tag goes through Firefox's table and touches no network.
    * "auto" picks, by the egress IP, one of the Firefox builds people in the
      egress country run, in their measured proportions
      (`_COUNTRY_FIREFOX_BUILDS`), and takes what that build declares, through
      the SAME Firefox function. Behind a proxy it uses ``egress_ip`` (the address the caller
      already discovered through it) and NEVER discovers on its own: a missing
      address there means discovery failed, and the direct address would give
      the HOME country's language next to the proxy country's timezone. Without
      a proxy it reuses ``egress_ip`` when given and discovers the host's
      public address otherwise. Any failure falls back to en-US with a warning
      on stderr, never silently and never by raising.

    A launch normally does not call this directly: :func:`prepare_session_geo`
    calls it with the egress it has already paid for and returns the result as
    ``SessionGeo.locale``. A value that needs no egress - an explicit tag a
    browser context asks for - goes through :meth:`SessionLocale.of`, which
    refuses "auto" instead of discovering the host's address.
    T)r  rV  rX  )r^  )r5  r  rV  s      r   Údecide_session_localer`  ù  s   € õ: �9¨	¸ÈTÐRÑRÔRÐRr   )r  r   r  r   r   r   )r$  r   r   r   )r5  r   r   r6  )r$  r   r   r   )r  r   r  r   r   r   )r5  r   r  r   rV  rW  rX  r6  rU  rY  r   r   )r8  )r5  r   r  r   rV  rW  r   r   )r2   Ú
__future__r   r  r  Údataclassesr   Útypingr   r   r   r   r  r   r/  r-  Ú	frozensetr+  Ú_FIREFOX_BUILDSr  r#  r4  r+   r,   rT  r^  r`  r6   r   r   ú<module>rf     s  ððð ð. #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ð
 €ð €�$ÐÑÔðA ð A ð A ð A ð A ñ A ô A ñ ÔðA ðV!Ø	ˆ9ð!Ø˜\ð!Ø+/Ð1Cð!àˆ+ð!àÐ0ð!à27Ð9Ið!ð 	ˆ+ð!ð Ð/ð!ð 26°ð!ð 
ˆ9ð	!ð ˜Kð	!ð */°ð	!ð
 
ˆ;ð!ð
 ˜hð!ð
 ).Ð/@ð!ð 	ˆ+ð!ð ˜nð!ð !ð /3°Kð!ð 	ˆ+ð!ð ˜[ð!ð +/Ð0Fð!ð 	ˆ+ð!ð ˜[ð!ð +0Ð1Að!ð 
Ð#ð!ð &*¨?ð!ð 	Ð
#ð!ð &*Ð+=ð!ð 	ˆ+ð!ð ˜Xð!ð (,¨[ð!ð ;?Àð!ð 	ˆ+ð!ð ˜nð!ð !ð !ð 
Ð+ð!ð .2°;ð!ð 
ˆ9ð!ð ˜]ð!ð -1°+ð!ð 
Ðð!ð " 4ð!ð *.¨{ð!ð  
Ð#ð!!ð  &*¨?ð!!ð  =AÀ+ð!!ð" 	ˆ+ð#!ð" ˜_ð#!ð" /3°Kð#!ð$ 
ˆ9ð%!ð$ ˜Lð%!ð$ +0°ð%!ð !ð !ð& 
Ðð'!ð& #Ð$4ð'!ð& 7<Ð=Mð'!ð( 	ˆ+ð)!ð( ˜[ð)!ð( +/°ð)!ð* 	Ð
+ð+!ð, 	Ð
+ð-!ð, .2Ð3Lð-!ð. 
Ð&ð/!ð. )-Ð.Bð/!ð0 	ˆ+ð1!ð0 Ð.ð1!ð0 15Ð6Lð1!ð2 	ˆ+ð3!ð2 Ð.ð3!ð2 15°oð3!ð !ð !ð4 
Ðð5!ð4 " ;ð5!ð4 15°hð5!ð6 
Ðð7!ð6 # Kð7!ð6 26°{ð7!ð8 	Ð
#ð9!ð8 &*¨;ð9!ð8 9=¸kð9!ð: 	ˆ+ð;!ð: ˜[ð;!ð: +0Ð1Að;!ð< 	Ð
#ð=!ð< &*¨;ð=!ð< 9=¸kð=!ð> 	ˆ(ð?!ð> Ð3ð?!ð !ð> <GØ˜KÐ0@ðA!ð !ð !Ð ðL Ø
Ø
ØØ
Ø#ðð Ð ð �)ð ÷ 
‚E�G„Gñô €ð@]ØÐ
cð]àÐ
}ð]ð 	Ð
Tð]ð 	Ð
gð	]ð
 	Ð
[ð]ð 	Ð
^ð]ð 	Ð
Tð]ð 	Ð
Zð]ð 	Ð
Tð]ð 	Ð
Tð]ð 	Ð
,ð]ð 	Ð
Uð]ð 	Ð
Vð]ð 	Ð
Tð]ð 	Ð
Sð]ð  	Ð
Tð!]ð" 	Ð
dð#]ð ]ð$ 	Ð
Sð%]ð& 	Ð
]ð']ð( 	Ð
\ð)]ð* 	Ð
Yð+]ð, 	Ð
Fð-]ð. 	Ð
[ð/]ð0 	Ð
dð1]ð2 	Ð
Jð3]ð4 	Ð
Uð5]ð6 	Ð
Wð7]ð8 	Ð
^ð9]ð: 	Ð
gð;]ð< 	Ð
Lð=]ð> 	Ð
^ð?]ð@ 	Ð
kðA]ðB 	Ñ
]ðC]ñD 	Ñ
TðE]ð ]ð ]ñF 	Ñ
aðG]ñH 	Ñ
SðI]ñJ 	Ñ
TðK]ñL 	Ñ
ZðM]ñN 	Ñ
TðO]ñP 	Ñ
]ðQ]ñR 	Ñ
bðS]ñT 	Ñ
TðU]ñV 	Ñ
mðW]ñX 	Ñ
VðY]ñZ 	Ñ
Wð[]ñ\ 	Ñ
Sð]]ñ^ 	Ñ
Qð_]ñ` 	Ñ
qða]ñb 	Ñ
~ðc]ñd 	Ñ
Iðe]ñf 	Ñ
Sðg]ð ]ð ]ñh 	Ñ
tði]ñj 	Ñ
Iðk]ñl 	Ñ
Tðm]ñn 	Ñ
Nðo]ñp 	Ñ
xðq]ñr 	Ñ
^ðs]ñt 	Ñ
aðu]ñv 	Ñ
gðw]ñx 	Ñ
Tðy]ñz 	Ñ
Zð{]ñ| 	Ñ
qð}]ñ~ 	Ñ
Tð]ñ@ 	Ñ
<ðA]ñB 	Ñ
GðC]ñD 	Ñ
nðE]ñF 	Ñ
SðG]ñH 	Ñ
iðI]ð ]ð ]ñJ 	Ñ
TðK]ñL 	Ñ
IðM]ñN 	Ñ
VðO]ñP 	Ñ
tðQ]ñR 	Ñ
cðS]ñT 	Ñ
dðU]ñV 	Ñ
YðW]ñX 	Ñ
SðY]ñZ 	Ñ
qð[]ñ\ 	Ñ
cð]]ñ^ 	Ñ
Ið_]ñ` 	Ñ
aða]ñb 	Ñ
fðc]ñd 	Ñ
oðe]ñf 	Ñ
Tðg]ñh 	Ñ
Wði]ñj 	Ñ
dðk]ð ]ð ]ñl 	Ñ
mðm]ñn 	Ñ
gðo]ñp 	Ñ
pðq]ñr 	Ñ
Iðs]ñt 	Ñ
Yðu]ñv 	Ñ
}ðw]ñx 	Ñ
kðy]ñz 	Ñ
Ið{]ñ| 	Ñ
~ð}]ñ~ 	Ñ
nð]ñ@ 	Ñ
}ðA]ñB 	Ñ
IðC]ñD 	Ñ
^ðE]ñF 	Ñ
YðG]ñH 	Ñ
hðI]ñJ 	Ñ
fðK]ñL 	Ñ
6ðM]ð ]ð ]ñN 	Ñ
GðO]ñP 	Ñ
VðQ]ñR 	Ñ
nðS]ñT 	Ñ
aðU]ñV 	Ñ
dðW]ñX 	Ñ
YðY]ñZ 	Ñ
gð[]ñ\ 	Ñ
dð]]ñ^ 	Ñ
kð_]ñ` 	Ñ
^ða]ñb 	Ñ
9ðc]ñd 	Ñ
<ðe]ñf 	Ñ
Yðg]ñh 	Ñ
<ði]ñj 	Ñ
`ðk]ñl 	Ñ
]ðm]ñn 	Ñ
aðo]ð ]ð ]ñp 	Ñ
[ðq]ñr 	Ñ
\ðs]ñt 	Ñ
sðu]ñv 	Ñ
9ðw]ñx 	Ñ
aðy]ñz 	Ñ
Tð{]ñ| 	Ñ
Ið}]ñ~ 	Ñ
cð]ñ@ 	Ñ
WðA]ñB 	Ñ
VðC]ñD 	Ñ
WðE]ñF 	Ñ
dðG]ñH 	Ñ
aðI]ñJ 	Ñ
TðK]ñL 	Ñ
WðM]ñN 	Ñ
IðO]ñP 	Ñ
^ðQ]ð ]ð ]ñR 	Ñ
aðS]ñT 	Ñ
:ðU]ñV 	Ñ
dðW]ñX 	Ñ
aðY]ñZ 	Ñ
Tð[]ñ\ 	Ñ
Ið]]ñ^ 	Ñ
gð_]ñ` 	Ñ
Vða]ñb 	Ñ
Uðc]ñd 	Ñ
fðe]ñf 	Ñ
Yðg]ñh 	Ñ
^ði]ñj 	Ñ
Tðk]ñl 	Ñ
]ðm]ñn 	Ñ
dðo]ñp 	Ñ
mðq]ñr 	Ñ
qðs]ð ]ñt Wñ QÙ
sñy]ð ]ð ]Ð ñ@ñ ð ð ñ.;!ñ ;!ð ;!ð ;!ñ|Nñ Nð Nð Nñ=ñ =ð =ð =ñ0>ñ >ð >ð >ð" :>ñ]ð ]ñ ]ñ ]ð ]ð ]ð*  &ñSð  $Ø&*ñ	Sð Sñ Sñ Sð Sð Sð Sð Sr   