From e392221045249ff2e2fc81a59d87731586637fcf Mon Sep 17 00:00:00 2001 From: chy Date: Tue, 3 Feb 2026 15:50:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=91=A3=E6=BD=98=E7=A5=A5?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-local.yaml | 16 ++++++------ .../target/classes/application-local.yaml | 16 ++++++------ .../framework/entity/ReportFieldEntity.java | 8 ++++++ .../framework/params/vo/ReportFieldVo.java | 7 +++++ .../service/impl/ReportServiceImpl.java | 3 ++- .../framework/entity/ReportFieldEntity.class | Bin 7277 -> 7773 bytes .../framework/params/vo/ReportFieldVo.class | Bin 6974 -> 8074 bytes .../service/impl/ReportServiceImpl.class | Bin 23912 -> 24017 bytes .../spring-configuration-metadata.json | 6 ++--- .../convert/codegen/CodegenConvertImpl.java | 4 +-- .../convert/config/ConfigConvertImpl.java | 4 +-- .../convert/file/FileConfigConvertImpl.java | 4 +-- .../convert/redis/RedisConvertImpl.java | 4 +-- .../config/convert/auth/AuthConvertImpl.java | 4 +-- .../convert/logger/OperateLogConvertImpl.java | 4 +-- .../convert/mail/MailAccountConvertImpl.java | 4 +-- .../convert/oauth2/OAuth2OpenConvertImpl.java | 4 +-- .../convert/social/SocialUserConvertImpl.java | 4 +-- .../convert/tenant/TenantConvertImpl.java | 4 +-- .../config/convert/user/UserConvertImpl.java | 4 +-- .../spring-configuration-metadata.json | 24 ++++++------------ .../spring-configuration-metadata.json | 3 +-- .../spring-configuration-metadata.json | 3 +-- .../spring-configuration-metadata.json | 15 ++++------- .../spring-configuration-metadata.json | 3 +-- .../spring-configuration-metadata.json | 12 +++------ .../spring-configuration-metadata.json | 6 ++--- 27 files changed, 79 insertions(+), 87 deletions(-) diff --git a/lidee-admin/src/main/resources/application-local.yaml b/lidee-admin/src/main/resources/application-local.yaml index 703a0b7..60d36ac 100644 --- a/lidee-admin/src/main/resources/application-local.yaml +++ b/lidee-admin/src/main/resources/application-local.yaml @@ -9,28 +9,28 @@ spring: datasource: master: # MYSQL数据库 主库,业务库 - url: jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://127.0.0.1:3306/bpmformdome?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 lideeyunji: # 从库,框架库 - url: jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://127.0.0.1:3306/bpmformdome?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 slave: # 日志库单独 lazy: true # 开启懒加载,保证启动速度 - url: jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://127.0.0.1:3306/bpmformdome?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 bidb: # 日志库单独 lazy: true # 开启懒加载,保证启动速度 url: jdbc:mysql://127.0.0.1:3306/erp_bi_data?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 redis: host: 127.0.0.1 # 地址 port: 6379 # 端口 database: 2 # 数据库索引 - password: lidee@123 # 密码,建议生产环境开启 + #password: lidee@123 # 密码,建议生产环境开启 --- #################### 地代码平台相关配置 #################### diff --git a/lidee-admin/target/classes/application-local.yaml b/lidee-admin/target/classes/application-local.yaml index 703a0b7..60d36ac 100644 --- a/lidee-admin/target/classes/application-local.yaml +++ b/lidee-admin/target/classes/application-local.yaml @@ -9,28 +9,28 @@ spring: datasource: master: # MYSQL数据库 主库,业务库 - url: jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://127.0.0.1:3306/bpmformdome?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 lideeyunji: # 从库,框架库 - url: jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://127.0.0.1:3306/bpmformdome?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 slave: # 日志库单独 lazy: true # 开启懒加载,保证启动速度 - url: jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://127.0.0.1:3306/bpmformdome?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 bidb: # 日志库单独 lazy: true # 开启懒加载,保证启动速度 url: jdbc:mysql://127.0.0.1:3306/erp_bi_data?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 username: root - password: root + password: 123456 redis: host: 127.0.0.1 # 地址 port: 6379 # 端口 database: 2 # 数据库索引 - password: lidee@123 # 密码,建议生产环境开启 + #password: lidee@123 # 密码,建议生产环境开启 --- #################### 地代码平台相关配置 #################### diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/ReportFieldEntity.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/ReportFieldEntity.java index 69705a2..21cd4c5 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/ReportFieldEntity.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/ReportFieldEntity.java @@ -69,10 +69,18 @@ public class ReportFieldEntity extends BaseTenantEntity { */ private String isShowSort; + + /** * 国际化配置 */ private String labelI18n; + + /** + * 是否合计 空不合计 非空SQL是要返回的合计字段 + */ + private String isAmount; + } diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/params/vo/ReportFieldVo.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/params/vo/ReportFieldVo.java index 2eb2c6d..8900e79 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/params/vo/ReportFieldVo.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/params/vo/ReportFieldVo.java @@ -39,9 +39,16 @@ public class ReportFieldVo extends ReportFieldIdVo { @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") private String isModify; + /** * 国际化配置 */ private String labelI18n; + + @Schema(description = "是否合计") + private String isAmount ; + + @Schema(description = "是否支持维度;N=不支持 Y=支持") + private String isDimension ; } diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/ReportServiceImpl.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/ReportServiceImpl.java index 0490f31..df7cf45 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/ReportServiceImpl.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/ReportServiceImpl.java @@ -371,13 +371,14 @@ public class ReportServiceImpl extends ServiceImpl i entity.setFieldName(vo.getFieldName()); entity.setFieldType(vo.getFieldType()); entity.setSortNum(++sortNum); - entity.setQueryIsDb(vo.getQueryIsDb()); entity.setQueryIsWeb(vo.getQueryIsWeb()); entity.setQueryMode(vo.getQueryMode()); entity.setDictCode(vo.getDictCode()); entity.setIsExport(vo.getIsExport()); entity.setIsShowSort(vo.getIsShowSort()); + entity.setIsShowSort(vo.getIsDimension()); + entity.setIsAmount(vo.getIsAmount()); entity.setLabelI18n(vo.getLabelI18n()); if (FuncBase.isEmpty(vo.getId())) {//新增 addList.add(entity); diff --git a/lidee-core/target/classes/com/lideeyunji/core/framework/entity/ReportFieldEntity.class b/lidee-core/target/classes/com/lideeyunji/core/framework/entity/ReportFieldEntity.class index f07a222fa95fb8b7503587526cc68c721e71a946..0582528ac4eaf63e11e3ce66f8036cdbae0c8753 100644 GIT binary patch literal 7773 zcmc&%X>?sx72YR#!+rB>+6*@hC6rLpB<-_UDBiY6I$9nE&byk*AnWt&pCI<>n(l257$c0*=O%> zf9Kq@_u1#X$6vhn0U}yWe~Z%^+8?7;bSpRC<>oeSZs+C>Ztmpfd)(Z`&E4D_;N~DV zhq$>XO83SoL;DT7kNfX4>-`2j5Qp&xta;F&hj{QqgC6GoM+W_v`@;r3!u_KLJ;wdx z2K|KlpBnTt?tgC3FS!4uLBHbu*9QHD`zH)~lKbBp^gHffBqO8AsQb$F&+F98!-S11)~X9{ZV zUw(n0kRr*97D_f2HDOn_=O>Eto63{<;syCifyY`Is!bQFg3cJ7EYIYMg(=&ftCw~c za+BqXo!eQ#w_Z`M?8(`sTA?;VRxuDISvlq2D#7e^BBCHW}oxD%}#kkx!HQNYlR!kB+%CkU@{YJc=FmmaF_pF~mDRT4 zDA||S^F{1&yZ_V9o!D(p*48e+Sdb{suMOHHC|s^h+Z916K2LpKok>f*Pmz=Ww_>D} z-5sZ;*;k1&3gFZDASy5VDsFy=(kO_oMqHUR#IKQS(Fz%YtXhm;<>OIt@$)E+ z+7qw7={@lj3gA^e4e%5hxe|XZ)GP6;)Jl9cQm@3PaVBy??@r_>QscG!T9q-B+Yto*ylo?6n~@oiBNe+^FQO#Jd;vH5+~CIhd|}iB z6)-)}hpf*RgoHDY0f?)S+Sgd0w}r7jZ?_VVz1)xY`8I%I&bP+L%k|2ny`{jHL&s62 zeI;Lzg3N8WWC}C(1%+w>*T!(ERIcS~g>ng}Bq!_IM7}&zm@3zEGjkKLRA-CzYA)~M za&jyAGjUmj_vVXrzKi57vqPPe9dcKa^hO#<(i!ynBw4gJN$a>-&&`?ih9sTE(l9q0 zxY@|fCT=!!vxS?p2~%`>7rQ#v8|sDP6ratmqrS1fTA#Hm>yz|XdNxV3v<=tUP_J`( zp+A?-W8-tExOLPJc)x}!n#2>1+YC10spu9xWx!C~S+gx9j6i{8tDzRM9>96cX zkfiIVlBCP2f}@k9&(LQD4L4BL%H^W(aiLxuGx)+{Zdb89kuT;pi}lkliqgC}!}S~xu+wQz>Y z9!V;D$<3UE$0I*$iB@1V+%Ao^SZEDM03JRHOL*+f|^Wr8MyI9r?M^=k>T+(8oaJE7bkm%CA-kMsOHRBKq2e0yEOMW3=0o>U z=Awg?ZCh}F+HgxRMAx>6~Hg z`zX1>3>~1=4q}NF24sm9F~f|B9HzE?lrqC+#0ToKq5ySSh8bm$p+Qm8@PWFm7(m@t z+>9|Ou0b&~?gRB$34nU6q?uq)QiCA*K)qH9pk6C&rWlmgpp=>RftFesfR) z24&2w57cKZ0I1JuGZ!$ZO@kJgh=98V%dCX}EwdJx3mLRXgBF^|A{W$ewFA^|b(rl8 z>d>Hev%?1(usQ)6u)54n26bsrr-|fqnT9MApdqWd~OZCel@bLi>^Yt>nE%(|qZQK9wZSt=STzD%EgM+Qq-Aju&bRtrSnwUg%nBwRn=Q zfE1$h#UZ*9QkX6jchVfB2<;Wu(c2+K=_+w8y#ta#H;58l1t~^1iD`N#q&Ph&M(ACT z5_DK>q^lt%>F-#_yCJ3Md9j4v11T-ybcEguDI>DMOd>qnZ@lRSzpMcZ@HlpikFlzjl(oy;>wG(x>rfh!?0!iLw8m z=)7^NsCgm&QKxDEe*Xwac>eI==lHiY#-G%yDeS}_5v}8k-6~p_RTRGrp+Xf6-v){- z(q?CN?K%|C)7Ep<+}e{}JB^ZIWC!;69a QCi(=*#JBMO?J9lef0=p*qyPW_ literal 7277 zcmcgwX_ORK6~1q#m+J27o?)1+*pVU3FhCn5fz$xWu$c)ngiSEGke-=>Y3S)5dV!2a zPYrsK=cf#Mn&+Px^mCq{G3XaOpEc-N zo_}f3b3FgbpkMQR&YD-|+lfgMP>Sk4NeEyndOV{D(OGk%v|E3QMm< z=}&@;qBBt_mIp=!H4h%j9L=P2nf$@@U?G37Pf+YY*2#@-EQ~sWT72eRk-s@nY3`6pX#%Ok=tR8M; zOPg=w7X>_9+BH@zYpo2G$Fe0sYX(OO)Nv*&`9skIGd#gTS^>s%1Y0{Z0YXtZCr=b1VlQiS8JVyabxPDR9M}mifkMlymuMg zwrLDrc-d!%7vZG0ltFgQD$e}oo7_eZT`*NJbcI*Dfjj46C?`Li(Z=q zg$v~|rzj}NHPhuakd)N>6s82YtstrF?m8vSz82G@06vWmqO#(LD2)%IGUbOTje_Vl z!!1Wc{2KW#S|NkptX{^i^6{ul_<58@#l&k|Iwqb%0lapm0iL2szKOrd={NDK)SLL4 zpMDdcCb_Ge896+ZnUEb07eSQHqu-BY@|!vF5XUm5G1ZCCF$a*>?K=mCHY4$nBSoiF z$)VlGeEBrG+}y>xd|A>9l@GnpRnz5*aiY4A@r|pM3R|qpi%_h~3q}I6cbMZ{zWv2_ z6)MFMXG@lQdizBkc?Dl)f~=htH0W_>Pqvgrx9`vA3*}5XTgc>X1-Md(aSFGk4sy$j&O*d3~HJz7rDBrE=+~h-d3+qIWpljdU zg>BO3C}+}P%AqVw`aInwsK17)Tqxvxcfa}|7{_*U>4Uk#a3+`DkSRI4oqQ%=R-Xa* zi1Ko%`Xx#!Gcn=h@lCMY-)P1H^z&TXwJTK50 zB@y5pu614%=#1(KaE{bEcLzG7%mSRFwa&`}ol%Yf&PJ{C%0Oq-ZGdyE)_HZHGb%j5 zIbQ3$HqaTpAiz0M>)apcjGhtTY}Pt&33Ntt32;uJW*ESm8u@1yqzaW>Y?$$h}(TrD~G2Xlt%=H#B@a$YAn zZw=-Q*UicO$>p>qXNHD@_8zI5lY5=Z*(W(ig5NV*Hz)T^mvf!u91Z3)>gMDg>~gM` zoK7%jtZq*3=Pu{ESS@*o0IP>mve*U z%m#BN>*nP9&*j`GIq~fU71#T#IH!COo_v~8x16D-mgXs%flILkQ_D=2r>J#`+FII` z+`;-zC0i`dQu1t;=O}qDpi zybQw>Ee~!=>b^ed-q-j{QZ?9k0`qKK;ji^BeVD?blfBQ&%~lhGnl-4&Lhjw&EwX0-w8(C;W-zElgJxJb87^qCJrkhC zcB?g$L9H4z)54K)K}+m5fR@2@(j6-Wl%F9zr+q!>LQHqtRjaXKry z=r%|RIw$7QBqWpmK^N!)kdpLI`Zs+LQcA?>Z*)7PCcNW$`VgdMk*3r1VMsH?HS{Rm z0jWjorn~7QkYzBKLM#jJcQqCpM=yYp2KJM zryyD4Ma1FLkY>?m5T`FvchvX~rK0rN*z43Dr91J@5U*3G5@Y{ovHJZmjvf`_-#V&( z@vBro!lwlnE+@F5Ho>I6NW#?wBV`3_)9rc%+4b;)2`Y5G@Ip{D;aqHO?pupyw{jhN zKafGog!-3Gh83=wEIT4i5!ZyS zpuA?=QE5U$&|cB1X})bpli`}sCY0AgJ0?x&5ZWtNH7&B^(iC@1=o`vwv7L}6v<&T) zsG648rZkzZ$*h`s?4&fIhiI>4)zoXJq$%Z^&{^=TIe~>o_o^`Kyflg%=?ge^_&W{? zR5IyS#ai$wNo~@tov)-@V`O z_j`Bl{qA?~%I!Z*-XgEL@(mp>$=vi)_izPxH-tpA#M(HbA+3p za&y#2F9h&>k*mGLy`Kf>W$FE#H-Ev+F>YSr=2dQ9iCjuI@!Crm65)3q_Z`k{yAPr3`_1(F z_RP$cjLykFHjvx2BX{KH+@^v2BYX23_v8*eoPXl!lLJq-&Tl(0v{8ndmbXcVQ9#kJ zGQpoB`T56=4nK8B(((`NJaKqXl4U>0(y`t>PfXoe3cqW6?#P3!vlg`tKYMg|`<|wz zx$SdiwdHqhAAas$Mp|dGBP-`RfX|V;W2i&0wPa@24SlI}7Hgmev3VeW|1G(JBe}Z{ zVVKFxlCIRcB?57VLOk$L?$Cp$85#sJuH>rqjAqCQQ>3l;oOoeRe)GZB+>TrG+qR;2 ze(vDliJ{H;t@k85hqv6GzwM6Po%>G=-S_^H`!Qn@jnCShSZQ{*pL;PD4&u{$QpgId zhLp{1y8Gmw?O5PsW+qalHzO8!qI#$JD8q-J&mG$F{*lMULgYmspG)B|s<f2WsE#>k|J}Hz2^M>o|R^LX#&Z|Q#93)=w6mcCwW_Sda_+fWaCA1J5oLI?qsKF zuJ7+%lZB8dcL0=FxX>5?@9b*dc+ zuyAqvyjjQ)_!Vh0)8CDv7;vt;YRDB<4Y`(q@s3psS`D#cDkK-eKi-~m|9E?PgYfMQ zz$4a_1;#rjhX<^Q3Bh-KUM-uF$2`WoB-NkpFlQ%4kv*k8PUV*Z+ymr^I(+yEl=><1 zP|5AvmcMyth?de z=!*VicPHQKRj16&giL>*nQjYFj`AUThE|{gPHrj`f;PL!6Ts2rDIlALBtSDfxyjz8 zjxbLIG=r0ytW=OKD;Xr!P6sP069O#^s*n;^P$mUhm6MwsX@L$l5r^q#Sd4a@ri`NY z+{r?Tt&!;KGkZI6#d20yb;TTc)~d;Fr898py%2ZuFqQH2B1T_CD~P9o|JDp$f&fx( zWZ+T+kcJ}zmm`4G92vL*0i^55z)S>?!XpE-5kOjx415Uzr25Ffmk~hvj||L309#^Y zU_JuaCiv84e5Z^AEJ6UgXJlXrjYB7PChRis<9ISWy^{_Q+b0CCf~^ppe)=l>kOa_j zx*9FUw-fBCqVml}#$9%Y9WN zA!=U%tcuxnAbL@1DT<+VyK9!0tSRfD(rgo&J?@&Gk~L)sRhpLx&0cp+Z^@dn`YO%o zLNn#ASy8g4EZjY80qiuW^9J7_|V6G3xYM4yse2TD{Hz8f)kPjWz0Z zorCHXNZ0Efpm9b6K;w)?y@7)o6{taPv_PKSI2X#P=yt}&%OtT*kupEsNZ&;ESF``n z2He=nXexV~zJ{+@QUIndX57RC1e6)dWq+8)>^f>FK z+u-?WJL{s`;RWbL)=qc83(_$*gYJZfFFF{eQg`iSm<7hzHQFWn0- z%Hs4E-3MauLg`0_Y01{E$;#WmmFTs_+sSR}`Hor02+J%y#MO$`~Z^|H@aV_t!GCVw> zdsIZ@g+zv`4X+5Hh6s|Td#zB7Q6WMVg%B!>WYroz5kgT>ET0vsGc*y>3L%sl$l#@rn6=+`IcRQt@T5A6||1tr>EfgupN%m)9^I>+;EU~!1L3q(Ao(vK<{D`?}8Vk z5Ak!xkKl!vj<1$Kh8Jej=sfxfyh^r!YH2sT2;VT}w^98^R8Jmk7{;(ih_R0_B)eV4 zJF3ZR0W6H?)Gh_9aKLP2ajydVP6gX|mw=*ZBPce@J*J3$H=@lwZCKF*r=i;lABRvP z!PAS_I-dYiQlXEPveiBrrv$^FBxq}v1XZ%U5R1G5{bT+_)_FwPE(NW`Bc+MkBmWcx z^@?c8udv_p={R^1$^w2rl*OCgL22MW)(jn{GnXHrvtr{1sTo!LY&>FL;692u_a{gn z_nGF{MCn&^A90Ss6{b1XBK=zKca!GW sxzZoQ{qv+hmiy;Re;oIx!3@#`?%#vu?@L3f9G1}@an21C|ERb3|BZ;V!T`^}*3(|S?sz%58dV)PC zHTr`_r!+dP(FYoRsL>xa`jbX~*61%9ozdtcjXq}dNk9EnP+)!192r`k9x?^R`Zgvu zCE_EA)Q0##E|W}c=n|x_9#7?xqvqOVHo0!ZydjlJ=MuSOI+Yc)v@e;CXE!G{Y%nwN zO_#;fiEKP!1LC9RP%;r87#uc76QBwWnc2Zia*U&K=T9g0<==UsaNuz9Df$zmc#7K6 zdVc4&naP7i@0u-R@P=i`%%KzcJzL?rcihZu>CN7>PSCQ#i&OcXd-EqB%NCuAWuhGw+_7nK;nW(${-SPj_M8#LRn73DSm=gE^V&Al@VY z*wH~NT1#eo?i)*Ia@Yg)5WA)dPd}8OI+=gsI36>Z9T-k;9y!meXo`MnPp_Uy)LfBx9?*`vD(yPr%B&Aj|*;gQGkj~_mJ zbn9m)pGL+c8t*!iSZ9v(UUC&S&UZ~RmCRi$sJeaeT0tK9LbZL#l-WN%y3Wk3NuW@; zoYI4dk+q3Tl5Mr<$qgq_Ial@#rbpu=$syC+GM?I)j1Q(WW_*1H6|gy-xhFoBfSQeO zO2=25oR}3{rEAkDqVNV&TJpB_?Tg*2wuF*3RWel(fn$|jI1$^l3W3p?_xL6S@NQ%NY^ zUL^shGYPgSlTfr(5@0%#0LzgC%d#spWZ9)8z;YzPXWl!W7{SvuIA8zPbsNpWT-V|| z1&Q?RNu*qYyy@JqnGsaOCDi7aTeX(Mx#EDRq2hqZ6$eD-!^t97Bt(q}o-hjHT(O=- zEm(Pr$~!ri96U0aP9C`uv3Tt9P$OCF1qra{gaX(LwHAYOP^c$yE)`jddsAX5Em$m$ zW>=5uScwee5`*`wOpI9_jZ@7}pJ22NCQ?1TvrvZ<*)b++U#5f+U&H1pxc$np5m(p+Z->Y<+`-~b7C&Zj7mFte=TlSp`G4bha%6~mu6|Y?+Oy+hW~Mt#f1|&L=_Oi?S+lgI z)REn`$vf&Wc~7NT+Etj5r7d>5INZFmFhfgQihC=q;_k{&dw+{wxx=vVP^CSFDHh}4 z`4&0u#mOTmY9~jIBouREY|Kmz;nTr6%hab+<+-G?*+s4Rj9Z2;$`Dm?t&pJ0EKA@U z6J?O4@4U4t>`T!KU8!R@ZW7?3W( z;qu^4*WjPfPf^5No?Wl!wdeZj=yJ-2kfr@iPQ^1&k;jN#`D z*`heFv^W#)oSr#z%CV$4ueLbXxpR8w%qb_D;_R|G2i-Y+bLN!8P;qu!oI~!M{yB5X zIjT6Xvp7w6PHoPdas(^R8!XQC?wo-+bIR$hIG0)GG&Aw^y$Z}t9;4=A#7 z>5^%xvCJhMN2pe6(-iGr3SoFUKcbNCIYaX%Dcq@hrfFUg5i`7i#0;PAWsL6(#U?4D zdv%`!RA=}Bsxvg*&mc{K{JQ1<)f)kT>W!ctU{Fwj0(#H^YA`|oH5g$%#GtSOL34l_ zjR-)EMvWd}P>ljb^cn}K$*2XW$%yK;42mjHtsZrNnvHn?H5)N~9)n^EG*6E?K)O)} zkZ#oLbquOkpgO(Y0h(_#05sod)EgMos6Y*RqXV?SXaZ<~(X2Nys9AxU^yVVSvmaBk zy5fuBbGfy}nJP}x2#ul^8pPX_!dFBUT`ZoVG}fx=a{87N$J?i?%?E(0}Nk z^mAx6B1nhn7tm@&l&0u@Xi*WTo%Bm+^TZYO6#WWXOsqknJ^-yw+({-q2(4ahp%wHH zv24EFj&G#>v;(j zHR$GL(XMOoA-S*{{TuCH80{KHt7_4XN%D72(|7LX^_bydhwf1xjT>0H>I|>tLho8Z zn(i&S>J6Xe@|9fZXc^UD_$?QjSw;Dau0}(%Tw2M67MD>?M!<5RyH!-6=xR2CmMd6t zq330kZiFls+FeD3imv%a*m8wSu5i({z=&8b^uLOVSgwWc?Xz9xQYF7ybkbIO8kyEa zJ8gqjMG>)xwqrx8=^~W$4rm_yg7^%D%vbiJl_CPRN=3sve~{FrwAk8L}+u)394v$P+E0`@UQu^s?KAL)w!TSj<&(SOXQfM zPtZF2WB2tFblx3D==@mAG__)0U4Tn$5$hORthY%W$7*ZrLaEoWev#C1lD5XaEAP@VJk2!H(w#GW7uCtC~mDlI9j={+K0@g2vn5MYsuir z{vgN)_(O+3aw!wqVA;poe4^y1%Kx(Ol0SyXfCTzE1V%?g6wgP)y81U&@OL$IzY6=8azF0yA1-xK9lG!d9XaXnDVI<4 z867zrq6D9}NQj&Wii2trub$Z9NP~>6p;EMN|gGpG?WZ@OEPt~kv3Vnq|%Y> zAWf0RP(+$2I#1`CI?@cTmgd^Da3sg28Biq*?;it{+<>&yzLn0mR$u(=NM1nlU9!?9 zQQAs77fpNR+CiK1bzw(GIw{fFkuG|iux*8O)#d`6vvh+yrMr?n9O>!O8h-&FSA-@` zdW9Y7t-`SJ8tJ1=U-0E074=heP*HzHKPxIw^thq{KvJk^peuu9u%aP4HdN6tMHeb6 z!r{trZAR$%jC5p_OIsmOM#~u3zf2FkP!%Xt1qx-XOUoiBHcrua9h;!&B1ISLzKMz^ z>DXjN#fqjVnyP4;q7p@kiY`$!UD2hAN)^peG!so&W+^>e={bt#YBbDKa(<$e$pRP6 zLUr*XjhMxbED6eGvQ(R8t}K@odOnv2WTp1ufUFA06#-ctkTn5W8;~n?%~jf59gu5~ z-4a$}T|m}rf9>ReT&G||0Ox@IF9F#Y5GNql2jm7vHU-3U=?i|zl^f+Ib>e1iZg%7r zm%iq00oj6H{K)@nqWn#6h0Aeza-00!k*$v0US1ft&A7c$CmgxMkvq#dU{cb*L{K9) zkP(P`R2oO_a^!AAZh6DHBbl3dWoZ@Mv%E!m8VBw{j4{n^?)9+w-n`7z@^$sK9)%)S z%H=UDk4uG@l~KFS4l6s^II_!1r7qqrPcXFszg+Lr1_=QxPjX$RuHK%k4DYUtE`9%y zr>s294VY>lzG?g64ciW{zvsvu_aEH3;m||39J&=sJ!569?15!go|We;U(457d0zJF z@by++kQcqI%sOc=rOM05{#R1@J}a-vYmU5bWuLs^4a@A(h*8ii*WtQW-jw~8exjeP zyd`g2c}L!5>g5$B_bPGZJu6qr^(hJReyUuT5-%U5$^nC_9Cp(J?EleJ~$WpIP}_py(I!rR8?q-pW^Ukg1RF*?F0+mziHbNyQ&hV-7PF zR+~xpK5yin_qCNH@{N^m7x;mD6$tv6PZXQ&ahFwf$^Lf+5GSHDZi4aVFlH1Ug}jV*=jw*=e;CrNSE5 z1g)_^karzZe$=ego}=ellVp;uNinHRb$w~Giswwv8?msgbk6kNi%MrrD=D+4h6ypn zPntS+-coC7LOoMUH}vr>8`k)|?AoS|W9nLyX40*xrwi(v2G%sxCPSBYh{?45OG{== zQ^A?0k@sffp7q`_SqK4>ZB1j@WBGc%!I~!KJf@DZJzj(K#DHawZ`8Q$mER_;YBz-z zNCcCjO*6!i$xzf>n-;1<4mWU2t~D)9D{EStJZtiGxQ#AotEio#_NIe1=WEl^AQ@|( zb9t|_vf`zKOBXD31<6G)76>_Ot_mh-IYTR1JqMdFGamgA8Y!We%AEYu>u_% zpr}yMKt+QT4c2Cel0y{@Q*@!CB1OZs8KLAzMWYmrM&g<=NO?2XnsGJEcxxu;eTX1Hr-NlrZuz7Y-{G2xz@}x^R=cFCFglZ>)R$wiDkazNu|@QDKiTkv(TDFX0cr_LW`)lNM7F zEvY6TRAoqrGr18AiKArB;%xO#MDY%4a6vhdy^5xfwEUA*86p{bGNv$U5&l*5#D{c*yPkJ2( zL`;o{xteOw&DF$IH!}~x!d1b7ljc0m$4J!NJRDRTXe!*c%IyD70o?MiM9uaN4Cs!) zPAhEe2X=Qqi1Vuq%#TJ&fSPj$J|CNss4;g$au}*b4gA24qh^%IouFZSm4=a#&KUVq zEOp_o5qBf2;wT>Sm+q!!<91N)g)0Ep~2m%{M8Rm?9T;JZ@dnz63BaR;4o;? zbWnAl6jW(a5KZi4>Ksk%x|GiY;2lE^DTfO+v8gF#@jxC_%_ot$&QVROa(FNgiTEU5 zO+k9|w^cqVe`(NRhAIyac|)DT38)j_A!&!AiqybKTOI}!qC-@VFXR!FO2zaLkHlDj zE~R^U6i_0qpiOYzXhgF|%Xtjc3(|u$mB;cpME0X}5s$}M61_kJcmiL9%o|US@x?q5 zpSkO497@Dw3Wj+z4e?o9-b#JB7_5`{LF&X)bPK;mb&*pJrSNdNk*8rSz%wDPgfBsK zETl4?&Xa956bI0|^KJa~@N^BnVpxOi0T@O8Kwr91cg6ii$`Br5ZrgziZ%g z_3s_6sK_4N2|NS8NVQpo?74zhYxa0)MeiU|j};B`({~vnYc|qyjUS6d&&7_Ko{Odr z#&|7e1D;2;C*Huz49JRN)iSH*7e=!tFe1>i#g z%Te_W9w?c3037QTSv9JvBzh?%YYv7D`QzPY>>* zr-jDcM;SW)%%ilYf}Y(;&uyWk^n|L}Gl$dTcT(~es+;o|J)a(rwn=DjsBjm(5Km*$ z6ROQ6MCWQ@@ZIZ2?N4mOPRF%6~)U z)R&zf9sbUBRXg*mcH(-B?(B@e7BxB$sz~-s3Lp~^lc)hTohgxyZ}oHWG_`d2Hq?pU zai?e>%FA)8hy1Kx-;bvx<0oh#l)M?gNRs|N)#a^xJB-ky?+!&^gdD+3_@%+pEw_SR z_BxI2Gxn7VdUXqpH{I@|QMsYld}?qUsDj+k>ps;z9#rSt&_18aPXLvh8+ya1vK>$j zb3Z-?Hgpm(?MZ@}+`-uLl0z#oJT`1ljx4?`dM zct7yRp-+6gw-Px<+c5%8yaRoV(}Tb&o(ckrEvUQLLmlzN&5qaJ(xCS=XTr>0g&jJHQLYYlXBc2Nn_ zPCB?9RQ1ofQ|CCM>feJW4EZU7ch^0s_(M~_WTVUuKozaxMJPon&roXaE;{7xpODu6 zFe=?{`Wo-kBSTw-zCo&dJ4VY@t6g*yQ;*VjEi334e)D(I_tC=THM}U-zX2mRLs6`h zP*L=WQ-gX&pN)BxjVI3iD95p{z{to0)$fY*SSg3%X>dt=G^_uCCym}3|BQWG^Fy$3 zIL7Kx*w9EC&P6C@Q)nztN=P(o%r#~$rSscZuo@0|2QuE}_xOE21eS;SYd*r?;PDlq mzW)>T)1Rnc{zUy+of7DyT(To<#6(D6*kMVRdQsFs>irMFKY{E3 delta 6581 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 pFXPhJXGq_jA$@;_^urm_aXz6|8pX^A#YErPKB*