PKhzN:! tensorflow_federated/__init__.pyuMo@ܚ-jdW4Z#vw gi.hv}y U_J̦Q=l@#wVF,Nr_5e%%:^NWvT@*E %5v@rꆄzrɄ1qPG'X-X9*u <>sf>#mLlNJKVm^0x^6h-ۑZ@82f#zPDesNyސ#Y dct>p0N!ICI:g$!mSa&Yrx{şgmJZ8uqfN{׆S{ʀ/Y=jl-E˛?]1p8M,Ѡt02Pݘ S7pPuT鷩ҕ"XL@ U_/PG>yhPKhzN&tensorflow_federated/proto/__init__.pyPKhzN)tensorflow_federated/proto/v0/__init__.pyPKhzN60tensorflow_federated/proto/v0/computation_pb2.py]{S#9>E]́cY7fvkLn`\E.ӎ1\OҫJRa#KIJT{S40|eH>L&Q,z_\߼j$d=Dcm^ۇIL*E+/_Q|vצ,CNJh>Zݝe3MVӾe`6J7vN#I{澇,3k7J@<*86g>f8(|Scn  jcC9e;,F3~@3YF#!1Cr4m4@"@\& D)0qsV `&T(ί*ޯҖê9ˇ3.U!NrhWBJ'FĔI,.x.p#bv#h*'hhiȂ}OQi Q4#0sFM9u{"z~d\%QȜ=:8ZVmSgI%DqbͺM=OO6t)6UA8 )??vC{YT,`^LuéA\ XOH4")9/x9Ɯ97c59ԧG43G$ɶAԿgĩ0bՆ:(7xo™ճkA3j>Р KƱ7_Vc5hu4]sk t+@C:s<[lD3ڢvN2 N-CuXl 'B Iz/^X@,Ӑ *#65ѣ2 0M2qiދ:93̿e$W}5M;ѪW4Aˁ?})D2bgQ*B=G9>Lr|kǤpCb ;?: ghd=S܏@,x*~@Z"XR Y*{3 @K (lAߐo+* zSv:uxwFoIȷJ wJaoKK SwyR GSoLg* A )3A%!ðw%ػ%Tz(XoPϓٔ2Nho gwhɗ_q1*4W,g{g%T8߱D츄2$><2I?IdnS<9PVI'GVKrmfzɧeҲ/nhGR曞=*@@^r:IUZ')>T&6LdǤ>T58EaO*؅p4D4&+xA8zyD]#ꍃH}8+ٖ ]ۉJ ʮ)xaaV)Z%tB5X|qJUFotu9d`}#2lJuQ;{७Rrf-䠦4m~?>AaUDClmDCF"ki%qyO"e#E~p{NmwYoUQ^~.WFW9tE'ΏEg'Q҅JPr`t680S:FP>VnQ4ų/N/>Y 9SmU?rSX9ۦ,Vdzs_|La>j !!9~^`Hۻ1 ZnL{3|EtkItIUǟ?[Cܘ`g |͝0W6^>" mQQSw2tAC}_=?mް@+$ǭ?%<icP֜Q6uR|63|[]w}JP.?w̃.Cu \찵)ÆM!swֻ s^e|$-ez]k[tR f6pY-y=s$xvMKIѡ-<߹h9Y7ۡLF9lh-rJ6_UlGݿ~X1V-=oCwXeكD6Z<Ķ/1Yát!P~%ѵ (Q[mۿ_Ir' !Ns0 NVmf0JePr3@ǨwZ1Oefo"N.?_}ÀH_톷U@ۅ':ro6ɔmUy},*5tB3=O%h[Eo1[RW>Lܫphhi/8/'MGYG۩,P" lC9ppڤu8tn28j[Ov V`+6AL}KUĠs;[l-R%8kP[ =Ȑ*qu败Jp#A~Reؠ ?j *l]_ 3" bvH.I˪ oeH.dP[Q93 ܨdʠ7CV@׿rdxSߔ6!Z?zF#& 5MZYxnB@m}"r"|9w,"U[Y \r8V o3pd"%stY.F6Zx ;ِκHa8@Ƌ$-1 " }B XU1Vo*Td ĄԊwu}9L9*%p9lիjBVUZKPTD|\#r} &#mq)Cy V\sB5>O[k(CqҎWI;:"qQC?y Sw}RtJ -EtLdfxVT$Fdʂla'D ʵXVI!=`/s10 ?zz1z+yClE/_nRf[)ALUqQiY } ʙP+`N^G-\~@EfJO)yJ(3\13¦,% `i:I3% ěoy |ɯO`H6@*V]p=e!6#:9V q{)3)9d&wܦ㷙$}VdК6d%$C2*d2MfՏ`<^GwΦ1Yx/kHO)JP<`Y,aIiw)TnE3oɪq@xml]ׅl`*]o9l}7x8Q 44㸦^XK M:PX|Vyz FUc)Kɍ(1Y?Q~ H2՞?~X%*u&dZ,x K֎zF-hQ74D,72; WMj!st?*ȲY1'47f]֞E9!դU]\TW/PKhzN3tensorflow_federated/python/common_libs/__init__.pyPKhzNmF}5:tensorflow_federated/python/common_libs/anonymous_tuple.pyZnF}WzDN4{h`M[y/u@"):IPU"2DfK%j"`CjHJbqBV0Tn]$(/n^zd/.߿<,Ue) {uq/ -lN䅐7·*'J(uu' *dQW,{=8:G⻳ hr~Ϗ?]_>}::)>~o?^;:xWw+, QHiJy sPSd,!WvS%n[UdGTMJ@%MI%+~*eyvRdrK w&Pė*q2U`I&neZcڐ@k4ZV뺪 5@yQ (CVmB+lIKF2OSůJL ~D[hDHvvP&ymo^֬=* 6ipwQϣQJfh]@wy9ohJlSi5Ap:duO(ah{f߀eMRYtB[VmdEHTmy%X(P%-f$3pCiY% 'de%*aD!%; VT)RUK`EdNhiRK8MyYLӲGl\Ej6u BJ@2ۚGj!J5"ܢmZ%\)T=xq$>f8B[2rOcZe5QIYg: ֶMN2 dX>ЈJ LK!5qk:|<'Dyyÿ Y,$Jʂ}(NODxFO75=pA0^Dw0S(>X%.EC~5KEC:b"6 8:Nh+@VmXSv;ҢL#亜"2jѾo5[^*L4ueNW9%AsY(ILY13$lJIV+ET6u3>eriűjB 9`7eW%)6}?7e.Byٝ/w듓ONޜN;`+owMVed۵AK!>ď9G!@RӶQ-͗Z JR15JCܼH`P1\e%+?ۂ,Tz|/{V[K~_$Pp`RST֛w.a>,8IXͥڐ:0\gTP"7ȑd*#' ZaES?Q|1㜬AmRrLx-L5skK 3YhVE['Z~vX&Jc9dv+ 11.YN qr"o QH,}>M8 R1eSG M7<{GM!޳*)u=-U ō}r I [xxpVV8 d4R((zy݆$+$6zbVo9 :)4Oe%|IVlL`GʕFjYt\sC3nZԩVX|Ej3=PIk-KRy;@8;B!O8 ͰI~p*OE"08u@賺/\D<snr@ Fũ6e<c–VTK"Zb?M6-+:FֲNT(1\i;Na4y\ rxm`jW6e䫼iRJ&}ݡ@\{gHr]-8G5\!uB31UhU(ɵBsԪP,njro 4E =3 &}j?e5 HQ}u-! -u8В~/+@@4{K@lGS+L0[i287W2x%ggN/\Fm:_ٿǕnl,Ug宏/@q`m i ?u HyPs&"-6[jQ_DQE-^,=U{:c 7-ras}T{vxB; r|{?{ŃV鱖p6!IUIOFˍW치x޵ih6`>`'r\,VJeuJG@3fí)UH dJڡsYCr >O>jr {K7*"vBƺ֘*T▱=؊MWpQu)!OT[3dg6 62qVYŁ#|mΚ%Wd]DC+\ێYgY0e~Z}{XX7X[2ZF2vDA5l_Tq+PysM $i - 'q}˘SxևÕԛE߰q^#Y":Tx,&/զў$_y>,~`^<)j:YYEsATL=#J ^ʹlͧE"Pc S5 K}ʰ?%3|bfLO> va&k;xFܘdzt`W;}3yvh׳fz#`CV}D4)O /3&!4o}#Q2.j+wũ 0/{R0|H;5iG\ްƋбgItIMS;a`x'`Jd]3ti~CO[:vRl …,&6/6qmrQ~MKiFE|~W>r 'L;,-F}eW(u 1sB%.噾C Ǥ+"EQS+Idg4hQ|qhA]xwk&DL Rvbn'BVv~\ٱ5M#ލ:t {yx)]Rt.TWRzS/Wh2vd_S}`i 9.A%حc d4Ct ېd>#]>2Zv5;j_PsK<U{w[O L_՗% ">%a`sn%#6ץ0ϜbsKU?ei˜tŵ:(0`~5tzQ3^5E-tt'|z2[8o1p O1HA89vVg"%5[pXG%ץ0TMK!JauJ*}v y-3oG'!_5I]W$hZymkӔbVU 6~l.xhBڴ ? IypOIYf׬z9})-"I?A4m&"6 <ߏ[?>$lDr"~{!?ܫ-d(\m·VCM M<cAS*y6?({n4P{-5x.}#wxڭ a3M?m :H⦁e/z^]6?)Mt"iuAy{}Ja}g7pĤKbp߁w_큌(SF??ȑsr)rez">8 .!q/s|޿k$0~8_m];&h=DAo%#4-I8]>2xd>L\4j<8ἴQƗ:hVuhݫ"xl\{y_D5B2;b*X0uS$]o4SE8g%0s;%_AV`T+Q3 N9P'{v]X+|5h;LyS/$rK]_%P(Ez' 1d i\d8Q3O0pp16)g.-L]'ю!mDenEv5uMo֥F(YAM{64;WMyIp(rφ\j9^_ ߮v?PKhzN,,tensorflow_federated/python/core/__init__.pyAo@ӜT=PVQ#,QNhwK%GIrA;7owKcf9;5=BV+;7`JH/bJ:sh(OwqL56:bAjjD4`[RDcN&O' Sx%j%z+ROӷ.}Gj 7tdJՕO{tߎXf-PVJUfz0 a7#pI7spbg*:*3 })0 BgI6dkx]`&Kv& ~'Pc/4Z 6G gJK7jerm:ĥyʛ wPiXfs<;1Hj؃*i%HV3X-RZ)ݎ*WW>Gvi}uE}@.?PKhzNg3 0tensorflow_federated/python/core/api/__init__.pyQo0'I,t}'F I[)rK؞4e~h$yǗgJo(.?~@FHPZen* hf[+cnm$?4]=+u"lT5ۀT Q!3G@H֕`#­l![hFFa0 stڶmz@rZ vzQ@dւ_0kI4+ւ2JT','`UZf(ΈqGQ҇T/&aqr7I(O _& g^[/@E*S4ǂĕeCu1 fJKkgAHʍz${ߖb$הmC*0W~(%ļ'}›*ied;M|Wuk柨p@/_3dM[;t_*dVvQgS?F5L$̧(PKhzN8Tu79tensorflow_federated/python/core/api/computation_types.py[s@ÖiSJTSGXJ2ECD  pjwP V/Żb)B7_Ez!ŵ̫<ϊ8SY&JNiEY/^@kCP0tLď"GEW)jL6"/+ $JL y?+%\L*K|":U bgMF'0~f8(~J_^qBE9wgWg@bCɪNKXx#4I fEQd^JS .SHTLRiZ2ת-#,JrJ\\ߞ^]\E@㧋|ZtٕIx%|;?^\]y*Q~2E=)*JʆVr +\yq'#V\fMJ.S(jZT|ŋr',*l:ͦH;I,As6+Y@`VK1jUr8ɸ*2ڐ w)׿*\ |Y&yJGE2CoI*fZ`<'Wp<^0KǕ]M^eQWCU2,=>JeY2K Rci"^/ 7ko@]q2R%d7>wPكb+:<>64mVe2B@D$ˬ5EMA 23t@E1֩90d6#AͲWosEFI .uY P+RNʲ(w1)  Dy/BRlQ4OϦ"dtDT0 F@D aK2 a?ךQE( ~nba<#RN85%AE`ӝ,3B:.)S x>[r^kiB2 09JzuYH<<< @ jC)! uG^]$ H@DV:f=/𼚺#)9F)[x?y*6tաC.^c&sj3SD٨JCf֓J2hJO5y~ GL4|k 3&2q݅w ,tF8K.6h6&C70[0Ϩ,aP-;)^;<8p*̌B{lȖ14h sN}'V >dqu<38V25bkO0\ آ#~GlVW Jٍ);(h>ƀc@1ꓣ2og)hs7o0z?p#VIQa0OA}yo14aF32 5OѬi"WQ:=isqɈ\vPm6 !.^[~2K6o\I/@_%%8BفL=ˢ-}ĔFݎq;bBW?xӃ9cj (]i 5)}a+ Xw+f}؈W_w3rqW,n'2Qm>;c ȗm 15dÌϩ~2c_r>Y23"74YܙGwțB:&̯=&Xu롮?YjÀe[cbp +uJ;UbNX]nJ=^I>lݺ9v{_'Ͱ<~J1h=|!PdHk\E D"6t`VŨWi_JQEI{&P9ѫe=eTNW$!=ÕDh *"!<l]вk_lܞak)c.-b!w..D̳bLuh@$z+=XIZOZi%W 5TX*~F*1:1%EFwɫ+{H [X^X2WSi㦺횵؆ZRҴz0V: Q˞fA3[mGUnms?ı?qx:<\ã7_^IzO]^l< RXVY_d +́^! I¸&zawwgtƎVZ~PI|yd͠qR74= ;ߺƻt+wg?<<<>>|ehm9 ͸;i5'c[9g #@^Ft[=>Y ||*zK0}o޳,Qۯ[R8> CmnE7 DVp`0!49Zzڂ'}sI5{ÏHKm?,663onÐp&4|F:@!kt]qyf N2Fl?%T@T;OJO;NŲT4q'ՠTED ) j8SVMOt/2N㠣$LbǮ̄>uϺ^LS ɶ^`5<͊#~xQEo3njQ۸ƀQp0+j5= 2zu~`P~lTRο ]6:p *X.pPKhzNNQB =4tensorflow_federated/python/core/api/computations.pyYn9}WCv,p6z1f,b I2!ٖ{HZLfm bթS?r>^{%]v%T ]ΗggG] > .·?+5uy.t$=:9} kۉ\ c輂E[%SAh#*XZJ& $΂iK `ayqvZJ֖xҟxɴ{ovl-Ur3[ 9w ς%WNm +g]V6'D_>Nr[v%.o~?\|,F=-#5Q[ hl4/U]^fɹsuRMjHiBKF!B~ST> U1qwu"FمL.tNM&t낐3o[k?v֏>| l` ?i27ee*ɗYM4nEѨVc3nO/FB ſYώ =;i[A_/fp4SZ50!!U^8-s ;BP2UnIKmVOnBmi'聼$D*o |"mTZd+b:3RJY93!'$l$IC!0WХL| hPCCڈ\>4'{B|O Sܢ{nRBԞHzq9E 8-%?0QWA EL}ƾomSb8F4a|' Ke!QYrS8Dr'ԺiW +sxnb:9(YdMoRe&$ni["B`l>cפRɀ 8ɨ}H˙e \TNl.\EGbi8$jjK!2$f͈/l",!Rn|ȗ hAPp \cFaEVa(/kO#6<ǽ=^ѣ "DH:wI*H I$}: ńh‚(9#HS;Mjl~N9kޠīzaPy24AJCvD[qMo2[b.3⥚ eSm/Mb9X SoTr *kG&|eGXO8_RAKUv4wيsۚzw!1hbC9}2pk"tCei Sfb/ËPDsM:ܼ)G e>X HŮ~ROm; ISjɊa)0u"Α}3m}9cs>;a(˒U!^˿|y f+DTLG=-` [ ^ ϫ*Vty=B|ʣvd}Dʟ,q1D>ɼ `ԶPm`X.3oLuǁٰsjz/X(1ԸKKMQ$؝$SagޮCEr"m5\=/8G-'?k܌zôJۡ~WDq3ԋ:#Qp]T_?><1o;:ΜG lvR쨨>]pƧyO?.SooڮllͻG czm7 -gJ 5ufNܣrޕp`KÆudϢ3@cgR ,WP*/y"g_ glqa>)0}hSANRg!hLsુh֖-iO/X*w%wgIқg`BK'T}%eCM3%Ť̚kX`v^ŋkӣ;TCۑEIyM!6s[f`;mռ~V]|쎘{8pL| Q&,%xHȜCquժXS=5t('YoX/{QDaDĭ$!^;Z+SZd>KSYG-bT_GʎK;CY:r8C?Nܣq/&t$;ZhP2ImNk}J@b;8wPp#H3>4\ߧ|gngQ?նDnPKhzNpq>2tensorflow_federated/python/core/api/intrinsics.py[YsF~篘r^gűkUUW0$0X }̅N\_,@OO_3LכV|> Uݼ)VQjd2qյݘd3c3iWjY5&ו2B/W/ο ;݉RD["r#Vyy%R]E.Tmnh+Xkm?'dK ӿM֗/_nDn/ ~Ҽ뛻1s_Ѩwy{} YB|5 r(ըۼZυѫv+RܴMص=k9``/YWwn2]/~!]^,_߉ۛoo7B`nPP2G; vTOfL|jɵk #jՔAoP/)E^lѦً/~PRLZ ]m= ^yglR<R\ҮWYRUF%hJ'!U>{Ԧ BV2mufZ<5`l ?=ɢU5z.dveWsQf 5 E_΄^XқKA-*yKܽ2 Ƶ@"|Tv2:E!w D6&oU6 ?{|œx+c 6}T,ǵ L* xe6'@sP]+l(0.f="-2ێ#1%G3]$c``b7%`.%m`RV,a ,(ާC~#ԣ$]CeԒwP[aP ũ$zld"~&UFY ?\+kE=I;]r8NSc^|ހ?UY;t9z a{/Z }M:99S:"HVw v.15ܨF22g \U=)JR)y ,3(dY咛ڭcegK&_ -76PY&9_J$eRJl*.N02W>0J./.Wrlm#A5zYl(@>I@ďPntc2s\=KCp9ZHհ{jl.TNV u+ZAdX*,\aly fpUhZ爵i S"F/3l> 8Ldk f(Ձ Zx.hup2_xTfZu)'3mC}Y6?&2ђGr^Ta\Ln`'ﱧVѶƢ"i/)m)ec~yl̠{jA+߻DI݈u0_(\Q@<qD _5M$D墁O'xm{v z}FExj14zA7EI]PT(oRр{!)Y)=bӣaW<.nL>zISEФ}"dp`h:vB:hPCb*2|Nz~qX#Ŝj(J͍@-ǫ0M-dE,_srĉ`uW.ӷ2*5{v]osV* ٣heU/?ƣK{*8\J\Y{!a8-4ܳ=M$Bb^u#߳#xϲgSw0zjMBc9& $cqXZU7eW*3L ik6@"Sg#gĞPA7*%F[鹻`|x+ {?E(U[3b"3a}XkdtFnoIHbX|>؊=-hx@Wl鶣Z+$;po%q8g ]ugp(( ^b-6Ǧ05*t5!8,DeoNCiCy[|;,ÉYt*omh$7Yz;C gXW@s\aU8 ƋЮVG206ݓ9cK1&f'NacO/7ph:_Ea'LX'cbǪ곇8<0V}Pu&U?Ty{Ǫġ[HWF繈A⋊T w& 0+枉'^;QsrpّhCD!ҟNrv}(0LkQB;ap.9fcŞSoضE|o3ArfXJijc wMItk&Z\>%C ^>z[$0J;ˤk'T|8Ғa S`ۅZjm}1PKhzN*K02tensorflow_federated/python/core/api/placements.py}Sn0+ʥ9ͩhу*4KI@K+EʊKY4/ÙY,=9no|Aq@(P{  !`O d5ׁQjESe4nT?g'ІC#>Wh tVI+AaHLӳY$ oi*8^b#50Î*Qa(Fz{?'LE3eS,C?7s+`<`uR*HNj4@;P6Hw@'qL_.MJc8JQ yTl ~aWړДDl)rF2/ZVxD< b WK-ȸijԹPKhzN8VYT4tensorflow_federated/python/core/api/typed_object.pySn0 +4li vW*6h%MG)ibm"# Xhs\]~2bPrڮ:= kt.. c8:(ԈSf:\%0ߘ&2t_*4RA{I*Q>9 xM3`1اCZe;%m~6T  %?d\҆2[եV&cZ밌t A_:; 5ފ8R!ꋓz6nqRz4>x){rwroH 9hjM֑Z8^Bxtf'oVk7Z[zHz?z)CL>0>?Nv0'4j8Gx 9] Ԣ#"ڄ ¶|͙.t̢Q ]3Hjv(tP!Tz+.aL< a]u, l`J9mOӛ< `IR8[lV4qH<:5W8ʲC\<\sLNm:A0FLGܚr% ["!xo#lIJic;ZrTڅ8v|X` A!J?HGhжe D!'fe(L՜<,Woc ) h1G V="?AJSN>}m|`; #'BLjqy;[SZz;^k75JDyxd](q.mWhߖ0bis\XfCe=e,YQwCMttqY409grn]u6EFUUkXZR%>YgcT%ˉ-0N~UKu'^ΰdBL#bIdutC V;4/.l`+%'0z~a lo[`Xysnʪ4轲qboT~-I-JPKhzNS$y .tensorflow_federated/python/core/api/values.pyVM6W 6uj P[j4 '6TIj}CJ6^CGo v-wLK6޺+v*pE6 }%b5X&*[ ;w[nb+:ZπО6f璛@PiM):6hз®BB|0T]pUd[S8-gSV;>j@TkЬՁ#u`6#o7>8n zzHzɂ }.2`|.^d/hHt9@7s:ˈ Ԣ#W"ڂM|åymL[ jjzЫR*7J*]\\FFI[SK*k彼ŮVו^ݴh@On@6iڴuZI:RkokȶJϯUI MX\']~'U9)l*Q#±aa &JMd;u-,/s* uRFa1?+ffDZ~m=& \G6  N!aI I4½B *YY9}@: K cASR k =~pyRNsYOBqCz[Үe"۽<;T8B>K۩y2q[4L{r d2bm8g(2NB{oe,9m%AуqYHO^6ȏJPV*EB%F2~@Z%{ޒ[ Ξnn=04&h= a1 tC3F9G-(]L/+#v|6cu:[ClQN\:pQƕ"UkANէKηyJE"Ns7ʼn'vIv`?㜦xUYu:TRcA`QdXGt tؗICq198<|_9_k/^GPKhzN1tensorflow_federated/python/core/impl/__init__.pyPKhzN::tensorflow_federated/python/core/impl/compiler_pipeline.pyWMs6WɡNL5Ki&'$A hY} P2Ȏ ۯ1]vmbKIskVxYҤKc]::U@>y(MZQIOi2.3Qut+,MGX6:'aB9T-I>4ik%t!i2 қ0oV H8`YFJuWJLB:OV(X&N:zIC|\)l/M{S{z;)ri.IGj|04B9napOW@vUyӄ.A%٠(+P^D?3;ᮗ*.+/7>L{'CVA.Bǃ^X!zu_jAb|3-]vL?!2ﴖ]-.JU>vKh٭D#킷_Hјݢp%G4e }@%PKhzNt`hqmDtensorflow_federated/python/core/impl/computation_building_blocks.py]F>E ~"?so%$)RKR3V߯$=qC"_UW<ݡ֛F<}Hq%^x)SY%LžٔU=<{(^eKx~\4b,D]VuViXуC Z,B~^]#B,.ϒb)MlEP$E D4nMqYf߽8"u-*}VX쀡e6FH֕gM TY뉨UsTYTbx@^I!\/]_.ۋW/މ7oų7_^]y z).^C!AVЍ`2C9NJU ;VUZuy-#vf5f @%϶Y4KgPكI B!@}->eEZL 5!^$~qsr+վWr>U#E] 94ΐ*+X"'ggR5:8jh`WzĻl r[<I-vcҊmt\eq؂~;&{#$,,4$S= lſ'KQ5n>0׊F+}gg\9 uʨ,dy1 AtOτ7K1(3wH4d/rFH![ȴUMN_TUY/. ,nkŸΓft&ԧI8IV6mVo|㳟$9lҏy4ru2F7 ЅXe) LH,Y@`*+wH)6eB#WlPϊG7OQSDlD-˗D-`M'NIraF]K.Ad(ahԈ,1cfM+d6[oiGo[*bu#|2騥$e;? APsPAs&@X2BPAKS%˦ECuբLceLZʍ=Wo-=yݓ'O0i*r[jEOV g8C(D.C4f*o}?O}wdaI1#?[ŋ~?E ʤp ^{_%Eh!R]ЁwhM^̴qh㉷غ A+жzsU5\#l:瘈?H`J1Fa2rhq^ITC7+w($7b~pbeXb3Wh!XwKt̲*TDF2Q i:{P1Z LeLxgH x]ezfՖs(-GSO5 dT%+v.F+zHGL܏c-΀TgF=gPԷ#o 밵 6xPoXˇxͶ'^$hP3#?/&ľ܎r4a%;."dПY' )ȱs/tj_npqǂKYv'Ew2 j.<@(Rl4%,)"1ԸoWg̪TzBÉQ2WKHl[pU Ll6眅Zc֏hFOtF̎Do4FOEyS8DW3z`ڰ#I{ϟ.9=*ijOZqÈ{ \x"\jrTg45Pv_c7g`錴-p 3RC' 3#?g׻5` t!^Ba qIw?wdFr`[v,r "VI)pki{&TLiBPsXhr 4!ӬtN[89GqED?ZqWz0m(kNoQҬZXz~m9,5, CrSţYrZ2nfj"Zy`Jz@:5-B=eR\qm[iPZe2PLRhWYhg(v0%KV( p"4kb ės#bN"[Z*rc-QVT-ΤKr:yl;WsZĭ2cW):uCqIlkKcpu(>1jfEc'By6&SO鬎0ǎb[:SM>|쑤WWul@~s]<WffN+N[9]qSzڍWc1cvիYCD+œq8&3.XF3 ηЎ߅(C=gZmvg[Ppoַ IX㏄'g^vvܪ X8,QoKyPGf O 7=i*m'|M mOOERSmY }_WmD;@vHd*s_9WC!g%3$_ cw olIJBԖko-Z3`~q+)j 9髩*P#6%Yw1-2e.hߪ,hR{>^<JSN9Y.e]Su%&4 tץhi7 )2~VdQXpIJOPR$ҩA*Vl93ZV[8KYs[[3jD)9ZVUk VUF"")z:V5"_'|*2Mogp6!k+yXtdF<ކg0mu,s'w@lS#1ž#ML1CRdCO<32\$*u,TvCkr`5'dO*P#m\n4HY޸[Kh(qԘlwhb=3Ru(9j)&%ֶ|7 ٹeKƇSKzCK/}&nC9?0r$ІfȿUw(ʣq2e!JiXh~ / 5}>?)_6/_Pi|o"E$fV?33mtZUfkRq:>~շFenI-j'ih30*DvT:} Q7H>EE>u,G FV0jLjf7t+&b>NĀÚ>|n^-PRm  ̍[ =!}Nr](NOtFdruOD0Js>{ӧY~T)kRZ3p:~}M^@GV5R-iEr{-3G-9l?rOc~Yp) OwRT*VLf=~Y(iQ!+;P[y-9slPy8*!_d):}SF(b<́b\ ۝0#rz"8[c mѤYD0iXj㣰A{&A1H g!t9BB3}(~7.-^b2+9c)s)q0i;'sr_m*yh)>>e<.b)H#Jv&\l?jBIӼ|n&:{Fwk6ւmlP`d鈅ڎFn|dA>NtVa|~Qr6DIw` \q4k ڭ-5kw[D>v:7nH0L_7#L<t'9 O{%`حl5 3|vja_˶xlj^4)I+ Z4ĝAHr6a[{rʭ;v :7%DpZ(&=/0_9FKvvN>+?  ˦u |c{tHz5a*o x%¾QUxלק@PЅ |y^%epWьd%9ğ3>S"k}?WW+t]1-tQV#?a~lsWJ,m5:Ĕ<өCaСBDk,NԳu'4b]m [6YMZ9g6g~Cwe|)`A;7EN)_}LtnP';/pYT+cI~5J7L9WBWXFݯ IM~TsrDEٵ B+Yr2LsZX[9P"LfQ^iUB~+s (CgϢ4%yYH¤EF>a&rfnc&}_dxĦ+^[}_vX`;r;x-C&Dzf+ZIl4~0[?""+`2Z%{ jN@eC#rMFΕ_ b?QԗQOzB .քD^Fc` iD-h[KQ4d2&Ykyv%!_@O4 }CDX?c:wQ{U|zE_9 Wcx$x+ce̱ݬtm"/ux'W`J~##jڊ8`%T <+UpkVpv@"ܢQH鐧Ȁm_![| #(aTZ@Ѥ)`Qv![~Љ+ToI@EKO xt5|=W2|rTQ*T]k6% 7cjy)4~h!EB.Ɏ-*UP(n?eyz$Y9{Xtn.e<˲ 2 Q+H힤Ii}2Bn {zYh6Rh;@M+ZKK#cRNNW.K~%i OB2T"yBB|*?w{L'` =aoq$&}8Usܢ}%Ɇ7;.;b2^c~=Rˈ仔o8yԝ{{NnjbRbտ(4'Wӫ37Π@~2[b87 ؊Ji[yV$\TrTV/AF&KjSR/N?/aZK޼u:.wTg]$Cy0~c3K#OLPKhzN&' 9tensorflow_federated/python/core/impl/computation_impl.pyVMo6W (JS"@]'A."v'F2aTI*wHɎ;"9$p|fQ\k 5 Q1G0mZD|tH(GFӚq+^a_&V7P-(HB!$r\WLqVupӃ C1f_ө8vj6amMy%;M{e>{X,.q$Z mf[`5,# 9 F8.\ J.3"k Z;zCS0.a|Ʒϧ+6}~.V%<=iq?_͟tz;5_ǀ+rqm8 P莐Bpz*V"@gPc.HD wbB94㘐}FWEiQq2%+Ex׆ܑTqBTi+6zg(uvBR㨄*"{m)k䛟0Hu+N0'!|60(.M3 ] }j&ŏςt KFP\s&3AxrPMչW),9-w2cPEc.m /L6;A'ҟ=ՙ&=0AIvPw9qN ٤P¥آ,b8ŠUQhR5-4t5t 'QvpsPk YSa0GcRc4z@p;=xeAi?lNDqu?\mՋ!%;/>k#>7*q麪nQʔvKHL oJ؆tz]T̏kiTuU@˖=\@rWUaX6H0d|a}c" & "[/a7-k߯x{%z}:xީugvoޚtڙRnv6==S uHTVm(PSUp+F*`CEHn 6OiG ޹)mv5i_w<_X:[_uY#0T Yj;wkEO]f)nIwu]@Z=XtzK7棺x h|/w?߼}QY~ۻ[u/O~̔YkñC hJGc l[fMQmz3jޛ娣EmZ`*uuvŢ/A u}Q)Z)0$ B7mp%p|9Ͷ]{Pնw}gV+\O97An+meu_!]?vUV|GcݎX6HFʽ?=7dz5<-yuFrɂ#}NGҁK7BjD-XyG麶 C(Ե"",*MY=#)i {oE WjW8q XT17θ\c&ڿdol2<1sp@d=}׽I J~82*=`"D:B|**!p<8`tַO(Y=(_ntXr)0! VWd&"G1r(ak\u2}| <Ѓ g>)/US1r60! Puyi/M/X۴ \OR/l8f0h'1,q [,8yX8ѢsR!ǧ]Gv.bH(9RAr8gSd\P/tOv(qY(!X;Q/}}[8so:jL5s`KLlcoU]Z>$Oj:,zP7ZbEo 4 3+wTt쪃*,mR?ot\`|鰂:tԆ35!*B`ZY)]qr+@ň[gA<V͠he5%)EGw&v ƠuLU3.Q9H WXC Wi#yU%`M<{'Ƃ=nGM 4 .4TcNsՔ6u/"-jZkI 0>%OHMe]WSZC͇[l]!q/j p*jq#RtVM*oƅqd(uXĽ#7*6TB4Xjv7Z4_KŞgjTb"$7REv+EOq>uu\SzvS O3jK]{m*8b{ 9]7Qi~rAPok$^ ×RE'BrSK@B`PTB}G"1OX+$7I%72jd KW$@Y9t,V'}(Eֹ;4y\Eli@LCtO5hiC>spY 1c,@.)}?K\`ZٝrTl{8.I̋#"M- HLQ-(_ w1W'M ,tܠl}0FjFHlW~%xrt&T4 N| ; ؁<ߴ{W#c F˲nP!E ]B.Pcs^[0 ْҸLm]#/w;طeڢ=2K=ֺ0.1G!%tܧVz$ ; rn#SQe$<2 Kp(@C!$R#X08 "ڍ!<CO ?(?l8Ȧ(5b礢fPi&%2 {N˿ ū/&poilAm{H37˹ۊZ8BIVRӅ}eGKf'N'um%,Ւ, Iׂz>\$Axh7uuO[> N&ϸy|BO2+P1X[k`,dH b㎷Hz;UJ+}$Mg,$4oGt5v֩q0,oMMuӦ L9plZXSo/ҭ!-80:|f5*sjOPV˚^3?r'ҠSa$>!݋W}T>Ԑ֓Ο0_V[sΎ%4H ="` 2[iG'⤮bBwơkgCdnz4qlTC)|GFED"g#.ꨡN'P%Saƚ|Ml ,#KOŅsqzTO_Bkre'0\t8e8R??q9Ay 񣩡HT*;~(ExOxpG\8o;=nZ 9Жm=SrA^a:暴5vZTo/(؍?iʮ=r`[}R Qrlq 4Qa29n|{ˎ" yMXG42: b1em8P&/69З#Y(xs9At&G~޴a."v+mxyXbb:O2_cF^R;![s= "Wz;zzS.PKhzN j0 Ftensorflow_federated/python/core/impl/computation_wrapper_instances.pyUQo"7~_1"D7{D5'cvg+vxw!K.ziyH=7 gpiΫrMϿ`FX Os0qEkC%gIeûs N;dxA GGF 6rTB(F 2ٍJ ah]_ӂ0 BIxUt@RM܇vʚmj}ypizy=_ČFcJy~j1L[dF[Hr%WZUt֞?zI:O#Ƹ.~x^.ofWfƫ g_jZ5|$U(@aBa LY ? 匢FzGI׻BDpIUrLXrbn@ʣrfD>:w^]EmT;`Njb&ͬ4*G}6F E Cnxrfw:,}긏^ˇ8T 7y:2IlӁ AW0[>Gʇx<&*D[\qY߼Ba͗d߭uw" Tfd,2ƼV{]sr&Ge(v]ՇbqO z_ρu˚.nv~^ޮor~N ?4VGZxLHg~@nb@T:E^uѪ05ҡmT! (W>|!drqqs] u*=|zR,~Td @InMEMf#I)&?7--?7Xu*AL&z:d2yGlSWibRxw f 2_ՄIܱԂkḟ+'1U};L/w"kc|K7eᠬfZAm'P<1:+zdZ攵VA(Ngh.ڙ,XڀFq Ȃ^󦡒\T . ST xUY*2fhA5 ,:#s0p8T_2_j2\E@UT葖T>5 9m"Zu7TyD@QK;JotάL.ũ:V=s^,*+Uבx{u`6E*4dkAs1uqSPE4W7u M ǂJ>`״Ӈ 6r~]TG :q bQsy.OĞn|+_؛ _QeX@lSe>G#s7b2Lr22e pJ(1-fp0))P J ރj\Fҧ GVFxUGAm4bHhd1e|s I<87Bskp$儢ge_0^:n6f3m˒ޮ xStzT8\r3!i|#la 'h1;إcU.eyP խdo^Bl!^'¥'FЅx8!J‚ M_^Vie/an5̅pe=lMm_Og 2 CkJjQ11IOV:FLUgOOt:r;C a_SNdNf\Q mGR$,HxNXD8J)xxW]?p|xb\zig}7UHACbLVӮ>-d4֝jmۮpoIq8vm4 p* 1V$n663!sPv+Jt`q.Wm/q0PKhzNx*;tensorflow_federated/python/core/impl/context_stack_base.pyUM6+jN2YjBD OhYF(5b{u0/(w3cLl++F)Z$$| 1sm(H~T#,Y,l9DQsEJ>0}D L#d䣳. &x4)Ɗygƺ!Q-cUi"DHFb*;L tŘ 1~Ws7_7@܍L`IUr]}FϕrP=(vn?7QU `< ;bPKhzNqC];tensorflow_federated/python/core/impl/context_stack_impl.pyTMo8W 8JS+lEQ-l4ɒTm}dWYECbg̼ 5sr 3ZmVqkv"pM6lyv][YVVT7ov^M4jr:NtM3 F*&>TlIMY%2l3h¬ũp!؛~67nszO_,8ż׊'_[#aAkTbOƑ8]0 fF4a/>8nój!%4MK*z3_0>?߯iXKz|]*8=|*w3b $e#ױhKg+ yM+6LF:dWEɝ "$YRy6L=UJXܦUR턖UU/wz /9qfGeٴu\1 7 *jMF?NPie`x(>ZֱQQH`:80:bwFw2t(/qE'>;pJS)r-,cK>p,K J_ dz`>}oIL%MFuR:X ؔ!*E<[k1zz@7RPSϪI17k }tO3y N2zOG`w =1?3!ux Ӊh&s;~zyBnwLcnLctDLX>6qT8Qo:-:Fwu7C;ɪN Nc k,: 5R2PKhzNuǡ4tensorflow_federated/python/core/impl/dtype_utils.pyuR0+F+Q[f"]%]ۄ;"eU-<3o< 6JF4'_rVmb; I[( C^R] 5/T| %1x -%FCGAo(Z^v $ӭD;mB'4'w;90|V(Ӭ Ү_MdRqkoaIGR8w E[g6ͤDG&2jud5%%7:4h4kZWK+:ḛ3 0RY.knh0VAQԽ ŤShUK~3X%bY]!ee9I`lI˾5f,ߥE(<,Þ,wlZG} f9eBjt9ԭT볅!VR J41|=PKhzNjyưr Ftensorflow_federated/python/core/impl/federated_computation_context.pyVK6W ڨMr*RE^`$IK˔LD$^# Iɒi`7O|_W`1p/&HRP|@ Wy&r_hXP\Ktj+a(m̺h4QY^q%)3#iQ1hF2wFo~`QkUAm4OSV[UbR$ς_:weF&(l,[9vDڱL=vLldZc@<{ͱ Ep0\53˲!icE3VGf%x>ĥj%8*D@F)ǤM5qn=>Ji;5qBZ//J4ni#e/K=QUK7DKL/^#^+z*mѰ즾tn^aS;ifn% Lw=m NL5ʩ c5P-~7= ooW ΠcV͝$" =AI|?jV0h͸04 Rt)y# UΆ9==;2n"OJj<GpZ)>' -yA?/VGT\&($wH|z'w-դ4AJz(ÉAj̩zc@R\Z{ҟ)GRyAy|6mC*|d]LEմJw'e 6{(|̺+ 4:51\A)_D"94.6S4>2PKhzNP&Dtensorflow_federated/python/core/impl/federated_computation_utils.pyVMo8W ClaҞ^ jl,bEO2-SԒTRR, `[$͛/)vV<|<wB;cµX ˽Xw:%GEfxWKh\ !|I#;>U[߈3%lP:A.ƒԐM$יw i ,=n[[fTœj::AV9RZu^ /[0 oRL DYI\VM?zq &\g1Oovc+ )^/WuF.%Icuc.yˬa.k7FJ.]Ku#{#F-h}ѧ>]r'ҜHU{ WID?5"DKstz[?|#wRعr%S`0Bs,K[)tB'(Q" ;|~t %7k7 r=1%;AaS1yR ڏʬeV{(`xЖVTabBonMXgKJFDXRE59T%АR0_!ݾ %Qgcѻ.9bͯބwptY+ZD:xWS||d{:{UV F(eiK6"Ҩ]4PբitKmn/=v&lӪ^?+__~9`Lc~( 46ֺ+zhzZum໶Bwu:QMjw6%˛]Qˢ_zR=z?Qz>o7_~^^|鍺zw뷯eV0@2G: ޘU5[WU;6j]ݛ娭7yz@)Mꖞ =y6/jՕK੊m[xoIܤlUW5|VES@9>Zu^sٙ[ͪDi4Ł)' Y8'Ѡ 1C.@69N>[j^=Mv6fP**u; "Z#LS.?m$hBy~9 ;gZ`S&P&wRh;Ͼ$J^ ;(vw:\MD5ЗW֧-I(tv98uHA(?^,OX GkqN9 z0Ahvrk` rH;OEdCgo=A4THDM=g]{p!v?f*6Y7*?ӭԐZb8w~/RiDJ'q8ME2m4lSOss18)5C,gA[tݝ.gV|S ~kڳ(2m fT%A$;poqӣ_ [2H7dYk [Z*36a>^o+]ƣ8c8T̩qGb眄3@؀<>qV'4C L…GB_FAœQzըa5IM=X'\h)XEZ8) $ R18~Ѓ>^d3=7vfbWX@6tv>^<} 7AlV30t{`ydsE}'_5H/H5s,4 i^Lâ)Xp XtXZhG'&dFAB33ARQs H4>F@&3,܄R ilj-)l]W@ΨK_q  W uO"N(*y~B@,2?OQ_ 0 .Ir m В~1a XڡSa~Voqvt$?bKqnF 9Ѝ2V| c!/sˊ>˹}Z‹<{Oy';~ #x~XEWnB4l ͎nξi5/jU&hTjr)E:26x$}) Q@n_Wwc`ƏW4y"'j>%ڻ׏a\7cbq̦f>$i3S%})HKK^:G6p~r/AڧS~-. :ԒG0_ DBe|!H7BW{+p풜K?i}OVo(/Ǔ%TdQة&!w&XmteMЁG]+JѳLJZy1*7Eָ0XU\hm~ص:ـE"nS"İa2c<GqA~rBαxmaeOS}M*_I[SϋiL}oԖ&s 'oĆx 样EbsHX WvHzy,ɍ2SQ~ƩqWbF2۔2dV?4; :yE o({a3u[I%r/۞Ӂ}DE!/үU vў?-eu!Ç"'0{ ҏ3<葴[p8pDJ3sd585H |{<,JV>jGD㡆GT_t{fV]+>{uf!)QVh(`A/Wv,_T]qCYYO5˝k4;ԾnY}iz./ՋYo9ABG9DAa#V`$1 H}h8ǾN?<6A(T[¤ή7۶.xD9y=kOc un8={:1šW0H7Aɥof=Udb(dv\[ƄTf'{(g{0Oc=]s4u59hfD|n{P_¹}?2Ќ{>w6 &'se2n0pCMh )v^'yD;x}ҕ{Cǣx 7 L][iźсXD_Yj*Y.on_s:' b%mok +7 wQH(P2r W7ϝ'OǠI^t"NףfCc״%kLٍzx,z;3Fx7xԶu; ;# ^ *wU9I3Ԣ58Es 7%۟8m[hD{>einϕFp$Q0*.vO{(ԃj6 bt7بD.T*s֫νR 8 O\ :aƱtSj2ciݻK9y~^B,N[ԙ2bl<'p8[);\fIzI ,Cc9qɑL>E~ Ҳn7@'F[K6 8 GL5_84 gݾQ7al x@-NLȆc:BS5o@cBuE`\>@.# O85]Nqg?E'zK`ɒc2F_ kb`/~r63kZnbomKmy_DP{x>SivCenI'a5io*TS8ز0*wrqP0kDpBnG`Jv#-\@б\`%_@C޻^}c_^ث00֤(۸)y K M'΁!F =X]=%(|YUx7h ݴ盼 긿$«pQx.+Zٞ;XЊcD#=Pmf!0.p("B@Tcr9*[ްyu# qVUx iȼC%Ҙ8Ҟ9+-:hsǙDiI&w8Tp >g:i:'*#0aIg*#pc7s\6"kf$,[f?ZZ,8^|z S+㾰w}i{],JH CU96Nvs-8Ѕ6xBf|+lI BV]ɋ ٝST#{d}`]?Ip-tq=[;.#1 ,dÞl)s>UGfЫ9r9FfQ^tȄ#_%ݣ d -+@>R }a,oȀPvʗr %rڿ;}+`2.b/ S,We΂[*vy^|>mLN[tt)=~i?؛|mշ x1^j"B6G7vmL|Թx?تN:kSv` -݃(nH?2bHRcxNS,'ݎ嶘(ryh:6uvC6uF Mֹ"#Nڔ`4-Q>Qgma>9,V0_]} h쎢 }~JH 񮗸ʉJݮ&Nՙ0-"8o Dh$ABu1%#Z:"?3͂4}md+b wt,kHu-zI>T0ū.7uUeS\MI\ . 4ɾsG. D1q ()[ޢ8:ɲmoPt]"]5S2pQokG" zCvVǥ%C? ]wQ O((|ii /PKhzNʆD"{4tensorflow_federated/python/core/impl/graph_utils.py=ksƑ+&".lw)Tu{]ZvC 0x]ׯy EɛSu[wIzzzz=WjۻV}uuՕ.~[TkVgN[&R0J]*_D}&JyOOStʪU]DިE^hzժTj*k;FQF0~80kɧ8%l㪾ͧ;ͻ7cz۲Mj.aJW<EVUZomۉjENk Pi|ֵ zh+-'g ^>|8{wuR]|P_]|zV0~\Ո? #uD:@`Q1BJE>u]zmV^ feȗy֢'|m@ y͑8W]ҷꮉhJEvN\IU*5UKaY#ڻ~_Հ|[q)|=BW*۪*;miʕy&G5fwSnD Y:YꪭϔEzxOs{~繌%tniQVf°zӥ^W}FL/TӦUJ7$/:cU OLD'#\"8nT$PLYo- 6 >֌H&d"뻪7 @,jxbkX)6 ­lc igj; c'$py HB @Aʬ4l DtK!ɡTHmMw{ Tc%ptz)/G<2v2+=՘hmcǷw:/ 2K4Nk;1VLYڰ@)˜OXnCZo@'ķDeFTF_Z jH0QӾ֋ɄKʄ4`L3LI\[Ž4r3 &{ȻB9ѱCӊjKͦgF|Pǀ,tYFMFT`'7⃴`}РHJa3fZ5~H p*DU#zOBPwx`R:2pb&#&wO:$u;qZ17&G](p0 AӪEF"GwŰ y ayOK|ɀs[{3LQuê^ЌR*}f+wx<47u]'gJn$-3Hwix̋L{hN͘KZ,hϳ423cDx[ }O'NV}tø.w)bldjM*3v,?*̰F4?/'ި.E_p+NÝg9jo3i8iFsiF3ٴ@zict=x 劷k OX-9Su}_H7MLc6&E8<K/G1LLۭs?cJv3FM]f1>:aCff: W g3} gB4 !eu)Ǜ- Y N^03d;NQ ڟL76u, *k^Duc&o(t-ko ި<'cUBmu@^كF^ѼHF]ji1gjqUE2MM"n1 PhqUY?C%t+*B0_R/2C 9qv=@f^[X87CAO% uZgn42b03y)4ćRW__gq|g_F`^uE{  -b8kA74}Cmm cWЁy V%و(a4A/UM-+(/Z9:9;>Nw{MF 8;*%pkpt7*{ 1zHS@ Tm45q8KdHOtP0y$F +=][cg>ު"'.N;XѶfA=gV]C><!sUWF#vxhWoz&lz|\bQlh"ha/A-kTLi1v G2d+dk%aކ3{>C *fW:rVcAJ857Y WL#-1A,>ɔs2o#ƙ>:|s|xÛ70N\%踷IO?D;T/05(-$&E,9PrxxgY#f1!~Eʞ) shPb^5È[z`[qG yWhhhLͰH5dSӭN/'J3e&󤬉u8n?x%L+ jv!#O.)ysLHL‚4HdiX`>)W6([3"gh~0݊%#L@9Տ 9LH1 wWFZ@5w QPRu=2JnO0| n!h;yrNw; й:'hW꼄ÚqpS*o6;˴EU7^Zh$%x#ˍgv/$JhhXhOL@~)v*<,r]RC# VF {Qvцl99/5k bE**,qS%p[ 0eEXEe KY=)78>bX+8cvTrzFlܿz5?ql{ [7HMIvFS2qz.59Vtoz )9èsiCdkibT&[vԆ^r&plz㞨(l KOZ ۘ|f`qb~V\C=i'ۮ, L7..-n Y^gP(?A e A~J_l$#ـ=@1z/= {D #PۙEt zMӰJm]eDm,!"<&ܑÎy6܌%Zw LBYL!Ռfx|ŇA [ǩZI9I!X҆|,(ŌGvVro"_\3CLi J-wF?:o}œqYܗp"P[x # ;gJ]bod%Q:tN!:AsENfK@F( D-LC w86YU0lq/)W#5x p@UzD_֥p*X.DÙHLchB)۵&DZ+1@e )tz^MO8I\~n]7e&[90s:g͡9$9ay/07%^^/`ul<e|H؊O@ k{Ig&G!6AgGǝA!pxt=g}JC,x'+D $@#B"QdaˎY)cϳ uHtcFIgQzxCg-<$T !ᏆL6𱓩v;ٍl؀Ʈ3>2|F9S@n쥶Uzޅr{ .~/?r33#'5cC=v*JT3I5s3d8.t'2Bә})%##( coִG!VQhƈmpÂ/xl3/>.[d34i״4wsxYsI@{N0s 8钉 d83USשlS Qernņtxv: t;`+1pz[xq&0Fwwo"6/>k뭉)w/ړ ϫc, s&G( ߕ3MOAi)oM~ݘ(}w T|*b|Ztm}+A/Y6HLG1 Qhe;bh3ʫU]m&UtB+/33e]JNߒwOd%ȠK{"0 <_w=8|B6a'w&EIDzgoޠ9.ĈR lϿLBD6vhF=pEݿW[s 6f'ij0".P:rR>`ni186Qݧ+Z{ى*r:Snpݟ d,A; ۷goh#ϿD/vZ5d7IG!+"0ֻm>ūp 0 [ @ާV}v!5wazS %lG ~ ̓ t&$K[u lI0g%~LŘ`g1~qx9}ґnd[H7tzH |i'j6:Mو\W֛k5xH6lnp$6S,Y?V@sG(C9~0| f`KM7o۔1LNB6^V8Z0SfG^lan=7 sNIRLc#еT/?"k5ib}R< @ϔvڬFʦ|0pt>Qn[?ܙ B6' 6jAůUJ [9^)Q`CP~ptΘczwNC~۪ -`oȶOV+.6,J;#ci>@- YLӫWWK"9|GétSul&ZKm-bjwmd9󆀜S95czG\tBF+ ox4B!Y=| \&gW<) i֊ئWJ&UL*QqϊsCg6[|lq|J+Euj8Ma]4 ,DfbOӿ3掲?S(~`, f4~OWfU&[||9俐p7$_q^8%y@[}#QepP4Uv'4-WSXF}c`0P1Gb lUL1>0_HGn~OvAأ)ညtsb2h‹/o=:~βQ9Thҩ3ţx6BсEvһ&2mcPZ><$ݯGjg7ӑ#7-1-tة;牺0=,: A2u)s-ٕ(UE2hEs`lY }x5jyj/Gutm6äH@5 Txm_AF)/.(>E7bs@K S4\cHk 6r,oMsUǪ.;T3pSDAk)z6zgȵQ($b~`7S7Оd s)Qm3@Oƺc,Gl/!7E1j$r캌T6n *FC#v- %~mS Y;bЭ0MwB<{p^O-GGk.B5@oˠ̓ I'5Xi-<7_w A>rg &H,t9I6/ҙ'zyFvOt?؊b.ЯZH 0(xp)0t`_FN1:-#y;PH`i=&u3vM68umZu#TȞ b{7{5>]E6:ÀyA&A Z(kBFH{&(5`R6у%ס+_ժ͗ܣ -k@f7@YOS{#^ܸ7D W xFOoMGd,_j%IS\ M*?C/*nPY ,tOzЀeQXqm.7=`f$'-0Xde5%>cCSDvA~ mv~?!O<*kl.eM!p󾪤?vs_W> ]bǛ^u=ECoP=r+Px@.0$,56oXtblW$YJV$zֈsEmmf^Eߒ2^[-RC]xV7\vB՘XM ]3-Ӣ vΌOwN$d4k>S] Wddcdzey-r"+Y[(H`OH)6v']fcؗqtY͖;;4=d6b[ުW?oo ݢb[8۫Mx}\"^ȋsy51ʾΚw2C^a%cPvݦ@M9(iZ"q*MINkXPXM F9[PPKhzNچ m9tensorflow_federated/python/core/impl/intrinsic_bodies.pyXao6_A$_AQ[xk0V2u̖[t 2m$$UwGʲ$+]'ÇǻG]owܼC#!˔wؓ;fj&^wB*wٻ$<'_!T\d}E8|t1 )=LhR(\ OaO15E'f1#{wfh%Xi )צ>PmN|x}]jغBn;R]O?]W,)E$Tp k]́PLW@3{"$[Hx/!JlJ(kB7uxь\x ,.[o,?͖!4 h6a0¯;M?ӱC aOD@c`A`#,!ox ʶ2`9$g2 wS5$J!TEۃ*#&bL&75&)ccܑ5- k@erg e2.I8oonswC@PM@ P7TC!'(R]bkɚ J2 JHS4ʨ2\*]cOCR]A{  tMtU͸o˗͍ԬܸEX{N;6Pg: }4x8E=/bp"R5CbBg*m*4*99 E$,If,˜kg  {N{8w(`]q{M:f-^y1*_+gyaФx1:_SC/O3t2":$Kj K']}1,oߠ0v~j+^c4b{Xu/"5pnjPiW=yuSf`MC{!F5("L X֧C t'_E1831NuPH ;@@ )! 8 Ȯ J*_5wd/, jXU}*J֯^b(tp{I͈m7*Xyͳ]jeޖj[2ZV{0oR8-3gADl?̶\LrmSVbV6y;LX7ߙ-$wz?w۠PKhzNŷ|rLF7tensorflow_federated/python/core/impl/intrinsic_defs.py[[s~ׯ:$=}I;8njDʒJ$m%`, ;g %JiZ?X${s,'qM*ϟ>J WF*N߄FszAT:J> Jlt2<b3BH,'6!Ӯ<$#`𦓂 61HJo R"/@FpˏS+pfNƣ,z-}-\]뀣  B$#}-7fo $]l*b~J[5>߻Z >9hn2kb9#^6@)eN ,bNԟ\_ g> >Uh2KaHjp/N/'Ϟ}oCB >yR(chj=`I0@ŐUB7$@]("U2]2_; P}(/|}K]S 09hyF/JL) ]frw-5zU-bQ0 uƈWX< u*4mdwmq-+D^Kuq:N:ݵZR+/á` 2فҊ !X"C!zQ{,.U?f._D;I^W}'+HA62E>X#&GT ς_Ogt8WW$+6d@CDۂ<(}0,}8{.uĬXBljI/ ~UJilXt$w>tZJ1Qw33`$+?Th3":/; }Np'ŁLmG>H.MSX#ЉA9'A[N1.}'魨cPx|)%Z (ap5-%qYV "%:X;gր&o'dbɸ\p Bqr=WRD ʐ{FHBLG)UlW='q>d!0 [lob >"@W9;2 S1Blӗ ș2CsxJ-"k9Fmf>5= 98 1TZQk((c4p)6 b8guGݔDj+5h0ST˕#Af+>p-KԉBB0yE T=M WRVC!U"HU氌OFs:C1:ÀQPSFOm0jq5\NY.4%fm=!J <}E͌r-.NcEHŁ,1Ԩ"fNeS)m" <{AqVEq?ɑ6 ekSn4nYJ`)r&TW7<'ZKGtZ$qxȮm8ZE~WV}/jOMz~;nsjn1lh4NBpȦ9dA'H+B,~_*[2;Y5/ʖkl،՞&So4M[͊dN-i>n*M½q|AřX)ߢFr ڲE q_\Pt*HLQ]讹9UԝȀjSͥm72Y h65u[)owJ]-r׊ u[@HM_Hy l0ҨHdp&. ۩|XܗcFњ҈ҒT;աCw qRN.Ά'J,4>&se|ҳLTWo개m7!4rɯV秦$F\&qg 7~fӔ .oW%~I^Q1r aZYEۍj?Ǘeӈ ^=N-a.g вtgʑ5"[.wёԕ9EOX}(wy$ʼn#Lch$io$jVRtw킉t]+#OjE(}Ա<U.9̫P >uQbla>Du$)D*a.-}xx:9 ׫D7"_?l*1X;kNJSXT r?ؽxZN4ɼgiq5ywcI]{q` ʶLjb_l2i![X.&hZBS+vT{۲wr[/lMןՕiԼ!GƭKUytkwiڶD~0 ķWkЄ`.c.0 :5IMζZF'2E/LY GpVjd+$ Qj+ǴG? $;,胁_?/:+KuX1.Y,8o(DzKweU8I̶ڣBA$"{}~EܭR~Zmq+؛lgҪ1Y6qR6] ^}(.L4#ϣ;꺊$[:R9rKJHZΤ:bh #V\׈s}w+D|?<-ソǣбMOQzl-lADWwsŞ\5@u|&AXYpmwWVv8(Bū7ͅ%^yH&N@f=Oj+n~у2 1͝ԋTr>_(QVdE8}ϝc%Q%w'8*۲d pl/=2Nn@JWy?׿~e@ytW)G*]MĜ r)y[uUm鎶T^QNj {d"[,Yj~oE ˗D⸃/,?TVfNˢjc3=ηf(-w$v㣫_&Iu1 ?/e73iի۩m. uP䦑y(w$o}(20wHH2Pm$bkE[&!gitxEM@r︹3HHgޑEuEM>g`񐮸udqXJ/PKhzN=s:tensorflow_federated/python/core/impl/intrinsic_factory.py]mo_u>H*&E"trg4g0XS$$]+g[ڝgg3v;i!;}y1 7[۲b!$łMp8zv􌽳-F.|B4o죐xɆ8Xu<PysEv#d ?d,o;6w-ve4`Ixh}kxH : W/^l['W/52xlzq=}Ӝ#IȖqty]![i[[.PYA(yyqO1~r}~=?~0c?O&5bgog[6͘ ,#>&mXЮ1C/,{i[/w`+AH|!7v{ ;!}Rڔqt||\ X}7(}&O>:<[eCo/aWG\Ap M_o?t8HVpbt\0]\Φ Fa8QňI ZyK=|.`0 vvg %8>pk9 ا ܪ0{&~hDE婿HG>o /=Wq>-ܤa憲`E0 " ~2"h9m\?R;QUPc<m?‘%%1M)jraXi)A4WBlu8ģg S)=PP$:8 g_C} F "`?wӋgg1)AlJij˞LMNcՋ>c7NNNO^e,(ańr|XwDjfE;HTjT7k]֐BA)u e+ tڞzS?nc;ϯ:9n`\8p\G[ѲF#1& kopƯ܀BDL&Zg_Z/|jlf.dfŇٓ--,V9aVLo`8i~}ԑ r:u&1Y 58>ԔdoFK-m& #=\ZM{\zQ^%H 6i\™~Ne{Xoc6KjZX8 |a P Hp|y#mJ+Ijj&'!WWc6GKyCxʫd$(=/}x;}3̦o?\M_H=8<]/*ˮv+M<^rn٣"TbÎXTӀz\jE8e?t``zrXu ٞV{lr?r;@ψOс 晈LTp;,h@`ֹA@۵m,\`)(LQ?c1h m(rWSn)iRя\ l!$Ύ  96".$JBL7܍0C5h1~PFQ+N仧X+EO'YqMH/B!. _eȵo(sIK:Tn Q-Ι4sK%Rw H/ ;; ev`-Z6RsA59\p*Ž/ASѻI 6@ 7b[i܅Å60)X`i)'"\zɛw&:L}vyZ〮qziU~QVx >Rh3ތb>wӳ'okc|oRXk{r?LW|z!K!Lq143cQ@1R-&Sf|(D!DZviz&'V,?q⒬5~ftRnJap7JK,+%;M+a`|mrY]l}j, CZ@s#,yרXb¤mwBѤB_b$3ޮAˈX]Ү1;"3{]oמk߫5GEÍ U芔vA R[]f3 |=}nD kEFg|EԤ뭴rU]k{vXQp߆'І?)tWk6> 7^@iDTz kwAgP6@'I"˲]|s# jT8YeKU]#3&*W^nֺ e.,#5%/Դ B!m\FH+q-5ƕ=\TCYU>V/4VjcY_bS ~RZC55Qש/:LnD ' ٯDH/\zQ, q@?1_k'K0U2}[`/]iA6kQ% ~_t $]Lгe ڟv9<ŗ}F2 `1@y7/ooN*.-n6Qt & aPzi*2*faeUD5a"k74g24NF.UMުɠu!2P/s膓㹒:Vo~XjbpYoCEGi^* .{27lAsUUdA:'i0r>FQJ=V. 2nk'KԎkY rxSe/[,'6f|v,|2-4gCIBn>S l9x#ڊ?;!ʉc4Las-/lZ1)"JIeW*l@ &ji= Nr~^ѭJ.$[i}Mf;wv{`]Z1THU:+zjbU2;o2tMT EMԴ!@&NLAW׬ræw:ι$GO5Vn7UTh zLÃL$1̯R{ b JRM%,i ig9+݁["L-_wfg_6yfH+te|<gӽZu/!JviM_b˄_6ޤRrU6$A,UNOS艤bX(_"W֓3(z19YhiZh[|i"!frmxCMw3p4rkttS6d[Ev}rv~}Nqt.e1oɽ_dT99}͢u(ЇBn"[9ґ$& PKhzNEz 8tensorflow_federated/python/core/impl/intrinsic_utils.pyUMo8W<8PE6 Ki^dJ~Ȥh>Rc'M- gCƪXo,y B(=T S\W5vaIpWm$̓ 3!|EmSW0Fgo S lyRYh 0P  - ֕@he[N՜kWl//.ڶeܳeJ/\\,cs-+44MZxM ͊4FnBC0-H(+ayc#ч0|8 [9N[XD4$0_x>|F;_SH^2xWkǟH #i RL(EAkE-IԨ¸4DoE( ˭y$ڊJF}[ɐ{PHK# è-JeecY+mFUQl%n#|MklGjX]2VɬctȮ 7HqnØgB=FވjEFfyIw637Y d ˗p^dDCSXi^q˫' x?UF;.ܳr7-ld1t:`Y#6`?q nw5R^h鲣:aV=_8"|oaknܱR@U.qCzd2ýgrx>t?CB^1_D}&x9oXE8=s/aUc~7u_]wy7=04:赼KtBK/KCI ~O$0nL u@ PKhzN, ;tensorflow_federated/python/core/impl/placement_literals.py}U]o8}ϯIKeQe[ЎF3$&x7ہaW hy~TӢ\Yi4(P-=kfyAƮ6It]Уȁi#a'KÚk-1=smt\Q:jhv$pPCKQqs^[r+di+ʻiI >ja oc1r&̫M./4h<bIV[#4b]dVlKJ+5*'xɨ2RcX4E1b:69}N<h2>1h8L8r7{~.pIqBRAXqɲa%Rmj¸j+R|X\Z`-Z2ޕ+u[&8FSB O!Z)˖m42Җ¨ kBlBZܹ(ut/MDUC+A>MIoR VU;rUJZ"G.bsAgYjdk OE ɵAA#Nqx1vZk]+y3͑/y%{rPy9OW,{RϯwAlv(rJxt{ɋX%x! W̬Ά /bIoq92\oލQr،~ODZǓ21x_B`˃0WJB2]O/|?ϣ[ww>Dl`5M"t6fEwh̪VԵXIEKgtOG{6qJg^ -M)=sI Y;}r{W~?PKhzNbʎ)_;tensorflow_federated/python/core/impl/reference_executor.py=ksHr+v?XۛRJ),Tي$֞NEA$H!"Jӏyc -g7j0ӯi|/զHwxտ]".̋QMIWT( ދ : #ߌOIQy&^G/|'_}7WboDWb]&"-,]$"y$J"I"ꎆ@ V1 D\sWU~x||b6ʋ nY |IY":-`I| h.G" rDH4DϪǸH4-"]Wz0i+wG;񧣋Ӌ?]Ϗ>\\7?_oч_~x3 IVHHdDHYd +y"CRd0JeZj,eZ=M*D *)^̒"LɺʋhoW^MItAsčڌW,1"qZa{'XuVJʪ$ bd`q1وUm"-aJTS'u VRwz1'؏;Twq%uVA%L ^;ѿit*׋ =Ʀ6pXd-'^ ͊|)ٺZx o|6濛MӇWlcǓ|HQ'J=*' DK`R-w@Ei u&kgJjE H,-lHo58˳2_j |f\m`%>O*4o r{ERYD3a]aEP*Y#le17[2F׽F9迯}B(" D#4އm&xߕ;/E@XdMygDإ,Q|?%=$?1(3@G g E%Ȼp<0z4 >q:C 잖M(Rv yd DM1A0 `д\OF$yۇ:I4$RҮqs=(*Dh >}nv%ILV_/R5J81:@ П IsP Ҭ["] Nɇ#taǗ\HYD:}FZ1/O\ <[sF+VJ 5lXd]4 6tb-=1HY hsQ́Yb7=vCf)d=*dlj>R$XfJѢh0g#։aMZa/@:nAK#`XLjA`-݅RL`dDsS`⋛F:r3"f8Ƌ grsYGn"6@*T#lH,Vk$k YL,,(1ArjƕiSU"lRMnu?$4fom礌/Ohw%(+&f~3,Z"m6 jvvre"g`&X}=MM5>(,|_eB4$`oR:@vS.{8s]l$!_bcH)a|OzNx/^LbM֞8&ϜXg$e%<$U^1rR MBFV)ZƁآ6O6`8h@I|ޏĘFQ%qT mvc _d[~Z$>8@|tG#Hh᩷Zas䝦W yp6':6񯮵fi$6#0=ĉ$0EHn& aJ`NW4Dn v2¼נVr_|r2طk0!з(9KsG$~b֖ߚ9@!vr5jC J[c]QKjgM#(^a~Pc\x 62%A|8z᫙тx'rmBAE85KΊ|%oi`+J@sKP46 ~Y]Cg$H[i|Mk2m:'9Z$VKIAN zOӒ aj"w<Ч9=H $c3;ܠHf1{f'qi щ[-ӑZH#'@[Aoٙ Zu$L=?zZg/zn`:N1Ga)^y&-wQ>;9_q o&-3Oyќ86D7-?2"ZL=D3sTрJP gZ}w 34bG.?OBqMm_FC=ma4z)YW}udV]Ԥ>L@˒5!.100pz4N#m#NC3nj.!1e^)v?i)M07&.,܃9v?GWRD8 tGGTc!%TQQۨfܔcRv[7'#Py*Ē3ٚXroPA5>pCi8tq7-Eq #LnŘVLwKMֶW$1 H$[E\,g> ) -r<ױB RRe|QɌAЦ5+jW9Mb"hL[IicTΤX r6&&.FxL@dp Sv1*(%9o^1ra 0J zh)eP> 0}@kOu Z87.)9osK :9VrNЉ07k@J'iuVb։kvaէrWobr#:C6<4i>jSy(t^'1ILT)Ҷrѡ=un:(?ZW9Ƽ:rK@5 T%mj+Px{DWL 794寒]$##|JF֩gV&4 ؄ȷ8i @q1g`yU2NIP l*1ivm#tWJ^$9<+ftiY5}ZEreC:s*!Bɣ̩`JB׌p8?S%,>y^Z x7ir8=(%QY3Ln-|b53Yc)3W꨷M]O8gƶpތk9G nxWqx θFөJFQ"U58.ei|ը-C"yH4@-҇ VW ]BaQEP_v yeAhqq$߫W?;╏xXkX${H`c[=z>UE2_G=H_N>tC[&q؟?9>x[z=q`Uiuͧ\$ _|K7rꧣNGcYL3| \v1p(z ?g՟ozz~MWۑHЗ@~yޝ|89?=Ԉ<ɒ:lS.@&E??|8>i^xҀ7ձ4aEYt Xi)u2,GT?jyw3ևjR=}iGa^I4J>֓jpfVyV&@ =M-qOkVT#r|nP05^ѥOӰjV5_#O)}h*pH:gMZV{y3A m+$ĤaNo!6Dui͂g$X3Ć˷y;;=ZʯEo`J6 SVօ!PC.F^C}Q^ /Ipm2Ń3z7m[΃(ԓ(u S$/ 뺰|'OOW~*C7j~Y Ac2ZW|O&unPNrxx95s?xk`+WYe xK2? TMIWټVYb'7pYD[c^N!y#>|N>gT> Fg3/a@}uZNG-/+* R]5SAFPT7(n#5xjn+N`Tz(Ϙ>á7Y{R xV 2iӶI?m]"*65"Kt.T@mqj.H=P9zэ}oRջvd&*dc,K`9)N^ 4;ڨ6xlP D,c0 ;n D˒dC[>Tאڲ8I'Ֆa$m435vf\ AEg0JvWRƍ lthØ߂{@8!,]ORx}"Z)&*Еya )g !N~pms]T܂ctbĨk${^s~H_[lv@i@= "^ ̙W:$OvS{ep|_yMU\̯;JY;*hY0 !Ψϳ!د\_98ା xY%执ak˱/>&0E拦go1;}Psu^u¿㨨iZHǛ' b\ͯ3g ZxrbI.gL[Ff(jS4.RMt:ܩ{јǻR+(hPt}ϾWab2}a*H~.o2,-'s<zu􇋍,$0Tots4ˆ}Z6H )S$HcZzrZ"8FzXׁW& bj/7ݵ?UM6jJ]Q8wZ?[XN3Yw=nv l略T4H Ob0PLl.Y4nՀj+H ax]g%]1N/T-Z5ǻZ`ѨOn#67ɖ7e־oڜPgKqܬ9pzH\k^z֍cT8;.իF&rY[^,ne<пtBlX2Өкg^;YZ2Xde5g-󻬟]v]z7Fno`Igy9/Gf.]M}_4! fuu :4Tz5"xY:.z;/$4olZ+g>\ӿTcok1֟XS8l+T(8f=zGנME'f$cE~.6f"`C" e>UL(~/O #/V|{Xja'?Ca^?[_[; WJaAu5>¢{jlf~Wi,mU1;.P۩!-)YoU;XC]*d,/TB$bwcT+ X-2Tv=K"R'ŲTB9|3B |G_MtjpL"3>y䨴2$Ck_)d ,OXa؈R?V_~5f"j;_ a"C4ˬKLI{鯍{0ٝ\ө oG3S@vcLj,BWMДėݻO)AbPvѠ;G6Bz3;>fܳ_{?i Pw'{pmr%W* > @lN*c2#[LZ=[V?/QWWN1_@yGp4[?fwNa~q]'}MP+[0=w;=_yݎc ;JOt yf[YR36kMr"ovY#ksžqcݭ^^Sȟ6s)f-۬׀ l'q:]='p|]hѸq0Bf5ĥBUR ϗ&yT iv8z~~\!NݳZ('i G7G&ݚ[eE,>mk U:[;Y}}#ESi,C=ghN܊z',ovOKe[<quw}GKz.bcse~)*=*52 3 WDg:_妖%6fl wDleZr]h/=9q*}:G0R2_I_M&w˛K`a?*I5Xy X0+J M\I*7[(^zIEo^T!,'_ =SJ= Ujw&\%]PrrwNfY]&|2oq'Qgc2X/ڙЊkRӔ+KO&kDZj7iuͬ%ƛhU3LU~G 9N HzTbƷ*yVEV|cek4<* LlG,Dy*!דC`758S#. ]+q  YX/{S_7tHTUD߾ncz UWl}!}pYց'(ၺbק!s #7%WY%%;N(-QLF"y-s@&x5!t?]6Q>L15n٧ѸB Z8%Lщ!M_ EqqMB| 959-Ā wсB+_ ci)%߁9=~Kka2.;QToJĎ$RЇpz< 0'r7įE@OsE;LuZsn鱚On ꅧ~'jzPKhzN 3Atensorflow_federated/python/core/impl/tensorflow_serialization.pyX[o6~&r);H<3IkLg@eF&$-{!%QN 6ID/!]\;vvr*e{BYm.Keb) wb&f!Z>s@4xN>cV,;a#Lfl:;`',oz>[t>K6^M_TGD̈́)^![Bdvuׂ0 a0i1[RnV ;Y3% VK+r \> +7,Ws\!7FcKF_|79I7h/A cKjS]ʹz7kRVq7 C1INAIvJl艇J/&Z> q'kEy.rPX Z@*jcY =XPy)M+3e[lerɠiyww #7Rז=HVG:!Z4upy q\@p, c xг1wgs ໥(JM'URg8S9]k%Rlޝ" \1醖; .o`S[,gPVZ„I`HqRGԲ{t*–=Zj 4&RK}a ±dT$7O~ַCkxsuP%%{,jr⚱ wt,R pG7cI@vﳚc@CI.pp0q4≝&SGIycx%FKȦoK'}w"{ӕ]y;x rM p T^9z7)&3A2>#rxm@/,ZK]p?Rg߇l~f8>=Urf!MΏ^OF)3^t/i+/tUGqL;xsj8"H%&4T ]T1aW9xϪ|(.C(&A1fkeIHn-*Lm `O)2c3}A5DQ 5 2is1*ep/ LVn0lndDej%~ O'{Dd!}-n;%UN۱}"H"dj9#A:eFR K/QrQ8^eԹ˲ˤH~I!}agg'N9<0Pp:06CGpeBOMVo9Rx޵8V8eFQ=:KVKղ Z`)GRmF,%f4S^2UDn9LY0?{؀phYkz`ڝ e/ݲGg˅Ct q !>uF""tL2:)[Ԏ@ٱ.pZ`bM9P N/ Y.['R˨ t:QǴI TpuzrN'.f Yޅ2Etw貸V֥^qpyQw}Hfmot>\M}Ѷl]0.1C :a 1  xpO`Hjtj2ָ-1|4)lAK2<讫q\PKhzNIon?tensorflow_federated/python/core/impl/tf_computation_context.pyUo6~_qp^@S>  sMXN2QSߑ#i"~A XT#xǟr6huktEO;|]dAUް-:YO':,f?3G0C4>V(wZIS!D2s[Lq ) Qw}uu8 ֵWz@f7F?rcAܲL-`!H6o:HR+ONm{:I=pb z.:gO_6ayz_nʻna 9 c~BI[# h wXFUi{"pCW>TӳY+oUd,Qp{42T&>RHX(;'m+]7X>̒e{w(Dഎ@n՜21_A/; 񭩂,K  =Pdע9Ey.L(ia{r[I*VzNoQWQrV\GVFA!dYUZroj9ƺ4ϧڋtyyl/N ՋkZZ $UKShwsi)ռZo s`CUHT&s~-Ts4onYNfU+?]͏/csYhkU֚:۫| Y[U*_k*dx[Ɣղ* c&c_KF]߼Pono@/׷Vӧ?ިԻ~z>UJ1z`ҠvubFa]WZG]XM -Ja֦`QŋWpͬkڐ(TS祅6L#i4pA j1]Rg@l0XZM&˶ik=QVHnla Mm>-`  Yct֑m`eܯrKŲ*몵Y46I sܸQ-g@1kM̊jm:_FdJD_@1lbħ-y#fS.,.Q[5v\T :9#,y.)BA6 iZsڀ oT^8 Lg X<)/.@B^6/%{E{QFm2VQ:@" jC1ާE\:+a@ [zՒq"}$Ku]3owx7լNS?MY<$J.f@TPPp //h L_HqWbt@)ox3^YLEsI+L6X٪++鿠z7z:n1|øda \wLx. Bu=aq3S- X4_*ONUlA1t3,#[>#QaaE$sYS]g ^|.:./^d !teqʄ2Lքpkd?V(YJ,#xk"L0dksLUeAzЅPT+f'\N#Um(S`, Vkҁ`K ]DG{5- Vw*}tC04f&4kb~׭mX]̒!su JNo\y: bMj\<zC@vN)RX*sҫnqὈwh$wUmo6( *1Q=H]>"b"\=)[pQp7l;Doڲ԰#6/T0'*u]Mz`F1-ݟI/zb/lZiN }»փw]:< "H r#XeldY=1rހxk rpM4nʭuBg}^U5(2T U^uW'P#{@KGBS4& B/zc"vi&7yE ?ZX0X +v.Ʋ*eWOu:u<+j?:,җ.R(z279s'j?gAۀLUz(}>OBUQEꉔ5*O8 cHKGwcz ]B#Qb1>y[;gFH+p.7eU3f pO<*p0)RuTHی4?qusKh2M 9b =2dfh QnOz ʀf0PŒ)1i u!G9{A9 &,`m tr_]L XkWt0OϪxnJ'KDl.T;ϑ)<Њl~m0*iW꿁1́8G4zB廉ݯgUa'-SgxޯYLd&ݴ+:v֢gS&+GVpmW-0TܔޡfzuY-tǀsNr-y` `{n疐pJ9/-)* ,VKGr@wx#&q&Ƅ4 Ȱاf{7C[PHl!އ SOG$! D@=AlY4V),IɤEH>WP#) 'x$6JjG/E˺C&UtQ8}R;fr|$]%Ra>ap-O y8*K"F3+sbA4d8)eЦ3g?W[4sۼxP%Rrp`f!U _m nn SH(t[7 q.I3QXD77C !B1+Vr?7)Pm@ܔh1+7b"ItSAptJ: "(A gy~ fxdհ۾ 'i }%,X)`2geXMQjc_dl-\ZKn0F?Ʋ0{3,DeF\)[^םf-vS7z-5W7FWr,Y\u+;5l!(uR 9Wo.c@ Hp\d\vIgJ<4?Uz 㸎.^>s,ᤏtH&OSЄ<UD"⾞VY7rxͅ$ rf/(ګVY7Al7>b~4e8Uwa $"(INV#p|,}Зt!{*;ÎN_UYΐE5ܒ:yW{khREݰ%m!J8%'2 g3'0!Sݩl¶TE)yB$+a I*I,5<+ Յ_ EkЇ<'FϫLr%, 4GX]nɰa9I뜡&Pc83f*T\l b,rO E꒪@hEAhp[kŴd}}'y^xuxr)@/U@Cꕃ`]Q;DY*$84PD]nPu֊MRe«=Qma ڊ \5c;/Z= X7A}$Aի{Hl.|0nbI}47I W(M9 (KšT/גKtX>&\'x\gj(o w>F#6‰"_K6Hl:uҔTAVv+>L0T 7OӺO8]NGŖ/Ep /B'E{ڴZ˴1t0 8΀h!M?޸-Hܖwcy ÿcY@FE8I*d ZkB,f\ɣuz>sIۡ_b'~;Q&ҹ`MD&;Xƕb m7Ȇxg s=E:/[ۮejG, K0F6\ |&.C;d'0zHމGЏ~QqX%AjaIr;a2x g$rl7;$oIn'{8zjZ M=]p jmqm>5ɺ$Tmc 9 :(DZ z]gș-czwr♮lr(ŽxLux+:!>rF7EYt6o| <'X;VKՌ3,D-ϣo q;X & $6V?`;b4u¢OU@nծ bwYA]/c#à'*zz((>#LvotΥ_!/m_tqRb:\>HudQ,P"Sz@i/)Tg`s! \EM9_W8Z@<W:n9} b2k,?]~`p_MXXMҌr4p/ Ϛ<6mM;#mJ(veS}WQt}`2G)Jp۝$'o-Mk:C#7 ò\Ǧ; H7!t!ʁZ_R+ݵUezf 3(QWLnA.0>5gx(5(@CI!o 0]@:=·@N yjAYo餩f]hLyww_m!-5 jт UhcɉDt?RPyOW)Q&Ri٨,Y9D+gQ نF)zՇGU'QAA45;+Yh-lH@)NJ幞*'ױI˼qaAcǿ8v҉/w-'8AfNDH7%fiOqPrV85]b=NC)tphkL3l/u]tCѽ\YwK:`"y;[~_ϡڠ3wyYUh a9qpTy^s&3rq3nQy+/avz{(Q}Xw(&2HY)_tVS&tޘi f&[J޵xpxmI"CьYx 6P8aNϨ4C\<O˕ؐd^HaEFMH_!kp՜؛Q/skh|{}ăQ !y1Wx^f1Rqlm" o/v_߯豻N' _<1ljg }$,0ʕ Lo5s0̤p&)Nl%altOƟwd":}8݉)5,>;v`XP e!c@(5r&.8C^1Teor0ߥ9:L):S]53!zzn"qZv깃 i_9Ğ9 j4GaNfK?职;ؙdI\,3m`qS]81q+Zd_TxQ_a7jפܿ&Q^CzgDљxG)Ti|]B8ԏgW~v^utKFk2~(D9Iٚ9U_P!;| ϊϢ0/޷Dj IQ{-hi㮣[Eť(< .PKhzN  :tensorflow_federated/python/core/impl/type_constructors.pyV6+ދhiN6 :6btl9A-lȒTwHɖm9n[aWo޼!u#!o^-BjR&F !V(z7 beE34OGC؆Bm&R=LGb|KݚeY֠+u&PVD`5l挰k /7h)$5FUe:УOH/V Zt1tiqh>ft9gqF DOt.$h*O$Va*tBo0B*&,'2V,M ժjC\$I^JaX&B`+- 8i [/ܚ[R$nƹ7'&ܓ{0 c|Y wC@UhUp+ Hɑܶv:uh %BhNeA:| 7p~z߻>`[&Ž}2CJr6D5ԯrL1-vHML |Ae&t{i]†yk9Zފt \[+M K#CwEDq]Y5iŪ4kJK +^2D7 :͖v':˳Ҧr@獧Z)ώf&Ѩ(ڣ IvGso{Qt!Hi ž7\we讀!+.IVU'"*vVh|v~x;zg}nlHi$ͰSAxcȤbM-hWUɊ>vܙ_\]}uu^'kHC\d*-}d>>ӳ%'%!vφB فkZ_V4dIۏѼҸ8%$GZ9JTCCϟ.A.gGAjk=q F)EV)tBC{[MN/?_E\ȩ|磁fC~d&-0|NO`^mb0y8oLLzY Mpխ'd'Q_wCo)3~d hǃסT՞WD,GBr\:'͎ dG௿EQJ vcԃTi٬3}sDeetƵn m{GfU_/*re$鰻q籆ʜ^zY_ӥ 1Ȁrn:p{\EUH_qc`dG9]5Dzڮ(#YE:oUfʠJ16ԬXYg K*P7?\Q+Ƈ: KHpzС?e5Q>>\y)В~6r0)˱hfo3ʜ1Fo%;5l: վ,o@˽Z2Ƴgߴimר;9q9"S"1 )͡}$,GKl/8!|#)e8DT锦SKFrUV(,PKhzNAn=@x3tensorflow_federated/python/core/impl/type_utils.py=ksq+&Q8r}VDE0 6Z" Bk^@98{zwPZHݮyUob.Z/^e? hOw9W5t& GDO"W/8^m5<8H/,"T53xʛ2iVP{Iӕx{c`MOtnA&y6Ůֻmc{"(5px,U6/:ݖb@{?&NOIu/2{,Fr[B v+:8)&W#niE\}-hC@jY(-ԪF3G$ͻI Ŷȳ&e&|B K3z$dYf`D+(Av%HL =a%P>?C^\^Wtc/2U麊$MZ@/ 5NE[B[#e|fF"^gzhXb_Onl2a0:PQH:E*O6ziXɽ/!5O4Ɩ*}T^)(ūm_q6 zVD3^J#Z'[=*F>_/c#~+)W<`5֚Ҁ0*hj=ᶓ^Z=6o1lߡ4P߻k 2' ۇ4t{DU3UnvBI%^ ?W 8 f',;#zB:@Zo* ;Z NHVS02z9n_"wcaDsr&yjUW 2=goY`q$stb IbɤBkX֟E]"5}y)p>~@y3Y711H Ϝ/b砲j'PhAu^S-\$el}g<~u1Ǫ_Hn u`@ea3/{c\7ptGC7@HDPTZ[w@]tͷ=pn47j~!HGOg-)|D;XM)N]Wpɰį;=5-հ|a.6Hߔ%eU&)ؾ_|GdH_Ġ6I$H{:.ǀdm ٔxdL{#&u$eQxF9H[hYπwڪϸɎoE]JT " 4GI6aa# zE i`x -^ 1 ϑDB7DD"4PC aOQY=-۷ F-37h[GPcXrF5hAy%t)Ȧ1|@] :R*C^.w LRٜ&Yi4bf59nH4ehִL{_^S5]) `ZéNGM3j?x h<j\7_ =T|*| . $h&!c'h GVi4FzC#L/CnN!D d|Ab3HwΊ CDJW{7y4[imXWE*58kj:Yꆕmj`r9#~T`|64_K^~LW'm_~0MR02 @~!k%h:bucDxdIg-36hkM`mRBguݼneA) {tYro]}a92l@&6.[emB3&17;j- 1:. %e' BoAaN9SdZL|QvҼ.U(Ta9BezŲ 3Ch~ \I^xx{T\K{4`z'+.;7/t0 ǵ2JDT`%M<\Ps3h,K.Bd]MbtPa-p-a['aRD$K)[oɒC,ͬ;ans\ТӃ0̺0`vȾ`y=rB02g'{MIay?Q̗[K> 1Dq8npͤ:5ϸ#qcZIGlt-z6z3/s|{)F gC6kNBNnܸ)@:(!tO;]eAsiI ibu9 9/1ykLh7Ӝ-fL-〹q \Ɩ=[~E!hSgmAQ>CRQella.VFnXQviO s``BԒ,i^_`U'NĖ2G@.Dq%~R7y5+x*-&GRU^@k\qy':u~/n +%7Vׯ;eXa/pZW1nCwٗcA56. wرx<챓wl!LGTWEQ9J y]O2Խ!x>1#Fø]-Y$ Hp܃{ӥ4dݵ>ב&>CSKM,i3cNLg6^Oغ)xZz4Fb8lrF=v?hX#EMyfRL._^ @Ќ踤!yGWS Ni6B"kqUWb\ 6kl; W6[Fy ^\kb[yk̆U)Rt蚫&wh>O{z sц[: f5b'.{ʄ:<܍q sd ()ixdp7_ y<рtF4gbZ1t0iqw0\<BoԬYlҚrkTDJuDmmhT$hK*O*-ƊtST4K`o#|<{o:z^S; Lی@`vr&Yȧ~4bqʂ!>!B2ʼn9Gq" =[يX)Zt\leu~,,"v=-ͩW٧c#vN+̅8 -[jҹK9u&|[5TϽRKRpxH0Ġ yӕ ]R1 xhg6=gtkgVMԐhM$_Xr=>߼`4.-p֥5uik`14/70ξYᗰ/07qO40 00ƥ=Z DQzӾmKgؖjMچ\.p*qua\> A&x!~S5J#mwHh1Y]*f?0Va6VIՎQ=tNQK>1]hahb a B:L}r-x+!ǽ,N$x1ց.{.x9٘+ү=l`T+]pBIG7Ә>g o|175Sw}d}q x~;N"㳏o![>%zы d]N +4m֧Iu>F(V>yF22G_ [,veCнx1Tu 3?Bl%*\Z$W0~ֵζM.FBi.(ZfTI-Cr'>k񉈧@P,ׂȜK€ Ʒ -F)tSZU4HLگ@/bxĪ9PC:dw4 =c l;yd,PwcVfȶ,A7klc(^ Ͷ>$)UWL5)@[2:$|O̅*;nOWw6K&&yun`L _93f? LONj&|-811ቸےAHv5kw}+xVS;KXcA(ʠpnC k\M]H R6t]ah8)A]Ԅ ) zGIЙb":gVVnŧ|0%|cg]،TYJCm,TVn}='S9+!3-^!3Z!i {t~|LP + eCg -!ڨ1_*{ٞjWo$SJjU>J#vr@(d (BN aqOzw$IܛɤGؖv4qWr]CunUg`Mgr=6.;Ejjn,[/P3XբLxuL ɳl(Izl'!9b͡T&'LON?B%ISw3W6[zwZ\~V՚7u C"0I ) EQ@";{eHAȲ+ܒwC!H$_lK$ LN9c{3"6FG`w6`jHNLJiqPr~WW05ypZ%^o|; 4 :Ѝ"`QL=D[v8{ѿç̨cW@?wY= Vc` 7NЫkU:N"9Ƥ#ko6caٓJq>o|cj4"ް+XOHeq3_; ͯ;jn50$"xlN?C Ox3'!.}XƇwqMd~rv cۛ sS.r䤶 }Lc~]8~ ndaϐ,.8!87h [O ʁ"SȎffFb1Sbnc% ݌>q%s3Ȓ.kPX9/pԗ+>^i+)-UIQфV=1C;0t?lc49#vq:qO PKhzN L J>3tensorflow_federated/python/core/impl/value_impl.py[ob|((nSqZZ+ikdm5ޙ+zC";m!W}͛b-؅HUVO^Ģै٬*Yы AF0V)g%L<̛)IJf)6qy73Pf-KUJ R&H%)MHFrM"Ő%mc$o]777'nXNH+|J+Ŀ+Y^[s`( `37,+_ޕ2|SR)Sٲ*Te!Uِe6yqv~|>?_yvv6;8>:gg |{f'2em^ D9v.DeRRFtU`Z)lHT^ T%/IkShooQF-|ŒjI%PzJ< > p2T%+u]X/z4Ug#3+X>@@0€? o1jeF?`qnh8J!H &#z#)ޱF`[czQjKLr/޿SLec%唆MvHҲM l>Xk^+1yf)gw?W?C!1d+yI q@yJ($Kǎ+oh2@iGpDPARG^{Qm?E  Urr̷d! ORo9Y\FDMj >{&ZzN p CPQB+E||' Zz d x=!;<,^N7Z 8_ ڹ .!dᣣȊGo4h q 8OUgie!"YF( tx?[ }jo2Z3Y5`+ 56ؗ~7)QL& #ckҩlJpȔp*1 'Vw{)CEXHr{l!؈B}&qMFEXgQ76P ܣ:;G.G0QpF'C9`Z^Q\ED͜T dCCdk΀ӓ^)nuq)%ŠÆdaISMWb{GjSH@i %Yi +pJ(8̾~G b#ު\CAnF枼䝘5"PvuPǡPSϡ05e׸V=гb 3kn`;-oG'GgLJ΃mGw٥5s.$:Eɝ9Ms}`\uIWmoogvGj2KVR7Ji45 `Xע0}f) cHRffn`iYSsdX>gd|9F|Ͱri`}~!,LQfwkQ ,bVR+!k q'F= ah[#ܷoXjO*igv\[8Z%/}~`G;W0} hky`~5=ǰ67@ FB;.qC<zgp) u/Ք"dx"'ST;7¹sx͛޼ot ZLg{lG ոfO6D*I!7 ˆ9xz'kWӝQ2P%E"jtkZ[R:"nufZW[t j'>\$x %B/K(9:溨Bq[q)@!S31zy'D ZUL b^"}f]X<aGXB;hl{ ғ,XUR4m 2\*8e6߂?hzyKe%5'/v#$D$f+2(@ <W4QWNwט9v.ܾd]I:v9rc]_qD@] }f=uZ<Mܠ_$Wh"h0~{Ϗhr|5,_ɦh;Br?jXGLS;Qk@69u -˸_FE]=1j`oцAV[ 7и=COzС?b{wL3g1˻ζ9G*[&㥲ӳ ^;`,xנa֟ ߅L4!x0n[AՅ[p)IXp:kQ:0qۍtɛKyTׅOՍ[A1VUWMub:еtJKPeOy4&>e1`Wi54$ Qy]iT=;T{+jX<[j9 zPKhzNGS 4tensorflow_federated/python/core/impl/value_utils.pyY]o}`PEC6pY$޽ h,ۻޙ!)ɟf!%r8s8sxyǮbtŇl8l(2W7i`7"kng*λ;v+0Vg&u >?MU7S`b|9:PRl2W$J*snxNp}?`C{;{] >|aǀ BDE=$7ˉC\ٴSP ,r.5d+srrYvSqI 1-Ҵ+CLT>gQ4tDa0Ҍ<"}߰DH|BLG5Z)/(RSuL:XAud!d<ϢT<˳_ń]XG&ؼ*5!>nqC%j0k(]e1zUxMuѷ76X˺5vo 7}oozS'!3-,4kr Q=~x%׀w,J9xžYS ۄ׷`pQMc;}u`CKu+f3ݺ4W|i)>TpvգzL( &PktO\yX"\M+B7/)ϨbDbFpsOmا~M T4xN?DH|'`õ6kf2eB :U&+8܈u5sbmjw!oPc= kK)n,Ho k yZJ5JyvG/6/n͛0{r1|!6c1ɿҷXOFeS9(lx-m}{v8v~PL:Q |&)נࢉT>fa&Y`IGYeL؃ggO>N'7#h5Yȏ 4(am[GҪcdh9qzN/T='V< -cE 'Ј<~tnV\AkO& X$΁ ݢ26-l$mWA֌*O161X50[W%+A=뫍JË?ҧ!ZXaj֎ BjEԚA)(+xY6e7zLqMmg ^SX&,8=5]boCeZ}`2` F_O!kZf)APQ(Q4ثQk5 s8ZX==l6Felp6nBA ܊ȜWG.;zgfmG"{t!o}'*XsF"#5C.iYAY7b&]6kUFպ3;u>UQwfRTWڨA:iN7ɶհ}^쿀ɉ=gڈOVaO:{o]@s(߇"'f,[/'J9/-,F K@! 2=特h}ebŋI*QK8j+ceR}MP:G |@5hP2rP#n1*E>aCV3ֶq3h"{oҜ ۂ'dg5qwk? 1@uwc2s܋j;LNj%2H]H3ڱa㎶SHo&o7m\|lZ>L?#h\A K8Gj, ?[w3s'7W,+Wl4"w PKhzN1$2tensorflow_federated/python/core/utils/__init__.pyTn8+ep=x+piQ@Q#yԒC) M͡@}1H߼p妓aV#o; vc{CU\nr,֓w>Y􁜅s#WprFub@=qb ڍ!e5‘xۜA|:CT+d?řp홧//c2̕]}u^?ν5x/ $jQGpQ%GOLvXAp=GA(6#z"a,-YoJ0>ֻowq}w-Mo77oV╴O$%KmL(L'-Հ0z+r`B?RH BC#󓨪(@}zo#NJMiZ+%R($84R Nh]Q{Mt:Ncdn|,A_ bGtT@]TFE}7J!PUy@N+ҖQbA$rʟv8} wmil8be5/-1JnAD{2>4M9zl&g$vͼ~,fԹH,=w<^P$O*5ن3hwZRK7O47 7)= $u2tW^0?=f[$ A{*evH]jޟXV,KY)PKhzNe;tensorflow_federated/python/core/utils/computation_utils.pyXn7}WLKNV:6*4 [iŊJlVZQ{gxً%B^-9gg G>kUX-|o0_ssi-ny58w"=&OX/\$|!m8 KgajذHe6!BWLmR0q vnҀB-- Wfan slWi.Mof7y/Kn hg-4uV!-fɶ4fja\n戒 cXֶH݀b&0}8&Ӈ1b|{?l>y{Χw3t Gi:{;B7s?GS8('d*Bdx.يJ=r-8Pqi^(ˬ{wdpvvBr\vE-3^i!mIo@ݧE}RP2A%R,MKö٧S4oQ `lQ dUi<c{ 4:|FѱRG aCvš i"۵e%XCtjhv9b-+*y* j_>ZJ ۢYr˂JW0 pol7Ӻ;HsKZ&iP L٢GB~< t%Jhg@Ħ.r{deLxH񶢃6NH^ T|le5jրK#M* cvxW{"mTv 3Azs%D$Qko'<|"'Y9[QŗejJ2i~ 6q)4=ħBkz}:x6!U]{dyBSzDHA?3/PKhzN?phT>tensorflow_federated/python/core/utils/tf_computation_utils.pyX]s6}ׯ6Wח>mj+右7w7o8I9?uu$QP&VY=Kbm%yÀVy 9SVrU?V N ^Bfa/?Oӻ?чO49Dp9s*]\\|_*?RQ,JprG!uc8ѨfKEQł]1֓X9S"de)U/ZlQکC\( ‘/D׋HZA‰ыR\W}ܚ-|]O٨ D62{VU`ƍFHk.b+>m4岠􋝰ލ5V$\2 yJ_)`%pPIlFc=\p`j'5-;kt#SXccD|uV+}mHeQys$^_TÐAr`d"YVBP3ߧ =QAk-֢BE & o4$m#y8GyDr'\H\ROu뛨H<,OCX%Geg/hooIPdY?&-NpܐWmE.VǤ&R!^ ;_ <]ꍵ^^ $sSD><Øtids7 M{^GjNFCϸzw&/#%o0`Kp>lhPi&418 rqux +q&月8>im+Yy1t>'5~Lq|lKh3% IBc f*!0=AC@Ƚ,Vjz;F&'\*?~}sz&**F\a0N}M>A)c<LE\ͰcI-)<4' 4uSybAdh7Vr#vi, aZjļTA;g0p@7+uέ~qe {_ :Q$O=/z m?[$7v%<*7rC ,f+aٶ jޒ17f/ScSO^r)$ʐuc{ԴmNmX3.S!QKz?+l` t?ޏWWWz557TE/UE+jj5u5~3Uɉ[Q-` Oh@*wp9tdž8"?/R2]ĸq|œuNK\ok:&-￐47uGPv9 ID籧d5"Q [2Qo%.lwohJ_@I@d4"B7Mp1vK LxQފ0nmʄUBY;p*=scO|S :,8NEH5?ÆPާq}i򵊇LEELJFd<$( >hH}ܛ6CP^՘Bdt/Y6D(FS iI^N,RQ#ݤߓ.Mr %V(Ŧ*}B^\6" (qA}qS*}\,/ve/4ds( H hs ( UgMq[|i#=`ڨjzP\j/#1Sk_#u4q4z Lb˺c-q<}ceitf~IJ?{:h{^zjvE)ĶʠD}.[թ"3>ܪe8:W׋]׻}~[]ֈM?n)\{3PKhzNOҕtH `;tensorflow_federated/python/learning/federated_averaging.pyXnH}W4SӖdxaʷ4 nMknJ ߷/E;ދSU|C.Ebptْ7Xr4OɸK! o<3=pi\so"3*9C` )نTBFq+')&yEQEΪuFf_1 N38__Yal~ZgGG2c-rqTؓvz,6w~ &|CX %lflM$l!9 ^\""Jdz$)iމ7xd2= d٧f~|;\O=&w B>XTK1<ŠM91  U$ [p+.+p\l*0/)E^iS4888WF+/yetb! t˒S6xf,.EY6D%ϜYA5z-#@IAZ" d^1'J.$R [*"9zE ؽbU rJDdL9+k%Erxр dC2ad:ϦXJ'4S9&Cه?bY#'&pTұ4_嘜24<^TyUљ3c(>ZC2^{ RCrK3l/ JU\s՚з (|Ri&Y(^ֻW:c;!Aŕ&["*.`PJcZ=[}y n @cv (_=%F Iyɫ\qxE6IxͱYu~+*nY}De5ܸ~Im`BYIĪ;#clGb;ݷըLbxBN*9(.DŠ؞RHh@P1Hn.Vd- XHmeYKQW ŒhHC&qNXHtPr\CUx;.Ę-1c*il5wj44pvD;2t7I[s f2dz0"{КgR!ƈsPQ@y`[ׄmb3uX4E{ݢ}߭ xÑZ@>Wr\]o Xz`F΁na$' %l 6Yq ހZ"\!0.9ύ+( "kgzow;K[7;W/%FjLB_vȝGճ*~-ۖc'v)=}e5PKhzNgX<tensorflow_federated/python/learning/federated_evaluation.pyWmOH_18t )/w@"i'{g{}7 d_y{e.u2j6wp|l9KMp)0aXZKGLW3Oh%#^VBj,d*G VT .\2AX*7fr4z$toYHsr{+=0_ eւje( dE%rJnr ڀ=QNX4H(Ψiv|cp<h |o'1h2o70n+2+)'m@CDe*Y-g3@SR8P)jZr/%\IW~J`*zX`sy p!گ eFYjqwq V生8|X|j2tZ&lkfȸ5&Q1Jؠ wg"x8WSе]M{#G:<) rL2YRz3*O[踭Kಲ"֗{rs[nJTUuK,Ð4ZuLAxnyaǛ*ByC?ؓ m=Jr)A>NIeTrF1WIUv#bڑgq'ׂ~S(N7̔SF6:ɾzW$9y0BI49W;mOF_]E×''oa"A(#U.Ȟ'bֺK$[㥬d.Ke 6FA&0G}!mLn:wQC'}sQߡyRQ_2pBVqH7IKǟ\T_3t 2Js a` "FLTd˱pXLV>7;"%1ā`Cʉw5*$43H0w7Qim|NRzPKhzN5 5tensorflow_federated/python/learning/federated_sgd.pyXmo8_A")K98I!v( ([I]o~ϐԋ-(X"噙g|V勥ag'B6[ 6꺐v-R)f)F/F/ػ<<+g&+˿ t.+vWBV֬[VIj- ", D +rUJfix!0EȹXͱ~_Yl?KcVǛ&HqVw7onWG*L?\ Jf|äb|IoTnj2-3J@Jkymvj̃W`2e7z2ݯ3~r;{fvsw_lr;ey~"%ЦBIg^$~U/[ȵPa+\S45K!pcky|O:A Ymj%@0,R$v[+UBFQsy3jꯢG#2BFBB⬉{# ]*.nfD\&~w)SD ?H)#M^e!z^Ȩڰ UލF(7bH=C"R_Ws$&=~!↝rl2 ɕWukeQ⬺j"Qub\'N/|Iʑ nW0.W?˓m Xa&\ _5DT:&7EdVԄ20\ILz ψ$4Sqʂ%&@}+x7wM`RQƁe(ndvb„P vP<==;=y(M.Շ|!6!`#).31QsslOISlSҚ2^4r5|tuZ Klg c4ޗQ[X!QJ ilʰ^ 9rۄa0@HH-*OM=kvGO:"O J.[#%-dv5tˮ^Ȟ_`1gl`hZWW⺣7zO,~)1k8TF E X\ m"z 95Ö78*꭭eA666{D% @zIQVǓO!-s\@1O`w,UG6=?B;/vI?`%`OZ)ZӤqMٓF䪲aSb`wؖ2ZE[?bz#V`̮LnzlkˣO>}j}zgfLar 7ZC1uN %> ~+F'>tLl0`Mί B"ZOvhY̫moo#yW3v74ulKr|gIo~C5} NdXFƒ';!{J7 +!3fJG LDh_d`U pĹZ(BYͱ=&'ѩf۝td;'ͮ7atUmEBwи@gJqػg = -vxmb<1DT UW`a୽av,E‘sJGf'޽K{'_8NWY`?mܫxhp(XUs93i|bTDTwFl$pzc,V1)U _/&v{]$)WnnNu϶p(qǣPKhzN^!o !-tensorflow_federated/python/learning/model.pyYnF}W4KL'yZx x[ X,ْ:Cݤ5&)Yd2b[dWԩP\f۪oos0upr{ukJukJuݵ[C6bzo OUC׍.#>jM g $\ >\ yo1YY&P6 ߪ tY.w)"]}>Hn;`(gLX.pٛ7 K8@UO*"}w|Ny [Wu]1:I0C3NAJ rNȋA8iuU1f8N~~&5e;Akd%duSzjFBB2[MGQd $&8n\]nj|٪.{킨'~&ՅbV5À<{[Nb':4? y#z5a~~5T09)j);$A_SY!`ly]ݮWzaD -;+ pS.Ĝ͢<ۋ >+>Zn_A8ٚ`ƴBz{9*hbϖAX z+a '/o-UP[UW3|"Qg rAD-fL(a,R4x{OD̡#$ >$[K!woRzYx9||w*<ڕvkY"rxiѣkh-"PJ TZ|Gc\CO:CgP:](^'rbTv|R A|裺iғH(g" _.I2Qo6s lU打wC 6u!--ntElR/':z)X|O?fs*~|GJ* Bj5L dw(G'WR\X! q4V! S ^ɠX50zt T,t<"jcZAB "I}-#wtGX`_Dt4!/LG#E2IDZz1L_dY43h\ =󈙅z\PAh,&5zr f&<$jdz|hv)? ZW|1+%d|9paӜ߄(z^W8/2ф8 p ar@ K^H=t; 9 +Mݚ|1Ãh{KK:zI/<ౡTuy//ĴBbrIYǤ'H(bKaThPovOKb"'ȾG*ji+3 ,Om?gOu#W<K1F^K?^GOO%1l< #3z4 q8*R!C"%Co M-L۷H+W%`2K ݗ-J~pLvS <8>Nr$D-% v(Tul$2I@jr[ĎZg͐] P]q ȝ| y7( G7TM{Z"{P*d;-;+#ғ]w7x~ +"Ѕ>狼aQhғA':{yx+' GHayo|$CЇ2QQߔ;tFJk>Ube9c”?|Sl-h1uJ%:04xXL(uL&4$k۾&p~N8=5+Ǎ uRxb'L7s~r'F>]qak+ 0⾘R47P.a&fOPKhzN1t@P3tensorflow_federated/python/learning/model_utils.py\ms۶_?J6I߽^O{'vPP$l=oJ["ppppWX(m['ڨ+S4e*/o+Z&UX-` |)jaiCL[S7YYSG߁¶ܨުlզ1@"k2ˍ2w S*+Ԣ\WyQY{M`CKHVh +mS%uV'_~y{{k6.՗9l˗OckQMV^[+`hfoUY+ [ev2@Ѡ`A?p*0vEIh|X sbI]OWDhPyN:>|ȼ}  NN,jL="!v%pj 0 &xIPOcTt45!$,!lдu˖KkTe12LdG1 @F$NYΏ* Z٫W/29E k5!7wzMsk;G6 t^ E[b#4pWS%"=܁hnh3%ٜf_ 9K;MSY/CћB'\h%w} 8|v(K >QxČpE,+3J1Sw'l Eǁ=`8sfD⫋.Ϟ>:>Qy/t~i Enib; b.sh\ioBOCC-oL@(}RO"zM]\fH`ST60lAIWaz(;< p8mow=Yx&XcVy$ !^F87{`ʃ?&}l\ z#\Up Fbզ+gfÖk[.PHA.Z]f ̆.B 䰅W%ʼ3 FqtO g13sJK:Se`^QDEcpw)s2]G~t݈~lHk7cgRDȋ@{@q12 e]0URJh0x[u•GL'k<Q 5׻RVڬ兀$$x 22[r ]*¦F^* mi-Uz1[^r/7o_! P"ğצZ-\%kusXAlg͢ڬ&:S%㣤VF!\K2J. QtZ?[*qFK|z=O9A "RML.+r3xOY,88ſ?ͷϿWqyO>p̦>j iLa[|}_ڠ=N4:}k+cl\2;gBLyٽcg93Te#{^n\`47T{E=zy;$pY7M :,"\M'jY,mW 4I6 |%'.̓󋫗2 *tpciK_ˑZB%$n [!ZHef'@Dom@fR(U-[=:%N}@wh8AQkw _b4aW'y -[B,k\5G?o&B|Ǭ_kjFZ-jb,~UX@[xYhA02EO=N 0: 5*bRRSE#,7BFm H!FxzŮgBZ]4DԀ L=+cr6M'VXJ$77GBuL"9lj.NMэ@ 3oPCk( ̟ХsU Ҁ]*t:zSY'쒦 c5C\*bz?}+/oD͠K}4[GG?0mR:!%8*d} 𮑈}U屮1\>yϬg8u>bֹ\CQ g9 p Ky#3YZRqb4iFnc>06Z[e;p]WǷilhp3FN+:nzP4$;|(*:<`es:8 )}Fh7NGS{6?y䖺"MO,M0? ,M.Z0k$Ѳ? 2ypn ' 瀈o܅VUGСUҀ̐7BzAFw, =V;Qw7etߗ8;ŐñL&{PE nL ]DL&EC48G^d䰫Ґl[σVpW ,sk.r0b堻BonrL4C(KxʠM1+l&_|Qfr{"^\vIYzN9Մn_'{ 3~z{2yu&q'W/g vɽ-{_=ۃol}Ga/61$?r#˜ @{slXRܮ>'R{}Kk:p9Χ1)VCJ}?]!^tiڼ\O9~~Efo$Hp.qHL{UGpEѣv#c5&}MF d[}& 4v`WH~+ڊʮMݒ}'8_~ ?2Ġl&TKk$ ';@knO[+ݺANe7{Bbg]:W/Os4]EQt0R4dBsiki`FWnP$k:O5$*^b>1V%"OzwxoǾT(5yX^rSD>}`6coS, SiXo4A֓K aФXIsHKeVyxk?Fv&uxAUp10LaM7Zrd};¨uu&/oC4ӡLFӥ07؎<1ZK {}8h3ޡ/Ϝ@)@PF.7ɨXjWB꾄Q\HqSu|RVņU.l%\x49|8FNh{]?vF»Tuw7gB9r~n׏I*u98/;$~v{(N]AJj 4ibn."S_gg )GX>A4{::m[ҳ+`A\=j_Ox-d\. Ey =&jsDOhs {@}*0.6prV@K0|?\^z |bnS>3mv"2t{-W?93;?r_e~G&gCSwpgz(yޏF=AokB?ɉjPKhzN.jC`㲻.wj4Hٙoٙ3X)7i\|EPZe6B sXAܻVg|%ŐG?Ś9xJEt|@xp^б=H堷HBޗp LwB4 (QS8 O~\mLS]~LVm~A@kDdle5'<l`UfP*nEfjQяH/&!SHi.&3mS]jLd-|H @Ҋ6?^Gh)@&BVck^R]YШ;4wPcnUTa R ɘTr* P( %ȦL4l;XFuuzy+R+\> kå#,}Iln  =M<ڰeGJ;'w\#tsQ坪P:FԡS[Q6@S3lLW4P # h4*A^EA*P~ۄp167Nm34U8zCo/PKhzNLj  @Atensorflow_federated/python/learning/framework/optimizer_utils.py[ms_?<ڤn݉;&v\v(%(B!HJe+ԓ,X,.tĮz۔eޞ2fKDds] hx+rvٵK٨dr49bߔ] Y .<̛}*e&,̫W?؊oY-[)$JŊL리[xZgdgLVʽV&$+~*vPKSpl: $-XUܒs$I8ʹcײޮdҶ[WXov ʰ Tk1W2Uڵe^9Џ I-T.@$l _l>'n2d=ۻ]wm4A{N0aNNR1DŽ@WRDU ՟ާ4$zFEcѫM}tj"Y.`$5(qsI&@U 2 GK>o/v(tVhc؀Dfț?#lH=8`x] pd p ,0`- WNZ+fKXӽ[4'?-5A)H7 .@0h5Ld (DX+% ͂bfj%^{(ZxnVt;MU%A )hz4  iNkJ.LR#97ljGi p22nh&ת0c_vARY 3 [xu%R*hm:j4Э*3=-1c5@ ӈ]lE Z8A )nQiaܜ%L<]K>3=<<)#)8̍JSSl+48HNwa.q-zQ&:*P@l@x!?B` e̐lN svICc^?+S3V~%7KЁ0pЁpU'4 Љ]bIf1,012${A6%P nM ^;roL/pgs?XƔjBړ5K{BTsD- \bIXOaAhվVy6*GB%p/<JpGxpgy b#HO`G9.V6c=ER풐^KСrL*ZCdtp{E3_\#Qp8Jٔ7-FkM5P ZZw-jB|pccSv̈́=ǁ3#$߯P];GwuĻV.^^\Jq#ݻK2\fZ`4Ӱ"1%־<&`cRHDcLL Li:+CؑMV|ѩjssTiCƗ~lQ`/o;z?G6A̪ .P VP1JDUћ)2( $b(Q:#v`ۭV[]`bT2f\N12Z ]t`w(-3B?ܽߜዳ/Mq8-DH@אָƼk%h7"k<;\sĮrA:YX[-ij1(*T*-E ޹ LO{DlD".QR ջDwC8fAQ[At| 0n834"`߻Icr3#fNj=\E*b#au#MCDYU#:؀xcoIYL\q#8hMc%:B@+2q/cSj[lNy\B<9@66ȉhi-6DX|-#}KwɁ,d#a4?/FzP"Hĥ-k&gX $Fqՙ[DIJl;Yݭ~÷*8Wɲ)*|k;6+WZ5AuFO^f=u% Nm t*@*ޞߞBm~6Jɥɫ}9L׸;Vg{hn >5Ca=j[a@ᬲ`x4e{"S $C‡F67^K__~TsIX8ݪpMxH0/+DȾ;\ E QK[uG ҈$ǓClՒ#G~LҡQ|>HU e > B4;ԑ}i | xx Ik:3H0Ȃ4']UďVo];D7gc7|i`ˡt8x~L5 Fd /xK:y@?V2Ij@[-Ox N\8AF7Bz-]'шqpzC~IEW\x~)2~. #k|oJ;3͹]I+c:A{˾VE|SJ~e|Fbm{6v<ԝ3ՐÜW䱮 Em_ۄN NU)_إk*ĢlΛ]`H K-?,=\_nbҕyIWPYS4;L% G-~myM6#\G7W}|gJ(ct 1}^ܨ S6`mݶB˵.5k<֜hֱ:kDRpA\S LllR.5(yi27ѭWAْnaJ Vb8={0LG+tk:KBiuw @܈<|nNeR :S֢IMڄtW{ Y 1{/3)ƴ3j/kr}D)A8v 𭖍tofa6gGotPO^vE.ލ8?oPTPz9K=k6[xb|-" E4`+xW; })2QBrbHz,w;^4q޽unɹp 8Y>q {{Q}L0Iv%=P_r4i>|$@|"&Q}m6g('+ׇ]Av1(~4$b1dd D:pm-on>>LjS`W=n3}3neթEJ=:R0_ڙ9Cs4VAUF6y3 /By Ss-cs2Tw8m_e^_O~޴ ۂ.t}5b;v3A'䏭`\Lw`;QP]|22g\j/̊'Z QF澊.WdI[#D"R2-x]a 3w?Gx 3l /F;13(d#"Ѱ[z;. TMƣgb3~g E'h[X5{_08m^$xL - LюtyU;)Ҙ L#^dx5mO=Jw' \nBud;7ыQ6_4iJl5[ec\o\1o'4aP\*V)h1[Y!F -:*9 24˭{Mʛj;ҋx}ʧ<}w8-3ғs^!FLćcN yΡ峠_]Cy\c ?qؗ\5/NϾ|kK6!WLPY };\&&Gu &jxͫ"f+O%}sߙS hܙq;#3 f00isz8XGR]2|p `n'ܧcsVm{,UtO[B:-s5ZF#JU! 9g:?%1^QezgN|Vۃt3y<ʁ"c›hO'f_\f #Ƈl6t;;'N>́ݑ 8HZ\_\z3x^/W\y ńW9D˕6G)U]>Gt܃C"(,YM [Hxeߙw =#on1C&{Yo3Ks^wgnڕrl5*=abF1PKhzNfB/m`2tensorflow_federated/python/simulation/__init__.pyTj@+҂+@iAc") F򂴻EwV:3y;iY~2lr.Z=+. N%pWK%2I,: ܥa{&2tPK4RA;JJAzف AW 7|@(xtHj#mitӫdvL/>έj9{-6 *E2[1 #VTi,zz^7}X~ aB#NtwIv.Yrf<ɒՒO 3Y'ࣱ^?Gi)  rKY˒RM/F?Ut5˫$Ac俦 C?G/-*۫~ŖɮoCAmuy^[sߏpeJ>H/RGU)wl4@;?)̆w@E( r7*MМ#oB{9o͏.-Icȗ;! x0:~cAoۮcKhPyPenr :a6rԙ}esq]~'PKhzNUJ 5tensorflow_federated/python/simulation/client_data.pyVMs6W{FӜ:%?&rRɉȥXv촇jcX}vc"7?4i[w]sNh؅u>ώcK`3اCV wv^[Co7t"G@XێjM<B{u%.F+S2tXD7=hЗ΂}zߎToB{~vZrϚd>.Ɠ8diXgkR-jZu掱^9:cTg]x =o|)CG &G~8M<~4x:-]܌/Go4_F1r7|:Zȕ$m@m!rk]".3ԜinC-RMzPA(<;:BgN5-|Ońip#J%*$^/&bY6{"*Q,vJg.c` gK0]<ѥds`WtK1g؇Df;[=7\]{_"SlJYd,VZ#ZϠYBDaM)DX)j&n('ڴ]"miwAz.}4˓ _Zmc=vvIEQws\"* 5xY(VM)Dl^n|+ND1ɗHωgD&IPISPM:گ-+t<&xDBDvBo'PKF"3@eH+BHPl=VPZ꼍w(j?[H`GpG"Bӓ} u.U+W(z{Zۦ'C7 vc#qoWڭٛvz[vkT|ȃ,=PM'JߑIA7ӫA X}z?i@3&A9_H'8}lױ'cʀ/>'k*)rfȑ)| H5.ւ)=K"9s62;9ܵHC6Jjc,%CѧZ3f@bO境DQ5;ʻArny\u yx/N4`]/xԝ˨a|/,kDrlxٿ5tmb}@+CRs*\<ȅw1LCr"!҃}>HG5Nz9F^3Vq\كpKSSIFmW^])P e\ߙGePKhzN,z Ctensorflow_federated/python/simulation/file_per_user_client_data.pyV[o6~ׯ8pjiP`nl E1ȴDYldR#ưsHʒS9&; TbSXxscX\oJq,`RBiGg)i-,*M*p3\$/`Hp5-ۃTjф0ʂmU &S;a &A9PkP|0Oamuy~bJoK/iϮ׈˒U *5,";-1dX-ֵ=V `dMm|-_§d]/nrv;_70?f8 o&RPyFI[p~ Wx*rb\rS zZb8Pqi^VJYw]Pq4 folBYSf5R k8ҒbZm!I֚' Wڒ*1K}J,OeJ(+~+fÍuӐ406$o$8$2*bmnc >lm]5K\a^Vu1㤶4Q  mqwq{<FXټ#23sYa*OsmhFE<#GɊLФ$ϓQsxR$^&A"3]sLGb$Kr;W؏Vש%_yLx qu \W&n${NұKeai-Мa>ui5ph]M\ 2w{-va7EzEHTpʚ_kU Ь`[c{$3ʂ̦F4{䴨qҺȩ;đd%;-&7ͪb-IX]IEk8| ş`_Vu1AwoTLN+J+3"qB=uZEjui#KV:}~q;dU]dBci0m<˛;*ji]-,PnUՙu $,5"41r?z=Еd[q* qiG^1#LE0CtN9@"UzNhMz!a ^gw/lYK#o 6]퇉P[x᥆K֝MdDii!*!/Hqnz\6r軨C(L뇺D cf}c9l*SΓ@.# :LO G 1PKhzNm :tensorflow_federated/python/simulation/hdf5_client_data.pyVoF~#LzRҐPp )bmrCw~77.dUn69TPxO=2/?bs[ SsE*lRH xe0%(M<*@|9L}m4Cq7Y|.nts3.&sl:,&)=]h ~L! qEs,~-Zt xBuyr\>*P/,aƝ** ]k,XHu^Ҍazk682VZ "&o[to+KCebzq"@wgY}y8EdVLć8 %$2]2|8&'|] c-N[6׆ F#b[shIк':{ԭ,MBrYkR[MG= ]Xh4x"`M ◑P@d](M%Q+7^9g],*=${=ɸAWů,I4= e(QH,&sP@L =c;x:X–H.WU *+F,XuϷ<qS/cBe!2nڭ`˿F|r9of_w,;{iqQd!iv6Un\ RQ(pvG=Hgns>kٝ/]۬G3Jͥ[Q랃NBZF -#cScB+!A7:)X'1M@SdC[j`a5z "].gɸһ5BJ%Cr7hZ[RT -i !tJ5 )=͜T.=9UG=V*_{;1 bIG&m]c]h}~;, PKhzNهBtensorflow_federated/python/simulation/transforming_client_data.pyW]oF}ׯ 2zk` 8@(YbD);3-{ IQEqǹsyFou7jvꛘ֒dey_-4ɜ[kc> 2xT8'y-2'1 U7%E,0m^7{JP UJL֎TEԥU&iڻiԚK' - _ʑpvnhmVeooo_*d/2u'QP&Y-iCbe$Μf[V1Y]0VreQeȗh:=_ǰỏ?ЏOw{~{xX|{DYܽI"Wp#wa82Kye !jՈ~B8TKQi/RmοyT2Nq '86ꌨ,?3 t& iѸ4e8KK$( cbzRr6rx[er2i_/Po. SUw:!iŇ_Q-H' Qb[-ׅv9bhJAVtA{L䑐uI#Y=PERm9g =keO:8 /`hך9vDܩAئ!ď`)JjG(j& - R$gYN1]=5箍A˒)ey<<➼mlo_!_KJV&wEu 2{]Z5zL:dO9zq#sy7 ѐ9Hc.,03"Eܸmhhvaa%fip7UqL&V V+t(pg6^Y ;‥Yφ6YU[ P`m-&vMO#L-:0MԮ=x0$㣈Z cIW7d*QjКPKhzN0#;tensorflow_federated/python/simulation/datasets/__init__.pyn@<_Zinmu54 avwwʩ\찀GǴ%;޸ p:XA8DhTF<|ZUk,;:OFero SOp4=t0ł<"s4-)]" ćl"8[=+Q+[9:P<ρ~\aHH׬IWz_{ݢwONzAY*^0[5qcGLY75ʡTѾ:I9dy _<˗nwݥ]vU˶9@yoj (2l]H s* -G|P [,RM<Xtp^*qi#Ve@|))Ot^  aaІ`C'>5h VII~.s2a x8Y V [>u/u h=\NӔ65_/պ(xszq@1w92xrI8dVzrr7ҫi=q/m +G^\%<+.O~a؆:sɆ(z<XtkzkEA9_SiiGϾ;*Сj ZA#|/:gna]xCd|uRGuOh^> S/Qͭ'Lʈgs ;Ӛz5qRBq=lkvFy %N_PKhzN6Ctensorflow_federated/python/simulation/datasets/emnist/load_data.pyWKo6W 'Xe;.rp7 6bXȔDYҢJRq_JrmO!67ofw^-p\z.9yej-w r-,~wpO&HAq9m+ djBdWmؖV=r];PsiмQ ˬ)prN5ӂH52í0bHjIR4 "yHVJ:QLU -UƤ<,0Q={`]B8zu݅:uk~r-Ѳ6RD Za>SC.Mc_3,xl;ʐD®o0h$8V&IĐ,U$>\scƶ6P7D|-U9 ģk$H΋``F6hPd9m}6!YDmP`%dKtPvxit?a{hGKNo4ZUM. 5swEP2y|WN)Lț%v&Xs_z)o\n`f\jj~ML̺V˜cXuմ<ΖWNɂp"-3=Zh&m|v'b/X#mru|psP:=P\8u:.i*v9UyOpC UH~>aF&Řt2ʂ<q:%' \Q-5RT-CfβSx C*}Evv^X!HP4>@m{Ia$Nm"w a%JꝜڗux-<㘩6}e_eyA;7Fc@^nvj#Z`=ΣFflˣ(* մ2%e (gq[np__uqQy.VK9]B|(6|Hs&D|=PpXSK2ݠ:ޣ7bBAQ+"ʒ4MfVE!3Sz444U@rPUǪgP`Lڟ*k"[yɰDM-l}u$NdAO~f³L[T1H"4MF=9ΒJiiMv_w5=OPKhzNi  Htensorflow_federated/python/simulation/datasets/shakespeare/load_data.pyVMs8+Trdž|ŁG 5*0;5'#lk",$0~_ƐMޖRu'>]d-3"+c";Y2mld 9áYc;K+uFuɠ]o{^l,׎V,J01Xo %y .aj'~.qXsxKOwd~ۅܣ Uei3r%eF]J\{ 01m= H'MNݎ/uUI^_~ydgϳn|9z==`_珷ˆ~TGPB -D,S#|S`*LtX!VZ^Jǝ_TjF DXdEXQ,,[^PL ^r[*>V+5zˢ(-]iDQ>8V+-gWI_;1ElemÂyw~*R nKkX$,<XE^+ ;33 ^{M(c|q32UU[S>3ܱyF%"nlXGyF4z{(UW4$UES1$|>lː[}g*{TAƇ7$X4"]P_0Az"{c#ȥQ=9XY K*J /M6|2Hne 3uKuŖ8 x]8wԣrS_*kT^ul.9tVR*W 12UfTFuFՉV3hۄu BUlMz7rxZ&CJHv =)/4~=gߚȲ$v`:'{Jy ~Ѧa%˃MqQ//,T6PONc:nQ琡?3O;aHWszQ( Tg5왗_n)~qM;x-z.#!9JOǗ|^(\?F2Ǘ'˶SJk4hAҔMA[뭿Q]~KU _{f\2BzTM;=u(c~PKhzN7tensorflow_federated/python/tensorflow_libs/__init__.pyPKhzNFHp|9tensorflow_federated/python/tensorflow_libs/graph_keys.pyuAs0rH24I얉kf I&` V }WM6oJ'p+减H7) -ռ̱D f# ЦcW&Js)*3+K'rZ! ɂkx/vB]Ù(n6 aB憑Qufm鮧ahi3*tΖ삈ݞѠ֠W՚uT06Tjf7\в2SH.%F7Gi D7a%xүC Oj.h@xyQ3G˻ eEK,?Ar#6#/.QFrCrm $0f+*|ĝv'raha=ipy^d YVWe \ˆR{oEoSCy^0Jbxdpί=I %T m}qDіjµWd,E> 9]<c›,Y_k_э ]ĆT;x7B\&8wc4$ǫ̂q-邆 >)Q錢LUzPKhzNkS ;tensorflow_federated/python/tensorflow_libs/tensor_utils.pyXao8_1~j`IlIiyElk{C$._bQpͣ^х.O~a%A6WҕLLiRW+mxjޫ9l0ZxO&M 1ǿMD)<> NW'?5EC.%\*$wsYTru)%mU˴NѺгJZӢoGۿUU7om,l67,߼xws5"s~3YdZu֐(\f& xWixkTeD^T[a$A|xt9L~_G/={ۛ<]2"\a+ Ǐ Q{)XhPYȹZ9/kirl i֪,^ /ZJTvɦ2p2+!)ܯ\Z䪨3ŞE]tc`0zMI$hS:CY6}aT^a4s(A;}b0G×]⸹}#شec@̢G? K~y+.N:փ^`v0?K-T!4ED6HrFv .vzGȫE`'g;+4XtUTB2Rdr$.W9Ͼiꊜ) +]g)S:\ZNZfUL8?ZCLafvh kb/ns+##Oit$jS&9BS<ҵ#gɫHˉ*/jˤlqnXs Vɛ. Vۋ)_‰ l6^x E?뢂ڃ~uĔ~[֏we0,7ҁqgrup~wP^{g|{K>OV,.C>6^>x~L@ 9ᖈXno;k,(z m!lCgq|:S 0Ys C9OV Ʊj9ШKy{1ars FV|+ L2=r$ aT,c T"UL/[U'jيJZዩR 3 E-a0e]=nOQ7)h?4D@9yz{˞3WQo/&OmY^ApT 4[a2%yŴt&c+(<%&/:l+: kc,=4|_>kp<͆tj>9I+?uY1^P—xf![+!sf XIV.K(Z-<8@f9ؿ6~x2_&sv}ί.fw+կ Lj~GRB<25 WDdtVLlpQ6॰d.=aSqtpp"$3S}LinO ^<[c(zJn:dU NHboUGSr% )N(g-B e0l(qR'R޵fV˵5K7 l$|K o+ jeZFu9<9}1Oȕt5>tbv28AQz[(,]\_ή0GlHMXs{ֽA-~1;ǽ( ~_hBZn+mK½6gHyws!XkcjaD/ߙ"Ghs'Sp;vr9 _o7: i$>y.9ۅ}[}fcTԗQ"W(;dޠ%W-7_!v0|ޠLK,ף'ԛ -bѕ Ŀ;ӳ/ WbFƃM|xxz?B2,DΥZ'ݷB?jnR*1IG;~7/yi]a7SxJk޿Vᛮ)j5 GgÄ(WjmXPcdFxJ _ʥV?5N@?N۱j"z C`o0uN=>5PKjzNv# ? -tensorflow_federated-0.3.0.dist-info/METADATAVMs6WlO;|vF3ǎZO;50%3%-:E!o߾}NIOw3zP%vчͤ䂃N\]I*;Qm]#`2#߰D߆i, 6S'P|R3N0d>TmZ0߽,Ӆ˳o3jt~Tjar|@SD sqbbQ2i.#IWQ8kf]ueu*}gǿ.ՙ1095[]'H ]_yS,-ݻp^i[v`zK8k9M嫽J pFَk_ ݻ.+a,ZLP^u_/~9ƫCxs{7n|c0w8:6ЫlbDIH?R/2`{8tmD,Esy0rEir5ޥicqݚqrnbEi::חo\[/Fswvl Cȫct֣)ݚ)c 1@0MGcS|Ezy2B ZHKf ̤ԹYIu V `9F6:؂9/KZLPY=Z&MqTYj_<ѱT4("r27& 7%@%smmiTO@{x5n5w&jy^d3#iY3ٕGa 0qN<>hQbAГqmŗxO|@znA| x1UE⇙ r0m;J1X-[c ZHF`,^, F2davX)UߏvvbH()}D= #q"l>x()mx6/߷g<ܜ8βyn(vqg;TU$15XZ ]ZomH4 l&wSQ("a5c'n6S+ >/-c8..Bݵ-e$im9IHLuf6n?}OEx4-PQfD(OIU #7}0it-"&m"#P4 k5! #]HDfpP<@J_UG{"HݚҦ5-RH*Xnnl:`-z1-@H;t !-_Uc?3FIcT%;'d߸)vi:r¾jo?<KF((/$Btm&A;i%c]aulـ `qέrRމ;K]#!}SVsViPIihgh5QΚFJA/&-J(n]Ż@g9w-BGtyo˲ElѡQ(`YԻثJ#bYSmbU) =`N*amB+ ުOm 8cкBDI:J9t4lH_+r>QaX?([ZFdVZ6x.hͬ܍a/OM'i\Q"f)ԣT'aVgdP`R $jFc?!G QߧqlLFfYTuPx?kU$W%^34F@'M7D.PHO [u@>UG}P~E}KǫrckѻΖcs^<Û06>vˁ1ڌyv^6H8m1_5c{ az24\qd3pZ7Rvv8Ht,5;jؼ FnTQ{A6y<>ӰD;ƚG@p0}P5<'Hn#FM\4uNЫ(µ8-յL ]n*O 0"< Y&Oav[oqZUp 1:6SN.@Oup~55,D|ʞ.Y18)O;m0|'G_{"AtRRX}UܪikM٨z#;PA(u4gb_-ڻGaxg~̘Vypz7嚛̞;*m}CjCãkXɠ*@9A8bGLjWsibc|ǜM>o >To=,FJE> HA]+'f Oo 2Aa1lwŕ,ox/[UbsŝWgYfJTXACu@IV9 G?;ʏg$y<c>-J37rնkb9eFʱH]fݏj!o8ܱ= Ferkj\(WhRk16GXInS\N&*vWVK0<vD |*r'f˜.fb1^p }ə'3z 20$@aycb{p6Ŭonh޶7Am-tKC8E8"j gicXRqœˤaq7K*&m钲:9_'@-PKhzN:! tensorflow_federated/__init__.pyPKhzN&_tensorflow_federated/proto/__init__.pyPKhzN)tensorflow_federated/proto/v0/__init__.pyPKhzN60tensorflow_federated/proto/v0/computation_pb2.pyPKhzN4B'tensorflow_federated/python/__init__.pyPKhzN3ptensorflow_federated/python/common_libs/__init__.pyPKhzNmF}5:tensorflow_federated/python/common_libs/anonymous_tuple.pyPKhzNK;.<7a.tensorflow_federated/python/common_libs/py_typecheck.pyPKhzN,,4tensorflow_federated/python/core/__init__.pyPKhzNg3 06tensorflow_federated/python/core/api/__init__.pyPKhzN89tensorflow_federated/python/core/api/computation_base.pyPKhzN8Tu79<tensorflow_federated/python/core/api/computation_types.pyPKhzNNQB =4Mtensorflow_federated/python/core/api/computations.pyPKhzNpq>2Wtensorflow_federated/python/core/api/intrinsics.pyPKhzN*K02gtensorflow_federated/python/core/api/placements.pyPKhzN8VYT43tensorflow_federated/python/core/impl/value_impl.pyPKhzNGS 4tensorflow_federated/python/core/impl/value_utils.pyPKhzN1$2tensorflow_federated/python/core/utils/__init__.pyPKhzNe;'tensorflow_federated/python/core/utils/computation_utils.pyPKhzN?phT>{tensorflow_federated/python/core/utils/tf_computation_utils.pyPKhzNc6;0+tensorflow_federated/python/learning/__init__.pyPKhzNOҕtH `;Ptensorflow_federated/python/learning/federated_averaging.pyPKhzNgX< tensorflow_federated/python/learning/federated_evaluation.pyPKhzN5 5tensorflow_federated/python/learning/federated_sgd.pyPKhzN^!o !-tensorflow_federated/python/learning/model.pyPKhzN1t@P3+tensorflow_federated/python/learning/model_utils.pyPKhzN