PK!pypfopt/__init__.pyPK!Tlyյpypfopt/base_optimizer.pyXm_1uT b.M|Hחh]THjwE$ۗ ^83gh^ygTgE+~ZU 7`qQ4z-0YwɫZr XӀd6"^–@hfa*YiOqh gۺV(pAH \rh=áDvheV5=m%m 0Og.p +'k*Zzo'3 CmzSBx"NZa NHawPQx) ݶWÒ/v} أZ As.D(] ɿyjK!n/6#݄'NY Zq8Lwuӱ1%1ycṴ"Hh`UwoE;t\BFv'E5Fh^3#,K=o<#ETkr4ua4D-d1aaSZl=m{c1XQ:e>G#CM;R9J̶l0G>tR=ν^w p&&GNr{c ]򘋻=Ҙlb9Js0iuu `ҌizZa%g D}\X_M}uCLf9çr\أO4<y93flӪ} ]W"@4@](e{lg薱5/ՉWOi20 uл ߛ.+aR:݆1; d9m_T9eFʬRpB4#dD0eY拲0hpZ-di2*ìt$k 2LX:ёԐh6)}ś|=ѕ]˥WZt9Eј,_ЋÜwpz@[-^GAr #AƽAs6u{_޿YHȿ=Р&T Tz_!3Y9wG.yI 5(>(6v{nj}")|wb:#"@8Q<\κelS3b%?ݞG@|ǵ  c5"(ZYvLjjbC8ƩCkߙߠ9dj>a]4Jk{t]Y240+\67捻{Jx,_0n_#649wipBѕ'.q̞s573~^w@F4 3 F-!% i;#' 95MDL $m+>MJs[ů$T`䓉/FTb8.t:?IdXv.-:z}A_ JbdX\ؒ$˪3j§`݈c˼VمxZJZCڞ4%Ϋ2ms_M?v[dR#s/Y:y<đ368H. |8|r]:Ƶ=mm .&b''i Bi*WPK!6:pypfopt/cla.pyks6FPҥNTw.nNgһNkGQ@P$M7o Anq$b7vl6;ycÇ$>}69#XEjkcUvǓɖLC4'RY"Mŋ'x} F^^V9۳fI@~"o*hZZzSrEy'3jh1yuғL{2'z(HL=wf(1yuGVUERFȮbc5K:Q+sZ,rcGQp`9:] AXg*8-FltXZk@ .]A[f/uOgTBjiJRi IT`@[PN<[Lɔt-8vd>޺#4HYp(ZJ[cc\x+:@P5T :׌+eFA."ԟ8d,N c tsi9v gxXzZh,/KտKd!9헗0<,uh\7Kdg_L z0Ȗo{QkyTJ"{OtF7 Z/n"o}Wl; OSg:._cyCO2ah@ H7U75/ w<:c'm7p4F3LN&d:>( Aրch)lq,qs`7&pmQ{O',(d2E( 5 !{RբInJ U0T.Z2l /wlLYQC}7Bn&%"R)R:\Xxc1KR3rwM⏕* h@% rv<{ㄤ 2HC#J ]+f!yEqr1yծc%Չ :9Kt:d rhjN#/!ߑKn̑mQρdCLkh$<|jr\BVQXzmU9}Kum"B5[ghLzJ Qqt>E$`^ aWC=rR^ ^@%:yЧ_P cfWGoC~#\Lz[VR$Y6`p!B5dp(Pc$eF˷ x+aYHE~yE΀ɉ@on#J~S'h<& J]Ncb|RNBzlx{t45e:rvs5en'![w욼2ʂUO$2I`A$hG7}ZbJԷ l:з:ym'À۱aS^T?؁۲gbd>~}ۡ_l)p*n7Jn2Wg\clʺE`J3ԞheSk“M֤G=<>״>s5 n?5S.Ӱ} ig"rvP5~h(Y" Z0^W钹E|Gx}_Lw5րaNx_A熲Ǫw 39 ͅ|jEѨ}ܣYM05 P4Gt6"Up? z6L@p[ c; q >wp jSx߮F}d^ݼ.چ b;{3u[nuN"uhO70}gOL6wb#p#t=wtmxm%yjo#fuXmI &b0 P@%0ȭ<,v+v 

^ÿ6J0"ݢX@^v{9sSEج\L0ǶXa5 q~޸"tD?xATum fSgY7`_A_:`N>]"th%i?S2pVԛLE͙O(?\.?. 5 o8D11ۢZZbEDlw-v={xJ]S6'\]Rh?+:g'-"tWT0nt96'@1fIޤm[m9ਙb)܏+y2J=p&sk[w(Zk\>4do#OXQ8O>3biB~eQ;"Of:8--+{n?kG|}]|8W&:M-4V=-:Q{Hw; p;m~cs}bD 4u ׫US_6Å,"p3k9|EI8w:t+Gb*p8I+$L!xmtϺʍpnL>П[UY}61iq!{  Eq}`*p_PH+&F&S(JP=#şJg7ڬdDhV~1>9"7hY@1fw+0L٫CHds@u&.K@ C_= >'?$@ JB$I(xa]U5sm$_40e~u(/;Z菛C>s'}[LPXNKrֈ}zgxicyZ]5& d:YP bWVlŌ2-;R8d5&`D~UlJu䧏\Kk|E ]!tRZ%͆``@s"oRhq['CK0,R-u@i:QHh`5HQ҇mi!ay p=>hhmdCdw !J|ÄO#g#a a#+[E ܔCcX9"UlP=+ߥ2x"KYT=DpFscLՏ2JaG7osT>-&IKzbLL"S#\mbcf"6(?7G=i.Zt6^˫{.q xhFC}Bo4@k.f JLGD߬\5L~P=x9{neY:ݓq3j:OF+ҝ>;ˀp@' i-=]5CN !f7_h ʥ2h^Ap,6Tn팅5jlO$p8hJIO-Š.4b`-Ks,b"^f_r,'`^%NSi0ΜP$S&/-S;~Wӻ&fW[CNlȆWg7F-H{BbCv>N=ƽMs` c`w>$@crh[*>>O Oֈ|3!;{I u151;AcWV#JW P~uo`&9仗.F"mƼUseÿQ7W94w XϠu[V$' ZiMmR2 緦KE'z鑳Rq/Ã`\1Mכ&MC t>=, ܪ̲wˁ' ^X=3x3y`hMd`ӿ! oU)^ pC9tE,PƼX/'͋UJ`" boSX5ɉEٌddG bN퐄 ݰ /~X@hJ3H{({}bAQDю!;$)L)NL4h|HQm )(xWYQwGnSN6xlƬSrNj[8-Z݉)qo'ct6ozb`XI0m;Pa?ݣ]ŋԣmM6He˒:D:?n4(.Ih~Sh`HH(uylxwc}MѸU'J%n&=GNbHn5cBv``]/\v&&ڴLyAYA} = ayE'p0Q[!MdlŪ}6grBJuriFCJ*VxHt*I70#ó/@XDSr'Qwjٌ@m@ ctUAΡ.KIO6(+|؟Q&:vf=Mp쑁Wc` >7CS( -i?aאG1KJyQVuylHޮriVv:Vۗ`ĿP t!4 r=Y~hvAq[#JnNZ?7R ӡ*D̡b y G8^%D~sk\KBp$sc=1W]`LKGr!t56D<'.'DkY'޳%ly9@ hѾvkdcΛ=8XɷS.}y'(vqZTA~صpeȾ:3:cV| __X)у p! @o%+"]s#Yf?iflvs#6Y <噞ڢ"#,x8'8{:O+%#pi:Ug`627;B5ُZ/GL^ Y^"-+Oc`!x"n6/>|a=d0xP&<: V]Kwb+ cX+nӬ{fzg<` HfKc 8]R\hȒ@9l@I,pGCXHpLYͷ7?| Y 9so[[S 2*C!.N@6&$n#x:NfT $3ʫ^4]VyHbLI՗qϕi ne$qcKS ;H[8{A9ἄnLk'2 2*y  Aj ;_wROA˻Ix`25[:MO>d#wjŷ(?hD]2h2BT@L4 ޙ1jF gY?%N91LB n 7\i05xӱq}r ™?2/3!Z ׁh9Z`#G AcY( o0{W2I'+JDm@"%<5}v11{X!e*$CkX13~p L"#ݣN_dě=t˶GyY;<uY^h>U"hWlN g`"jg!}^n%NtOc:;}?֒_3t0ՉtNMt =q:5 :`ώ2]/oj/ 'lڊ;;\?>ě.kXaui֦fZEw{MoOt6lG ')װa'btSePK!I wR pypfopt/expected_returns.pyV6+BV"mri P6WYl$R!u}CRZ]@əfl6=Á ?h<}Ԋfm ެe("," .kqu 텄Y;j3b$iiiZvBd%ů!y? BI=L%݊Qط砎9{h,зEq!9m(}m/͑1`2LɑڂbdGHh [ ;$D֍ HF\9vٓgt:oA8Ո!0H dD Y ΥC;x̳~K,9zNjW<ۨ&Ys-xH{Y8Ig/3̧*BQwΎ$J|T<%~}^ Rm\YX w: ƻy#BZɴVPEȥq&au(3Q\'+,-X81Z|ac"rSC 5MA( Q Vb rw l_rn @jNF?ڃNqsR<5\ ӑ>H]{0nxND$ ռu) <ʢ9$fSzߘaoA yk X(%՚|?-i ;B63u*Al`h7Na^EN{޻IFGRBz'q*S՜hwu(yMp4jݟ!.8q+ၛ]ES0'@^=UײDqQ,&+V(eTnT71Dбu(Q[7PS:l2S%l^5?K$x6+p8~KnFI r+dh/B Nhdq=Τ( pzU2@ 0#Pq?{heF衒oipKQGlN-"=$Op';xjнGje.H`Ed9ARah^30Kஃ~|n{eZncr0a[D9zEmQЂ&lY{Tg:Wwΰz>QgU>p 0 rK9Э,4| ?m#%3QXyqݫFl}1hꂿ}i c]65bM댂3t mP+5}GiuaFڡSEs "U4]^ŵ7`==#o:giPps5^|.{Ns= R(rf eM[YgOK`ÚJx*{x<^! ˽ W;;/oA`Ӳ0W[T+mzɋ&ߝlMTCƢ7>}gOY:z^~Φ mGɘ4LT*eHo7RLJt7vym&as@˜F OН gnO7/\th=YaiUPQJ^9tv?'vtZnjNz(؁Cp7}ԻCvmjۏr/X!~ᩂ ,'hOun PK!(rhR73f$y(%Vṽ6ZQeZK9WdwAU -~F.RC-tPIZ>FFJYt]%Ci 1a/GJ8jk`cHTþ;LJ$>Wc֬ SyIN>؂rP]>C`<x#G56ZJl@4,Ch4w`f{ek#*Hᢪ. Ve@^NGBPnl H=5et'*e%SW,I~0o GO3$ VclheR[pv|Y̓7BqȆ,S'F,})N^XƺVሯ!~ҺA9N dHuKM$|'IRM}xmzftƛ@AQ/ۦ3ǯ% -}#j@fɹkJR:ںi8m=kn(jX btc17umLZQJs/s林NUӂ aU-Bl}}Nw$^P^i*9LeоZWL3mfPbz㧹` 8ol%&VaƐ:% *E ȼ4*P\00Ɉ#JiWiu]Jԝ{t*9MOTsL+qA.WP޼Ɨ7j7 /x|bz[w>XLP5g<#E^eFb@u>>~x eⰆBג!'W̯~p>dEx쨮!-PgRW~|ú=P hL.No4؃ZyyF#>+,_ZA]]!m[G{OZ.1q Fӊ:{hxoԌDc%LUNhR'9?;2\|RAQ[@2Q-ye@Moɫ3Nzzl_E _lvr5?`kkB$:~!#UiJBӂDi[(+) vRT#Tc*溄1%#-^/OB4D܃m|mxY*yU Dڃhk%a3˄\7!i}ˢK~8i hu?G(USȑ#5/E~ɑt 0pgyքu >,mUVUͼ6AC6_ǖGI !W$ɘfתZ p5iLyaAٹBUIHQr~SPel( /4}swYU (N:i  ZAu"D;w{TJztC.k /TROHhihxKh'6+{&[Z(0- g}\:ԴGsJVa[!hvr{p#; xSrqsйX 4:4DlGr ݱ_-ɋbwXO"qH:@]ƨ*Y JI45ow$2b?`eG.cj]5a3,jYIc>L~C2xRBK~hg0e>-mx@n_0&Q7 kE=__dRXHsX!#Y? Mc7 mAYϡtds%]Al|=L1Ͻ' !i)9BC~ (5~酪bY܏_>C :un_jk-D2\BjyKmUGI dI1b!HGXqk M!ۡy<˛FOlNμ7W.8h#݉".Bs3I.'i z!Xs%P 0%u0`!׆܁\Q_ڊBp QdOo;.GO ?-!TЙF &-JG#|5js0&H^lC,0ψɲsbv̵7\NV# 6 UB'[XFJA\΋ŗ;K% ze.ּ~s|ko SLux z"q(Q_b'pWC?et$= QQfnn_~&顡6u(iY>`Q#Pw JcݨRc]oyAwx2JM'9k\趿61:c{-+P8 {8;4 #8TR1_Xpgw:\ܚ *üS\x=-ta#n7$-eRU# -lʰtDeG[EOOD﮼meZ1,1Ws>φLK52~=6*߷LhG0D܀M6AmSPK!}WKz5*pyportfolioopt-0.4.1.dist-info/LICENSE.txt]RK0W8Jqz3Y%,C\٦h}gVB<5RCn;3Xί#|(7>zoP>ډ lxohpMA; n[;-tHp2!^[op6wdF;xEsX<$iGf'[ 6#;u' oў읁CK@3큾fuGzKKbgB>>9#Cg~@=@N:.~BJ3#.Rnݕun-9 j܎!Z@S+ZU/2,xE[FN(^T+~2K@hEK5Y&3,q, TW@w()+JKKKJ0W5WZ+7–\)d(b >Y<'*7^>HzZú3ť@e|Js.2^g1oUv-D|UI6Ҫ T}u+W@V*FqF5^)n(5s #VCdmPK!H^lUU$pyportfolioopt-0.4.1.dist-info/WHEEL A н#Z D޾Ph>Y8TEU.t. f4=4h0k:zbaPf>PK!H{dA'pyportfolioopt-0.4.1.dist-info/METADATA[vƕOQ##Ij1dIQFۡI&:9$Kɜyyy[qbP˭|w˷Ӹԕ5e1S]ZoeU/̔庞t3KSEbLuظe lUb2:^bU]l:]ẓ̧U9UMkS|?n1.,}}:ݔUjgj!;:pG"G?7qQ.' fDREZz+Gc͔#rD2ߗDZ''Tچf3A0a?y֚8G}rVnCghTe!S1yY2ӣ)ZNq{sbP)6x8=VU_*/LD~-y{VM\,Hs_׺)qkk3H^ʢMP*s.nDuXdۻyţ;x|ߍVk  Hi֎+kQ5F)=tE3q&hl=Sq]&T7|kyY,k_-xWY\^m볶 V;OFE7LB njc61׏WO'o/eP :TCwT82)f1i7;ҚGmʬIFv zUi)&*̲8=(ɗjc@o{wa:9NT\&f<<0]?j5V/RU=&rj9:G$c +T8>ӥz-|+\J"{N'{n?L_]f j#(2א6x[6 ۲-fm)|)C,tS~-+;żaۻml`/-LXh{;ܝlP_,oA1߂޺/ _W)6$wsL#7?`d2VP>PmU13Mȶ;m"Jč&_k 3`a¾d*JF(edjiBo.ޞZؚlgHąk *+5/ql]4qKV@buM&\i|ԶlT\iлh4vDڰ"~UVU&uA?p )%ZWq 0Bح^!zPfu{j \ %pTꊼxB5l{8'[p ƬeeĪ2"Ԍxaf ArR8)iO0t_vjwKLBDːPV< ?NS4R W&+\E>݉ \5>$s [l=q)tKoi $Te E؎r+];8XGB? Ǽ`Vڧkp0"+d`f27_dwS)Sەrveح +CRN} ^[1\pF;!? dNR^ƕa6O[~NCѰmKHj4-h؏:~HXgWqvܡiOFTׇ0܆V jm~fv3eד2NxMdA$+p}+E}'ӕM次 Nq5pɀmAL&dmeW@Sb_5bO" hr.u]mʷ*iPXiFH}ȶE4:[oԪY;gcolj:&I8wU5JYizm Njʄ$)Rd` "7dKqf̠e; L&"Md)‚ M1%XQ1Jo \$TA u͈J$P*\Ρ[΂(mۣ;KÆ%㭵~ډiLJ1k-l%~~:YTeaB}a׼hF Yߵwg<0XVȫmt@D-gܹXNg2F>c1V ՟ϒ2C{><Β!OGB!Q_{IހF3?ԏ喇G\?r[K ;_%Bchw&Pw'U9hfG-"qfe$@H͐vq+Swqni ;yipvY |v*UŨ~?gz޿ueO|yrȑ'?zߟ?;3?o΍|w{z~w_g_^ ^ϞB񇗎<> ?|'.yӫz vr/K(LÃo'^yN<3u=|d#y¡2ut]SXGExLr~EP 0]kC%e}.x7HIl.{GO,ޥYsǢ'?o6v  VV|c_!mZmX aI|9]J|hUbk⢊8!-ym(e7kۆ)ӶUqRӞ>^åD⻬[0uJΙ';.6YpKl> 3$R;RRcUnWv“Y.3!*i7xyg:Ŭ] JpGx (j8 [P^" MWJΘ;|傷9d#zـmVV *KVvޕtsZaו^uZz@/CnL  JyCoyGcPHXfjђyO3BR賮#* Q| _0. ݑX 3܋w/8!$;y|\mۗ Ơ:Bz%j+q_gDb !1H@Z|\M\?6g.,o1Ȭ]IqfK U"VV$濭!%exZqC s;e6 V4plvJ}j>0ƈ6j!310)F2E~%5?W}WQtn/DVE_Es&=@?ǒVUYZyW2nNwz<&-}쎃cNCA9bZ)|\[ho9#.I1KgX jNW du'YӈQxpi>\v&H@j[_60Zց6o,>q%5YTZ{HwPq+L-:Ȯw7<z.gD^mŸ~䉼$<揝מTW绤@ϞD(uC1V7\[?f.uvF]Dq$ԣ3{"Tqcz0K&+xIVG\2&D&iǛN{3ƿSKJuȫo۴7e-W@Ӫ ^q|2 .ݶ|~l9Ԏʳ_{3h'<A[ E^`q]]M,\(yˊċN]Kix@;&]-< =0XҗZ(Sk fm=4~ (% 0ضuYQyP}"!Dٗf lψP/q&;ڏ3OiF~80s(%`8N3ќ(JMśmҔZE/6uI~W^d{@i+e76Bq^ >23KѿVUm u |'s$iN,t$gy|Kls"S8N&l8.Npq&[$HOqHKc$\M%2ע44QYI u*Ԫ݁9EgVn(с襷kLe#ud L:0}A,3c\;&R;:Zc.e X6' ޮ+ {S\ *HPj>@;TYSU;0/YPI t6S]]3c+Bz4U9C)w4U>cbw[hPYBdVY%Ų^Y'\*,K{lzp KOz8f  Ⴤ8p$]k,8 vf42W:' an-_42 '16iܲ~W.~g\SIU׉ ڄUvEG 3p<7lu( DKi#uO8.$Qn\$˞O@oMn[ztw_ǡM%t }D'&J-J:@x'w29S{n~YO˿/;:g9]wWv37B߲udEK&a8P6)0)F2"4KWՋ5R߬*r[:ݹȹ* _BR d$קv|w֟\GIۄU%!,p`42Ư|+pm^%./. #ZɎX'ٮÉ&, ̈́ n#gmfyA_8Gr)UGs``WOXyw){kfl#LL!ipJWT.oal4^o"to 3aw;V=yC?{8wGiJƞߝ~w<{@PK!HmEl%pyportfolioopt-0.4.1.dist-info/RECORD˶:~} X%j"NBA3,uziͬR?'IdK"/i^}U3?a~u YٚC&NmDžx{p?)| Ezrua | E~2*-tUŷ`(X˺Q p6{yYH$ٯ7sFncWN(l ]*iRKGgE Iٿ*@RE].yB;QW⪪E;F;DW(Ws }w -4.$lׁHJWQSׄΝwzь!~6++¥a9V!v}28AI+?$?{+2PNgPK!pypfopt/__init__.pyPK!Tlyյ3pypfopt/base_optimizer.pyPK!6:pypfopt/cla.pyPK!6[x5 .1pypfopt/discrete_allocation.pyPK!E: ,$pypfopt/efficient_frontier.pyPK!I wR .pypfopt/expected_returns.pyPK!1U#I2pypfopt/hierarchical_risk_parity.pyPK!pypfopt/risk_models.pyPK!2s Kpypfopt/value_at_risk.pyPK!}WKz5*Ppyportfolioopt-0.4.1.dist-info/LICENSE.txtPK!H^lUU$ASpyportfolioopt-0.4.1.dist-info/WHEELPK!H{dA'Spyportfolioopt-0.4.1.dist-info/METADATAPK!HmEl%9mpyportfolioopt-0.4.1.dist-info/RECORDPKUp