From 86e5b6d451c8a66b8c63550e11a485aed9b4234b Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Tue, 28 Jul 2026 09:04:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(routing):=20=E8=AE=BE=E7=BD=AE=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E6=94=B9=E5=88=86=E6=B5=81=E8=A7=84=E5=88=99=E4=B8=8B?= =?UTF-8?q?=E9=92=BB=E8=A1=8C=20+=20=E5=8F=8C=E5=BD=A2=E6=80=81=E5=AF=BC?= =?UTF-8?q?=E8=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - settings_page.dart: smartRoute 布尔开关行 → 分流规则下钻行(标题 + 当前模式 pill + chevron),点击 desktop/tablet 切 navViewProvider 内容区下钻,mobile 全屏 push RoutingScreen(与 account_page.dart 的 open() 双形态导航同一范式)。 - navigation_provider.dart: 新增 NavView.routing + kSettingsSubViews 集合(登记 settings 的下钻子页,供 shell backTarget 判断返回 settings 而非 account)。 - desktop_shell.dart/tablet_shell.dart: 内容区 switch 挂 RoutingScreen(embedded: true),backTarget 优先判 kSettingsSubViews → 回 settings。 - settings_ia_test.dart: 追加下钻行断言(标题+模式pill+点击导航到 RoutingScreen)。 - 重录 desktop_settings golden(唯一因本刀布局变化受影响的 golden)。 Co-Authored-By: Claude Opus 4.8 --- client/lib/screens/settings_page.dart | 48 ++++++++++++++++- client/lib/shell/desktop_shell.dart | 8 ++- client/lib/shell/tablet_shell.dart | 7 ++- client/lib/state/navigation_provider.dart | 10 ++-- .../test/golden/goldens/desktop_settings.png | Bin 63605 -> 60443 bytes client/test/widget/settings_ia_test.dart | 51 ++++++++++++++++++ 6 files changed, 118 insertions(+), 6 deletions(-) diff --git a/client/lib/screens/settings_page.dart b/client/lib/screens/settings_page.dart index 587ce1d..d53fcf2 100644 --- a/client/lib/screens/settings_page.dart +++ b/client/lib/screens/settings_page.dart @@ -7,15 +7,37 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../core/responsive/form_factor.dart'; import '../l10n/app_text.dart'; import '../pangolin_theme.dart'; import '../services/web_launch.dart'; import '../state/app_providers.dart'; +import '../state/navigation_provider.dart'; +import '../state/routing_provider.dart'; import '../state/settings_provider.dart'; import '../state/update_provider.dart'; import '../widgets/page_body.dart'; import '../widgets/pangolin_icons.dart'; import '../widgets/pangolin_toast.dart'; +import '../widgets/routing_screen.dart'; + +/// 「分流规则」当前模式短标签(与 [RoutingScreen] 段选顺序一致的三态)。 +String _routingModeLabel(AppText t, String mode) => switch (mode) { + 'global' => t.routingModeGlobal, + 'direct' => t.routingModeDirect, + _ => t.routingModeSmart, // 'rule' + 兜底 + }; + +/// 打开「分流规则」子屏:desktop/tablet 在内容区下钻(切 navViewProvider,顶栏带返回到 +/// settings);mobile 全屏 push(RoutingScreen 自带返回箭头,同 account_page.dart 的 +/// mobile 全屏 push 范式)。 +void _openRouting(BuildContext context, WidgetRef ref) { + if (context.formFactor == FormFactor.mobile) { + Navigator.of(context).push(MaterialPageRoute(builder: (_) => const RoutingScreen())); + } else { + ref.read(navViewProvider.notifier).state = NavView.routing; + } +} /// 「检查更新」手动触发:拉取 `$kApiBaseUrl/version`,失败/无更新走轻提示, /// 有更新则清掉「已忽略版本」→ 顶部更新 banner 显示 + toast(不弹窗)。 @@ -63,7 +85,15 @@ class SettingsPage extends ConsumerWidget { if (Platform.isMacOS || Platform.isWindows || Platform.isLinux) _Row(title: t.autostart, sub: t.autostartSub, right: sw(s.autostart, settings.setAutostart)), _Row(title: t.autoConnect, sub: t.autoConnectSub, right: sw(s.autoConnect, settings.setAutoConnect)), - _Row(title: t.smartRoute, sub: t.smartRouteSub, right: sw(s.smartRoute, settings.setSmartRoute)), + _Row( + title: t.routingRulesTitle, + right: Row(mainAxisSize: MainAxisSize.min, children: [ + _ModePill(label: _routingModeLabel(t, ref.watch(routingProfileProvider).valueOrNull?.mode ?? 'rule')), + const SizedBox(width: 4), + Icon(PangolinIcons.chevronRight, size: 18, color: c.fg3), + ]), + onTap: () => _openRouting(context, ref), + ), _Row(title: t.killSwitch, sub: t.killSwitchSub, last: true, right: sw(s.killSwitch, settings.setKillSwitch)), ]), const SizedBox(height: 20), @@ -157,6 +187,22 @@ class _Row extends StatelessWidget { } } +/// 「分流规则」行右侧的当前模式小药丸(全局代理/智能分流/全部直连)。 +class _ModePill extends StatelessWidget { + const _ModePill({required this.label}); + final String label; + + @override + Widget build(BuildContext context) { + final c = context.pangolin; + return Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), + decoration: BoxDecoration(color: c.accentSubtle, borderRadius: BorderRadius.circular(PangolinRadius.full)), + child: Text(label, style: PangolinText.caption.copyWith(color: c.accent, fontWeight: FontWeight.w700, fontSize: 11)), + ); + } +} + class _LangSwitch extends StatelessWidget { const _LangSwitch({required this.lang, required this.onPick}); final AppLang lang; diff --git a/client/lib/shell/desktop_shell.dart b/client/lib/shell/desktop_shell.dart index 7c6370d..585fb37 100644 --- a/client/lib/shell/desktop_shell.dart +++ b/client/lib/shell/desktop_shell.dart @@ -22,6 +22,7 @@ import '../widgets/account_screens.dart'; import '../widgets/content_top_bar.dart'; import '../widgets/nav_sidebar.dart'; import '../widgets/pangolin_icons.dart'; +import '../widgets/routing_screen.dart'; class DesktopShell extends ConsumerWidget { const DesktopShell({super.key}); @@ -56,6 +57,7 @@ class DesktopShell extends ConsumerWidget { NavView.orders: t.ordersTitle, NavView.invite: t.inviteTitle, NavView.notifications: t.notifTitle, + NavView.routing: t.routingRulesTitle, }; void go(NavView v) => ref.read(navViewProvider.notifier).state = v; @@ -89,14 +91,18 @@ class DesktopShell extends ConsumerWidget { return InviteScreen(t: t, embedded: true); case NavView.notifications: return NotificationsScreen(t: t, embedded: true); + // 设置下钻子页(内容区,顶栏带返回到 settings) + case NavView.routing: + return const RoutingScreen(embedded: true); } } // 子页返回目标:payment → purchase(换方式/失败重试仍在购买语境内); - // 其余下钻子页(含 purchase 本身)→ account。 + // 设置下钻子页 → settings;其余下钻子页(含 purchase 本身)→ account。 VoidCallback? backTarget() { if (view == NavView.payment) return () => go(NavView.purchase); if (view == NavView.notifications) return () => go(NavView.account); + if (kSettingsSubViews.contains(view)) return () => go(NavView.settings); if (kAccountSubViews.contains(view)) return () => go(NavView.account); return null; } diff --git a/client/lib/shell/tablet_shell.dart b/client/lib/shell/tablet_shell.dart index 522e1b2..04f21cf 100644 --- a/client/lib/shell/tablet_shell.dart +++ b/client/lib/shell/tablet_shell.dart @@ -18,6 +18,7 @@ import '../state/navigation_provider.dart'; import '../widgets/content_top_bar.dart'; import '../widgets/nav_sidebar.dart'; import '../widgets/pangolin_icons.dart'; +import '../widgets/routing_screen.dart'; class TabletShell extends ConsumerWidget { const TabletShell({super.key}); @@ -46,6 +47,7 @@ class TabletShell extends ConsumerWidget { NavView.contact: t.contactTitle, NavView.invite: t.inviteTitle, NavView.notifications: t.notifTitle, + NavView.routing: t.routingRulesTitle, }; void go(NavView v) => ref.read(navViewProvider.notifier).state = v; @@ -64,14 +66,17 @@ class TabletShell extends ConsumerWidget { return const ContactPage(); case NavView.notifications: return NotificationsScreen(t: t, embedded: true); + case NavView.routing: + return const RoutingScreen(embedded: true); default: // account / plans / redeem / devices → 账户(其余下钻在账户页内) return const AccountPage(isWide: true); } } - // 通知子页返回目标:回账户(镜像桌面 desktop_shell.dart::backTarget)。 + // 通知子页返回目标:回账户;设置下钻子页 → settings(镜像桌面 desktop_shell.dart::backTarget)。 VoidCallback? backTarget() { if (view == NavView.notifications) return () => go(NavView.account); + if (kSettingsSubViews.contains(view)) return () => go(NavView.settings); return null; } diff --git a/client/lib/state/navigation_provider.dart b/client/lib/state/navigation_provider.dart index cd9ba5e..6cf46f2 100644 --- a/client/lib/state/navigation_provider.dart +++ b/client/lib/state/navigation_provider.dart @@ -1,14 +1,18 @@ // navigation_provider.dart — 主导航当前视图(三端共享) import 'package:flutter_riverpod/flutter_riverpod.dart'; -/// 一级视图 + 账户子页。 +/// 一级视图 + 账户子页 + 设置子页。 /// desktop 侧栏暴露 6 个一级项(connect..settings);mobile/tablet 取前 4 项, -/// contact/settings 在 mobile 走账户子页。redeem 是 account 的下钻页。 -enum NavView { connect, servers, stats, account, contact, settings, redeem, devices, purchase, payment, orders, invite, notifications } +/// contact/settings 在 mobile 走账户子页。redeem 是 account 的下钻页;routing 是 +/// settings 的下钻页(分流规则)。 +enum NavView { connect, servers, stats, account, contact, settings, redeem, devices, purchase, payment, orders, invite, notifications, routing } /// 账户下钻子页(desktop 在内容区切换、顶栏带返回;mobile/tablet 走全屏 push)。 const Set kAccountSubViews = {NavView.redeem, NavView.devices, NavView.purchase, NavView.payment, NavView.orders, NavView.invite}; +/// 设置下钻子页(desktop/tablet 在内容区切换、顶栏带返回到 settings;mobile 走全屏 push)。 +const Set kSettingsSubViews = {NavView.routing}; + /// 当前视图。 final navViewProvider = StateProvider((ref) => NavView.connect); diff --git a/client/test/golden/goldens/desktop_settings.png b/client/test/golden/goldens/desktop_settings.png index b940ebf674d22df02ed0c4c26d509a959139091f..0859312ebbc9d3800c7200dedb9fee9f70030437 100644 GIT binary patch delta 44510 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

*f)gh2UV%D z=0dOiKZ-h6!Bz|a3t`UA5SW4ml%wb+qb_y5x78ALpCxx1q&|<~6y!|EBUC<|-b>#` zMj4676x(hv4KCktN7nFNqJg4i#~ZIWT1-=ybnmCW05d_M*T3GPVq$}pwz2>%cbRDD z64~4KDf?5Nc*@{+TNM4k^^WgYnoQlqZLmKh7j>=SD13`s-|R%_JdquXjB7sUG>Dth z@^3lFbh`FrKt3av$tM*oa`Q(0_T3TMm>LbU`<^jSX9@3PY8lCs2@#WL_j%W_f7D6Xc`{Y0MfAOsa&CYV z@$ahrxsc{2cIb`8_&|!wFSELfOIGrS1`crRs<<=()|9aVM2*nn#-l1cIb|s9XZq04 zIF$F*@bb&=RrrcGV~c|kN4dr$*_&mgxTMkJi>w(L$j{0SvS^34+jesHr;S0@r{|fX zMtjk)kQfOpf-)(6Vnym#5m^F!-L7AKxFln zIqQQw|2ow+K)l+9PcT$41jJFCY0l{nWVEGSnot9NJHVn`aszXP#^m!;&oWYEi<3K` z7dZt`q_6ulna?MtmP`uY56bI9`8#c+Lt zAOjV&_J%Wp+rC(e#=i+}`m<;~O;dI{2!i`W zWr?H1&=NOddlzA`tPpG-2tE=Ahm|WPq6vUXd@rbw)y-@Ip6s&@-RZO&eLtap*BC=DB~SZ4$&UFL&yMk*1ce7}PNy~u zG%B_-Y)h(PmYEsvzIjN$_VEayO!hs$4ppHF-%G$V{dEfV(uIARbFR)?TMsKgI=5ckxwX-8`Sn;) zP-)OU-tgIlE4Px-SEa~)e$ntLH~AS>1Wf$hf71f>Y3gFHKry1Vwyt4ty^BJ^$*^l) zV-cCRvG+G4%A`^-bTuNjVPmgJbH#lA({U?7Gt7Y>1=#{bsWC{J%3UXS9~YT$U+1k} z&)2gy{&KdqS&E9W)y}#mCPGA_EpW}mddmoiMYp%Rlb*E!XJH`%>?bf#6+J_$jz)R@ zBzlcl7|Ab$VgW0K6q_ShSrm}(R=j2HaKOK35xOyY?sE>w>Em2IT<1^zCMS*Z8g!%Y zIw|O^)+atwRp({cD|@8-F#J9OC~=z7X(~xQ=T(=klo@NdHK37_5F@*HG0DLHXWiq( z*@F|InQ{74-P6XWB2lrvpUG^(a3(!bGa}4yncv17Ws)`xz*#xYs2Z!0z`!4>T21lT znf*74UtWpHV{EIqSvznGtnT~!OIzW#B{;PlmD6JS^k(5rJvJx(L{(x`l# zCCi40mNw}ZnJ)!?x8tj|8xUTfzAa=U2i|j*U=^JN#fNn3tgY&h{!Q^qtQP7+pI*Lc z5*UoqT)~^O3X(}))ujN0jqf-WciMqj<5T@L{K-3^uKEsJi?eC~_rCVwM!>WMS9*W9 z3H8ZeIj0%^%Y^@rPs3^ee^T{#ge1JmhJbT45aE`NY0AJcHEpB>Hwy(|@3ii>By$Tq zy;-3JRsLSZe*#ohO+D5}#2Y|>>aczBZXlOPf?%Aw^@V%XZveqGGNEGzJ>xnzgGT=N zp~=UEpu;o=jnRd4z?W9n4>U=t$j0~-Wp7m(GY-K&f;rF&n!orlYWc!FF6%T#K|L~u zJ1<`jaNQP20>XVun@{xgCX~@-+m0ij0qV~8J~3M5o+@WV{&lvG&ku|vK-0C@ez&9j z6j8-Uyb-FR@|H_dFaef0Het0#G6sDwAj}um-pkFofVfs`C=ERz0scCQ&IZOg5|ql* z(9Sf+7rhX5jX3&9(K6g#dM5WpZGF;-IEv|QuQM7HvzQ# zr{cX`26&T+7SrJ|&%n0wbO G@c#ie^xU)n delta 47564 zcma&NbyQVd^zVHTL;>k;5s;GZmX;Ewr9-;A*#aU+3P{Hhkb_7Z4vlnocO%{1c{k7V z{Osr1qP&Z1yc+M!} z1dMlgJMLGX@AxDKm#(MPsLZ?-t->YMS>hxs6pZw{d7r25>2;m5H*u*JQe0eS-dG%H z)y7tY30$}htY2R*kisI*VyG#m1-b%s|B?U*KFDzG@ipd7Gzx zbQ126y5|rFyQ7${Nq(t(izq8$I`*LdjD!86yqeIS^4f8^GXXuCL$eBcR@e15jD~^p zOWJqOqtfA_bpqe1Jg&;d-eID`I((uid-|fBJYd+;X?su$)~<;p&k>9>_JVH>RbKuO zHq_n4UaxOG6H!L+3>6vjCJ}lDfjo!EOG~Jmo0GjNyuahv(}B|vL

L7@3>@EZv2h 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 z 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

olO6g?*v1CCUBvgULN$9&`@DWnw!GWrnc~Ly zg7ueZn=JP!>y-O&yRJ_6pq0I3gO9#8A*Bu~Ul`B8oT_3W#+x5ZrE~~)J^CQ5}Z39?Y1oe7t@9e{Jw= z%~glQ88Mu#=rfh`ksBdwZzq7A3C*bU&?VjT-c-!=LkbBFqBf7B1jk)>R0(;M{J4fO;Ro0l+ z760nTdtU}1W0v^)7>#Flutd{yezjALxyo*GBEqR*v+SxmJU#fSRWok{)=iCzrX{O& z+e}Usa`1}t@1uqNZri7XWhB$8U;l6kDzPFl*V3}zo%Cl&Wc0w2z6?!1KYlD*Y&FP; z^LSB$c7CMvsUVhDRn^kb&Iozq0j<#uk~iP=mZUP|yo&3vGn{NFiMMx>2p_38wyJU5 zZU2&%q8T7ATtM2KRt_f<0rAQzCA2=Hetjfy9*>8&UZ3ZOYc&`vEGEULPe{857;AU` zv{;R{wor-(!_~C}_$Y8X@7c9pBj0(+z+saH6mIqx+-{rAD}H8KxB+!MNq3D&#|JXm zkrB|M9zEFvM`l^sBAL+Sr0SE{!clg;BWLi|yH`UtRqAvY57*o!8C^};+Pe?R>m>2|(=9GTaq(*iP$OKs4h!onGN8}(2V{Y!eC`JHWt zDgS1j-zk^mi;-b-OX=%YBhc?hbsp}MmBuuQ9C?{yg$-ql@TcnKrk#Ecxxm`XOePc9 zb7OQXV~4Znz06M6$RBylYW2iOZw6XSCj2b22GRRT)%Yj4c#HPj@t3ol6WeQ|#FrQZ zec#RnnGSuU6UIIUeSPCaOPOvDx&i zpEv+C`iGjCUTqIKN*05I0R3ujdpsjMd0{72;FY)um$95Yj7j~6md4*l6JCBBcXKtm zo0=0A>S#IbJZYK?d{45ldS=a!vq*yC) zOwHO8VBYClGeC`Lx)NZ=t)T1wj1=b0Yw}jU*U*px<}h01@z zPZK!{3|ni)&vL(Mp#8Z*n1g>c_dv0o_}<*h z`a3!UoIm|5A%VSrA2;rwuPkDN1j66z+9(kjkG~(W?@-g0j=Vmdf?Vy%5VlD+AWBlV`D6|LWC^ zPo-s_`qFE=0tEv`EDH~BG%!(5THHZ$=!tQ5q}v98Xppa$(e?w&5z_Q_wKZ-w#{>#G z3WuHF-q%S24nJD#fb`kcL_`nvl?HxO?%x?>IL+zK=#?VpP* z;p5^KTWsProV!wg7|)}oqs#qOoxbQ|QfG~XlAs=3j<>(4ja zv=)`zrGM?$AIoWI1(%jZo>L-yu2iE-SfVLW_&f}ejc z)b3`8jfeIn@@6Yl7ig77X!BnbUD~{T%fcB#+}@0QnM+Cu#Qr26cPPL70St`@IlDe8 zgCR&_zVV*1sf1AW(keZ}Gml#%xr)LjQ@F(+`vO(aRS?DTkD{V4sL+XgL`1}y=YTsf zE~JTu59D)mbL^p~KqN0bHn#Vph~)Z24r@*h?bXtH<3XA zv-Y=%+JZelqUp>?>{|Vf(aBh%LX&xrA7Nv62f-UVyu5w5-2Xf}Tpd`*K9y>I-w^Oh zSNECI3{T+s;cAV(`~GD1)kbV1OlNYKiVxbK?u0pS_Ky<^IzE9_%A_<|R7(BMjc0`g zgoQ2T2wsKG@z>h69{aeg`$9F@M=9kVmr7*rzXf=l%zNYBa{_U-k7^q12#fGZ&j`q1 zkld`RvVVdfQ2{-siS?A&C}3aCZj(<)4VjRd+59(4FrxK&MC+}o7N}&W-Ot!j>+jCg zMtmc5vE?E2+rtuxxtb?pftJSmYzPyAlQ{CqUagLsPnN`68F`51{>rDTYcT46IXpZt z%C+W_;bvMlT7k>l3f0rdJJDW_UnkDort0DG!(mf2|Wz5s+Equ$pVzQq`{2 zcR%Rv1Q;apml(*=&tkgb&d*9KLC=ekOQfomU(;2G1-0ul)pVc`ZH9G4h9ghA(+7*c zuWFx@^?0`Oe1sfQepWdzc&`2}J#lX|^#%m^7Z?1=z7Hv=Bl^L&cjdXurrg^@yN$Bc zkE3@NmHR0!mpwHGdJA7|+VXS>RHvRPmUhVo7VfE;LY|o2(=iLS>nT#Q!ywn3gFlkh zfZUXw3ayh_9DQ25Ilse^7y>mOquhFKVt|x)Jl8tj&h`2=TS#Do6@nDt2i7-1eo`LCgNbwCeq9k5 zkj_iKH|lSEQ4knR$=k(OQmSN;d?FW7$v~N*3I8~4?NqOudqhJyCl;!L)IqPVLlJS3R*3oJC zBmu@dDhT3#ym#olbB@0Up0D-7A@7B@%J*9@@39@bwNO&~KNC4EFSfeg>pQPbu025K zbApSl4QS5ZVm^3~rrmf0q=J+Y>3v&vyQnAO4)#vTC*f`zD)~XZhlV83oQ&mS_`^X% z(%Jl+60!_LGFW6+z~g-D5UyHkgxlzOguO+kR=?dBuK+TE5ANUB*{a&FySPX+pD4r7 z78Go_b>x7xT9Gt|Q~JjPS;BQw(-|(k=lY$Y#*@SC^qM6BL;4-ROuW;suJ}F&!Eb|1 z!1r;<=wIPR@A*%X zT6$2cKA!oIIEG%Ui`?_{liNb_6yOn`dbl~P9V=@W?70gYO!kx+pQde%Lok@^_5LY( ztuB|hw>N-g{0Oz(2M!D+3E5qN3M&&)uK+da+IBoNRxc(iLn0_Myl&T+6iUw90YvA@ zPBQ}n*j~!GNn~QbmhBa&o=-oOsL_xqS;ACsX5`$zFLN1YEE$~}52%E2S9Ty6DR6Nn zPgZrSLGtwZ^H1Q<2dPkFw-DCcAe`I--O9=eEED7t=33}vwwn0^V8UNEQvjq-uc}kf zGS_D`I);Iz2Vlho|74nUhgowcKgpt5Af9Yl@?hs6Lfp14OUh*xA>_Gqe=eRUc~Ib5 zJ99`37MZgsHj?@9r&E^9TEiu|&eW(=)lxgY#r22G(pq-gnC{kR-wz0wL>GWMw(Rye z6v{qzTWl@g)H&>ljwu+{?+z7f67hr(f%qxVn9(Vp0v^)$lB!x9K->I7=e%r_k&pnX z$J&-f0kEoth%DArKQSJg-6+oHWc zwz~0tzY!~dYob%af`fmQ3V`nR+#+ee=RnlRMUy_KH-22rhL?~__17^gUwpxsH*&_f z7R_*9C350F11hHW=%RyjGL(k@@&Lv2p*Zugd9jO5yxW%la%E0*>9qSOuKFwSA@k7m=CEP| zzLoq8P6c>M!#i@VVbnng;DiNRZjkNCsH*xd%A9Lv=h=7hB{^C~Mrkrd$I*@U-g))$ za3P56)(0EW-7s5hmW36CUh~&1<~Ey9=Fai8p$o>7VY!CHb09Q({61t+Yhtw}ZcV*bPeA<_yl`*k!yx}_M&_TJ4dQt6WVzURAhs`sIoTh&4DMX4)hOsClb6#F z9?szcuuvXHq1v(C(ViCAg@@g)8}_Z1gh4;`{ZA0FTy&7Ghb>Xh%P&>oS5z~tp5w@n zft)8e7p9etZ`a<{GNV+z@O7ExbhTQi(%O{r(DzjfFzCg)4GyWly113dZWWda0N6-Q zElzATJX!e(O__()RboZKo`#M&jnuEHYt5(8IZa^TV?QBzE37cd|AhZivlB`%w9DmV zyjjM^8%&mvQ9=P~bATU+(7N`!1E`XC*3HKt9Vvm89yHyx+Dj2BxFN-EJGB zle5N$YF@&MT&`JuF{Yw69aY|71+{lj$_n(ZI!Gc+2Bh?k%ASxx8zM4PB*uViFvv=6 z)+-*i>bie{Mb?~EE(xjDexvVjv%2z;nZ2;Ko_Bov_VZ-1AqMJ+`BK{aRk8!!nm$_s zfx}2L%v`N9%7R!)PC?<7iSv_mtA?QO)cthJ?w*M`g@T&2Sz~6%Iv}A*BUos@vB6t- z70t+hVRPLT2m`7vNv)So0A`m`h+Lg<9E8tqBN93>$8;~Cmwhx`Y)LkeJI`2ZCPn58 z(@~vD4O<`XK+Ci^OQFSp0coN5#^q^%$iRUHSpkO-J*DWdjg%yVI`4Uov`>Sn&!N7D zh3?oG1L%WxJ0qO2vU@<2MYn|%>*qJa+K1ez_xzb%TQu1$e)V|lFsPL;orPa>C1Zlj zd)Fsu8uDw_Sq8cPRrf<}fIAhd5ok>OLL* z=70)}LJU~`l+(`Z(g_Y2_=4|FJt{MxTwrA;V<~|4&?$%1x(E86@|K#{Y zF?4!@LBd~_tu{`kGq)uh$mA<=nRu93rN1ZU$55!oDKF)L7^$_nzvf_$N*)YDHL=mupZ?V508)iy@`m74zTbN zi;p)IaeqaUTq8-8Las`;q)eJL(IScjo4r)r1 z0m~3j`kC`Mw%VF0iTSl%V}117@&c1Y=JpvSQh?cT((o{j)8*o~Hw|Zhq_2>Ds#kWj z6#_^JpeJt=Pc&6(^~fxyoIuEH{yJgEWVt~srNw{+iP5rV+mnJKF(Nim+C2A!gu5sR z089Xwhyu_T=x}fFJFrJMc!7X#1O2hHHc)BTtJXr9SQXR(t^nxA>tNAVkwV2@4pKN# zDY!&fxLxP)px{XDQidO)J_LhkB?1BB1M|{UA7A`S#2AiPQ-0GsbDok+ddv0Nd=nGD zf9Xx+j(bs^^Op2XASKC6Z8AtXX`M_VlknEXdiq#qINfd{aoN}l0)#T(x)1Oq)ez%= zR%Piu8~*`*7m!N@T95erms+T=QjuE!09G*EZ>taeWOuUX50tpuvQVU76zc&r4Q4D5 z$sp=}y<88l2FUULUojs@f46Q3#>VNj{n1aYhT9FHn&ThNt)6e?_!>NsR(!SMzh^;! zXRu8G?`6x8_r3I>G=s%do}upvNUov$HV(TX)W=Xt%$>;grbKmQy$m|FuGVmNi)Fa; zF831MyYEOrtzugttq{yhV=sTLBnhstQ~aQ%2_yYp{0%t9GJZvsnMhXVcZ?nYatWQ*6rt3ns475nI)gBkm4vB z?mJI9>PiP}aihzhTRdM>1^!9KT)FA|JwPvXFZsXZBPSth9)g72YDcv+Vs_OFqBUTSdG z)<-QaQoMOXIXh^WTxkXlPvbEvB}^X@w>IHA<-Zd9927KB?m)V!#Q2o2+Wi|Aez5wC@`?y`MA^$Qw&9zmDx2D(VgAR`ljnCZ)+X@#KRr2)9pq++KF-AhSYiCGvFH62ZJDHU$8$d05>^RG zX}wK92p6yo?F-g>JGqel3H}H(QSc6JU2M&~g0S$0SM#e^rH+6BAby=+tH;JUQx!9$ z_w2iaaspOu2w;sBHGVPwof%c?%|kEe@p406kB2>D;qhy$O5a(dOiyGsAAPO_zXqe{ z6l}@11roK|3w zfFw%@BsX0sqNz5TJu@ne2mVD)*}?X?#gES}4gWbM4S}5WjQyrZET8A^pF?2HF`DhU z2f%J}02X4T(>x}@@f;!v#wWb4pQzT}nfmW!${mK{kPC=K%noQd^0eCg#)80}C71*f z^L?)t)ZTM>>sdjs_3r-TT~Iq083>@lBI|)zgaiH6y~cVM2^v=hB!Y08U9b^a8tKKO zsWhx}+6N#``}H{-O-uqC5vRpJZ>g+6r+!SGi%*@4k*m$rFjRad%26mPx&K5+Ml^zh z@^OyeKYKH!rLJ7?x9Sxuxk`iCNq{POX4>Q?bo72! zz|{-QANP4`_hc+ob8Y0ICYMWy%@u^NPE2eh&I8P)2|}_^7#NYRu8=?2*L55GP|!%( z-6~uA0oaz&?{JU?sJ5*^1>ybz9=sr2dE~i4aF!H>;)sDCS@8nNYM9^R3SVLw_MA@|w58;hNZ_!a6%lOx)jezhaXoQ=@5nVCwGn6j} z>K392F}VKODQYlhr#}(GIEihTVozbk4L4&Y>W_M|!f8*0*m5e@FMe|m&gv+w_yP8L zIc;W#X-x3ke>aJ{Vys{60xmrk1qliTy~Bg%b?bL(8WTTr0s=t&gGTw=&uG>>BolS+ z#5~ci=^zC3k~zL##k|2FGu7-57>MA3)h11|i=5B(SWLsou}zojuJ3^9bJ;M}^k0AH zahWs*Z8%?|u-U&nev9~_ZgUR(L(Hdey6EA>kA5;@pqb?#@8uL;X(_!_N(B&OM`;rl zgea?!bHBP`n!b{d4NNb~_?|X`$hVvi(J|0cP#!s;-=)fmYUh}1}!()-t#>k^&CD%X4aSZyZe?kh@5M1{EFM68MZXJ@E#AW7*$ zjU6%j*xCB^fhNuScv);vG4yk z8J_=cTI+wiLFk{#o&P_QP1s z_J$Kjiq$OsF{6Mhag)z^0SfA(0H>_FJ5l?=&1V%c#wi3D5kWJv=?X)B7&40HV8?Op zM4b&o{RQUTr|eXLrnfHl1O*{*U}<-MKM1>5%(#xr1_lJ9{2s%xGgEv{8oLdKc|=NmjTV`!+r%!(DD^vhHG{ zp0SN}d$^YnEvZuLN@$vs1M02@zHa)BfK%^aK<@KwBk0!lXzw+IE{be1?X(z5d%Cnn z{;qI0z{KD3wEH=L!$}=j(-uG(-fC|p zcXZc)MIvw=(%c3G0D4?vJNc%oMcywbkKjbu5`wndRO=f#p97J|JUv z(9@V=G@p{(#uk<-J&n0FSsmgu=Z>8{G6dU&zJTWyZyg4UgMy@y=;RT=^QHmtF9{^% zRjcihfV{j@m|n_p6PyfH=R`TR*k}a@z!cJ{o<1{$g6E^GK(VvtbgLIteqQG~VWrG$ zHWXKK4cYosmb_(N@XHBl?OwP4Zi(5sUXA@`d%zGU_DJ46UF`6T=gCH=p%(8Tt>-BB ze5;mj_pJsW6OP^eU1BkS_YpeVJOl_{iSamxfa~u3)?|6e+%-yx?fM&7itB~;8S34L zIO_ZbPK=$o2b(nkc#jEuR{C{3N?_+Fp`k>06% z32R+=N=N7O_3NW6Qe8{mDg_owdh{vNhS=cQUe))bIYW*Sn+f&OT-LD5qpRJzXF8IA<3Zz~(vyZ_ZH! z8XABt0QZ&*s3M2icF8lk(R6t5o2=!#R!h^;MX)<^B)y`G-APms3=y14|UP9-u#g_>9Mq?IC zoLz>=$z;1Q@H`N!z?^?0d!H^isqwoiVv!}|sNc0`i>XI;t;+rtcA7>IO$f;=S# zZH1hwx}TH$ydQ>F-*}*Eb@pVUosF|X8M3#{TT>0b;Ql=?4#n0ds)>z)e7Ds(-f1X^ z>%6$+}!%eiR`Bl)@|;13vpWSF>zU4Y^mnP z!1c}}&Ox{C@98(vFufq?5ko`5B%SHJA~$-kqS7V(*vhGp!tHRGx5{!t9CVs$xjS|a zZTHc(VBCYqU4Q|x?EeCK3xiA7PTIydSfzi4YRSFa%9Ua13p1T+`BPE1)9(aAoLZK7 z*QX&SpqG-T)&K?6U1|7*k%$e>UGE=a{qD|Ac?J+R4>!jW&wksFAKy41amwaY0Z1ZT zwEIhB__Eob=fVXj{{anpmdVg`93lqzPX|t>^NQ4}%Dde2yPnsu=H_Qt$CJuH5T1&S z{@a^0rx-wtY)d^%(_Ps4c9e%eO;|=AKw$wtN-Px3Mpoa*WcvWE+@RH@)KvdgOJ!Ze zY8;Y~)%7``GoB&lZTkv9Ws!9k!eia}`6zz$jOQukx@q@s{E$vWBMixsT;1B-bQ0M| zEUyLk5D>!O4_O+B#EoUpmc*_CcyXYot#=yL$}06`SU1oIHDIZRDz6ZZU-*Y0#1Dx9 z%ls(BD8PXC^aWSO+yTN73cmoNcmFi@KVV4ywb-8Dp6u}Q{a~?LI&*r<5@{eO?(+^= z++XpB0`{ZV@83JF>xqfv1sEPHj+f^b)Wh^ti32|CL9f41Jbep)yUYLR{<=p5?Jl_l z%AIG=btAl&Z#2fWBnG(cQsxOKpF5>cYo&SpQ%Xzm|KVS{Ck{vywz@r)YhR29o5QU- zSL_#UxvguV*#<^Q&}A8Ngy<;2qO78k4@y(-K_8xa-Y99uI?TNTJ~CKSWoURQaean9 zu`_-8^4mI?T2P9b6(t=-1TlFZuR2y+^Bmf6lY%_Km-v`~>22ztcz*0m6XPrANq4dW zq5>%e!+=&&(<>DPWO^hH?bzp_Kjl`?MJbJ-^m|wIXX-xpa}>e(sVJu1VqM*DDKnJV zs7o6Qdyfe3Nnvx-xmn`H=LAl)P!#)$Ue*Bo13UciGZjrL^ z2F6~RCtw;=aH*a&$fUy7qQQeC`>#a*`gM5Cy5+?x78%b;+C&XP(Bl)Bs3?pTASU_~ zu7z@3Mugq;w9FF;J8!G742Le+FQ3;Wz03w(ZX6XJ@ybM4^NJp+;qPV39~W9)P+|WY zCNO^Rl&y|&o%TTkV`dL6$lV0mmX0uAsy`_5J+DE~Md4^NUJU4wlc3VhuTU~a?qM8- zEm7sPh?3~TXV8L!yC#B0>bghwybe>9ke1!7&>Hd7A^bFGk(1=5sqNz+8ww`AqN}U? zI4Pqo?s&uxy#TYI>A@Da3bK&9rr+NN28jsXr0{o+8!G(mwvdtVLPdSVbJaD?69x3H z?>P`EiXzDi%Pcw8GR0s2{Tc**c+lXWb=&s5CirDKc-(9o?qqO>;G?C(b_p^~9-5-j z?|~WMR524AZNCQXEo%^lP|xfnjQE%$%nI?5JJ*mw4Rz<05hG)aeOx)MNa<%ugxJ$l zqNHP|cO&X%m)8mfvy^ebvmyG#tZ%)Gh7$;fiZZa-u~bfnOmE)>st=T@S1q`j*ZHr{ z)GffqUOQGLA3Q1I`4xmLE75?7oV&0a2L&I1T0aUwII83;CeIu2Ub3fvr6L;6F`BW& z=Z??eB6VqCT&V-L+13BHb=z^l>cN2n_t-~ZkKiND4y?bsTf6{zPZyg)2b#6aMw8Sj zDwM4LZEBSJ_Y#K%$H>U|Z`P_vE+_N{TdEC=OCJ&TfOuNz<K*8JMG1*A{D2=r1Mydy*}-&yOb9ItYT1>v*jWP(boA2#JHyd)Ozs2|4RBHmQA zXRDDgMe^Ah~vjbz(Wqr&^LRNC6JoZ+4{ziESYWgateL5I;ia7KY zpdQ)Pzf*Me3zUr@YsFE1pguxR4&2g7)3a8BX$+us*;an zzy8a|TN&%*Dru(Di4)4#ZY@sV7Zw&}UX3XpEs(El8FXSCSn zW0>1I$yd8+Qo&hD1yZi37IQ9}7%*@smui)c02aSBJQkdYdX2@`=7#~<0PYH?|HFzb zw}~tpkEv%EIb{V8>EFK}y4qa7)!$BFe@B2mUZ5&uX}P~3l*nPZytmM5_yZIGAN)i< z-5(2v6EbgzTGnr48V%k+;ijoj$58q{%zUN_9MtJw4!;~Ay@`dBS_^Rs94 znsr|=pn_wKM!QR;J|jUQ4l^maMH_+JWuJ$F)77@)MIw=PBK*Mmr* z0+<4}HC61R?HS+e^O)MTz->QMnZRL*0H#)E(#^mbVs!i?`lz7}OP*Txn@uFO`&pwb zh`FJYGk;bsg&Kh0JMzH+9Oo0_i?({$p}y=j+^dnhBiDv#O?`SoA=7De%^4J;FC-(CuhLXo(u%rQxJfrRuz*w!3uN z(-~(J zUQ6W8cR`+@)~capp~`1@a{El39@kSeNA1EwOxXR0YUwIEF>?e~wv6sbRtSRcJUep+ z$CxT?)r2PVx(V!p6OFyHPi?L*%F#)ANO~m%-3zK$c^VR!XThV+))0C%To>%sWtk{K zGo;g%NKBX6Lz0&?V}qx+J5f&%=Y^1(i=!b6CLr zTD}tEYJ#n*JuH+YuytN9O=-cs{{llFiLX8?^Bjl)#hIS58Y?S{AISVCNpUVRe5aR}c|03)-40j|Adcu{ojN##5$b zhN>g+sRFo6y+3VQ5wrjnhbjJOTS-{>rT>u1zN%H4Zuxy~LrkOaNM$IJzZz`$#pNO* z`S^ptt`T+@6*YD$2KZ21&p&~=_9=XD;0G>LlHIei^ib==>CnF@h=WE9}U4BUn>z24Dh;G559=~BSTf+c@uB%flXWd>c zT)p#B%AW>N{Hi)xZAbI@j!%JMu2XYBSj`7TQ_|kv{@(mEu&fUgN*kf02>B}MXmafu z-?<~RB|Dif)_p0Fk|$joG+F-v_4d*lhm=RN=X8Dmws!?x@d0n4A2o8G8tnfzZv{RU zsV%?=g4Y@z%~jv+W@X+8YsLNMBrW`-Eu2y;PO$LIQ+<2tI%F^4euep*l*Y`nj~_qA zowTpzY1MC(JuAs1!+EU^S%lCvp~l7?&A5cRk)5DN+2O<$R+GPMZx3 z4PEW$)S`p9R3~a(DtM+UK8TeX^}B3^`@1Y;#uiVS*B!5J!ajZa^kkIT{O(fcYbN&(*RuDb|V3!|I&@8@v*Zi<>y3%50fY zTwtwyTp1!RsCl>0} zOBIQe^=|mZ#UT>X(kr!AP~$%RZ+WnHmuvL&VfE`B-mtEnMVMaQ-c0Eyf3ZhIL_NXq z?AHtL=HTFGE`qedB)v?ydNB;W)p}n*fsO(pgRB%*mW=Mj5gZitfCGSs zE9Y_TtINz=y@3z&>Rd2v_|3IuRR%>PJWyU6{ z2ZMP3l?5?bex<9y(0@RKC}C)9$eim5|4SSiun|kS{O!$h&^8wo*S z&ijA;e;wrfnsDc;3+T<^3J7Ekii zQl`Hn;@O^IyNi%-O=;wn+ACJM98~l};{ZEHv>yhw<8B8%?*6=d^ym??Si;Qm=dQh# ztt}=y>_%$TlPu@Om*Je|6$Ie-!_!oUzKz%wke*Ph37UEa=8@w81|FX%{MYW6$OiX~ z2jLVSPe6FtTG| zL>%ocqa5=y&i6#pVYJ9*>x-E|l{*2edU~sb8GLSDnZ>eCqsF&NgIg1Xqt@9heeYHg zH4^pSXg=>E5W>iA&b{_vsoq`_)hYu*1sixW6#W#pq!K`NjS3ep!AQMuRhH{^Z;!eBp83;gwJD_drX}78Vz>`5DvZf^- z>1vlw%NW_d`S0JKql*k{U%C0r+)I7d|J`EqPJ@CqmGeQw4>la~Y}!KF4HeLzV)mEf z6U|zeJrj=8az-dNTY`{B?#E)Bn!X>R(Nk^)F(nPBql_@jMc^>E!Mrq~&7NS`WR1(z ziWDR%5Zwu}_$4`;NV|d$o?s^OLQ}6h3VpCg$e$X4CJD+& zPK`rso)j)b#T;x{4sT{2OX(5gB3Q0I8&NQ!h%r^d2?+BjfoS0Y<#g|fpGU3b+RS?v zxiAH+e$V)n3t>xa27L0411Kv`?e2!UEm~R%wdzr<&4PdC!`Jhydq)9Q(JJ$>t#6)z z^@0!jZbx+5O_X2P!XiX(akAJR{<^s~+ejKRJgiG2kOX%qZE77EGwwClqo$rI4vbQO}UpQtA+XQIS@9)ci z$TzwmI2EnkTVjlelu>NvJr=cIQ3j2FAhSfzl#mcS`NO}Ev6T4@+(z3s>O8E=exV$B z^7buU%dEj8+FY79s|Tcra1GB31rBvzvKja;51!vU=FpU}$BYNe=nya@VNrD5;W~NW?1z*9d{GJvlqF{r=YgJWbi@6sCnI0+ype0e z12cr1^mY$+)0}53uZHj*Q*IhheSN}L+I&QT#|rJ<#LEcYE<**rn7=Z8iaFo~j=GDU zgNtKpR>tLmko8J<&b~3WHkcU^C>J_Y@9jr}=Qvs-PsSp{JfQ48QIBp0ICFE#QQdGpB8__cZ2MJGg zZi*it|EQ-{HHB{2nuLzbS3V8pngUq%4h%Bh8c7_g-6?UCJ?Y9y>JN@L^#Ndu{?4%y zl&gh#C1HvYgv%e?t>#>GZjAPn99G0aWY6nq)1$Qx2r92jiA9q%9~=kC&Y@zph>GMfH7+j;4X-%S@)(rFxACm44(XhgM%j+Gp)gV58I|=n*^?}{{ZLQ zp%>gP=scd4cmmly0W&Pon5mB(==o>Bm!uHWE3m2&9-W?a&?0G3 z?S_5^7>(j`Bp>7A+5iaR>asxs=gqs7;$&1KgoV{ZFTgufkz2^OM4Qt zU!Jat$LsEa^YTkGKm_&XWds(5EOY$hg~9ZKBLLu*PGnP6H=6pb8|yA?4vU^${0!jK zb;cY|q*mOHXV14w@?+Byd*1=4_WeM)u@Jw2uEukN??5Q+jt=2AC$c1KGg* zj#c;3Gri;zCynEGd}f15!I(AMy_Kia5JK{mqqx7xC}T)w8?Ki;90!57tsxv;Lnrq_ z(xnN@1IqFN7N?5lxB>uEdpi<`UBIG~&D2)S&H8ceT?@Ym7qRMis*&PMNBnnwT3t4@~ z&P((e6-8AU)0PIex@<1BfYf=jR`cA;fX=Py=8UajEa-jjpYY*qZD&~)`&aR2Og%M8 z0PyFF9xJ1TdMgl+edgD`yKj&;kp4)v8PKw`86x@92SHHJtrEt-p!nVA-hiUUE&7*- zq{}`J&qNyTt68dOMf)T|^U|>lg6C|)N7Qv)iHI%C+lamXZ(WOvR%^Aj?Zd@JIR^^C zvM&di1(tT~MgNXA5&;CA8+=OGaer!BNNL>9MUTQ=T2n($9Cbk(h$wrljOzANsaFCz9{bWd9guS3 z2Fg3JKbJsLk)WRrlRkgD77rdF5Fn+R%}Go`@~U;j>JcayQLo^IjU?ub4Rd1@P%bG46jXLo(slaO+s%4{D1;-<$ zc?uRSnzZHrO*LuXjD531OC6KQBm}n>{8KO)E_E~WwmIx5rcc}Zzdln;T61;cyW4{Z zRCp9!1W_>iP~i0`oEYp`##9pTxt>YKz;IUazk>e z`yR%+BM#;xVy-e8-I?<5!{mJ4mk+``RSg(P|0kdJR#zp4r4bJoi{UWH7RY-vg^N4& z%1>8$rHW4nt~!|(mWhFzYy%7n9xlL)uQb5{$0gp^>!>vTz4!&>o9nYh9 zj2>@*U>tuABy03k1Ma-MDJNyRy7lhUJsU%|SmCFlx@}`r$b+lYtBnzR&NYz+qVkK- zTvNJax+bo&po)!NWJR;}#q}cjL|96n@t&CojGxsS4qH1rw$ra6 zBnrX`dI^9HJk;LVIaK_J2#<#EILf9!C1Yz+VXPFH>eBT5U?3gF0tfGTJgKlDV-|n4 z&n*4SU}mb?dA{I+o_U$Rezm&>l+W9pQTXq6wlSl@qGv6K;NB(Q{cqD&*(rlt z!I!o}J|rI)T6UoDrn#eMJv|k$QPXFKyh;58h?M=caYf8P<6jxqx23GO{OrIDz}uDi z%=Q!MnJylc0CBr-9;kb553t7qn zsG8UvZEtV!2PMr3=&9=8&1WE_KBP8F)Ga8hnP~<3X}hTsX3=KM*87*^MlZA}bC*D- zJm(!G^Nle?oYsfiTlQ8Z4OjyycRL0CN#pyWU=@53+84v&oNCL8$YW2;D;_IL8O9v0(% zHQ!V{1vG%RILL0PpS|FWV(2J0#|lon&fM5XPpz(&%i>(87Z_Z$+Dg#=Q`}}U(Ttjf zWqq~0fEkBrbz=vGC7GhB^rAJiG;*IQR%)$)NBruB!}NDz1?&kaGX#+Cys20-9v*G4 zs^UFe%)ZlZZ4uGgK|2y)tpfuMV&YEUg)Qa3L-j;5KI?P8OJ+a`*EG+RZAI=Nn*y75 z{=2XyXRO1Xy@!yF4wb!!YNEC&KR9LDlwZFdH>K~fn+0OIOHU81n+{KOa6f===>8LQ z{JYGO3-Aq)-SF+vRVQ0(>)0gUw02~tLA^KmBO1Zyz|Z5oR#x2X$~v=J{5ojrqNj3@2$=71I`Xov=ZI$-j5=3a-FO}r|E8ctJiH3>X3a~3ti4nM>BU=opLs9@5&#hbUo z5P^c&gx_4FjASVRARFzTNkU9KpKP0f1V5Hw%}<0JXaWw_Ie|D2=dZl$^`>UT!PIc8(ilJ43Szonu*J?9vsU;Gy5FkSvpiLzSouK$LQZ%IzlfuMRjm_6`h zi#&1Y9!xH^VVZAkf}ZZZ(s_jo$D3C6s;@DC6;bi>(&Ya2$Ngh!yyjyS{A!`o-?vdj zpd{js5Wa&sboq7XhvbyI&-|%IKVNyTw3mWoQr_w&kPxXS4n@dG#J!b{62>@qXiGs8 ztzXIr!#k#y5@vJAMNhc?X zDthm)$P>>mMl$UTZ?@!41{KkNJP+&0z)guIg$*sYJPysZi&rqOOCxB`jx_%K>OPxW z{jiK4Pu7LJbH~snSY$%*+D1uC-meiWs`uG@l1Z+W{Ga5J2m(pY)hx~nBIMJE-5rrpd>e5K+1Pu@8;!YS&K zOrS6X*eWz54{JA`4t;h>`6}I$sXVVpU0coydWA<<@>Rnl3IbwFdvTkl_C^i| z%TGAN>uy~Snxid)7Eh_|i90R~GN{0?HdyEs`9snGnqp{k*}MJ+xid+VW~743i<5ia zC&$caLWI(4p|XSgR}~IWMf4%znwHI^8~++k->$8hY~Kk=bjDln2b!qGZ+E*Z`6b)) zox)8VF~K}XwFL9OpMKzQt0i5?uHVe+MGKH+a5Z@^{wc?<9wcGbm=|;N4i~N}7RZ4- z6330#P~R~AHhQ8-;9MT?Di$aWZC+f&zPy>#FV8Awm{V|KFS>A0v5i*lQj-nTj zq?SuukMkEGm6u5K#vab{pX~1PlO3W0UJsX;W%>j9t>2!phw=#X_TzBz4m0iU= zXjd%l9RjxU)=tfF-7Vby*)a?@73hYDFGXWKgl zfsnswl)726)Ubl3Vxsgu{5CC)rUlhw39EOK?IRR_ij`ER4CvwXcWdv(w$aJM@0>$8 zJ}(7j;Wh$yUc=pX=<=32#okj`8^O}+y&?wAZuEri^^t-X@euwT#F|UjV=b6q~IPA zzngHFhEk6(cp^?N-6y_WJ~Gbt*jlR*jiFSDoH7}wHfZQ9?|3Rfr7c0D$sj;VFdzHn ziXok}4sySID-ZtejgAB%)dAXkMqN1vED4X~WsiOZiu7$u38=KPTmuwUHDy z9yO8V8bbe!&FEx3!w8Pa->Eg;GjZ#PuXG+F3{fg8gCT36nP4KCM?XGHX{3r@+&s*p z2FjmtbS)l^N;j$ZhHa%?wCPww)Q2LV(|q-@{S_bnG7Upre+}&xIGj>JK_LxDU&1c| zSJ8`ZMQfiI>ZbfK7c&>51GX-ye~Fu#gaHk3PqH z;&`xtd5()0Fa1EO!^%}M83NZafB^cRG4e#MqYvhvSvauO@pG>`Kwku_t~w;(aDymv1jEE%ohJY49~(5h$#_Y8{`o6u|ooKtMZ8~ zw$nrvhw&VH#;|E*Ep*EIha|~5`SnzR7vpTO4;37{YA=6;00vKKyA-m`$hsFAhL;12 zdq+w^jQm1_R+Fu4uTjmOIuL?!r_i!jEp zqU<06t<@iVP#J2w{YAM{@^bvXEa(J0S+)8J^Y7=q^zvsM2To+yCX!(+>Tu7&B|1XiWDQY~E@A5Xz1>3~v9KL^exwD)cov~7LvM39v{4}^m&k$kkg}W( ziSrjXAz&pvsP(LUS4y+WBfTMCM#3B)2!Am zzQ-6dXd034t7D84Dk(W18fDOtiPdErfzRvxnef=E(dXSYOze#qwA=RAX!2IggBkzM z&nxZ4)qP)uV%@*)hR|Q5f6#}hqpGnW_*4$JE-NL^E8#RcPV4;w(-8Vq`H1xuyF+4r zHP~-QyQg}xW}wwFi~n|2k1r#hzN9TDN$h3t?A%bPoZugnPXM zPb|Kj!ioHXc+u@l)YfjX>cF&z-;z`!SH{Mjr6!TFKi>6Q2Q{u6S%Uu2py^L+(iPkR zDU{{CR>W^faHY=3h+C3UWLhAX=%NVf>$5qz%ApPK=PMoBGPziTsYmLP_wSm2u!WK~ z;fNs3&XUBT#)G>w@YIfJ)?5!HGqvm((5;)p`)|(wwYV7SCFdJdn_+&pO`A6Z= zdA8BLc&Hc)OL)bukWo2&OXRnX{Y3R8ES3fjl%IC>sbo2a{tQVC#rVXglm9WqpwL2e z#pnC`(A8kxOxxckjst(}Q6>V@VZTwv+P+PHto5#5pK36!q9;?DYk$UV&#kI{cBpZ3 z!tc30N>q5~gBAix2IEnH+L@RlzvJ%|>vK$kLNex*b~u0PErRCcE(%&d{W}|Ap6?X( z{ZBAf;)nx2wrt;B*|?~UH)-n5oqA^YbnUnwDt_Ma+i$oSkpx=F&Ux48BfuziH_Y-Z zhDX|Gqc=uWVSXcP-3mUyU!*S`^L5gzyT99J;-l32)J>O`mJ%mM;+Uc+(AOa^Im6X_ zgW`+jiih2q^U7!p0W_Bi2bpS5G9y>IM@taA-$!BKKvdqmZ#+U#am3=trTIfbielqD zXsmg@@jucR7G##x$Vc-Rn3h?T!A8s@X-=eafE`eau^IFmQ}qytj1C{o*J_qw;rB7A zt(|DVp5U88!51A81h<)31I~0j>mBiUgEO>TRrpI7A%EVspVPgA>_n=n@&gNgh^-om z8G3-b^^D~{#W%wRy%B$!Pg}ty3`{n4>k2{TU-c?)vAZ;8fc^sj3(Sg{+N z?xMdN#8JP|ghq;D?52lTj1)aC4EgZOaJbk^NcN7Tb_$S|VoW6V{Rz0a;tWN)~IhCFC#e%iK1t>EasmCDj-9L zU|Q$aX;Js-XsAKKJrEXm0YVb(8IrKxW?=6`Nq;WT4->Aat^{ zKzc2m$rJ7m7d5W;SS5tNx(iBq!h@z&m z+G%J)<}@ZNV0fjy(I!iV=jWSkBa+S4nJ6p1Lnbmr6%pYSFhE|PM&T`Rnhbd%f&uLM zL0#D6zuzV6HO}{)1Rg$Wf49cM(tgTENXcWwYB4R1@8sk}IQ8@$GrUiwjfP3vG4u0w zkBSzDHht;cXGX9UcLH_fmbaz0t$Lo3Q4vw5|*U= zW-)H(TqFZ0AI=fFb3#vNLk)mpc&Hq1Zn#h1*EAA2afTA1z*fB)ZhdI0iLND!C{cC{ zUvKyRt6EVKRM;^4MJhS3oFE*w(^x2Cto{Alul)Ist$wh)V+XWI-5$f^hww78}u}_(usBVkYc{YGVvg!IIt1U@Q<=eyUx9o%>j%OQV^_hFSwe2@yJgq z>EtBnT#E8mrAh}IVlNWw0xwB>p;&MiCPx(KKX-1|8%m}x4B3gr#m5>;jewe+muv5> z-Ydlcy@dJoqTRK9zILw_DV(XxukB$LB3EKp3XR=e%!=2ERpC(6itYrpRzeAwjHYY; z%M+c+LRcEk_swq_Wb45|t?!}gbPy>b@JKbMy4iCpP#)teB9K_2J#}t5w+nx{OpJau zFBkpjW+#wqe3$9SyId5~zI>Tv-;0~JXfazcnk(%P`Fn|cwXh+qI8|a3H5m`cJ02G! z+%8hn`w?M>>olRFDS6k|lO3=vE@K=EPmla+fu`ujjobJ_hjnSBqjh(BFZ`Wsl;BM~ z`?(Si{mS&Hc|OK>79>1X?RX2MKsYs0whpdJTs4s)#7pdjx(`J2Dwa$4vh(r=g{p=1 zOhjKV@sn1!8dT2NVh_=J>vcYCRjb1Ub5o`Aw!OIuekaRkn@hZKD(DtP2nv?+HY0$J`M@>tKE{1iQPpIF2QR>gm1919OnW_rUie61BHJnBS@$X0qz;Kf=@Dq*pdg#I zn`W~UBTn<_U;*#G!6h0W0z|2NF9ERKgCZLa-w(xVHOZx(G%&fB{}xUm!KU}rs;Uam zu}pop7rl5X^slEqWddIsP)Mw5t#&k^2QU{7*H;A(gSs!`I=~l-LzYtsQHl@8=C|@p zTg`oZ8l)(Yva|)_d>%LHeB*6QP;uEirt2G)JQ7z zLqEG78fn__(041lNp3f|ImEh)0!|QP1TfT_2hTegM@zuzq`Hd1CJ<2nU~6WURM@PF02iIrn3$-(F zT06yt&cYc`k4~I5_!=@u9gozNdDv!IQ7&@ig@wbA;S}qF;_BkUTkRi?*xkZE3we&_ z8?lDW$kg}^u#Ptqg(UeCp!gDAv2?e&5!usC;REp$yFzojKbZZcmvL^P2hx9*z3Vc# zP9EcQZR!(-Q+8fT9uw}Ozr8BxIQwmO$YZ$+j>04l2`5A9e1<|qKqU+ABDs z>D4PoXxa;*sCAp^Y!2BjUiJc=<~zEYR~maYUN=0NZJ8w z_&PIKXzpi^&R&jPrDFJ5&ChrgyyOXp|ANDrb0w#!FtGLYy{_phQHjY3Dpu;2fIYnD zx`>K{!IXRzts+o6+iO-<*hYGe{Wp w{42)F2Aw|sm6ZNJs4xF# diff --git a/client/test/widget/settings_ia_test.dart b/client/test/widget/settings_ia_test.dart index 0938f28..4fca0d6 100644 --- a/client/test/widget/settings_ia_test.dart +++ b/client/test/widget/settings_ia_test.dart @@ -10,6 +10,7 @@ import 'package:pangolin_vpn/bridge/vpn_bridge_mock.dart'; import 'package:pangolin_vpn/bridge/vpn_bridge_provider.dart'; import 'package:pangolin_vpn/l10n/app_text.dart'; import 'package:pangolin_vpn/l10n/strings_zh.dart'; +import 'package:pangolin_vpn/models/routing_profile.dart'; import 'package:pangolin_vpn/pangolin_theme.dart'; import 'package:pangolin_vpn/screens/settings_page.dart'; import 'package:pangolin_vpn/services/token_store.dart'; @@ -18,6 +19,8 @@ import 'package:pangolin_vpn/shell/home_shell.dart'; import 'package:pangolin_vpn/state/app_providers.dart'; import 'package:pangolin_vpn/state/auth_provider.dart'; import 'package:pangolin_vpn/state/navigation_provider.dart'; +import 'package:pangolin_vpn/state/routing_provider.dart'; +import 'package:pangolin_vpn/widgets/routing_screen.dart'; import '../helpers/harness.dart'; @@ -82,4 +85,52 @@ void main() { debugDefaultTargetPlatformOverride = null; } }); + + testWidgets('settings 连接组:smartRoute 开关被「分流规则」下钻行取代(标题+当前模式pill+chevron),点击导航到 RoutingScreen', + (tester) async { + debugDefaultTargetPlatformOverride = TargetPlatform.windows; + tester.view.physicalSize = const Size(920, 1400); + tester.view.devicePixelRatio = 1.0; + addTearDown(tester.view.resetPhysicalSize); + addTearDown(tester.view.resetDevicePixelRatio); + try { + await tester.pumpWidget(ProviderScope( + overrides: [ + tokenStoreProvider.overrideWithValue(const _NullTokenStore()), + vpnBridgeProvider.overrideWithValue(VpnBridgeMock()), + appTextProvider.overrideWithValue(t), + navViewProvider.overrideWith((ref) => NavView.settings), + routingProfileProvider.overrideWith(() => _FakeRoutingNotifier(const RoutingProfile(mode: 'global'))), + ], + child: MaterialApp( + debugShowCheckedModeBanner: false, + theme: PangolinTheme.light, + home: const HomeShell(), + ), + )); + await tester.pumpAndSettle(); + + // 旧的 smartRoute 布尔开关行已消失。 + expect(find.descendant(of: find.byType(SettingsPage), matching: find.text(t.smartRoute)), findsNothing); + + // 新的下钻行:标题「分流规则」+ 当前模式(全局代理)pill。 + final routingRow = find.descendant(of: find.byType(SettingsPage), matching: find.text(t.routingRulesTitle)); + expect(routingRow, findsOneWidget); + expect(find.descendant(of: find.byType(SettingsPage), matching: find.text(t.routingModeGlobal)), findsOneWidget); + + await tester.tap(routingRow); + await tester.pumpAndSettle(); + + expect(find.byType(RoutingScreen), findsOneWidget); + } finally { + debugDefaultTargetPlatformOverride = null; + } + }); +} + +class _FakeRoutingNotifier extends RoutingProfileNotifier { + _FakeRoutingNotifier(this._v); + final RoutingProfile _v; + @override + Future build() async => _v; }