£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    .e                     @   s   d dl mZmZmZ d dlmZ d dlmZ zd dlm	  m
Z W n& ek
rh   d dlm	  mZ Y nX ddddd	d
gZz,edZeeesedZeeestW n   dZY nX dZG dd deZdd Zdd Zdd	 Zdd ZdS )    )absolute_importdivisionunicode_literals)
ModuleType)	text_typeNdefault_etreeMethodDispatcherisSurrogatePairsurrogatePairToCodepointmoduleFactoryFactorysupports_lone_surrogatesz"\uD800"z	u"\uD800"FTc                   @   s"   e Zd ZdZdddZdd ZdS )	r   ap  Dict with 2 special properties:

    On initiation, keys that are lists, sets or tuples are converted to
    multiple keys so accessing any one of the items in the original
    list-like object returns the matching value

    md = MethodDispatcher({("foo", "bar"):"baz"})
    md["foo"] == "baz"

    A default value which can be set through the default attribute.
     c                 C   sv   g }|D ]B\}}t |ttttfr<|D ]}|||f q&q|||f qt| | t| t|kslt	d | _
d S N)
isinstancelisttuple	frozensetsetappenddict__init__lenAssertionErrordefault)selfitemsZ_dictEntriesnamevalueitemr   r   ?/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/_utils.pyr   1   s    zMethodDispatcher.__init__c                 C   s   t | || jS r   )r   getr   )r   keyr   r   r   __getitem__@   s    zMethodDispatcher.__getitem__N)r   )__name__
__module____qualname____doc__r   r"   r   r   r   r   r   $   s   
c                 C   sL   t | dkoJt| d dkoJt| d dkoJt| d dkoJt| d dkS )N   r      i        i  )r   ord)datar   r   r   r	   G   s    c                 C   s,   dt | d d d  t | d d  }|S )Ni   r   r(   i   r)   r*   )r+   )r,   Zchar_valr   r   r   r
   M   s    c                    s   i  fdd}|S )Nc                    s   t tjtdrd| j }n
d| j }t| }z| | | W S  tk
r   t|} | f||}|j| dkri |< d| kri | |< d| | kri | | |< || | |< | Y S X d S )N z_%s_factorys   _%s_factoryr   argskwargs)	r   r   r#   typer   r   KeyError__dict__update)Z
baseModuler.   r/   r   Zkwargs_tuplemodZobjsfactoryZmoduleCacher   r   moduleFactoryY   s$    
z+moduleFactoryFactory.<locals>.moduleFactoryr   )r6   r7   r   r5   r   r   V   s    c                    s   i   fdd}|S )Nc                     s2   t | t | f}| kr*| | |<  | S r   )r   r   )r.   r/   r!   cachefuncr   r   wrappedv   s    zmemoize.<locals>.wrappedr   )r:   r;   r   r8   r   memoizes   s    r<   )Z
__future__r   r   r   typesr   Zpip._vendor.sixr   Zxml.etree.cElementTreeZetreeZcElementTreer   ImportErrorZxml.etree.ElementTreeZElementTree__all__evalZ_xr   r   r   r   r   r	   r
   r   r<   r   r   r   r   <module>   s0    

#	