§
    £E±ca£  ã                   óÈ  — d 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mZmZmZ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 g d¢Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Zd„ Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# G d„ de¦  «        Z$ G d„ de¦  «        Z% G d„ de¦  «        Z& G d„ de¦  «        Z' G d„ de¦  «        Z( G d„ d e¦  «        Z) G d!„ d"e¦  «        Z* G d#„ d$e¦  «        Z+ G d%„ d&e¦  «        Z, G d'„ d(e¦  «        Z- G d)„ d*e¦  «        Z. G d+„ d,e¦  «        Z/ G d-„ d.e¦  «        Z0 G d/„ d0e¦  «        Z1dS )1zÙ
    pygments.lexers.configs
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for configuration file formats.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚExtendedRegexLexerÚ
RegexLexerÚdefaultÚwordsÚbygroupsÚincludeÚusingÚline_re)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚ
WhitespaceÚLiteralÚErrorÚGeneric)Ú	BashLexer)Ú	JsonLexer)ÚIniLexerÚRegeditLexerÚPropertiesLexerÚKconfigLexerÚCfengine3LexerÚApacheConfLexerÚSquidConfLexerÚNginxConfLexerÚLighttpdConfLexerÚDockerLexerÚTerraformLexerÚTermcapLexerÚTerminfoLexerÚPkgConfigLexerÚPacmanConfLexerÚAugeasLexerÚ	TOMLLexerÚNestedTextLexerÚSingularityLexerÚUnixConfigLexerc                   ó  — e Zd ZdZdZg d¢Zg d¢ZddgZdefde	j
        fd	 eee¦  «        fd
 eej        eeeeee¦  «        dfd eej        eeee¦  «        fdej        fgdefd eeeee¦  «        fdedfgdœZd„ ZdS )r   z5
    Lexer for configuration files in INI style.
    ÚINI)ÚiniÚcfgÚdosini)z*.iniz*.cfgz*.infz.editorconfigz	*.servicez*.socketz*.devicez*.mountz*.automountz*.swapz*.targetz*.pathz*.timerz*.slicez*.scopez
text/x-iniztext/infú\s+ú[;#].*z(\[.*?\])([ \t]*)$u0   (.*?)([ Â \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)Úvalueu8   (.*?)([ \t]*)([=:])([ Â \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z(\s*)(.*)(\\)([ \t]*)ú.*$ú#pop©Úrootr4   c                 ór   — |                       d¦  «        }|dk     rdS | d         dk    o| |dz
           dk    S )Nú
é   Fr   ú[é   ú])Úfind)ÚtextÚnposs     ú9/usr/lib/python3/dist-packages/pygments/lexers/configs.pyÚanalyse_textzIniLexer.analyse_textB   s?   € Ø�yŠy˜‰ŒˆØ�!Š8ˆ8Ø�5Ø�AŒw˜#Š~Ð5 $ t¨A¡v¤,°#Ò"5Ð5ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesr   r   ÚSingler   r   r   Ú	Attributer   r   r   ÚtokensrC   © rD   rB   r   r      s#  € € € € € ðð ð €DØ&Ð&Ð&€Gðð ð €Ið ˜zÐ*€Ið �ZÐ Ø˜œÐ'Ø" H H¨W°jÑ$AÔ$AÐBØ@ØˆX�d”n j°(¸JÈØ˜Jñ(ô (àðð IØˆX�d”n j°(¸JÈÑOÔOðQð ˜œÐ'ð
ð �ZÐ Ø%ØˆX�j &¨$°
Ñ;Ô;ð=à�V˜VÐ$ð	
ðð €Fð,6ð 6ð 6ð 6ð 6rD   r   c                   ó   — e Zd ZdZdZdZdgZdgZdgZde	fde
fd	ej        fd
 eeeej        e¦  «        fd eej        e
ee
¦  «        dfd eej        e
ee
¦  «        dfgdedfd eej        ee¦  «        dfdedf ed¦  «        gdœZd„ ZdS )r   zZ
    Lexer for Windows Registry files produced by regedit.

    .. versionadded:: 1.6
    Úregz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_filesÚregistryz*.regztext/x-windows-registryzWindows Registry Editor.*r2   r3   z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r4   z(.*?)([ \t]*)(=)([ \t]*)ú-r6   z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)ú.+r7   c                 ó,   — |                       d¦  «        S )NzWindows Registry Editor)Ú
startswith)r@   s    rB   rC   zRegeditLexer.analyse_textp   s   € Ø�ŠÐ8Ñ9Ô9Ð9rD   N)rE   rF   rG   rH   rI   ÚurlrJ   rK   rL   r   r   r   rM   r   r   r   r   ÚBuiltinrN   ÚVariabler   r   r   r   rO   rC   rP   rD   rB   r   r   I   s$  € € € € € ðð ð €DØ
D€CØˆl€GØ�	€IØ*Ð+€Ið *¨4Ð0Ø�ZÐ Ø˜œÐ'Ø.ØˆX�g˜x¨¬°wÑ?Ô?ðAð :ØˆX�d”n j°(¸JÑGÔGØðð )ØˆX�d”n j°(¸JÑGÔGØðð
ð  �8˜VÐ$ØAØˆX�d”m [°&Ñ9Ô9¸6ðCð �F˜FÐ#ØˆG�F‰OŒOð
ð!ð €Fð4:ð :ð :ð :ð :rD   r   c            
       óÞ   — e Zd ZdZdZddgZdgZdgZdefde	j
        fd	ej        d
fdej        fgd eeeeee¦  «        ddfd eeeee¦  «        dfgdefd eeeee¦  «        fdedfgdœZdS )r   z¦
    Lexer for configuration files in Java's properties format.

    Note: trailing whitespace counts as part of the value as per spec

    .. versionadded:: 1.4
    Ú
PropertiesÚ
propertiesÚjpropertiesz*.propertiesztext/x-java-propertiesr2   z[!#].*|/{2}.*z([^\\\n]|\\.)*?(?=[ \f\t=:])Ú	separatorz.+?$z;([ \f\t]*)([=:]*)([ \f\t]*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)$r4   r6   z([ \f\t]*)([=:]*)([ \f\t]*)(.*)z,(\s*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)([ \t]*)r5   )r8   r_   r4   N)rE   rF   rG   rH   rI   rJ   rK   rL   r   r   rM   r   rN   r   r   r   r   rO   rP   rD   rB   r   r   t   sñ   € € € € € ðð ð €DØ˜]Ð+€GØÐ €IØ)Ð*€Ið �ZÐ Ø˜wœ~Ð.à,¨d¬n¸kÐJà�d”nÐ%ð
ð LØˆX�j (¨J¸ÀÑEÔEÀwÐPVðXà/ØˆX�j (¨J¸Ñ?Ô?ÀðIð	
ð �ZÐ à<ØˆX�j &¨$°
Ñ;Ô;ð=à�V˜VÐ$ð
ð!ð €F€F€FrD   r   c                 ó\   — d}|dk    rd}nd|dz
  z  }| dk    rd}nd| z  }d|›d	|›d
|›d�S )Né   é   ú+z{1,%d}r=   Ú z{%s}z(?:\t| z\t| {z})z.*\nrP   )ÚlevelÚ	tab_widthÚspace_repeatÚlevel_repeats       rB   Ú
_rx_indentri   œ   s\   € ð €Ið �A‚~€~Øˆˆà 9¨q¡=Ñ1ˆØ�‚z€zØˆˆà ‘~ˆøØ*6¨,¨,¸	¸	¸	À<À<À<ÐPÐPrD   c                   ó  — e Zd ZdZdZg d¢Zg d¢ZdgZdZd„ Z	d„ Z
d	efd
ej        f edd¬¦  «        efdedfdej        fdefdefdej        fdej        fdej        fdefgdef e	d¦  «         e	d¦  «         e	d¦  «         e	d¦  «         e	d¦  «         e	d¦  «         e	d¦  «         ed¦  «        g	 e
d¦  «         e
d¦  «         e
d¦  «         e
d¦  «         e
d¦  «         e
d¦  «         e
d¦  «        d œ	Zd!S )"r   zC
    For Linux-style Kconfig files.

    .. versionadded:: 1.6
    ÚKconfig)ÚkconfigÚ
menuconfigzlinux-configzkernel-config)zKconfig*z*Config.in*zexternal.in*zstandard-modules.inztext/x-kconfigr   c                 ó@   — t          | ¦  «        t          j        d| z  fS )Nzindent%s)ri   r   ÚDoc©re   s    rB   Úcall_indentzKconfigLexer.call_indentÀ   s   € å˜5Ñ!Ô!¥6¤:¨z¸EÑ/AÐBÐBrD   c                 óf   — t          | ¦  «        t          j        fdt          ft	          d¦  «        gS )Nú\s*\nú#pop:2)ri   r   ro   r   r   rp   s    rB   Ú	do_indentzKconfigLexer.do_indentÄ   s3   € õ ˜ÑÔ¥¤
Ð+Ø•tÐÝ�HÑÔð
ð 	
rD   r2   ú#.*?\n)ÚmainmenuÚconfigrm   ÚchoiceÚ	endchoiceÚcommentÚmenuÚendmenuz
visible ifÚifÚendifÚsourceÚpromptÚselectz
depends onr   ÚrangeÚoptionú\b©Úsuffixz(---help---|help)[\t ]*\nÚhelpz;(bool|tristate|string|hex|int|defconfig_list|modules|env)\bz[!=&|]z[()]ú[0-9]+z'(''|[^'])*'z"(""|[^"])*"ú\S+rs   é   é   é   é   r;   rb   r=   r6   )	r8   rˆ   Úindent7Úindent6Úindent5Úindent4Úindent3Úindent2Úindent1N)rE   rF   rG   rH   rI   rJ   rK   rL   Úflagsrq   ru   r   r   rM   r   r   r   rY   r   r   r   ÚIntegerr   ÚDoubler   r   rO   rP   rD   rB   r   r   °   s½  € € € € € ðð ð €DØHÐHÐH€Gð(ð (ð (€Ià!Ð"€Ià€EðCð Cð Cð
ð 
ð 
ð �ZÐ Ø˜œÐ'ØˆUð #ð ,1ð	2ñ 2ô 2ð
 ðð *¨7°FÐ;ØKØŒ\ðà˜Ð!Ø�kÐ"Ø˜œÐ'Ø˜fœmÐ,Ø˜fœmÐ,Ø�TˆNð#
ð. �tÐð ˆK˜‰NŒNØˆK˜‰NŒNØˆK˜‰NŒNØˆK˜‰NŒNØˆK˜‰NŒNØˆK˜‰NŒNØˆK˜‰NŒNØˆG�F‰OŒOð
ð  �9˜Q‘<”<Ø�9˜Q‘<”<Ø�9˜Q‘<”<Ø�9˜Q‘<”<Ø�9˜Q‘<”<Ø�9˜Q‘<”<Ø�9˜Q‘<”<ðY-ð -€F€F€FrD   r   c                   ót  — e Zd ZdZdZdZddgZdgZg Zde	fd e
eeeee¦  «        fd	 e
eeeeej        e¦  «        d
fd e
eeeeej        ¦  «        fd e
eej        eeej        eee¦  «        fd e
ej        eee¦  «        fdedfd e
ej        e¦  «        fd e
ej        e¦  «        fd e
ej        e¦  «        fdej        fdefdefdefdej        fdej        fdej        fdefgdej        dfdej        fdedfdefd efgdej        d!fd"ej        dfd#ej        fgd$edfd%efdej        fdefgd&œZd'S )(r   zF
    Lexer for CFEngine3 policy files.

    .. versionadded:: 1.5
    Ú	CFEngine3zhttp://cfengine.orgÚ	cfengine3Úcf3z*.cfrv   z(body)(\s+)(\S+)(\s+)(control)z%(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()Úarglistz!(body|bundle)(\s+)(\S+)(\s+)(\w+)z7(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)z(\S+)(\s*)(=>)(\s*)ú"Ústringz	(\w+)(\()z([\w.!&|()]+)(::)z(\w+)(:)z@[{(][^)}]+[})]z[(){},;]z=>z->z\d+\.\d+ú\d+ú\w+r2   z\$[{(]Úinterpolú\\.r6   ú\nú.ú#pushz[})]z	[^${()}]+z\)ú,)r8   rŸ   r¢   r�   N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   r   r   r   r   ÚFunctionr   rZ   ÚTyper   ÚReservedr   r   ÚClassÚDeclarationr   ÚFloatr—   ÚInterpolÚEscaperO   rP   rD   rB   r   r   ý   s(  € € € € € ðð ð €DØ
€CØ˜EÐ"€GØ�€IØ€Ið ˜Ð Ø.ØˆX�g˜z¨7°JÀÑHÔHðJà5ØˆX�g˜z¨7°JÀÄÈ{Ñ[Ô[Øðð 2ØˆX�g˜z¨7°JÀÄÑNÔNðPàGØˆX�k 4¤=°+Ø  '¤,°
¸HÀjñRô RðSð $ØˆX�gÔ&¨
°H¸dÑCÔCðEà�6˜8Ð$Ø˜8˜8 D¤M°;Ñ?Ô?Ð@Ø! 8 8¨D¬J¸Ñ#DÔ#DÐEØ˜(˜( 7Ô#6¸ÑDÔDÐEØ ¤Ð/Ø˜+Ð&Ø�HÐØ�HÐØ˜&œ,Ð'Ø�V”^Ð$Ø�T”]Ð#Ø�ZÐ ð3
ð8 ˜œ¨Ð4Ø�V”]Ð#Ø�6˜6Ð"Ø�FˆOØ�6ˆNð
ð ˜œ¨Ð1Ø�f”o vÐ.Ø˜6œ?Ð+ð
ð �K Ð(Ø�;ÐØ�T”]Ð#Ø�ZÐ ð	
ðQ.ð .€F€F€FrD   r   c                   ó*  — e Zd ZdZdZg d¢Zg d¢ZdgZej	        ej
        z  Zdefdefd eej        eeej        ¦  «        fd	 eej        ej        ¦  «        fd
ej        dfdefgdefdedfdefdefdefdefdej        fdefdej        fdefg
dœZdS )r   zo
    Lexer for configuration files following the Apache config file
    format.

    .. versionadded:: 0.6
    Ú
ApacheConf)Ú
apacheconfÚaconfÚapache)z	.htaccesszapache.confzapache2.confztext/x-apacheconfr2   z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r4   z\.+z\\\nz\n+r6   z\\z[^\S\n]+ú\d+\.\d+\.\d+\.\d+(?:/\d+)?r    z/([*a-z0-9][*\w./-]+)z¢(on|off|none|any|all|double|email|dns|min|minimal|os|productonly|full|emerg|alert|crit|error|warn|notice|info|debug|registry|script|inetd|standalone|user|group)\bz"([^"\\]*(?:\\(.|\n)[^"\\]*)*)"z	[^\s"\\]+r7   N)rE   rF   rG   rH   rI   rJ   rK   rL   ÚreÚ	MULTILINEÚ
IGNORECASEr–   r   r   r   r   ÚTagr   rY   r   r   ÚOtherr   r˜   rO   rP   rD   rB   r   r   ;  s  € € € € € ðð ð €DØ/Ð/Ð/€GØ<Ð<Ð<€IØ$Ð%€IØŒL˜2œ=Ñ(€Eð �ZÐ Ø% wÐ/Ø2ØˆX�d”h 
¨F°D´HÑ=Ô=ð?àØˆX�d”h ¤Ñ)Ô)ð+à˜$œ,¨Ð0Ø�TˆNð	
ð �dˆOØ�Z Ð(Ø�DˆMØ˜*Ð%Ø+¨VÐ4Ø�VÐØ% v¤|Ð4ðð  'ð(ð 0°´Ð?Ø˜4Ð ð
ðð €F€F€FrD   r   c                   óŠ  — e Zd ZdZdZdZg d¢ZdgZdgZe	j
        ZdZdZd	Zd
ZdZdZdZdefdedf eedd¬¦  «        ef eedd¬¦  «        ej        f eedd¬¦  «        ef eedd¬¦  «        ef eedd¬¦  «        ef eedd¬¦  «        efedz   ez   dz   ej        fdefdefgdej        dfdedf ed¦  «        gdœZdS )r   zI
    Lexer for squid configuration files.

    .. versionadded:: 0.9
    Ú	SquidConfzhttp://www.squid-cache.org/)Ú	squidconfú
squid.confÚsquidr¾   ztext/x-squidconf)ºÚ
access_logÚaclÚalways_directÚannounce_hostÚannounce_periodÚannounce_portÚannounce_toÚanonymize_headersÚappend_domainÚas_whois_serverÚauth_param_basicÚauthenticate_childrenÚauthenticate_programÚauthenticate_ttlÚbroken_postsÚbuffered_logsÚcache_access_logÚcache_announceÚ	cache_dirÚcache_dns_programÚcache_effective_groupÚcache_effective_userÚ
cache_hostÚcache_host_aclÚcache_host_domainÚ	cache_logÚ	cache_memÚcache_mem_highÚcache_mem_lowÚ	cache_mgrÚcachemgr_passwdÚ
cache_peerÚcache_peer_accessÚcache_replacement_policyÚcache_stoplistÚcache_stoplist_patternÚcache_store_logÚ
cache_swapÚcache_swap_highÚcache_swap_logÚcache_swap_lowÚ	client_dbÚclient_lifetimeÚclient_netmaskÚconnect_timeoutÚcoredump_dirÚdead_peer_timeoutÚdebug_optionsÚdelay_accessÚdelay_classÚdelay_initial_bucket_levelÚdelay_parametersÚdelay_poolsÚ	deny_infoÚdns_childrenÚdns_defnamesÚdns_nameserversÚdns_testnamesÚemulate_httpd_logÚerr_html_textÚfake_user_agentÚfirewall_ipÚforwarded_forÚforward_snmpd_portÚfqdncache_sizeÚftpget_optionsÚftpget_programÚftp_list_widthÚftp_passiveÚftp_userÚhalf_closed_clientsÚheader_accessÚheader_replaceÚhierarchy_stoplistÚhigh_response_time_warningÚhigh_page_fault_warningÚ
hosts_fileÚ	htcp_portÚhttp_accessÚhttp_anonymizerÚhttpd_accelÚhttpd_accel_hostÚhttpd_accel_portÚhttpd_accel_uses_host_headerÚhttpd_accel_with_proxyÚ	http_portÚhttp_reply_accessÚ
icp_accessÚicp_hit_staleÚicp_portÚicp_query_timeoutÚident_lookupÚident_lookup_accessÚident_timeoutÚincoming_http_averageÚincoming_icp_averageÚinside_firewallÚipcache_highÚipcache_lowÚipcache_sizeÚlocal_domainÚlocal_ipÚlogfile_rotateÚlog_fqdnÚlog_icp_queriesÚlog_mime_hdrsÚmaximum_object_sizeÚmaximum_single_addr_triesÚmcast_groupsÚmcast_icp_query_timeoutÚmcast_miss_addrÚmcast_miss_encode_keyÚmcast_miss_portÚmemory_poolsÚmemory_pools_limitÚmemory_replacement_policyÚ
mime_tableÚmin_http_poll_cntÚmin_icp_poll_cntÚminimum_direct_hopsÚminimum_object_sizeÚminimum_retry_timeoutÚmiss_accessÚnegative_dns_ttlÚnegative_ttlÚneighbor_timeoutÚneighbor_type_domainÚ
netdb_highÚ	netdb_lowÚnetdb_ping_periodÚnetdb_ping_rateÚnever_directÚno_cacheÚpassthrough_proxyÚpconn_timeoutÚpid_filenameÚpinger_programÚpositive_dns_ttlÚprefer_directÚ
proxy_authÚproxy_auth_realmÚ
query_icmpÚquick_abortÚquick_abort_maxÚquick_abort_minÚquick_abort_pctÚrange_offset_limitÚread_timeoutÚredirect_childrenÚredirect_programÚredirect_rewrites_host_headerÚreference_ageÚrefresh_patternÚreload_into_imsÚrequest_body_max_sizeÚrequest_sizeÚrequest_timeoutÚshutdown_lifetimeÚsingle_parent_bypassÚsiteselect_timeoutÚsnmp_accessÚsnmp_incoming_addressÚ	snmp_portÚsource_pingÚ	ssl_proxyÚstore_avg_object_sizeÚstore_objects_per_bucketÚstrip_query_termsÚswap_level1_dirsÚswap_level2_dirsÚtcp_incoming_addressÚtcp_outgoing_addressÚtcp_recv_bufsizeÚtest_reachabilityÚudp_hit_objÚudp_hit_obj_sizeÚudp_incoming_addressÚudp_outgoing_addressÚunique_hostnameÚunlinkd_programÚuri_whitespaceÚuseragent_logÚvisible_hostnameÚ
wais_relayÚwais_relay_hostÚwais_relay_port)z
proxy-onlyÚweightÚttlzno-queryr   zround-robinzmulticast-responderÚonÚoffÚallÚdenyÚallowÚviaÚparentz	no-digestÚheapÚlruÚrealmÚchildrenÚq1Úq2ÚcredentialsttlÚnoneÚdisableÚoffline_toggleÚdiskd)ÚshutdownÚinfoÚ	parameterÚserver_listÚclient_listr¾   )ÚobjectsÚ
vm_objectsÚutilizationÚipcacheÚ	fqdncacheÚdnsÚ
redirectorÚioÚreply_headersÚfiledescriptorsÚnetdb)ÚstatusÚenabler‹  Úclear)Ú	url_regexÚurlpath_regexÚreferer_regexÚportÚprotoÚreq_mime_typeÚrep_mime_typeÚmethodÚbrowserÚuserÚsrcÚdstÚtimeÚ	dstdomainÚidentÚsnmp_communitya™  (?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)){6}(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)[0-9a-f]{0,4}(?:(?<=::)|(?<!:)|(?<=:)(?<!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))r2   ú#r{   r…   ©Úprefixr‡   zstats/zlog/ú=z(?:/(?:z|\b\d+\b))?z(?:\b\d+\b(?:-\b\d+|%)?)rŠ   z	\s*TAG:.*r6   rU   )r8   r{   N) rE   rF   rG   rH   rI   rX   rJ   rK   rL   r¶   r¸   r–   ÚkeywordsÚoptsÚactionsÚactions_statsÚactions_logÚaclsÚip_rer   r   r   r   r   ÚConstantr   r   r­   r   r¯   r   rO   rP   rD   rB   r   r   f  s‡  € € € € € ðð ð €DØ
'€CØ2Ð2Ð2€GØ�€IØ#Ð$€IØŒM€Eð9€Hðv€Dð€Gð
€Mð
 ;€Kð€Dð	ð 
ð �ZÐ Ø�7˜IÐ&ØˆU�8 E°%Ð8Ñ8Ô8¸'ÐBØˆU�4 ¨eÐ4Ñ4Ô4°d´mÐDàˆU�7 5°Ð7Ñ7Ô7¸Ð@ØˆU�=¨¸5ÐAÑAÔAÀ6ÐJØˆU�; w°tÐ<Ñ<Ô<¸fÐEØˆU�4 ¨eÐ4Ñ4Ô4°gÐ>Ø�ZÑ %Ñ'¨.Ñ8¸&¼,ÐGØ(¨&Ð1Ø�TˆNð
ð ˜6œ=¨&Ð1Ø�G˜VÐ$ØˆG�F‰OŒOð
ðð €F€F€FrD   r   c                   ót  — e Zd ZdZdZdZdgZdgZdgZd e	e
ee¦  «        fde
d	f ed
¦  «        gdedfde
j        d	f ed
¦  «        gdedfdedf ed
¦  «        gdej        fdej        fdej        fd e	eeej        ¦  «        fdefdej        fd e	eeej        ¦  «        fdefdefdefdefdefgdœZdS )r    zJ
    Lexer for Nginx configuration files.

    .. versionadded:: 0.11
    zNginx configuration filezhttp://nginx.net/Únginxz
nginx.confztext/x-nginx-confz(include)(\s+)([^\s;]+)z[^\s;#]+ÚstmtÚbaseú\}rt   z\{Úblockú;r6   ú#.*\nzon|offz\$[^\s;#()]+z([a-z0-9.-]+)(:)([0-9]+)z[a-z-]+/[a-z-+]+z[0-9]+[km]?\bz(~)(\s*)([^\s{]+)z[:=~]z[^\s;#{}$]+z	/[^\s;#]*r2   z[$;])r8   rÂ  r¿  rÀ  N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   r   r   r   r   r   Ú	Namespacer   rM   r¼  rZ   r   r—   r   ÚRegexr   rO   rP   rD   rB   r    r    é  sX  € € € € € ðð ð
 &€DØ
€CØˆi€GØ�€IØ$Ð%€Ið (¨¨°'¸:ÀtÑ)LÔ)LÐMØ˜' 6Ð*ØˆG�F‰OŒOð
ð �K Ð*Ø˜'Ô+¨VÐ4ØˆG�F‰OŒOð
ð �K Ð)Ø�; Ð'ØˆG�F‰OŒOð
ð �w”~Ð&Ø˜œÐ&Ø˜dœmÐ,Ø(ØˆX�d˜K¨¬Ñ8Ô8ð:à  &Ð)à˜vœ~Ð.Ø! 8 8¨K¸ÀVÄ\Ñ#RÔ#RÐSØ�{Ð#Ø˜VÐ$Ø˜4Ð Ø�ZÐ Ø�dˆOð
ð! ð  €F€F€FrD   r    c                   ó�   — e Zd ZdZdZdZddgZdgZdgZdd	e	j
        fd
efdefdefdefdefdej        fdefdej        fdefg
iZdS )r!   zM
    Lexer for Lighttpd configuration files.

    .. versionadded:: 0.11
    zLighttpd configuration filezhttp://lighttpd.net/ÚlighttpdÚlightyzlighttpd.confztext/x-lighttpd-confr8   rÄ  z/\S*z[a-zA-Z._-]+rµ   r‰   z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r2   N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   rM   r   r   r   r   rY   r   r   r˜   r   rO   rP   rD   rB   r!   r!     s¤   € € € € € ðð ð
 )€DØ
 €CØ˜8Ð$€GØ Ð!€IØ'Ð(€Ið 	Ø�w”~Ð&Ø�dˆOØ˜gÐ&Ø+¨VÐ4Ø˜ÐØ! 8Ð,Ø˜$œ,Ð'Ø˜[Ð)Ø*¨F¬MÐ:Ø�ZÐ ð
ð€F€F€FrD   r!   c                   óà  — e Zd ZdZdZdZddgZddgZdgZd	Z	d
Z
dZej        ej        z  Zddefd eeeeeeee¦  «        fde›d� eee ee¦  «        ¦  «        fde›de›d� eee ee¦  «        ¦  «        fde›d� eee ee¦  «         ee¦  «        ¦  «        fde›de›d� eee ee¦  «        ¦  «        fde	z   eeee¦  «        fde
›d� eee¦  «        fd ee¦  «        fg	iZdS )r"   zJ
    Lexer for Docker configuration files.

    .. versionadded:: 2.0
    ÚDockerzhttp://docker.ioÚdockerÚ
dockerfileÚ
Dockerfilez*.dockerztext/x-dockerfile-configz-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z(?:\s*\\?\s*)r8   z#.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)(ú)z(HEALTHCHECK)(\s+)((z	--\w+=\w+z)*)z#(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(z
)(\[.*?\])z(LABEL|ENV|ARG)(\s+)((z\w+=\w+z(%s|VOLUME)\b(\s+)(.*)ú(z)(\s+)z(.*\\\n)*.+N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   Ú	_keywordsÚ_bash_keywordsÚ_lbr¶   r¸   r·   r–   r   r   r   r   r   r	   r   r   rO   rP   rD   rB   r"   r"   5  s»  € € € € € ðð ð
 €DØ
€CØ˜Ð&€GØ˜zÐ*€IØ+Ð,€IàA€IØF€NØ
€CØŒM˜BœLÑ(€Eð 	Ø�WÐØAØˆX�g˜z¨6°:¸wÈ
ÐTZÑ[Ô[ð]ð ]à&) c cÐ+¨X¨X°g¸zÈ5È5ÐQZÑK[ÔK[Ñ-\Ô-\Ð]Ð]Ø8;¸¸¸S¸S¸SÐAØ�˜ *¨e¨e°IÑ.>Ô.>Ñ?Ô?ðAð AàCFÀ3À3ÐHØ�˜ *¨e¨e°IÑ.>Ô.>ÀÀÀiÑ@PÔ@PÑQÔQðSð Sà8;¸¸¸S¸S¸SÐAØ�˜ *¨e¨e°IÑ.>Ô.>Ñ?Ô?ðAà&¨)Ñ4°h°h¸wÈ
ÐTZÑ6[Ô6[Ð\Ð\Ø+˜^˜^Ð-¨x¨x¸ÀÑ/LÔ/LÐMØ˜U˜U 9Ñ-Ô-Ð.ð
ð€F€F€FrD   r"   c                   ó"  — e Zd ZdZdZdZddgZdgZddgZd	Z	d
 
                    d                     e	¦  «        ¦  «        ZdZdZdZdZdZdZdZdZdZdZeez   ez   ez   ez   ez   ez   ez   ez   Zd
 
                    d                     e¦  «        ¦  «        Zd„ Z ed¦  «         ed¦  «        d eej        ¦  «        f eddd¬¦  «        ej         f eedd¬¦  «        e!j"        f ed¦  «         ed¦  «        de#fgd e$j%        d!fd"e$j&        f ed¦  «        d# ee'ej(        e'e)e'e*¦  «        fd$ ee'ej+        e'e)e'¦  «        fd% ee'e,j        j        e'e)e'¦  «        fed&z    eej-        e*¦  «        fd' ee*ej(        e*¦  «        fed(z    ee!j.        e'ej/        e'ej0        e'e*¦  «        fd)efg
d* eej0        ¦  «        fd+ eej0        ¦  «        fgd,e*fgd-e$j%        fd.e$j%        d/fd0e$j%        d1fd2e$j%        fgd3e'fd4e'fd5 ee1e'¦  «        fgd6œZ2d7S )8r#   zH
    Lexer for terraformi ``.tf`` files.

    .. versionadded:: 2.1
    Ú	Terraformzhttps://www.terraform.io/Ú	terraformÚtfz*.tfzapplication/x-tfzapplication/x-terraform)ÚbackendÚdataÚmoduleÚoutputÚproviderÚprovisionerÚresourceÚvariablez({})ú|)	rŸ   ÚnumberÚboolÚlistÚtupleÚmapÚsetÚobjectÚnull)	ÚabsÚceilÚfloorÚlogÚmaxÚmixÚparseintÚpowÚsignum)ÚchompÚformatÚ
formatlistÚindentÚjoinÚlowerÚregexÚregexallÚreplaceÚsplitÚstrrevÚsubstrÚtitleÚtrimÚ
trimprefixÚ
trimsuffixÚ	trimspaceÚupper)ÚalltrueÚanytrueÚ	chunklistÚcoalesceÚcoalescelistÚcompactÚconcatÚcontainsÚdistinctÚelementÚflattenÚindexÚkeysÚlengthrã  Úlookuprå  Ú	matchkeysÚmergerƒ   ÚreverseÚsetintersectionÚ
setproductÚsetsubtractÚsetunionÚsliceÚsortÚsumÚ	transposeÚvaluesÚzipmap)Úbase64decodeÚbase64encodeÚ
base64gzipÚ	csvdecodeÚ
jsondecodeÚ
jsonencodeÚtextdecodebase64Útextencodebase64Ú	urlencodeÚ
yamldecodeÚ
yamlencode)	ÚabspathÚdirnameÚ
pathexpandÚbasenameÚfileÚ
fileexistsÚfilesetÚ
filebase64Útemplatefile)Ú
formatdateÚtimeaddÚ	timestamp)Úbase64sha256Úbase64sha512ÚbcryptÚfilebase64sha256Úfilebase64sha512Úfilemd5Úfilesha1Ú
filesha256Ú
filesha512Úmd5Ú
rsadecryptÚsha1Úsha256Úsha512ÚuuidÚuuidv5)ÚcidrhostÚcidrnetmaskÚ
cidrsubnetÚcidrsubnets)	ÚcanÚdefaultsÚtoboolÚtolistÚtomapÚtonumberÚtosetÚtostringÚtryc              #   óÆ  K  — |                      d¦  «        }|t          |                     d¦  «        fV — |                      d¦  «        t          j        |                     d¦  «        fV — |                      d¦  «        |_        |                     d¦  «        |_        |j        t          j        |                     d¦  «        fV — |                     ¦   «         |_        |                     d¦  «        }d}g }t          j	        |j
        |j        ¦  «        D ]ö}|r'|                     ¦   «                              ¦   «         }n&|                     ¦   «                              ¦   «         }||k    rŠ|D ]7}|                      ¦   «         t          j        |                     ¦   «         fV — Œ8|                      ¦   «         t          j        |                     ¦   «         fV — |                     ¦   «         |_         nK|                     |¦  «         Œ÷|D ]2}|                      ¦   «         t          |                     ¦   «         fV — Œ3t          |j
        ¦  «        |_        d S )Nr=   rb   r;   T)Ústartr   Úgroupr   Ú	DelimiterÚposÚendÚHeredocr
   Úfinditerr@   ÚstripÚrstripÚappendr   Úlen)	ÚselfÚmatchÚctxrU  ÚhdnameÚtolerantÚlinesÚcheckÚamatchs	            rB   Úheredoc_callbackzTerraformLexer.heredoc_callback•  s   è è € ð —’˜A‘”ˆØ•X˜uŸ{š{¨1™~œ~Ð-Ð-Ð-Ð-Ø�kŠk˜!‰nŒn�fÔ.°·²¸A±´Ð>Ð>Ð>Ð>à—+’+˜a‘.”.ˆŒØ—)’)˜A‘,”,ˆŒØŒg•v”~ u§{¢{°1¡~¤~Ð5Ð5Ð5Ð5Ø—)’)‘+”+ˆŒà—’˜Q‘”ˆØˆàˆåÔ% c¤h°´Ñ8Ô8ð 	<ð 	<ˆEØð /ØŸš™œ×+Ò+Ñ-Ô-��àŸš™œ×,Ò,Ñ.Ô.�Ø˜ŠˆØ#ð Ið I�FØ Ÿ,š,™.œ.­&¬.¸&¿,º,¹.¼.ÐHÐHÐHÐHÐHØ—k’k‘m”m¥VÔ%5°u·{²{±}´}ÐDÐDÐDÐDØŸ)š)™+œ+�”Ø�à—’˜UÑ#Ô#Ð#Ð#ð  ð <ð <�Ø—l’l‘n”n¥e¨V¯\ª\©^¬^Ð;Ð;Ð;Ð;Ð;Ý�c”h‘-”-ˆŒˆˆrD   ÚbasicÚ
whitespacez(".*"))ÚtrueÚfalser…   r²  Ú
identifierÚpunctuationr‰   z\s*/\*r{   z\s*(#|//).*\nz'(\s*)([0-9a-zA-Z-_]+)(\s*)(=?)(\s*)(\{)z"(\s*)([0-9a-zA-Z-_]+)(\s*)(=)(\s*)z(\s*)("\S+")(\s*)([=:])(\s*)z(\()z(\[)([a-z_,\s]+)(\])z8(\s+)("[0-9a-zA-Z-_]+")?(\s*)("[0-9a-zA-Z-_]+")(\s+)(\{)z(<<-?)\s*([a-zA-Z_]\w*)(.*?\n)z\b(var\.[0-9a-zA-Z-_\.\[\]]+)\bz.\b([0-9a-zA-Z-_\[\]]+\.[0-9a-zA-Z-_\.\[\]]+)\bz[\[\]()\{\},.?:!=]z[^*/]z/\*r¦   z\*/r6   z[*/]r¤   r2   z(\\)(\n))r8   ri  rm  rn  r{   rj  N)3rE   rF   rG   rH   rI   rX   rJ   rK   rL   Úclassesró  rö  Ú
classes_reÚtypesÚnumeric_functionsÚstring_functionsÚcollection_functionsÚencoding_functionsÚfilesystem_functionsÚdate_time_functionsÚhash_crypto_functionsÚip_network_functionsÚtype_conversion_functionsÚbuiltinsÚbuiltins_rerh  r   r   r   r˜   r   r   r¼  r   r©   r   r   Ú	MultilinerM   r   rY   r   r   rN   r   r¨   rª   r«   rZ   r   rO   rP   rD   rB   r#   r#   Y  s|  € € € € € ðð ð €DØ
%€CØ˜DÐ!€GØ�€IØ#Ð%>Ð?€Ið6€Gà—’ Ÿzšz¨'Ñ2Ô2Ñ3Ô3€JàY€Eð=ÐðÐðÐðWÐð[Ðð AÐð`Ðð TÐð!IÐð !Ð#3Ñ3Ð6JÑJÐM_Ñ_ØñØ2ñ3Ø5JñKØMañbà!ñ"€Hð —-’- §
¢
¨8Ñ 4Ô 4Ñ5Ô5€Kð# ð # ð # ðN ˆG�GÑÔØˆG�LÑ!Ô!ð ˜˜ ¤Ñ/Ô/Ð0ð ˆUÐ$¨U¸5ÐAÑAÔAÀ4Ä=ÐQð ˆU�5 ¨uÐ5Ñ5Ô5°w´|ÐDàˆG�LÑ!Ô!ØˆG�MÑ"Ô"Ø˜Ðð
ð$ ˜Ô)¨9Ð5Ø˜wœ~Ð.ØˆG�LÑ!Ô!ð 8ØˆX�j $¤,°
¸HÀjÐR]Ñ^Ô^ð`ð 3ØˆX�j $¤.°*¸hÈ
ÑSÔSðUð
 -ØˆX�j '¤.Ô"7¸ÀXÈzÑZÔZð\ð ˜7Ñ" H H¨T¬]¸KÑ$HÔ$HÐIð % h h¨{¸D¼LÈ+Ñ&VÔ&VÐWð ÐUÑUØˆX�gÔ&¨
°D´JÀ
ÈDÌMÐ[eÐgrÑsÔsðuð /Ð0@ÐAð? 
ðD 0°°¸$¼-Ñ1HÔ1HÐIØ>ØˆX�d”mÑ$Ô$ð&ð
ð # KÐ0ð
ð �wÔ(Ð)Ø�WÔ&¨Ð0Ø�WÔ&¨Ð/Ø�gÔ'Ð(ð	
ð �JÐØ�ZÐ Ø˜(˜( 4¨Ñ4Ô4Ð5ð
ðCFð F€F€F€FrD   r#   c            	       óî   — e Zd ZdZdZdgZddgZg Zdefde	j
        dfdefgd	ed
fdedfdefde	j        fgd eee¦  «        fdedfd eee¦  «        fdedfdefde	j        fgdefded
fdefdefgdœZdS )r$   zm
    Lexer for termcap database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    ÚTermcapÚtermcapztermcap.srcú^#.*z
^[^\s#:|]+Únamesr2   r¤   r6   ú:Údefsú\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*rt   ú(#)([0-9]+)r´  rÙ  z	[^\s:=#]+z\\072z[^:\\]+r¥   ©r8   r‚  r„  rÙ  N)rE   rF   rG   rH   rI   rJ   rK   rL   r   r   r¹   r   r   rN   r   r   r   r   r«   r   rO   rP   rD   rB   r$   r$     s  € € € € € ðð ð €DØˆk€GØ˜MÐ*€IØ€Ið �gÐØ˜DœH gÐ.Ø�ZÐ ð
ð �J Ð'Ø�; Ð'Ø�KÐ Ø˜œÐ'ð	
ð   ¨¨zÑ :Ô :Ð;Ø˜* hÐ/Ø˜X˜X h°Ñ7Ô7Ð8Ø�8˜VÐ$Ø�;ÐØ˜4œ:Ð&ð
ð �wÐØ�; Ð'Ø˜Ð!Ø�7ˆOð	
ð)ð €F€F€FrD   r$   c                   ó  — e Zd ZdZdZdgZddgZg Zdefde	j
        dfdefgd	ed
fd eee¦  «        dfdefde	j        fgdefd	edfd eee¦  «        fdedfd eee¦  «        fde	j        fgdefd eee¦  «        d
fdefdefgdœZdS )r%   zn
    Lexer for terminfo database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    ÚTerminfoÚterminfozterminfo.srcz^#.*$z
^[^\s#,|]+r‚  r2   r¤   r6   z(,)([ \t]*)r„  r…  z[^,|]+z\n[ \t]+rt   r†  r´  rÙ  z	[^\s,=#]+z\\[,\\]z[^\\,]+r¥   r‡  N)rE   rF   rG   rH   rI   rJ   rK   rL   r   r   r¹   r   r   r   rN   r   r   r«   r   rO   rP   rD   rB   r%   r%   2  s&  € € € € € ðð ð €DØˆl€GØ˜^Ð,€IØ€Ið �wÐØ˜DœH gÐ.Ø�ZÐ ð
ð �J Ð'Ø˜X˜X k°:Ñ>Ô>ÀÐGØ�KÐ Ø˜œÐ'ð	
ð ˜*Ð%Ø�J Ð)Ø˜X˜X h°Ñ7Ô7Ð8Ø�8˜VÐ$Ø˜X˜X k°:Ñ>Ô>Ð?Ø˜4œ:Ð&ð
ð ˜Ð!Ø˜X˜X k°:Ñ>Ô>ÀÐGØ˜Ð!Ø�7ˆOð	
ð)ð €F€F€FrD   r%   c            
       ó2  — e Zd ZdZdZdZdgZdgZg Zde	j
        fd eej        e¦  «        fd eej        e¦  «        d	f ed
¦  «        defdefdefgdefdej        dfgdej        dfdej        fg ed
¦  «        de	j
        dfdedfdefdefdefgdœZdS )r&   z€
    Lexer for pkg-config
    (see also `manual page <http://linux.die.net/man/1/pkg-config>`_).

    .. versionadded:: 2.1
    Ú	PkgConfigz4http://www.freedesktop.org/wiki/Software/pkg-config/Ú	pkgconfigz*.pcú#.*$z	^(\w+)(=)z^([\w.]+)(:)ÚspvalueÚinterpr2   z[^${}#=:\n.]+r¥   z\$\$z\$\{ÚcurlyrÁ  r6   r¡   r¤   z[^${}#\n\s]+)r8   r�  r‘  r�  N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   rM   r   r   rN   r   r¹   r   r   r   r   r   r®   rO   rP   rD   rB   r&   r&   a  s-  € € € € € ðð ð €DØ
@€CØˆm€GØ�€IØ€Ið �g”nÐ%ð ˜8˜8 D¤N°HÑ=Ô=Ð>ð ØˆX�d”h Ñ,Ô,¨ið9ð ˆG�HÑÔð �ZÐ Ø˜tÐ$Ø�4ˆLð!
ð( �dˆOð �f”o wÐ/ð
ð �F”O VÐ,Ø�T”^Ð$ð
ð
 ˆG�HÑÔà�g”n fÐ-Ø�J Ð'ð �ZÐ Ø˜dÐ#Ø�4ˆLð

ð=)ð )€F€F€FrD   r&   c            
       óÜ   — e Zd ZdZdZdZdgZdgZg Zdde	j
        fd eeee¦  «        fd	 eej        ee¦  «        fd
 eeej        e¦  «        f edd¬¦  «        ej        fdefdefgiZdS )r'   a[  
    Lexer for pacman.conf.

    Actually, IniLexer works almost fine for this format,
    but it yield error token. It is because pacman.conf has
    a form without assignment like:

        UseSyslog
        Color
        TotalDownload
        CheckSpace
        VerbosePkgLists

    These are flags to switch on.

    .. versionadded:: 2.1
    Ú
PacmanConfz3https://www.archlinux.org/pacman/pacman.conf.5.htmlÚ
pacmanconfzpacman.confr8   rŽ  z^(\s*)(\[.*?\])(\s*)$z(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%ur…   r†   r2   r¥   N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   rM   r   r   r   r   rN   r   r   rZ   r   rO   rP   rD   rB   r'   r'   ›  sá   € € € € € ðð ð$ €DØ
?€CØˆn€GØ�€IØ€Ið 	à�g”nÐ%ð & x x°
¸GÀZÑ'PÔ'PÐQð ØˆX�d”n j°(Ñ;Ô;ð=ð "ØˆX�j $¤.°*Ñ=Ô=ð?ð ˆUð ð
  ð!ñ !ô !ð Œ]ðð �ZÐ Ø�4ˆLð7
ð€F€F€FrD   r'   c                   ó  — e Zd ZdZdZdZdgZdgZd ee	j
        eej
        ¦  «        fd ee	j        eej        ¦  «        fd eej        e¦  «        fd	 eeej        ee	j        e¦  «        fd
ej        dfdefdefdej        dfdej        dfd eej
        eej        ¦  «        fdej        fdefgdej        fdej        fdej        dfgdej        fdej        fdej        dfgdej        fd
ej        dfdej        dfdej        fgdœZdS )r(   z6
    Lexer for Augeas.

    .. versionadded:: 2.4
    ÚAugeaszhttp://augeas.netÚaugeasz*.augz(module)(\s*)([^\s=]+)z(let)(\s*)([^\s=]+)zV(del|store|value|counter|seq|key|label|autoload|incl|excl|transform|test|get|put)(\s+)z8(\()([^:]+)(\:)(unit|string|regexp|lens|tree|filter)(\))z\(\*r{   z[*+\-.;=?|]z
[()\[\]{}]rž   rŸ   z\/rø  z([A-Z]\w*)(\.)(\w+)r¥   r2   r£   z[^"]r6   z[^/]z[^*)]r¦   z\*\)z[)*])r8   rŸ   rø  r{   N)rE   rF   rG   rH   rI   rX   rJ   rK   r   r   rÅ  r   r   r¬   rZ   rY   r   r©   r   r}  r   r   r˜   rÆ  r¯   rO   rP   rD   rB   r(   r(   Õ  sÉ  € € € € € ðð ð
 €DØ
€CØˆj€GØ�	€Ið '¨¨°Ô1BÀJÐPTÔP^Ñ(_Ô(_Ð`Ø# X X¨gÔ.AÀ:ÈtÌ}Ñ%]Ô%]Ð^ØfÐhpÐhpÐquÔq}ð  @Jñ  iKô  iKð  LØHÈ(È(ÐS^Ð`dÔ`mÐozð  }Dô  }Ið  KVñ  KWô  KWð  XØ�gÔ'¨Ð3Ø˜XÐ&Ø˜HÐ%Ø�6”= (Ð+Ø�F”L 'Ð*Ø# X X¨d¬n¸kÈ4Ì=Ñ%YÔ%YÐZØ�4”=Ð!Ø�ZÐ ð
ð �V”]Ð#Ø�f”mÐ$Ø�6”= &Ð)ð
ð �V”]Ð#Ø�f”lÐ#Ø�F”L &Ð)ð
ð �wÔ(Ð)Ø�gÔ'¨Ð1Ø�gÔ'¨Ð0Ø�gÔ'Ð(ð	
ð3ð €F€F€FrD   r(   c                   óð   — e Zd ZdZdZdZdgZg d¢Zdd ee	e
¦  «        fde	fd	e	fd
ej        fdefdefdefde
j        fdefdej        fdej        fdej        fdej        fdej        fdefdefdefgiZdS )r)   z\
    Lexer for TOML, a simple language
    for config files.

    .. versionadded:: 2.4
    ÚTOMLz!https://github.com/toml-lang/tomlÚtoml)z*.tomlÚPipfilezpoetry.lockr8   z^(\s*)(\[.*?\])$ú[ \t]+r¤   z#.*?$z"(\\\\|\\[^\\]|[^"\\])*"z\'\'\'(.*)\'\'\'z
\'[^\']*\'z(true|false)$z[a-zA-Z_][\w\-]*z>\d{4}-\d{2}-\d{2}(?:T| )\d{2}:\d{2}:\d{2}(?:Z|[-+]\d{2}:\d{2})z'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z[+-]?(?:(inf(?:inity)?)|nan)z[+-]?\d+z[]{}:(),;[]z\.r´  N)rE   rF   rG   rH   rI   rX   rJ   rK   r   r   r   r   rM   r   r¼  r   r   r—   r­   r   r   rO   rP   rD   rB   r)   r)     sø   € € € € € ðð ð €DØ
-€CØˆh€GØ4Ð4Ð4€Ið 	à  ( (¨:°wÑ"?Ô"?Ð@ð ˜
Ð#Ø�JÐØ�w”~Ð&à(¨&Ð1à  &Ð)Ø˜FÐ#Ø˜wÔ/Ð0Ø  $Ð'ð
 OÐPVÔP^Ð_ð 8¸¼ÐFØ$ f¤lÐ3à,¨f¬lÐ;Ø˜&œ.Ð)ð ˜[Ð)Ø�KÐ ð �8ÐðC#
ð%€F€F€FrD   r)   c                   ó@  — e Zd ZdZdZdZddgZdgZdZdd	 e	e
e¦  «        fd
 e	e
ee
ee
¦  «        fd e	e
ee
ee
¦  «        fe                     d¦  «         e	e
eeeee
¦  «        fe                     d¦  «         e	e
eeeee
¦  «        fd e	e
eee
ee
¦  «        fgiZdS )r*   z\
    Lexer for NextedText, a human-friendly data
    format.

    .. versionadded:: 2.9
    Ú
NestedTextzhttps://nestedtext.orgÚ
nestedtextÚntz*.ntz#^(\s*)({0})(.*?)({0}: ?)(.*?)(\s*)$r8   z^(\s*)(#.*?)$z^(\s*)(>)( ?)(.*?)(\s*)$z^(\s*)(-)( ?)(.*?)(\s*)$ú'rž   z^(\s*)(.*?)(:)( ?)(.*?)(\s*)$N)rE   rF   rG   rH   rI   rX   rJ   rK   Ú_quoted_dict_itemr   r   r   r   r   ró  r   rO   rP   rD   rB   r*   r*   6  s  € € € € € ðð ð €DØ
"€CØ˜TÐ"€GØ�€Ià>Ðð 	Ø˜x˜x¨
°GÑ<Ô<Ð=Ø(¨(¨(°:¸{ÈJÐX^Ð`jÑ*kÔ*kÐlØ(¨(¨(°:¸{ÈJÐX^Ð`jÑ*kÔ*kÐlØ×%Ò% cÑ*Ô*¨H¨H°ZÀÈdÐT_ÐagÐisÑ,tÔ,tÐuØ×%Ò% cÑ*Ô*¨H¨H°ZÀÈdÐT_ÐagÐisÑ,tÔ,tÐuØ-¨x¨x¸
ÀDÈ+ÐWaÐciÐkuÑ/vÔ/vÐwð
ð	€F€F€FrD   r*   c                   ó  — e Zd ZdZdZdZdgZddgZej	        ej
        z  ej        z  ZdZdZdZe eej        e¦  «        d	fe eej        e¦  «        d	fe eeee¦  «        fd
efdefdefdefgd ee¦  «        dfgdœZd„ ZdS )r+   zL
    Lexer for Singularity definition files.

    .. versionadded:: 2.6
    ÚSingularityzAhttps://www.sylabs.io/guides/3.0/user-guide/definition_files.htmlÚsingularityz*.defzS^(\s*)(bootstrap|from|osversion|mirrorurl|include|registry|namespace|includecmd)(:)zT^(%(?:pre|post|setup|environment|help|labels|test|runscript|files|startscript))(\s*)z6^(%app(?:install|help|run|labels|env|test|files))(\s*)Úscriptz	\s*#.*?\nz"\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\brœ  z
(?!^\s*%).z(.+?(?=^\s*%))|(.*)r6   )r8   r¦  c                 ó¬   — d}t          j        d| t           j        ¦  «        r|dz  }t          j        t          j        dd…         | ¦  «        r|dz  }|S )zlThis is a quite simple script file, but there are a few keywords
        which seem unique to this language.r   z&\b(?:osversion|includecmd|mirrorurl)\bg      à?r=   Ng\�Âõ(\ß?)r¶   Úsearchr¸   r+   Ú_section)r@   Úresults     rB   rC   zSingularityLexer.analyse_textq  sZ   € ð ˆÝŒ9Ð>ÀÅbÄmÑTÔTð 	Ø�c‰MˆFåŒ9Õ%Ô.¨q¨r¨rÔ2°DÑ9Ô9ð 	Ø�d‰NˆFàˆrD   N)rE   rF   rG   rH   rI   rX   rJ   rK   r¶   r¸   r·   ÚDOTALLr–   Ú_headersr©  Ú_appsectr   r   ÚHeadingr   r   r   r   r   r	   r   rO   rC   rP   rD   rB   r+   r+   Q  s  € € € € € ðð ð €DØ
M€CØˆo€GØ˜-Ð(€IØŒM˜BœLÑ(¨2¬9Ñ4€Eàe€HØf€HØH€Hð �x�x ¤°Ñ<Ô<¸hÐGØ�x�x ¤°Ñ<Ô<¸hÐGØ�x�x 
¨G°TÑ:Ô:Ð;Ø˜7Ð#Ø2°FÐ;Ø˜
Ð#Ø˜DÐ!ð
ð $ U U¨9Ñ%5Ô%5°vÐ>ð
ðð €Fð
ð 
ð 
ð 
ð 
rD   r+   c                   óN   — e Zd ZdZdZddgZg Zddefdefde	fd	e
fd
efdefgiZdS )r,   z°
    Lexer for Unix/Linux config files using colon-separated values, e.g.

    * ``/etc/group``
    * ``/etc/passwd``
    * ``/etc/shadow``
    
    .. versionadded:: 2.12
    zUnix/Linux config filesÚ
unixconfigÚlinuxconfigr8   r�  r¤   rƒ  r‰   z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+N)rE   rF   rG   rH   rI   rJ   rK   r   r   r   r   r   r   rO   rP   rD   rB   r,   r,   ~  so   € € € € € ðð ð %€DØ˜]Ð+€GØ€Ið 	Ø�gÐØ�JÐØ�;ÐØ˜ÐØ2°DÐ9Ø˜Ð ð
ð	€F€F€FrD   r,   )2rH   r¶   Úpygments.lexerr   r   r   r   r   r   r	   r
   Úpygments.tokenr   r   r   r   r   r   r   r   r   r   r   r   Úpygments.lexers.shellr   Úpygments.lexers.datar   Ú__all__r   r   r   ri   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   rP   rD   rB   ú<module>r·     sÐ  ððð ð 
€	€	€	ð&ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð=ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =à +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *ðEð Eð E€ð*6ð *6ð *6ð *6ð *6ˆzñ *6ô *6ð *6ðZ(:ð (:ð (:ð (:ð (:�:ñ (:ô (:ð (:ðV%ð %ð %ð %ð %�jñ %ô %ð %ðPQð Qð Qð(Jð Jð Jð Jð J�:ñ Jô Jð JðZ;ð ;ð ;ð ;ð ;�Zñ ;ô ;ð ;ð|(ð (ð (ð (ð (�jñ (ô (ð (ðV@ð @ð @ð @ð @�Zñ @ô @ð @ðF,ð ,ð ,ð ,ð ,�Zñ ,ô ,ð ,ð^ð ð ð ð ˜
ñ ô ð ð:!ð !ð !ð !ð !�*ñ !ô !ð !ðHgð gð gð gð gÐ'ñ gô gð gðT,ð ,ð ,ð ,ð ,�:ñ ,ô ,ð ,ð^,ð ,ð ,ð ,ð ,�Jñ ,ô ,ð ,ð^7ð 7ð 7ð 7ð 7�Zñ 7ô 7ð 7ðt7ð 7ð 7ð 7ð 7�jñ 7ô 7ð 7ðt*ð *ð *ð *ð *�*ñ *ô *ð *ðZ2ð 2ð 2ð 2ð 2�
ñ 2ô 2ð 2ðhð ð ð ð �jñ ô ð ð6*ð *ð *ð *ð *�zñ *ô *ð *ðZð ð ð ð �jñ ô ð ð ð rD   