Ë …cGµÃãó�—dZddlmZddlZddlmZddlmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZddlmZmZmZdd lmZmZmZmZmZdd lmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&dd l'm(Z(m)Z)dd l*m+Z+m,Z,m-Z-dd l.m/Z/m0Z0m1Z1m2Z2m3Z3ddl4m5Z5m6Z6ddl7m8Z8m9Z9ddl:m;Z;ddle>jd«e>jd«e>jd«e>jd«e>jd«e>jd«e>jd«e>jd«e>jd«e>j�d«e>j�d«e>j�d«e>j�d «e>j�d!«e>j�d"«e>j�d#«e>j�d$«y)%z> XPath 2.0 implementation - part 1 (parser class and symbols) é)ÚABCMetaN)ÚMutableSequence)Úurlparse) ÚcastÚAnyÚCallableÚClassVarÚDictÚListÚMutableMappingÚOptionalÚTupleÚTypeÚUnioné)Úupper_camel_caseÚ is_ncnameÚordinal)ÚElementPathErrorÚElementPathTypeErrorÚElementPathValueErrorÚMissingContextErrorÚ xpath_error)ÚNamespacesTypeÚ XSD_NAMESPACEÚ XML_NAMESPACEÚXPATH_FUNCTIONS_NAMESPACEÚXQT_ERRORS_NAMESPACEÚ XSD_NOTATIONÚXSD_ANY_ATOMIC_TYPEÚget_prefixed_name)ÚUNICODE_COLLATION_BASE_URIÚUNICODE_CODEPOINT_COLLATION)Ú UntypedAtomicÚAtomicValueTypeÚQName)Ú NargsTypeÚ XPathTokenÚ ProxyTokenÚ XPathFunctionÚXPathConstructor)Ú XPathContextÚXPathSchemaContext)Úis_sequence_typeÚmatch_sequence_type)ÚAbstractSchemaProxy)Ú XPath1Parsercó:‡—eZdZUdZdZeZeee e dœZ e e eefed<dZhd£Zhd£Zej(j+«Ze eeefefed<e eefed <eed <eed <ed ed dfd„«Z d7d eedededeedeedeedeedeedeedee eefdee eefdee eefded dfˆfd„ Z d efˆfd„ Z!d e ee"ffd„Z#e$d efd„«Z%dd œd!ed"eed efˆfd#„Z&e' d8d%ed&ed'e(d(e)ed$eed)fe*efd*e)eeed)ffd e+e+d)e"fge+d)e"fff d+„«Z,d9d,ed&ed e-e.fd-„Z/ d:d.e+d)e"fd/eed0eed(eed)fd&ed e-e.f d1„Z0d efd2„Z1d3ed efˆfd4„ Z2d5e3ee"fd dfd6„Z4ˆxZ5S);Ú XPath2ParseraR XPath 2.0 expression parser class. This is the default parser used by XPath selectors. A parser instance represents also the XPath static context. With *variable_types* you can pass a dictionary with the types of the in-scope variables. Provide a *namespaces* dictionary argument for mapping namespace prefixes to URI inside expressions. If *strict* is set to `False` the parser enables also the parsing of QNames, like the ElementPath library. There are some additional XPath 2.0 related arguments. :param namespaces: a dictionary with mapping from namespace prefixes into URIs. :param variable_types: a dictionary with the static context's in-scope variable types. It defines the associations between variables and static types. :param strict: if strict mode is `False` the parser enables parsing of QNames, like the ElementPath library. Default is `True`. :param compatibility_mode: if set to `True` the parser instance works with XPath 1.0 compatibility rules. :param default_namespace: the default namespace to apply to unprefixed names. For default no namespace is applied (empty namespace ''). :param function_namespace: the default namespace to apply to unprefixed function names. For default the namespace "http://www.w3.org/2005/xpath-functions" is used. :param schema: the schema proxy class or instance to use for types, attributes and elements lookups. If an `AbstractSchemaProxy` subclass is provided then a schema proxy instance is built without the optional argument, that involves a mapping of only XSD builtin types. If it's not provided the XPath 2.0 schema's related expressions cannot be used. :param base_uri: an absolute URI maybe provided, used when necessary in the resolution of relative URIs. :param default_collation: the default string collation to use. If not set the environment's default locale setting is used. :param document_types: statically known documents, that is a dictionary from absolute URIs onto types. Used for type check when calling the *fn:doc* function with a sequence of URIs. The default type of a document is 'document-node()'. :param collection_types: statically known collections, that is a dictionary from absolute URIs onto types. Used for type check when calling the *fn:collection* function with a sequence of URIs. The default type of a collection is 'node()*'. :param default_collection_type: this is the type of the sequence of nodes that would result from calling the *fn:collection* function with no arguments. Default is 'node()*'. z2.0)ÚxmlÚxsÚfnÚerrÚDEFAULT_NAMESPACES)ÚaxisÚfunctionú kind test> ú..ú(name)ú(float)ú(string)ú (decimal)ú (integer)Ú(Ú*Ú.Ú@Ú{> ú document-nodeúempty-sequenceúschema-elementúschema-attributeúprocessing-instructionÚifÚitemÚnodeÚtextÚcommentÚelementÚ attributeÚ typeswitchÚfunction_signaturesÚ namespacesÚtokenÚ next_tokenÚ trace_dataÚreturnNcó—y)zTrace data collectorN©)rXs úE/usr/lib/python3.12/site-packages/elementpath/xpath2/xpath2_parser.pyÚtracerzXPath2Parser.traceres�óÚstrictÚcompatibility_modeÚdefault_collationÚdefault_namespaceÚfunction_namespaceÚ xsd_versionÚschemaÚbase_uriÚvariable_typesÚdocument_typesÚcollection_typesÚdefault_collection_typec󕇗tt‰� ||«|‰_|�|‰_n_t j t jd«}d|vr7|jd«\}}|j«dk(rt›d|›�‰_|�|nd‰_ |�|x‰_ ‰jd<n!‰jjdd«‰_ |�|‰_|€n.t!|t"«s d}t%|«‚|j'‰«| si‰_nCt+ˆfd„| j-«D««r| j/«‰_n t1d«‚| €dnt3| «j5«‰_| r-t9ˆfd „| j-«D««r t1d «‚| ‰_| r-t9ˆfd „| j-«D««r t1d «‚| ‰_t?| ‰«s t1d «‚| ‰_ y)NrDzutf-8z?lang=ú1.0Úzz(XPath2Parser.__init__..šsøèø€ÐLÑ4K¨qÔ! ! T×*Ñ4Kùsƒz1invalid sequence type for in-scope variable typesc3ó8•K—|]}t|‰« –—Œy­wrorprqs €r\ruz(XPath2Parser.__init__..¢søèø€ÐRÑ:Q°QÔ'¨¨4Ó0Ô0Ñ:Qùóƒz0invalid sequence type in document_types argumentc3ó8•K—|]}t|‰« –—Œy­wrorprqs €r\ruz(XPath2Parser.__init__..§søèø€ÐTÑ:S°QÔ'¨¨4Ó0Ô0Ñ:Sùrwz2invalid sequence type in collection_types argumentz:invalid sequence type for default_collection_type argument)!Úsuperr3Ú__init__r`raÚlocaleÚ setlocaleÚ LC_COLLATEÚsplitÚlowerr"Ú _xsd_versionrbrUÚgetrcÚ isinstancer0rÚ bind_parserrgÚallÚvaluesÚcopyrrÚgeturlrfÚanyrhrir.rj)rtrUr_r`rarbrcrdrerfrgrhrirjÚ_localeÚ language_codeÚencodingÚmsgÚ __class__s` €r\rzzXPath2Parser.__init__isèù€ô Œl˜DÑ*¨:°vÔ>Ø"4ˆÔà Ð (Ø%6ˆDÕ "ô ×&Ñ&¤v×'8Ñ'8¸$Ó?ˆGØ�g‰~Ø*1¯-©-¸Ó*<Ñ'� ˜xØ—>‘>Ó# wÒ.Ü0JÐ/KÈ6ÐR_ÐQ`Ð-a�DÔ*à+6Ð+B™KȈÔà Ð (Ø;LÐ LˆDÔ " T§_¡_°RÒ%8à%)§_¡_×%8Ñ%8¸¸RÓ%@ˆDÔ "à Ð )Ø&8ˆDÔ #à ˆ>Ø Ü˜FÔ$7Ô8ØPˆCÜ& sÓ+Ð +à × Ñ ˜tÔ $áØ"$ˆDÕ Ü ÓL°N×4IÑ4IÔ4KÓLÔ LØ"0×"5Ñ"5Ó"7ˆDÕ ä'Ð([Ó\Ð \à (Ð 0™´h¸xÓ6H×6OÑ6OÓ6QˆŒ á ÜÓR¸.×:OÑ:OÔ:QÓRÔRÜ+Ð,^Ó_Ð_Ø,ˆÔá ÜÓTÐ:J×:QÑ:QÔ:SÓTÔTÜ+Ð,`ÓaÐaØ 0ˆÔäÐ 7¸Ô>Ü'ð)KóLð Là'>ˆÕ$r^có•—g}|jr|jd«|jtk7r|jd|j›�«|jt k7r|jd|j›�«|j dk7r|jd|j ›�«|j�|jd|j›�«|j�|jd|j›�«|jr|jd|j›�«|jr|jd |j›�«|jr|jd |j›�«|jd k7r|jd |j›�«|st‰|�9«St‰|�9«dd }|jd«r|›dj!|«›d�S|›ddj!|«›d�S)Nzcompatibility_mode=Truezdefault_collation=zfunction_namespace=rlz xsd_version=zschema=z base_uri=zvariable_types=zdocument_types=zcollection_types=únode()*zdefault_collection_type=éÿÿÿÿrBú, Ú))r`Úappendrar#rcrr€rerfrgrhrirjryÚ__str__ÚendswithÚjoin)rtÚargsÚ repr_stringr�s €r\r”zXPath2Parser.__str__°s×ø€ØˆØ × "Ò "Ø �K‰KÐ1Ô 2Ø × !Ñ !Ô%@Ò @Ø �K‰KÐ,¨T×-CÑ-CÐ,FÐGÔ HØ × "Ñ "Ô&?Ò ?Ø �K‰KÐ-¨d×.EÑ.EÐ-HÐIÔ JØ × Ñ  Ò %Ø �K‰K˜, t×'8Ñ'8Ð&;Ð<Ô =Ø �;‰;Ð "Ø �K‰K˜' $§+¡+ Ð1Ô 2Ø �=‰=Ð $Ø �K‰K˜) D§M¡MÐ#4Ð5Ô 6Ø × Ò Ø �K‰K˜/¨$×*=Ñ*=Ð)@ÐAÔ BØ × Ò Ø �K‰K˜/¨$×*=Ñ*=Ð)@ÐAÔ BØ × Ò Ø �K‰KÐ+¨D×,AÑ,AÐ+DÐEÔ FØ × 'Ñ '¨9Ò 4Ø �K‰KÐ2°4×3OÑ3OÐ2RÐSÔ TÙÜ‘7‘?Ó$Ð $ä‘g‘oÓ'¨¨Ð,ˆ Ø × Ñ  Ô $Ø!�] 4§9¡9¨T£?Ð"3°1Ð5Ð 5Ø�˜b §¡¨4£Ð 1°Ð3Ð3r^có‚—|jj«}|jdd«|jdd«|S)NÚ symbol_tableÚ tokenizer)Ú__dict__r†Úpop)rtÚstates r\Ú __getstate__zXPath2Parser.__getstate__Îs5€Ø— ‘ ×"Ñ"Ó$ˆØ � ‰ �. $Ô'Ø � ‰ �+˜tÔ$؈ r^có¢—|j€ |jS |jjS#ttf$r|jcYSwxYwro)rer€rdÚAttributeErrorÚNotImplementedError©rts r\rdzXPath2Parser.xsd_versionÔsN€à �;‰;Ð Ø×$Ñ$Ð $ð %Ø—;‘;×*Ñ*Ð *øÜÔ 3Ð4ò %Ø×$Ñ$Ò $ð %úsš0°AÁ A)ÚmessageÚsymbolsr¤c󢕗tt|� |d|iŽ|jjdk(r—|j j d«|j }d}|r9|jdd«|jjdk(r|dz}n|dz }|rŒ9|jd«|jj d«||_|j S)Nr¤ú(:Ú:éú:))ryr3ÚadvancerWÚsymbolrVÚ unexpectedÚ advance_until)rtr¤r¥rVÚ comment_levelr�s €r\r«zXPath2Parser.advanceÞsºø€Ü Œl˜DÑ)¨7ÐD¸GÒDà �?‰?× !Ñ ! TÒ )ð �J‰J× !Ñ ! #Ô &Ø—J‘JˆEàˆMÙØ×"Ñ" 4¨Ô.Ø—?‘?×)Ñ)¨TÒ1Ø! QÑ&‘Mà! QÑ&�Mò  ð �L‰L˜Ô à �O‰O× &Ñ & sÔ +؈DŒJà�z‰zÐr^r[r¬ÚbpÚnargsÚsequence_types.Úlabelc ó*‡ —dtdtfd„}ddtdttdttdt ffd„}|s|dk(sJ‚dd |zf}|j ||||tf||||¬ « Š d td tfdtd tffˆ fd „ }|S)z"Creates a constructor token class.rtrYcó°— |jjd«|jjd«f|dd|jjjdk(rd}|j d|«‚|jjd«d|_|djdk(r|j«|S#t$r|j d«d‚wxYw) NrBérÚ,z/Too many arguments: expected at most 1 argumentÚXPST0017r’Ú?) Úparserr«Ú expressionrWr¬ÚerrorÚvalueÚ SyntaxErrorÚto_partial_function)rtrŒs r\Únud_z&XPath2Parser.constructor..nud_ýs€ð 7Ø— ‘ ×#Ñ# CÔ(ØŸ;™;×1Ñ1°!Ó4Ð5��Q�R�Ø—;‘;×)Ñ)×0Ñ0°CÒ7ØK�CØŸ*™* Z°Ó5Ð5Ø— ‘ ×#Ñ# CÔ(Ø!�” ð�A‰w�~‰~ Ò$Ø×(Ñ(Ô*؈Køô ò 7Ø—j‘j Ó,°$Ð6ð 7ús ‚BB9Â9CNÚcontextcóÚ—|j� |j}|j|j|««}|€gS|dk(r$|djdk(r|j dd«‚ t |t «r|j|j«S|j|«S#t$r‚ttf$r/}t |t«rgcYd}~S|j d|«d‚d}~wwxYw)Nr¹rÚXPTY0004z"cannot evaluate a partial functionÚFORG0001) rÁÚ data_valueÚ get_argumentr¬r¼r‚r$rr½rÚ TypeErrorÚ ValueErrorr-)rtrÁÚargr7s r\Ú evaluate_z+XPath2Parser.constructor..evaluate_ sÓ€à�|‰|Ð'ØŸ,™,�à—/‘/ $×"3Ñ"3°GÓ"<Ó=ˆC؈{Ø� ؘ’  Q¡§¡°#Ò 5Ø—j‘j Ð-QÓRÐRð <ܘc¤=Ô1ØŸ9™9 S§Y¡YÓ/Ð/Ø—y‘y “~Ð%øÜ#ò ØÜœzÐ*ò <ܘgÔ'9Ô:Ø•IØ—j‘j ¨SÓ1°tÐ;ûð <ús*Á'*B#ÂB#Â#C*Â;C%à C*ÃC%Ã%C*r©zxs:anyAtomicType?zxs:%s?)r±r²r³ÚbasesÚlbpÚrbpÚnudÚevaluateÚfunc.có~•—|jjd«d}|dk7r td«‚t‰||«|S)NÚ_rrz7The function name must be 'cast' or starts with 'cast_')Ú__name__Ú partitionrÈÚsetattr)rÐÚ method_nameÚ token_classs €r\Úbindz&XPath2Parser.constructor..bind+sAø€ØŸ-™-×1Ñ1°#Ó6°qÑ9ˆKؘfÒ$Ü Ð!ZÓ[Ð[Ü �K ¨dÔ 3؈Kr^ro) r+r r,rr r%Úregisterrr) Úclsr¬r°r±r²r³rÀrÊrØr×s @r\Ú constructorzXPath2Parser.constructor÷sÀø€ð  Ô'ð Ô,<ó ñ  <Ô,ð <´xÄ Ñ7Mð <Üœ˜d™¤_Ð4Ñ5ó <ñ,ؘA’:Ð �:Ø1°8¸fÑ3DÐEˆNà—l‘l 6°À~Ø).Ô7GÐ6IÈrÐWYØ'+°ið#óAˆ ð ”x ¤S Ñ)ð ¬h°s¼C°xÑ.@õ ð ˆ r^Úatomic_type_namec óv‡—‰ttfvr td«‚dtdtfd„}ddtdtt dt tdtffˆfd„ }t‰|j«}d|jd d «z}|d d d |z|||||j|ddœ }tttt|tf|««}t!j"|«|j$|j&j$ur$t)|j&j$«|_||j$|<d|_|S)zFRegisters a token class for a schema atomic type constructor function.ÚXPST0080Úself_rYcó —|jjd«|jjd«f|dd|jjd« |j«|_|S#t $r d|_Y|SwxYw)NrBr¶rr’)rºr«r»rÏr½r)rßs r\rÀz-XPath2Parser.schema_constructor..nud_9sz€Ø �L‰L× Ñ  Ô %ØŸ ™ ×/Ñ/°Ó2Ð3ˆE�!�"ˆIØ �L‰L× Ñ  Ô %ð #Ø#Ÿn™nÓ.�” ðˆLøô'ò #Ø"�• ؈Lð #úsÁA.Á.BÂBNrÁcóJ•—|j|«}|�|jj€gS|j|«} |jjj |‰«S#t t f$r.}t|t«rgcYd}~S|jd|«‚d}~wwxYw)NrÄ) rÆrºreÚ string_valueÚcast_asrÇrÈr‚r-r¼)rßrÁrÉr½r7rÜs €r\rÊz2XPath2Parser.schema_constructor..evaluate_Ds•ø€à×$Ñ$ WÓ-ˆC؈{˜eŸl™l×1Ñ1Ð9Ø� à×&Ñ& sÓ+ˆEð 3Ø—|‘|×*Ñ*×2Ñ2°5Ð:JÓKÐKøÜœzÐ*ò 3ܘgÔ'9Ô:Ø•IØ—k‘k *¨cÓ2Ð2ûð 3ús#¿%A%Á%B"Á4BÂB" BÂB"z_%sConstructorFunctionr¨rÒr©úconstructor functionz\b%s(?=\s*\(|\s*\(\:.*\:\)\()) r¬r±r³ÚpatternrÌrÍrÎrÏÚ __module__Ú __qualname__Ú __return__ro)r rrr*r r,rr r%r!rUÚreplacerærrrrrÙršr�Údictr›) rtrÜr°rÀrÊr¬Útoken_class_nameÚkwargsr×s ` r\Úschema_constructorzXPath2Parser.schema_constructor3s8ø€ð Ô 3´\ÐBÑ BܘjÓ)Ð )ð œ ð ¬-ó ñ 3œ]ð 3´X¼lÑ5Kð 3Üœ˜d™¤_Ð4Ñ5õ 3ô#Ð#3°T·_±_ÓEˆØ3°f·n±nÀSÈ#Ó6NÑNÐàØØ+Ø7¸&Ñ@ØØØØ!ØŸ/™/Ø,Øñ  ˆôÜ ”Ñ ¤Ð)9¼MÐ;KÈVÓ!Tó ˆ ô × Ñ  Ô-à × Ñ  §¡× ;Ñ ;Ñ ;Ü $ T§^¡^×%@Ñ%@Ó AˆDÔ Ø$/ˆ×ј&Ñ!؈ŒàÐr^ÚcallbackÚnameÚprefixc óä ‡‡‡—ddl}|xs ‰j}t|«st|›d�«‚|‰jvrt|›d�«‚|j ‰«}|j �'|jrt|j«df} ned} nb|j€t|j«} n@t|j«t|j«z t|j«f} |r!‰j|} t| |›d|›�«} nt} ttd|›�«} t| j«›d�} | j} ‰j ‰j"j ur$t%‰j"j «‰_| ‰j vrd| j›d �}t|«‚|‰j vst'‰j |t(«�s|‰j vr‰‰j |}t'|t*«r|j,d k(r|›d |›�}t|«‚| |j.k(rd| j›d �}t|«‚|‰j d |j.›d |›�<t| j0«›d�}||||‰j2|ddœ}t5t6t(t9| t(f|««}t;j<|«|‰j |< ddt*dt>t@dtBfˆˆˆfd„ }| || d| |||‰j2| ddœ }‰�rd‰|d<‰jD‰j"jDur$t%‰j"jD«‰_"| €�ntG| tH«rJt‰«| dzk(sJ‚djKdjM‰dd«‰d«‰jD| | f<n»| d€Pt‰«| ddzk(sJ‚djKdjM‰dd«‰d«‰jD| | df<nft‰«| ddzk(sJ‚tO| d| ddz«D]8}djKdjM‰d|«‰d«‰jD| |f<Œ:t5t6t*t9| t*f|««}t;j<|«|‰j | <d‰_(|S)z1Registers a token class for an external function.rNz is not a namez is a reserved function namer¨zfn:ÚExternalFunctionz function z is already registeredr;z name collides with rFÚ}r))Ú class_namer¬rÌrÍrærçrèrßrÁrYcó|•—g}tt|««D]&}|j||¬«}|j|«Œ(‰ rvt t |‰ «d¬«D]1\}\}}t ||‰ «rŒt|«›d|›�}td|«‚‰|Ž}t |‰ d‰ «sd‰ d›�}td|«‚|S‰|ŽS)N)Úindexr©)Ústartz' argument does not match sequence type ÚXPDY0050r�z$Result does not match sequence type ) ÚrangeÚlenrÆr“Ú enumerateÚzipr/rr) rßrÁr—ÚkrÉÚstÚmsg_Úresultrîrtr²s €€€r\Úevaluate_external_functionzBXPath2Parser.external_function..evaluate_external_function¸sÝø€àˆDÜœ3˜u›:Ö&�Ø×(Ñ(¨¸Ð(Ó:�Ø— ‘ ˜CÕ ð'ñÜ$-¬c°$¸Ó.GÈq×$Q‘L�A‘y˜˜RÜ.¨s°B¸Õ=Ü")¨!£* Ð-TÐUWÐTZÐ[˜Ü)¨*°dÓ;Ð;ð%Rñ " 4˜�Ü*¨6°>À"Ñ3EÀtÔLØAÀ.ÐQSÑBTÐAWÐX�DÜ% j°$Ó7Ð7Ø� á˜T�?Ð "r^zexternal function) rôr¬Ú namespacer³r±rÌrÍrÏrærçrèr²r©zfunction({}) as {}r‘r�zfunction({}, ...) as {}ro))ÚinspectrÓrrÚRESERVED_FUNCTION_NAMESÚgetfullargspecÚvarargsr—rúÚdefaultsrUr&rrÚqnameÚ expanded_nameršr�rêÚ issubclassr)r*r³rÚ local_namerærrrrrÙr r,rrTr‚ÚintÚformatr–rùr›)rtrîrïrðr²r°rr¬Úspecr±rrrôÚ lookup_namerŒÚ token_clsÚproxy_class_namerìÚ proxy_classrÚarityr×s`` ` r\Úexternal_functionzXPath2Parser.external_functionmséú€ó àÒ*˜×*Ñ*ˆÜ˜Ô Ü'¨6¨*°NÐ(CÓDÐ DØ �t×3Ñ3Ñ 3Ü'¨6¨*Ð4PÐ(QÓRÐ Rð×%Ñ% hÓ/ˆØ �<‰<Ð #Ø�yŠyܘDŸI™I›¨Ð,‘à‘Ø �]‰]Ð "ܘŸ ™ “N‰E䘟 ™ “N¤S¨¯©Ó%7Ñ7¼¸T¿Y¹Y»ÐGˆEá ØŸ™¨Ñ/ˆIܘ)¨ x¨q°°Ð%9Ó:‰Eä1ˆIÜÔ3°s¸6¸(°^ÓDˆEä(¨¯©Ó5Ð6Ð6FÐGˆ Ø×)Ñ)ˆ à × Ñ  §¡× ;Ñ ;Ñ ;Ü $ T§^¡^×%@Ñ%@Ó AˆDÔ à ˜$×+Ñ+Ñ +ؘeŸk™k˜_Ð,BÐCˆCÜ'¨Ó,Ð ,Ø ˜4×,Ñ,Ñ ,ܘt×0Ñ0°Ñ8¼*ÕEà˜×*Ñ*Ñ*Ø ×-Ñ-¨fÑ5� Ü! )¬]Ô;Ø$Ÿ?™?¨kÒ9Ø#˜JÐ&:¸9¸-ÐH�CÜ/°Ó4Ð4Ø  × 3Ñ 3Ò3Ø% e§k¡k _Ð4JÐK�CÜ/°Ó4Ð4ðKT�×!Ñ! B y×':Ñ':Ð&;¸2¸f¸XÐ"FÑGä"2°5×3CÑ3CÓ"DÐ!EÀZÐPÐ à.Ø ØØØ"Ÿo™oØ 0Ø"ñˆFôÜ”ZÑ ¤'¨*´z°mÀVÓ"LóˆKô × $Ñ $ [Ô 1Ø(3ˆD× Ñ ˜fÑ %ðJNñ #¬mð #Ü08¼Ñ0Fð #ÜRU÷ #ð,%ØØ"Ø(ØØØØ2ØŸ/™/Ø&Øñ  ˆò à'5ˆFÐ#Ñ $Ø×'Ñ'¨4¯>©>×+MÑ+MÑMÜ+/°·±×0RÑ0RÓ+S�Ô(àˆ}ÙܘE¤3Ô'ܘ>Ó*¨e°a©iÒ7Ð7Ð7Ø;O×;VÑ;VØ—I‘I˜n¨S¨bÐ1Ó2°NÀ2Ñ4Fó<�×(Ñ(¨%°¨Ò8ð�q‘Ð!ܘ>Ó*¨e°A©h¸©lÒ:Ð:Ð:Ø>W×>^Ñ>^Ø—I‘I˜n¨S¨bÐ1Ó2°NÀ2Ñ4Fó?�×(Ñ(¨%°°q±Ð):Ò;ô˜>Ó*¨e°A©h¸©lÒ:Ð:Ð:Ü" 5¨¡8¨U°1©X¸©\Ö:�EØ?S×?ZÑ?ZØŸ ™  .°°%Ð"8Ó9¸>È"Ñ;Mó@�D×,Ñ,¨e°U¨^Ò<ð;ô Ü ”Ñ ¤¨´mÐ5EÀvÓ!Nó ˆ ô × Ñ  Ô-à)4ˆ×ј+Ñ&؈ŒØÐr^có>—|jduxrd|jvS)Nrš)rerœr£s r\Úis_schema_boundzXPath2Parser.is_schema_boundüs€Ø�{‰{ $Ð&ÒJ¨>¸T¿]¹]Ð+JÐJr^Úsourcecó~•—|j€ |j|j«|_tt|�|«}|j dvr|jdd«‚ |j«|j�0|jj«}|j|«D]}Œ|S#t$rYŒIwxYw)N)z sequence typez function testÚXPST0003znot allowed in XPath expression) r›Úcreate_tokenizerršryr1Úparser³r¼rÏrreÚ get_contextÚselect)rtrÚ root_tokenrÁrÒr�s €r\rzXPath2Parser.parseÿs¼ø€Ø �>‰>Ð !Ø!×2Ñ2°4×3DÑ3DÓEˆDŒNäœ<¨Ñ4°VÓ<ˆ Ø × Ñ ÐAÑ AØ×"Ñ" :Ð/PÓQÐ Qð Ø × Ñ Ô !ð �;‰;Ð "à—k‘k×-Ñ-Ó/ˆGØ×&Ñ& wÖ/�Øð0ðÐøô#ò Ù ð úsÁ"B0Â0 B<Â;B<r…cóŠ—|j€y|jj«D]$\}}||vsŒ tddj|««‚|j«D]?\}} |j|}t|||«rŒ$dj|«}td|«‚y#t$rt |t «rdnd}YŒLwxYw)NÚXPST0008zmissing variable {!r}zitem()*zitem()z)Unmatched sequence type for variable {!r}rø)rgÚitemsrr ÚKeyErrorr‚Úlistr/)rtr…ÚvarnameÚxsd_typer½Ú sequence_typer¤s r\Úcheck_variableszXPath2Parser.check_variablessÊ€Ø × Ñ Ð &Ø à!%×!4Ñ!4×!:Ñ!:Ö!<Ñ ˆG�XؘfÒ$Ü! *Ð.E×.LÑ.LÈWÓ.UÓVÐVð"=ð%Ÿl™lžn‰NˆG�Uð SØ $× 3Ñ 3°GÑ <� ô' u¨m¸TÕBØE×LÑLÈWÓU�Ü! *¨gÓ6Ð6ñ-øôò SÜ-7¸¼tÔ-D¡ È(’ ð SúsÁ&B"Â"CÃC) NTFNNNNNNNNNr�)éZr©r[rä)r()NNr[r()6rÓrærçÚ__doc__Úversionr#rarrrrr8r r ÚstrÚ__annotations__ÚPATH_STEP_LABELSÚPATH_STEP_SYMBOLSrr1rTr†rr&r r(Ú staticmethodr]r rÚboolr0rzr”rrŸÚpropertyrdr«Ú classmethodr'rr rrÛrr*rírrrr r'Ú __classcell__)r�s@r\r3r3#s–ø…ñ%ðL€GØ3ÐðØØ'Ø#ñ 4И  c¨3 h¡Ñ0óð9ÐòÐò Ðð 9E×8XÑ8X×8]Ñ8]Ó8_И˜e E¨3 JÑ/°Ð4Ñ5Ó_Ø�S˜#�X‘ÓØ ÓØÓàð#˜3ð# 4ò#óð#ð?CØ $Ø,1Ø48Ø48Ø59Ø.2Ø9=Ø+/Ø<@Ø<@Ø>BØ09ñE? 8¨NÑ#;ðE?ØðE?à%)ðE?ð%-¨S¡MðE?ð%-¨S¡Mð E?ð &.¨c¡]ð E?ð ' s™mð E?ð"Ð"5Ñ6ðE?ð$ C™=ðE?ð"*¨$¨s°C¨x©.Ñ!9ðE?ð"*¨$¨s°C¨x©.Ñ!9ðE?ð$,¨D°°c°©NÑ#;ðE?ð+.ðE?ð?CõE?ðN4˜õ4ð<˜d 3¨ 8™nóð ð%˜Sò%óð%ð@Dò ð¨x¸©}ðÈ õð2ØGHØSUØ9Oñ9 ð9¨#ð9¸9ð9Ø$)¨%°©)°U¸3À¸8±_ÀdÈ3ÁiÐ*OÑ$Pð9à   e¨C°¨H¡oÐ!5Ñ6ð9ð˜ # s (Ñ+Ð,¨h°s¸C°xÑ.@Ð@ÑAò9óð9ñv8°3ð8¸Cð8Ø�MÑ"ó8ðx15Ø26Ø<>Ø$&ñ MØ$,¨S°#¨XÑ$6ðMà (¨¡ ðMð#+¨3¡-ðMð+0°°S°©/ð Mð "ð Mð ,0° Ñ+>ó Mð^K óKð˜Cð Jõð*7 n°S¸#°XÑ&>ð7À4÷7r^r3r·rBÚ$ÚcontainsÚlangÚidzsubstring-beforezsubstring-afterz starts-withÚthenÚelseÚinrYÚ satisfiesr¹r§rª)Ar)Úabcrr{Úcollections.abcrÚ urllib.parserÚtypingrrrr r r r r rrrÚhelpersrrrÚ exceptionsrrrrrrUrrrrrrr r!Ú collationsr"r#Ú datatypesr$r%r&Ú xpath_tokensr'r(r)r*r+Ú xpath_contextr,r-r²r.r/Ú schema_proxyr0Úxpath1r1r3Ú unregisterrÙr[r^r\ÚrIsnðñõÛ Ý+Ý!÷1÷1÷1ñ1÷;Ñ:÷<õ<÷9÷9ó9÷Qß=Ñ=ß]Õ]ß<ßBÝ.Ý!ôA7�<ôA7ðL ×Ñ˜ÔØ ×Ñ˜ÔØ ×Ñ˜ÔØ ×ј Ô#Ø ×Ñ˜ÔØ ×Ñ˜ÔØ ×ÑÐ*Ô+Ø ×ÑÐ)Ô*Ø ×ј Ô&ð ×Ñ�fÔØ ×Ñ�fÔØ ×Ñ�dÔØ ×Ñ�hÔØ ×Ñ�kÔ"Ø ×Ñ�cÔØ ×Ñ�dÔØ ×Ñ�dÕr^