PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/lib64/python3.6/xml/dom/__pycache__
Viewing File: /usr/lib64/python3.6/xml/dom/__pycache__/minidom.cpython-36.opt-2.pyc
3 \�@s�ddlZddlZddlmZmZmZmZddlTddlm Z m Z ej j j ej j jfZGdd�dej j �Z ee ddd �ee d d d �ee d d d �dd�Zdd�Zdd�Zdd�Zdd�ZGdd�de �ZGdd�de �Zeeddd �eed dd �eedd d �Gd!d"�d"e�Zeed#d$d �eZGd%d&�d&e�Zedd�ZGd'd(�d(e �Zeed)d*d �eed d+d �d,d-�ZGd.d/�d/�ZGd0d1�d1ee �Z Gd2d3�d3ee �Z!ee!d#d4d �Gd5d6�d6e!�Z"ee"d7d8d �ee"d9d:d �d;d<�Z#d=d>�Z$Gd?d@�d@e!�Z%GdAdB�dBe"�Z&GdCdD�dDe�Z'ee'd#dEd �GdFdG�dG�Z(GdHdI�dIe(ee �Z)GdJdK�dKe(e �Z*GdLdM�dMe(ee �Z+GdNdO�dOe �Z,GdPdQ�dQe�Z-dRdS�Z.GdTdU�dUe e �Z/ee/dVdWd �dXdY�Z0dZd[�Z1d\d]�Z2ddd^d_�Z3ded`da�Z4dfdbdc�Z5dS)g�N)�EMPTY_NAMESPACE� EMPTY_PREFIX�XMLNS_NAMESPACE�domreg)�*)�DOMImplementationLS� DocumentLSc@s�eZdZdZdZdZdZdZeZ dd�Z d2dd�Z d3dd �Z d d �Z d d �Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Z dS)4�NodeNcCsdS)NT�)�selfr r �'/usr/lib64/python3.6/xml/dom/minidom.py�__bool__+sz Node.__bool__cCs|jdd|�S)N�)� toprettyxml)r �encodingr r r �toxml.sz Node.toxml� � cCsx|dkrtj�}ntjtj�|ddd�}|jtjkrH|j|d|||�n|j|d||�|dkrh|j�S|j �j�SdS)N�xmlcharrefreplacer)r�errors�newliner) �io�StringIO� TextIOWrapper�BytesIO�nodeTyper � DOCUMENT_NODE�writexml�getvalue�detach)r �indent�newlr�writerr r r r1s   zNode.toprettyxmlcCs t|j�S)N)�bool� childNodes)r r r r � hasChildNodesCszNode.hasChildNodescCs|jS)N)r$)r r r r �_get_childNodesFszNode._get_childNodescCs|jr|jdSdS)Nr)r$)r r r r �_get_firstChildIszNode._get_firstChildcCs|jr|jdSdS)N����)r$)r r r r �_get_lastChildMszNode._get_lastChildc Cs|j|jkr0xt|j�D]}|j||�qW|S|j|jkrXtjjdt |�t |�f��|j dk rn|j j |�|dkr�|j |�n�y|jj |�}Wntk r�tjj��YnX|jtkr�t|�|jj||�||_||_|r�|j|d}||_||_nd|_||_ |S)Nz%s cannot be child of %sr()r�DOCUMENT_FRAGMENT_NODE�tupler$� insertBefore�_child_node_types�xml�dom�HierarchyRequestErr�repr� parentNode� removeChild� appendChild�index� ValueError� NotFoundErr�_nodeTypes_with_children�_clear_id_cache�insert� nextSibling�previousSibling)r �newChild�refChild�cr6�noder r r r-Qs6      zNode.insertBeforecCs�|j|jkr.xt|j�D]}|j|�qW|S|j|jkrXtjjdt |�t |�f��n|jt krjt |�|j dk r�|j j |�t||�d|_|S)Nz%s cannot be child of %s)rr+r,r$r5r.r/r0r1r2r9r:r3r4� _append_childr<)r rAr@r r r r5qs      zNode.appendChildc Cs|j|jkr(|j}|j|�|j||�S|j|jkrPtjjdt |�t |�f��||kr\dS|j dk rr|j j|�y|j j |�}Wnt k r�tjj��YnX||j |<||_ d|_ |jtks�|jtkr�t|�|j|_|j|_d|_d|_|jr�||j_|j�r||j_|S)Nz%s cannot be child of %s)rr+r<r4r-r.r/r0r1r2r3r$r6r7r8r9r:r=)r r>�oldChildr?r6r r r � replaceChild�s<         zNode.replaceChildc Cs�y|jj|�Wntk r.tjj��YnX|jdk rD|j|j_|jdk rX|j|j_d|_|_|jt krvt |�d|_ |S)N) r$�remover7r/r0r8r<r=rr9r:r3)r rCr r r r4�s      zNode.removeChildcCs�g}x�|jD]�}|jtjkr�|jsL|r2|j|d_|jrB|j|j_|j�q�|r�|dj|jkr�|d}|j|j|_|j|_|jr�||j_|j�q�|j|�q |j|�|jtj kr |j �q W||jdd�<dS)Nr(r)r)r)) r$rr � TEXT_NODE�datar<r=�unlink�append� ELEMENT_NODE� normalize)r �L�childrAr r r rK�s*          zNode.normalizecCst|||jp|�S)N)� _clone_node� ownerDocument)r �deepr r r � cloneNode�szNode.cloneNodecCs|jjj||�S)N)rO�implementation� hasFeature)r �feature�versionr r r � isSupported�szNode.isSupportedcCsdS)Nr )r r r r �_get_localName�szNode._get_localNamecCs||kS)Nr )r �otherr r r � isSameNode�szNode.isSameNodecCs|j|d�r|SdSdS)N)rV)r rTr r r � getInterface�s zNode.getInterfacec Cs,y|j|dSttfk r&dSXdS)Nr)� _user_data�AttributeError�KeyError)r �keyr r r � getUserData�szNode.getUserDatac Csnd}y |j}Wntk r,i}||_YnX||krB||d}|dkr^d}|dk rj||=n ||f||<|S)Nr)r[r\)r r^rG�handler�old�dr r r � setUserData�s    zNode.setUserDatacCsHt|d�rDx8t|jj��D]&\}\}}|dk r|j|||||�qWdS)Nr[)�hasattr�listr[�itemsZhandle)r � operation�src�dstr^rGr`r r r �_call_user_data_handler�s zNode._call_user_data_handlercCsBd|_|_|jr2x|jD] }|j�qWt�|_d|_d|_dS)N)r3rOr$rH�NodeListr=r<)r rMr r r rHs   z Node.unlinkcCs|S)Nr )r r r r � __enter__szNode.__enter__cCs |j�dS)N)rH)r ZetZev�tbr r r �__exit__sz Node.__exit__)N)rrN)!�__name__� __module__� __qualname__� namespaceURIr3rOr<r=r�prefixr rrr%r&r'r*r-r5rDr4rKrQrVrWrYrZr_rcrjrHrlrnr r r r r "s:      r � firstChildzFirst child node, or None.)�doc� lastChildzLast child node, or None.� localNamez"Namespace-local name of this node.cCs2|j}|r|d}||_||_|j|�||_dS)Nr(r))r$r=r<rIr3)r rAr$Zlastr r r rBs rBcCs(x"|dk r"|jtjkrdS|j}qWdS)NTF)rr rr3)rAr r r � _in_document&s    rxcCs6|r2|jdd�jdd�jdd�jdd�}|j|�dS) N�&z&amp;�<z&lt;�"z&quot;�>z&gt;)�replace�write)r"rGr r r � _write_data.srcCsHxB|jD]8}|jtjkr4|dks*|j|kr4|j|�t|||�qW|S)Nr)r$rr rJ�tagNamerI�_get_elements_by_tagName_helper)�parent�name�rcrAr r r r�5s    r�cCs\xV|jD]L}|jtjkr|dks*|j|krF|dks<|j|krF|j|�t||||�qW|S)Nr)r$rr rJrwrrrI�"_get_elements_by_tagName_ns_helper)r�ZnsURIrwr�rAr r r r�=s   r�c@sJeZdZejZdZdZdZdZ ej ej ej ej ejejejfZdd�ZdS)�DocumentFragmentz#document-fragmentNcCs t�|_dS)N)rkr$)r r r r �__init__TszDocumentFragment.__init__)rorprqr r+r�nodeName� nodeValue� attributesr3rJrF�CDATA_SECTION_NODE�ENTITY_REFERENCE_NODE�PROCESSING_INSTRUCTION_NODE� COMMENT_NODE� NOTATION_NODEr.r�r r r r r�Fsr�c@s�eZdZd#ZejZd Zd Zd Z ej ej fZ e d d fd d �Zd d�Zdd�Zdd�Zdd�Zeee�ZZdd�Zdd�Zeee�ZZdd�Zdd�Zeee�Zdd�Zdd �Zd!d"�Zd S)$�Attr�_name�_valuerr�_prefixr$� _localNamerO� ownerElementNFcCs2d|_||_||_||_t�|_|jjt��dS)N)r�r�rrr�rkr$rI�Text)r �qNamerrrwrsr r r r�bs z Attr.__init__c Cs.y|jStk r(|jjdd�dSXdS)N�:r(r))r�r\r��split)r r r r rWoszAttr._get_localNamecCs|jS)N)� specified)r r r r �_get_specifieduszAttr._get_specifiedcCs|jS)N)r�)r r r r � _get_namexszAttr._get_namecCs||_|jdk rt|j�dS)N)r�r�r:)r �valuer r r � _set_name{s zAttr._set_namecCs|jS)N)r�)r r r r � _get_value�szAttr._get_valuecCs6||_||jd_|jdk r&t|j�||jd_dS)Nr)r�r$rGr�r:)r r�r r r � _set_value�s    zAttr._set_valuecCs|jS)N)r�)r r r r � _get_prefix�szAttr._get_prefixcCsd|j}|dkr&|r&|tkr&tjjd��||_|dkr<|j}nd||jf}|jrZt|j�||_ dS)N�xmlnsz5illegal use of 'xmlns' prefix for the wrong namespacez%s:%s) rrrr/r0� NamespaceErrr�rwr�r:r�)r rsZnsuriZnewNamer r r � _set_prefix�s  zAttr._set_prefixcCsz|j}|dk rR|j|j=|j|j|jf=|jrRd|_|jd8_|jj d8_ x|j D] }|j �qZW|j dd�=dS)NFr() r��_attrsr��_attrsNSrrrw�_is_id�_magic_id_nodesrO�_magic_id_countr$rH)r �elemrMr r r rH�s   z Attr.unlinkcCsf|jr dS|j}|j}|dks&|dkr*dS|j|�}|dkr@dS|jrV|j|j|j�S|j|j�SdS)NTF) r�rOr��_get_elem_inforr�isIdNSrw�isIdr�)r rur��infor r r � _get_isId�s zAttr._get_isIdcCs\|j}|j}|dks|dkr tS|j|�}|dkr6tS|jrL|j|j|j�S|j|j�SdS)N) rOr��_no_typer�rr�getAttributeTypeNSrw�getAttributeTyper�)r rur�r�r r r �_get_schemaType�s zAttr._get_schemaType)r�r�rrr�r$r�rOr�) rorprq� __slots__r �ATTRIBUTE_NODErr�r�r�rFr�r.rr�rWr�r�r��propertyr�r�r�r�r�r�r�r�rsrHr�r�r r r r r�Xs.   r�r�z True if this attribute is an ID.z'Namespace-local name of this attribute.� schemaTypezSchema type for this attribute.c@s�eZdZd;Zdd�Zdd�Zdd �Zd d �Zd d �Zdd�Z dd�Z dd�Z dd�Z d<dd�Z eZdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�ZdS)=� NamedNodeMapr�r�� _ownerElementcCs||_||_||_dS)N)r�r�r�)r �attrsZattrsNSr�r r r r��szNamedNodeMap.__init__cCs t|j�S)N)�lenr�)r r r r � _get_length�szNamedNodeMap._get_lengthc Cs0y|t|jj��|Stk r*dSXdS)N)rer��keys� IndexError)r r6r r r �item�szNamedNodeMap.itemcCs.g}x$|jj�D]}|j|j|jf�qW|S)N)r��valuesrIr�r�)r rLrAr r r rf�szNamedNodeMap.itemscCs4g}x*|jj�D]}|j|j|jf|jf�qW|S)N)r�r�rIrrrwr�)r rLrAr r r �itemsNS�szNamedNodeMap.itemsNScCs"t|t�r||jkS||jkSdS)N)� isinstance�strr�r�)r r^r r r � __contains__�s  zNamedNodeMap.__contains__cCs |jj�S)N)r�r�)r r r r r�szNamedNodeMap.keyscCs |jj�S)N)r�r�)r r r r �keysNSszNamedNodeMap.keysNScCs |jj�S)N)r�r�)r r r r r�szNamedNodeMap.valuesNcCs|jj||�S)N)r��get)r r�r�r r r r� szNamedNodeMap.getcCs:|jt|dd�krdSt|�t|�kt|�t|�kSdS)Nr�r)r��getattr�id)r rXr r r �_cmpszNamedNodeMap._cmpcCs|j|�dkS)Nr)r�)r rXr r r �__eq__szNamedNodeMap.__eq__cCs|j|�dkS)Nr)r�)r rXr r r �__ge__szNamedNodeMap.__ge__cCs|j|�dkS)Nr)r�)r rXr r r �__gt__szNamedNodeMap.__gt__cCs|j|�dkS)Nr)r�)r rXr r r �__le__szNamedNodeMap.__le__cCs|j|�dkS)Nr)r�)r rXr r r �__lt__!szNamedNodeMap.__lt__cCs"t|t�r|j|S|j|SdS)N)r�r,r�r�)r �attname_or_tupler r r � __getitem__$s  zNamedNodeMap.__getitem__c Csvt|t�rRy|j|}Wn0tk rHt|�}|jj|_|j|�YnX||_n t|t�sdt d��|}|j|�dS)Nz%value must be a string or Attr object) r�r�r�r]r�r�rO� setNamedItemr�� TypeError)r �attnamer�rAr r r � __setitem__+s   zNamedNodeMap.__setitem__c Cs$y |j|Stk rdSXdS)N)r�r])r r�r r r � getNamedItem:s zNamedNodeMap.getNamedItemc Cs(y|j||fStk r"dSXdS)N)r�r])r rrrwr r r �getNamedItemNS@szNamedNodeMap.getNamedItemNScCsX|j|�}|dk rJt|j�|j|j=|j|j|jf=t|d�rFd|_ |St j j ��dS)Nr�) r�r:r�r�r�r�rrrwrdr�r/r0r8)r r��nr r r �removeNamedItemFs    zNamedNodeMap.removeNamedItemcCsZ|j||�}|dk rLt|j�|j|j|jf=|j|j=t|d�rHd|_ |St j j ��dS)Nr�) r�r:r�r�rrrwr�r�rdr�r/r0r8)r rrrwr�r r r �removeNamedItemNSRs    zNamedNodeMap.removeNamedItemNScCstt|t�s&tjjdt|�t|�f��|jj|j�}|r@|j �||j|j<||j |j |j f<|j |_t|j�|S)Nz%s cannot be child of %s)r�r�r/r0r1r2r�r�r�rHr�rrrwr�r�r:)r rArar r r r�^s   zNamedNodeMap.setNamedItemcCs |j|�S)N)r�)r rAr r r �setNamedItemNSkszNamedNodeMap.setNamedItemNScCs||}t|j�|j�dS)N)r:r�rH)r r�rAr r r � __delitem__ns zNamedNodeMap.__delitem__cCs|j|j|jfS)N)r�r�r�)r r r r � __getstate__sszNamedNodeMap.__getstate__cCs|\|_|_|_dS)N)r�r�r�)r �stater r r � __setstate__vszNamedNodeMap.__setstate__)r�r�r�)N) rorprqr�r�r�r�rfr�r�r�r�r�r��__len__r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r r r r r��s:     r�Zlengthz$Number of nodes in the NamedNodeMap.c@s0eZdZd Zdd�Zdd�Zdd�Zd d �Zd S) �TypeInfo� namespacer�cCs||_||_dS)N)r�r�)r r�r�r r r r��szTypeInfo.__init__cCs2|jrd|jj|j|jfSd|jj|jfSdS)Nz<%s %r (from %r)>z<%s %r>)r�� __class__ror�)r r r r �__repr__�s  zTypeInfo.__repr__cCs|jS)N)r�)r r r r r��szTypeInfo._get_namecCs|jS)N)r�)r r r r �_get_namespace�szTypeInfo._get_namespaceN)r�r�)rorprqr�r�r�r�r�r r r r r�s r�c @s eZdZdDZejZd ZeZ dZ ejej ej ej ejejfZed d fdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�ZeZd'd(�Zd)d*�Z d+d,�Z!e!Z"d-d.�Z#d/d0�Z$d1d2�Z%d3d4�Z&d5d6�Z'dEd8d9�Z(d:d;�Z)d<d=�Z*d>d?�Z+d@dA�Z,dBdC�Z-d S)F�ElementrOr3r�r�rsrrr�r$r�r�r<r=NrcCsBd|_||_|_||_||_t�|_d|_|_d|_ d|_ dS)N) r3r�r�rsrrrkr$r<r=r�r�)r r�rrrsrwr r r r��s  zElement.__init__cCs|jdkri|_i|_dS)N)r�r�)r r r r �_ensure_attributes�s zElement._ensure_attributesc Cs.y|jStk r(|jjdd�dSXdS)Nr�r(r))r�r\r�r�)r r r r rW�szElement._get_localNamecCs|jS)N)r�)r r r r � _get_tagName�szElement._get_tagNamecCsD|jdk r*xt|jj��D] }|j�qWd|_d|_tj|�dS)N)r�rer�rHr�r )r �attrr r r rH�s   zElement.unlinkc Cs4|jdkrdSy |j|jStk r.dSXdS)Nr)r�r�r])r r�r r r � getAttribute�s   zElement.getAttributec Cs8|jdkrdSy|j||fjStk r2dSXdS)Nr)r�r�r])r rrrwr r r �getAttributeNS�s  zElement.getAttributeNScCsV|j|�}|dkr4t|�}||_|j|_|j|�n||jkrR||_|jrRt|�dS)N)�getAttributeNoder�r�rO�setAttributeNoder�r:)r r�r�r�r r r � setAttribute�s   zElement.setAttributecCs�t|�\}}|j||�}|dkrHt||||�}||_|j|_|j|�n4||jkrf||_|jrft|�|j|kr|||_||_ dS)N) �_nssplit�getAttributeNodeNSr�r�rOr�r�r:rsr�)r rr� qualifiedNamer�rs� localnamer�r r r �setAttributeNS�s     zElement.setAttributeNScCs|jdkrdS|jj|�S)N)r�r�)r Zattrnamer r r r��s zElement.getAttributeNodecCs|jdkrdS|jj||f�S)N)r�r�)r rrrwr r r r�s zElement.getAttributeNodeNScCs�|jd|fkrtjjd��|j�|jj|jd�}|dk rD|j|�|j j|j |j fd�}|dk rt||k rt|j|�t ||�||k r�|S||k r�|SdS)Nzattribute node already owned) r�r/r0ZInuseAttributeErrr�r�r�r��removeAttributeNoder�rrrw�_set_attribute_node)r r�Zold1Zold2r r r r�s    zElement.setAttributeNodec CsP|jdkrtjj��y|j|}Wntk r@tjj��YnX|j|�dS)N)r�r/r0r8r�r]r�)r r�r�r r r �removeAttributes  zElement.removeAttributec CsT|jdkrtjj��y|j||f}Wntk rDtjj��YnX|j|�dS)N)r�r/r0r8r]r�)r rrrwr�r r r �removeAttributeNS%s  zElement.removeAttributeNSc Cs^|dkrtjj��y|j|jWntk r@tjj��YnXt|�|j�|j|_dS)N) r/r0r8r�r�r]r:rHrO)r rAr r r r�.s zElement.removeAttributeNodecCs|jdkrdS||jkS)NF)r�)r r�r r r � hasAttribute=s zElement.hasAttributecCs|jdkrdS||f|jkS)NF)r�)r rrrwr r r �hasAttributeNSBs zElement.hasAttributeNScCst||t��S)N)r�rk)r r�r r r �getElementsByTagNameGszElement.getElementsByTagNamecCst|||t��S)N)r�rk)r rrrwr r r �getElementsByTagNameNSJszElement.getElementsByTagNameNScCsd|jt|�fS)Nz<DOM Element: %s at %#x>)r�r�)r r r r r�NszElement.__repr__rc Cs|j|d|j�|j�}t|j��}x4|D],}|jd|�t|||j�|jd�q.W|jr�|jd�t|j�dkr�|jdj t j kr�|jdj |ddd�n8|j|�x"|jD]}|j |||||�q�W|j|�|jd|j|f�n|jd |�dS) Nrzz %s="r{r|r(rrz</%s>%sz/>%s) r~r��_get_attributes�sortedr�rr�r$r�rr rFr) r r"r � addindentr!r�Za_namesZa_namerAr r r rQs$      zElement.writexmlcCs|j�t|j|j|�S)N)r�r�r�r�)r r r r r�lszElement._get_attributescCs|jr dSdSdS)NTF)r�)r r r r � hasAttributespszElement.hasAttributescCs|j|�}|j|�dS)N)r��setIdAttributeNode)r r��idAttrr r r �setIdAttributexs zElement.setIdAttributecCs|j||�}|j|�dS)N)r�r�)r rrrwrr r r �setIdAttributeNS|s zElement.setIdAttributeNScCsl|dks|j|j� r tjj��t|�dk r6tjj��|jshd|_|jd7_|j j d7_ t |�dS)NTr() rYr�r/r0r8�_get_containing_entref�NoModificationAllowedErrr�r�rOr�r:)r rr r r r��s   zElement.setIdAttributeNode) rOr3r�r�rsrrr�r$r�r�r<r=)rrr).rorprqr�r rJrr�r�r�r�r�r�rFr�r�r.rr�r�rWr�rHr�r�r�r�r�r�r�ZsetAttributeNodeNSr�r�r�ZremoveAttributeNodeNSr�r�r�r�r�rr�r�rrr�r r r r r��sT      r�r�z*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.cCs8t|�|j�||j|j<||j|j|jf<||_dS)N)r:r�r�r�r�rrrwr�)�elementr�r r r r��s  r�c@sbeZdZfZdZe�ZdZdZdd�Z dd�Z dd�Z dd �Z d d �Z d d �Zdd�Zdd�ZdS)� ChildlessNcCsdS)Nr )r r r r r'�szChildless._get_firstChildcCsdS)Nr )r r r r r*�szChildless._get_lastChildcCstjj|jd��dS)Nz nodes cannot have children)r/r0r1r�)r rAr r r r5�szChildless.appendChildcCsdS)NFr )r r r r r%�szChildless.hasChildNodescCstjj|jd��dS)Nz nodes do not have children)r/r0r1r�)r r>r?r r r r-�szChildless.insertBeforecCstjj|jd��dS)Nz nodes do not have children)r/r0r8r�)r rCr r r r4�szChildless.removeChildcCsdS)Nr )r r r r rK�szChildless.normalizecCstjj|jd��dS)Nz nodes do not have children)r/r0r1r�)r r>rCr r r rD�szChildless.replaceChild)rorprqr�r�Z EmptyNodeListr$rtrvr'r*r5r%r-r4rKrDr r r r r�src@s\eZdZejZdZdd�Zdd�Zdd�Z e ee �Z d d �Z d d �Z e e e �Zddd�ZdS)�ProcessingInstruction�targetrGcCs||_||_dS)N)rrG)r rrGr r r r��szProcessingInstruction.__init__cCs|jS)N)rG)r r r r �_get_nodeValue�sz$ProcessingInstruction._get_nodeValuecCs ||_dS)N)rG)r r�r r r �_set_nodeValue�sz$ProcessingInstruction._set_nodeValuecCs|jS)N)r)r r r r � _get_nodeName�sz#ProcessingInstruction._get_nodeNamecCs ||_dS)N)r)r r�r r r � _set_nodeName�sz#ProcessingInstruction._set_nodeNamercCs|jd||j|j|f�dS)Nz %s<?%s %s?>%s)r~rrG)r r"r r�r!r r r r�szProcessingInstruction.writexmlN)rrG)rrr)rorprqr r�rr�r�r r r�r�r r r�rr r r r r�s  rc@sreZdZdZdd�Zdd �ZeZd d �Zd d �Ze ee�Z Z dd�Z dd�Z dd�Zdd�Zdd�Zdd�ZdS)� CharacterData�_datarOr3r=r<cCs,d|_|_d|_|_d|_tj|�dS)Nr)rOr3r=r<rr r�)r r r r r��s  zCharacterData.__init__cCs t|j�S)N)r�rG)r r r r r��szCharacterData._get_lengthcCs|jS)N)r)r r r r � _get_data�szCharacterData._get_datacCs ||_dS)N)r)r rGr r r � _set_data�szCharacterData._set_datacCs6|j}t|�dkrd}nd}d|jj|dd�|fS)N� z...rz<DOM %s node "%r%s">r)rGr�r�ro)r rGZ dotdotdotr r r r��s  zCharacterData.__repr__cCsT|dkrtjjd��|t|j�kr.tjjd��|dkrBtjjd��|j|||�S)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negative)r/r0� IndexSizeErrr�rG)r �offset�countr r r � substringData�s   zCharacterData.substringDatacCs|j||_dS)N)rG)r �argr r r � appendDataszCharacterData.appendDatacCsZ|dkrtjjd��|t|j�kr.tjjd��|rVd|jd|�||j|d�f|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of dataz%s%s%s)r/r0rr�rG)r rrr r r � insertDatas  zCharacterData.insertDatacCsl|dkrtjjd��|t|j�kr.tjjd��|dkrBtjjd��|rh|jd|�|j||d�|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negative)r/r0rr�rG)r rrr r r � deleteDatas   zCharacterData.deleteDatacCsr|dkrtjjd��|t|j�kr.tjjd��|dkrBtjjd��|rnd|jd|�||j||d�f|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negativez%s%s%s)r/r0rr�rG)r rrrr r r � replaceDatas   zCharacterData.replaceDataN)rrOr3r=r<)rorprqr�r�r�r�rrr�rGr�r�rrrrrr r r r r �s    r zLength of the string data.c@sHeZdZfZejZdZdZdd�Z ddd�Z dd �Z d d �Z d d �Z dS)r�z#textNcCs�|dks|t|j�kr"tjjd��|j�}|j|d�|_|j|_|j}|jr~||jj kr~|dkrp|jj |�n|jj ||�|jd|�|_|S)Nrzillegal offset value) r�rGr/r0rr�rOr<r3r$r5r-)r rZnewText�nextr r r � splitText0s zText.splitTextrcCst|d||j|f�dS)Nz%s%s%s)rrG)r r"r r�r!r r r r?sz Text.writexmlcCs�|jg}|j}x6|dk rD|jtjtjfkr@|jd|j�|j}qPqW|j}x4|dk r�|jtjtjfkr||j|j�|j}qNPqNWdj |�S)Nrr) rGr=rr rFr�r;r<rI�join)r rLr�r r r �_get_wholeTextDs   zText._get_wholeTextcCs�|j}|j}x6|dk rB|jtjtjfkr>|j}|j|�|}qPqW|j}|sX|j|�x6|dk r�|jtjtjfkr�|j}|j|�|}qZPqZW|r�||_|SdSdS)N) r3r=rr rFr�r4r<rG)r Zcontentr�r�rr r r �replaceWholeTextVs*     zText.replaceWholeTextcCsF|jj�rdSt|�}|dkr"dS|jj|�}|dkr:dS|j�SdS)NF)rG�strip�_get_containing_elementrOr��isElementContent)r r�r�r r r �!_get_isWhitespaceInElementContentrs  z&Text._get_isWhitespaceInElementContent)rrr)rorprqr�r rFrr�r�rrrrr#r r r r r�)s r�ZisWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.Z wholeTextz.The text of all logically-adjacent text nodes.cCs.|j}x"|dk r(|jtjkr |S|j}qWdS)N)r3rr rJ)rAr@r r r r!�s    r!cCs.|j}x"|dk r(|jtjkr |S|j}qWdS)N)r3rr r�)rAr@r r r r�s    rc@s(eZdZejZdZdd�Zddd�ZdS) �Commentz#commentcCstj|�||_dS)N)r r�r)r rGr r r r��s zComment.__init__rcCs,d|jkrtd��|jd||j|f�dS)Nz--z%'--' is not allowed in a comment nodez %s<!--%s-->%s)rGr7r~)r r"r r�r!r r r r�s zComment.writexmlN)rrr) rorprqr r�rr�r�rr r r r r$�sr$c@s$eZdZfZejZdZddd�ZdS)� CDATASectionz#cdata-sectionrcCs,|jjd�dkrtd��|jd|j�dS)Nz]]>rz$']]>' not allowed in a CDATA sectionz<![CDATA[%s]]>)rG�findr7r~)r r"r r�r!r r r r�szCDATASection.writexmlN)rrr) rorprqr�r r�rr�rr r r r r%�sr%c@s|eZdZdZffdd�Zdd�Zdd�Zdd �Zd d �Zd d �Z dd�Z dd�Z dd�Z dd�Z dd�Zdd�Zdd�ZdS)�ReadOnlySequentialNamedNodeMap�_seqcCs ||_dS)N)r()r �seqr r r r��sz'ReadOnlySequentialNamedNodeMap.__init__cCs t|j�S)N)r�r()r r r r r��sz&ReadOnlySequentialNamedNodeMap.__len__cCs t|j�S)N)r�r()r r r r r��sz*ReadOnlySequentialNamedNodeMap._get_lengthcCs"x|jD]}|j|kr|SqWdS)N)r(r�)r r�r�r r r r��s  z+ReadOnlySequentialNamedNodeMap.getNamedItemcCs,x&|jD]}|j|kr|j|kr|SqWdS)N)r(rrrw)r rrrwr�r r r r��s z-ReadOnlySequentialNamedNodeMap.getNamedItemNScCs4t|t�r|j|�}n |j|�}|dkr0t|��|S)N)r�r,r�r�r])r Z name_or_tuplerAr r r r��s    z*ReadOnlySequentialNamedNodeMap.__getitem__c Cs0|dkr dSy |j|Stk r*dSXdS)Nr)r(r�)r r6r r r r��s  z#ReadOnlySequentialNamedNodeMap.itemcCstjjd��dS)Nz"NamedNodeMap instance is read-only)r/r0r)r r�r r r r��sz.ReadOnlySequentialNamedNodeMap.removeNamedItemcCstjjd��dS)Nz"NamedNodeMap instance is read-only)r/r0r)r rrrwr r r r��sz0ReadOnlySequentialNamedNodeMap.removeNamedItemNScCstjjd��dS)Nz"NamedNodeMap instance is read-only)r/r0r)r rAr r r r��sz+ReadOnlySequentialNamedNodeMap.setNamedItemcCstjjd��dS)Nz"NamedNodeMap instance is read-only)r/r0r)r rAr r r r��sz-ReadOnlySequentialNamedNodeMap.setNamedItemNScCs|jgS)N)r()r r r r r��sz+ReadOnlySequentialNamedNodeMap.__getstate__cCs|d|_dS)Nr)r()r r�r r r r��sz+ReadOnlySequentialNamedNodeMap.__setstate__N)r()rorprqr�r�r�r�r�r�r�r�r�r�r�r�r�r�r r r r r'�s  r'z&Number of entries in the NamedNodeMap.c@s(eZdZd Zdd�Zdd�Zdd�Zd S) � Identified�publicId�systemIdcCs||_||_dS)N)r+r,)r r+r,r r r �_identified_mixin_init�sz!Identified._identified_mixin_initcCs|jS)N)r+)r r r r � _get_publicId�szIdentified._get_publicIdcCs|jS)N)r,)r r r r � _get_systemId�szIdentified._get_systemIdN)r+r,)rorprqr�r-r.r/r r r r r*�sr*c@sHeZdZejZdZdZdZdZ dZ dd�Z dd�Z dd�Z d d d �ZdS) � DocumentTypeNcCs2t�|_t�|_|r&t|�\}}||_|j|_dS)N)r'�entities� notationsr�r�r�)r r�rsr�r r r r� s  zDocumentType.__init__cCs|jS)N)�internalSubset)r r r r �_get_internalSubsetsz DocumentType._get_internalSubsetcCs�|jdkr�td�}|j|_|j|_tjjj}|r�g|j_ g|j _ x>|j j D]2}t |j|j |j �}|j j j|�|j|||�qJWxZ|jj D]N}t|j|j |j |j�}|j|_|j|_|j|_|jj j|�|j|||�q�W|j|||�|SdSdS)N)rOr0r�r�r/r0�UserDataHandler� NODE_CLONEDr1r(r2�Notationr+r,rIrj�Entity� notationName�actualEncodingrrU)r rP�clonergr��notation�e�entityr r r rQs.  zDocumentType.cloneNodercCs�|jd�|j|j�|jr8|jd||j||jf�n|jrR|jd||jf�|jdk r||jd�|j|j�|jd�|jd|�dS)Nz <!DOCTYPE z%s PUBLIC '%s'%s '%s'z%s SYSTEM '%s'z [�]r|)r~r�r+r,r3)r r"r r�r!r r r r/s      zDocumentType.writexml)rrr)rorprqr �DOCUMENT_TYPE_NODErr�r�r+r,r3r�r4rQrr r r r r0sr0c@sfeZdZdZejZdZdZdZ dZ dd�Z dd�Z dd�Z dd �Zd d �Zd d �Zdd�Zdd�ZdS)r8NcCs$||_||_t�|_|j||�dS)N)r�r9rkr$r-)r r�r+r,r<r r r r�FszEntity.__init__cCs|jS)N)r:)r r r r �_get_actualEncodingLszEntity._get_actualEncodingcCs|jS)N)r)r r r r � _get_encodingOszEntity._get_encodingcCs|jS)N)rU)r r r r � _get_versionRszEntity._get_versioncCstjjd��dS)Nz(cannot append children to an entity node)r/r0r1)r r>r r r r5UszEntity.appendChildcCstjjd��dS)Nz+cannot insert children below an entity node)r/r0r1)r r>r?r r r r-YszEntity.insertBeforecCstjjd��dS)Nz*cannot remove children from an entity node)r/r0r1)r rCr r r r4]szEntity.removeChildcCstjjd��dS)Nz)cannot replace children of an entity node)r/r0r1)r r>rCr r r rDaszEntity.replaceChild)rorprqr�r Z ENTITY_NODErr�r:rrUr�rArBrCr5r-r4rDr r r r r8=sr8c@seZdZejZdZdd�ZdS)r7NcCs||_|j||�dS)N)r�r-)r r�r+r,r r r r�iszNotation.__init__)rorprqr r�rr�r�r r r r r7esr7c @sHeZdZddddddddgZdd �Zd d �Zd d �Zdd�Zdd�ZdS)�DOMImplementation�core�1.0�2.0Nr/�ls-load�3.0cCs|dkr d}|j�|f|jkS)Nr)�lower� _features)r rTrUr r r rSyszDOMImplementation.hasFeaturec Cs�|r|jdk rtjjd��|j�}|dko8|dko8|dk }| rR|rRtjjd��|r�t|�\}}|dkr~|dkr~tjjd��|r�| r�tjjd��|j||�}|r�|j |�|j |�|r�||_|_ ||_ ||_ |S)Nz(doctype object owned by another DOM treezElement with no namer/z$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces) r3r/r0�WrongDocumentErr�_create_documentZInvalidCharacterErrr�r��createElementNSr5rO�doctyperR) r rrr�rOruZadd_root_elementrsr�rr r r �createDocument~s4         z DOMImplementation.createDocumentcCst|�}||_||_|S)N)r0r+r,)r r�r+r,rOr r r �createDocumentType�sz$DOMImplementation.createDocumentTypecCs|j|d�r|SdSdS)N)rS)r rTr r r rZ�s zDOMImplementation.getInterfacecCst�S)N)�Document)r r r r rM�sz"DOMImplementation._create_document)rErF)rErG)rEN)r/rF)r/rG)r/N)rHrI)rHN) rorprqrKrSrPrQrZrMr r r r rDns-rDc@sXeZdZdZdd�Zdd�Zdd�Zdd �Zd d �Zd d �Z dd�Z dd�Z dd�Z dS)� ElementInfor�cCs ||_dS)N)r�)r r�r r r r��szElementInfo.__init__cCstS)N)r�)r �anamer r r r��szElementInfo.getAttributeTypecCstS)N)r�)r rrrwr r r r��szElementInfo.getAttributeTypeNScCsdS)NFr )r r r r r"�szElementInfo.isElementContentcCsdS)NFr )r r r r �isEmpty�szElementInfo.isEmptycCsdS)NFr )r rTr r r r��szElementInfo.isIdcCsdS)NFr )r rrrwr r r r��szElementInfo.isIdNScCs|jS)N)r�)r r r r r��szElementInfo.__getstate__cCs ||_dS)N)r�)r r�r r r r��szElementInfo.__setstate__N)r�) rorprqr�r�r�r�r"rUr�r�r�r�r r r r rS�s rScCs>|jtjkr|jj�d|_nt|�r:|jjj�d|j_dS)N)rr r� _id_cache�clear�_id_search_stackrxrO)rAr r r r:�s    r:c@sreZdZdMZejejejejfZ e �Z ej Z dZdZdZdZdZZdZdZdZdZdZdZdZd Zd d �Zd d �Zdd�Zdd�Zdd�Z dd�Z!dd�Z"dd�Z#dd�Z$dd�Z%dd�Z&d d!�Z'd"d#�Z(d$d%�Z)d&d'�Z*d(d)�Z+d*d+�Z,d,d-�Z-d.d/�Z.d0d1�Z/d2d3�Z0d4d5�Z1d6d7�Z2d8d9�Z3d:d;�Z4d<d=�Z5d>d?�Z6d@dA�Z7dBdC�Z8dDdE�Z9dFdG�Z:dNdIdJ�Z;dKdL�Z<dS)OrR� _elem_inforOrXr$rVz #documentNFrcCs$d|_t�|_i|_i|_d|_dS)N)rOrkr$rYrVrX)r r r r r� s zDocument.__init__cCs&|jr|j|jf}n|j}|jj|�S)N)rrrwr�rYr�)r rr^r r r r�szDocument._get_elem_infocCs|jS)N)r:)r r r r rAszDocument._get_actualEncodingcCs|jS)N)rO)r r r r � _get_doctypeszDocument._get_doctypecCs|jS)N)� documentURI)r r r r �_get_documentURI szDocument._get_documentURIcCs|jS)N)r)r r r r rB#szDocument._get_encodingcCs|jS)N)� errorHandler)r r r r �_get_errorHandler&szDocument._get_errorHandlercCs|jS)N)� standalone)r r r r �_get_standalone)szDocument._get_standalonecCs|jS)N)�strictErrorChecking)r r r r �_get_strictErrorChecking,sz!Document._get_strictErrorCheckingcCs|jS)N)rU)r r r r rC/szDocument._get_versioncCsj|j|jkr(tjjdt|�t|�f��|jdk r>|jj|�|jtj kr^|j �r^tjjd��tj ||�S)Nz%s cannot be child of %sz two document elements disallowed) rr.r/r0r1r2r3r4r rJ�_get_documentElementr5)r rAr r r r52s    zDocument.appendChildc CsVy|jj|�Wntk r.tjj��YnXd|_|_d|_|j |krRd|_ |S)N) r$rEr7r/r0r8r<r=r3�documentElement)r rCr r r r4Bs  zDocument.removeChildcCs$x|jD]}|jtjkr|SqWdS)N)r$rr rJ)r rAr r r rcNs  zDocument._get_documentElementcCs(|jdk r|jj�d|_tj|�dS)N)rOrHr )r r r r rHSs  zDocument.unlinkcCs�|sdS|jjddd�}|j|_|j|_|j|_xL|jD]B}t|||�}|jj|�|jt j krbn|jt j krt||_ ||_ q8W|jtjjj||�|S)N)rRrPrr_rUr$rNrIrr rr@rOr3rjr/r0r5r6)r rPr;r�Z childcloner r r rQYs"       zDocument.cloneNodecCst�}||_|S)N)r�rO)r rbr r r �createDocumentFragmentnszDocument.createDocumentFragmentcCst|�}||_|S)N)r�rO)r r�r=r r r � createElementsszDocument.createElementcCs(t|t�std��t�}||_||_|S)Nznode contents must be a string)r�r�r�r�rGrO)r rG�tr r r �createTextNodexs  zDocument.createTextNodecCs(t|t�std��t�}||_||_|S)Nznode contents must be a string)r�r�r�r%rGrO)r rGr@r r r �createCDATASection�s  zDocument.createCDATASectioncCst|�}||_|S)N)r$rO)r rGr@r r r � createComment�szDocument.createCommentcCst||�}||_|S)N)rrO)r rrG�pr r r �createProcessingInstruction�s z$Document.createProcessingInstructioncCst|�}||_d|_|S)Nr)r�rOr�)r r��ar r r �createAttribute�szDocument.createAttributecCs"t|�\}}t|||�}||_|S)N)r�r�rO)r rrr�rsrwr=r r r rN�s  zDocument.createElementNScCs*t|�\}}t||||�}||_d|_|S)Nr)r�r�rOr�)r rrr�rsrwrmr r r �createAttributeNS�s  zDocument.createAttributeNScCst||||�}||_|S)N)r8rO)r r�r+r,r9r=r r r �_create_entity�szDocument._create_entitycCst|||�}||_|S)N)r7rO)r r�r+r,r�r r r �_create_notation�s zDocument._create_notationcCs�||jkr|j|S|jp|js$dS|j}|dkrB|jg}||_n|sJdSd}�x>|�r�|j�}|jdd�|jD��|j|�}|�r@x�|j j �D]�}|j r�|j |j |j �r�||j|j<|j|kr�|}n|js�Pq�|j|j��r ||j|j<|j|k�r�|}n |j�s:Pq�|jr�||j|j<|j|k�r.|}q�|jdkr�Pq�WnB|j�r�x8|j j �D]*}|j�rT||j|j<|j|k�rT|}�qTW|dk rRPqRW|S)NcSsg|]}|jtkr|�qSr )rr9)�.0rMr r r � <listcomp>�sz+Document.getElementById.<locals>.<listcomp>r()rVrYr�rXrd�pop�extendr$r�r�r�rrr�rwr�r�r�r�r�)r r��stack�resultrAr�r�r r r �getElementById�sZ               zDocument.getElementByIdcCst||t��S)N)r�rk)r r�r r r r��szDocument.getElementsByTagNamecCst|||t��S)N)r�rk)r rrrwr r r r��szDocument.getElementsByTagNameNScCs|jj||�S)N)rRrS)r rTrUr r r rV�szDocument.isSupportedcCs>|jtjkrtjjd��n|jtjkr2tjjd��t|||�S)Nzcannot import document nodesz!cannot import document type nodes)rr rr/r0�NotSupportedErrr@rN)r rArPr r r � importNode�s    zDocument.importNodercCsN|dkr|jd|�n|jd||f�x|jD]}|j||||�q2WdS)Nz<?xml version="1.0" ?>z%<?xml version="1.0" encoding="%s"?>%s)r~r$r)r r"r r�r!rrAr r r r�s   zDocument.writexmlcCsJ|j|k r tjjd||jf��|jtjtjfkr>tjjd��|t kr�d|kr�|j dd�\}}|dkr�|tjj kr�tjj d��q�|dkr�|tjj kr�|jtjkr�tjj d��d}|}nd}d}|jtjkr�|j }|dk r�|j}|j|�nd}||_||_||_||_|jtjk�r||_n*||_|dk �rF|j|�|�rF|j|�|S)Nz?cannot rename nodes from other documents; expected %s, found %sz8renameNode() only applies to element and attribute nodesr�r(r�zillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rOr/r0rLrr rJr�ryrr�rr�r�r�r�rsr�rrr�r�r�r�r�)r r�rrr�rsrwrZis_idr r r � renameNodesR         zDocument.renameNode)rYrOrXr$rV)rrrN)=rorprqr�r rJr�r�r@r.rDrRrrr�r�r�r3r=r<r:rr_rUrar]r[r�r�r�rArZr\rBr^r`rbrCr5r4rcrHrQrerfrhrirjrlrnrNrorprqrxr�r�rVrzrr{r r r r rR�sh    : rRrdz#Top-level element of this document.c Cs�|jj|�rtjjj}n tjjj}|jtj kr�|j |j |j �}x>|j j�D]0}|j|j |j |j�|j|j |j�}|j|_qJW|r�x$|jD]}t|||�}|j|�q�W�n|jtjkr�|j�}|r�x$|jD]}t|||�}|j|�q�W�n�|jtjk�r |j|j�}�n�|jtjk�r*|j|j�}�n�|jtjk�rL|j|j |j�}�nr|jtj!k�rj|j"|j�}�nT|jtj#k�r�|j$|j |j �}d|_|j|_�n$|jtj%k�r�tjjj}|j&j'|j(|j)|j*�}||_|�r�g|j+_,g|j-_,xR|j-j,D]F} t.| j | j)| j*�} || _|j-j,j/| �t0| d��r�| j1|| | ��q�Wx�|j+j,D]b} t2| j | j)| j*| j3�} | j4| _4| j5| _5| j6| _6|| _|j+j,j/| �t0| d��rB| j1|| | ��qBWntjj7dt8|���t0|d��r�|j1|||�|S)NTrjzCannot clone node %s)9rOrYr/r0r5r6Z NODE_IMPORTEDrr rJrNrrr�r�r�r�r�r�rwr�r$rNr5r+rerFrhrGr�rir�rlrr�rjr�ror@rRrQr�r+r,r1r(r2r7rIrdrjr8r9r:rrUryr2) rArPZnewOwnerDocumentrgr;r�rmrMr@r�r<r=r>r r r rNAs|                rNcCs,|jdd�}t|�dkr|Sd|dfSdS)Nr�r(�r)r�r�)r�Zfieldsr r r r��s  r�cCs,|||�}|j�\}}|j|�|j�|S)N)ZgetEventZ expandNoderW)�func�args�kwargsZeventsZtoktypeZrootNoder r r �_do_pulldom_parse�s    r�cCsJ|dkr$| r$ddlm}|j|�Sddlm}t|j|f||d��SdS)Nr)� expatbuilder)�pulldom)�parser�bufsize)�xml.domr��parser�r�)�filer�r�r�r�r r r r��s     r�cCsB|dkrddlm}|j|�Sddlm}t|j|fd|i�SdS)Nr)r�)r�r�)r�r�� parseStringr�r�)�stringr�r�r�r r r r��s     r�cCsB|r<t|t�rtj|�}x"|D]\}}tjj||�sdSqWtjS)N)r�r�rZ_parse_feature_stringrRrRrS)Zfeatures�f�vr r r �getDOMImplementation�s  r�)NN)N)N)6rr�r/rrrrZxml.dom.minicompatZxml.dom.xmlbuilderrrr0r rJr�r9Z defpropertyrBrxrr�r�r�r��objectr�Z AttributeListr�r�r�r�rrr r�r!rr$r%r'r*r0r8r7rDrSr:rRrNr�r�r�r�r�r r r r �<module>s� v  y$ w )GU  ><( O*PR