
    ,h                     z   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 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      Z0 G d/ d0e      Z1 G d1 d2e      Z2 G d3 d4e      Z3y)5z
    pygments.lexers.configs
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for configuration file formats.

    :copyright: Copyright 2006-2025 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SystemdLexerDesktopLexer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ZdZ	d	e
fd
ej                  fd eee
      fd eej                   e
ee
e      d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eee
      dfd
ej                  fdedfgd	e
fd ee
eee
      fdedfgdZd Zy)r   z5
    Lexer for configuration files in INI style.
    INI)inicfgdosini)z*.iniz*.cfgz*.infz.editorconfigz
text/x-iniztext/infz&https://en.wikipedia.org/wiki/INI_file \s+[;#].*z(\[.*?\])([ \t]*)$z!(.*?)([ \t]*)([=:])([ \t]*)(["'])quoted_valuez.(.*?)([ \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)valuez6(.*?)([ \t]*)([=:])([ \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z([^"'\n]*)(["'])(\s*)#pop$z(\s*)(.*)(\\)([ \t]*)z.*$)rootr7   r8   c                 Z    | j                  d      }|dk  ry| d   dk(  r| |dz
     dk(  ryy)	N
   Fr   [   ]g?)find)textnposs     Y/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pygments/lexers/configs.pyanalyse_textzIniLexer.analyse_textI   s9    yy!87c>d46lc1    N)__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedr   r   Singler   r   r   	Attributer   r   r   tokensrF    rG   rE   r   r      s=    D&GI z*I
2CM Z '"HWj$AB5dnnj(JO ?dnnj(JJ( Gdnnj(JOQ '
" *ffj16;'66"	
 Z %j&$
;=VV$	
/F>rG   r   c                       e Zd ZdZdZdZdgZdgZdgZdZ	dd	e
fd
 eej                  e
      fd eee
      fd eej                   ej"                  e
ee
ee
      fgiZd Zy)r   z#
    Lexer for .desktop files.
    zDesktop filezXhttps://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.htmldesktopz	*.desktopzapplication/x-desktop2.16r;   	^[ \t]*\nz
^(#.*)(\n)(\[[^\]\n]+\])(\n)zG([-A-Za-z0-9]+)(\[[^\] \t=]+\])?([ \t]*)(=)([ \t]*)([^\n]*)([ \t\n]*\n)c                 z    | j                  d      ryt        j                  d| d d t        j                        yy)Nz[Desktop Entry]      ?z^\[Desktop Entry\][ \t]*$  ?        
startswithresearch	MULTILINErC   s    rE   rF   zDesktopLexer.analyse_texth   s6    ??,-9914:r||LXrG   N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   rR   r   r   rS   	Namespacer   r   rT   rF   rU   rG   rE   r   r   R   s     D
dCkGI()IM 	:&HW^^Z@A"HWj$ABWdnndnnj(JX^`jkm	
FrG   r   c                   8   e Zd ZdZdZdZdgZg dZdZde	fd e
ej                  e	      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e	      fgd e
ej                  e	      fd e
e	eee	      fd e
e	ee	      dfgdZd Zy)r   z'
    Lexer for systemd unit files.
    SystemdzDhttps://www.freedesktop.org/software/systemd/man/systemd.syntax.htmlsystemd)z	*.servicez*.socketz*.devicez*.mountz*.automountz*.swapz*.targetz*.pathz*.timerz*.slicez*.scoperX   rY   z^([;#].*)(\n)rZ   z*([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\\)(\n)r8   z&([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\n)z([ \t]*)([^\n]*)(\\)(\n)z([ \t]*)([^\n]*)(\n)r9   r;   r8   c                 z    | j                  d      ryt        j                  d| d d t        j                        yy)Nz[Unit]r\   z^\[Unit\][ \t]*$r]   r^   r_   r`   re   s    rE   rF   zSystemdLexer.analyse_text   s5    ??8$99($t*bllCOrG   N)rH   rI   rJ   rK   rL   rP   rM   rN   rQ   r   r   r   rR   r   r   rS   r   r   r   rT   rF   rU   rG   rE   r   r   p   s     D
PCkGI M :&x
CD"HWj$AB:dnnj(JJ( 7dnnj(JPZ[]

 x
CD(j&$
;=$j&*5v?
F,rG   r   c                   6   e Zd ZdZdZdZdgZdgZdgZd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y)r   z?
    Lexer for Windows Registry files produced by regedit.
    regz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_filesregistryz*.regztext/x-windows-registry1.6zWindows Registry Editor.*r5   r6   z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r8   z(.*?)([ \t]*)(=)([ \t]*)-r9   z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+).+rj   c                 $    | j                  d      S )NzWindows Registry Editor)ra   re   s    rE   rF   zRegeditLexer.analyse_text   s    899rG   N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   rR   r   r   r   r   BuiltinrS   Variabler   r   r   r   rT   rF   rU   rG   rE   r   r      s     D
DClG	I*+IM *40Z '.gxw?A :dnnj(JG )dnnj(JG
  8V$Admm[&96C FF#FO
!F4:rG   r   c            	           e Zd ZdZdZddgZdgZdgZdZdZ	d	e
j                  fd
efdef ed      gdej                  f ed      d eeee      dfdedfd
edfgdef ed      d
edfgd eej(                  e      fdej(                  fgdZy)r   z
    Lexer for configuration files in Java's properties format.

    Note: trailing whitespace counts as part of the value as per spec
    
Properties
propertiesjpropertiesz*.propertiesztext/x-java-propertiesz)https://en.wikipedia.org/wiki/.propertiesz1.4z[!#].*|/{2}.*\nz	^[^\S\n]+keyz
[^\\:=\s]+escapesz([^\S\n]*)([:=])([^\S\n]*))r9   r8   [^\S\n]+r9   z[^\\\n]+z(\\\n)([^\S\n]*)z\\(.|\n))r;   rz   r8   r{   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   rR   r   r   r   rS   r   r   r   r   EscaperT   rU   rG   rE   r   r      s     D]+G I)*I
5CM
 w~~.J:&EN	
 DNN+I +j(J7  *&78J'
  &!IJ'
 !(6==*"EF&--(	
C'FrG   r   c                 Z    d}|dk(  rd}nd|dz
  z  }| dk(  rd}nd|  d}d	| d
| d| dS )N      +z{1,%d}r@   r4   {}z(?:\t| z\t| {z})z.*\nrU   )level	tab_widthspace_repeatlevel_repeats       rE   
_rx_indentr      sY     I A~9q=1zE7"~l^6)C~TJJrG   c                      e Zd ZdZdZg dZdZg dZdgZd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j2                  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y#)$r   z(
    For Linux-style Kconfig files.
    Kconfig)kconfig
menuconfigzlinux-configzkernel-configro   )zKconfig*z*Config.in*zexternal.in*zstandard-modules.inztext/x-kconfigzChttps://www.kernel.org/doc/html/latest/kbuild/kconfig-language.htmlr   c                 @    t        |       t        j                  d|  fS )Nindent)r   r   Docr   s    rE   call_indentzKconfigLexer.call_indent#  s    5!6::w/?@@rG   c                 \    t        |       t        j                  fdt        ft	        d      gS )N\s*\n#pop:2)r   r   r   r   r   r   s    rE   	do_indentzKconfigLexer.do_indent'  s/     

+tH
 	
rG   r5   #.*?\n)mainmenuconfigr   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+r               r>   r   r@   r9   )	r;   r   indent7indent6indent5indent4indent3indent2indent1N)rH   rI   rJ   rK   rL   rM   rQ   rN   rO   rP   flagsr   r   r   r   rR   r   r   r   rs   r   r   r   Integerr   Doubler   r   rT   rU   rG   rE   r   r     sO    DHGM(I!"I
OC EA
 Z ' # ,1	2
  *7F;K\\!k"'fmm,fmm,TN#
. t NNNNNNNFO
  Q<Q<Q<Q<Q<Q<Q<Y-FrG   r   c                      e Zd ZdZdZdZddgZdgZg Zd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j0                  e      fdej"                  fdefdefdefdej4                  fdej6                  fdej                  fdefgdej8                  dfdej:                  fdedfd efd!efgdej8                  d"fd#ej8                  dfd$ej8                  fgd%edfd&efdej"                  fdefgd'Zy())r   z+
    Lexer for CFEngine3 policy files.
    	CFEngine3zhttp://cfengine.org	cfengine3cf3z*.cfz1.5r   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+r5   z\$[{(]interpol\\.r9   ry   .#pushz[})]z	[^${()}]+z\),)r;   r   r   r   N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   r   r   Functionr   rt   Typer   Reservedr   r   ClassDeclarationr   Floatr   Interpolr}   rT   rU   rG   rE   r   r   `  s    D
CE"GIIM  .gz7JHJ5gz7J{[ 2gz7JNPGk4==+ ',,
HjRS $g&&
HdCE68$8DMM;?@!8DJJ#DE(7#6#6DE/+&HH&,,'V^^$T]]#Z 3
8 4V]]#66"FO6N
 1foov.6??+
 K(;T]]#Z 	
Q.FrG   r   c                   ~   e Zd ZdZdZg dZg dZdgZdZd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j2                  fdefg
dZy)r    zT
    Lexer for configuration files following the Apache config file
    format.
    
ApacheConf)
apacheconfaconfapache)z	.htaccesszapache.confzapache2.confztext/x-apacheconfz6https://httpd.apache.org/docs/current/configuring.htmlz0.6r5   z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r8   z\.+z\\\nz\n+r9   z\\r|   \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"\\]+rj   N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rb   rd   
IGNORECASEr   r   r   r   r   Tagr   rs   r   r   Otherr   r   rT   rU   rG   rE   r    r      s   
 D/G<I$%I
BCMLL2==(E Z %w/2dhh
FDHH=?dhh)+$,,0TN	
 dOZ(DM*%+V4V%v||4  '( 0?4 
FrG   r    c                      e Zd ZdZdZdZg dZdgZdgZdZ	e
j                  ZdZd	Zd
ZdZdZdZdZde de dZdZde de dZde de dZe de 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e jB                  fd!e fd"e"fgd#ejF                  d$fd%ed$f e$d$      gd&Z%y')(r!   z.
    Lexer for squid configuration files.
    	SquidConfzhttp://www.squid-cache.org/)	squidconf
squid.confsquidr   ztext/x-squidconfz0.9)
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_communityz(\d+|0x[0-9a-f]+)(z(\.z){3})z([0-9a-f]{0,4})z(:z){1,7})|)z(/(z|\d+))?r5   #r   r   prefixr   zstats/zlog/=z(?:\b\d+\b(?:-\b\d+|%)?)r   z	\s*TAG:.*r9   rq   )r;   r   N)&rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   rb   r   r   keywordsoptsactionsactions_statsactions_logacls
ipv4_groupipv4
ipv6_groupipv6bare_ipipr   r   r   r   r   Constantr   r   r   r   r}   r   rT   rU   rG   rE   r!   r!     s    D
'C2GI#$IMMME9HvDG
M
 ;KD &J
|3zl'2D#J
|2j\3D4&$q!G IS		)B Z 7I&8E%8'B4e4dmmD757@=5A6J;wt<fE4e4g>(&1TN
 6==&1GV$FO
FrG   r!   c                      e Zd ZdZdZdZdgZdgZdgZd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j0                        fdefdefdefdefdefgdZy) r"   z.
    Lexer for Nginx configuration files.
    zNginx configuration filezhttp://nginx.net/nginxz
nginx.confztext/x-nginx-conf0.11z(include)(\s+)([^\s;]+)z[^\s;#]+stmtbase\}r   \{block;r9   #.*\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;#]*r5   z[$;])r;   r  r  r  N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   r   r   r   r   r   rf   r   rR   r  rt   r   r   r   Regexr   rT   rU   rG   rE   r"   r"   I  s;    &D
CiGI$%IM (':t)LM'6*FO
 K*'++V4FO
 K);'FO
 w~~&&dmm,(dK8: &)v~~.!8KV\\#RS{#V$4 Z dO
! FrG   r"   c                       e Zd ZdZdZdZddgZdgZdgZd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y)r#   z1
    Lexer for Lighttpd configuration files.
    zLighttpd configuration filezhttp://lighttpd.net/lighttpdlightyzlighttpd.confztext/x-lighttpd-confr  r;   r  z/\S*z[a-zA-Z._-]+r   r   z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r5   N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   rR   r   r   r   r   rs   r   r   r   r   rT   rU   rG   rE   r#   r#   w  s     )D
 C8$G !I'(IM 	w~~&dOg&+V4!8,$,,'[)*FMM:Z 
FrG   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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
 d eeee      fde d eee      fd ee      fg	iZy)r$   z/
    Lexer for Docker configuration files.
    Dockerzhttp://docker.iodocker
dockerfile
Dockerfilez*.dockerztext/x-dockerfile-configz2.0z-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z(?:\s*\\?\s*)r;   #.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)(r  z(HEALTHCHECK)(\s+)((z	--\w+=\w+z)*)z#(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(z
)(\[.*?\])z(LABEL|ENV|ARG)(\s+)((z\w+=\w+r  z|VOLUME)\b(\s+)(.*)z)(\s+)z(.*\\\n)*.+N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   	_keywords_bash_keywords_lbrb   r   rd   r   r   r   r   r   r   r	   r   r   rT   rU   rG   rE   r$   r$     si    D
C&Gz*I+,IMAIFN
CMMBLL(E 	WAgz6:w
TZ[]uA&*eIFV(WX$SE3%s;*eI.>?A3C5
C*eI.>i@PQS&se73%s;*eI.>?A)/0(7JPV2WX.!((7J*GHU9-.
FrG   r$   c                   h   e Zd ZdZdZdZg dZddgZddgZd	Z	d
Z
dj                  dj                  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j                  dj                  e            Zd Z ed       ed      d eej<                        f eddd      e jB                  f eedd      e"jF                  f ed       ed      d e$fgd!e%jL                  d"fd#e%jN                  f ed      d$ ee(e jR                  e(e*e(e+      fd% ee(e jX                  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 jR                  e+      fed)z    ee"j^                  e(e j`                  e(e jb                  e(e+      fd*efg
d+ ee jb                        fd, ee jb                        fgd-e+fgd.e%jL                  fd/e%jL                  d0fd1e%jL                  d2fd3e%jL                  fgd4e(fd5e(fd6 ee2e(      fgd7Z3y8)9r%   z-
    Lexer for terraformi ``.tf`` files.
    	Terraformzhttps://www.terraform.io/)	terraformtfhclz*.tfz*.hclzapplication/x-tfzapplication/x-terraform2.1)backenddatamoduleoutputproviderprovisionerresourcevariablez({})r  )	r   numberboollisttuplemapsetobjectnull)	absceilfloorlogmaxmixparseintpowsignum)chompformat
formatlistr   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              #   h  K   |j                  d      }|t        |j                  d      f |j                  d      t        j                  |j                  d      f |j                  d      |_        |j                  d      |_        |j
                  t        j                  |j                  d      f |j                         |_        |j                  d      }d}g }t        j                  |j                  |j
                        D ]  }|r|j                         j                         }n|j                         j                         }||k(  r|D ]3  }|j                         t        j                  |j                         f 5 |j                         t        j                  |j                         f |j                         |_         nA|j                  |        |D ])  }|j                         t        |j                         f + t        |j                        |_        y w)Nr@   r   r>   T)startr   groupr   	DelimiterposendHeredocr
   finditerrC   striprstripappendr   len)	selfmatchctxry  hdnametolerantlinescheckamatchs	            rE   heredoc_callbackzTerraformLexer.heredoc_callback  s     AXu{{1~--kk!nf..A>>++a.))A,ggv~~u{{1~55))+Q%%chh8 	<E++-,,.# IF ,,.&..&,,.HHIkkmV%5%5u{{}DD))+U#	<   <llneV\\^;;<chh-s   H0H2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\*/r9   z[*/]ry   r5   (\\)(\n))r;   r  r  r  r   r  N)4rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   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_rer  r   r   r   r   r   r   r  r   r   r   r   	MultilinerR   r   rs   r   r   rS   r   r   r   r   rt   r   rT   rU   rG   rE   r%   r%     s&    D
%C(G!I#%>?IM6Gzz'23JYE=W[ A` T!I !#336JJM__235JKMab!"H --

8 45K# N GL! /0 $U5A4==Q 5u5w||DL!M"
$ ))95w~~.L! 8j$,,
HjR]^` 3j$..*h
SU
 -j'.."7"7XzZ\ 7"HT]]K$HI %h{DLL+&VW UUg&&
DJJ
DMM[egrsu /0@A? 
D 0$--1HI>dmm$&
 #K0
 w(()W&&0W&&/g''(	
 JZ (445
CFFrG   r%   c            	          e Zd ZdZdZdgZddgZg ZdZd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y)r&   zR
    Lexer for termcap database source.

    This is very simple and minimal.
    Termcaptermcapztermcap.srcz%https://en.wikipedia.org/wiki/Termcapr  ^#.*z
^[^\s#:|]+namesr5   ry   r9   :defs\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*r   (#)([0-9]+)r  r  z	[^\s:=#]+z\\072z[^:\\]+r   r;   r  r  r  N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   r   rS   r   r   r   r   r   r   rT   rU   rG   rE   r&   r&   _  s    
 DkGM*II
1CM gDHHg.Z 
 J';'K '	
 z :;*h/Xh788V$;4::&
 w;'!7O	
)FrG   r&   c                   "   e Zd ZdZdZdgZddgZg ZdZd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y)r'   zS
    Lexer for terminfo database source.

    This is very simple and minimal.
    Terminfoterminfozterminfo.srcz&https://en.wikipedia.org/wiki/Terminfor  z^#.*$z
^[^\s#,|]+r  r5   ry   r9   z(,)([ \t]*)r  r  z[^,|]+z\n[ \t]+r   r  r  r  z	[^\s,=#]+z\\[,\\]z[^\\,]+r   r  N)rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   r   r   rS   r   r   r   r   rT   rU   rG   rE   r'   r'     s   
 DlG^,II
2CM wDHHg.Z 
 J'Xk:>GK '	
 *%J)Xh788V$Xk:>?4::&
 !Xk:>G!7O	
)FrG   r'   c            
       b   e Zd ZdZdZdZdgZdgZg Zd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y)r(   ze
    Lexer for pkg-config
    (see also `manual page <http://linux.die.net/man/1/pkg-config>`_).
    	PkgConfigz4http://www.freedesktop.org/wiki/Software/pkg-config/	pkgconfigz*.pcr  #.*$z	^(\w+)(=)z^([\w.]+)(:)spvalueinterpr5   z[^${}#=:\n.]+r   z\$\$z\$\{curlyr  r9   r   ry   z[^${}#\n\s]+)r;   r  r  r  N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   rR   r   r   rS   r   r   r   r   r   r   r   r   rT   rU   rG   rE   r(   r(     s   
 D
@CmGIIM gnn% 8DNNH=> dhh,i9 H Z t$4L!
( dO foow/
 FOOV,T^^$

 Hgnnf-J' Z d#4L

=)FrG   r(   c            
           e Zd ZdZdZdZdgZdgZg Zd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y)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.
    
PacmanConfz3https://www.archlinux.org/pacman/pacman.conf.5.html
pacmanconfzpacman.confr  r;   r  z^(\s*)(\[.*?\])(\s*)$z(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%ur   r   r5   r   N)rH   rI   rJ   rK   rL   rP   rM   rN   rO   rQ   r   rR   r   r   r   r   rS   r   r   rt   r   rT   rU   rG   rE   r)   r)     s      D
?CnGIIM 	gnn% &x
GZ'PQ dnnj(;= "j$..*=?  
  ! ]] Z 4L7
FrG   r)   c                      e Zd ZdZdZdZdgZdgZd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j0                  dfd e	ej                  eej                        fdej                  fdefgdej2                  fdej.                  fdej.                  dfgdej2                  fdej0                  fdej0                  dfgdej(                  fdej(                  dfdej(                  dfdej(                  fgdZy) r*   z
    Lexer for Augeas.
    Augeaszhttp://augeas.netaugeasz*.aug2.4z(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   r5   r   z[^"]r9   z[^/]z[^*)]r   z\*\)z[)*])r;   r   r  r   N)rH   rI   rJ   rK   rL   rP   rM   rN   rQ   r   r   rf   r   r   r   rt   rs   r   r   r   r  r   r   r   r  r}   rT   rU   rG   rE   r*   r*   /  s    D
CjG	IM '1B1BJPTP^P^(_`#Xg.A.A:t}}%]^fhpquq}q}  @J  iK  LH(S^`d`m`moz  }D  }I  }I  KV  KW  Xg''3X&H%6==(+FLL'*#Xdnnk4==%YZ4==!Z 
 V]]#fmm$6==&)
 V]]#fll#FLL&)
 w(()g''1g''0g''(	
3FrG   r*   c                      e Zd ZdZdZdgZg dZdgZdZdZ	dZ
d	e
 d
Zdefdej                  f ed      d eee      dfdedfgdefdej*                  dfdej                  dfdefgdefdej*                  dfdej                  dfdefdedfdefgeej0                  dfe
ej0                  dfdej4                  dfdej4                  dfdej4                  dfdej6                  dfdej8                  dfd ej:                  dfd!ej<                  dfd"ej*                  d#fdej*                  d$fd%ej                  d&fdej                  d'fd(ej>                  dfd)ed*fd+ed,fgdefdej                  fd-efd.edf e d      gdef ed      d eee      dfd-efd/edfgdej*                  df ed0      d1ej*                  fgd2ej                  dfgd"ej*                  dfd3 eejB                  e      f ed0      d1ej*                  fdej*                  fgd%ej                  dfd4ej                  fdej                  fgd5ejB                  fd6ejB                  fgd7Z"y8)9r+   z=
    Lexer for TOML, a simple language for config files.
    TOMLtoml)z*.tomlPipfilezpoetry.lockzapplication/tomlzhttps://toml.ior  z\d\d:\d\d:\d\d(\.\d+)?zm(?x)
                  \d\d\d\d-\d\d-\d\d # date, e.g., 1988-10-27
                (
                  [Tt ] z # optional time
                  (
                    [Zz]|[+-]\d\d:\d\d # optional time offset
                  )?
                )?
              r5   r  rz   z(=)(\s*)r8   z\[\[?	table-keyz[A-Za-z0-9_-]+r   basic-string'literal-stringz\.z\]\]?r9   [ \t]+z [+-]?\d[0-9_]*[eE][+-]?\d[0-9_]*z.[+-]?\d[0-9_]*\.\d[0-9_]*([eE][+-]?\d[0-9_]*)?z[+-]?(inf|nan)z
-?0b[01_]+z-?0o[0-7_]+z-?0x[0-9a-fA-F_]+z[+-]?[0-9_]+z""")r9   multiline-basic-string)r9   r  z''')r9   multiline-literal-string)r9   r  z
true|false\[)r9   arrayr  )r9   inline-tabler   \]r  r{   z[^"\\]+z.*?'r  z[^']+z#\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}r   )r;   rz   r  r8   r  r  r  r  r  r  r{   N)#rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   _time	_datetimer   r   rR   r   r   r   r   r   r   r   r   r   Dater   r   BinOctHexr   r  r   r}   rT   rU   rG   rE   r+   r+   [  s]    DhG4I#$I
CM
 &E   I* Z  W^^$ EN (8Z8'B w,-
4 %6==.16=="23K 
 (6==.16=="23Gw' 
#
" f-GLL&) 1&,,G>\\6# f5 FJJ/VZZ0!6::v6fnnf5 V]]$FG6==":;V]]$HI6=="<= G,,f5 K!23 K!9:C"
L Z W^^$ ; K( G
$ 
# EN (;
;WE ; K(
$ 6==&)I'
 fmmV,
 V]]F+(6==*=>I'6==!#
 V]]F+v}}%6==!%
 4V]]CV]]#
QLFrG   r+   c                   B   e Zd ZdZdZdZddgZdgZdZd e	e
e      fd	 e	e
e      d
fd e	e
e      dfd e	e
e      fd e	e
ee
ee
      fd e	e
e      fd e	e
ee
ee
      fd e	e
e      fd e	e
ee
ej                  e
      fd e	e
ej                  e      fd e	e
ej                  ee
ee
      fg ed      def ed      defdedfdedfg ed      dej                  fdedfdedfdedfg ed      def ed      dedfded fg ed      d!ed
fd"edfgd#e
fgd$Zy%)&r,   z
    Lexer for *NextedText*, a human-friendly data format.

    .. versionchanged:: 2.16
        Added support for *NextedText* v3.0.
    
NestedTextzhttps://nestedtext.org
nestedtextntz*.ntz2.9z^([ ]*)(#.*)$z^([ ]*)(\{)inline_dictz^([ ]*)(\[)inline_listz^([ ]*)(>)$z^([ ]*)(>)( )(.*?)([ \t]*)$z^([ ]*)(-)$z^([ ]*)(-)( )(.*?)([ \t]*)$z^([ ]*)(:)$z^([ ]*)(:)( )([^\n]*?)([ \t]*)$z^([ ]*)([^\{\[\s].*?)(:)$z)^([ ]*)([^\{\[\s].*?)(:)( )(.*?)([ \t]*)$r  z[^\{\}\[\],\s]+inline_valuer   r  r9   ry   z[^\{\}\[\],:\s]+r  inline_dict_valuer  r   r  r  r  )r;   r  r  r  r  r  N)rH   rI   rJ   rK   rL   rP   rM   rN   rQ   r   r   r   r   r   r   r   r   r   rT   rU   rG   rE   r,   r,     s    D
"CT"GIM
 x
G<= Xj+>N Xj+>N Xj+>? ,Xj+z[_ak-lm Xj+>? ,Xj+z[_ak-lm Xj+>? 0*kS]_c_g_gis1tu *8J++VW :8JPTPXPXZegqsw  zD  <E  FA!
F L!&N#;K(E6"
 L! $((+; 34K(E6"
 L! $'N#;'K*
 L!K/K/
 
#
}AFrG   r,   c                   (   e Zd ZdZdZdZdgZddgZd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y)r-   z1
    Lexer for Singularity definition files.
    SingularityzAhttps://www.sylabs.io/guides/3.0/user-guide/definition_files.htmlsingularityz*.defz2.6zS^(\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*%))|(.*)r9   )r;   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\(\?)rb   rc   r   r-   _section)rC   results     rE   rF   zSingularityLexer.analyse_textt  sQ     99>bmmTcMF99%..qr2D9dNFrG   N)rH   rI   rJ   rK   rL   rP   rM   rN   rQ   rb   r   rd   DOTALLr   _headersr  _appsectr   r   Headingr   r   r   r   r   r	   r   rT   rF   rU   rG   rE   r-   r-   U  s     D
MCoG-(IMMMBLL(2994EeHfHHH x<hGx<hGx
GT:;7#2F;
#D!
 $U9%5v>
F
rG   r-   c                   T    e Zd ZdZdZddgZg ZdZdZdde	fd	e
fd
efdefdefdefgiZy)r.   z
    Lexer for Unix/Linux config files using colon-separated values, e.g.

    * ``/etc/group``
    * ``/etc/passwd``
    * ``/etc/shadow``
    zUnix/Linux config files
unixconfiglinuxconfigzUhttps://en.wikipedia.org/wiki/Configuration_file#Unix_and_Unix-like_operating_systemsz2.12r;   r  ry   r  r   z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+N)rH   rI   rJ   rK   rL   rM   rN   rP   rQ   r   r   r   r   r   r   rT   rU   rG   rE   r.   r.     sh     %D]+GI
aCM 	gJ;2D9 
	FrG   r.   )4rK   rb   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   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   rU   rG   rE   <module>r     sl   
& & &= = = = + *E3z 3l: <): )X':: ':T5j 5pK(K: K\:Z :z(j (V~Z ~B+Z +\
 8 *  Ff' fR,: ,^,J ,^6Z 6r6j 6r)* )Xf
 fPOj Od)z )Xj rG   