PKANNzneedlestack/__init__.py%ʽ @ݧحdk) ;e1RQ~@X^|r/huU!BH)gU#X9Ïh Tj''!MgDxCoKlҨW>?nrP.5Mz)NPKANneedlestack/apis/__init__.pyPKANbXneedlestack/apis/clients.pyTn0A #QҨ (jm*UUy8ql0aN®,KZ^+\$(AyD( WUD-8EL>qIsT+(X , 3+Pq.Jl7< ۭ& 6S_A?^{("@ݴr ln& F & bjEm^TՏ=-8r}i9+^9[uA ,ҝ.4u"q󥙏YOo:˻{ݻdFv%MB`Z}m;U8(A@Acu 5Cz5K>\[mpnLna[5E+v7;htq׈fF∨tT/F\g#"ӡ]bPKAN*\C#needlestack/apis/collections_pb2.py\msHu^W+>fRgfՙKUNsnhQ mB-8g@B2N2g^B'vށy6nX`o_;wP!p\۷7 v ]Ĵs Ζ`2]X={n5 MϟU~F&myW;v}=yE+t=DZTKuSi ׇ]ZL7,hT`B *zp|$D]r.ܲ2{i誯jG%!|ȃ.8au*kT*K50LKcU_GTn$L145GkcS8BE}/%&ErǓh~{ͱG1^RwpX;*&"v8B~X#Wޓ嫇aw-iԶ`bцVUAVӮNU!i:t;9qzxq.dW: $aV>GC;m)BU1#{肳z["kٶژMlWزͳe&(;[ՃV(L03" +sh9yd}Quu"ft_Z`ƣR/rcU7(TpM9fBVBÿZQ7J ҩ ;Z63ݺb{ɱ))׌*))+-j"jjSP9Y-j8eJ5`aj.0%,WZ0":E X?mh7([U"-Kej1WT"~A 7i `{6[N?6|2}̣QVEYm,3V~9*HQMhq(x,7IJLNT%$oЛ:Ta@!{l: R?vG݌0& :l5Р1 'h>F+C9tJ'Tշϡ>rЂNhAkF=aW GOo$׻?JG1tJ#Ĥ9|0< 2MͦMDlb8AEqBd!5#ZG%̵M ( DNWClG Uh~TM6Auzn"ue=x^U ,KA䫡4:g!l͑s`ffCɱb]4>mAxȭ/Gyڪ:=Orv*r|(ʼnC@[ xA >MEh6x (SDvٱMDd%b"HaF@g A3GоXT/HPnX*Q/|NNQ ͽ$2j]ѳ_Gnv3.S͹"zxKӑ2D_[Zo{uN?]n H*|YBb%^s^6$ҭR[kPkՒv8߳_72w;ꝲn0]LŴ8ٛ+}Qo7 &$wTHbͥ8l*"Ñzkڪ_ohgDrcGJKP! ׸ Xz.? .r݁虽-?3!s"ߩ>LpCBBO,P .9؛`~xqÜk*SαMc(Nh-ZD'BYߵ %c{cI-DKl3p-KH±B ޤK.">od.?sceq'2=iGDG"8,*-Q'($Nx(!YQ"_Ѕۢ vl b}BBN`oQg!O@('rv],&U\LԆ%2.<~ $Fl4PFEkZ8oeg{* %xr~;1Uϣ:m.ӇuCEA vKF}QpTsQI )J~gCV4A3g,8ٙ)ɹ"U2slrF f'5~HST`(^e-hY䌖B 0/`*ŪLqJSFeE^"SRlve9N,DY!#|9p"(PeybB,54jBT&e^THA%,6i4c4 ڤ]e,VDDhIP$iB;i=`L3bZoNnKF;.=!N4rȪ;+#W_-s4ŢPig#{xvr73>G-0d"!Wz"s{z6 leT/ Mry d*:1Xj8<=uRҗ6&5[1w[ jӯD,.\ [TFO:Ec1}9Oi eL( ,( p8@ĔvH !lEwI:@turD!~Ӻ\]`[?Wݼ`^[o&Zơ!BRm lRö) _lDm.FVCa\$줫yA_4e ÕOBK:1p)aՆPWD[c`#¤Z} ۘ*22 "JbԊB/`]j­,Ff޸ K ZΧ׷)-a\BZ/aWA(bTuЋ` cbDw[SC)"}/ZaSs2٦ewEUJ6%&ϥmo{s`GWwW>n{nh3?'%f#Bc43tI2ԖH&&7L@؃aor6~|L'{{}D.6~M`FƳyMWW+K`-=M 򛞗VtFUA&#Lo:rʾ&~5L4'KTy}Jt/hKdU˜{DEy|(FQl $[>X +YMAܛ̆DрTeKj-p57b71Vz'\6%i8lӞ+AKKA8bH{S-(kq^[ 9!?O>N#6aHZN>#؃ǀГm˨c(󩄱5=ԼNRgim׽ت>)QNQ( f=E"ncEgrXZEPpb 'ŵ(?h W@GcJeIH50~I1w <>^ʀlI/ YfQJɫn-C^r'B!l W۟D)ӿ(uҹK] VthM(Pm=Ks^[;ʧzPKAN ~A#needlestack/apis/health_pb2_grpc.pyTAn0 G9#vτLe6TѴ߻$uҢ@r%PapGn3̓;jN ݀m'45}--ow/wl;mԦIr0X5h])YI e㎼ۿҞx2<.Iє0u>/(\>M&7)hoN8K34,@ =*<RIyf9TW*M V֙^8mX&oLm2)܄CY:<=3 ]Wy?ҫxN_{҇ӁdhG3]`ۑbHUvyjY{ y2t|#Cr ^B+Q2ҢoQSb |( ̢BWaS3jiZwyBWf zUA4RZv˧10IeU?N(bfbP5C'm`QrX4&rc~^)cde+CRNi/ *(:F4-^r!zż#G,;#.< PKAN$,!needlestack/apis/neighbors_pb2.pyZmoHίK?>ԀCjtN,M䤓 -Na@+NoviQ,%6<;;;,B~SOh N"]3AI]$E$\7|2 DxzE!r'A&"g7N3)Ӵ`iu9 _fA9A4o_-#uCp}VSZ'OAdtz=m t!H K$%8ClZ,߭CRzơ8ڀwLEIR'(r-YOӨސ'daE$NRIH8|&3'qMju8w(`M~r~5D2_@LˮP슗N v]e(+-D?wғԺvn.w+/wj]'8F>Yywݻx Fe0w: Du92~4׃Ր3E#.|U$l1F0Nx6_So23)̒ReH})IV/栣1?Q5R/谁_3VO$ٹ W v1i26e3ң%&GBxDJB lQas;,59ga\aT-l01;.@C~[K./$.ٷ$ ]f&Haןng'GSPKe: "1[12Kщ׉ 1hOTjQ5~ s\NmzžAP\$>bKn1$nm6c3G-;/"0z%Dt.+̋km>=*0JmAj rXak } KW޼HoRݗぞxc[H WF(r&R&CM.;Va܆C9t?~;7mƲۼ]3< &*W]nl^(UnWTsE=QOϑ퇄>=7j%9QV/ЯpCV Ԧ +Og쿇i嬶.OgaA~d6k.P7IT&^IstkEnf.P^ QёuibZrtgKH(ؼS@ b*Tz#1]ِBjEă|$? EW v0 aZe=q}8l)? =9XMRa-PKANīQS&needlestack/apis/neighbors_pb2_grpc.py 0 {%Tċq-McFz=?X"cA )1Ozv.Wa5DPKAN(needlestack/apis/serializers.pyXmk8_'ŐB[( =r,8҈:fKF,C[ѨRlSTB䒰M!JEJZT+O ݶ 3rɤ{A`%vSI* /cST9J )ʥ(eR,9eOe%wߞ%w7gE>Obpt}zR>:9|k.r6Er0%&2`n$I^'S6 J:b[nWjOر`O w,E"YR L^8,>̠ _QN >"L24\H4:)LV?e$%(ɟdi~զ1f gmxf,/"̄{mJG T='Cז}LaxAf7ˡ)UERVCsIZVT~~bm h%W B}*#v7jolai?4$!scK:?rmώQpR`潢ЈdIնF!f˟{P[DЊnj:!بju~vdB =:{I\{Bo\1)uYJlUv@UJotJdM⊖anYD%E^S9.fT$Lw  .s&$pJ@R!f8\7`8;@;c ױClJT蓯5L8cy&Qڮy[Ձ@&T .|H[jLѕUuCDB?+ײ\Ȩ SYh‰t2EكJ+- .>5>-L\[jrߝ)nY6<|3oW3 `70mb9]Lx 'wZ t1jGYMŽV +/~A-zwSwGdи'QxaNIx' <BL^UR].gs=pmېH#na1@pl֝{x[LZ.xV/頨55٣٥ph#{{WI= .pbkhv.I=s'{5W7yzw !2z箦m[y:ϸ*0 u1\ {U2fZǮ~cxtfms`^C}\3iٸNPKAN;sIA!needlestack/apis/servicers_pb2.py[moHίe?'ƃ1yCZ.0%aNlkMDnVn_2ٛL"M&ꮪ.7?HNZl]~w4~>"zLx$y+זz|`z|YF~2ƣ_5pw ]IBP_^}Gk@& k~(OAC3hvtW%1o SWg9>j5m=n7־64T& V D$-XʵEAoaahmUc)W5\[3P7&<tz ﻊث@սGCןOxN39!1.I>'TkBa0zGt$t#cB\xsm BQ ҩk}tCWY^`PvP3-BjO˸.cΰȦl f- uFx9#SOpO:`rzD5O/^.Q-x>LgCmЦa >1drvQ,>ҷebrx+yS"]9f*(bO{:kk >0k:E*If>Qi!*xLD HP^}% |Ԉ#+̿7U b b=E08-2Y^U,WOYӛ/ 6)?= Ze:Nᐞ肼A-iSB⋪H C}z 2yo2 / ߯|_u>AdpΜ Okt$?Uye25,/\ʼ{ {ݏ_K4۞%3v35\_gᖁv7G0g6v2[|Z2Ed!UN-5ydnWp+)vjYafW[s&*%-}GeF"X]Amίy,̈́԰Yy )RqJэfLAaB4\5j4ikY"w][ڨ%R0AD9/_iprrbǣY vLB`\BH% ihJ s1SZyntJMp1. g: sLV݈hiGZH߳_K妡4?f#7KoDgvyxS9m`hW+gf$~ „D )thT3ėk.ΰ΃ 0L(^,i}1 %~L2ѹj،Vg 騥AcL{V?Qm}Wn=ugխ}Qɩ;hՔxeusNm=!\SBCʔK%W"b6wE{([16%/;#'+4c[AQ\hO.>'lY Rڤ" 1~s.2d a*zn,sp1qLx9G;<OxJAU-lCP&8*CƩ^eOjh@j_p8=xߺ.8U: W8,UC~wi:,*ɐX~5] jf%SpItrq+CҤ߯;vv> yC͕~qb %<)!}w%wZkbߵ>0c&Q{MnFaց^Q+:WdʪR?vH!Ob36 &Q,uz%};z^PKANi O9needlestack/apis/tensors_pb2.pyXak6_}p2R?vܴޖvtaPbXIX#ߕ,˲nki{ttuuSQ.ЦXNxK$PC3AYN 7%&B[ts;Cwet/J  #b )93EW^h^ c ,iKh= Fuag0x7\ z˜ъUBJ"/Ta< 3ԏGQk^dE(!M8Ĭdk>1Ni/{a^(Dޜ%$E3=0`]C(kc67ۥ;ec(?ohJZ,ovDO|k:~s hϷ[2-x!Շ/hqlߔ8s:+8zT3VPCIGY;k!%};iLm5:ت$R6.v}t$Ijŭe_8f`uZp=wlgD05,x'sNX?٬ٗ5=1jk\AVu!Oaw\>2Ӣ a3{p@p?l(ΧZ'Qz'1v w޿-* {| x/1`馸f fHNqɳo~5`0(';o$+ބ-W@x8P|CC߃k(c肚;wIǰ,(fNģI.eų N{I tu_x.oťҴL:ÛBאer39ru-Ry(]EF\ l6kn$P9OM~r8~Ů7lOଝ͜آu(؅%ǝ663;Mí`oР$ݶle*"(Z$8`'߈~W( >3B)5M"8A8"f@q- J03%tJgK/:](j~OС? nJiijx>gX֞s-uO_V Yϗ_, JơwM~P :ɐ2+:3#e&¡gL5]K,vI|G= ߔ,_fR< ZZ89-()'?s~F> ?3P*9V-ģJYPKANUeIneedlestack/balancers/greedy.pyuAn0E>( ! T(Vc6J?7 4g:!P0D&밼 j4%MwG]BjCDuxvаwuӳr֢AcI 4rA4Zu2-MAu~aPvfǓ[Dʔ'~gOƎy2? MR!p?H90-_?Hd[9O~Ȓ{0"v J~%?*F'#v2h/XrMO]ICN6?^.foECgoB1nhR?tw fE>[%Z,ʺj9lrHDf7>9 R`Z 2 xcK@TC4EPf)TLRSۥμH[LBOSLKhWsEP-bFPYȿnۆ%lo/lVKX2ݳ/Ivpxv|z.yqv* x-; 6!6DGyҽ{v֢r:Rpf|i%qTJ r YSvw &(M FZ}h,7 fo^UA#"v<Ʀhpv/k1WJpS~~q/t,Ng o7Dkq&'{*ZR]CCHq"7VL i)1,-E=Vtm p^{F U'IEI\@!dZUx)mJ\)Z782롎:{pPtQJ\k \sý\2{6#iy C-.|gd ,]h|'G|gN~f.y jPzg,I*z7Z mkoVLxj n]C;P"~qj#OdqǛrr[cm76=[mN{l}yE[2<Z[+?iLW!>s qUvN,Gv[S=}CJ| Ӌ|o+SVlfTU{ۭ̑>Ow*ass0 VwHƯr؍L6ӀTWWczs!NŃvֱi '?ЃGC'*}Wct6m_Zdx#̀hdyqu~q~\" Nx_21𞢡ދPVz胉fY6یв0/v/*PKAN#needlestack/collections/__init__.pyPKANwoY %needlestack/collections/collection.pyV6+>م#$= 4^ Cı.E*$]#ȿwH:"9p(88!;p^#IX?^- >:4㿔Ъ(FS5tJ!rֱdPxjusVK}ng=1/_(V2k}2[oTEV{(Z&ݠcA `Z hZhGsЦC^F{h c(a& nRis:8[pz4J>{I}}`ӆW7 R*Z #Ї0I( >z+beu/Th署drמ~`W3LShw/d7 _+Kř1켅~#VUV}UZ݅vw,?c./Se҅c3/)#̿$vp9kB/[Sg(;4G\6cAxk8 wjGtcLZ(x"~\ e˕;{Њa;b̫4ưK#~E[! A?f`I`)_PKANuS^= needlestack/collections/shard.py0~'"Ѩ1UJZ.[+!M 8kmy:c9=73Ɲ=ģSf wGqpM(izw `ݰIM!b/ѩېCoK[5QYsG|aTIq^m+**! =ݪ5ALDeDGjз2Gxѫ)T<=UJo]{^3 ~uv&@rfYKMusJ >$xJ\Œ?gcsϋl;hT_{9ukc *ˡ`+|TrR:*F1ɸ@,,o+Yҭlpa8|\S=q#bƚbz )ĈMY#Iv~JHxȺ?fTr9c`˶l ePh((QW$w}ؑB}gޛ7 3^r}%BWr7iG[6+t񇖍`sf]7TUsn%>orV@W]CH] "*P{ѮR#G`tJD f=0NZ:=.Inƛ&n$Gx}4d>A: 9o'H#,gnmTٽ;L>eR'1) )/W vYMJfbiZTWxVoٹ 7+5ylT`w:õ $+S~ئ3)ٯ*̤y9 Y%Mj% L/ľqD޼R/čf+2 Q;i3D쓨L5[ ^&+zڡcZÖ %2`էIqz.\| q, PӼV&|h>)sctZ(Z{],iGy-GQJJoَ:KPKANy'!needlestack/data_sources/local.py}j0 ~ SPt0vmXnM;J⸮%'iA2#LsD) F>%}վ6I)52~Dz[n`}M$ 2 l/+hπo"P̠RD{U]E Yd`(ԧk9xm$6/] JP5B&aI@Zbw$鷖۲u&  L}JȞ.}u~PKAN{|5 !needlestack/neighbors/__init__.pyWMo8W>IW=袻H hb[GkTIw>I73o=sN&6-kand,Q;0n견 @`v%0ȇft߳,Zn-q'y{ʖj)XC';-aD;θC#ml^o= D?rhv:߫4rO~-O![^9m,`N qs F|Etx3Ole6<7}"іD\dQL|QCA^FV͢,[\ZG iLr9zKC.@pˋe l](OZH4o{xc6bwJïua,\oT*Q0*RHEak; ZdjǢ~ y`^ZA| B(9"ΓX-RoIkRekPI0׾ս%}C&V4 e$Ҟ?u/OL [ `n0[KR}4At9#,jl!4Oû0B{ŮRL^i"pnx|3p8!mjrEؾ}wL:أK$j7~0@9:x'j"7J;̞:#9qWtOyڶGuO:@Dy鿧*Ӣz8f*L qe?$E{2Ao-soxħ9C`S"p?\WckYjG;x6x`fn iG= bІSv 8ab?*$={>ȣzW4PKAN~ &needlestack/neighbors/faiss_indices.pyV[o6~ׯ8K {1`@GgH*7"v}BSڂŶEYU ydk 6Q̈́1Ç̀`/yƲd0'STfʙeQhRt7(w I_,7u<,VkEiI$`;GV]olyM6jF9f9v#AUqz4Khx~ |U(@O lC.Iy^A#Qbwʻ &)ҧ"K5b;`H]UڞB4 j CK{->nɯث^K,kѬS]0c"Vy'koTN}DD[8SbHCzYy@ɪ$AM's<"no(/.' MEHU>|J{ u)M1j'lIE#yL0)"Wmӏ9E}B|[해!cN:閇<:<$DXAB1bߥgz)y5vVsYFpb~ѧ!TO6J &BwSXGI]E=H.g&u!Uڀ7:Y-a'ls]ƽR{. Z;N6rM=$[N$Ӫ[GpU-GΠgvgɵȗ\kx;icuW2"TD3yz%x4]ɴf/zai)_nʼn p|@uyfUU4hǏZS[+zIeᙽ{9r24a -cE3vMv7--߸HBi #sT L#[!zy1hDLMPKAN!needlestack/servicers/__init__.pyPKANjO##needlestack/servicers/decorators.pyRMO!+HOKRhL7O u#Xm~Ճsͼ7C zױ~z{YK~!dVX (hW<|}!2VAv";Wm`,bRm#c-\&^`R]T]DA]V>IKڣ7wc .v %/Yb|އkI%:;@no,g9q9.yJy .]FF{ r<ߡI6v%auꪌeuAΗsBgV<}Ksgb (Bk m8aNn oWйBE.f?E.."x?wTZaօ)7f[{eX !39ѺU^|P,0]-}5r6֊8ciBt?JQ=AN;S[CƔky:W3BIrߣe[ɹgѷpu"g?U#&5b\UY[!+eҺ>Q紶OPKAN[needlestack/servicers/health.pyj0 ~ S% =R]HaW:rcؙ,=\;aYt_/I"vznյn'#ہ{9N^hRB5Sʟ>B*dr(%.>{wi^IGf23e FЎ@"|ǚ1}-rNtAJc KYztzfVW Yм= |P2~$vD=!LSfnA%PKANwoT needlestack/servicers/logging.pyU]o0}T$v]&'d!VGtۿ'&i:i>s/N|M29j RX I;I `m}PEk|Ћqí ,d@~777kHq l( &H{|hQ)t$6->b O\Htf:4(P?'H1H`YO>XrUO+tkMQPJ5"<呑Üg&[MHU5 _(CSؤ좐gZ*_LijR40grc!VǰU";,]C̭u'XHxn5MnZU0f(ݔY!ߛ8WҔp vJu5:M@/A XlX4;](5[!C*a@%oK4uh1Z>m@}r4cϢ%X`K+OŁS$R\yg>y!A_ƮZ(OH[38Pe^)=m$aܟHlM⺉Ҽckd-C|mRPKANf-U<needlestack/servicers/merger.pyXKo6W>I*=բE-f"E!&V&$$wH)q^z9oyP4=5\(RÁÂWQb/HqCJǶ!!״T rM* A N)0%/RQd~|]Xx%D~W2N[OSn V<+.Ozi%nˎKh4Wa_\r-=xXu!%w;gє4W ri%hX5/Ԉ=9u?i={; J]t=k)L?ppUv l0n:)3j.+}vt^9c՛jwA2 (]P0G )EⵯD-S Tf((zeߡ`%^GtAv1ؘӑ?Aڝ%;wjR&sfgr;a) X41<;CX] kvAc̼AU#S)5{Ngx⴫ "+1AcZvWCJmĭ1L&HPݐ _3ٔ۴M 3^a )3&G?$Y6λs73$!$~~|ݫB O?ַZ2Z?5IW kMxypJPxv}?:Vi;vq'Y=q"dxXM .cu@n$v7b?]8~ِ9=Ƒpqތ:v5 +߭pu i]Z/Fs~ËʍqCKZ8Ĝt`^p(4]w~lcߏһ|/.$ys7X_޻_vJ"W`Wj܂.8[z-468Rx6=1u8 ,"cJM:rv쥲fua`?DtGVBL|>A'[@40~ c\z0L聜K^ٵ$ppTƯ1I0ԟD-<ʸ2fX<g$qQw4Duhd7xڮ=}x"ع΀\Ch07\+b aK|OV?/.7_V6sv%<)Q/|+uF}VZtp\n[ mvNdFk86GP6(Ɵ&iqߞ>+L%XIߡs1, k?6{ %8`3oz20/PKAN8@!needlestack/servicers/settings.pySn0}W\eP)iE ЮCUC&qdH]І IӪ!=|% B90?`)ɀ?Id )b z>$_7l ģ뺤 V#Eք&aMb̄LS[ Qp y(k~tW&N Еed-cƥmLlcWߍ*P?0yaHSVS NxWM 3Ì(KzǞ[7Mc1~V Ao,wpJr\DsԻ ݹ I\_-f;FQR}Wnԙ;ᢐ\n k{y(ZB(_LH%)䒩KGbVݚUWZY3_쀕)2s6$} uSOsx{h;%v*ŌT/-z,hC ]& ŝJt? q%f0!t.X]HB]Be$b?>O4-Xvh' ~qVU_E?Mg{%={)PKANtests/__init__.pyPKANx j tests/conftest.pyVMk0Wdm/.CDr][i>i!Fofޛ捒ڂpcjo6jB%Iecvȵk\ ժ8lV hy% P4'5ôo帧y&~1w;"!({9G ]eη]kljPV΋+ m(Mܥ`DP! ITw aN7 zzD$W>v}҉:r3gthyۊm"P<&]}d_Jg~z?N3qn}U>By;?.ypI`%1vLZ{YQSOۚػ=JCS3RPI Gb)+_=knw< Yg ESh_񀋋!aށ`q066jv^".[rt) 7NCٺltHCu`K#Ȫx9P<\~Ţ|}>Wgr[Y^S}PKANOtests/data_sources/__init__.pyeN0 "V60l:vwK'~=qreRm5;ا4]&0OnQ̿ѓh4,GpkFӐf7?= q" PKAND.ͬo tests/data_sources/test_local.pyuQn "'K.`/NϾB2Fo!&$06H0h*K1нG\%؀#PzR; |F3D֓_8_J%4Kv|60B{kܙl|@'Vs eb*hEkXgr%T^ ;]Kޱ%U&}3[Hr1J)a63qFR{w (̓l)ʈzȘYW̮PKANVFtests/neighbors/__init__.pyen0 Dw}IZ4d,1C.E7DmQ 4ZN$(>OEBdչAeLEbߠLy>ZWN!': R,]Š&TkxsLQרl ~s=[GE62qh4kyogwk_wx`hFKͻGNs,K PKANv] %tests/neighbors/test_faiss_indices.pyVn0 +l@0;@]za; C i$')Y$ˍۭ ![GRi˓c~W03Xa MJap^*mh 8Dtń1THGzϳbƀTa+I&`,2e.y0B[nt+B_;7y4sZ4Jfd_,s5;,{gd0xV/Lڃ>SokL3@# Y=<0:gD!]6JrٻI \&o-HI 0]G!Xc fcdn֬xӎ?;! V[AJL[u콹v(0㱀 %FyFDbC#x> ~M[4|yKPX)r'ɖ[S. β`Qm]?<V4EKM__F_uy)3:ςP 1QJp:>Od+ZɭBn,w^Bwާ}%-M B&=Ju -Qw{I0>7&\"7#\9\g2:EQ\mG>"ÞD -Ei x쐁_<ۣM('IIԯ#Oۖ o~ DoHpwYf&KTIH 9S T{\3KǗz'spxY[4S"Tsᆡۂc= %8 +B@߀\j}E޷4?b1ϔsv3J\2`r "KY3]a;6u<j~(예({VH0N&`]e7nNVF򪕍`o~6;X֍A:'-Oh/O w m锯H"e g7UoGWZ7{!H12- &E*X[[K24#' {7ڨ-XP>q#T|&ηINs hbH )4>SBr̗:`BH[_i'V ŝ'Csںl(83,\6(MӶKHVV BU\z"ކ:{!/#DEj8"VN}cwN*>w?P {n=yp4QؿPbA;]=B\ iXt2٪9k;m7LQ`X.+͟Gg9TgAU-T<&3pINKh%Voճ q {c=rgٕAL9,+ZO >)Y"(Ifb<2A5sgJ2%S/I 6}ԔAddITgu!Iy=@ ]'MTũezٔgTe Y V/s0#Pwa_fM[8"5P":LflȪ[w̤ս& Gg~ UjlmDL;1 `D*虘80O[5Q*Ұ +s UƑF:ag|흹2b1]hSY<<ъӹJ$ΦyI۪IgD1&cةu|G͎ ^5@7;aRcK 88l]%;rmӚyEjf"Vׯ̀ ՗ vKR͍P_ad.1)X1D[(>C#S 7Ī|t{?3]B΁)wv#jL_5lqn N}:CC6ժ_Go; tr)~4jVQ+bӁړlȦ7_ ΔJ;jҶ]1 7yc`HKa>]Rušq?ˉs/q?[r=?.u0O7ŧbu^ZX~]h~K'ф+U6&MDsRpM."{ `z\[|?_߽ \B~u^N~Y_so@6t@73N퐺OB˝1<I䲝fjExPGʮT|ǠwՒ4c6Awa6Boy̗ZcsmhJЮ `ՙѹ-!Q ъ)Gkm&CW*QӹF:-l>ƌ6F]8WWXWϽG/noߢ iZz/o>%\P(ӄ@ d6|S"uVMHv R*?9G _!U}חusqqe s)[6HAVYw<ԳqxAO9i@qz +]D3PFWV4hp 5b kӿjBx-]x& 9-wxc.߼{nGU!M_@|L{.V~XH|I@'z|٘ B!^0L}~ *ӒO1 h3AS|$ہfJMT!M$"mG/ Pl$swzPKANY$ $needlestack-0.0.7.dist-info/METADATAVrF+f*ZaiIT((;p4 2 %fR(Dwz^"HզtGSpJ-sQ"d/\JiB4VY.hɹU W\+z)sNUq'JWv&Ji+%jFkJhzltJǮ-Fs#dao<^פyFv{^)]th0SUjaJ7)}~^1ka\H^r[K3+3zӕxRwDWHns=;ݨ9tZ-n󙩅 | 5ZUC}i[(JR,W+ԷwħvŌOPߔJRddc5ݪLؑU[x(Jx܊T`8Xs) O)-4qPxIǠ~7.Eቦ;C>JіMJr]DQh;։YOj.>{ EM. He)+'u 8A+9)9X!;e (E^QSWFel͢*7kVy*st\o1 /-.>$s;ZG,QDoaAׯ84$޼(3L_")]PoxL<&ӔWYV)NCiUBo-Vv5S HAC&xQ`يOX,n+-կO[ 7r,(wZ.I*q*^-ڂ$=gTDU9bQ[u{2?1Bz|> B[1 Uׄi =ٝ#P -|}jãWd\)ϰ)옽YXKeSmBa *AЧUٹ=oEHxt1(XgΌYEQ 02q[O't4Wi(0+Ae&a10)Un=]c2*C Cܮq xIeĕ8#1Ƞdx_wS8?->^'d#M2FWAH؞&m]PM?P`c NM}s#2?KaolZI9 ,y%X#iUlbHsbs(nr9M*(aQU5hRJZ΍3㲨lFB2#!aBa;*{~~B a;O"qp(|T%6?fz꬛X;r@SW^>xYAN'2X4?]Y)lh~ɾ[?W燯2z.xTqs) ƚ#wM+ ڬCnx*:Ny`q[ 2$bE nWIU+W_I^%j+tTB# 3!| OȑvJzX e`9Ct&?7Vjz^I31><'`MJzZ^H~8&.]"ex(꒒)KgсoF, : [\'&f;C~2&@zħ7r!?Ueč$ aʤM/0^dV` o"@o=a!,Kr9`0[Q~Ջ'ܺn,o[Q1V)uonɫ)szB`;AFZr29 "xOc}N Me=~uYr* KHq{pGvNFCX$h0ZLw~i 2Qa:(J r&aGrv8ԒcBj{G0Or9V;fHd{3%e93lX Hwen7(P P\On;}q/RNy|/JֈP+SmϞ 8*!wIդnR7&{Qj2Der{u턆:|ܛ4Zeii\g=]*F}@v{΁Z.nhneedlestack/balancers/greedy.pyPKAN9*<(?needlestack/cluster_managers/__init__.pyPKANruT()Aneedlestack/cluster_managers/zookeeper.pyPKAN#Jneedlestack/collections/__init__.pyPKANwoY %!Kneedlestack/collections/collection.pyPKANuS^= Nneedlestack/collections/shard.pyPKANXBr$Pneedlestack/data_sources/__init__.pyPKANy'!Sneedlestack/data_sources/local.pyPKAN{|5 !Tneedlestack/neighbors/__init__.pyPKAN~ &2Yneedlestack/neighbors/faiss_indices.pyPKAN!R]needlestack/servicers/__init__.pyPKANjO##]needlestack/servicers/decorators.pyPKAN] ^needlestack/servicers/factory.pyPKAN[bneedlestack/servicers/health.pyPKANwoT Ocneedlestack/servicers/logging.pyPKANf-U<eneedlestack/servicers/merger.pyPKAN~(jZkneedlestack/servicers/protos.pyPKAN qfc !lneedlestack/servicers/searcher.pyPKAN8@!dpneedlestack/servicers/settings.pyPKANrtests/__init__.pyPKANx j  stests/conftest.pyPKAN#!OFvtests/balancers/__init__.pyPKANvwtests/balancers/test_greedy.pyPKANOxtests/data_sources/__init__.pyPKAND.ͬo ytests/data_sources/test_local.pyPKANVF{tests/neighbors/__init__.pyPKANv] %|tests/neighbors/test_faiss_indices.pyPKAN<'jK,#~needlestack-0.0.7.dist-info/LICENSEPKANY$ $needlestack-0.0.7.dist-info/METADATAPKAN&\\!needlestack-0.0.7.dist-info/WHEELPKANQ@)needlestack-0.0.7.dist-info/top_level.txtPKANkt"needlestack-0.0.7.dist-info/RECORDPK11