a
    U_z                     @   s  d Z ddlZddlZddlmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZ g dZdZdZdZd	Zd
ZdZdZdZdZdZdZee e e e Z G dd deZ!defdej"fdej#dfdej$fe	ed ddej%fe	eddej&fe	dddej'fdej(fdej)fdej*fdej+d fd!ej,fd"ej-fd#eej.ej/fd$eej0ej/fd%ej1d&fd'efd(efd)ej2d*fd+ej,d,fd-efgd.ej1d/fed0gdefd1ej3d2fd3ej4d4fd5ej5d6fd7ej6fd%ej1d&fd8efd9efd)ej2d*fd+ej,d,fg
d:ej2fd%ej1d&fd)ej2d/fgd;ej,fd%ej1d&fd+ej,d/fgd<ej#fd%ej1d&fd=ej#d/fgd7ej3fd%ej1d&fed/gd7ej4fd%ej1d&fed/gd7ej5fd%ej1d&fed/gd>ej*fed0gd?
Z7d@dA Z8dBdC Z9G dDdE dEeZ:G dFdG dGeZ;G dHdI dIe!Z<dS )Jz
    pygments.lexers.css
    ~~~~~~~~~~~~~~~~~~~

    Lexers for CSS and related stylesheet formats.

    :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)ExtendedRegexLexer
RegexLexerincludebygroupsdefaultwordsinherit)TextCommentOperatorKeywordNameStringNumberPunctuation)CssLexer	SassLexer	ScssLexerLessCssLexer)z-ms-zmso-z-moz-z-o-z-xv-z-atsc-z-wap-z-khtml-z-webkit-zprince-z-ah-z-hp-z-ro-z-rim-z-tc-(r  zalign-contentzalign-itemsz
align-selfzalignment-baselineallZ	animationzanimation-delayzanimation-directionzanimation-durationzanimation-fill-modezanimation-iteration-countzanimation-namezanimation-play-statezanimation-timing-functionZ
appearanceZazimuthzbackface-visibilityZ
backgroundzbackground-attachmentzbackground-blend-modezbackground-clipzbackground-colorzbackground-imagezbackground-originzbackground-positionzbackground-repeatzbackground-sizezbaseline-shiftzbookmark-labelzbookmark-levelzbookmark-stateZborderzborder-bottomzborder-bottom-colorzborder-bottom-left-radiuszborder-bottom-right-radiuszborder-bottom-stylezborder-bottom-widthzborder-boundaryzborder-collapsezborder-colorzborder-imagezborder-image-outsetzborder-image-repeatzborder-image-slicezborder-image-sourcezborder-image-widthzborder-leftzborder-left-colorzborder-left-stylezborder-left-widthzborder-radiuszborder-rightzborder-right-colorzborder-right-stylezborder-right-widthzborder-spacingzborder-stylez
border-topzborder-top-colorzborder-top-left-radiuszborder-top-right-radiuszborder-top-stylezborder-top-widthzborder-widthbottomzbox-decoration-breakz
box-shadowz
box-sizingzbox-snapzbox-suppresszbreak-afterzbreak-beforezbreak-insidezcaption-sidecaretzcaret-animationzcaret-colorzcaret-shapeZchainsclearclipz	clip-pathz	clip-rulecolorzcolor-interpolation-filterszcolumn-countzcolumn-fillz
column-gapzcolumn-rulezcolumn-rule-colorzcolumn-rule-stylezcolumn-rule-widthzcolumn-spanzcolumn-widthcolumnscontentzcounter-incrementzcounter-resetzcounter-setcropZcuez	cue-afterz
cue-beforeZcursor	directionZdisplayzdominant-baselineZ	elevationzempty-cellsfilterflexz
flex-basiszflex-directionz	flex-flowz	flex-growzflex-shrinkz	flex-wrapfloatzfloat-deferzfloat-offsetzfloat-referencezflood-colorzflood-opacityZflowz	flow-fromz	flow-intoZfontzfont-familyzfont-feature-settingszfont-kerningzfont-language-overridez	font-sizezfont-size-adjustzfont-stretchz
font-stylezfont-synthesiszfont-variantzfont-variant-alternateszfont-variant-capszfont-variant-east-asianzfont-variant-ligatureszfont-variant-numericzfont-variant-positionzfont-weightzfootnote-displayzfootnote-policyzglyph-orientation-verticalZgridz	grid-areazgrid-auto-columnszgrid-auto-flowzgrid-auto-rowszgrid-columnzgrid-column-endzgrid-column-gapzgrid-column-startzgrid-gapzgrid-rowzgrid-row-endzgrid-row-gapzgrid-row-startzgrid-templatezgrid-template-areaszgrid-template-columnszgrid-template-rowszhanging-punctuationZheightzhyphenate-characterzhyphenate-limit-charszhyphenate-limit-lastzhyphenate-limit-lineszhyphenate-limit-zoneZhyphenszimage-orientationzimage-resolutionzinitial-letterzinitial-letter-alignzinitial-letter-wrapZ	isolationzjustify-contentzjustify-itemszjustify-selfleftzletter-spacingzlighting-colorz
line-breakz	line-gridzline-heightz	line-snapz
list-stylezlist-style-imagezlist-style-positionzlist-style-typeZmarginzmargin-bottomzmargin-leftzmargin-rightz
margin-topzmarker-sidezmarquee-directionzmarquee-loopzmarquee-speedzmarquee-stylemaskzmask-borderzmask-border-modezmask-border-outsetzmask-border-repeatzmask-border-slicezmask-border-sourcezmask-border-widthz	mask-clipzmask-compositez
mask-imagez	mask-modezmask-originzmask-positionzmask-repeatz	mask-sizez	mask-typez
max-heightz	max-linesz	max-widthz
min-heightz	min-widthzmix-blend-modeZmotionzmotion-offsetzmotion-pathzmotion-rotationzmove-toznav-downznav-leftz	nav-rightznav-upz
object-fitzobject-positionzoffset-afterzoffset-beforez
offset-endzoffset-startopacityorderZorphansZoutlinezoutline-colorzoutline-offsetzoutline-stylezoutline-widthZoverflowzoverflow-stylezoverflow-wrapz
overflow-xz
overflow-yZpaddingzpadding-bottomzpadding-leftzpadding-rightzpadding-toppagezpage-break-afterzpage-break-beforezpage-break-insidezpage-policypausezpause-afterzpause-beforeperspectivezperspective-originZpitchzpitch-rangezplay-duringzpolar-anglezpolar-distanceZpositionzpresentation-levelZquoteszregion-fragmentZresizerestz
rest-afterzrest-beforeZrichnessrightZrotationzrotation-pointz
ruby-alignz
ruby-mergezruby-positionrunningzscroll-snap-coordinatezscroll-snap-destinationzscroll-snap-points-xzscroll-snap-points-yzscroll-snap-typezshape-image-thresholdzshape-insidezshape-marginzshape-outsidesizeZspeakzspeak-aszspeak-headerzspeak-numeralzspeak-punctuationzspeech-rateZstressz
string-setztab-sizeztable-layoutz
text-alignztext-align-lastztext-combine-uprightztext-decorationztext-decoration-colorztext-decoration-lineztext-decoration-skipztext-decoration-styleztext-emphasisztext-emphasis-colorztext-emphasis-positionztext-emphasis-styleztext-indentztext-justifyztext-orientationztext-overflowztext-shadowztext-space-collapseztext-space-trimztext-spacingztext-transformztext-underline-positionz	text-wraptopZ	transformztransform-originztransform-styleZ
transitionztransition-delayztransition-durationztransition-propertyztransition-timing-functionzunicode-bidizuser-selectzvertical-alignZ
visibilityzvoice-balancezvoice-durationzvoice-familyzvoice-pitchzvoice-rangez
voice-ratezvoice-stresszvoice-volumeZvolumezwhite-spaceZwidowswidthzwill-changez
word-breakzword-spacingz	word-wrapz
wrap-afterzwrap-beforez	wrap-flowzwrap-insidezwrap-throughzwriting-modezz-index(+  absolutealiasr   zall-petite-capsz
all-scrollzall-small-capsz	allow-endZalphaZ	alternatezalternate-reversealwaysarmenianautoavoidzavoid-columnz
avoid-pageZ	backwardsZbalancebaselinebelowblinkblockboldbolderz
border-boxbothr   zbox-decorationz
break-word
capitalizeZcellcentercircler   Zcloneclose-quotez
col-resizecollapser   z
color-burnzcolor-dodgecolumnzcolumn-reverseZcompact	condensedZcontainZ	containerzcontent-boxzcontext-menucopyZcoverzcrisp-edges	crosshairZcurrentColorcursiveZdarkendasheddecimaldecimal-leading-zeror   Zdescendants
differencedigitsdiscZ
distributedotdotteddoublezdouble-circlee-resizez	each-lineZeasezease-inzease-in-outzease-outZedgesZellipsisendz	ew-resizeZ	exclusionexpandedextra-condensedextra-expandedfantasyZfillzfill-boxZfilledfirstfixedZflatr    zflex-endz
flex-startZflipz	force-endZforwardsz
from-imagez
full-widthZgeometricPrecisiongeorgiangrooveZhangingz
hard-lighthelphiddenhideZ
horizontalhueiconZinfiniter   initialZinkinlinezinline-blockzinline-flexinline-tableinsetinsidez
inter-wordinvertZisolateitalicjustifylargelargerZlastr"   Zlightenlighterline-throughZlinear	list-itemZlocalZlooselower-alphalower-greekzlower-latinlower-roman	lowercaseltrZ	luminanceZ
luminosityZ	mandatoryZmanipulationZmanualz
margin-boxzmatch-parentmediumZmixed	monospaceZmoveZmultiplyn-resize	ne-resizeznesw-resizeno-close-quotezno-dropno-open-quote	no-repeatnonenormalznot-allowednowrapz	ns-resize	nw-resizeznwse-resizeZobjectsobliqueZoffZonopen
open-quoteZoptimizeLegibilityZoptimizeSpeedoutsetoutsideZoverZoverlayoverlinezpadding-boxr&   zpan-downzpan-leftz	pan-rightzpan-upzpan-xzpan-yZpausedzpetite-capsZ	pixelatedpointerzpreserve-3dZprogressZ	proximityrelativerepeatzrepeat no-repeatrepeat-xrepeat-yreverseridger*   roundrowz
row-resizezrow-reverseZrtlZrubyz	ruby-basezruby-base-containerz	ruby-textzruby-text-containerzrun-inr+   s-resize
sans-serif
saturationz
scale-downZscreenscroll	se-resizesemi-condensedsemi-expandedseparateserifZsesameshowZsidewayszsideways-leftzsideways-rightsliceZsmall
small-capssmallerZsmoothZsnapz
soft-lightsolidZspacezspace-aroundzspace-betweenspacessquarestartstaticzstep-endz
step-startZstickyZstretchstrictz
stroke-boxZstyle	sw-resizetabletable-caption
table-celltable-columntable-column-grouptable-footer-grouptable-header-group	table-rowtable-row-grouptextthickthinztitling-capstor-   Ztriangleultra-condensedultra-expandedZunder	underlineZunicaseZunsetupper-alphaupper-latinupper-roman	uppercaseZuprightzuse-glyph-orientationZverticalzvertical-textzview-boxvisiblew-resizewaitZwavyZweightzweight styleZwrapzwrap-reversex-largex-smallxx-largexx-smallzzoom-inzzoom-out)Z	aliceblueZantiquewhiteaquaZ
aquamarineZazureZbeigeZbisqueblackZblanchedalmondblueZ
bluevioletZbrownZ	burlywoodZ	cadetblueZ
chartreuseZ	chocolateZcoralZcornflowerblueZcornsilkZcrimsonZcyanZdarkblueZdarkcyanZdarkgoldenrodZdarkgrayZ	darkgreenZdarkgreyZ	darkkhakiZdarkmagentaZdarkolivegreenZ
darkorangeZ
darkorchidZdarkredZ
darksalmonZdarkseagreenZdarkslateblueZdarkslategrayZdarkslategreyZdarkturquoiseZ
darkvioletZdeeppinkZdeepskyblueZdimgrayZdimgreyZ
dodgerblueZ	firebrickZfloralwhiteZforestgreenfuchsiaZ	gainsboroZ
ghostwhiteZgoldZ	goldenrodgraygreenZgreenyellowZgreyZhoneydewZhotpinkZ	indianredZindigoZivoryZkhakiZlavenderZlavenderblushZ	lawngreenZlemonchiffonZ	lightblueZ
lightcoralZ	lightcyanZlightgoldenrodyellowZ	lightgrayZ
lightgreenZ	lightgreyZ	lightpinkZlightsalmonZlightseagreenZlightskyblueZlightslategrayZlightslategreyZlightsteelblueZlightyellowlimeZ	limegreenZlinenZmagentamaroonZmediumaquamarineZ
mediumblueZmediumorchidZmediumpurpleZmediumseagreenZmediumslateblueZmediumspringgreenZmediumturquoiseZmediumvioletredZmidnightblueZ	mintcreamZ	mistyroseZmoccasinZnavajowhitenavyZoldlaceoliveZ	olivedrabZorangeZ	orangeredZorchidZpalegoldenrodZ	palegreenZpaleturquoiseZpalevioletredZ
papayawhipZ	peachpuffZperuZpinkZplumZ
powderbluepurpleZrebeccapurpleredZ	rosybrownZ	royalblueZsaddlebrownZsalmonZ
sandybrownZseagreenZseashellZsiennasilverZskyblueZ	slateblueZ	slategrayZ	slategreyZsnowZspringgreenZ	steelblueZtantealZthistleZtomatoZ	turquoiseZvioletZwheatwhiteZ
whitesmokeyellowZyellowgreentransparent)9aboveauralbehindbidi-overridecenter-leftcenter-rightcjk-ideographic
continuousr   crossembedfar-left	far-rightfastfasterhebrewhighhigherhiraganahiragana-irohakatakanakatakana-iroha	landscape	left-side	leftwardslevelloudlowlowermessage-boxmiddlemixnarroweronceportrait
right-side
rightwardssilentslowslowersmall-captionsoft	spell-out
status-barsupertext-bottomtext-topwiderx-fastx-highx-loudx-lowx-softyesZprezpre-wrapzpre-line)?attrZ	blacknessZblendZblendaZblurZ
brightnessZcalcr>   z	color-modZcontrastZcounterzcubic-bezierzdevice-cmykzdrop-shadowZellipser   Z	grayscaleZhslZhslar\   z
hue-rotateZhwbZimagera   rc   Z	lightnesszlinear-gradientZmatrixZmatrix3dr$   r(   Zpolygonzradial-gradientZrectzrepeating-linear-gradientzrepeating-radial-gradientrgbZrgbarotateZrotate3dZrotateXZrotateYZrotateZZsaturater   ZscaleZscale3dZscaleXZscaleYZscaleZZsepiaZshadeZskewXZskewYZstepsZtintZtoggle	translateZtranslate3dZ
translateXZ
translateYZ
translateZZ	whiteness)ZdegZgradZradZturn)ZHzZkHz)ZemexZchZremZvhZvwZvminZvmaxpxZmmcminZptZpcq)ZdpiZdpcmZdppx)sZmsc                   @   s  e Zd ZdZdZdgZdgZdgZedgde	fde
fd	ed
fdeeejfdeeejfdeeejfdeeedfdejfdefdejfdejfgd	edfdedfedgeddedfgde	fdedfdefde
jfeeejfdde d eee	edfdeee	edfde
fgde	feeejjfeddde d  eejed!fd"eejed!fee d#d$ej!fee"d#d$ej!fee#d#d$ej!feed#d$efd%e
jfde
fed&d'efd(efdejfdejfd)efdedfdedfgde	fedeeejfee d#d$ej!fee"d#d$ej!fee#d#d$ej!fdde d  eejed!fd"eejed!fde
fed&d*efd+efdejfdejfd,efd-edfgd.eejeejefd/eejeejefd0eejeej$efgd1e%j&fd2e%j'd3fd4e%j(d3fgee)d#d$ej*fd5ej*fe+dgd6
Z,d7S )8r   z+
    For CSS (Cascading Style Sheets).
    ZCSSZcssz*.cssztext/cssbasics\s+z/\*(?:.|\n)*?\*/\{r   z(\:{1,2})([\w-]+)z(\.)([\w-]+)z(\#)([\w-]+)z(@)([\w-]+)atrule[\w-]+z[~^*!%&$\[\]()<>|+=@:;,./?-]z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'	atcontent;#pop\}z#pop:2z^@.*?$(|z
)(\s*)(\:)value-startz([a-zA-Z_][\w-]*)(\s*)(\:)urlsz)(\()function-startz([a-zA-Z_][\w-]+)(\()\bsuffixz\!importantnumeric-valuesz[~^*!%&<>|+=@:./?-]+z
[\[\](),]+z[a-zA-Z_][\w-]*z[*+/-],z[a-zA-Z_-]\w*\)z(url)(\()(".*?")(\))z(url)(\()('.*?')(\))z(url)(\()(.*?)(\))z\#[a-zA-Z0-9]{1,6}z[+\-]?[0-9]*[.][0-9]+numeric-endz[+\-]?[0-9]+%)
rootr	  r  r  r   r  r  r  r  r  N)-__name__
__module____qualname____doc__namealiases	filenames	mimetypesr   r	   r
   r   r   r   	DecoratorClass	Namespacer   Tagr   r   DoubleSingleZPreprocr   _vendor_prefixesPseudojoin_css_propertiesBuiltin#_functional_notation_keyword_valuesFunction_keyword_valuesConstant_other_keyword_values_color_keywordsOtherr   HexFloatInteger
_all_unitsTyper   tokens r@  r@  5/usr/lib/python3/dist-packages/pygments/lexers/css.pyr     s   


	

r   [ \t]+z
[!$][\w-]+zurl\(
string-urlz[a-z_-][\w-]*(?=\())r   r/   r1   r2   r   r3   r4   r5   r   r6   r   r7   r8   r9   r:   r;   r<   r   r   r=   r>   r   r?   r@   rB   r   rD   r   rE   rF   rH   rG   r   rJ   rK   rM   rN   rO   r   rR   rS   rQ   rT   r   r   r   r   rV   rW   rX   r   rY   rZ   r[   r   r   r   r   r]   r   r`   r_   ra   rb   rc   rd   re   r   r   r   rg   rf   r   r   r   rh   ri   rj   r   rk   rl   rm   rn   ro   r   r   rp   r   r   r   rq   rr   r   rs   rt   ru   rv   rw   rx   ry   rz   r{   r   r}   r~   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zurlr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z\!(important|default)z(true|false)z(and|or|not)z/\*inline-comment//[^\n]*z\#[a-z0-9]{1,6}z(-?\d+)(\%|[a-z]+)?z(-?\d*\.\d+)(\%|[a-z]+)?#\{interpolationz[~^*!&%<>|+=@:,./?-]+z	[\[\]()]+"string-double'string-singlez[a-z_-][\w-]*r  r  valuez\:pseudo-classz\.classz\#idr  &z[~^*!&\[\]()<>|+=@:;,./?-]z(\\.|#(?=[^\n{])|[^\n"#])+z(\\.|#(?=[^\n{])|[^\n'#])+z(\\#|#(?=[^\n{])|[^\n#)])+r  z(from|to|through))
rL  rG  selectorrI  rK  rC  rM  rN  rO  forc                 c   s|   | d}| t|fV  ||_| |_t|dr`|jr`||j	r`||j	kr`|j
|j nd |_d |_	|j
d d S )Nr   block_stater   )groupr   r	   last_indentationrP   poshasattrrS  
startswithblock_indentationstackappend)lexermatchctxZindentationr@  r@  rA  _indentation  s    


r_  c                    s    fdd}|S )Nc                 3   sD   |  |dfV  t|dr*|j|_nd|_ |_| |_d S )Nr   rU   )r   rT  rW  rU  rY  rS  rP   rV  )r\  r]  r^  statetokenr@  rA  callback  s    

z_starts_block.<locals>.callbackr@  )rc  rb  rd  r@  ra  rA  _starts_block  s    re  c                   @   s  e Zd ZdZdZdgZdgZdgZej	ej
B Zdefdefgdeejd	d
fdeejdd
fdedfdedfdedfdeeejdfdeeejdfdedfdedfdejdfdejdfdeejedfdejdfdejdfedgdejfd ed
fgdejfd ed
fgd!efd"efd ed
fgd#ejfd$ejd%fd&edfedgd#ejfd$ejd%fd'edfgd(ejfd$ejd%fd)ed*fgd+Ze D ]\Z Z!e""e!ee < qed #d ed
f ed #d ed
f d,S )-r   z:
    For Sass stylesheets.

    .. versionadded:: 1.3
    ZSassZsassz*.sassztext/x-sassz[ \t]*\nz[ \t]*rE  single-commentr  z	/\*[^\n]*multi-comment@importimport@forrR  @(debug|warn|if|while)rL  (@mixin)( [\w-]+)(@include)( [\w-]+)@extendrQ  @[\w-]+z=[\w-]+z\+[\w-]+z&([!$][\w-]\w*)([ \t]*(?:(?:\|\|)?=|:)):old-style-attrz(?=.+?[=:]([^a-z]|$))new-style-attrz.+\nrB  z\S+[^\s:="\[]+rF  rG  z[ \t]*=z
[ \t]*[=:]z'(\\#|#(?=[^\n{])|\*(?=[^\n/])|[^\n#*])+\*/r  )r  r   rf  rg  ri  rq  rr  rD  N)$r   r!  r"  r#  r$  r%  r&  r'  re
IGNORECASE	MULTILINEflagsr	   r_  re  r
   r-  	Multiliner   r   r   r4  r(  Variabler   	Attributer   r   Interpolr?  common_sass_tokensitemsrT  commonrC   r[  r@  r@  r@  rA  r     sv   






>r   c                   @   sR  e Zd ZdZdZdgZdgZdgZej	ej
B Zdefdejfdejfd	ed
fdedfded
fdeeejd
fdeeejd
fdedfdeeed
fdedfdeejed
fedgdejfdejdfded
fedgdejfdejdfdedfgdZe D ]\ZZe  eee< qed
 !defde"dfg ed !defde"dfg dS ) r   z
    For SCSS stylesheets.
    ZSCSSZscssz*.scssztext/x-scssr
  z//.*?\nz	/\*.*?\*/rh  rL  rj  rR  rk  rl  rm  rn  rQ  z(@media)(\s+)ro  z(\$[\w-]*\w)([ \t]*:)rt  rF  rG  z[ \t]*:r  z!(\\#|#(?=[^{])|\*(?=[^/])|[^#*])+ru  )r  r   rD  rs  z[;{}]N)#r   r!  r"  r#  r$  r%  r&  r'  rv  rw  DOTALLry  r	   r
   r-  rz  r   r   r   r4  r(  r{  r   r   r|  r   r}  r?  r~  r  rT  r  rC   extendr   r@  r@  r@  rA  r   l  sD   

!r   c                   @   sD   e Zd ZdZdZdgZdgZdgZdej	fe
gdedfe
gd	Zd
S )r   zR
    For `LESS <http://lesscss.org/>`_ styleshets.

    .. versionadded:: 2.1
    ZLessCssZlessz*.lessztext/x-less-cssz@\w+r  z#push)r  r   N)r   r!  r"  r#  r$  r%  r&  r'  r   r{  r   r   r?  r@  r@  r@  rA  r     s   r   )=r#  rv  rC   Zpygments.lexerr   r   r   r   r   r   r   Zpygments.tokenr	   r
   r   r   r   r   r   r   __all__r.  r1  r5  r8  r7  r3  Z_angle_unitsZ_frequency_unitsZ_length_unitsZ_resolution_unitsZ_time_unitsr=  r   r{  r9  r4  r6  ZEntityr2  	Exceptionr/  ZWordrz  r-  r:  r<  r>  r;  r}  r,  r(  r)  r*  r+  r~  r_  re  r   r   r   r@  r@  r@  rA  <module>   s   
$(`8 
z




:















wR2