Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 0øªj©³ã @sì dZddlmZddlmZddlmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZdZeƒZeƒZeƒZ iZ!�d6d d „Z"�d7d d „Z#e"ƒe edd„ƒƒƒZ$e"dƒe"dƒe"dƒe"dƒe"dƒe"ddd�e"dƒedd„ƒƒƒƒƒƒƒƒZ%e"ƒedd„ƒƒZ&e"ƒedd„ƒƒZ'e"ƒedd „ƒƒZ(e"d!ƒed"d!„ƒƒZ)e"d#dd$�e ed%d&„ƒƒƒZ*e"d'dd$�ed(d)„ƒƒZ+e"ƒd*d+„ƒZ,e"ƒe d,d-„ƒƒZ-e"ƒe d.d/„ƒƒZ.e"ƒe d0d1„ƒƒZ/e"ƒe d2d3„ƒƒZ0e"d4ƒe"d5ƒe ed6d7„ƒƒƒƒZ1e"ƒd8d9„ƒZ2e"d:ƒe"d;ƒe"d<ƒe"d=ƒd>d?„ƒƒƒƒZ3e"d@ƒe"dAƒe"dBƒe"dCƒe"dDdd�edEdF„ƒƒƒƒƒƒZ4e"dGƒe"dHƒedIdJ„ƒƒƒZ5e"ƒedKdL„ƒƒZ6e"ƒedMdN„ƒƒZ7e"ƒedOdP„ƒƒZ8e"dQdd�edRdS„ƒƒZ9e"dd�edTdU„ƒƒZ:e"dd�edVdW„ƒƒZ;e"dd�edXdY„ƒƒZe"dbƒedcdd„ƒƒZ?e"deƒe"dfƒe"dgƒe"dhƒe"didd�e"djƒedkdl„ƒƒƒƒƒƒƒZ@e"dd�edmdn„ƒƒZAe"dd�edodp„ƒƒZBe"ƒedqdr„ƒƒZCe"ƒedsdt„ƒƒZDe"ƒedudv„ƒƒZEe"ƒedwdx„ƒƒZFe"dddy�dzd{„ƒZGe"ƒd|d}„ƒZHe"ƒd~d„ƒZIe"ƒd€d�„ƒZJd‚dƒ„ZKe"d„ƒe"d…ƒe"d†ƒe"d‡ƒe"dˆƒe"d‰ƒe"dŠƒe"d‹ƒedŒd�„ƒƒƒƒƒƒƒƒƒZLe"dŽƒe"d�ƒed�d‘„ƒƒƒZMe"dd�ed’d“„ƒƒZNe"dd�ed”d•„ƒƒZOe"ƒed–d—„ƒƒZPe"ƒd˜d™„ƒZQe"dšƒed›dœ„ƒƒZRe"ƒe d�dž„ƒƒZSe"ƒedŸd „ƒƒZTe"ƒed¡d¢„ƒƒZUe"ƒd£d¤„ƒZVe"ƒed¥d¦„ƒƒZWe"ƒed§d¨„ƒƒZXe"ƒd©dª„ƒZYe"ƒd«d¬„ƒZZe"ƒed­d®„ƒƒZ[e"ƒd¯d°„ƒZ\e"ƒed±d²„ƒƒZ]e"ƒed³d´„ƒƒZ^e"ƒedµd¶„ƒƒZ_e"ƒed·d¸„ƒƒZ`e"ƒed¹dº„ƒƒZae"dd�ed»d¼„ƒƒZbe"d½ƒe"d¾ƒed¿dÀ„ƒƒƒZce"ƒedÁd„ƒƒZde"ƒedÃdÄ„ƒƒZee"ƒedÅdÆ„ƒƒZfe"dǃe"dȃedÉdÊ„ƒƒƒZge"d˃e"d̃e"d̓e"d΃edÏdЄƒƒƒƒƒZhe"dуe"dÒƒedÓdÔ„ƒƒƒZie"ƒedÕdÖ„ƒƒZje"ƒed×dØ„ƒƒZke"dÙƒe"dÚƒedÛdÜ„ƒƒƒZle"dd�edÝdÞ„ƒƒZme"ƒedßdà„ƒƒZne"ƒedád℃ƒZoe"ƒedãd䄃ƒZpe"ƒdåd愃Zqe"ƒedçd脃ƒZre"ƒedédꄃƒZse"ƒedëd섃ƒZte"ƒdídZue"ƒedïdð„ƒƒZve"ƒedñdò„ƒƒZwe"ƒedódô„ƒƒZxe"ƒedõdö„ƒƒZye"ƒed÷dø„ƒƒZze"ƒedùdú„ƒƒZ{e"ƒedûdü„ƒƒZ|e"ƒedýdþ„ƒƒZ}e"ƒedÿ�d„ƒƒZ~e"�dƒe"�dƒe�d�d„ƒƒƒZe"ƒe�d�d„ƒƒZ€e"ƒe�d�d„ƒƒZ�e"ƒe�d �d „ƒƒZ‚e"ƒe�d �d „ƒƒZƒe"ƒe�d �d„ƒƒZ„e"ƒe�d�d„ƒƒZ…e"dd�e�d�d„ƒƒZ†e"dd��d�d„ƒZ‡e"d�d�e�d�d„ƒƒZˆe"dd�d�e�d�d„ƒƒZ‰e"ƒe�d�d„ƒƒZŠe"dd�e�d�d„ƒƒZ‹e"dd�e�d�d „ƒƒZŒe"dd�e�d!�d"„ƒƒZ�e"dd��d#�d$„ƒZŽe"d�d�e�d%�d&„ƒƒZ�e"dd�d'��d(�d)„ƒZ�e"dd�e�d*�d+„ƒƒZ‘e"dd�e�d,�d-„ƒƒZ’e"dd�e�d.�d/„ƒƒZ“e"dd�e�d0�d1„ƒƒZ”e"dd�d'�e �d2�d3„ƒƒZ•e"ƒ�d4�d5„ƒZ–dS(8z¸ weasyprint.css.validation.properties ------------------------------------ Validate properties. See http://www.w3.org/TR/CSS21/propidx.html and various CSS3 modules. é)Ú parse_coloré)Úcomputed_values)ÚKNOWN_PROPERTIESÚ Dimension)Ú InvalidValuesÚcheck_var_functionÚcomma_separated_listÚ get_angleÚget_content_listÚget_content_list_tokenÚget_custom_identÚ get_imageÚ get_keywordÚ get_lengthÚget_resolutionÚget_single_keywordÚget_urlÚparse_2d_positionÚparse_functionÚparse_positionÚremove_whitespaceÚsingle_keywordÚ single_tokenz-weasy-NFcs‡‡‡‡‡fdd„}|S)u@Decorator adding a function to the ``PROPERTIES``. The name of the property covered by the decorated function is set to ``property_name`` if given, or is inferred from the function name (replacing underscores by hyphens). :param proprietary: Proprietary (vendor-specific, non-standard) are prefixed: anchors can for example be set using ``-weasy-anchor: attr(id)``. See https://www.w3.org/TR/CSS/#proprietary :param unstable: Mark properties that are defined in specifications that didn't reach the Candidate Recommandation stage. They can be used both vendor-prefixed or unprefixed. See https://www.w3.org/TR/CSS/#unstable-syntax :param wants_base_url: The function takes the stylesheet’s base URL as an additional parameter. csxˆdkr|jjddƒ}nˆ}|tks,t|ƒ‚|tks.decoratorr+)r(r)r*r'r r-r+)r'r(r)r*r r,Úproperty$sr.c Csà|jdƒr||ffS| rP|tkrP|jddƒ}|tkrHtd|›d�ƒ‚ntdƒ‚| rf|tkrftdƒ‚|tkr’x"|D]}t|ƒ}|rt||ffSqtWt|ƒ}|d kr¨|}n.t|} | jrÂ| ||ƒ}n| |ƒ}|d krÖt‚||ffS) z/Default validator for non-shorthand properties.z--rrzyou probably mean "ú"zunknown propertyzproperty not supported yetÚinitialÚinheritN)r0r1) Ú startswithrrrrr$rrr ) Úbase_urlr&ÚtokensÚrequiredZ hyphens_nameÚtokenZ var_functionÚkeywordÚvaluer%r+r+r,Úvalidate_non_shorthandOs0     r9cCs|dkS)z.``background-attachment`` property validation.ÚscrollÚfixedÚlocal)r:r;r<r+)r7r+r+r,Úbackground_attachmentssr=zbackground-colorzborder-top-colorzborder-right-colorzborder-bottom-colorzborder-left-colorzcolumn-rule-colorT)r*ztext-decoration-colorcCst|ƒS)N)r)r6r+r+r,Ú other_colors{s r>cCst|ƒdkrdSt|ƒSdS)NÚinvertÚ currentColor)rr)r6r+r+r,Ú outline_color‡s rAcCs|dkS)NÚseparateÚcollapse)rBrCr+)r7r+r+r,Úborder_collapse�srDcCs|dkS)z$``empty-cells`` property validation.ÚshowÚhide)rErFr+)r7r+r+r,Ú empty_cells–srGÚcolorcCst|ƒ}|dkrdS|SdS)z0``*-color`` and ``color`` properties validation.r@r1N)r)r6Úresultr+r+r,rH�szbackground-image)r cCs$|jdkrt|ƒdkrdSt||ƒS)Nr%Únone)rJN)Útyperr)r6r3r+r+r,Úbackground_image¨s  rLzlist-style-imagecCsNt|ƒdkrdSt||ƒ}|rJ|ddkrJ|dddkrJd|ddfSdS)z)``list-style-image`` property validation.rJNrÚurléZexternal)rJN)rr)r6r3Ú parsed_urlr+r+r,Úlist_style_image²s   rPcCs t|ƒdkr|dd…}t|ƒS)z)``transform-origin`` property validation.éNr)Úlenr)r4r+r+r,Útransform_origin¾s  rScCst|ƒS)z,``background-position`` property validation.)r)r4r+r+r,Úbackground_positionÇsrTcCst|ƒS)z(``object-position`` property validation.)r)r4r+r+r,Úobject_positionÎsrUcCs\ttt|ƒƒ}|d krd S|d kr&dS|dkr6|dSt|ƒdkrXtdd „|DƒƒrX|Sd S)z*``background-repeat`` property validation.úrepeat-xÚrepeatú no-repeatúrepeat-yÚspaceÚroundrcss|]}|dkVqdS)ú no-repeatrWrZr[N)r\rWrZr[r+)Ú.0Úkr+r+r,ú ász$background_repeat..N)rV)rWrX)rY)rXrW©rX©rW©rZ©r[)r`rarbrc)ÚtupleÚmaprrRÚall)r4Úkeywordsr+r+r,Úbackground_repeatÕs rhcCsºt|ƒdkrP|d}t|ƒ}|d kr(|S|dkr4d St|ddd�}|r¶|dfSnft|ƒd kr¶g}x@|D]8}t|ddd�}|rˆ|j|ƒqft|ƒdkrf|jdƒqfWt|ƒd kr¶t|ƒSd S) z#Validation for ``background-size``.rNrÚcontainÚcoverÚautoFT)ÚnegativeÚ percentagerN)rirj)rkrk)rRrrÚappendrd)r4r6r7ÚlengthÚvaluesr+r+r,Úbackground_sizeæs(       rqzbackground-clipzbackground-origincCs|dkS)z\Validation for the ```` type used in ``background-clip`` and ``background-origin``.ú border-boxú padding-boxú content-box)rrrsrtr+)r7r+r+r,ÚboxsrucCsJdd„|Dƒ}t|ƒrFt|ƒdkr2|d|dfSt|ƒdkrFt|ƒSdS)z,Validator for the `border-spacing` property.cSsg|]}t|dd�‘qS)F)rl)r)r]r6r+r+r,ú sz"border_spacing..rNrrN)rfrRrd)r4Úlengthsr+r+r,Úborder_spacing s   rxzborder-top-right-radiuszborder-bottom-right-radiuszborder-bottom-left-radiuszborder-top-left-radiuscCsJdd„|Dƒ}t|ƒrFt|ƒdkr2|d|dfSt|ƒdkrFt|ƒSdS)z/Validator for the `border-*-radius` properties.cSsg|]}t|ddd�‘qS)FT)rlrm)r)r]r6r+r+r,rvsz(border_corner_radius..rNrrN)rfrRrd)r4rwr+r+r,Úborder_corner_radiuss   ryzborder-top-stylezborder-right-stylezborder-left-stylezborder-bottom-stylezcolumn-rule-stylec Cs|d kS) z)``border-*-style`` properties validation.rJÚhiddenÚdottedÚdashedÚdoubleÚinsetÚoutsetÚgrooveÚridgeÚsolid) rJrzr{r|r}r~rr€r�r‚r+)r7r+r+r,Ú border_style$srƒz break-beforez break-afterc Cs|d kS) z;``break-before`` and ``break-after`` properties validation.rkÚavoidú avoid-pageÚpageÚleftÚrightÚrectoÚversoú avoid-columnÚcolumnÚalways) rkr„r…r†r‡rˆr‰rŠr‹rŒr�r+)r7r+r+r,Úbreak_before_after0srŽcCs|dkS)z%``break-inside`` property validation.rkr„ú avoid-pageú avoid-column)rkr„r�r�r+)r7r+r+r,Ú break_inside;sr‘cCs|dkS)z-``box-decoration-break`` property validation.ÚsliceÚclone)r’r“r+)r7r+r+r,Úbox_decoration_breakBsr”cCs,|jdkrd|jfSt|ƒ}|dkr(|SdS)z%``box-ellipsis`` property validation.ÚstringrJrkN)rJrk)rKr8r)r6r7r+r+r,Úblock_ellipsisIs   r–ÚcontinuecCs|dkS)z!``continue`` property validation.rkÚdiscard)rkr˜r+)r7r+r+r,Ú continue_Usr™cCs<|jdkr$|jdk r$|jdkr$|jSt|ƒ}|dkr8|SdS)NÚnumberrNrJ)rKÚ int_valuer)r6r7r+r+r,Ú max_lines\s  rœcCs|dkS)z%``margin-break`` property validation.rkÚkeepr˜)rkr�r˜r+)r7r+r+r,Ú margin_breakgsržcCs"|jdkr|jdkrdS|jSdS)z``page`` property validation.ÚidentrkN)rKZ lower_valuer8)r6r+r+r,r†ns r†z bleed-leftz bleed-rightz bleed-topz bleed-bottomcCs t|ƒ}|dkrdSt|ƒSdS)z``bleed`` property validation.rkN)rr)r6r7r+r+r,Úbleedvsr cCsjt|ƒdkr4tdd„|Dƒƒ}d|krfd|krf|Sn2t|ƒdkrft|dƒ}|d krZ|fS|dkrffSd S) z``marks`` property validation.rcss|]}t|ƒVqdS)N)r)r]r6r+r+r,r_ˆszmarks..ÚcropÚcrossrNrrJN)r¡r¢)rRrdr)r4rgr7r+r+r,Úmarks„s   r£z outline-stylec Cs|d kS) z(``outline-style`` properties validation.rJr{r|r}r~rr€r�r‚) rJr{r|r}r~rr€r�r‚r+)r7r+r+r,Ú outline_style“sr¤zborder-top-widthzborder-right-widthzborder-left-widthzborder-bottom-widthzcolumn-rule-widthz outline-widthcCs,t|dd�}|r|St|ƒ}|dkr(|SdS)z=Border, column rule and outline widths properties validation.F)rlÚthinÚmediumÚthickN)r¥r¦r§)rr)r6ror7r+r+r,Ú border_width›s r¨cCs,t|dd�}|r|St|ƒ}|dkr(|SdS)z%``column-width`` property validation.F)rlrkN)rr)r6ror7r+r+r,Ú column_width¬s  r©cCs|dkS)z$``column-span`` property validation.rfrJ)rfrJr+)r7r+r+r,Ú column_span¸srªcCs|dkS)z7Validation for the ``box-sizing`` property from css3-uiú padding-boxú border-boxú content-box)r«r¬r­r+)r7r+r+r,Ú box_sizing¿sr®cCs|dkS)z'``caption-side`` properties validation.ÚtopÚbottom)r¯r°r+)r7r+r+r,Ú caption_sideÆsr±cCs|dkS)z``clear`` property validation.r‡rˆÚbothrJ)r‡rˆr²rJr+)r7r+r+r,ÚclearÍsr³cCs�t|ƒ}|r||\}}|dkr|t|ƒdkr|g}x:|D]2}t|ƒdkrN|jdƒq2t|ƒ}|r2|j|ƒq2Wt|ƒdkr|t|ƒSt|ƒdkrŒfSdS)z%Validation for the ``clip`` property.ZrectérkN)rrRrrnrrd)r6r%r&ÚargsrpÚargror+r+r,ÚclipÔs     r·)r'r cCsòt|ƒ}g}xr|r~t|ƒdkrz|djdkrz|djdkrz|d|dd…}}t||ƒpbt||ƒ}|rt|j|ƒq|dSqPqWt|ƒdkr�dSt|ƒdkrÒ|d jdkrÒ|d jdkrÒ|djd krÒ|dd…}t|ƒ}|dkrè|fSt||ƒS)z ``content`` property validation.rrNÚliteralú,rNrQr•ú/ÚnormalrJéÿÿÿÿéþÿÿÿr½r½)r»rJ) ÚlistrRrKr8rrrnrr )r4r3Ú parsed_tokensr6Z parsed_tokenr7r+r+r,Úcontentês(    rÀcCs t|dd�S)z*``counter-increment`` property validation.rN)Údefault_integer)Úcounter)r4r+r+r,Úcounter_incrementsrÃcCs t|dd�S)z&``counter-reset`` property validation.r)rÁ)rÂ)r4r+r+r,Ú counter_resetsrÄcCs t|dd�S)z$``counter-set`` property validation.r)rÁ)rÂ)r4r+r+r,Ú counter_setsrÅcCs¼t|ƒdkrfSt|ƒ}t|dƒ}|s.tdƒ‚g}x€|dk r²|jdkrJdS|j}|d krftd|›�ƒ‚t|dƒ}|dk rž|jdkrž|jdk rž|j}t|dƒ}n|}|j||fƒq4Wt |ƒS) zB``counter-increment`` and ``counter-reset`` properties validation.rJNzgot an empty token listrŸr0r1zInvalid counter name: rš)rJr0r1) rÚiterÚnextrrKr8rr›rnrd)r4rÁr6ÚresultsZ counter_nameÚintegerr+r+r,rÂs(       rÂr¯rˆr‡r°z margin-topz margin-rightz margin-bottomz margin-leftcCs(t|dd�}|r|St|ƒdkr$dSdS)z#``margin-*`` properties validation.T)rmrkN)rr)r6ror+r+r,Úlenght_precentage_or_auto6s  rÊÚheightÚwidthcCs*t|ddd�}|r|St|ƒdkr&dSdS)z7Validation for the ``width`` and ``height`` properties.FT)rlrmrkN)rr)r6ror+r+r,Ú width_heightHs  rÍcCs,t|dd�}|r|St|ƒ}|dkr(|SdS)z+Validation for the ``column-gap`` property.F)rlr»N)rr)r6ror7r+r+r,Ú column_gapTs  rÎcCs|dkS)z$``column-fill`` property validation.rkÚbalance)rkrÏr+)r7r+r+r,Ú column_fill`srÐcCs|dkS)z"``direction`` property validation.ÚltrÚrtl)rÑrÒr+)r7r+r+r,Ú directiongsrÓc Csx|D]}|jdkrdSqWt|ƒdkrb|dj}|dkr@|fS|dkrVt|jdƒƒS|dkrbdSd}}}xX|D]P}|j}|dkr”|rŽdS|}qt|dkrª|r¤dS|}qt|dkrÀ|rºdS|}qtdSqtW|pÎd}|�pØd}|�rö|dk�rþ|||fSn||fSdS)z ``display`` property validation.rŸNrNrrJú table-captionútable-row-groupú table-cellútable-header-groupútable-footer-groupú table-rowútable-column-groupú table-columnú inline-tableú inline-flexrz inline-blockÚinlineú flow-rootÚblockÚflowÚtableÚflexz list-item) rJrÔrÕrÖr×rØrÙrÚrÛ)rÜrÝ)rÞrß)ràrÞ)rárßrârã)rárß)rKrRr8rdÚsplit)r4r6r8ÚoutsideÚinsideZ list_itemr+r+r,ÚdisplaynsH         rçÚfloatcCs|dkS)z``float`` property validation.r‡rˆÚfootnoterJ)r‡rˆrérJr+)r7r+r+r,Úfloat_œsrêcCsRt|ƒdkr$|djdkr$|djS|rNtdd„|DƒƒrNdjdd„|DƒƒSdS) z$``font-family`` property validation.rNrr•css|]}|jdkVqdS)rŸN)rK)r]r6r+r+r,r_©szfont_family..ú css|] }|jVqdS)N)r8)r]r6r+r+r,r_ªsN)rRrKr8rfÚjoin)r4r+r+r,Ú font_family£s rícCs|dkS)Nrkr»rJ)rkr»rJr+)r7r+r+r,Ú font_kerning­srîcCs(t|ƒ}|dkr|S|jdkr$|jSdS)Nr»r•)rrKr8)r6r7r+r+r,Úfont_language_override³s  rïcsÀt|ƒdkr$t|dƒ}|dkr$|Sg‰d}g}x|D]}|j|ƒq6Wxf|D]^‰ˆjd kr`dSˆj|kr¨‡fdd„|Dƒd}t‡fdd„|DƒƒršdSˆjˆjƒqNdSqNWˆr¼tˆƒSdS)NrNrr»rJúcommon-ligaturesúno-common-ligaturesúhistorical-ligaturesúno-historical-ligaturesúdiscretionary-ligaturesúno-discretionary-ligaturesÚ contextualú no-contextualrŸcsg|]}ˆj|kr|‘qSr+)r8)r]Úcouple)r6r+r,rvÑsz*font_variant_ligatures..c3s|]}|ˆkVqdS)Nr+)r]r8)rpr+r,r_Òsz)font_variant_ligatures..)r»rJ©rðrñ©ròró©rôrõ©rör÷)rùrúrûrü)rRrÚextendrKr8Úanyrnrd)r4r7ÚcouplesÚ all_valuesrøÚconcurrent_valuesr+)r6rpr,Úfont_variant_ligatures½s.      rcCs|dkS)Nr»ÚsubÚsuper)r»rrr+)r7r+r+r,Úfont_variant_positionÜsrcCs|dkS) Nr»ú small-capsúall-small-capsú petite-capsúall-petite-capsÚunicaseú titling-caps)r»rrrr r r r+)r7r+r+r,Úfont_variant_capsâsr csÀt|ƒdkr$t|dƒ}|dkr$|Sg‰d}g}x|D]}|j|ƒq6Wxf|D]^‰ˆjd kr`dSˆj|kr¨‡fd d„|Dƒd}t‡fdd„|DƒƒršdSˆjˆjƒqNdSqNWˆr¼tˆƒSdS)NrNrr»ú lining-numsú oldstyle-numsúproportional-numsú tabular-numsúdiagonal-fractionsústacked-fractionsÚordinalú slashed-zerorŸcsg|]}ˆj|kr|‘qSr+)r8)r]rø)r6r+r,rvþsz(font_variant_numeric..c3s|]}|ˆkVqdS)Nr+)r]r8)rpr+r,r_ÿsz'font_variant_numeric..©r r©rr©rr©r©r)rrrrr)rRrrýrKr8rþrnrd)r4r7rÿrrørr+)r6rpr,Úfont_variant_numericês.      rcCs4t|ƒdkr t|dƒdkr dStdd„ƒ}||ƒS)z.``font-feature-settings`` property validation.rNrr»cSsÞd \}}t|ƒdkrn|dd …|d }}|jdkrHdddœj|jƒ}q~|jdkr~|jdk r~|jdkr~|j}nt|ƒdkr~d}t|ƒdkrÂ|\}|jdkrÂt|jƒdkrÂtd d „|jDƒƒrÂ|j}|dk rÚ|dk rÚ||fSdS)NrrNrŸr)ÚonÚoffršr•r´css*|]"}dt|ƒkodknVqdS)é éN)Úord)r]Úletterr+r+r,r_ szLfont_feature_settings..font_feature_settings_list..)NNr¼r¼)rRrKÚgetr8r›rf)r4Úfeaturer8r6r+r+r,Úfont_feature_settings_lists"     z9font_feature_settings..font_feature_settings_list)rRrr )r4r#r+r+r,Úfont_feature_settings s r$cCs|dkS)Nr»úhistorical-forms)r»r%r+)r7r+r+r,Úfont_variant_alternates)sr&csÀt|ƒdkr$t|dƒ}|dkr$|Sg‰d}g}x|D]}|j|ƒq6Wxf|D]^‰ˆjd kr`dSˆj|kr¨‡fdd„|Dƒd}t‡fdd„|DƒƒršdSˆjˆjƒqNdSqNWˆr¼tˆƒSdS)NrNrr»Újis78Újis83Újis90Újis04Ú simplifiedÚ traditionalú full-widthúproportional-widthÚrubyrŸcsg|]}ˆj|kr|‘qSr+)r8)r]rø)r6r+r,rvDsz+font_variant_east_asian..c3s|]}|ˆkVqdS)Nr+)r]r8)rpr+r,r_Esz*font_variant_east_asian..©r'r(r)r*r+r,©r-r.©r/)r0r1r2)rRrrýrKr8rþrnrd)r4r7rÿrrørr+)r6rpr,Úfont_variant_east_asian1s,      r3cCs<t|ddd�}|r|St|ƒ}|dkr*|S|tjkr8|SdS)z"``font-size`` property validation.FT)rlrmÚsmallerÚlargerN)r4r5)rrrZFONT_SIZE_KEYWORDS)r6roZfont_size_keywordr+r+r,Ú font_sizeOs r6cCs|dkS)z#``font-style`` property validation.r»ÚitalicÚoblique)r»r7r8r+)r7r+r+r,Ú font_style]sr9c Cs|d kS) z-Validation for the ``font-stretch`` property.úultra-condensedúextra-condensedÚ condensedúsemi-condensedr»ú semi-expandedÚexpandedúextra-expandedúultra-expanded) r:r;r<r=r»r>r?r@rAr+)r7r+r+r,Ú font_stretchdsrBc Cs<t|ƒ}|dkr|S|jdkr8|jdk r8|jdkr8|jSdS)z$``font-weight`` property validation.r»ÚboldÚbolderÚlighterršNédéÈé,é�éôéXé¼é é„)r»rCrDrE) rFrGrHrIrJrKrLrMrN)rrKr›)r6r7r+r+r,Ú font_weightns  rOcCs|dkS)NÚfillrirjrJú scale-down)rPrirjrJrQr+)r7r+r+r,Ú object_fitzsrRcCst|ƒS)N)r)r6r+r+r,Úimage_resolutionƒsrSzletter-spacingz word-spacingcCs$t|ƒdkrdSt|ƒ}|r |SdS)z7Validation for ``letter-spacing`` and ``word-spacing``.r»N)rr)r6ror+r+r,ÚspacingŠs  rTcCspt|ƒdkrdS|jdkr0|jdkr0t|jdƒS|jdkrP|jdkrPt|jdƒS|jdkrl|jdkrlt|ƒSdS)z$``line-height`` property validation.r»ršrNrmú%Z dimension)rrKr8rr)r6r+r+r,Ú line_height–s   rVcCs|dkS)z,``list-style-position`` property validation.rærå)rærår+)r7r+r+r,Úlist_style_position¤srWcCs|jdkr|jS|jdkr$d|jfS|jdko6|jdk�rd}t|jƒ}t|ƒd k�rg}|d jdkr’|d j|krŒd }|j|d jƒq d Sn|jdƒd }t|ƒ|d kr´d Sx8t|t|ƒƒD]&}||jdkrÚd S|j||jƒqÄW|d dk�rt|ƒd k�rd Sdt|ƒfSd S)z(``list-style-type`` property validation.rŸr•r%ÚsymbolsÚcyclicÚnumericÚ alphabeticÚsymbolicr;rNrNrQz symbols())rYrZr[r\r;)r[rZ) rKr8r&rÚ argumentsrRrnÚrangerd)r6Z allowed_typesZfunction_argumentsr]ÚindexÚir+r+r,Úlist_style_type«s4     raz min-widthz min-heightcCs"t|ƒ}|dkr|St|gƒSdS)z7``min-width`` and ``min-height`` properties validation.rkN)rÚlength_or_precentage)r6r7r+r+r,Úmin_width_heightÎsrcz padding-topz padding-rightzpadding-bottomz padding-leftcCst|ddd�}|r|SdS)z$``padding-*`` properties validation.FT)rlrmN)r)r6ror+r+r,rbÛsrbz max-widthz max-heightcCs4t|ddd�}|r|St|ƒdkr0ttdƒdƒSdS)z'Validation for max-width and max-heightFT)rlrmrJÚinfZpxN)rrrrè)r6ror+r+r,Úmax_width_heightçs  recCs |jdkrtdtd|jƒƒSdS)z(Validation for the ``opacity`` property.ršrNrN)rKÚminÚmaxr8)r6r+r+r,Úopacityós rhcCs.t|ƒdkrdS|jdkr*|jdk r*|jSdS)z(Validation for the ``z-index`` property.rkršN)rrKr›)r6r+r+r,Úz_indexûs riZorphansZwidowscCs*|jdkr&|jdk r&|j}|dkr&|SdS)z9Validation for the ``orphans`` and ``widows`` properties.ršNrN)rKr›)r6r8r+r+r,Úorphans_widowssrjcCs:|jdkr&|jdk r&|j}|dkr&|St|ƒdkr6dSdS)z-Validation for the ``column-count`` property.ršNrNrk)rKr›r)r6r8r+r+r,Ú column_counts  rkcCs|dkS)z)Validation for the ``overflow`` property.rkÚvisiblerzr:)rkrlrzr:r+)r7r+r+r,ÚoverflowsrmcCs|dkS)z.Validation for the ``text-overflow`` property.r·Úellipsis)r·rnr+)r7r+r+r,Ú text_overflow#srocCs\|jdkrB|jdkrBt|jƒdkrB|jdjdkrBd|jdjfSt|gƒ}|d krX|Sd S) z!``position`` property validation.r%ZrunningrNrrŸz running()ÚstaticÚrelativeÚabsoluter;N)rprqrrr;)rKr&rRr]r8r)r6r7r+r+r,Úposition*s  rscCsX|rTt|ƒddkrTtdd„|DƒƒrTtdd„|Dƒƒ}|ddd…|ddd…fSdS)z``quotes`` property validation.rrcss|]}|jdkVqdS)r•N)rK)r]r6r+r+r,r_:szquotes..css|] }|jVqdS)N)r8)r]r6r+r+r,r_;sNrN)rRrfrd)r4Ústringsr+r+r,Úquotes6srucCs|dkr |SdS)z,Validation for the ``table-layout`` propertyr;rkN)r;rkr+)r7r+r+r,Ú table_layoutAsrvcCs|dkS)z'``text-align-all`` property validation.r‡rˆÚcenterÚjustifyÚstartÚend)r‡rˆrwrxryrzr+)r7r+r+r,Útext_align_allIsr{cCs|dkS) z(``text-align-last`` property validation.rkr‡rˆrwrxryrz)rkr‡rˆrwrxryrzr+)r7r+r+r,Útext_align_lastPsr|cCsJdd„|Dƒ}|dhkrdSddddh}t|ƒt|ƒkrF|j|ƒrF|SdS) z-``text-decoration-line`` property validation.cSsh|] }t|ƒ’qSr+)r)r]r6r+r+r,ú [sz'text_decoration_line..rJZ underlineZoverlinez line-throughZblinkN)rRÚissubset)r4rgZallowed_valuesr+r+r,Útext_decoration_lineXs   rcCs|dkr |SdS)z.``text-decoration-style`` property validation.r‚r}r{r|ÚwavyN)r‚r}r{r|r€r+)r7r+r+r,Útext_decoration_stylecsr�cCst|dd�}|r|SdS)z$``text-indent`` property validation.T)rmN)r)r6ror+r+r,Ú text_indentks r‚cCs|dkS)z#``text-align`` property validation.rJÚ uppercaseÚ lowercaseÚ capitalizeú full-width)rJrƒr„r…r†r+)r7r+r+r,Útext_transformtsr‡c Cs,t|dd�}|r|St|ƒ}|d kr(|Sd S) z.Validation for the ``vertical-align`` propertyT)rmÚbaselineÚmiddlerrútext-topú text-bottomr¯r°N)rˆr‰rrrŠr‹r¯r°)rr)r6ror7r+r+r,Úvertical_align|s rŒcCs|dkS)z$``white-space`` property validation.rlrzrC)rlrzrCr+)r7r+r+r,Ú visibility‰sr�cCs|dkS)z$``white-space`` property validation.r»ÚpreÚnowrapúpre-wrapúpre-line)r»rŽr�r�r‘r+)r7r+r+r,Ú white_space�sr’cCs|dkS)z&``overflow-wrap`` property validation.Úanywherer»ú break-word)r“r»r”r+)r7r+r+r,Ú overflow_wrap—sr•cCs*t|gƒ}|dk r|St|ƒdkr&dSdS)z#``flex-basis`` property validation.NrÀ)rÍr)r6Zbasisr+r+r,Ú flex_basisžs   r–cCs|dkS)z'``flex-direction`` property validation.Úrowú row-reverserŒúcolumn-reverse)r—r˜rŒr™r+)r7r+r+r,Úflex_direction©sršz flex-growz flex-shrinkcCs|jdkr|jSdS)Nrš)rKr8)r6r+r+r,Úflex_grow_shrink°s r›cCs|jdkr|jdk r|jSdS)Nrš)rKr›)r6r+r+r,Úorder¸srœcCs|dkS)z"``flex-wrap`` property validation.r�Úwrapú wrap-reverse)r�r�ržr+)r7r+r+r,Ú flex_wrap¿srŸcCs|dkS) z(``justify-content`` property validation.ú flex-startúflex-endrwú space-betweenú space-aroundú space-evenlyÚstretch)r r¡rwr¢r£r¤r¥r+)r7r+r+r,Újustify_contentÆsr¦cCs|dkS)z$``align-items`` property validation.ú flex-startúflex-endrwrˆr¥)r§r¨rwrˆr¥r+)r7r+r+r,Ú align_itemsÏsr©cCs|dkS)z#``align-self`` property validation.rkú flex-startúflex-endrwrˆr¥)rkrªr«rwrˆr¥r+)r7r+r+r,Ú align_self×sr¬cCs|dkS) z&``align-content`` property validation.ú flex-startúflex-endrwú space-betweenú space-aroundú space-evenlyr¥)r­r®rwr¯r°r±r¥r+)r7r+r+r,Ú align_contentßsr²cCs|dkS)z#Validation for ``image-rendering``.rkú crisp-edgesÚ pixelated)rkr³r´r+)r7r+r+r,Úimage_renderingèsrµc Csdd„|Dƒ}t|ƒrFt|ƒdkr2|d|dfSt|ƒdkrFt|ƒSdd„|Dƒ}t|ƒdkr¢|d}|tjkr|tj|S|d krŠtjS|d kr¢tjd d d …St|ƒdk�r|dd krÆ|\}}n|ddkrÜ|\}}nd }|tjk�rtj|}|dk�r|S|\}}||fSd S)z[``size`` property validation. See http://www.w3.org/TR/css3-page/#page-size-prop cSsg|]}t|dd�‘qS)F)rl)r)r]r6r+r+r,rvöszsize..rNrrcSsg|] }t|ƒ‘qSr+)r)r]r6r+r+r,rvýsrkÚportraitÚ landscapeN)rkr¶r¼)r¶r·)r¶r·)rfrRrdrZ PAGE_SIZESZINITIAL_PAGE_SIZE) r4rwrgr7Z orientationZ page_sizerÍrËrÌr+r+r,Úsizeïs6            r¸)r)cCsVt|ƒdkrdSt|ƒ}|rR|\}}|dd„|Dƒf}|ddgfkrRd|djfSdS) zValidation for ``anchor``.rJcSsg|] }|j‘qSr+)rK)r]r¶r+r+r,rv szanchor..ÚattrrŸzattr()rN)rrr8)r6r%r&rµÚ prototyper+r+r,Úanchors r»)r)r cCsht|ƒdkrdSt||ƒ}|r"|St|ƒ}|rd|\}}|dd„|Dƒf}|ddgfkrdd|djfSdS) zValidation for ``link``.rJcSsg|] }|j‘qSr+)rK)r]r¶r+r+r,rv1szlink..r¹rŸzattr()rN)rrrr8)r6r3rOr%r&rµrºr+r+r,Úlink%s  r¼cCs2|jdkr&|jdk r&|j}|dkr&|St|dd�S)zVValidation for ``tab-size``. See https://www.w3.org/TR/css-text-3/#tab-size ršNrF)rl)rKr›r)r6r8r+r+r,Útab_size6s r½cCst|ƒ}|dkr|SdS)zValidation for ``hyphens``.rJÚmanualrkN)rJr¾rk)r)r6r7r+r+r,ÚhyphensEsr¿cCs(t|ƒ}|dkrdS|jdkr$|jSdS)z'Validation for ``hyphenate-character``.rkuâ€�r•N)rrKr8)r6r7r+r+r,Úhyphenate_characterNs  rÀcCst|ddd�S)z(Validation for ``hyphenate-limit-zone``.FT)rlrm)r)r6r+r+r,Úhyphenate_limit_zoneYsrÁcCsÔt|ƒdkrJ|\}t|ƒ}|dkr&dS|jdkrF|jdk rF|jddfS�n†t|ƒdk�rú|\}}t|ƒ}t|ƒ}|jdkr¾|jdk r¾|jdkr¨|jdk r¨|j|j|jfS|dkr¼|jddfSn:|dk�rÐ|jdkrê|jdk rêd|j|jfS|dk�rÐd SnÖt|ƒdk�rÐ|\}}}t|ƒdk�s8|jdk�rÐ|jdk �rÐt|ƒdk�s^|jdk�rÐ|jdk �rÐt|ƒdk�s„|jdk�rÐ|jdk �rÐ|jdk�r–|jnd}|jdk�r¬|jnd}|jdk�rÂ|jnd}|||fSdS) z)Validation for ``hyphenate-limit-chars``.rNrkérršNrQ)rÂrr)rÂrr)rRrrKr›r8)r4r6r7Útotalr‡Z total_keywordZ left_keywordrˆr+r+r,Úhyphenate_limit_chars`sB    rÄcCslt|ƒdkrdSt|ƒ}|rT|\}}|dd„|Dƒf}|ddgfkrhd|djfSn|jdkrhd|jfSd S) zValidation for ``lang``.rJcSsg|] }|j‘qSr+)rK)r]r¶r+r+r,rv‘szlang..r¹rŸzattr()rr•N)rrr8rK)r6r%r&rµrºr+r+r,Úlangˆs  rÅ)r*r cs&t‡fdd„|Dƒƒ}d|kr"|SdS)z"Validation for ``bookmark-label``.c3s|]}t|ˆƒVqdS)N)r )r]r6)r3r+r,r_œsz!bookmark_label..N)rd)r4r3r¿r+)r3r,Úbookmark_label˜srÆcCs<|jdkr(|jdk r(|j}|dkr8|Snt|ƒdkr8dSdS)z"Validation for ``bookmark-level``.ršNrNrJ)rKr›r)r6r8r+r+r,Úbookmark_level¡s  rÇcCs|dkS)z"Validation for ``bookmark-state``.ÚopenÚclosed)rÈrÉr+)r7r+r+r,Úbookmark_state­srÊcCs|dkS)z$Validation for ``footnote-display``.ràrÞÚcompact)ràrÞrËr+)r7r+r+r,Úfootnote_display´srÌcCs|dkS)z#Validation for ``footnote-policy``.rkÚlinerà)rkrÍràr+)r7r+r+r,Úfootnote_policy»srÎcstt|ƒdkrTt|dƒ}|dkr$dSt‡fdd„|dd…Dƒƒ}d|krp||fSn|rpt|dƒdkrpdffSdS)zValidation for ``string-set``.rrNc3s|]}t|ˆƒVqdS)N)r )r]r6)r3r+r,r_Ìszstring_set..rNrJ)rRr rdr)r4r3Úvar_namer¿r+)r3r,Ú string_setÂs   rÐc Csìt|ƒdkrfSg}�xÈ|D�]¾}t|ƒ}|s2dS|\}}t|ƒdk�r¼t|dƒ}t|ddd�}|dkr†|dk r†|j||fƒ�qÜ|dkr¬|dk r¬|jd |dffƒ�qÜ|d krÐ|dk rÐ|jd d|ffƒnê|dkrò|rò|jd |tjffƒnÈ|d k�r|�r|jd tj|ffƒn¢|dk�rL|djdk�rL|jd|dj dffƒnn|dk�r€|djdk�r€|jdd|dj ffƒn:|dk�r¶|djdk�r¶|jd|dj fdfƒndSqt|ƒdk�rŽ|dk�rt dd„|Dƒƒ�r|j|t dd„|Dƒƒfƒn†|d k�rBt dd„|Dƒƒ}t |ƒ�r<|j||fƒndSnJ|d k�rˆt dd„|Dƒƒ} t dd„| Dƒƒ�r‚|j|| fƒndSndSqt|ƒdk�rØ|dk�rØt dd„|Dƒƒ�rØ|j|t dd„|DƒƒfƒqdSqWt |ƒSdS)zValidation for ``transform``.rJNrNrT)rmÚrotateZskewxZskewZskewyÚ translatexÚ translateZ translateyZscalexršZscaleZscaleyrcss|]}|jdkVqdS)ršN)rK)r]Úar+r+r,r_øsztransform..css|] }|jVqdS)N)r8)r]r¶r+r+r,r_ùscss|]}t|dd�VqdS)T)rmN)r)r]r6r+r+r,r_üscss|]}t|ƒVqdS)N)r )r]r6r+r+r,r_scss|]}|dk VqdS)Nr+)r]Úangler+r+r,r_séZmatrixcss|]}|jdkVqdS)ršN)rK)r]rÔr+r+r,r_ scss|] }|jVqdS)N)r8)r]r¶r+r+r,r_ s)rÒrÓ) rrrRr rrnrZ ZERO_PIXELSrKr8rfrd) r4Z transformsr6r%r&rµrÕrorwZanglesr+r+r,Ú transformÓsd      r×)NFFFF)F)—Ú__doc__Ztinycss2.color3rÚrZ propertiesrrÚutilsrrr r r r r rrrrrrrrrrrrÚPREFIXÚsetr!r#r$rr.r9r=r>rArDrGrHrLrPrSrTrUrhrqrurxryrƒ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ïrrr rr$r&r3r6r9rBrOrRrSrTrVrWrarcrbrerhrirjrkrmrorsrurvr{r|rr�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,Ús  T * $                      .        "          (   (