a [›ýfiãD@s^ dZddlmZmZmZddlZddlZddlmZm Z ddl m Z ddl mZdd lmZmZd gZd Ze ee¡eed d fed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed dfed d fed d!fed d"fed d#fed d$fed d%fed d&fed d'fed d(fed d)fed d*fed d+fed d,fed d-fed d.fed d/fed d0fed d1fed d2fed d3fed d4fed d5fed d6fed d7fed d8fed d9fed d:fed d;fed dfed d?fed d@fed dAfed dBfed dCfed dDfed dEfed dFfed dGfed dHfed dIfed dJfed dKfed dLfed dMfed dNfed dOfed dPfed dQfed dRfed dSfed dTfed dUfed dVfed dWfed dXfed dYfed dZfed d[fed d\fed d]fed d^fed d_fed d`fed dafed dbfed dcfed ddfed defed dffed dgfed dhfed difed djfed dkfed dlfed dmfed dnfed dofedpdqfedpdrfedpdsfedpdtfedpdufedpdvfedpdwfedpdxfedpdyfedpdzfedpd{fedpd|fedpd}fedpd~fedpdfedpd€fedpdfedpd‚fedpdƒfedpd„fedpd…fedpd†fedpd‡fedpdˆfedpd‰fedpdŠfedpd‹fedŒd fedŒdfedŒdŽfedŒdfedŒdfedŒd‘fedŒd’fedŒd“fedŒd”fedŒd•fedŒd–fedŒd—fedŒd˜fedŒd™fedŒdšfedŒd›fedŒdœfedŒdfedŒdžfedŒdŸfedŒd fedŒd¡fedŒd¢fedŒd£fedŒd¤fedŒd¥fedŒd¦fedŒd§fedŒd¨fedŒdŒfedŒd©fedŒdªfedŒd«fedŒd¬fedŒd­ff¡ƒZed®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädådædçdèdédêdëdìdídîdïdðdñdòdódôdõdöd÷dødùdúdûdüdýdþdÿdddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9ed:d;fdd?d@dAdBdCdDdEdFdGdHdädèdIdJdKdLdMdMdNdOdPdQdQdQdRdSddTdUdVdWdXd8d8edYdZfedYd[fedYd\fd]d^d_d`dadbdcdddedfdgdhdidjdËdkdÍdldmdndodpdqdrdsdBdtdàdudvdwdxdydzd{d|d}d~dd€dd‚dƒd„d…dèd†d‡dðdˆd‰dŠd‹dŒdöddŽddd‘d’d“dÿddd”d•d–d—d˜d™dšd›dœddždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹d*dºd»d¼d.d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇd8dÈdÉdÊdËdÌedYdÍfedYdÎfedYdZfedYdÏfedYd[fedYd«fedYd\fed:dÐfed:d;fed:dÑfdÒdÓdÔdÕfCƒZedìd#dÊd²dødd¸d×dÞdþd edYdZfed:dÐff ƒZedÖƒZed׃Zed؃ZedÙƒZedÚƒZedÛƒZed܃Z e !dÝej"¡Z#GdÞd „d ej$ƒZ$dS(ßa2Deprecated from html5lib 1.1. See `here `_ for information about its deprecation; `Bleach `_ is recommended as a replacement. Please let us know in the aforementioned issue if Bleach is unsuitable for your needs. é)Úabsolute_importÚdivisionÚunicode_literalsN)ÚescapeÚunescape)Ú urllib_parseé)Úbaseé)Ú namespacesÚprefixesÚFilterzœhtml5lib's sanitizer is deprecated; see https://github.com/html5lib/html5lib-python/issues/443 and please let us know if Bleach is unsuitable for your needsÚhtmlÚaÚabbrZacronymZaddressZareaZarticleZasideZaudioÚbZbigZ blockquoteÚbrZbuttonZcanvasZcaptionÚcenterÚciteÚcodeÚcolZcolgroupZcommandZdatagridZdatalistÚddÚdelZdetailsZdfnZdialogÚdirZdivZdlZdtZemz event-sourceZfieldsetZ figcaptionZfigureZfooterÚfontÚformÚheaderZh1Zh2Zh3Zh4Zh5Zh6ÚhrÚiZimgÚinputZinsZkeygenZkbdÚlabelZlegendZliÚmÚmapZmenuZmeterZmulticolZnavZnextidZolÚoutputZoptgroupÚoptionÚpZpreZprogressÚqÚsZsampÚsectionZselectZsmallZsoundÚsourceZspacerÚspanZstrikeZstrongÚsubÚsupÚtableZtbodyZtdZtextareaÚtimeZtfootÚthZtheadÚtrÚttÚuZulÚvarZvideoZmathmlZmactionZmathZmerrorZmfracÚmiZ mmultiscriptsZmnÚmoZmoverZmpaddedZmphantomZ mprescriptsZmrootZmrowZmspaceZmsqrtZmstyleZmsubZmsubsupZmsupZmtableZmtdZmtextZmtrZmunderZ munderoverÚnoneZsvgÚanimateÚ animateColorÚ animateMotionÚanimateTransformZclipPathZcircleZdefsZdescZellipsez font-facezfont-face-namez font-face-srcÚgZglyphZhkernÚlinearGradientÚlineÚmarkerÚmetadataz missing-glyphZmpathÚpathZpolygonZpolylineÚradialGradientZrectÚsetÚstopZswitchÚtextÚtitleZtspanÚuse)Nr)NZaccept)Nzaccept-charset)NZ accesskey)NÚaction)NZalign)NZalt)NZ autocomplete)NZ autofocus)NZaxis)NÚ background)NZbalance)NZbgcolor)NZ bgproperties)NÚborder)NZ bordercolor)NZbordercolordark)NZbordercolorlight)NZ bottompadding)NZ cellpadding)NZ cellspacing)NZch)NZ challenge)NÚchar)NZcharoff)NZchoff)NÚcharset)NÚchecked)Nr)NÚclass)NÚclear)NÚcolor)NZcols)NZcolspan)NZcompact)NZcontenteditable)NZcontrols)NZcoords)NÚdata)NZdatafld)NZ datapagesize)NZdatasrc)NZdatetime)NÚdefault)NZdelay)Nr)NZdisabled)NZ draggable)NZdynsrc)NZenctype)NÚend)NZface)NÚfor)Nr)NÚframe)NZ galleryimg)NZgutter)NZheaders)NÚheight)NZ hidefocus)NZhidden)NZhigh)NÚhref)NZhreflang)NZhspace)NZicon)NÚid)NZ inputmode)NZismap)NZkeytype)Nr )NZ leftspacing)NÚlang)NÚlist)NZlongdesc)NZloop)NZ loopcount)NZloopend)NZ loopstart)NZlow)NZlowsrc)NÚmax)NZ maxlength)NZmedia)NÚmethod)NÚmin)NZmultiple)NÚname)NZnohref)NZnoshade)NÚnowrap)NÚopen)NZoptimum©NÚpattern)NZping)Nz point-size)NZposter)NZpqg)NZpreload)NÚprompt)NZ radiogroup)NÚreadonly)NÚrel)Nz repeat-max)Nz repeat-min)NÚreplace)NÚrequired)NZrev)NZ rightspacing)NZrows)NZrowspan)NZrules)NZscope)NZselected)NÚshape)NÚsize)Nr*)NÚsrc)NÚstart)NÚstep©NÚstyle)NZsummary)NÚsuppress)NZtabindex)NÚtarget)NÚtemplate)NrE)NZ toppadding)NÚtype)NZ unselectable)NZusemap)NÚurn)NZvalign)NÚvalue)NÚvariable)NÚvolume)NZvspace)NZvrml)NÚwidth)NÚwrapZxmlrX)NZ actiontype)NZ columnalign)NZ columnlines)NZ columnspacing)NZ columnspan)NÚdepth)NÚdisplay)NZ displaystyle)NZ equalcolumns)NZ equalrows)NZfence)NZ fontstyle)NZ fontweight)NZ linethickness)NZlspace)NZmathbackground)NZ mathcolor)NZ mathvariant)NÚmaxsize)NZminsize)NÚother)NZrowalign)NZrowlines)NZ rowspacing)NZrspace)NZ scriptlevel)NZ selection)NÚ separator)NZstretchyÚxlinkrVZshowrq)Nz accent-height)NÚ accumulate)NZadditive)NZ alphabetic)Nz arabic-form)NZascent)NZ attributeName)NZ attributeType)NZ baseProfile)NZbbox)NZbegin)NZby)NZcalcMode)Nz cap-height©Nz clip-path)Nzcolor-rendering)NZcontent)NZcx)NÚcy)NÚd)NZdx)NZdy)NZdescent)NZdur©NÚfill)Nú fill-opacity)Nú fill-rule)Nú font-family)Nú font-size)Nz font-stretch)Nú font-style)Nú font-variant)Nú font-weight)NÚfrom)NZfx)NZfy)NZg1)NZg2)Nz glyph-name)NZ gradientUnits)NZhanging)Nz horiz-adv-x)Nzhoriz-origin-x)NZ ideographic)NÚk)NZ keyPoints)NZ keySplines)NZkeyTimes©Nz marker-end©Nz marker-mid©Nz marker-start)NZ markerHeight)NZ markerUnits)NZ markerWidth)NZ mathematical)NÚoffset)NZopacity)NZorient)NÚorigin)Nzoverline-position)Nzoverline-thickness)Nzpanose-1)Nr@)NZ pathLength)NZpoints)NZpreserveAspectRatio)NÚr)NZrefX)NZrefY)NZ repeatCount)NZ repeatDur)NZrequiredExtensions)NZrequiredFeatures)NZrestart)NÚrotate)NÚrx)NZry)NZslope)NZstemh)NZstemv)Nz stop-color)Nz stop-opacity)Nzstrikethrough-position)Nzstrikethrough-thickness©NÚstroke)Nzstroke-dasharray)Nzstroke-dashoffset)Nústroke-linecap)Nústroke-linejoin)Nzstroke-miterlimit)Nústroke-opacity)Nú stroke-width)NZsystemLanguage)Nz text-anchor)NÚto)NZ transform)NZu1)NZu2)Nzunderline-position)Nzunderline-thickness)NZunicode)Nz unicode-range)Nz units-per-em)NÚvalues)NÚversion)NZviewBox)NZ visibility)NZwidths)NÚx)Nzx-height)NZx1)NZx2ZactuateZarcroleZroler Úspace)NÚy)NZy1)NZy2)NZ zoomAndPan) r)Nz color-profile©NÚcursorr‚©NÚfilter)Nr>rrŽr)NÚmaskr•))NZaltGlyph)Nr7)Nr8)Nr9)Nr:r¡)NZfeImager£)Nr<r`)NrA)NZtextpath)NZtref)NrB)NrF).Zazimuthzbackground-colorzborder-bottom-colorzborder-collapsez border-colorzborder-left-colorzborder-right-colorzborder-top-colorrNrOr¢Ú directionryZ elevationÚfloatrr†r‡rˆr‰rŠrUzletter-spacingz line-heightZoverflowÚpausez pause-afterz pause-beforeZpitchz pitch-rangeZrichnessZspeakz speak-headerz speak-numeralzspeak-punctuationz speech-rateZstressz text-alignztext-decorationz text-indentz unicode-bidizvertical-alignz voice-familyruz white-spacerv)'ÚautoZaquaZblackÚblockZblueZboldZbothZbottomZbrownrZcollapseZdashedZdottedZfuchsiaZgrayZgreenz !importantZitalicÚleftZlimeZmaroonZmediumr6ZnavyZnormalr^ZoliveZpointerZpurpleZredÚrightZsolidZsilverZtealÚtopZ transparentZ underlineZwhiteZyellow)rƒr„r…r–ršr—r˜r™)Zed2kÚftpÚhttpÚhttpsZircÚmailtoÚnewsÚgopherÚnntpÚtelnetZwebcalZxmppZcalltoZfeedrrZaimÚrsyncÚtagZsshÚsftpÚrtspZafsrP)z image/pngz image/jpegz image/gifz image/webpz image/bmpz text/plainaL ^ # Match a content type / (?P[-a-zA-Z0-9.]+/[-a-zA-Z0-9.]+) # Match any character set and encoding (?:(?:;charset=(?:[-a-zA-Z0-9]+)(?:;(?:base64))?) |(?:;(?:base64))?(?:;charset=(?:[-a-zA-Z0-9]+))?) # Assume the rest is data ,.* $ c s^eZdZdZeeeeee e e e e f ‡fdd„ Zdd„Zdd„Zdd „Zd d „Zd d „Z‡ZS)r zISanitizes token stream of XHTML+MathML+SVG and of inline style attributesc s\tt|ƒ |¡t tt¡||_||_||_ ||_ ||_ ||_ ||_ | |_| |_| |_dS)aSCreates a Filter :arg allowed_elements: set of elements to allow--everything else will be escaped :arg allowed_attributes: set of attributes to allow in elements--everything else will be stripped :arg allowed_css_properties: set of CSS properties to allow--everything else will be stripped :arg allowed_css_keywords: set of CSS keywords to allow--everything else will be stripped :arg allowed_svg_properties: set of SVG properties to allow--everything else will be removed :arg allowed_protocols: set of allowed protocols for URIs :arg allowed_content_types: set of allowed content types for ``data`` URIs. :arg attr_val_is_uri: set of attributes that have URI values--values that have a scheme not listed in ``allowed_protocols`` are removed :arg svg_attr_val_allows_ref: set of SVG attributes that can have references :arg svg_allow_local_href: set of SVG elements that can have local hrefs--these are removed N)Úsuperr Ú__init__ÚwarningsÚwarnÚ_deprecation_msgÚDeprecationWarningÚallowed_elementsÚallowed_attributesÚallowed_css_propertiesÚallowed_css_keywordsÚallowed_svg_propertiesÚallowed_protocolsÚallowed_content_typesÚattr_val_is_uriÚsvg_attr_val_allows_refÚsvg_allow_local_href) Úselfr)rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉ©Ú __class__©úJ/usr/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.pyr»Ös+ zFilter.__init__ccs*tj |¡D]}| |¡}|r |Vq dS)N)r r Ú__iter__Úsanitize_token)rÊÚtokenrÍrÍrÎrÏs zFilter.__iter__cCsp|d}|dvr^|d}|d}||f|jvsH|durRtd|f|jvrR| |¡S| |¡Sn|dkrhn|SdS)Nrq)ÚStartTagÚEndTagÚEmptyTagr]Ú namespacerÚComment)rÀr Ú allowed_tokenÚdisallowed_token)rÊrÑÚ token_typer]rÕrÍrÍrÎrÐ!sÿþ  zFilter.sanitize_tokenc Cs¨d|vr¤|d}t| ¡ƒ}||jD]}|d|=| |¡q(||j@D]¶}||vs\J‚t ddt||ƒ¡ ¡}|  dd¡}zt   |¡}Wnt y¬d}||=Yn0|rL|j rL|j |j vrÊ||=|j dkrLt |j¡}|sì||=qL| d¡|jvrL||=qL|jD]*}||vr t ddt||ƒ¡||<q |d|jvr€td d f|vr€t d |td d f¡r€|td d f=d |vrœ| |d ¡|d <||d<|S) NrPu [`- - \s]+Úu�Z content_typezurl\s*\(\s*[^#\s][^)]+?\)ú r]r}rVz ^\s*[^#\s].*rl)rBÚkeysrÁÚremoverÇÚrer+rÚlowerreÚurlparseÚ ValueErrorÚschemerÅÚdata_content_typeÚmatchr@ÚgrouprÆrÈrÉr ÚsearchÚ sanitize_css) rÊrÑÚattrsZ attr_namesÚ to_removeÚattrZ val_unescapedZurir!rÍrÍrÎr×3sX      ÿ          þ ÿÿÿ zFilter.allowed_tokencCsâ|d}|dkr"d|d|d<nŒ|drž|dvs6J‚g}|d ¡D]:\\}}}| d|durd|ndt||ft|ƒf¡qFd |dd  |¡f|d<nd |d|d<| d ¡rÐ|ddd …d|d<d|d<|d=|S)NrqrÓzr]rP)rÒrÔz %s="%s"z%s:%sz<%s%s>rÚz<%s>Z selfClosingéÿÿÿÿz/>Z Characters)ÚitemsÚappendr rÚjoinÚget)rÊrÑrÙrèÚnsr]ÚvrÍrÍrÎrØes 0 zFilter.disallowed_tokencCsüt d¡ d|¡}t d|¡s"dSt d|¡s2dSg}t d|¡D]®\}}|sPqB| ¡|jvrv| |d|d¡qB| d ¡d  ¡d vrÌ| ¡D]}||j vr”t d |¡s”qðq”| |d|d¡qB| ¡|j vrB| |d|d¡qBd  |¡S) Nzurl\s*\(\s*[^\s)]+?\s*\)\s*rÛz@^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$rÚz ^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$z([-\w]+)\s*:\s*([^:;]*)z: ú;ú-r)rHrIZmarginZpaddingz_^(#[0-9a-fA-F]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$) rÞÚcompiler+räÚfindallrßrÂríÚsplitrÃrÄrî)rÊrmZcleanZproprsÚkeywordrÍrÍrÎrçys*     ÿzFilter.sanitize_css)Ú__name__Ú __module__Ú __qualname__Ú__doc__rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉr»rÏrÐr×rØrçÚ __classcell__rÍrÍrËrÎr Ôs"õ:2)%rûZ __future__rrrrÞr¼Zxml.sax.saxutilsrrZpip._vendor.six.movesrràrÚr Z constantsr r Ú__all__r¾r½r¿Ú frozensetrÀrÁrÇrÈrÉrÂrÃrÄrÅrÆrôÚVERBOSErãr rÍrÍrÍrÎÚs&  ÿ                                                                                                                                                                  €ß% €€ºKó   1 *   õ