From bf54c4ad748e4e9f73d444d4d8cb8870399feebb Mon Sep 17 00:00:00 2001 From: Andrii Kulian Date: Wed, 3 Nov 2021 19:07:00 -0700 Subject: [PATCH] Allow checking if an activity is organized Adds an interal method to check if an activity is being organized by any process. This can be used by WM Jetpack Extensions APIs to inform apps about their activities being embedded. Bug: 204399167 Test: Manual, using demo app Change-Id: I3a0ad021ad43c97bf9b92df05e9858aae143f62b --- .../ITaskFragmentOrganizerController.aidl | 6 +++++ .../android/window/TaskFragmentOrganizer.java | 13 ++++++++++ .../extensions/embedding/SplitController.java | 8 ++++++ .../Jetpack/window-extensions-release.aar | Bin 19183 -> 19210 bytes .../wm/TaskFragmentOrganizerController.java | 23 ++++++++++++++++++ 5 files changed, 50 insertions(+) diff --git a/core/java/android/window/ITaskFragmentOrganizerController.aidl b/core/java/android/window/ITaskFragmentOrganizerController.aidl index 1ad0452dd837c..4399207fcc27a 100644 --- a/core/java/android/window/ITaskFragmentOrganizerController.aidl +++ b/core/java/android/window/ITaskFragmentOrganizerController.aidl @@ -44,4 +44,10 @@ interface ITaskFragmentOrganizerController { * Unregisters remote animations per transition type for the organizer. */ void unregisterRemoteAnimations(in ITaskFragmentOrganizer organizer); + + /** + * Checks if an activity organized by a {@link android.window.TaskFragmentOrganizer} and + * only occupies a portion of Task bounds. + */ + boolean isActivityEmbedded(in IBinder activityToken); } diff --git a/core/java/android/window/TaskFragmentOrganizer.java b/core/java/android/window/TaskFragmentOrganizer.java index 7e7d37083b5b7..9c2fde04e4d2d 100644 --- a/core/java/android/window/TaskFragmentOrganizer.java +++ b/core/java/android/window/TaskFragmentOrganizer.java @@ -216,4 +216,17 @@ public class TaskFragmentOrganizer extends WindowOrganizer { return null; } } + + /** + * Checks if an activity organized by a {@link android.window.TaskFragmentOrganizer} and + * only occupies a portion of Task bounds. + * @hide + */ + public boolean isActivityEmbedded(@NonNull IBinder activityToken) { + try { + return getController().isActivityEmbedded(activityToken); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java index fe6c7ba3b24c9..d2299ebb11b46 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java @@ -858,4 +858,12 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen launchingContainer.getTaskFragmentToken()); } } + + /** + * Checks if an activity is embedded and its presentation is customized by a + * {@link android.window.TaskFragmentOrganizer} to only occupy a portion of Task bounds. + */ + public boolean isActivityEmbedded(@NonNull Activity activity) { + return mPresenter.isActivityEmbedded(activity.getActivityToken()); + } } diff --git a/libs/WindowManager/Jetpack/window-extensions-release.aar b/libs/WindowManager/Jetpack/window-extensions-release.aar index d6678bf9b3205b06490dc0dbac056fad5ba81b69..f54ab08d8a8a675bcb774c4967a9691d90a21988 100644 GIT binary patch delta 16560 zcmV(tKv&D0k9qie<7t*GRr>z0B1@701E&B0Ap-nb8}^LE^1+Nt$YP=oJ*3X zm>Dc)W@ct)W+sc7nVBVv!D42~VrFJ$mc`8H*_qjQ&%3v`^LGD^j;`#Es4qG*>dVZk z%#xP^1_Ai>KmZUx5CBcy93c1qk_Z3+0Qi4>8rT>+*jgC7(YadKe;C`k(wVq9nbsHU&;)Bnm_j$CCcseCko-nQ=hj`Gv71#9P3*T3S$#~s*rD88M zJ!{#34CF5nCSb0nHxUQ#@s_v&J^h&)E{yb7Bm7`J7F<7 zMzK>)R_Pwhi<0Dh^3{ursL-=sk7^94yq&Sh@kBGK;ZejIR^)}SY^q~+FFI*-Ki0wn zyIq8CkZ%@_vC_nuEEO(0=@zy_e;j%^?n>=`=mg3Bf6!3-&Vmye$0;8IUd|>~Pw4(3 zFl3;&F3IIL`gL+4jx2NM4G-9WTmx}~hNJ5YR%FW<1D#br2gciETYkM@0rV$a%})Dr z81;aa3Gk&})7|rnN!^HN&eiE4UHRDaF!;-JTB{NYCO~+#9tMzAPCJ-#~<6DX1`D%aRv=EiQ>EXoq99G_I4xbHR`(S4v)I*v1 z!qvP0;8dBL?f`ViC>BAm`o%8qPt;Q% zN6MIpGh!TQ;WeY15~VO~RGopaSiapG{t1E1FxJgXilq-Hfy1PnPZ{fT7&*6KWhD&l zf1_S(`wpi*$r6}Dl2}k73@4edh9^py95A6oiL$bs>AP{S^BNG2D~Jl%ioy;g#NVx$ zGT(=w8Le!CV91zmV1>%hth?i91Z7`47~m9|@bI-j+s;w+OV)-PQ#7=AJHgsU=VExM zIF<*AJXuvi7kQhSV#t>3R5Wf8BRC2je*=3TO|LNvxv*-t&~*(x&oB4WOnv$;=>BZo zavzQ?mtWR>{bgN||Ju4H)`lj=#uheabOJ_B7A_V}?jryEM#$FM&erA^mHpk)(eg5K zKnw_3Kmprm_-IB^xZK?Xy6rSG2m$dyx&Fe)w!t{!wQDvmZGOHJfqdO~CfF%{fBb|7 z@M|uc8Em$jk5flz0PBJjzymOujO0P)Si0~!YNrNdis+2wDOyAfU%2ZOuW2=lZ+h|9 zl7(ojQ1AnXUQH-bgf}GPvfitQ)D>T8 zfb)Lwr#Nr2f41UK9MF@`VCv{etjz-}p-J8ge`fV8l+6efyxMDJ z5fi}&F8j45E9wAhF|Iq$6{4;>bebuIuq5D0y)wiC>VTOY1Y@IhPN9Jm-wfg}u_#Or zftQkBjos^FDzIhSGJo}CVjAA|Vj60EYFf3C_J%1@(aO^`YN!RV>@0A)e{|J+@r{MK zv5%5OI4@=E?UZ5CkMmnem1YnZjL`MGljO%_bTTy!@&*8^kJAbO&)6owp7CxJuh@I? z1#;({Q>FoU`)%2tcc6I{|1zo;7ytm@ziL=TXDbt8L1zoAe_y zaiK!W2WUDcvdELNZz&W}wyBEGb4-r460sse75IB%+rXw!e>ec^f3?C@FJ!7#t^oN* zRfO*v*hG z2Gno4Q$uUV=~VNr)%s2j)-)NHnJ5_o8uF~|%G2t3OA^wbe~Hv1tw33etujXFHc@Jj z&~>cVqPFWle|Bg}f4H7h;CIiRkWB>?a+jb;sD9_xK|9RgNjwpwT-CJ~rgK_Q73>I- z*H)#BWnHUABqz;WTe2YVapZ5dFF_;58GgQ?xzFp0wpV@Ry;?tWBa`{2r0UjPPKY8f zM8~9!wzFD<=WcUk@WtWmnMoq$5XX(j3&ZJnc1L~;-4 zqIf1$856@AEZ*eX^Q9!FS;)>wDOa(SDcr;!%2ioA2_=CLcd^|5N?KLFM`sX*N3_RD zRs>PGmI%y|IjRumJ2PpIUG`vwYVJAK@zp>BJ(#~ju@E!d9A*AHdo;!?!gw|}|9Cbh z|64gEHbWd_f1T}cO39U0fJbO#gJVa0h!i^T_)n;0Q&UzOaqYrqh-g^7)^jX#bd^yn-`wKo?*?-vMvW`#Eh6I@p#V+{c5RT_ zxzZD6$6OwpYp?V7yt{WKaPiz_3Cs*trPJGd^A*z+e?M`IE_dq;MCB0kVh!)u{=5eI zSyoNff5|w|003-%WexnpajEJ!BCDYL$R?Q1u}&i$gEyg2l3OT-`4Nggn_KpnQ!MMp z?~2JK2HULs9DFx7z`nrw^w)JSWRj(G5*;mJirIY0z`o|lm|!ii25Vn_^y)bB&c1EG zQ1@)Od(u>GO1&o1qfb@M!HG{#mA-2)e~I z-pjL1Q|bT(>o%dVm543CJNPZmA$u#%txXKF;=50{9HpYQyzri#2x~U9A;d&BRj^ zf7IivCKj~fL-Koej60R+D7)h+2xlQGwM)=1LN_kS(x6!al&F2JcoJNf8I(e=`wtBd z=#>#B>o~F-pWJC;jbH@D9YAeGFP}vu(?8WMlh>1CDo(R6xYcNRR8ErBoSFft?C9H= zau`TiNQjz0vN}LSo4+)jR_`x;jk#zYf6o=miD9vLQ8uM-k%MkET2~6qKT@&y)^m@( zQ5$n~Pv;frPihI)*KaZrcDo1<^%HVR0nI;^xGjVC6kCGG32S{KvZvmk46sll@1>VG zJwe3L$X$hQNeEIad8er`7ls7!A&FbV$4+Ol*HFAt+_g}5N|+qUf9P7q0}4(te_Q7U zd$F+F|EIdr@(XpJOS07##hDr`s+FGOeYWx@5c2tHcB5o%Id>kjEqFQ8O#Uo$G~&9< z9>B}2n@E}g_Ux4eW=_CzvF?kg#S?Y3Yj=wpJq7)=NA9sZj`imK0bKRy05k7U0;6Ku z0rTcSRQCy5KJ(mh=`qle-V62+e__5frtOklTY0HNb=$bPt)&M2T02dv2aT+8vze=B zuaNpzzDymfF7A$3M$u=Y<*`U4G0}rB40nzweE?u9q&-?wtlt%JD`6WeYLS+|zKPm> zi;t;!M14oHg5S>;+`o}S7>ni;;C4NRMB)Q?``++=oI5eYG_|#8|8oHHf9H@yJLaSV zU(7B#!ksP=IO3fy{Bp^rz2Q(itl@xQwg0ds`7ZaM8^0Vku}*W@1agz?GvkJG*u^?s z*nzKz7z|d==FC+?_llnePAQk+qRb-Mk1A!1ZB74owhO@)_TagnITSZrp#e+6AfI21 ztV5$OVLaW@mYeM_NDN~4f4D0HR5mGHzzvWq{g!~boi+$SP)?gdGJFe~J#>p5o-b$O zmxn)t_nVKyZ1+EfZ(1YRCoj3MRTS&6)`A{jU*;h>BEX4gu7Q!Rqf5Ss20&>RdUr=K zr|nSQepMjDO8iMBDt1~D52Ey~Tg2hi2#nUAROOJ8tPFH|%3 z07$kpe6vr8>W81g*HQ*?<`xTBUWrq$5DkFkI6z^hs8FrDNgGcFF zLc|+{siaW>K2j7qUZwR4HyxAm2HX#vEZ6LOs=1EvhWxs4o{m_yT32KqzQ+Ayd!?8V zp{GMn3^V1%Jx%6Uf84eAx7OvYp)?q{5AZ(|W_wQ`!!GczXb>C#fc;-3OeH4+Bg=o} zXet}O7!&1lV}dlJKnoKXB`;W!e?*KR0zElMGE4->!aqddByy9K>wI9sX5C7XE9NuE z_Gv${^G?8w7{_FAM(vYy=z2XvCOx+HJ3PnHre~+mk?Y0Af7|n8br)bu%#b~?eIGvo z9P9u(VGG4Toj-iB9W)7r4Ho$jVqY{lZ-R$N1ebyr^}P-SrQ$l1U5-JSM%k;O*i-LU zCgQTGC%7qRFN349{BtyPLzdbDyRJPAm{JDE+R?0#qX^NMX3Zb?Gr9(8y@!ijF?8vw z11pHuwH8_=e?#`(7tl+2oMx~7Z5+JpQztU!heRQ8( zy{9RrK|G|EoHd6qvz%6$_(eewnwjv|CSkneD>IUwf0aIsg`d*tUk_&4ZQ*|mWu(}; z6M@LuYJ6O6CzRgpA2T9{iosAPNlFz}(s8X91(5+Svy#E#TJhGO`Ur5+tJQHDC{{S+ z_)%o5x>K3+wN9+9bzI8_L#bR4X0A+Uk3lAt-Gk|C z{Pfj>sYn|(9O++c8MOP_-m`{dz(yUrGcLZYCKP*96b|l2K0xGADRuNpCzMq!rNDGe zdvoVDRGd#<%;oIy1eKz*Mv9e3E524c11)%)f0tpv0UJV9I^r%JLw=k~f4J4fAoes> z%o@X*`neG$@^Vaa5?K;o02$9)>Qc`x!U+_zBtdqt9q^8Qh}f&K>OO4&I&KQr%~+kw zGl7eLhvZ@ULDI_?PZH!vsY&)sIx;4XFM>L&o||~vVLlt_r>TPvB3((V$OD^dZVg6; ze|9_sHne-oCU2J#|s@eZwio`%E>d!PK1w< zz-SxOa0jn6dG(>*dn4a#7Z*2zg$3d(v{|?2Mf%Fq`{MHeFWf1@-jMT-6R#5P5bo2} zJ$(fvq2d3qbE$vK#}9uVYwwN*M%jPBe*@(08#ealH^yDHUAAi(??ZiC1k4 zAd2p0{{1Nba#uc=i$LZZlr0k|`7u~YVkA1h^ z0K9_yv!bx$yks80L=egMJw4^SvX19nA-j$oK?2AT~kK!!RBhraJL>#k7>j@ zdjSfcW7VR-(psHqkiw61e<{Sk+5_&Dp)HRz0v|fzBq*yn)-g}roq0G5r&tSD1YM5wOvR9(2kH5uz{e>8fImF(2`5bX7u zaiYw&RB@Surzzg$m9E#x;cy;vKDAKYFiws*;1=)NPL8KZLo8oVe^i6?SS)+S8)@o07X-r@ zQOE;_PGK`_B#F&CwQhJQvqYt3aD%KZD69(hS=$-Mw78e~u@W_WRC;^u9Y@X=(I*l) zIxV)47q!>ERcc`19NBA$VfS%P+A{_yK-SYWV^c0VdxgQGlHkmJn_&oLgB+h!O~Fdh zF~|<8Z8}rqf6;r*kKuX>Lted%KdB|s-650-#9D)Z>hjF=s@S8fk_dCjC&te$2?P&m zKX;g)uhXhb!;NOo96sWZcBJdF3#!y8XDB8#Af1UeVQcS^X2f~Sv0Y<$oFcm!%2118 z-9vh>2|ZS$B^vAj&l6F^%c`Em*lU|E{JsG2nWbcKW}5?Y|M4@Xk`0fyKWEd6 z8KiZVe<-eBPk#H2Xd~rh9HaCSQT0L5m+%eUz@6?MytjM~C0^_u);pG=hl^CE1oED% z-+hI6L{KpqFL&4z$R^t>Xf|*&G{Q1$*ILu>>~5o*Cf^8%JiY-|0N(gNr^Tx!CuOj3F(^GJvKzkU1_rRV4;%nM?W@UqP;s0El=Plv_G?oM!GzL^e>qj_Wyfo@f)ki8(28} zf5*+D4pk{fED?l@cw;J6V=fm%ju@jMec-wqb=)3)E9y6Xe0gjFjAA>~(0CUlnXhGf$U!R{h@-!!B660vBATT_F7>bf8^`o0x&lUPsC85K#<<$Kd&%dV{VhQ+#^fd zrEx^{86N!>OLjT6l`ejOai)drt}Q`Ep+0*Da#jUTI_2Jq#$cA2I5eK%12rl)XsTov z)NE?Ch5LdWLRanBWtl`{HoHq0X@wYYDhJg;Qgd^>$mezHt}sROsLfs7iF8d?f9%lr zK`LwdY>uSLU-puMv-_G}*>)4bW&R8F+w_AbNEwh_^VVR6cVnu-TRi#s9xj+%# z01*%A=HL;Fm04Oj_>yQ|GHJMWhZC(}xmB_Ifnc$~w7%^^Vr!qJIpq37iGs0$e?VsJ zv^;3Tk%Ye0U(_tI`)H(Rjxoylf8LMZct|<^`v^AMa&~#@w?;X8APDKBamEF>l7WFu zCDBZ%q4+SHHf^Oe5&Ucx7}Im}`KC0Qk_WQ`air3k&}9lO>4aVc9hD#UdhtOKK4{v} zm2Udt_b}()My3{BkZsyH%P+#7h(jvX2uQfnXSXeCpM5{!nU?dPsj|@Uf9Q}F()ucz z(Dc_$Wv}2064MrTFmdXE?dBl1obzT!e#SA7Hp-5hD2NR>u{ci;NRz>bMtPlV0z56# zmK%yL<0p4#F8KxGUfSfZ=tLV9ET-LGFnV<1>mqeTLqjlx1%@B)SgYo-*l6|ucK{Z@ zWop`P2W{k`Q$R*QRFLEZf9o@_ip({RQuiGIFPL@^3`g`Kq3qEECfc{)3k!xt(xZh+ z(c^`R5L7|fV|;;V|G1L~gLnn8;d%Ai?uu2_yG+8}wnKs-8*rv3VOp_zxa#t{+F^Ms zWsK>vne1-Zh7`1eb0zrJ%hOGcz#eLp+>9e|1BnMyy#Cx%m;H zJv8kLsq07I9@ZvS61(j|;0#3U+z6OA-v}0@w1kE5jCyaNE}G_tn536`lrie|0RsTgK=>B|%|9{KKN)Jp6E~0r{iS~T^G=FD14y#KqDpy!vy4>aY!OD z83o@y{@b^W0FHup`Ib8`ge4A(;8Bi+SZRdDX`ta7e}9Oerxq zs%XeVe;B`y2BxR5V01R!t=C!d?IcJ#fg)WzZdW9{moe48e`F(#K*jVW*ea%=nD_}ye3_fX zfD}7&XisUO@1D4ABN2&PXa(g*nTznuJ_8jKf6*BldN9A>yEyB}yhIU|*9Eo5c!MCr z3Duyn!i?g|KuNnWE`wWtJ|j+oB*m&WbG#C2;;VD7qPrm|Y$tsWk$BPIv1&4n8I7a* zjETQY@8k+)rxPnx8$%qmTW!3`IuK*EVkw5^3qDy55O!coi*Y++h({^f`$Rg-cAWZWu1Q7$8~hG<>Kf8krl zD3%JL<%tAGQJ82;UNp}BZu?caQ+K@-M}$kr+ki6H($p7LcX^>OeU2bFr;wV|M6+7D zp!dw685xY`Qv4r-89wVUJ2b?^*gkI$SiK-fKI>3BNQ2~e2dZ2-h;RALB*Lu6n-w=9 zTo}DvZmEfn$8-6vuE}Z}5-*|zfBs(M!H2JzUI@J?RpRVV$ENn`NV43Wc&$)dQl5Pa zTQRllmr}1(#D>B1#3K)1i?2bFVI@0T9dzPf3NF6aB{wDo0q;yu{NRwnVItR9>$^T( zQ(9;a#chw~+1@JhL%ZkJ+3BTC|520S0)R)%Eo8(qwcD$!wt`F2jQ+?)e^kgG&2lF^ z4b0{d{)&uSTSqsGxxCg1M=^V<6-+gIsu#>PTMH#uFjEg@TQJiGwPi+pG6Xhl3jhnjta%>NM0l|aYgF{lF z+k^8x!z+O6V*N*~%}If$e;h*B+6=d-wr*KD{(_uhlNp#@!e9(Q1mBtj)(J)Xam#^9 zYc}2n!ZUVN+m+tMiH_Jd^n6PVp)B{d8z%afrd4rFs3z8JX0QPt;7Nodq*{w2`!Lne zYJNt$FATd=1J?czGevgQqBdH# zua&=*7jt3T53h{#e@Oo7+t0EanU_u*^c55B3X{O5fL~@d9U3iI1=n}mHtGeDdqT&q zbXzWflJZ2`7)J~I)TObI2F`cC04H_$)~XH zExP+t_Qy>qz?QMzx!vDVQZ8YnpmXOj$B@1(P-oacQ_ER}A_zSjrq0WqqPPk>e zf_jIf5f_iZt}BwY&{@}?U6uUTl|-;#vN1FOfY`t0s;mr*Ow4Wn7Ek}j*t$_w!cj{E z;Uk+wDy3q%e->b<7dqUC-^czbCp4OJCm)*lijw>;VsKqvfz2Y}UdS zngJXNM#Xlz0dPg*!YBHO*j;oH+K4sp~IU|qRAuEBQuV9v2SXwb1sNYCCcx_FrbJl#smX~5NBxV%oqDlQCOcqC(QsLl( zbQ~Toe;l?@MXG^4?!Qf|^gKoh;Y0CS9LT8dn+#FgH=n5X&FA_tM`;E}P`p{EHGt6& z%}vy%BR@3qRH$8vT-Re}xrQlG5n1gd-&WOp)AGcBbMQy@3WviaEHAiQ zVg@-8=!~s;vuKEXWC>!+LaOD+MrPfDs?fRcf9Wl`5|*E&V7%pZ4CZd8?eo!)Clh7^ zB5`jCG6QLu+SDP0`lmk3exrw~*C@j07a^||IDYrW`7t|%R zl{Y|_ZZMwr(wqC%I@b$x;Ht|sRTd4GjSN}#)5k$ICtQ+kb!QlpCw7RGgG8RDVuhV_ zQGle$Y3uk(&G;1WW?Q80QiJP%))x%u)P3= zdiePgZ|8skbV*^m09W6|vabWbF#&!u0=PBG^|RG30&S9lXl&o0@`z8-rAUsjfC6b;w*r(Rz_gOGs1X;~ zXHH`UCL`O)Ow<)_e}i$qmeDJNPHvJ?2qH`U0Ni>bp|zjNOq^qusc)5BIvvkW)3il#TsyBn0&}!An=IGC*LIf2@oWKDN|jb@KJ-`zaA57=03A9;uWN#&CQ;osP(lrJd;;pnz?o3o6PZ- zxk{wvVwW)D* z$^^KUh~Ml@F}O`qu$yfjd^q%?y073c8oO5vtrDF_%J^J!POZ;Oo3VW{~zhztxsnVbzr-kJ8tNsS9`()KR@Fvl1+*SXNdP=DP0be}^ZAes1rPP7I?So$1Q` z3OcHm@zZi{e|+1qmu@zyTszUatl5w+&F~RQnA4GXY9vZ+!jaDTm=*Ls22W(v#U?{? zN6e4wtLIUgN?xLq@JsV0$z~Y+j0{`(J;E%KPS8~u=D-gULo#Kh(mUFz&Airl@uW=h zLmIKVZz_U{ISupk8}=-h^xR1b6HyzeKq#RBqMQU&f2jrYXSe(CfLrvYmkG72##QY32U=gE|xB`qXSC6bpdElI`FCKOO*rb-w2p5#bKqA1V?*u7^4!qa%7Xsvy2Dlpz| zG+_huDRv?~CpwSC^rZGAVF&a@_8L8%4r*D|MF2P90pcXckIg>(Q$hB4IT1U6-nQ^~ zc3r49f7?u;;O4ecRZ>4CJEjJ%M9}eeTLZpxxhnW6($}4RyZgb13MX3TtFQ|>gWg(p z0Ue@HU1-95I1&diW+g5?fx0HB>+dY12M zBui-KL0<2XGs!&C7B$;E(ie5p+*2R5)7;Yz_2amk5{NIZ2u;jg-y@sf5$PFZ$uMNR=vABrquJzzyn ze-TA_$zlnp8Lr%=_88UJa_8vu#k%T?Sb}B$n)W?;_xRR@i zuA6$JHEz!lnGe|+Om^V{U zAt+M2AH62F&nBwZjQ6@nH(LcXPu=;zTiush7;Z7sLQfr3Gycx=;uhN&f_p&A1}~qQ z*)u{7S6|S0HJ=vcU#B%*EzapQz|C=T?<2IJLWw8T!d$lU5Vw>txCuEw#N&Jjf01~L z`m1(17m3|6YQ`rp`cM);y1?zBZWtW4fmb&I_34#w>Cyurg0V1b;otfzER`!F`Zpk_pvySne|w6UDd~hi3VtdGYo1{3$DMzfAdC!@llS$;@l3~B zoHl=*nP0aW%VuexZC^_1ur#;ustH+S`AKzjh(}U^UePT>XSyGab#WmBiCRMPBg;b= zeD(9U8iFe^flPQ%0Dw@afAxs!4-XWrs^zGpg7V=)Tae0c>E~eKZ>KPae*&?Mszqxd zVO|5<*n^)tyJ0++`LIuXn5m?X?d>wChcCywBQ-RGL7{7k?S0S25wpd6#9Tmu?9JhM z-new2W$Eon=KFqob_uX4EVNzGP*xeD;GN`duD&qX7v-@}KE{fflBIBOqEd;uC|NYm z3~M&Sq5>nh-TQenVlC0Bf2Xc5$2Gp9@`Dz%=+HxWl;>+%ih^1S(Zt%OMV0qAYs^F- zu~X=}0mn}#T@IS>hI9?e3nk)Wkl0ys7K~L!-_pRVRP2w_Epp^e-#TDcj~UNGJie`@ znB3G&egbtiRD=-md>Zyqwib=t_O$BNEJBC1ciVZ(^4hdavV1RWf45Rb1KE8Rtd&pi z&>K&7j5LS=18M`-ak+4Lkd>fXdCsFbXvA7c)4ono4Fz$L!ARNB{=%Mis^ic}ulr^A zq3I>I^&Nd@-i;&Xot@ne0&W0NNRLktJ=zGto(3n}i0#4rV@*|>o%aFH831UnjaIUQY#Oc1{@$?bW)3? zK)}tUE!IpF@BIgb$J&{tn+rL6t@eiUU&cv#{rU`6nD0>F>*jTZ!gnfczSrUSzxTXJ zkC<*~>zXtM;S6zP;t7MHiDw@^Bn)||NZ+C!I4LIgk!T>#e_!NM#fmTMR0yQQaNhxm zZ(50yfrUh>U^>J4$w(gD?gg{c?%V(r*#)!ZV!6Ytuy6J~14Xy=>gi0@8&M8W>O5CvpsGR@k^!vV zP2eBT3eI=gf6|}&QZp=Ex1y}7vMv49>?-RyU^&r#y*HGT+jdHwa%=61$l6Uz|MJB6 zF;M{F(J4sq5+dgqBIj#g+GdEzQ&^w9IKtjyW&Wy;C!xI!*g>xTkicGRK zQ`+7ZPv1a%iqZp}kg!}x#Ws$DNGe*Zv(&6uY=c6)f2l?jOb2`t(OPnBh8B2nYvK*q zSgV7wrRPHe5tZd_9Yzam5~fXg{!K_J;n4Gyuv@hYLEaYWMUoHIOe}bI%Az*%OXH1d zr;0YbL0EZrgc;ZPI~C3=$fGCM!z((57qA$DX!LBVz@+!d5qoB~TS)C)sTq4Z?+wfd zUMYOvf3_=#g3oP3yDW2kl$!oLmU#1XgZ7qGRZqV*`xqiB)y5=g=LR z?6VJ?ZH@K+(FU=uOG)(yq?ZBVz#yQ@ z-Ce27#0~Syj`=h?$?dnK#h2hLSvhVI<~oLJGC?^6SX=2g|LHf2-kCU`!38q$(`(aLZ0#6}9aiz`TU*2Z2(6Ud)S=;E>V!nZ?)B2D%FD@=b=oYQ ze+9958xt1$!+@O!R;$jZf=Om;pmg9uoOyX9Q001Zuy|ONg*?WWbk^1hQcBLp1l>|IEi7P$`H2#43@;HKQMzq}0IRvgN3@88qiV|}^c9s&=aCAB$Q&uGbbT24*O zXyJPsAWdOYc+ay0a~XnB6eybX{1R~BfBoH>rtSXslKt0Yp2=SlBp?6)>witKRtE02 z&Q5f~7LInmhN310PR6o-La%}?xcZ` zX7WmEf`2j?anH0jv(ZG+2W9{m<6?1N0} zF(Vl=!dc56bnIw#i?|4t88-Ik86S5In{O8o2^xuZtIYH0#*ZGI_xx~qCgydvanI*Y z1JJR6iHpv+?wyX;7x33-e^!Of9p!UDk)Bg82s$mN`|tz~)sYLb8(q+|8|Up-Yp(1I zL~feFgV0GeRpi>$x^D0m~zns6z)Ga8zNgHn=i%e-(=U8qJtNmwKf64_j#IvxJDd4lw zP=>lA1${KnpBXN*HRjAgShrrByUBjhMfp1mgc@rr&NAu9?Pv%Rx(-kY>!Cq|WD@~u zinSOTkVep1$uRZmH_ED|)vY=Lp5KohQcO^s%cp2m$3o8UbFi66i7g=4dxXLD8yp&U zExw1Cay2~^>~Kn~e~Z9z-NG^nWsgC41`^*F*^xCdagL!EZ+QmQv#v`uWHaUE(=A`h zU&Yzxz_XGn%WiOu2pw$8d;Y3Wv;@II(7Q(y0i*;!PlVrP9R4Pq$F&#D*Ptf3fS4csl|EF{ox z(IG_Fy6ELmf09U4U1Q}=HYBiBY9%6AfusfiT*8f+_Ok(CZEG^&Kt0q1gt-!fhN#hp z%3D>^)bd$iVv#<3jUt#N@fu+QIQ%6nl9i}6%VbOZInnl6ki?z`+1|= z1ju-?oVp!9h_ASdD|UnV?+I0?_sRz76AWF8mFShZf1}Na2i4Mgv#_bHP%m?BR3se7 zKFZG1Oo+^K=&49&9v6TUo(ZQ=wR704jcPP;S=J50<$)Xqoz8ME((B-pv5wYOi`zU_ zu3%haW=ODEjD{YLk$39nK_d&3@?hJ7X+0j2rsuTvSJv>iH+Pe}cKn&A3LL{R&ztPCBC&$59)io%8}+ z5YN*VBbUEvxFX_gJ;816n=!!#qN4N}1n>wdaT-K1A{x0xlBIQH+X#|vOX=_u$1}#+ z0>!sdh+H>yhlj8q$O*vPz{OjO%=;EW<&J|ke<05};S3Ufj^F8&^>j=h{9H!00P~69 z(Kyh}Y+{w2VA>yNM1hCBW*Z2IqGAD(UjeIui8mIu5=k-`p{SiDxPIPAxwMVxQ>G>A~aVZyqOO7H;Kt$~RZ#OXLM` z;d=swtc<|2S4!oG@lS+g)cjS|TMk(@f5m7f`ne(DY=LJ+Y{`?o9)%$jWn(RCKd3lu z@aLT;2C6;e^?^oz!?l3Mv3ShCBHXOg4~%#o#c7_mPjO}- zzl@mGqK+Z(*L~%zjDawc1YZLUAjE~CWCL6P%t5nEfgI!`H0oT6$*}6&8CR~Nf0g8| z8pzIj21~#ckH|-dh)mMWWa>etc@fM)*I7A6Gy7#RQh1VhHpvlNz1Ge`ViDg0QXaij zUCz3W!WlDx8NHpO$4ooExE?%vV4s_r3MiNm5j?Wi)c3TK8YIhePjaU<(je_YOBOn; zvk%V0C+M$-YH%%E3r5JJcrU91~d>+{{N|N8jp~! zJ^aJZ>)4?Rh)fWSym=*lPH}f}^8$8rH~}rg>c{r@hwXt&)ar^FR%YQ$e@lxo){C2? zYdaAM)Xp#-63V#Sel?*z=ZyM7h_WzCrPQ?-O^Z+X$GsQjD2#acTHld*jAxw zDd1T=ZJv`C&22daYQCR0K;6VPBJthID03~-f#|fOEhr)gN{HhS9G)PK-_XXy1a-o; z9YECjT@(frYV?w8f5+oWXsJP^FR(yav1wQG42^RKV|OmpXzQ}vEb8bUnas6V zX*89$?PB&_2j+T=RiRp!FVoAk;$$CuaXrF#VahVEKZEHJe`ynx-vhP57!Yl=V$V5F z3Lwy^VRLrWac!CQHk#fzOme*8L#f;0fXYs2zE}n!(LJ%+*7r;RZ+sV~%F^E|bItEg z%-U$nx!n8k6IJ2{iG|=ZOD%H}`oRcI&FD9Ep zC`rYLami|#f8916ushbb9a&)O(w?*QdF>rkgWV{AQcPR2(V@FU&tQI-LMLu(Co)|> zFosyUXxgEV!j+{qOdckYa_L)PPWj;%cS_uC5iiw)pla+@fgh^^ z>MhO)(~(CTQd<7%{SzkTgLLD@IqKX+vxf!6xPpRwe>XGWtc8G@tu%JeV%P5F_O2O< zw;R20<#WmibnjcPT35ZJE^?S{DX8QxR#j{$VrtjE{bUAa|oL?P7TIAl@dW&4%9^9umKF z11J*re;MNuV-Ru#x#I7TTQra0;jd(PLZvAAif)sM%MIi2pjR>^bfbIw$_WU7^%cOf z(&>W?0owkeLG;bS4#7GLj9eWi?{q&v#@kz^^6SnV9pGEqAO}7{kDpn*heD{6JF5M0 zIh7dK###c>)1eiF+fq=}2-SRIS98S>sPo2dfABXU%xr{;+(JP+1k5VrL{rnq-MIN! z;GOyh1o>ZY!djS+-V85h_^Rg%2$`MXJ7TrGF@)eNj}UuMcJG+520*2^2~F)GBMYi$ zb52PQJD_HrietTsOMLSk&wOYQJ&5Xt5q%cU((ce+j6qh?_(~ccfWi-a{I?QOKxL2S zfAJ8YF3P$H9&iL_t6r!KE%Rei#iKk0;dlk*S5cent2^BQ+A5)B<$Vwq5mNZOl+*8^ z;?0tg^oYDb1y!x`ik&JgkY&)n#(#VN zEnkrlQ5K+)kQJr-C*jckop5OXARN6vhO{mw4u2ak(9+Y=(>NH>GeF5p0RjO4|G%%L z_~+B)5AeTmNyYDIzhCk22O1&ZU%2q$_vwGXkl>H$=YakP*Ax5>^LuCfA278bfB#E; z^1nm=-n0D&WCYm%xP$w5u-}_w{{V}D{L8Jfzk~eVQ1%B%7u;WOFZ&(k_x6)NP#%%~ zdNa!JD8Kh!{DGp6^4B^sen_zt>X!U;hW^uUA(7j`DjM%pWMw z#Q$qWF~5WUejxq_s0;c3_;~zxX0YE6JpKR!ruzY%0Al}Z#~=TJihkSi`vbw4`LFK( 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