PK[O2Gkeystonemiddleware/__init__.pyPK[O2G/Ckeystonemiddleware/i18n.pymSo0_qJh%jӦ>PJh $,;3c[y 3vT psu t,9K`$%tDa0n12輲n+8J/vЈ=!HC4Jl(6VH^m9d| BBҹ:ۆ~DTYW!ӏfd:_M/Iqh#=I!Z`!łeSAzV T>8_zGO^@:^AJnWCxkz/:`b~ŜN0?|~?Z Hu2rOAE*%ɗ;Q#!;ТknzWV "3%Ikφ v1[v3Xɱ>-}ŞfyRmC$˺SD*ၟI yAHߟp5بȝ\$mMZ6y.Q˝#"M b>">n5h+bqRB8F"};&[* Kj0(YMg)sDƖ2c1z]lC(ڲ"BRLjӏu|QR7PK[O2GNKz!keystonemiddleware/ec2_token.pyW[o6~ׯمd\'iNa;ˊ0hȢFRq}ߡ.j;D";Wlʲ/]&ҩQyq+UjSTZ1Za[,te0-2- ^@2DkJc5J3c6vyBnehO!7h, )I&° Tg2B@ @7=bEp:DpR^te[5BR,ˍiR&/,) :K$Om#ʩ)c!\Am+[K:ƭ~+k˳fp6P:>K Jsv;^ק@xD_ԅsy@!_f7 o2{̨pMȣrۖ*x0I l4=aoѴFww3zL<=ew6_f1n`>_F|0R;6L RL&B!Jǂ.`˄^KC,%ki]H3*𼓓ɪcWJ¹UkJjo՚)yҥ Җ˸q$<;gRNWTXE}L'5Vb.‹ʐ}Q@s0.?׉X%JTȓ2g$Z쳯D-eO,,s ʊ51*g9ծRٰ逘BUj 0se5[qox%p=i"hbD[)Ogߏ^R־>LdT.vUd!AKb}Lp`ZvQ*qHTMkR OE]Iztz2aGߤK I=@]Gh E~0h,茎:j^:(N^4J&p(p[Bv@ 6c&cDU ,hQ /hA"73Bou6&FKxRÁU I 2<Ԣ/eӁ;]lGQ8Zj%BJ7< +'\Ƶwt,jXZ 0#l6t':CLeZ6rJ5MEiG% qC(Q{GSw~_@T?i =_%ZEh2nW% = d_'9_A3qPX ɡPa[MlF .TEL>u;aZcGS:؀2A\`ܣhC|7o;qNx^ LYMҬ"u/ɖ'+Se<49NQ@I ٦<Hp5Z ^ *xp8TdU"畯b5+nӄ%)د5/͑ȉLdX!W<ݍHm-@yY|SW4q9ESb" j_w5ers3YYސrq9_ϗ {C&O|q9" $h׼@HRdq@V G$Yķ<]MwVY%ȋIS`ŋjG9KIY2ZĄ1 XRSxو ʪ &8ㄡ0Q9*@Ue5@0'4tٱY:$O]9"+b_H6-j)Ş?ĂlLOAߛyB( t`"< y=O ]I!jI"\ [c 4lI=:O)Ą|x썈/7Kc!s/7-2h{MGSCΚMM݇T=sQ)j{r:QZ'UXY q$zoB,Ne| cu'#[6{Z]t8os0f#Q6ae4u{EΥ32qVO?}%v%RelI/1ܘ Cz7KEF7,@J{0^7 k8:uXz;t.UW&!pE׷f^pcj5c0we3͍@K?Mzz*+clSW*<%O_Z%Yɕ9+H&6/ mONGvNolҾ\bNKvL< ئ') ^' C36ln+p˛6LX o/'YwѤ2SG DU,v[j|v"`q\:z6Q_WC=yzOܮ=x&;|B]l L> M:Lw_wxXhfj0 yto`gD>eSR';A`ҝgY/tYS4Da㶄Yҗt )A(=-8x ;&f/,9H}8>ͅXu{se'Kz6apˊ&gVAXlSt {H鶱6x%Rۛy7JdAV!q`)4oxf㉪ QV3iE < Ldm`ua{m:/tI?Gc~y+FM8m ᱝT`" ?UHk[} tvM#,[7dM_WvSKJxUiL!DvAOY"vܒ{.|Eئ, \HwoZI~CG~i2φi.rCm@5îD4K9UܸaUhiŖ !^tIBhU=Ң40yFl\D+dQ@< &0u<4 4##KWϕ?}PF VI {+,O]$CZVXnVPhhY,[ W,N֓[K=;:RgD9fC1(5IA ޔBit(gl]~pLIl~B&XvPO } w q^w0P  m8<|2HYd&:LԀSuwU#þWmzm3o}?۸, jћ8 u;" l,0]hyA*U ;ZbNyf*hZ }..oFp!8QqvqP#ش3Q䫚̆gg'> {K@ c|^N7JN&[Gҧ {IFc;ReNV E9muWU*"AƌIඳg@DzH):fj{3`qoa J8ǺgkI.Ѵ;/OA.M|%@4E$RW:$!BYAN"޳ 1cK!ucshhA4fpvBrTvoWs\BQt9b10`2:w🯊eF$X3pH J<ⶃǎ8_HoKNnl:F.b=_ Wv4C.7˿Ϧk%~֩=ҡF2/,p);(Usk|ƚ#}nןg!x~mnPʨ-oYx=[\o;'nBǪRʞ Ve и_݆TR*{s_d/ji+j~Ů-u c42WKSby/c5?O_;yYY'Dmv:Vk47ͬo1^M?B=>fSXt ]>Hzav;5ML'̮7kp7˫Yay93&'kEf'<0 ZVBf4/8;=7~U$v@TQs@>_:[c%=t{rO˺_ PhZXt|dwӚ^1\/ 'ˡ |Y8`i$"uז+oP\ b5}9'ٱi PX"^e ^$69uև]n, y&PK[O2GՇvkeystonemiddleware/opts.pyT]o0}ϯ۴N{ZU"aUUUInWc{ӌk'PJ|}9~;Ûq9wo޾T+Jb+G' \ o46f% 'SR<T [#$ [@%j\BZp&KMH3pCZ;%!1^splgg],iDiϮE6{MÝh-rCZ;`lM4@`A:s w\6Sv3H(u~skOD_L(`Sͳ)/*'dL|Atq9ޮ Yr H^QO$2NsV=!5/IlZ 4 $9lմD܅n8 Q# kݦpe!2.;-*nT}9bbdӯEynqC8ވ2ntd⭉*_΍'i4-ѵ&WVT pkIdq`NU4R6܄I\ ]BV:E?+jA9пH:n+5FzhǞ[IHu8[@*bH}hio{UxZIj0/6{oV޿TX@.T鉳Jcb/Ugð;nVvpʭ:zP’am@J`m)P_i6.7Y =)ãtRNnSSYjwiCϹ.TTV|oT/T^ iE(oGӅε- YB-.31RWX!s]ʉ qlrqcG#F B,[b# <wj xIOTn1dVs7TaxTb!WRTVb3%D-Ks.9 o$#!u)5\~,aܔr'ML1g?߽?9s)K҅\ JC ' SN$*[ڪك!%s7:='/>~/8=NO_OO|| 6ۉs ̌c.DrJΕBTB[L/t^fAiK 5UM̔%2I{V Fnw=A]yٝ^X\AOb}wx/ߏ{Lt:{'lLeK1+}gX4$ ?ta-LH ,LO9`VľqQB彀$Q\.yU\\eJ]/Z3E)23{um;f̤I .CdM7Ji[P, fUd9uo6ҞH?;ΏgN?'ދÑ~a DuqN;o;_ȓ>F*.]$·t)˛`K8(l@ϖ)7ͤ-dfUwСddl/.~loDt)?5\F2!wQ_FDOczܿބ&'1{pJu,䂥8qSP>@4zQ-D^-/SU=FMZR@z۴1D=XQi%b 4 UVEd ep@4k6Awz*l)=EQjJ z_H,-(!CMhT>x}87z<6X!#Nu `EyI쎢 _ Uj5[jhUa4ū)$n/D$;#E_5kPp#l&7Cq֢KC2cܦ6x |Ӑn}`iK(d;hR82lI>'T+S*N]dz TMMFX[c̰E!ūF^c5~Uti|*ɾk&ZokwhF9,<Ԥ\ut(Kq&R%[5>vel֣@g n4;T&u:rfI nS'r2[dOӎ50xdi$Lu5#t*$Z}&L)~ck66QV1\vPg!ִΖ"W PwuwÍ[o-[<4ƽ( hz^ww7 Sɶߐ4!&:[# M+!>ETA4c 9N< :6 trmLR3 5ArSEjVi1P8:m8,z0'۵s8=[3 xk^(>I%npz BOjd4 e LU' APҒGE;<13{xԫW/w~TgcqwʦqjPu(KɊ _0P+r!rTèD~?,+-+* $ ;'EoB =r s{/>|Ƿ(QLDoF0oa>?G1Nτ򦿦=$YoGWVk@_>jyNXroLW!X 'HjjE7JNwrAx EPZТj^BԞ,bdo]ܸ>_=Ccp- ɸ! wH&~l:Yv_u>3qiG<"rt'uzUGkeWgAxa8Y*<FGn?QюQsYLfԟwSs~+h5 otS Ӷ[jo7D؍0c-4!x[h:WEOQq 7#o=py2:A5+hV/:G(Hlz:|?fư:Ciܬ™i]: k}_؝ Cv]b}ޅ^֓hWLRoS7t2ծq ػQn? v$*s>V+\=tΕz C)GWIt=Sy£] 셜>+ۋ}mcɼ5B ;PK[O2G$keystonemiddleware/tests/__init__.pyPK[O2G)keystonemiddleware/tests/unit/__init__.pyPK[O2Gab +j6keystonemiddleware/tests/unit/test_audit_middleware.py\ms8_c>jp[{Jղ 3m&Km)Ŷ 5~ 1Raf&`[~yԒ~s&fг 򎑞OMi_l~HؠjEf<$.'K X#|Ilz&#SLt{Ă𱤶($ێPynIw::U\L;N(N j~9,`ag I C N{–7mO# Xv =eNQd0lPHwM szp& .oUb8_+rzyq6./;һ28kjng_ *dN*͍G&<(iOlMC:ed`8gµ4dYı][R  Ix|Ѱ0.807$iN=fRk\-Id;A,,R ٘lH1׶,*Z\HN=lCA=~L:> ؄I0s&`!|DR! 0zdqc5#'D.#}-kjCr& ~)$(p3IYv|Ek=gTi(httVRο &Cip+EP` $pJ6ZmFk*;xҔ7 0y+)2!}s ?[\xUXm]9k&~J4dmxlL2MF_ qLBHgN4yciO\EQ?}69WۥcȀ6?"X~"$ٸX=I  tCI|uk(lxj߂-%H\|iD,ZP5i.z)\M׻~0/P{U}wtd-)g}HwO1;.iW>gڭ"4(&,: ~=XTY},ZoAFY@mZuUq(|xn=\,+{U?&pjЮ]VZ+\.A-KhGGQ?ԏ2Ȳ.T| 0rs2Q&ZyEY T7`<(3DN|zlSK̲XfEeU0[aJRB̦n+D%]+'|txhu9; ^tWNЩTQ#Rl97RKzibMZ +IL9ȚjP'VJ ]9+#Dmd#Ud́BHliS Sz񒒙9㟗Ϭ#.3*̌ꙵ;Cet\Zn KP@F =A}Nݚp(!TqREZ{jt93>1켂isqOVAxI&4 ]A=Ud,S1x{;A/rg׋OqbͬsM34&9:(ٌxY`]:؂oϝwꉇo8V.fcPTm"ڋސv6 8e:3fOFEj]ؤ:|:?Z _ۿ~kקӖSޠTO_M*xEqw͸ȣ)&R(^G]D [H'#. ]ՃGɃkF%šGR&GWhGo]Kp]xW1<PK[O2G֕Bk *keystonemiddleware/tests/unit/test_opts.pyVMo8W %UbOYMSج Ţhj$sM*Iq)JrևD<ǛǡnQW;#`V;Y*cNh n,8*2p+q8[F7KxnwJ#OJ;- a!_9VJ 8VUwcB'Fs0svMX6Ѧ =OwqUI Z;`%ْҔl + i'T1seK&3bY Q)a2?|&/ m2.&Osli̦diH\Q|ϟGgO\7 TQ4ʁ M)殮2.NQ`@q`n0Cnt sZK {{uAc_:Y&wkĻI;k'$9pɈm^Y)9WF9O*)*uz*#2l-m/'[XVgT[Exp9/+&_izY3 LlCQ,9)ב*V0T˲R<Zk#"CžM3Rڶ %5=H}S"2R'Ju'ˠdLm'Ԟ>3o[m+.Q1t ~ZuI ~bI}˜,ޠ2Mg݊42K,CYJv͡ Їn:hytbh2-$3%jBmt 6H]HRcYuGJV=KqZU_X3 ݢM;&uцE{K: x|gSѴ]1KFZ*hq|V:)y>$bzis{,Nf*Nɸ=uIr\z&o|k޾jW7Zv8fGʵ`I</F1E_&j+uBExﭖjCItf_0h_,/=ܖTӾ[uZLףSzo<PK[O2G)^&keystonemiddleware/tests/unit/utils.pyXmoF_1쩴wαV#$" kr$oMrݥe~3\&)9Dygvfs !#5{LU ?T)\C<:{C"S* A" ldO!fd JX4DI{_h* :aX24IAީ;/>fgg.ف۳d@Wliƀ/DFHgV;-L0jcwBIcm+x&Opr]-|~߮Wl5,al<]M3Zot6RH>e S%ȁ/(g06[zD_N22X& k'#J[vK2ٛ꧕ V)hldsZ'*|~++wmꍊSG˚9eXPDӊN۫E5w^>܀A{yMS@&eIGjSnƪE12> q̱ܓJT(< 9:v2A i! Ȃz^@eQWKZ+*KmQ j)/}1=߃A :FWEyD[:u5Yl=Շ JVh1r'h1|f5Q1@%XͅME?r+߻ ދ)1wA0` Rb?0 (0EErK8H V%~[zvGXU룱1%ϳ=G2(3%9TXv%qasKَfTr ;Oa7:B),9V 5ෝj,O48Pg [e/ 6O0ܭw ?]ԵPQ[y2 rtߍ(@-t@XI5}{cJgf4Tg~:B1'r/ /OHy~) jnWӳ_Gx ,-D m%NgUF3" Dak jetyTtեQKcjGP=k GW\Fݽ?jn6Y2`O/n#x6?PK[O2G7ٖ W0keystonemiddleware/tests/unit/client_fixtures.py\msH_1|+Wq.ͦR46~=# W=O9gzmfZй\;ݽfKbM==K{e3m+tejr*qwO`5x 4-q\ GD5Jp:Z5 YV.E9'|C4{z2{M£>U @Fa ڽ-߾yc&-o;wo>J> 1㹱uC2Fx iX1 w{M~rLϴȵ ;PtS]y1m/lSn0 <0od0)Oxt!>]3(.mPAH<i 2l_ wI405uwُı`8hIRk 3rڎlw0y+pz k׳-Xǃ0T[dR8.g ۝ۊKͿ!џm% 3'.GhĵWc:9 y_bM R ?cե5E^(dbɉN c^q;g?KqAjk_~y(soOhċiM qJ0 O)zIr"D nO,I[yk Ģϲ|Sm: 9== HmC3OjC4vUdfoӥ߭f;dn0΅ KbY3E2x O}7Sʂj6M,OQ?v!3 L%?r> Σ9SC&K+ZdWƦfh+2o}Pٲ֘m pHW `!Nj.`m }24T;7+(-毨$c{fQ f ̍ B'y4( 1.5G0N&:aw94v\ nVϷcsMݕu=d mȹdh|o*6^;{:]-Fx]D@":BfߐEa<]i r^yanL4CDny}6?zx\ fx8A0x*lIyAdC~D->n` n! vL? Njo s1qCʫfTFᅄyl`|`f.)YGH?B/W`eN7哀2Zb3 @, nۻjr6eq| wΤ9c%,\TY_Lu:e,rig nI f{\.d/uΒfXB--}k~a,&^XY,ǶER(.d>*>#C=7 3' Iyp|2 $7<Q'zI%Bliňd)2d)4dRl!GCCSB8lf5ԉ: ot;L1]l45x=O#.3s'?(M.U㹎f8p+Xᰦ|=m)Sv(R_Ω|l߬| &k ?n?ȴmi3 U,I$9}S cQ[+BmzGe-M-PݫX~O,`[!^>+0_35m.cpQE~ suz=:*5FhA:!Rz@[ gR9*H/mj˕:7di~ ũ amB ;dlL \g:x9O^UX9j=W~+1R$=RE|| _Sxα-@8Lcg?KF8؋f# &\IF R8] (g@q'el^w%r3|)j]}W;FPdj6urHIg?U*E\%\z`:2u*E I#HDBA" oSf7P~| Aċd)ռ9$3ř.g6RH% 3aPR%:!q@Pd(TbArX),(#+h2k.ԼڗC#ŭzzRF(hzāÉTOW)>CZ_' ~9r\, PK[O2G^ ,9keystonemiddleware/tests/unit/test_s3_token_middleware.pyoHwUe#Q&MH = ۫5c2qgI*7cm !${󾿜gXsɧ'%#M+r*$K eKF) OM~aR8Q729PJ&b@+5`&YDL4uT#TRӹrډ-F9ObK%:C1!B: i Hy2m%"}C%*!WZI+*/fwD&;cvp>Zal`Hg'qpW{럝 ]1k*`YCMI$,C*exr%ӌNk&LθBk*`/$1qmAFR3"T,|$1A%9oJ$*PLie+iyHPWnĿLJ3?*(Ւ QZ&O 6bsEf< c,pԁK6y1FF`p{`9"`~3 [}28 Ҹ0^nb to6c:x}/˻CC繂_5:0TyNʩۚ>,Yn5SLv%3 2Q{,nNm ›chЂmb8U뵀"qxE5+I57*ڌ.Wjf\a6d*Ԟk} 'DSM^.>69v7B-Z.Qa[iiEjSwjMHܥ!b?!;N~RGD3umOWM5%1UzDK># =nf8 {'K]L'sDJgFm]] i3 g[H:`.8zmsz)!@R98\vi!fT|UB+\#rlYԝuЗbLMtL 2b+|ܖt?6zuE#aRt_)xyu ZwH_% I1]Xz*)pE9 qF .+( v1]tqEp8Lr%4K쪛hȧfV6jh~m Zd{H9v bvy5[3Vմ 7seA B\f0vf#u#IIj_o0.C^ehڲ\:^5fF/X>Q+FAY1Q1/#ˤ5ߣSdx'_mZ?:*dB3ڻ7w =?|[%f #Fm2)lV>ߚ30hyH}b/-yѢH RMulHlVw7W^H23ʁEl5@ugUcia')yIԇ)%ERL^0iJ}O׏'5ja=Qa?tYw5}lJ+gްhV_8RrIɤ2A[W^=P&qx6O < H<6SXtc> o׊R$;5kO¡N*< 90^` "eG*\ؙv?Q'+ZxqgЀ()ڑFO-׺ x$!=]vLٴt (JyIsHn|܃[O'PK[O2G>@ 0keystonemiddleware/tests/unit/auth_token/base.pyUmo6_qH>X.4: $Ng4YQAI'3-$(wԋ%[6Esǻ9$" Pd1jI#-{v\զpPLY( Ra "- "˥YvSnSa *\d>y5˱6=eLt$+=7ʸy$BSxN E<4%߃Sd%Š, F c {V_<f+,g>V,^Vy2_ͦKX qE[]pFŭ`\J?&֙KxqsFեCҩXHw.U ^'r4l{jg"ɸ3g̜3!}2T )ڵnti+`9'dPK[O2GTk{d5keystonemiddleware/tests/unit/auth_token/test_auth.pyWn6+ ˨+=)|&)bg{i$H-IlIv ,3{CJF,\ 5 ] YB^K@Bp paa d^daM *'øH j'M;`ƻA)f0m U:*K=2-_)c(2(>+(=QۀTR4fMx"0%(TZuz\L0_^rb}>1}CkϳB1p־,9µfwm;[̪>g 2Fvw]UUoFkH &L(Xo;dw<&ny Kw]$*E`~ȑ? *~ r TD:'Q%2 E ;羂e *OP]8Z*&9᩻ $FS Y8h[!~w]b=8`MFt+M0qeWHQUEQܖ'bwNݫWwJ(Y׀TAb Ʌ<#Cᤪ|=MofGln"ٴI2uxm%*8΋SЀсB(ޥ?y >\Jߥ1M500X'{_G:VCz{3 ]ޣ ]TGщ| ➃'(hn/0nf}h\ֳ͛tWw#^6'pook_PK[O2Gg8<keystonemiddleware/tests/unit/auth_token/test_signing_dir.pyXKo6W ,"\,zJу7qQa69M$0f#Zߡ^#ͣK7o> GX,fŃQi. 4K' 9!  kc p3#+3 kqAHszkoL~>e[_<%Sp\JZ5(RpE{=ɡݒ)+A*`;fuTp@˭)BBI6fVm/@|1'>, &jWp^]`_` եH\ϕGL|2mj!c̷<}]v;*AہUƵ&Hy 3& Je@N lHO->+>24;Upj~!iլy8N2$1.)갱n%`fNU5X!EEHDxOt5[R械Dc6 *3dNXkң7PH mѝ{drMGgsRgD4ȭtອ7m#%n?TaQ)jQtpL;ci ,I.Rd:}Woݞ{֨FJ}Izlolp pQU7ú/K5zQ*uC~/Af2L٨ wPVf1Fsye9jyCsϿ0Sk`{V7AijQw˽g1wj/U JZ/t]j,!ӒSz\vqm&fi\QV.sn2FYln-UW+I0OYT.4-TΨ74t.9؞gZjgkݣO6)9,:4uR v)߬?qȕח4Jaqv@oNj flt|ka'ivA]n g7ׯ'½,9Ph,bHߎSB b\vR)8NfrDBzCXV.<5P}?Iw8hۏ?%OGs7PK[O2Gңs@keystonemiddleware/tests/unit/auth_token/test_base_middleware.pyWYo8~ׯ ˅ä>ean:mF6ג;eI> {E*3|䂻)Hy RqF :hLV"!![Y/H$4I WXk#08\ /cxH c\U9´7ThXPBNLR]OóCd|PHMijWHec^Hy4%|`JK>Nt[=LJ!v`?{M0.)ʔ7yJcgahԩѪb)\")NjуԲKǛ38E^%2!uBmY4t72"٦{CP #*t[Ee6fv!!_FvEIŨtgiaRg ǝT*쁉r\>WiGpE6GUӔ ۓsL<Ͻ`y CZhw9ie*ըn0VT&RezM<Wl5]aTpK3hω果u\xQ/{[5}ٴni=Aع+OZT2i^!FªDϙqp^[m_ӛ TA-E(+E`*WSyYؕ474w>5~eC&% 8ۯ┎'wlׯԭ]wjiqh0=x+HTD>!x S ׫a F!9LbI&͹u\tN#`U)STWB+>E?تim WsV6 _DBnE,Mn^:]3;ǿBܵ[f,\)}3\wĻzzn4 Dƞ~m#T7 ϓ?3qM3|-F8%z ?[U)Tb{b/&ZHh~SӜ>aD%8ITg&\&Σ#E QSEc xl=3v SD #ڄ{в'PK[O2G4keystonemiddleware/tests/unit/auth_token/__init__.pyPK[O2Gg-m@keystonemiddleware/tests/unit/auth_token/test_connection_pool.pyWKs6WSJ?&ji"g,L&ÁHPBL ZR~}wAOإfxh1fE|ud6-ϽL֐QXBD ۀʁrgFM.h 9J6Xa=OŻtsww3[L's7vo3=G[5|A #|s4U Hg<Q/*؊J=\:<^HaQRG)0 Un/ qRb(]Cu6FD8e]Ayw(SE '0.e9h_dSjÄC? F MwXare78^\zO'XmdLЉIԙ#oh!;mTD8Z*dTvp:Ui?ivPRsGhWXDGfCˏt ^8к"j@p-DC[ UV htSN.)/v^&.cGѸ=h#:{Qzt쑉Į_Ôheh7 q(MT uٚ9̘2a %En%EbZ@;>?[9dYPK[O2G#3w?keystonemiddleware/tests/unit/auth_token/test_memcache_crypt.pyWmoHί%:wyk^N@ iPzUFbXŬuߙ /;>;3!| sfơ2˕S$p\4Uj&"4Lρ/=`IB8@02LJG(0S;gfLxqtX,fv5=ca}wz]\kPW$=Z 3_- P Fi t01 x 4(1VR?1YLp@opۃޠ?zÛG{]75׿jԡ% E J+;0ĹԍIC0@9ؔ4xJb\r5J1b. 3;+Djh6PXjᅯ $&EfKH9{T&S+Ӱ}Re6ډ0)Vdk3m!@c^V̴EVODKQ*B%s:6z Fu=Tgjksaf 5b`y 񂅋"P/ Qhي`@`(6eU* 6fv.:V!Wf"@F1 n6w `5uO߰_*sy||"LT_cݯ  t.IZԐlkSpm 3xXm!831s6D(Mبj+Ct | uB%_ZʺD˶m o!{:iz)3"7|.$T;4֖[Fݹ_^n۝*~+E.&s-+؄n*dR(IyaiTRy6០y״Jw ۟-N!@qnP3I$[,Cf+x o}>. #)&3fއ"꬏@m?PD$GQpY9/x(9XpἉJKkoI9Sy{TƋGIr% ^WΤJmT>0{n#OXTvw0-О.ޝ< ](\F"OBKK q2+\7XEtT$!l͕ޛ,+K{i–Ѣl1衞sy 㢐ml1K2MP93=|1e4Y w{ywKsE pef\+'#eςڗdL>fvwLA\qw+4LB7PK[O2Gj`BCFkeystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py}{sF8R 4rv}U$:/IVAu<03?X잜Nghz|pq |%? "a9 AAg3Y0G8pMD0g$0EnЙ0#aHRaRg`8 >c.S[z5‰ gt""V@P; ?fsQO.( myve R7>fi%&DV& H`1ia<2 o_^W@.*\S5Ya%Y]IoЄ`m$z_{s|zprMt| pxeOw:*l8 #ΑT~ (9`j6-ZH{;Ogi&Ha"ԙ~ @*U0bs?_Wu?}~};<8=n1sut!ӭ$n[nw^<NNO$5[lzrr /om0{ۅ;`r٫ͭMRi~pCԬGca0B́+"~ ԇ}΁FpR His0ag>|8KNJx2o#sr i9!$a؇D|4ˮ$v>Iȉ:7  ;a89S_fo(ؕM9W~gYB(PwLy! kdqTFe̤`vWvΥ fQ(x2Kc݄I1<x>#bzhE j$k6;]s +.܌6C@QmU*l.p&0AN\.Q$?e@35c|L!iD* ;/_ ga I}"XH2=nQVKZݤOaɠ-{,H  dIxa.M 87'z%YJWkRVrT oic ne5сڿvgVǃXn7h lӟЯ-ъP<u)U}64P?w_.>f4Or}E&;aEH/ca8Zu~Xt* НR?Sqt^޸m:Gw |H %ѓ|qnP `j$%+ H=s}M1qKқ( Af0 l`P7YGXpA3pjQqs~\j?wN|Cm߁#% h,;rS ; G "`: $`63?wGY:w~<#uW.*}O)#rutbXq.ʤrBc{Y[e(۵eԉAq|u+8vF#J ʄw R_K*5[?Y xl+7ЛmV7o# D@H x 7|sͶIzBq,qjVYY6}%yR0?5 Q,.~[{bQg\nֆ_@ql񤴘(B+&Qa:QQmmѬN0EEm ^X>rnJwabZ-\IUXHj jr`UcX5 ih.ܫ^ur!J֝i{?Jh2R`5va`sڝLutyM#kacPt FZ1އ ưoj ""BXg?S YtIr:dHYLc|I_oɤ8;:N$rX2bא]ٻ 'C0Ǐ9]њ@9uh+sa7, K܃mnL*hT?a6 įДKVBW3p D8`d|]k y)~\ N;oxV{_*8(/)hik3vˈ7KcA't+ ~O̲ `&Qr#8￿ƪא[팕ЩeȊI٘ʄp/JX`= 0i]:(Fs>3 cH*)!KNr5A΅;VwL:JFpZQL_4ZqJvèe uz'g'9`l $S '-]-ޢp* ;Oѣ>v,9 2g>7~ dLMo[6Rvܟ/3=G"D`Fupc8 a4kA7yAώK $Ł kP罹swqy6f<'0b_hmwYU#$LH ]{\\vcZ:''EkgO8ǜ͓1?69ÏMp`,v7|?xT41NacXf2f@{q"ӯ޽?`qd?uoQ%xb܅Uy- 跡r 0 \n]Pݷ{8>?/:g.Ox?C>gL#mh/Xl&E:p WέGI\(e[lO:nbTK~2Ϩ9U[.KV"Qgkzg{c8g:;0&(‚!zLCa}}{xxx~Gzx@;̑uyGS١ڮc#먚7LAeDe$[01' ?~ԦɼWtFG6?Z(RS J:v|Rn:(h􃭕a aW:ߏ6*xлdl~g}T 57WɵfIE//=)Sz Fʞ3%zZPZm|BEԦQW}L'( 49 Z>vT[t{8A'%ESM$ bO2lq؂0r J֏nXQ+)*ac-QT& l'B8m=5\^ wlbSuHQ)8FR݂U'B)O?}f|EL3mj|.芞q%@o,;|vZ{Sb [(O 7M4O#[+D*.3 &dicƝtgeۀxQ?]=_6/0qI\)-KU@I >7K)d(-#E]JG`\n&^c011D垇RCxdG1wpH;TcdF+g&hJˍMKS;/sw8L<]x+ރva jkcs&;^ p_+\3m4Oōw~aåhj` ߫T󓚙rw'HC42\# lv>xO&XF6K>\KDKdK%XK4mHȁ홨$VON9-K1(LRLf'cNFN-K؜/\^U+ Er_azZS촀F?r)<.ez{1Djh} S>FR䗵c>+^]i*`s !Iz̝E[k9;NfN/P59kǁ-ԡtT/\0Fq=s jQ^4*rԉQ0~n>@-! RؒP#S;gHp\,Y̐b41U`Z BA2a_d(CH)L#>J,*Q!,=9#+001EgO,GpPi@#"rt\M&ͮ?U `Mg.]c18Z'],/ySv{)ri1'8se-\\TpPLT4PfwUf6ObaUw?,K)br ]pk7vu1]bՓjZHv쌓X7[hQ3E#ԷM`5$w`Gi#K pI!'E $U D_4.+O)&x0* 2U`HGUyZy>~cs,PS ,>VFJ^\;D ًGB?N@TˀugZY΅<)RP\҇9\j'xeq"C6)HhcPLEQיSV?l۴ϝSlхQKleb`sWi WHT?؟&ʐ2svrg=O4+[:pZ-"6_n۾]0nq)s>>/,֣ _GC')'  ]1PPވ l8$ 2FGN0ew-*HX9x0$,@egD˓m\?6XA$lwiwG E9cxĭ֒djN%Xt$`z'Nm?mǔmeJ-/DvAUL3˄kW6^U`~ի~+Ij%-SDbчu>9ͽxa7Qd6G pt'?L[M^Y ~}6=vA ΋_*<)rv2kTVԓZEin] Mzj]Xe{ڃ 0?od] Qmdq .HczdNx$ݖxIUO ?XƺB B =J HOi|. [ y}^?~1or;"wd,Y4} nbQvإJ"ħ,ypzie ?֞;Jd~cDO3>V0mЏpe hh뮪լRrtK~X]Oq,šC˶)s(UR%Fܒ]xG&Q2tEU)U+_*X"S{'5S6lcFEb]svh 0GczELz‚*e& 8vp͙ ߁Nb%0!/i#ɒ,H@ֹ0j P/aM LBڵR].qJw#vq2 7rS]햁RtqRTz;-4P: KU;/nZ3ևK!QWP;1,߷24eJ"ɖ$qHAx&dJ~C:N  4M]6S4ko_.۶#@0U$c==> wB#ꞡ{'?NO5@4RU=+{~;]O8 dYp*Ք(Ne$Օѱ*,WF\OY?+-8vvޢ5,vU(QT9E_sT )RY4Y"% XhhSSMht!'x :LS&7F3֔?iwm#0rg%,HMP#I馿R2ϳ/N Cگ з'JOckz24z׻{QXmx#¾/ʘjhŇМ2=<FDբ Qϱ\]|jQ2 [bRq_W$fscTWbSG=hPB|Յym(` |R"T 5Q7vV Z9.U!Ka)oqouXk*\z lct Ki*~Oz-",1<>FNwu }v5X~zј]l:q1i7rN =E,o`v1l\QF;r8*+yerG[gѕ?(U$%2 x q`Sd|*I Ɓ"jSh'8`3]-M, ):htv 0ԳTc5-vSy_sJYTc⏘F } ہ[0aڏze{0+|eM jby Hf<²D$1 ڥJ'4%/1m=N~<`vUR.-tէX4!6^b&ϝR a{s|^ E{, ^w2*%5hkUoBt,l"\g>j׻?YῆlZcS) ;8`ǂ*Tt=8C:21 ?OQMx5Dr#EDDbű1?-qݯnc UbfXj<%޲2^Hߣ(s,OוdF1EWh" oOT2%\/p.h5t]X>dDZjaT t^ a41lZ5TWCU1`,.-ְj1j4;.l= v[_!|J8*ƼCh!t/**Bǧ/NEWG9:DOyN\0紬EA&&y [kG<@Iwݵ7[%y4^Vkkkj/Y0@T+Fٟ| r#OGΨwW~ l 틴 3KFF7keTǠMlbX?x/,(,LO4gᨙ&aL9[s| ';3ȏ2`R[Ff~*?-(Gr^FmGMg3DpQ3x!ƒ91V.Bk-Ei0?1w^.*5 ^ %޲B:흲*EQV*=hKpmj<,TsX/fV60T8cͲpdW3HM@Īb-/XR9 o{`)ήB:kUg~B<݇_ _H^hh6b~H'*Jzpe#وjǏ[ X߲eQ?KiXS8pn'δ< U;Jw2lܤ&jWĥ4,'c0gZAveʄ]p>PparK?&@b%7; Tl ߄>9Y? Jg>{:nx^R${?n3êc?pTilGKqVQSl#v|X#+J/e! 昈Kv^QC03/E \~coJB䎊(CPoi˻S8 r:)2p F+ grɝSuw!;z[ |M/2ÙU44zR"Jo]sy@܅vr(9 1= ?AF0d'3OoI`p)g/Ϗ Z:CWlޟ;YedO&88Qq%wų: P^nIB&EyL_5ӠѸ"u`Vq fh0y`yҬHGV]Bt-Ů ͔|#R *EͦA"v5Kt=[[b=9GI(Z_ 1"h*Fs)K> CC=jȊjK&y%1Ri{&HpVemM;.9?n vz+Y#RhETmm~XK] yXዕ!t&@`+΋5E&,8Ih(G:6.*c#oY!qC/oq\ܮ\XB75+ΜZi&2BLʠAW2̖"+q(FЅVQE^ª}}DZnGT+=XK7zucU.(Ziӵ*<6h+&'Ɍ想DG]ؐI]|LYbXV(y7ce"}HX/ls~<ԕ kSy-cȮVw޾~Kx{gxzOGu(ϥ1 &ڂC'@Nt.2:4JhބCJn]p=ak[lvD]{\GnGA\aḰɧahlCGYPlF{n,0b4ek%?Z'nd!!I9e{gI??)ra_1QŲgZl`f4sCQUr._#Jt3UUϗZby}|~B4?)R +"-Uy\Idc>A8Lx/bYeM(DR~Nv)JM<ԕ xo֮El-%Kvy#u7-xCC2FvxdBD3N Jx vv|]qUH 9w7}1Uʄ*d]6RٵqeեV8h.ZүWbI$Ogxk,!ɱ5-IJ#.)Z +]v(g;4c7̓SЖƮ@^U[ևMՅ>V[b!mi4{*V6 W[0 p]'ܒ$1 b$c/dF1ncFVX90&Av ,&nyTw?LXN0fy,s%VWyZh׵;@jk^m˥'%/PKu%5^yqJٝ˚E/ Y1 珘Ъ4,bo5ztUM$fJ`_۷:Άy5Vzlcڳ걹p{{A3Y,-aӓCo85`sI&_Wq8XTI)E{ @#i\pnK[liK,ēG|7@C){LgiennϽNώzgA4;흜m|{Ƙqt|3N CLDN?[V1nLTa$,\tTzvI K8?˩)]gX]e\5m0]nVŊT߀sR2LnG㾬 m?L jvbv#hBUNdB0D,u"/ @Ǥ eIT/AXTd1nGsPJ$]st4X}RxzU,4(9'Wqf3I7)Q|)ݪ$t!7T"疖ʁ6)VVv(c@Ckyv;t̺dE]i%&N >=ղ=%n%d]VxE+hUU1WR'TN⓺tjb,\_()eQfOw5jgQEGo?|EImj\\ʕߩ<aDABmqcT[V Z+k`aqԏJEX_ƑOwMt d>R༴ѢX< TV]%V(e 2QJɵ4GmBe$o3Ny PZVҔ-oטB072 m|ZkvYy2qsU[q,Jy1JzЇe[^wrv(ݑTfK{Y[M<|#)=]= -&ņCL۟9Ǎ![+[U_>t5*zqm3x hb~D1 vΑ-/RҋO? ^"Jb"h64 DTPoG4]'

g"+PCHFRG;hIdY C /M-ߓ;($ю21磀BI r(H$8$`}!Ox`(`(lr' a+SHb"; DPz0 !\hO≕ ȿqL0lPL]h$(} nʁR@G3 <|fw+\*YC¾֙5,L R OWq@iRx q1eWS"Nӫ%9Q `yj5(!&5gorTe2`I4w~Aϔ)F˝F=l%lY?:[%Os'ijݹl"{Y7zoKY"7R/vlkCpL  !gVP m2ۈ2U΂Æc4_%5T1HY7y+L?I ܞ֖ޕk,pfZFŠ0ZR[}&;tے-[A=Uj˾6kR꭪()}cley^L\fx~TZ{tWʸ#Z9:ʸ!5FN47[_=.Oĥ4OTJ=JU6깮3>JjEKk?1MhƣHˁZlhr.&s#LOqcN7Y%-۸nB?.]=VÁ*p1r3`.3VlÝ LUߚ/4e3M#0^$?zzݸCј锰w!f;)lkDS߰=`86s ӈ{k|z>}Xrf_Q,&V1-"֪ŅI[yG-$xZ:×Yu,k]@-1;Y!v9[,6:tbR vzʷ/?+{<=}W%tVK>uW R+WyIo"{W>tjsLmM4 7b+Dx}^uÇknq+dL.ߜ_;io;ՐQvyͿJl5YƷ50ep@f8( Vt>s糉D/3b:*bR]=DXYz"NqVoˡpe*5L`w CCu@+"+qR|y&zeAל`T85kiH2ׇߒ9Ԗ6g k wZ{_g|vY~I )|X~!%ݟ>*&e|\?*:F,~ӖZzQ[nNm, PۋReY-RkE.iqz%PkYvY6!h{ ۤ\e 5H.I%-TʫI֐S_dHC (&"lGp(jh!0DVP.yP73klyPu@9[eN ۏz&;RM6dÆPK[O2G]<keystonemiddleware/tests/unit/auth_token/test_revocations.pyUn8}W -} :nP, 6ԒTw8Y+/33gЗ0>@|L>EhfOD7+-ٺG]BΏU,)>X8 R*E8Hj0Rq\*'V}K஁ wL`nՆv1.VZ0o) %9/S74 91tR"z`GHܔn@Z2m\lgx}v?[.gu|%7:[-_&$ |*ρJO' +c5([`*2Ԯ;~D()(Z( ty,5t6wdժ}dR-Cli"CO-'N?>S#^KlQM>fӓi^usheu9 ҌSy45sXoH2Nh1Fx@Q-EPL C1us)&./&oT3:^79fz|sƧHq!rUa]{frGMsO TNcbѐ|/ ^aόHeF߻]FWP}$:xBM0 Ҩg%N(†g==yN{S֓D8H.ݴ)_3wXӳhg4|9 V 3/~O4%7TPCӍV\/NSE6Z{u> t"Lyue&piqNwT5#~f>U-/p֢#Z^ym^|*^CbE$ڛ%;|^$:`'PK[O2G):Akeystonemiddleware/tests/unit/auth_token/test_user_auth_plugin.pyXYo8~  W&}nnN;A 00U.J"izp"rf8|$ILu wz 9q ^[/u;G$I%\a+%xqF#K1|DNQ$ L:BU6sTrv|\.ub1?2Jy|1z?OAcsLJ" nMh y Ăй`bTx)ѼGdMGcx@oh|# |ǰU"PP COZ8SH&3]GS4ΎgfPьn [`]PE8MVڵWAu8Q|-3+jmCjC[a7;͡@p rEoS .IHPB8!]@z1,#-rH;tQ/JVn3wzfD*JcQ+/p^W64\]^6Qc mY)#_) 5EϝSESdyJ;] >5Ϥd 6Mo~w%-Zūf-8S,TC!b} ŴCǜ^6#‹ $UF܈  +}ވ=0)|=(ֱJ!WYgn݀IFPb Fs%Zg4JhR ^qn?'oG¸L%45dh}u-:mlQn4Pcߍ/gf5)2T74+Mh SS2UONmxb)yk#΋ @Y`~ 8NȾK7Glv 'j`YF;Qh5j@2R$v4`AI 4@E `a4|^B۫ )a}kWoM}cQσ;u{caY^ eK(ߛnԬoe{CZ=ԖȨ5,/ud&j_I5L7L0oĵns vϛ#^ɴz̢V`YʾVA?)oImL)_(Nh"t5'́t<[r2E# cȃAF79vT֦YO*x6 :ZC1)NI?8ZdHRtMB2E^dD[VaFK:?>5>%=?LmSl~ݍLIU&]PK[O2G(keystonemiddleware/openstack/__init__.pyPK[O2G/keystonemiddleware/openstack/common/__init__.pyPK[O2G% 2keystonemiddleware/openstack/common/memorycache.pyVQo6~ׯy[Uq4݌u`+ 0hpIHɒ{^$}ZW#GoIIphgFP9 V-a2,Zh^;Zp+b%RbV$(~fLUTPX#6]ӕrh S˔TE- w\FI(FveHʪ^d櫣g&F`Q -7֚6t ǐ.fSIZ *m@0+S֢atmbQPsh 7n[,^ SW4r]Bi:UċX}) lŢ27a0^! |nEYv|RK6<.pĤPzO쎇6]JKnxTz3] O|B:Sy8kΆ@ ѥΚA iL>tAǞo#{Sh 6iw\B-3_/t=}mASqL]"9? hՅfnh")τ 0COROO[LR-q6M%ss6l8v˗˛A(fpu qv]|\wR8F=. _hЄJ R&L o]DOti)JLer8$̵hZBKq:اnQ}u: s5O8ATՂ.{=N ;+ 0eoM™A'lI,h&aH28ő+l\X`R?P (ŷxk^7:*#%@y29gSFcIwio]R=m+Rx>z+BbQJ'&G0S `7 ы3+Ҫc]^Y\&twQoQ41\ܫuE:M3E\Q{7V'rfuQFT AY27S kT\ˆ(p60z٣dlg|?}_ V;NTY7JvxipͭhS{+^Sa8Q:kmmGAEQI ~ {곓i;rŠLIna'+TAI%rxCR4=:v3X P5B GC(*ڃ>J(ck}9CW9i<_땛|ުj"K7i: Zy!I⥑ 5ЭL^_6BPLٽ~O jעFbuFX Vʎ|RQG欓9=W#(y*48<|E*hrٝ6a*, ׁ6ϊS*b\HE7tfʯH(hv. *uITOzr䘂<@3&PLjMbfFx{,d8JL)?=J[fX45+ߏDIj\+T{{џYnM#ymYS()V:¤6ӏՓ䮀!d|5rŽw(PպY(c#Tek$<( fA+f*XB T:gdfFF*ʼzfD>ΠR5y{9ވ!>rL^]dzqXI=,XfjWL/j*YmReNRu&VC[9G%rW @O44v5ړ)`5‰AKFhu*YԈY%\S$o|@<}ǪX*_8}ě:o: n?{ߞ4]g#wskɦ84]ksr[CLuD:<2"cdS9,_WhSP^P/nv+׋ڹ:yFn^4Yr[iuzh:`$P]SqV$.7O?ƥjż=' X#E/֜E?&h&,I9YzHδ62("ʁ:IOS.3 vOpըfCӮ YSbKğ2`AuO$8| e|Vj2?PۅWēT_? ʍ?'TlꏚEȩFN&!]5x:U"{7&F5RHI_iMћ_mҭ}3yO$HPK[O2Gs }I&keystonemiddleware/auth_token/_base.pyeAo@'Vrqch6(T')ZÀGdw(`;RpY{olCv7;%>My57`o @j wzE}VewldV{:<~;r9cl;).Ze؎Bf`zV1;3y֓Mga.\#.5俶4{e,fIgRiyoJzH$+U|UEsјի~DV@QW7d6Ɩ.ML?BŁEL=EkHRxz\}8PB%[SV_QΆ36x6`oc8'hnvr=o' '_؇z8|19S?G ،I\t b%bؕњqqޒ%b#Ld; : 14\)鬔0jD[)insqrt|p{G&J_v(gggW2~'K7rDwFxx5on6[mآpllYlO-y E_#l9^?;G7}H9Mx3Q zy? =;I *Kk^Vd>G_FJunm@ *{X#e֝q)t] [fRF-# ί<.9YNl6#h)LU}ShPF"TF %0Hl) vL1^97Ι;0^0;@v^s!9>vu_9c  Ck(֠/z`bUӛ'e' 4)a0W(-xo_W>"1-|}mmUnJ+Ay#]l-#'o|w7[VIv>}6't0T d>}TQ.% ]bjo8(fA'NP,n:ߔ mAyk-B Q"Cj2D* ci5vhs&`/6X-kqe޴hG? #J"`ŵ`/ݥewJ5Wvؠ74 o-9]SY5g8s)^ ڲj9"ќlN*\bÇwz{3Uk\דaii:z7'2(g e6f ]Haa3,I[݀manjuN^˚~M=Q=6n-aȡBO? _zfl_S6DDZ]D[]pQdvrhjt09 73 F׹??5*ƎX!e59O4/j1Iv_ғT?.Ȩ:D{?X`vZB75K O+6s(ؒpᵁi*rwJ&ROPYwtҗlpKQV)@ۥHE-pҴ ~_Z ,]4?J/'s_UkQ<8Ͱv ^vzUr_Hc/?g:|"JNBvx`K9vJf5BqRi^0Nsx# ~%+b@toؒ{9mй|޿y \oh6Yb1F<4w HE"z0-Sil<_݅•\xq} og bEWMr,&tI.r0iA0fuT0t7r%=4$>`HҨtH֭~=OSm ^SQZ]娇vu"JH7 z 9ߛA%.W?CeQўx)X$p MKʓ~72J.;7.Hh %wH{ja\z$iіt^ߒUCWsaә@YjApi%=޸^DSL7Nwz=9 ~#)޸`[TIjhɇ'W\mlڇ֠Pߦ5.#8$R~FSKUF Ct O }z^<\,"-F̏e"c>~:F\U-` {pvp}<<9]E~{8>=P Q%_!C:v¼`el3dEq&U*\ L2[e5C՞V;?&&'>x'zRz׸r94;F|TqDEUu&*O XB .F/JR=`@jV<K aN}'0Z92f9tseP$VE 6F+ k2͈R-h@ġQZ< *Yy4j,[jlTgvZ,45X4\h@6TSc/2ML@I{dIQ. \=5TsHﴴUqUTݫ%|T>S۪4d|^KRnoJ֫eA%iU t` $9)J8抿*D^ﳲW>)32k8enQeA4j`E6@*{?@NN>\0켇'fh#'.sǦO ':~!`ƫMwTJ }%&HʊJ3,m,OipwuѬB2փ~zy<>d(Ia{@s/hx>M;6ڗZh0o$Wjd̪ Eq8 VKOD-2ͩpT ;>.*H4@pa͍ᩛS5xp@X6}ϝF]÷gp^<>p5<~'N(3}YR)?$Nt-H=ͦAWJ(T@6f8bS2?9PX&PBMkxKD]+'.s$dn,n!V 's^rfm=Gy}*FM%W4g,S77%hwa__|n9R9-LŻ9̪hoW*AB/"/5% E]dsZBDNg(*5EYb0<9;P^䩃ˋ<;D@:RgXBA  zd5u3VA>}%zǎ&q#[ժv]=|8k MtЅrFϝڬXNgIos<j66-Cٟ6B|m>BL%;lR|B4 >{_Qf"nn~XK1}' roj}JZ%h/QcYRAC@/ @evնiNOO^|O4?eŚQWB(|oظY<͖O`UY RD:+݀`mTfjDǨ#]Fށ\ 5j甆̳O7VßRFv{z "`~3;\2UIPA4`,hX|-%38 ,WDR1VXWt>;?97ZׯKZdo(-D(%j^"Ea,%B!$i}DLE,O|M.ΌYCf *Zk^rڳ22S=0DѸ$Ce02yEbxS9.gvx]~C7s7N YY>[nRS܌aN3#hLDП8 3mOmSoěGr?%N*x͖]n\qȓ_7b\ L$"IP0i I9`aJSp3 mgv9J#70uhDR>QHճ鲘)O:DsBOz"$9&CQMO˭}7yHqO&'p9O6KT5lv Dx=@GyKf""]h 77:{*%-!ySbaxԻzuOVZ/mS+) o+u_Vj5{EPxjbt`KØ;FMǪ]%p?fujNon*H,zxd K@UAD/41po ݈n':hP=_Z6΀ H0H+V_Bʭ\/[ָUޗ1<#mҝ-d]rgmcL@MV;Ғ~W=$ղX1w~&`\-& 烚gܖX[:MڔҞ =|J}Y.S afSs[ߛh8?G8;ߓUB1ϋ#Pj* T-ҼRF")z=(tG Pr4U˵Ѫ*PShA;~4F&K~>d tD `nI."[6 9EG[**?8'xU)_{96q`u~֤ԾzfcںC :^`LeP q$ior NOV/⫺X׃$Ydk"<ތl-p\L |/^<x;p=f̎k=t7SoۦEՋ?C?2qTdƖҰ+Qt}Vl%ކҕQՠh j(v e+i5A/K M*lΠ,AR6v^|E:FFPgS4{w*$'*:.mKlqk7tF"3B60"U"I"5xn*5ǒ;AT&]lTMrۚWNaDu$ 0:V_0M<k6"t+%̝# lYT*cj8d"gɑ #wGz ٱN@@Y)m5t2'?"lW&IzGoJR5x"n4 Jjh!fԗI(,lbѵ'IO][0sEQ&.AP. N+٩ 9UK;\&mt?l pPoD71h6i댶Nomy]S9))}Yqtqr dVzJvB.,2 H8./-t)ȵ,DY}ÝrFA mrAY蠝0@gdD#ċZUI T*5QLdI%t2}k@+XE*x];UMxpmOmHM.c@nD s‡1jxhb#28Ecz.6n'r~UeS~k?@Ǩ]b8C+cixN`Տ0"+##\3XBp gdGnla0dfc*hXN˜"Z("̷%AUY!pH ؍V\MP_B*;׵ 0;MO12CDŐU(Yc$m,| bgN!I]`8J\`eFoۃkU ztYxLO7t :L`j@zhQ1]ǘIɘ//>zЈA{ T`B(+|7>=ywl#wo^>x.ߍ?wֹH^]_O}_24-.;*A,`{=䑜Y55hC}Yʍ0  PM#'x ~!NS/IFP}c ƍ # >Ʊ4`ԁ#d  GyKk>`8lF S:(rP@k/C:EEMkR'm Vr9ܨ:&1:QW@K'4Cʸ 8GQtOg9`[^I5d+|S.0 LFT/}CsjڞeQ 0/hco*vza'dTBra؅-c',ZӘ r {ܤ~5Sa;BqtSU}r#\ƾ P9l yopFog:R+,Q' L}YŬX$ O9rZPRHE7?F (qGLV`B,Dd>:Wk;앯0xǎrkg+C# bSfGmԝ?ddw<:~vSQ6|XS6O˶E cHᏜ^Y^3FTj9o+DO*x|j9XLʀO8Ь!?LdbP-v a:!JZBԄBšB1]4H}luiyrǨ P8} A@$ GCa!"? :ZMRg牵8Tŕ&n+4I nDϠNKOƺzJ ֽFfF#YݛTG`8iؕJ[EZEc vf{g\ܚ9L< M4/NF}Kw uI0,}~$ |RhS$u2j!;--&sUDxv|IGzWۯ٥QPom9TC{c0y;B 赧23Eg G@︳$|xyG;>N>;AmOrx91+5>CcLm$ݗ~7WDAk`,ttїU֕fgbz & M3/} dUm W.0za.t~#_KHTu퍬юKlR` a[.;|5rIަ"w,Y^2-S@4ɣ6(D {tQ ki)2uڪe'oRD>O,# 9; I5T2Z 1ɛo֨r *zLC z|6hPmS USiҢ<X>W;? ? i;XZۅK45E n%&N|.!ohT)4eHf{C'D*(:!ۃ=>~rzvy=y3~{1D02^Up6%MFu..bu[A &fhdU4.clK!E3awjjQrdšJULU3N砸a:D8Y&%b]6h(!kZ`:5A 0wXu%,e1MwׁL8#.~2YgXFA&v9Oe`wO(PkJ/7Gnq3Om@cttXorT#!I\)"$\`DO{l /7Ͷmx(t9tc%+} 8aq'O9"t`4~h$X1ZG]sYLxzƂU1djԢUTwp_$YȟbZЃԑ҆з3Ym` ),9 l%A.TqW8}@{Cjp|y \8;LQ*dUͨ^InY,"Pl)LmrQ&-fvo֔ CүrZǺV )&qTߦ؄WƮb1,b>؂]A_SPQL<6cvw $d[4W?I9P^Q-Fd5H[Mjy:<=%9ܱӿ [{M aK >9l\:]ocLWU/xF; 0N`Òƻf4KSQQ( ;L!T3760ԯ!4_vIF7777ؤJRAGѺ|Ebw;C\B+">A{6; s‰P8;aw@(VB%e*\;[o~gh|E,CKUE Rq<<;q\(Gf܄ +d4!NOfb7Lld!,]ko|fx!N ¨!G=:RUp?;V0w&~/ VDɾ7glɕ4.J*k>UA6I ]" mVt[| p6c8zʫ dS 4| rkd'w=N&m6Ka@ɢtJ#0᜘$U ٥ד]Lh8ۢM~@ ЈnZ}RТ:=we}lI^ LAk|)Ur*F? (ZT#+zʷ+oa@@ (M$Y:XrRp0 Ċ'20$BBJP]a}^W(gV~je65#NzMęn(eR**uVvmQ!EjwH siu+ Zۋ ;왽N&cqZ8$0:r5w o9:AXpV*v@*")ӥd__mg06堲!)/7`6v,e+-JIvUHpgk Z9g^2;hC[cw:#9X@ٙsStT@xx#4}cKSH< qWt00BB]v|{$ =L *28@d;߷ZOc|g}CufN='?3됐m\oۡq?$S!yH% ӗN9¶ۛ=idU_$2ƹ_ccOm.ϽY⤹$rOD/O¶rBb5{;=#uHBE4w|wLjx7.~' k#4%s_*K?M ;W63nפq:BG{O>FﮢjgR(%g+I+^9.Nv T=)̘g'뤾5ui;6g ;ɮA&ЉE}]RL& NASϟ"j3iR5q)7R| 9yEPJRYȆgv94#mr'S'Ce2)[^A@7ftȻk ^&P10BE>do? ݖ$IՒis/$ la5+ളApCM:> Ks\k)K05M.5Qt.s lD}ܾtqXǴ prh`h)2Zt6,}vOJ=az݀[s.Lh>pCNI.9A 捤t?4jW gξHPׁɂu@Kmlc=TDO,g0e*r.70 A B S{O y2Oy LiS)G5-ӄD9^1C<ʳ)VxR2O1-SsmCoH}X(!>spPrKc$S9ͦ[wBƦ0=nӏ"<XfwK^C {ԡ$QvނVGϟ`!WX]\/շORBUӟgчg{ûӳś1~ CvŊW>-W0|1qr=hܤ1ϡ:zbJG*T?Xw`-dOkIL!hqjLX!9$ITsJk==VRحl:teb;wpVUh\[/{|H tkBf1N;N&+Q-n8EiL.C㑕@&[rzd™&7"[މ–ɭ,Ү㡾z]1m7ۧ.L0ŧ:}EzW-/8S@ͭ\בW,8>' IEQ6v 5Ԯn~#t|`*(`'W|jĺ -YZ_o^Q~kڐPc@uy 9c彾BFwf+QK6RȷciB5/T ו"c ogKP7(\}!>Ia9,q.ؽW~ iv _]aMݰ"a#}ƍ|:;R|U3e/'LВzF:+O#UW%3_9J'6$JmdۋdkeksRA2>A(6dgAǣ>[ڏEe'So [x+;Gm1v }{o4c]9SFcG7觤~]$)~0 G~Z?n_mK="eʡɶCkFCADl$/]:>^}?j2`NU3UQF*N΁5r#I|ĤߩYM,Bhl]sb%p8$XUuQǥ.Nޏ'icg;8ޥN SgXyP23J%uT~ViARxh R.XS ^Z啞&L"y~Z=Jo@.&0$[º&0v8'=2ZQ|,'y J3@aBL*t!S tB;W^+/=^RiP@c=f:%ոnȽ[{WSAPX3'\9o4UMτ7O5`vza㖀}0S״D  JI在)$ycWyJ<Xc9 9,ܚXqJ8T"?hNm4Lq+Xb ¶`]t:"ayv%:uMRa&U0V*\9I]uZU-&dh=+Kz GcNjUJa;7=DUh'KQ{cj3XݕfIC^0%ՙ0{ͨ܁/{hǝ|tq/W9v4!tE}j OF oI꿦5u…/N?&ZқD]h9w;\-O\L*P'=>å*ծ-+R=*Ҧ5LEǽ"xS^{3Eɕ&0׋"עjQڋP_Lomh*N){ة8^V!wԆ~9\]_bJ1LϥufA̔Xk9+-T13ybW\ X-gݐVM.blr~܏ه??w{v]ݾd\3n`,F9%38,-7 Nv: H1ȓ_J+s=vM#PFK9);"{䅃fy5EfeT>Z\TiZ$.D $zQJz:ְAb3 $p'?xc c܇Gs~$\]Ln>ޤE@#]!6Tp8+5as {жך$1RꊃgGKmΪ @?!O}i2X"= vQ6z[fPIboNzS7w?c ! n*t0RȝNG6D?+:T8:!DsxID|u; @\}om ׌+dzUq'9%z <묰=FaDT.W֕{Mq~el] ;Aful3[x2R|ۻ +plzIVm yžGkk-:4%~&?ܲ\aKUQ{@_T$v[Nw7r+j7kJ{;jRfa^ v^Z7@0ݼw4: -/W ZfsWP"7* 闊8^Hu ځ鑧6ۨQcqN>yl׾PŀpN-r`+ {Ѽ'_0{Rhe]wNH!dbY**KGj̷l#Nc5tۛR%Xh ׅf \-4aϳьwt|)X]ˣ% $ɎOOrvv|zMR˼u_;5T9r439n(Ml>2I& Q@9usku7lP *j4Rc7SOaTunulr3@%Ha,Mn cF/g*cRc^ԊܢtS|bI*Z(EK 7nɏt7?\lgqK3`XT22 d8z'^dK`DW燝8FJn&GR/yL^*!zA.M݄X8@0AtJk \RI랚u&oi:Ek$]c핰 'Qhgp{]nz`D 楦tZ_/~s\6"c:.}v{73"p:XO)]|?𲧾Xs_,'hbh'v'FU7(*Dh= u[%NkںrI?+ofQ„&)E뎷Ewc6+4$hINa yUA(A\u/PiU?8o$C; p"?mT^nEPK[O2G{ >-keystonemiddleware/auth_token/_revocations.pyWnF }WCdԫ}*F6{X0h{6Fqb]_"ix9$9 ,d,F 0ED H:* '2e0H&L5܂ RiHEGiMe$/ P[+dFkˁ |zww<JR-w|44[HMnO r-LHgV1ࣖVf GX-dGA(_"l ~ |oX}ڐϳr3X ޯjIo0[~?@\3~)9F4êT ɝ(l_=^(Qp5 !;Yx9TB,,Zb ֯xNR$?g*Fei Z͗3U2Ъgl%ʀ 3᧳煋p_.H1 ǞE?ዊ,j#;zLqxdV3&s1 e&mE KĒ{.I##i2J{R&QjB:;&D"#nrD?ItzIK痞RR$ %̵IlIESu=+ѶJܹvSF$3+ЬY>;ϐf* 9[$WvQ!7` +73nү[? vHh/ǵ8Yf:;Ŕ I+5ͅiip 3wE*3qQ3^}.[wjw^,NV^xա.fq|m*}@2EkQ^lQhK,'hgrVnTݫv0ѻ]zUyD^zR{j.<#bY\4cPK[O2G} !*keystonemiddleware/auth_token/_identity.pykoF~F P堃(Ҩg9INP&W]J7CVpwޯÍxIs $fIOFK%.W0 l8D l١wa!QIkpO5hMJā_, 5!Rbuw;LeeA"Ԓq;SI=,GXr}Pb C%6T&J>mkUhL^ԣf53X 6M %gbtjjī:7Wa=L{Ua8X |ea{qfjeB%Aos~C1_ ^Q۔B =8=O?)xn%}"'&%F7':1GGM]4Go2ԜR$snߗK ʬKbr.WjMW-ț7—<gqECҜa9 IDydgh0aaz߱J+8V) &IhlU-{6!AFYH"ja] bzHSl "f㡇]oeF-G+l\qC0H5ڬ>aV; > sbq2"|w Zo?74ӏ>ߒM T* [k~bVױ$C#E"E=yNe~ !<~Eftnr=߮l+x0zm>Z )2ӝk{Jt08cx` t7;h[l>5Q RwXf'#lGRlDl'D:A(*MA2dr 2UC a)׎N$ʞ=GБ<q?dGFڈrEUg^Y5L~bP{ 7jEUZT:)j½Yj۩-Q7bG?aR2*ʘSG +ex4o1kIV2]y&]Ι~B}=-}} =9~TPоɖNjr>\mvdɵjkEFɆzT:RM)*یg7ЇzGbX%[:qݫG}lXCf6SS# Bnim% X,To.tHot<(bˆ[#7 yT2vٗfpso<5؜ c{lbΈ>^ '22Rg'c($Ȝ팊:%K[K]ȸpIMmim !LsSB1ދl[06U.:` m01]e^–ZnLbad#!+d6IȐgsM Bԥ_rGK=.vJlXP FӝYu:KҠ]"1 cSǿ631f2]51}jf҂!Š%CheVv+Eμh4(P,my~%T7Ebln?6v7L>lkB-16LnNġm1B n*ZdVQ>6F γ-ѧu~X7+Z]oVꅻ!o_$8?LzT$UR "ܡL'/ !4AQiXj-}6mO#` oo՞Dm>;zA[ۉci5ñPXwB=\1mc?*\! 9Kݓ';fcPK[O2G|"-keystonemiddleware/auth_token/_user_plugin.pyXmo6_qHP.>_NP UI #_EpD"D"AdkbǕDu`U.4yS#d"zFJEA6 ʖ&bDb s J2d#mjq0$C%3lT,?Čȓ)Zjc M: uc7r^EfPF?ښ*EcYM3I>&Iи~dZchl7"ـjf0dLrqC2U)T Aϧ8FtK-NJPcU6pW<8R8i'@ԛ>ŨFr\EaUz]P# ^YMqS* Ϳ/Ӱ}|TnQ;kao(Ijr]>玚>G9l9`WCO!$0{UXZ`tEQګ"<2uHZ0}[>Na~}f:>+ǀ!j mj _U Šا*2j(t 3رfZ-QBa>~Kjfy^Gbʙyr Ɔe8F Zy|W=x'Aִ p@~uŞ(ouMѐdn5k|) 3uܝ{eU4=Ҕ4;Plv3Knq|NKvP;m)SM)亻%x/+Ds!M}-evִ nY,=xS"KiW;hJvzQU]k0j{zb#jՈn^Eqs_;+X"`HYg!;* %&'l.wB>^pw:2p<;7)XJHg$jK+me.ֽ?鴴h~lnj WO;aA4bLڝ}Xbgҵz+c*RI:Mۜtygˢ4M=Sh}NdYI+Ḵ1⋐M xZMF(<}Y5±Ćz,2w q58ڴhY!R i'VBhJŚ/L/:pBg~9˲=;h"/u\rF( ˒2%.tUle;;I%n);9*7JܻM _=!}C5:㧖M#x*Žȶ?(9>!֒R_DPK[O2Gi02'keystonemiddleware/auth_token/_cache.py[ms6_K#0wohQsZtdTh501s r 5n Mj{׋r>lx ˕Л%;A~4J@ZaNȺ PYB'lQn)zI+t|>>gl\2SL *y1(f(JCj$a1܀yU؄-1:9S J\@ոUZ 0ICy<շ "&fNd+rƎ'Ѭekq "oGP*oZYA%6MFFaε~M(E A+9YOYA,+񧋆x&ޫxҼ5R\kkI b'00$>;gX/Łe Kۛ8 8vꆍO@grfNYl-KAT8 <靟隦'R" "~!3o@aq R[ Z'y +4Z}8w ߄yWؑQa+H0f)^Z\ SE'˱Ďke h֮O*{uq$8q$,-DFΪ2#7jq |-A^P_đPc"-6|{ɐ;^^#&1!޾Չ2@`_VaBߛ =W o^O(5 'ݓL{eԂ K9Q"9!V=wltp:.1IH)X{'If |B9AL>9Gށ`] I8ciU&SOTS~WZO,[]MmiI :;hڡQݸ~aq^]d9i"mf g#JH3֫V(uW퉶-C|2tv]w~aS\K:O5z㯂>߬C*B`Z/'7`fၖCOLy2:'r\^t?8 AIֻWPq%NVA$ک K(UG ۂZ:)t 0PM@Ytc(!÷]cc`ؘ,T+OA|yO]/+e48% diN@ڃf~Xa/Y"ݞm1蘿 "-U)p;n{wOt[6g{t,wdZ/1Dj%$9T8!".ؿ`0vǙLt4>L,W@o.4y,0adOR(`-vrr^j'8*2fѳW?'k. Wݰuvg( D AnЛxԄ>HpY *nEk*st#V;j.P*Cu6$ UA?"KhqWj-$?c5/+@ * !лD:Lӂwv~qw ~F= )D{qv땨 x 3xk:|ΒZn?A?;B'#,}VV96Tm+ߛ- $@H){߸YEpފ OZ)F<Tͣ[; 5Ĝ˵-w_`kf0^?ܵ7Z$ќa͑#8|݁Mt) =*mxLfސ[T gIIIKIydѻhF돟>,GNGNkU}BY"S1Zky519 ת (`25?f քgdG44sQ buy}B2Zi7OW/%5^ɍΒb4fqShۥW69)%7Aw CBgE1zI>vMy}}0,GQGi| iwh]RAnkz|Ǘ_ZUUw^ 5͐8I-qVUnwvMV9%PK[O2G'ޟ !&keystonemiddleware/auth_token/_auth.pyYmo8_A(l^%M׃Λ&[Y'H݅CKFe'o/%;[,΋mB;ܞ9wI̲Hg%:"4B:5c%B ) o%W f4o 9|OW i<' |˰T$G?( =j9(, ]2KFbd搔50 AҎQA H,Kj-X)tIchV"\rFoN(KTD4x>D#bdn@Q3 ^ssgsg*Gs՚]^BQKd;%tf c qzS\:apWgX_gAxlXk7V"SpR(hx"y [Vu mܽb Mֿxz;%<)ou+wvUe|+Fׅ}dU.!"՛wMZ",'Xi41 H1N>C0I3(Y*,f7A+Lotuހp$e{JA,y ;X.5.dA“9  ~Qό$&#R5oAL[@ , F2 _>iT@? 1:(d.4~WssfInP=Bҥ: ~)ڊ@_ĶK_; b b4 :~جuAGإ`GW(֍z{YCכ}V ,[#a }C푦+rd Ð@mh##OcBWc'zT; 5;__ga/{q V^g8[/:9%nvl7~Y;* , IJaf@|<kP0/nClDGpS64諸?6<.4[ybuQT' ٘Qn=UԢòJ锩SQv;: Vw+zhB-"0])$ݢAdE'_tCyZ% y5+ Tҵs@C{m7*  ?g1?V@=Uk`#c47$sȩ±&\% )*Gb umX%@6sMAұv|'8<{glZɓp nJUCwa{\6?X9(ZZV7-VaaG>dK:Tֹwf}ysC zs}Vh)\ 2nm+NT;_8:@sMv7,j[BHU9<~ͺ5^}:~jLGPK[O2Gr!=`p#keystonemiddleware/echo/__main__.py-10{ŕ2/pbsdf*7b#8bǔE =ȴNm=;鑍Wԗ8 nPeJ PK[O2G#keystonemiddleware/echo/__init__.pyPK[O2G+a"keystonemiddleware/echo/service.pymTێ6}W $^yE\16( --ln %ߺՋΙù2GFhoƵ՝ wN o;Hء?E7p0 TxhR 頔 _r=H j%oB.IJ)t) __yG7Kz4T^ScCax~Cg9w#-!]@N.VԤ{0"yRL"e)Vձ9|@l <^L4]^q<[N0|v?]N3Ƴ/a:ST_jK$@j4mK\2'dz݈5j5J: ʢd% VE^/zltb1Z̽:0Xo[|aBLi2{~7q[, rimgM3Thh`lCi| E+:?xbJѱ.Z 27NXJpk:"+N!f>&t~J[&N۔sIf>$NF9I.+#!>I/!JOzeY6 9t_.?edq 9HTřh;tE+Ĭ\UCQ-^gݒ #|D*ؔeCUvEn o]4ԥ\7Ze E•&ޙ;(lY~=G %|!l%'z@P$^|]&|i=#Yt1às]E 90ǖ00 1 Q$2`JSϬɘ[p 6z60GNdjtz+V\}caaY>j8脘MK1lCxL b5pV*e Nihrb;zs).Gi._oMYac^@ppwL{c_kc`s(֨3}'O, ōR[<{M=a_C6F,b7n$ .XByirX_fpUMD/38~1_hPK|O2GlFa3keystonemiddleware-2.3.0.dist-info/entry_points.txt/KKL/()N,.KLII-O,JK,-Ɉ/NSU"hY\PPK}O2G Z30keystonemiddleware-2.3.0.dist-info/metadata.jsonUmo0+Y> ivoT1`$T51K`;]Νt- XԹ{|w>?!3ܦ^*^;XZ2+Rp Anr_TnY`Ԋ }6`=VM h!J)y*cCJ3Ldq&T8Gf FJ MdeC^7Sm)x> tV]D%A9:*XZW`SnWt!58s'[mMV$:|/\j*`8LPcaG1C9V(#5ӦMQ*]bWurR{"XB_Jzx7s܌ %$c=sD$Biև!*_iq)U ԵхuMK>ѵ?N<SB/xGeDzlHu4HCHÙ\7G[k-"{:et`)Zt\|UF ׷CD\d^Z=,4iU.pTWPm뚛% z*&G%'N(:jn!dhq1nxʉw~q,QsgɵhiPLhGXady1~yt}3ČuʳQ1]$qVl +oB>ԘLqp9PmL"}&Aj j$~#ݠ %>ֻMFL{l–Nfvlw l[k9|>6WykN'3Τ ~n4C ϵ5]GsۗpV+йmvcTZizKɥ0"ȵ(3 D9 ~@DJޙ.W񊧦E!w%ꅞ0*#M>0`8 yzďtiQghd Y=ũipQOP +&vυ&j g]ІMgzJ\=o&pxvvOXGہ3OHlrndTkhu\z:L6 ӷh`FWf"!,M<_=֤yIiؙ+ʒOe]|5h^FЪ/]2SO0PK}O2Gn*\)keystonemiddleware-2.3.0.dist-info/RECORDIoO FAԥRJ!诿$/{Iii1?ZkεwǩkL:[!Ee[NQc#8?xsh<l63jpM%/žh '[#Oe$ZКyG{]4.T[<R3KhY+Vkt(5UO8^]=i,_CwKxNIbcie$ǵqV x;\$D L`(RI )Zv c*egpBq8=Գ8-*:* s3(LPl+{ȏ*~Ә0DBl?3 ߤM}f` a9r aNjXH_|*^9L0uᗀohRy퀝֙iL 7H( A?bSY?7U udZr|U]$39XWp*#1#.v:CL{T_ sT]SR1GvEk/]5-C\-BC)(^U}6/k8kIn* ޒbGxoϧx|Fb{óT ҡFV@ŴOj_߃8OÜPR~G73&9P5um@)a˼-Us:$:D_t=dҵmLeF}O^vPS2QX4I끖X͛&dM'E%ýQ>]W"n1J 2oLAZR3ٱ`bd[yˆnݺ$ӨbD5[^?h#'cHSD>xh`b !jPt 0PRd0hå [||7Up,I2R3]Au8ƠF`G(|L66qˆW#4Kn~D%UB Mo:43#w۝UykLKݞ1gG Jx\[ keystonemiddleware/i18n.pyPK[O2GNKz! keystonemiddleware/ec2_token.pyPK[O2Gۏ/@ keystonemiddleware/audit.pyPK[O2GՇvkeystonemiddleware/opts.pyPK[O2G/[<)keystonemiddleware/s3_token.pyPK[O2G$8.keystonemiddleware/tests/__init__.pyPK[O2G)|.keystonemiddleware/tests/unit/__init__.pyPK[O2Gab +j6.keystonemiddleware/tests/unit/test_audit_middleware.pyPK[O2G֕Bk *{<keystonemiddleware/tests/unit/test_opts.pyPK[O2G)^&Akeystonemiddleware/tests/unit/utils.pyPK[O2G7ٖ W0Gkeystonemiddleware/tests/unit/client_fixtures.pyPK[O2G^ ,9Ukeystonemiddleware/tests/unit/test_s3_token_middleware.pyPK[O2G>@ 0_keystonemiddleware/tests/unit/auth_token/base.pyPK[O2GTk{d5dkeystonemiddleware/tests/unit/auth_token/test_auth.pyPK[O2Gg8<hkeystonemiddleware/tests/unit/auth_token/test_signing_dir.pyPK[O2Gңs@mkeystonemiddleware/tests/unit/auth_token/test_base_middleware.pyPK[O2G45tkeystonemiddleware/tests/unit/auth_token/__init__.pyPK[O2Gg-m@tkeystonemiddleware/tests/unit/auth_token/test_connection_pool.pyPK[O2G#3w?zkeystonemiddleware/tests/unit/auth_token/test_memcache_crypt.pyPK[O2Gj`BCFkeystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.pyPK[O2G1)$8keystonemiddleware/tests/unit/auth_token/test_request.pyPK[O2G]<keystonemiddleware/tests/unit/auth_token/test_revocations.pyPK[O2G):Akeystonemiddleware/tests/unit/auth_token/test_user_auth_plugin.pyPK[O2G(Ckeystonemiddleware/openstack/__init__.pyPK[O2G/keystonemiddleware/openstack/common/__init__.pyPK[O2G% 2keystonemiddleware/openstack/common/memorycache.pyPK[O2G+k H0keystonemiddleware/auth_token/_memcache_crypt.pyPK[O2Gs }I&keystonemiddleware/auth_token/_base.pyPK[O2GVlU v)keystonemiddleware/auth_token/_request.pyPK[O2G/.)keystonemiddleware/auth_token/__init__.pyPK[O2GA -@!keystonemiddleware/auth_token/_signing_dir.pyPK[O2GFN,L&keystonemiddleware/auth_token/_exceptions.pyPK[O2GsIi [/.(keystonemiddleware/auth_token/_memcache_pool.pyPK[O2G{ >-1keystonemiddleware/auth_token/_revocations.pyPK[O2G} !*:7keystonemiddleware/auth_token/_identity.pyPK[O2G|"-@keystonemiddleware/auth_token/_user_plugin.pyPK[O2Gi02'Gkeystonemiddleware/auth_token/_cache.pyPK[O2G'ޟ !&EVkeystonemiddleware/auth_token/_auth.pyPK[O2Gr!=`p#(akeystonemiddleware/echo/__main__.pyPK[O2G#akeystonemiddleware/echo/__init__.pyPK[O2G+a" bkeystonemiddleware/echo/service.pyPK}O2G52ekeystonemiddleware-2.3.0.dist-info/DESCRIPTION.rstPK|O2GlFa3gkeystonemiddleware-2.3.0.dist-info/entry_points.txtPK}O2G Z30mhkeystonemiddleware-2.3.0.dist-info/metadata.jsonPK|O2Gu[/.+kkeystonemiddleware-2.3.0.dist-info/pbr.jsonPK|O2G1i0Flkeystonemiddleware-2.3.0.dist-info/top_level.txtPK}O2G3o_n(lkeystonemiddleware-2.3.0.dist-info/WHEELPK}O2G.D+Nmkeystonemiddleware-2.3.0.dist-info/METADATAPK}O2Gn*\)pkeystonemiddleware-2.3.0.dist-info/RECORDPK22Wy