Ë
    !täiì˜  ã                   óð   — d 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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d„ Zd„ Z G d„ de«      Z G d„ de«      Zy)zô
    pygments.lexers.graphics
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for computer graphics and plotting related languages.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚwordsÚincludeÚbygroupsÚusingÚthisÚdefault)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚNumberÚPunctuationÚStringÚ
Whitespace)ÚGLShaderLexerÚPostScriptLexerÚAsymptoteLexerÚGnuplotLexerÚPovrayLexerÚHLSLShaderLexerc                   óè  — e Zd ZdZdZdgZg d¢ZdgZdZdZ	dd	e
j                  fd
e
j                  fde
j                  fdefdefdefdefdej"                  fdej"                  fdej$                  fdej&                  fdej(                  f eddd¬«      ef eddd¬«      ej.                  f eddd¬«      ej0                  f eddd¬«      ej2                  fdej6                  fdefdefdefgiZy) r   z%
    GLSL (OpenGL Shader) lexer.
    ÚGLSLÚglsl)z*.vertz*.fragz*.geoztext/x-glslsrcz"https://www.khronos.org/api/openglz1.1Úrootú#(?:.*\\\n)*.*$ú//.*$ú/(\\\n)?[*](.|\n)*?[*](\\\n)?/ú0\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?ú[?:]ú\bdefined\bz[;{}(),\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?z[+-]?\d+\.\d*([eE][-+]?\d+)?ú0[xX][0-9a-fA-F]*ú0[0-7]*ú[1-9][0-9]*))Ú	attributeÚconstÚuniformÚvaryingÚbufferÚsharedÚinÚoutÚlayoutÚflatÚsmoothÚnoperspectiveÚcentroidÚsampleÚpatchÚinoutÚlowpÚmediumpÚhighpÚ	precisionÚ	invariantÚpreciseÚcoherentÚvolatileÚrestrictÚreadonlyÚ	writeonlyÚbreakÚcontinueÚdoÚforÚwhileÚswitchÚcaser	   ÚifÚelseÚ
subroutineÚdiscardÚreturnÚstructú\b©ÚprefixÚsuffix©ÚtrueÚfalse)wÚvoidÚatomic_uintÚfloatÚvec2Úvec3Úvec4ÚdoubleÚdvec2Údvec3Údvec4ÚintÚivec2Úivec3Úivec4ÚuintÚuvec2Úuvec3Úuvec4ÚboolÚbvec2Úbvec3Úbvec4Úmat2Úmat3Úmat4Údmat2Údmat3Údmat4Úmat2x2Úmat2x3Úmat2x4Údmat2x2Údmat2x3Údmat2x4Úmat3x2Úmat3x3Úmat3x4Údmat3x2Údmat3x3Údmat3x4Úmat4x2Úmat4x3Úmat4x4Údmat4x2Údmat4x3Údmat4x4Ú	sampler1DÚ	sampler2DÚ	sampler3DÚsamplerCubeÚsampler1DArrayÚsampler2DArrayÚsamplerCubeArrayÚsampler2DRectÚsamplerBufferÚsampler2DMSÚsampler2DMSArrayÚsampler1DShadowÚsampler2DShadowÚsamplerCubeShadowÚsampler1DArrayShadowÚsampler2DArrayShadowÚsamplerCubeArrayShadowÚsampler2DRectShadowÚ
isampler1DÚ
isampler2DÚ
isampler3DÚisamplerCubeÚisampler1DArrayÚisampler2DArrayÚisamplerCubeArrayÚisampler2DRectÚisamplerBufferÚisampler2DMSÚisampler2DMSArrayÚ
usampler1DÚ
usampler2DÚ
usampler3DÚusamplerCubeÚusampler1DArrayÚusampler2DArrayÚusamplerCubeArrayÚusampler2DRectÚusamplerBufferÚusampler2DMSÚusampler2DMSArrayÚimage1DÚimage2DÚimage3DÚ	imageCubeÚimage1DArrayÚimage2DArrayÚimageCubeArrayÚimage2DRectÚimageBufferÚ	image2DMSÚimage2DMSArrayÚiimage1DÚiimage2DÚiimage3DÚ
iimageCubeÚiimage1DArrayÚiimage2DArrayÚiimageCubeArrayÚiimage2DRectÚiimageBufferÚ
iimage2DMSÚiimage2DMSArrayÚuimage1DÚuimage2DÚuimage3DÚ
uimageCubeÚuimage1DArrayÚuimage2DArrayÚuimageCubeArrayÚuimage2DRectÚuimageBufferÚ
uimage2DMSÚuimage2DMSArray)'ÚcommonÚ	partitionÚactiveÚasmÚclassÚunionÚenumÚtypedefÚtemplater   ÚresourceÚgotoÚinlineÚnoinlineÚpublicÚstaticÚexternÚexternalÚ	interfaceÚlongÚshortÚhalfÚfixedÚunsignedÚsuperpÚinputÚoutputÚhvec2Úhvec3Úhvec4Úfvec2Úfvec3Úfvec4Úsampler3DRectÚfilterÚsizeofÚcastÚ	namespacer   zgl_\w*ú[a-zA-Z_]\w*z\.ú\s+N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr   ÚPreprocÚSingleÚ	Multiliner   r   r   ÚFloatÚHexÚOctÚIntegerr   r   ÚConstantÚTypeÚReservedr   ÚBuiltinr   Útokens© ó    úg/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/graphics.pyr   r      s~  „ ñð €DØˆh€GÚ-€IØ!Ð"€IØ
.€CØ€Mð 	Ø §¡Ð1Ø�w—~‘~Ð&Ø.°×0AÑ0AÐBØ@Øðà�hÐØ˜XÐ&Ø˜kÐ*à,¨f¯l©lÐ;Ø,¨f¯l©lÐ;Ø! 6§:¡:Ð.Ø˜Ÿ™Ð$Ø˜VŸ^™^Ð,Ùð /ð0  Uô1,ð2 ð3ñ4 ð !ð  Uô,ð ×Ñð	ñ
 ð 11ðd  Uôe2,ðf �\‰\ðg3ñh ð 	&ð  Uô
,ð ×Ñðð ˜Ÿ™Ð%Ø˜dÐ#Ø�KÐ Ø�ZÐ ðes
ðu�Fr
  r   c                   óê  — e Zd ZdZdZdgZddgZdgZdZdZ	d	e
j                  fd
e
j                  fde
j                  fdefdefde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df eddd¬«      ef eddd¬«      ej0                  f eddd¬«      ej2                  f eddd¬«      ej4                  f eddd¬«      ej4                  f eddd¬«      ej8                  f ed dd¬«      ej:                  fd!ej:                  f ed"dd¬«      ej:                  fd#efd$e
j                  fd%efgded&fd'ej>                  fd(efd)efd*efgd+œZ y,)-r   z1
    HLSL (Microsoft Direct3D Shader) lexer.
    ÚHLSLÚhlslz*.hlslz*.hlsliztext/x-hlslzMhttps://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlslz2.3r   r   r   r    r!   r"   z[;{}(),.\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?f?z[+-]?\d+\.\d*([eE][-+]?\d+)?f?r#   r$   r%   Ú"Ústring)?rÏ   Úasm_fragmentrA   rG   Úcbufferr2   rÐ   Úcolumn_majorÚcompileÚcompile_fragmentr'   rB   r	   rK   rC   rI   ÚexportrÛ   rD   ÚfxgroupÚgloballycoherentÚgroupsharedrH   r,   r×   r5   rÝ   ÚlineÚlineadjÚlinearrð   Únointerpolationr1   ÚNULLr-   Ú
packoffsetÚpassÚpixelfragmentÚpointr;   rL   ÚregisterÚ	row_majorr3   Úsamplerr+   Ú
stateblockÚstateblock_staterÚ   rM   rF   ÚtbufferÚ	techniqueÚtechnique10Útechnique11ÚtexturerÓ   ÚtriangleÚtriangleadjr(   Úvertexfragmentr=   rE   rN   rO   rR   )ÚautoÚcatchÚcharÚ
const_castÚdeleteÚdynamic_castrÒ   ÚexplicitÚfriendrÖ   rÞ   ÚmutableÚnewÚoperatorÚprivateÚ	protectedrÙ   Úreinterpret_castrß   Úsignedrî   Ústatic_castrÔ   r   ÚthrowÚtryÚtypenamerÑ   râ   r   Úvirtual)6ÚdwordÚmatrixÚsnormr  Úunormrâ   rU   ÚvectorÚ
BlendStateÚBufferÚByteAddressBufferÚComputeShaderÚDepthStencilStateÚDepthStencilViewÚDomainShaderÚGeometryShaderÚ
HullShaderÚ
InputPatchÚ
LineStreamÚOutputPatchÚPixelShaderÚPointStreamÚRasterizerStateÚRenderTargetViewÚRasterizerOrderedBufferÚ"RasterizerOrderedByteAddressBufferÚ!RasterizerOrderedStructuredBufferÚRasterizerOrderedTexture1DÚRasterizerOrderedTexture1DArrayÚRasterizerOrderedTexture2DÚRasterizerOrderedTexture2DArrayÚRasterizerOrderedTexture3DÚRWBufferÚRWByteAddressBufferÚRWStructuredBufferÚRWTexture1DÚRWTexture1DArrayÚRWTexture2DÚRWTexture2DArrayÚRWTexture3DÚSamplerStateÚSamplerComparisonStateÚStructuredBufferÚ	Texture1DÚTexture1DArrayÚ	Texture2DÚTexture2DArrayÚTexture2DMSÚTexture2DMSArrayÚ	Texture3DÚTextureCubeÚTextureCubeArrayÚTriangleStreamÚVertexShader)rg   r[   rW   r_   rà   Ú
min16floatÚ
min10floatÚmin16intÚmin12intÚ	min16uintrc   z([1-4](x[1-4])?)?\b)§ÚabortÚabsÚacosÚallÚAllMemoryBarrierÚAllMemoryBarrierWithGroupSyncÚanyÚAppendStructuredBufferÚasdoubleÚasfloatÚasinÚasintÚasuintrˆ  ÚatanÚatan2ÚceilÚCheckAccessFullyMappedÚclampÚclipÚCompileShaderÚConsumeStructuredBufferÚcosÚcoshÚ	countbitsÚcrossÚD3DCOLORtoUBYTE4ÚddxÚ
ddx_coarseÚddx_fineÚddyÚ
ddy_coarseÚddy_fineÚdegreesÚdeterminantÚDeviceMemoryBarrierÚ DeviceMemoryBarrierWithGroupSyncÚdistanceÚdotÚdstÚerrorfÚEvaluateAttributeAtCentroidÚEvaluateAttributeAtSampleÚEvaluateAttributeSnappedÚexpÚexp2Úf16tof32Úf32tof16ÚfaceforwardÚfirstbithighÚfirstbitlowÚfloorÚfmaÚfmodÚfracÚfrexpÚfwidthÚGetRenderTargetSampleCountÚGetRenderTargetSamplePositionÚGlobalOrderedCountIncrementÚGroupMemoryBarrierÚGroupMemoryBarrierWithGroupSyncÚInterlockedAddÚInterlockedAndÚInterlockedCompareExchangeÚInterlockedCompareStoreÚInterlockedExchangeÚInterlockedMaxÚInterlockedMinÚInterlockedOrÚInterlockedXorÚisfiniteÚisinfÚisnanÚldexpÚlengthÚlerpÚlitÚlogÚlog10Úlog2ÚmadÚmaxÚminÚmodfÚmsad4ÚmulÚnoiseÚ	normalizeÚpowÚprintfÚProcess2DQuadTessFactorsAvgÚProcess2DQuadTessFactorsMaxÚProcess2DQuadTessFactorsMinÚProcessIsolineTessFactorsÚProcessQuadTessFactorsAvgÚProcessQuadTessFactorsMaxÚProcessQuadTessFactorsMinÚProcessTriTessFactorsAvgÚProcessTriTessFactorsMaxÚProcessTriTessFactorsMinÚQuadReadLaneAtÚ	QuadSwapXÚ	QuadSwapYÚradiansÚrcpÚreflectÚrefractÚreversebitsÚroundÚrsqrtÚsaturateÚsignÚsinÚsincosÚsinhÚ
smoothstepÚsqrtÚstepÚtanÚtanhÚtex1Drô  Ú	tex1DbiasÚ	tex1DgradÚtex1DlodÚ	tex1DprojÚtex2Drù  Ú	tex2DbiasÚ	tex2DgradÚtex2DlodÚ	tex2DprojÚtex3Drþ  Ú	tex3DbiasÚ	tex3DgradÚtex3DlodÚ	tex3DprojÚtexCUBEr  ÚtexCUBEbiasÚtexCUBEgradÚ
texCUBElodÚtexCUBEprojÚ	transposeÚtruncÚWaveAllBitAndÚ
WaveAllMaxÚ
WaveAllMinÚWaveAllBitOrÚWaveAllBitXorÚWaveAllEqualÚWaveAllProductÚ
WaveAllSumÚWaveAllTrueÚWaveAnyTrueÚ
WaveBallotÚWaveGetLaneCountÚWaveGetLaneIndexÚWaveGetOrderedIndexÚWaveIsHelperLaneÚWaveOnceÚWavePrefixProductÚWavePrefixSumÚWaveReadFirstLaneÚWaveReadLaneAt)ÚSV_ClipDistanceÚSV_ClipDistance0ÚSV_ClipDistance1ÚSV_CulldistanceÚSV_CullDistance0ÚSV_CullDistance1ÚSV_CoverageÚSV_DepthÚSV_DepthGreaterEqualÚSV_DepthLessEqualÚSV_DispatchThreadIDÚSV_DomainLocationÚ
SV_GroupIDÚSV_GroupIndexÚSV_GroupThreadIDÚSV_GSInstanceIDÚSV_InnerCoverageÚSV_InsideTessFactorÚSV_InstanceIDÚSV_IsFrontFaceÚSV_OutputControlPointIDÚSV_PositionÚSV_PrimitiveIDÚSV_RenderTargetArrayIndexÚSV_SampleIndexÚSV_StencilRefÚSV_TessFactorÚSV_VertexIDÚSV_ViewportArrayIndexz\bSV_Target[0-7]?\b)Úallow_uav_conditionÚbranchÚcallÚdomainÚearlydepthstencilÚfastoptÚflattenÚ	forcecaseÚinstanceÚloopÚmaxtessfactorÚ
numthreadsÚoutputcontrolpointsÚoutputtopologyÚpartitioningÚpatchconstantfuncÚunrollrñ   z\\$rò   ú#popzO\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})ú	[^\\"\n]+ú\\\nú\\)r   r  N)!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  Ú	Decoratorr   ÚEscaper  r	  r
  r  r   r   —   sP  „ ñð €DØˆh€GØ˜9Ð%€IØ�€IØ
Y€CØ€Mð   §¡Ð1Ø�w—~‘~Ð&Ø.°×0AÑ0AÐBØ@Øðà�hÐØ˜XÐ&Ø˜{Ð+à.°·±Ð=Ø.°·±Ð=Ø! 6§:¡:Ð.Ø˜Ÿ™Ð$Ø˜VŸ^™^Ð,Ø�6˜8Ð$Ùð ?ð  Uô,ð ðñ Ð#¨E¸%Ô@Ø×Ñðáð 6ð  Uô,ð ×Ñðñ ð Rð"  Uô#,ð$ �\‰\ð%ñ& ð :ð Ð%;ô=ð �\‰\ð	ñ
 ð '"ðP  UôQ(,ðR �\‰\ðS)ñT ð 
)ð  Uô,ð �^‰^ðð $ T§^¡^Ð4Ùð .ð
  Uô,ð �^‰^ðð ˜dÐ#Ø�W—_‘_Ð%Ø�ZÐ ðCB
ðH �6˜6Ð"ð<Ø=C¿]¹]ðLà˜6Ð"Ø�fÐØ�FˆOð
ñIL�Fr
  r   c                   ód  — 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e
› d�Zde
› d�Ze› de› �Zdej                  fdej                   fdej"                  fdej$                  fdedfdefdez   ej,                  fdez   ej.                  fdez   ej0                  fdez   ej2                  fde› �ej6                  feej8                  fdez   ej<                  fdez   ej>                  f e de¬«      ejB                  fd e"fgd!efd"ejF                  d#fded$fd%ed&fgd'ejF                  d&f e$d&«      gd(œZ%y))*r   z%
    Lexer for PostScript files.
    Ú
PostScriptz(https://en.wikipedia.org/wiki/PostScriptÚ
postscriptÚpostscrz*.psz*.epszapplication/postscriptz1.4z()<>\[\]{}/%\sz(?=[z])z[^Ú]Ú+z^%!.+$z%%.*$z(^%.*\n){2,}z%.*$z\(Ústringliteralz
[{}<>\[\]]z<[0-9A-Fa-f]+>zG[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?z?(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?z(\-|\+)?[0-9]+z\/z(false|true)z6(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?))lr}  ÚaddÚaloadÚarcÚarcnÚarrayr‰  ÚbeginÚbindÚceilingÚcharpathrŽ  Ú	closepathÚconcatÚconcatmatrixÚcopyr‘  ÚcurrentlinewidthÚcurrentmatrixÚcurrentpointÚcurvetoÚcviÚcvsÚdefÚdefaultmatrixÚdictÚdictstackoverflowÚdivÚ
dtransformÚdupÚendÚexchÚexecÚexitr§  ÚfillÚfindfontr®  ÚgetÚgetintervalÚgrestoreÚgsaveÚgtÚidentmatrixÚidivÚidtransformÚindexÚinvertmatrixÚ
itransformrÆ  ÚlinetoÚlnÚloadrÉ  rD  rE  ÚmodÚmovetorÑ  ÚnegÚnewpathÚ
pathforallÚpathbboxÚpopÚprintÚpstackÚputÚquitÚrandÚ
rangecheckÚrcurvetoÚrepeatÚrestoreÚrlinetoÚrmovetoÚrollÚrotaterè  ÚrunÚsaveÚscaleÚ	scalefontÚsetdashÚsetfontÚsetgrayÚ
setlinecapÚsetlinejoinÚsetlinewidthÚ	setmatrixÚsetrgbcolorÚshfillÚshowÚshowpagerì  rð  ÚstackÚstringwidthÚstrokeÚ
strokepathÚsubÚsyntaxerrorÚ	transformÚ	translateÚtruncateÚ	typecheckÚ	undefinedÚundefinedfilenameÚundefinedresult©rQ   rò   z[^()\\]+rO  Úescapeú#pushú\)rL  z[0-8]{3}|n|r|t|b|f|\\|\(|\))r   rX  r¸  N)&ró   rô   rõ   rö   r÷   rû   rø   rù   rú   rü   Ú	delimiterÚdelimiter_endÚvalid_name_charsÚ
valid_namer   rý   ÚSpecialrÿ   rþ   r   r   r   r  r  r   r  r   ÚVariableÚFunctionr   r  r  r   r  r   rQ  r	   r  r	  r
  r  r   r   1  sã  „ ñð €DØ
4€CØ˜YÐ'€GØ˜Ð!€IØ)Ð*€IØ€Mà!€IØ˜I˜; bÐ)€Mà˜Y˜K qÐ)ÐØ%Ð& a¨ Ð7€Jð
 ˜Ÿ™Ð(Ø�w—‘Ð'Ø˜g×/Ñ/Ð0Ø�g—n‘nÐ%ð �F˜OÐ,à˜KÐ(ð  Ñ.°·
±
Ð;ðØ!.ñ/Ø06·
±
ð<àOØñØ$Ÿl™lð,à Ñ.°·±Ð?ð �:�,Ð §¡Ð/ð ˜Ÿ™Ð'ð ˜}Ñ,¨g×.>Ñ.>Ð?ð GØñØ%×.Ñ.ð0ñ ð 8ð$ ANô%Oð& �\‰\ð'ð* �ZÐ ðw<
ð~ ˜&Ð!Ø�F—M‘M 8Ð,Ø�F˜GÐ$Ø�F˜FÐ#ð	
ð ,¨V¯]©]¸FÐCÙ�F‹Oð
ñMJ�Fr
  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	Z
d
efdefd eee«      fdefdefgdefded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e ee«      e«      fdefdej4                  fdej4                  fdej8                  fdefg ed«      d e
z   d!z    e ee«      ej<                   ee«       ee«      e«      d"fd e
z   d#z    e ee«      ej<                   ee«       ee«      e«      f ed$«      g ed«       ed%«      d&efd'ed(fg ed«       ed%«      d'efd)ed*fd+ed(fgded(fd,ej@                  fd
efd-efd.efd/efd0efgd1œZ!d2„ Z"y3)4r   z$
    For Asymptote source code.
    Ú	Asymptotezhttp://asymptote.sf.net/Ú	asymptoteÚasyz*.asyztext/x-asymptotez1.2z(?:\s|//.*?\n|/\*.*?\*/)+ú\nrò   ú(\\)(\n)z//(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/ú"(\\\\|\\[^\\]|[^"\\])*"Ú'r  z%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z0x[0-9a-fA-F]+[Ll]?z0[0-7]+[Ll]?z\d+[Ll]?z[~!%^&*+=|?:<>/-]z
[()\[\],.]z\b(case)(.+?)(:)zã(and|controls|tension|atleast|curl|if|else|while|for|do|return|break|continue|struct|typedef|new|access|import|unravel|from|include|quote|static|public|private|restricted|this|explicit|true|false|null|cycle|newframe|operator)\ba?  (Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|light|line|linefit|marginT|marker|mass|object|pair|parabola|path|path3|pen|picture|point|position|projection|real|revolution|scaleT|scientific|segment|side|slice|splitface|string|surface|tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|transformation|tree|triangle|trilinear|triple|vector|vertex|void)(?=\s+[a-zA-Z])zÜ(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|picture|position|real|revolution|slice|splitface|ticksgridT|tickvalues|tree|triple|vertex|void)\bz[a-zA-Z_]\w*:(?!:)rñ   Ú
whitespacez6((?:[\w*\s])+?(?:\s|\*))([a-zA-Z_]\w*)(\s*\([^;]*?\))(z)(\{)Úfunctionz)(;)Ú	statementÚ
statementsz[{}]Ú;rL  z\{r¹  z\}z0\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})ú	[^\\'\n]+rN  z\\nrO  )rÊ  rÍ  r   rÌ  rË  r  c              #   óÚ   K  — ddl m}m} t        j                  | |«      D ]F  \  }}}|t
        u r||v rt
        j                  }n|t
        u r||v rt
        j                  }|||f–— ŒH y ­w)Nr   )ÚASYFUNCNAMEÚ
ASYVARNAME)Úpygments.lexers._asy_builtinsrÑ  rÒ  r   Úget_tokens_unprocessedr   rÁ  rÀ  )ÚselfÚtextrÑ  rÒ  r�  ÚtokenÚvalues          r  rÔ  z%AsymptoteLexer.get_tokens_unprocessedù  sd   è ø€ ßIä×1Ñ1°$¸Ö=ñ  ˆE�5˜%àœ‰} ¨+Ñ!5ÜŸ™‘Øœ$‘ 5¨JÑ#6ÜŸ™�Ø˜ Ð%Ó%ñ >ùs   ‚A)A+N)#ró   rô   rõ   rö   r÷   rû   rø   rù   rú   rü   Ú_wsr   r   r
   r   r   r   r   r  r  r  r   r   r   r   r   r  r   ÚLabelr   rÁ  r	   rQ  r  rÔ  r	  r
  r  r   r   �  sŠ  „ ñð €DØ
$€CØ˜EÐ"€GØ�	€IØ#Ð$€IØ€Mð '€Cð �JÐØ�ZÐ Ø™( 4¨Ó4Ð5Ø&¨Ð0Ø,¨gÐ6ð
ð )¨&Ð1à�6˜8Ð$Ø5°v·|±|ÐDØ-¨v¯|©|Ð<Ø# V§Z¡ZÐ0Ø˜fŸj™jÐ)Ø˜&Ÿ.™.Ð)Ø! 8Ð,Ø˜KÐ(Ø ¡(¨7±E¸$³KÀÓ"FÐGðIð KRðSð	,ð .5¯\©\ð	;ð6ð 8?·|±|ðEð # D§J¡JÐ/Ø˜dÐ#ðO(
ñT �LÓ!ðð ñð #ñ#ñ ‘e˜D“k 4§=¡=±%¸³+¹uÀT»{Ø!ó#àððð ñð "ñ"ñ ‘e˜D“k 4§=¡=±%¸³+¹uÀT»{Ø!ó#ð	$ñ �KÓ ð#
ñ( �LÓ!Ù�LÓ!Ø�[Ð!Ø�+˜vÐ&ð	
ñ �LÓ!Ù�LÓ!Ø�+ÐØ�K Ð)Ø�K Ð(ð
ð �6˜6Ð"Ø@À&Ç-Á-ÐPØ�FˆOØ˜6Ð"Ø�fÐØ�VÐØ�FˆOð
ñcZ€Fóx&r
  r   c                 ó†   ‡ ‡— ‰ j                  d«      Šdj                  ˆˆ fd„t        t        ‰ «      ‰d«      D «       «      S )NÚ$Ú|c              3   ó@   •K  — | ]  }‰d ‰ ‰‰dz   | z   dz   –— Œ y ­w)Né   rN   r	  )Ú.0ÚiÚdposÚwords     €€r  Ú	<genexpr>z_shortened.<locals>.<genexpr>  s3   øè ø€ ð 9Ù7˜ð ˜˜$�K $ t¨A¡v¨a .Ñ0°5Õ8Ù7ùs   ƒéÿÿÿÿ)ÚfindÚjoinÚrangeÚlen)rã  râ  s   `@r  Ú
_shortenedrê    s;   ù€ Ø�9‰9�S‹>€DØ�8‰8ô 9Ü"¤3 t£9¨d°BÔ7ó9ó 9ð 9r
  c                  ó@   — dj                  t        t        | «      «      S )NrÝ  )rç  Úmaprê  )r   s    r  Ú_shortened_manyrí  
  s   € Ø�8‰8”Cœ
 EÓ*Ó+Ð+r
  c                   ó*  — e Zd ZdZdZdZdgZddgZdgZdZ	 e
d	«       ed
«      edf edd«      edf ed«      edfd eeee«      dfdef ed«      edf eddd«      edf ed«      edf ed«      edf edd«      ed f ed!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1«      ed2f ed+d,d-d.d/d3«      ed4fd5 eej$                  ee«      d2fd6 eej*                  eeeeee«      d2fd7ej,                  fd8efgd9efd:efd;ef ed<«      gd=ed>fd?efg e
d	«      d8ed<fd@ed<fgdAed<fdBej4                  fdCefd:efd;efd@ed<fgdDefdEed<fdFefd:efd;efd@ed<fg e
d4«      dAedGfdEedHfdIej8                  fdJej8                  fdKej:                  fdLefdMefdNej<                  fdO eej*                  ee«      fdPefd7ej,                  fdQ eee«      fg e
d	«       edRŽ ej>                  d<fgdSed<f edT«      ej>                  f e
d2«      gdUef e
d4«      gdVej>                  f e
d«      gdWed<f e
d2«      gdXej>                  f edY«      ej>                  f e
d2«      g edZd[d\d]d^d_d`dadbdcddde«      ej>                  f e
d2«      g edfdgdhdi«      ej>                  f e
d2«      gdjœZ yk)lr   z'
    For Gnuplot plotting scripts.
    ÚGnuplotzhttp://gnuplot.info/Úgnuplotz*.plotz*.pltztext/x-gnuplotú0.11rÊ  zbi$ndr_  zex$itzq$uitr‘  zf$itÚfitz(if)(\s*)(\()rH   zelse\bzpa$useÚpauseúp$lotzrep$lotzsp$lotÚplotzsa$verœ  zse$t)ÚgenericargsÚ	optionargzsh$owzuns$et)Únoargsr÷  zlow$erzra$isezca$llzcd$zcl$earzh$elpz\?$zhi$storyzl$oadúpr$intzpwd$zre$readzres$etzscr$eendumpzshe$llzsy$stemzup$daterö  ztest$rø  z([a-zA-Z_]\w*)(\s*)(=)z(([a-zA-Z_]\w*)(\s*)(\()(.*?)(\))(\s*)(=)z@[a-zA-Z_]\w*rÎ  z[^\\\n]+rN  rO  rL  Ú#Úcommentz
[ \t\v\f]+rÆ  r  z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})rM  z''rÉ  rÏ  ÚdqstringÚsqstringz (\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+z(\d+\.\d*|\.\d+)z-?\d+z[,.~!%^&*+=|?:<>/-]z
[{}()\[\]]z	(eq|ne)\bz([a-zA-Z_]\w*)(\s*)(\()rñ   rÇ  )–za$llzan$gleszar$rowz
au$toscalezb$arszbor$derz	box$widthzcl$abelzc$lipz
cn$trparamzco$ntourzda$taz	data$filezdg$rid3dzdu$mmyz	enc$odingzdec$imalsignzfit$z	font$pathzfo$rmatz	fu$nctionz
fu$nctionszg$ridz	hid$den3dzhis$torysizezis$osampleszk$eyz	keyt$itlezla$belz
li$nestylezls$z	loa$dpathzloc$alez	log$scalezmac$roszmap$pingz
map$ping3dzmar$ginzlmar$ginzrmar$ginztmar$ginzbmar$ginzmo$usez
multi$plotzmxt$icsz	nomxt$icszmx2t$icsz
nomx2t$icszmyt$icsz	nomyt$icszmy2t$icsz
nomy2t$icszmzt$icsz	nomzt$icszmcbt$icsz
nomcbt$icszof$fsetszor$iginzo$utputzpa$rametriczpm$3dzpal$ettez	colorb$oxrô  z
poi$ntsizezpol$arrù  zobj$ectzsa$mpleszsi$zezst$ylezsu$rfaceztable$ú	t$erminalztermo$ptionszti$csz	ticsc$alez
ticsl$evelztimef$mtz
tim$estampztit$leú
v$ariableszve$rsionzvi$ewzxyp$lanezxda$tazx2da$tazyda$tazy2da$tazzda$tazcbda$tazxl$abelzx2l$abelzyl$abelzy2l$abelzzl$abelzcbl$abelzxti$csznoxti$cszx2ti$csz	nox2ti$cszyti$csznoyti$cszy2ti$csz	noy2ti$cszzti$csznozti$cszcbti$csz	nocbti$cszxdti$csz	noxdti$cszx2dti$csz
nox2dti$cszydti$csz	noydti$cszy2dti$csz
noy2dti$cszzdti$csz	nozdti$cszcbdti$csz
nocbdti$cszxmti$csz	noxmti$cszx2mti$csz
nox2mti$cszymti$csz	noymti$cszy2mti$csz
noy2mti$cszzmti$csz	nozmti$cszcbmti$csz
nocbmti$cszxr$angezx2r$angezyr$angezy2r$angezzr$angezcbr$angezrr$angeztr$angezur$angezvr$angez
xzeroa$xiszx2zeroa$xisz
yzeroa$xiszy2zeroa$xisz
zzeroa$xisz	zeroa$xiszz$eroÚ!zall$windowsz	gnuplot\bzvia\brº  z%(mouse|any|button1|button2|button3)\bz	key$presszax$eszaxi$szbin$aryzev$eryzi$ndexzmat$rixzs$moothzthru$zt$itleznot$itlezu$singzw$ithz
f$unctionszs$etrþ  rÿ  )r   rû  rÊ  rø  rü  rý  rö  r÷  r_  r‘  rò  rH   ró  rõ  rœ  N)!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   rQ  r   r   r  ÚWordr  r  r	  r
  r  r   r     sF  „ ñð €DØ
 €CØˆk€GØ˜7Ð#€IØ!Ð"€IØ€Mñ �LÓ!Ù˜Ó  '¨6Ð2Ù˜W gÓ.°¸Ð@Ù˜Ó ¨%Ð0Ø™x¨°°{ÓCÀTÐJØ˜Ð Ù˜Ó! 7¨GÐ4Ù˜W i°Ó:¸GÀVÐLÙ˜Ó  '¨6Ð2Ù˜Ó Ð*FÐGÙ˜W hÓ/ØÐ-ð/á˜X x°¸%ÀØ$ f¨j¸'À8Ø# Y°¸-Ø% y°)ó=ð �mð	%ñ
 ˜V Y°¸-Ø% wó0à�hð ð 'Ù�d—m‘m Z°Ó:¸MðKà8Ù�d—m‘m Z°Ø˜K¨°Xó?Ø@MðOð ˜tŸ}™}Ð-Ø�7ˆOð7
ð< ˜'Ð"Ø�gÐØ�GÐá�F‹Oð
ð �'˜9Ð%Ø˜JÐ'ð
ñ
 �LÓ!à�; Ð'Ø�J Ð'ð	
ð �6˜6Ð"Ø?ÀÇÁÐOØ˜6Ð"Ø�fÐØ�FˆOØ�J Ð'ð
ð �FˆOØ�6˜6Ð"Ø˜6Ð"Ø�fÐØ�FˆOØ�J Ð'ð
ñ �HÓØ�6˜:Ð&Ø�6˜:Ð&Ø0°&·,±,Ð?Ø  &§,¡,Ð/Ø�v—~‘~Ð&Ø" HÐ-Ø˜KÐ(Ø˜8Ÿ=™=Ð)Ø'Ù�d—m‘m T¨;Ó7ð9à˜dÐ#Ø˜tŸ}™}Ð-Ø™( 4¨Ó4Ð5ð
ñ" �LÓ!Ùñ 4ð8 6:·\±\À6ð9Kð
ðB �'˜6Ð"Ù˜Ó&¨¯©Ð5Ù�MÓ"ð
ð ˜7Ð#Ù�HÓð
ð
 �t—|‘|Ð$Ù�F‹Oð
ð
 �K Ð(Ù�MÓ"ð
ð
 6°t·|±|ÐDÙ˜Ó$ d§l¡lÐ3Ù�MÓ"ð
ñ ˜W g¨y¸(ÀHØ&¨	°7¸HØ'¨°7ó<ð �\‰\ðñ �MÓ"ð
ñ ˜\¨6°;ÀÓMØ�\‰\ðá�MÓ"ð
ñYQ�Fr
  r   c                   óz  — e Zd ZdZdZdZdgZddgZdgZdZ	d	d
e
j                  fde
j                  fdej                  f eddd¬«      e
j                   f eddd¬«      ef edd¬«      ej&                  fdej&                  j(                  fdefdej,                  fdej.                  fdefdefdefdefgiZd„ Zy)r   z4
    For Persistence of Vision Raytracer files.
    ÚPOVRayzhttp://www.povray.org/Úpovz*.povz*.incztext/x-povrayrñ  r   z/\*[\w\W]*?\*/r   z(?s)"(?:\\.|[^"\\])+")rA   rG   ÚdebugÚdeclarer	   ÚdefinerI   Úelseifrs  ÚerrorÚfcloseÚfopenrD   rH   ÚifdefÚifndefr   ÚlocalÚmacrorè  ÚreadÚrenderÚ
statisticsrF   ÚundefÚversionÚwarningrE   Úwriterú  rN   rO   (9  Úaa_levelÚaa_thresholdr}  r~  ÚacoshÚadaptiveÚadc_bailoutÚagateÚ
agate_turbr  ÚalphaÚambientÚambient_lightÚangleÚapertureÚ	arc_angleÚ
area_lightÚascr†  ÚasinhÚassumed_gammar‰  rŠ  ÚatanhÚ
atmosphereÚatmospheric_attenuationÚattenuatingÚaverageÚ
backgroundÚ
black_holeÚblueÚblur_samplesÚ
bounded_byÚbox_mappingÚbozorA   ÚbrickÚ
brick_sizeÚ
brightnessÚ
brillianceÚbumpsÚbumpy1Úbumpy2Úbumpy3Úbump_mapÚ	bump_sizerG   Úcausticsr‹  ÚcheckerÚchrÚ
clipped_byÚclockÚcolorÚ	color_mapÚcolourÚ
colour_mapÚ	componentÚ	compositerc  Ú
confidenceÚconic_sweepÚconstantÚcontrol0Úcontrol1r‘  r’  ÚcountÚcrackleÚcrandÚcubeÚcubic_splineÚcylindrical_mappingr  r  r	   rœ  ÚdentsÚdiffuseÚ	directionr   Údistance_maximumrp  ÚdustÚ	dust_typeÚeccentricityrI   Úemittingrs  r	  Úerror_boundr§  ÚexponentÚfade_distanceÚ
fade_powerÚfalloffÚfalloff_anglerT   Úfile_existsrí   ÚfinishÚfisheyeÚflatnessÚflipr®  Úfocal_pointÚfogÚfog_altÚ
fog_offsetÚfog_typeÚ	frequencyÚgifÚglobal_settingsÚglowingÚgradientÚgraniteÚgray_thresholdÚgreenÚhaloÚhexagonÚ
hf_gray_16Ú	hierarchyÚhollowÚhypercomplexrH   r  ÚiffÚ	image_mapÚ	incidencer   r_   ÚinterpolateÚinverseÚiorÚiridÚirid_wavelengthÚjitterÚlambdaÚleopardr  Úlinear_splineÚlinear_sweepÚlocationrÉ  Ú
looks_likeÚlook_atÚlow_error_factorÚmandelÚmap_typeÚmarbleÚmaterial_maprE  rÍ  Úmax_intersectionsÚmax_iterationÚmax_trace_levelÚ	max_valueÚmetallicrÎ  Úminimum_reuser‡  ÚmortarÚnearest_countÚnoÚnormalÚ
normal_mapÚ	no_shadowÚnumber_of_wavesÚoctavesÚoffÚoffsetÚomegaÚomnimaxÚonÚonceÚonionÚopenÚorthographicÚ	panoramicÚpattern1Úpattern2Úpattern3ÚperspectiveÚpgmÚphaseÚphongÚ
phong_sizeÚpiÚpigmentÚpigment_mapÚplanar_mappingÚpngÚpoint_atÚpotrÔ  Úppmr9   ÚpwrÚquadratic_splineÚ
quaternionÚquick_colorÚquick_colourÚquiltedÚradialrã  Ú	radiosityÚradiusÚrainbowÚ	ramp_waver’  rè  Ú
reciprocalÚrecursion_limitÚredÚ
reflectionÚ
refractionr  r•  ÚrgbÚrgbfÚrgbftÚrgbtÚrightÚripplesrš  Ú	roughnessÚsamplesr�  Úscallop_waveÚ
scatteringÚseedÚ
shadowlessrì  Ú	sine_waverî  ÚskyÚ
sky_sphereÚsliceÚ	slope_mapr0   ÚspecularÚspherical_mappingÚspiralÚspiral1Úspiral2Ú	spotlightÚspottedÚsqrrð  r  ÚstrÚstrcmpÚstrengthÚstrlenÚstrlwrÚstruprÚsturmÚsubstrrF   ÚsysÚtrò  ró  Útest_camera_1Útest_camera_2Útest_camera_3Útest_camera_4r,  Útexture_mapÚtgaÚ	thicknessÚ	thresholdÚ	tightnessÚtile2ÚtilesÚtrackr°  r±  ÚtransmitÚtriangle_waverS   ÚttfÚ
turbulenceÚ
turb_depthÚtypeÚultra_wide_angleÚupÚ	use_colorÚ
use_colourÚ	use_indexÚu_stepsÚvalÚvarianceÚvaxis_rotateÚvcrossÚvdotr  ÚvlengthÚ
vnormalizeÚvolume_objectÚvolume_renderedÚvol_with_lightÚvrotateÚv_stepsr  ÚwarpÚwater_levelÚwavesrE   ÚwidthÚwoodÚwrinklesÚyes)Úbicubic_patchÚblobÚboxÚcameraÚconeÚcubicÚcylinderÚ
differenceÚdiscÚheight_fieldÚintersectionÚjulia_fractalÚlatheÚlight_sourceÚmergeÚmeshÚobjectÚplaneÚpolyÚpolygonÚprismÚquadricÚquarticÚsmooth_triangleÚsorÚsphereÚsuperellipsoidrÖ  Útorusr-  rÑ   r·  z\b(x|y|z|u|v)\brñ   z[0-9]*\.[0-9]+z[0-9]+z[\[\](){}<>;,]z[-+*/=.|&]|<=|>=|!=rÈ  rò   c                 óR   — d}d| v r|dz  }d| v r|dz  }d| v r|dz  }d| v r|dz  }|S )at  POVRAY is similar to JSON/C, but the combination of camera and
        light_source is probably not very likely elsewhere. HLSL or GLSL
        are similar (GLSL even has #version), but they miss #declare, and
        light_source/camera are not keywords anywhere else -- it's fair
        to assume though that any POVRAY scene must have a camera and
        lightsource.r   z#versiongš™™™™™©?z#declarer  r"  gš™™™™™¹?r	  )rÖ  Úresults     r  Úanalyse_textzPovrayLexer.analyse_text	  sR   € ð ˆØ˜ÑØ�d‰NˆFØ˜ÑØ�d‰NˆFØ�tÑØ�d‰NˆFØ˜TÑ!Ø�c‰MˆFàˆr
  N)ró   rô   rõ   rö   r÷   rû   rø   rù   rú   rü   r   rÿ   rþ   r   ÚDoubler   rý   r   r   r  ÚPseudor   r   r  r   r   r   r  r3  r	  r
  r  r   r   ®  s1  „ ñð €DØ
"€CØˆg€GØ˜'Ð"€IØ Ð!€IØ€Mð 	Ø × 1Ñ 1Ð2Ø�w—~‘~Ð&Ø% v§}¡}Ð5Ùð ð
 "&¨eô5ð �_‰_ðñ ð 0+ð` 49Àôa0Hðb ðc1ñd ð 6ð
 ?DôEð �\‰\ðð   §¡×!4Ñ!4Ð5Ø˜dÐ#Ø §¡Ð-Ø˜Ÿ™Ð'Ø Ð,Ø# XÐ.Ø(¨&Ð1Ø�ZÐ ðWL
ðN€Fó`r
  r   N)rö   Úpygments.lexerr   r   r   r   r   r   r	   Úpygments.tokenr
   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r   rê  rí  r   r   r	  r
  r  Ú<module>r9     s’   ðñ÷÷ ñ ÷,÷ ,õ ,ò-€ô@�Jô @ôFW�jô Wôt[�jô [ô|r&�Zô r&òj9ò,ô]�:ô ]ô@l�*õ lr
  