Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 0Zy&@sdZddlmZddddddd d d d d ddddd dgZddlZddlZddlZddlmZyddl m Z m Z Wn$e k rddl m Z m Z YnXddlmZddlmZddlmZyddlmZWn e k rddlmZYnXyeWnek r eZYnXyeWnek r4eefZYnXddZdZejdd eid!Zejd"d eid!Zejd#d eid!Z ejd$Z!ejd%Z"ejd&Z#ej$dej%j&Z'ej$d+j&Z(ejd,d eid!Z)ej$d-Z*ej$d.ej%j+Z,d/d0Z-d1d2Z.d3d4Z/Gd5d6d6e Z0Gd7d8d8e1Z2Gd9d:d:e1Z3e3d d;d<Z4e3d d;d<Z5e3dd=d<Z6e3dd=d<Z7e3dd;d<Z8e3dd=d<Z9Gd>d?d?ej:e2Z;Gd@dAdAeje2Z?GdDdEdEej@e2ZAGdFdGdGejBZCej$edHej%jDZEej$dHjFdIej%jDZGddJdZHddKdZIddLdZJddMdZKddNdZLdOdPZMdQdRZNGdSdTdTe=ZOeOeCjPdU<ddVd ZQdWdXZRGdYdZdZe ZSGd[d\d\e1ZTGd]d^d^e1ZUGd_d`d`eUe=ZVeVeCjPda<GdbdcdceUe=ZWeWeCjPdd<GdedfdfeZXGdgdhdheYZZGdidjdjeYZ[GdkdldleZ\GdmdndneUe=Z]e]eCjPdo<Gdpdqdqe=Z^e^eCjPdr<dsdtZ_dudvZ`ej$dwjaZbej$dwjFdxjaZcddzdZdeedjed_dd{d ZeGd|d}d}ejfZfGd~ddejgZhddZiefZjehZkdS)z.The ``lxml.html`` tool set for HTML handling. )absolute_importdocument_fromstringfragment_fromstringfragments_fromstring fromstringtostringElementdefsopen_in_browser submit_formfind_rel_links find_classmake_links_absoluteresolve_base_href iterlinks rewrite_linksparseN)partial)MutableMapping MutableSet)etree)r )SetMixin)urljoincCsB|s|Stjddkr(tjdtjj}ntjdtjj}|d|S)Nrz^(\s*)u'z^(\s*)b'z\1')sys version_inforecompileMsub)sr!r# /usr/lib64/python3.6/__init__.py__fix_docstringLs r%zhttp://www.w3.org/1999/xhtmlz9descendant-or-self::a[@rel]|descendant-or-self::x:a[@rel]x) namespacesz7descendant-or-self::option|descendant-or-self::x:optionz3descendant-or-self::form|descendant-or-self::x:formztdescendant-or-self::*[@class and contains(concat(' ', normalize-space(@class), ' '), concat(' ', $class_name, ' '))]zdescendant-or-self::*[@id=$id]zstring()zurl\((z ["][^"]*["]|z ['][^']*[']|z[^)]*)\)z@import "(.*?)"z%//label[@for=$id]|//x:label[@for=$id]z[^ ]+z%[^;=]*;\s*(?:url\s*=\s*)?(?P.*)$cCs`|dddkr |dddks@|dddkrT|dddkrT|dd|dfS||fSdS)Nr"'r*r*r#)r"posr#r#r$_unquote_matchks@r,cCs4t|trt|ddSt|tr,t|ddS|SdS)z1Convert the result back into the input type. zutf-8)encodingunicodeN) issubclassbytesrr.)typresultr#r#r$_transform_resultrs     r3cCs@t|tr<|ddkr<|dttdtkr<|jddS|S)Nr{r}r*) isinstance basestringlenXHTML_NAMESPACEsplit)tagr#r#r$_nons}s $r<cs`eZdZdZddZddZddZfdd Zd d Zd d Z ddZ ddZ ddZ Z S)Classesa*Provides access to an element's class attribute as a set-like collection. Usage:: >>> el = fromstring('') >>> classes = el.classes # or: classes = Classes(el.attrib) >>> classes |= ['block', 'paragraph'] >>> el.get('class') 'hidden large block paragraph' >>> classes.toggle('hidden') False >>> el.get('class') 'large block paragraph' >>> classes -= ('some', 'classes', 'block') >>> el.get('class') 'large paragraph' cCs||_t|jdd|_dS)Nclass) _attributesrget_get_class_value)selfZ attributesr#r#r$__init__szClasses.__init__cCsT| stjd|rtd||jj}||kr6dS|j|dj||jd<dS)z[ Add a class. This has no effect if the class is already present. z\szInvalid class name: %rN r>)rsearch ValueErrorrBr:appendjoinr@)rCvalueclassesr#r#r$adds   z Classes.addcsd stjdrtdfdd|jjD}|rNdj||jd<nd|jkr`|jd=dS)zn Remove a class if it is currently present. If the class is not present, do nothing. z\szInvalid class name: %rcsg|]}|kr|qSr#r#).0name)rJr#r$ sz#Classes.discard..rEr>N)rrFrGrBr:rIr@)rCrJrKr#)rJr$discards  zClasses.discardcs2| stjd|rtd|tt|j|dS)zw Remove a class; it must currently be present. If the class is not present, raise a KeyError. z\szInvalid class name: %rN)rrFrGsuperr=remove)rCrJ) __class__r#r$rRs zClasses.removecCs|j}||ko||jkS)N)rBr:)rCrNrKr#r#r$ __contains__szClasses.__contains__cCst|jjS)N)iterrBr:)rCr#r#r$__iter__szClasses.__iter__cCst|jjS)N)r8rBr:)rCr#r#r$__len__szClasses.__len__cCsL|jj}d}x"|D]}||kr|j|d}qW|rHdj||jd<dS)z. Add all names from 'values'. FTrEr>N)rBr:rHrIr@)rCvaluesrKZextendedrJr#r#r$updates   zClasses.updatec Cs| stjd|rtd||jj}y|j|d}Wn"tk r^|j|d}YnX|rvdj||jd<n|jd=|S)z Add a class name if it isn't there yet, or remove it if it exists. Returns true if the class was added (and is now enabled) and false if it was removed (and is now disabled). z\szInvalid class name: %rFTrEr>) rrFrGrBr:rRrHrIr@)rCrJrKZenabledr#r#r$toggles     zClasses.toggle)__name__ __module__ __qualname____doc__rDrLrPrRrTrVrWrYrZ __classcell__r#r#)rSr$r=s  r=cseZdZd+fdd ZeddZejddZeddZed d Zed d Z ed dZ eddZ e jddZ e j ddZ ddZ ddZddZddZddZddZd,d d!Zd-d#d$Zd.d%d&Zd'd(Zd/d)d*ZZS)0 HtmlMixinNcstt|j||dS)zset(self, key, value=None) Sets an element attribute. If no value is provided, or if the value is None, creates a 'boolean' attribute without value, e.g. "
" for ``form.set('novalidate')``. N)rQ HtmlElementset)rCkeyrJ)rSr#r$rbsz HtmlMixin.setcCs t|jS)zB A set-like wrapper around the 'class' attribute. )r=attrib)rCr#r#r$rKszHtmlMixin.classescCs4|j}|r|jd|n|jddk r0|jd=dS)Nr>)rBrbrArd)rCrKrJr#r#r$rKs cCs |jjjS)z Returns the base URL, given when the page was parsed. Use with ``urlparse.urljoin(el.base_url, href)`` to get absolute URLs. )Z getroottreedocinfoZURL)rCr#r#r$base_url szHtmlMixin.base_urlcCst|S)z0 Return a list of all the forms ) _forms_xpath)rCr#r#r$formsszHtmlMixin.formscCs|jddtiddS)zt Return the element. Can be called from a child element to get the document's head. z//body|//x:bodyr&)r'r)xpathr9)rCr#r#r$bodyszHtmlMixin.bodycCs|jddtiddS)zu Returns the element. Can be called from a child element to get the document's head. z//head|//x:headr&)r'r)rir9)rCr#r#r$head$szHtmlMixin.headcCs2|jd}|sdSt||d}|s&dS|dSdS)zN Get or set any