From bd003396d9a6d57954775e1bb367e435dd4bf41e Mon Sep 17 00:00:00 2001 From: Lina Wolf <48202465+linawolf@users.noreply.github.com> Date: Mon, 5 Oct 2026 13:28:19 +0200 Subject: [PATCH 1/5] [FEATURE] Document static user TSconfig for backend users and groups Since TYPO3 14.2, extensions can register user TSconfig files that are selected in the record of a backend user or group, like static page TSconfig in the page properties, so the configuration no longer has to be stored in the database. Resolves: https://github.com/TYPO3-Documentation/Changelog-To-Doc/issues/1606 Releases: main, 14.3 Signed-off-by: Lina Wolf Assisted-by: Claude Opus 5.5 --- .../UsingSettingTSconfig/UserTSconfig.rst | 43 +++++++++++++++++++ .../_UserTSconfig/_be_groups.php | 9 ++++ .../_UserTSconfig/_be_users.php | 9 ++++ 3 files changed, 61 insertions(+) create mode 100644 Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php create mode 100644 Documentation/UsingSettingTSconfig/_UserTSconfig/_be_users.php diff --git a/Documentation/UsingSettingTSconfig/UserTSconfig.rst b/Documentation/UsingSettingTSconfig/UserTSconfig.rst index 63df444c..e3692ef2 100644 --- a/Documentation/UsingSettingTSconfig/UserTSconfig.rst +++ b/Documentation/UsingSettingTSconfig/UserTSconfig.rst @@ -50,6 +50,49 @@ group is loaded. The order in which the groups are added to the user in field The TSconfig from latter groups overrides the TSconfig from earlier groups if both define the same property. +.. index:: pair: User TSconfig; Include static +.. _include-static-user-tsconfig: + +Include static user TSconfig into a backend user or group +========================================================= + +.. versionadded:: 14.2 + :changelog: feature-78412-1719144405 + +User TSconfig files that an extension has +:ref:`registered ` can be selected in the +record of a backend user or group, just like static page TSconfig in the page +properties. The configuration stays in the file and is not stored in the +database. + +#. Open the record of the user or group. +#. Go to the tab :guilabel:`Options`, then to + :guilabel:`Include static TSconfig` and select the desired configurations + from the :guilabel:`Available Items`. + +.. _register-static-user-tsconfig: + +Register static user TSconfig files +----------------------------------- + +Register user TSconfig files for backend users in the +:file:`Configuration/TCA/Overrides/be_users.php` of any extension: + +.. literalinclude:: _UserTSconfig/_be_users.php + :language: php + :caption: EXT:my_sitepackage/Configuration/TCA/Overrides/be_users.php + +Register them for backend user groups in +:file:`Configuration/TCA/Overrides/be_groups.php`: + +.. literalinclude:: _UserTSconfig/_be_groups.php + :language: php + :caption: EXT:my_sitepackage/Configuration/TCA/Overrides/be_groups.php + +The extension key is appended to the title in the selector, so the title +cannot be a +`label reference `_. + .. index:: pair: User TSconfig; Default values .. _usersettingdefaultusertsconfig: diff --git a/Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php b/Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php new file mode 100644 index 00000000..0e3847e1 --- /dev/null +++ b/Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php @@ -0,0 +1,9 @@ + Date: Mon, 5 Oct 2026 13:57:37 +0200 Subject: [PATCH 2/5] [TASK] Show the Include static TSconfig field in the user screenshot The screenshot of the Options tab ended below the TSconfig field, so the new Include static TSconfig field was not visible. Releases: main, 14.3 Signed-off-by: Lina Wolf Assisted-by: Claude Opus 5.5 --- Documentation/UsingSettingTSconfig/UserTSconfig.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/UsingSettingTSconfig/UserTSconfig.rst b/Documentation/UsingSettingTSconfig/UserTSconfig.rst index e3692ef2..d8c6bc7a 100644 --- a/Documentation/UsingSettingTSconfig/UserTSconfig.rst +++ b/Documentation/UsingSettingTSconfig/UserTSconfig.rst @@ -25,10 +25,11 @@ Importing the user TSconfig into a backend user or group :guilabel:`Options > TSconfig`. .. figure:: /Images/GeneratedScreenshots/BackendUsers/TSconfigUserInput.png - :alt: The TSconfig field in the Options tab of a backend user + :alt: The TSconfig and Include static TSconfig fields in the Options tab of a backend user :class: with-shadow - The :guilabel:`TSconfig` field in the :guilabel:`Options` tab of a backend user + The :guilabel:`TSconfig` and :guilabel:`Include static TSconfig` + fields in the :guilabel:`Options` tab of a backend user #. Enter the following TSconfig to import a configuration file from your sitepackage: @@ -68,7 +69,8 @@ database. #. Open the record of the user or group. #. Go to the tab :guilabel:`Options`, then to :guilabel:`Include static TSconfig` and select the desired configurations - from the :guilabel:`Available Items`. + from the :guilabel:`Available Items`, see the + :ref:`figure above `. .. _register-static-user-tsconfig: From c1a65be19f7d403691be1e935a2e1c35cb00b216 Mon Sep 17 00:00:00 2001 From: Lina Wolf <48202465+linawolf@users.noreply.github.com> Date: Mon, 5 Oct 2026 19:16:06 +0200 Subject: [PATCH 3/5] [TASK] Mention that commas are removed from a static TSconfig path Signed-off-by: Lina Wolf Assisted-by: Claude Opus 5.5 --- Documentation/UsingSettingTSconfig/UserTSconfig.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/UsingSettingTSconfig/UserTSconfig.rst b/Documentation/UsingSettingTSconfig/UserTSconfig.rst index d8c6bc7a..27f30715 100644 --- a/Documentation/UsingSettingTSconfig/UserTSconfig.rst +++ b/Documentation/UsingSettingTSconfig/UserTSconfig.rst @@ -95,6 +95,9 @@ The extension key is appended to the title in the selector, so the title cannot be a `label reference `_. +Do not use a comma in the file path. TYPO3 removes every comma from it, +because a comma separates the selected files in the field. + .. index:: pair: User TSconfig; Default values .. _usersettingdefaultusertsconfig: From e733f2af4edaf81f441dd6686cf39e69c57d3747 Mon Sep 17 00:00:00 2001 From: Lina Wolf <48202465+linawolf@users.noreply.github.com> Date: Tue, 13 Oct 2026 20:34:01 +0200 Subject: [PATCH 4/5] [TASK] Declare strict types in the static user TSconfig snippets Releases: main, 14.3 Signed-off-by: Lina Wolf Assisted-by: Claude Opus 5.5 --- Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php | 2 ++ Documentation/UsingSettingTSconfig/_UserTSconfig/_be_users.php | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php b/Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php index 0e3847e1..d5191be7 100644 --- a/Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php +++ b/Documentation/UsingSettingTSconfig/_UserTSconfig/_be_groups.php @@ -1,5 +1,7 @@ Date: Tue, 13 Oct 2026 20:34:01 +0200 Subject: [PATCH 5/5] [TASK] Generate the user screenshot with the Include static TSconfig field The screenshot of the Options tab is generated now, so it shows the Include static TSconfig field only once an extension registers a file. my_extension registers one, the test user selects it, and the screenshot reaches down to the field. Releases: main, 14.3 Signed-off-by: Lina Wolf Assisted-by: Claude Opus 5.5 --- Build/Screenshots/create-records.php | 2 ++ Build/Screenshots/screenshots.mjs | 1 + .../Configuration/TCA/Overrides/be_users.php | 15 +++++++++++++++ .../TsConfig/User/editor.tsconfig | 1 + .../BackendUsers/TSconfigUserInput.png | Bin 7525 -> 24186 bytes .../UsingSettingTSconfig/UserTSconfig.rst | 5 ++++- 6 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 Documentation/CodeSnippets/my_extension/Configuration/TCA/Overrides/be_users.php create mode 100644 Documentation/CodeSnippets/my_extension/Configuration/TsConfig/User/editor.tsconfig diff --git a/Build/Screenshots/create-records.php b/Build/Screenshots/create-records.php index 80da193e..f22afe3a 100644 --- a/Build/Screenshots/create-records.php +++ b/Build/Screenshots/create-records.php @@ -187,6 +187,8 @@ 'usergroup' => (string)$dataHandler->substNEWwithIDs['NEWeditors'], // The example of importing user TSconfig from a site package 'TSconfig' => "@import 'EXT:my_sitepackage/Configuration/TsConfig/User/my_editor.tsconfig'\n", + // The static user TSconfig file of my_extension + 'tsconfig_includes' => 'EXT:my_extension/Configuration/TsConfig/User/editor.tsconfig', ]]]); $testUser = $dataHandler->substNEWwithIDs['NEWtest']; $uids['testUser'] = $testUser; diff --git a/Build/Screenshots/screenshots.mjs b/Build/Screenshots/screenshots.mjs index acf4af49..2d97b899 100644 --- a/Build/Screenshots/screenshots.mjs +++ b/Build/Screenshots/screenshots.mjs @@ -460,6 +460,7 @@ const screenshots = { url: editUrl('be_users', testUser), tab: 'Options', element: field('TSconfig'), + to: field('tsconfig_includes'), }, 'Configuration/UserTSconfigOverview': { // Short, the tree of the administrator is long diff --git a/Documentation/CodeSnippets/my_extension/Configuration/TCA/Overrides/be_users.php b/Documentation/CodeSnippets/my_extension/Configuration/TCA/Overrides/be_users.php new file mode 100644 index 00000000..57eccd1d --- /dev/null +++ b/Documentation/CodeSnippets/my_extension/Configuration/TCA/Overrides/be_users.php @@ -0,0 +1,15 @@ +fTvu4fAnt#5(_E{(AJ?B09-S63ZKhKj$4K)Swdvy0mNJz*P zKfKo>A-Q=%Lh{#>JAYlDVfyfQED6cqB#Q54bbPY5u@nK1K_ORHnx7)gUnwcNrQHg9 zlJJw1{>pi)^{Jt;HKKBE42P}v0T?&q>wUo7m##Cr$Nt>J3!cuV0twe5Y)cWLX{;KW zY|PT|Pvh&d>NHrembN<*`vch7m>f*xOr{p-jCeA zHUeLADXxwE-!hEXX5_{H`apJAE+9n+V=cBiy!{%?{%lVmg}RVcoj=`Gv6r3Q#qIWI zPo@@&qDLx_T=d7QzK)^YuX!YdWzX1W}|U97IU_7RWSSr-v8e5vZ1 z|HL2G0X%Oc00CF;0uKk1{ey|WgjxQ$NCdHT@2rfpv&``$h?7Tfqhu{jw^-f-{9|+> zh1K6xF{s|~Rbh$I4o@o|2PLcn3!9E&9o*$#UjTxPT_;D&Wx{WCM5EXIo+MTmJDQj=dmRlkHh2e zR=ek!c+lGOii@<$%v;wlzYy?+bEBKhaGPy((@4)?iL+-=O}%b?1;acpJJ+=oMlhW` zk6N`=4|E||jviXZR#tKaS84aL!#JLr#KuzHxA`5`s3IfDeW!5}xqn~TqjP#q5M5VR zR_9=YK4|Knz_?NJ%Vw-4W?{*UvqvZPQo;XZ&lcBd{09enu&SOm*fbX z`%MvxGt+G8*jVDk_i&7k^NqNKR-}JwbIDPsv~C>g2oX=~-;AHE4QOy_ebeh_g_$47 zO7cnh`^<*`yqs8&WQlL_9=brJ+Oa(k+No=G6!jRc;6wnWCp<3-_uIwsq9|_G*#+9bMm>zLz1D7)-EI>} z8r`+K+|r43fG#xVo_1aMZI+r8bMiHXm>c!$0Q#`sF9pmT07Tm7N> zcebmebzffTBXW*fgf{_p49__=S#<$F+b%b3UxzqvE1?tjKkYtVpp;YXQu>k7dVFw0G5kSH5QJ@peNrf#{flm?0Yu3Z?E$ z!d{&IylIQwA#>Pqib=3F0Ix~NxXJP7d$K-1wK1w+5Txa&co3X&XYnJVvdC4g(#o*R z+AxVBnM&rZLQ^HkHWORn-R<9q*5Rd%8C~Q`Yz0RQg|}h;bY_y-ifzt7*Jmq>Hx%FBXvi_2WrOn5BdmNV zW4@i~9mJGjJJ7`8-cCpY25n+@{H3HTCIgZW7g~~bRh~(Do=42AbSRlPNmSbf8+;Ie zMmLI%1{^ry?_a;dk1)3*$ulN+L3u-=V<<1zMoj%cB5vO~>F+}#6+}jL(F5^JvHiyJ zbmJKtSVI6Bc%by=g~D2LsEi@`R+mK>NHZ$ycF(6CEp*Z?QB+po>(w4z;rXB$UMQn0 zyxC;W?<>u`W2ld9yj}xPCD>$@$nYq?PSV5RdI}^wF*W$nDf;)AnySvx z(bc~1bf3)?oT35WZH-F8QYtBRaiqrp-hjCkr7(7vfYj0^gIP!slKDa-UD$TMn{B=>fb9+h|l@v zR&%(R2@I^ZQfglVG#`Z|pU+&K4vM?dHJw$qz_)3oZHDKL!`vxUX@%Ev-Sp(u(@P)M z-xl6U?hO5eZBcl2=a2J9_XNXtY4|zylKWRVv$%&FUozvg_nlJHR*G?;cNQ1r8l8!a z`C--ey)Z*VzM0a;9!~UOxN<5g(&4D$#<>h&1QYbVV%pfGrmC@mUtGF# zX`21P%!a$?<=Ifkl}~{KfiYtuIIb1th_Z29(zOW=EM4maw_dfzv3wg?MGC9Y1)>Y_ zb9!v8!22cJ%pexi-bwwCG^E=64L#^nB^8ErYXF^@8I?#j!R5ht zF=?Y>pu$@^3NlbIa-6{OR?Oj|ox#3xz=E?@+_gXA*mxmlwBJHPk=sidH=PGnypJDPKf> z?9~S0Zdc@E%E$1>;SRr!M~_j*Z7KSu4gzdAuccB={kwLnN$OI_#c+DkKZ9iNM5KI} z_bXLM^@pL1?CP)r6_^O>Lj-C+0yvnF@b!(}iQm7a%RlD!7Kry}RLPVg^l_f<^ITux_J}4XG70!? zViQYcciMo8@!$JlXVn!aF5%tYwivrE4aqk9llcERXH!eB_G~&{Xp@bMoXW0pGm$*} z^y7v@h-SmHFfc+$dLE~Ji-hLWFNGUFY}PZJ2yH(;`6zW!9m?iCx0u-APa}?9m4L47 zPSsOe38Rk|D{jqfQ4b+)x(=J3p8rJRe|_5G4G!qW)*kb=%jIo5IR)hn&I71}``go# z>}F{$_-o8tq`46K(r5OA;?+hYO}MJ&)t$V+t*G7R-v;UQK*L&?vB+=;1NU&{!L6`^ zfqAVX`_8Rux7}N2m+msE{vQGhPauNvbAnE1+!WHICqr&}Oke??49|Xur;^ZVN1!&3 zhEo6*L})z{L8L~HN?iy(s85wVfA4wN@vCLCH!EuL;~og&Ge68%L_B@9AIE$8&h_qk zpJ5B&6~2IkB<+*?m|&i)tl~kxDg4|K%_yy`G65NEIb{xkP3P3I zNTAN@TsYTB>GkUfa#3@`^FAek=%VQ~1$P`&WyLs7kp!c%f!K*Iq-S_!!v!HYUr^ygg93_IWq z$So+cP$hm^?)Ggh*dDE(QV95=**Gmks?Au7LkHAvzUr?x?wbM2Z)s<2x7R?_dEcCC4z8L z_egSmm%C!`hb`ewqdAi~`xdXH4idZO-v+y949%ZG=kMFG{#yKH)x%4fnd8%7`Y7yf zuZ-NAsP@uG^-Gt{r1s92bPpbX&Wq1WBxFBu=m2qAnCq0<$s8K?}dBq`F{ifHFb_7RVEjZ+7`pV2-;>lGQFz2zLL|U4g zn%TauH%Ac9(Ef#3$DetM7IekvEfIUCJ;BtF(a6W-V;JwX`w1v0&lOG5-kSVrUa&E8 z7>n zhXaR$O=kXA2;s}Ew-@l)nTRvT@2#_3Z1 z#Tla?e$ogSmQ1bLi)@Zqr{ccy?QHiIrP>N08udR9s_+G`u--NccH9lIYpH77dxx(m zGdQsyDxg^BK8s{F5;-3l_hc@RdJda^1d(xtfAbv9AKcl>Zm`;q+4LO-mG3;7t}5Oh z^)DW5lr`0~u4T$lY+s(I=OkgQF5t1~mURXpPOmL_-g^bE^n8x8EfSI7> zT2Xa@T^bGgPJF3P?FKSVqXPL3FJUYIT&oq0Pt}!9)n=ewbH_~+dm%H^ov5eUA*koF zxQV1hfX{JPlmh@CdNvXV%~GAKwS|3m9(hFz3p&@8o2HAJ8~wz zWlY=H$}Mo^2uG@3|9*}XQ*&MwvSEVF%pQOmj2rObQw_mSB;abahmDqXxCIadITQ+L z`n$U+fN5rZ+mU9=^!Y@23D>Dpz&)}`&cm+Z`)evWLhDsjz(bcN_dp&smky>aiGK!$ zr*bE0&M~5J{1ol6=5>mg>Oqer~~W&|`l7$#t`9HnaNSopQrIt6ajYIEV3 zNsIe$Sb%4z)pRD}l-UA&F;2K$t>@}@OaZ+T-TLX4kh^|bVqDmrCY4&jD3R6(Ym9AY zZk=roK<)eaTaUO^)G72p;)EYyjt#s<5js!bbI3gV)q^u>yPbn+zD(b~Im{D1`DS7q z&2eeIdXSkqzX*25-HV)TM>96pNpPO#0Z`~;rQ3+Eg|i0)Z)g8Wj*GppDTJUTo#9X! z+{q2vWimy(C2>-B-@Un?8Wk9B+VKs)Usfq*-)l$UplRkQ@*L~~wHFM#m}RrJVmK54 za#=ai+S6~mA-AKdSRY*KJUrVr+1Q~a`Di6S8TcE$d}bjdx^u&M_9w9`K9fBz)23M- zUVKo{($4;Sh;}}sh#u6j;xOL9=yG*_Kyefh)WJPTqmi0D z{KL#@H(Z62)82m;UEQKRn9xP5S3^U4(>$G(DggKo++U%w#7xF+W(RJ{3kO1b*#5DSHT3G0;#Fm9VytHO^Rm!|iFO6T2 z)hV0fL|(s;-$bBjKv^g{(I#AGBNF&e@Abmiyfbo8OjX7CLqg5;O}3&CLv}tpznlBl zk$={MX>K*iSgm)>Qfz-s zP1d)xEPofgSo_BOt!N@KnCD5h=^n&auHU%D{b9BqG4!}jHwb*TLOafAGPx%Gw`8o= z6r<|fgs)=-r7jE)y+yK#ikSTFr|{imX601$cxsYg0&|E<=5(jOdd!B14Ue2@@(Z~% zE~TXWM}lk9RKYWxGQ`l{3t{J2op%WoIX)d7k{;Hgfma_ioY`_Y??|>D|H#HTLHE0Y6D5|jKW#;G$OBk75{;(o3P`(Mhs$NnL6?~C zHBRh+W1hG?)Xbp7>uXunTf~UvU>4L@%W@$1>m+ZIyy>}iYvWzL=oiWd&k?RyznN1^ zd+%3UQapMt(IbC1EZ_8tLI;yf$<*dV_T^W~3kSFv>suS0d50gRZHSvVy&0x0m+19iYs}?gRT~)}`4@7> zZyCu|hpQC%`b<)@MhTR(q(x>Qzvv0Rea*r&#*D05b13e7G-bs|vS; zvd=K0!!!KXl|H?UEcn6XKv~fGL*-LXcyq%!qo*D1(snR@2aB@nK61n7ps(WI&b@J+ z^{Uw&ZaTU|B94c#;#U>KwL|x+^~Z3!A~O;V)Ew_&9|Z0d1uirIswq;5W#K7O_{oB3 z!FTdmSIx?n2Xi;gw*H2cDVZzS{Sz6UM_ZhC@IfGhVVE|Nm5>?KeZVj}gYIW4YMmT% zfiQK>qsp|KF)SQ1_#3ikExn3b-QciJhqq)^$AaTM>Ia;y}A280S z=X6pH$gmOZH?DmEi)W`L#Wblu#5)0ft-i=y=jy2iz1TXK2u@<7uG{FM48I@doMV7j z(+ZjY{Vo#>CU&U?ZQ3S@G=%dZs%m_9+^_RE+$p4!%}b>Ic85oVmG=6`>G8y{T!2gI zNp|oyO!NZqD6T5Y06%pd&<7_$H%Q!!m>ptJOf5?#NJhzvk(OgF0}L*HR)GDPkEg`} zP7Y6MHgh?%tqSqC3g6dU;<{+Ny66wiM2WhsyG(8t$gAeKtHTyhz|L0eu>#XEjCMTY zB!7pH)S4n#E^8X(Ix{ExE=w(d7JPLSO0ED!&@6K??SJCi$$(kDS(*{9Vs>)g>Ntji&M0 z@8Cqcjqu0BwOF8NxBS`>y2?3csm=a2p=cH4b+clWvUru?GGNwn4SbSlR@uyHlu zie&hd+HZX`j6A%kpHaFM+;{)F(L?eDp7LXoJ|D<$nq93d9Ww$z0Z+Q+gvN0EV==i$ z$bWJ|lqPo54{Tc`XiU=&&lRIg@2ihT%R-aa+C0R!VmGx zDWI=Ec(}Cec;#XcT>L8LU&zAb+3&-RZZLFh&n}quYNwUMuzBH#8R#;1_B-ugjv{(> zHa1!PThOp%LTmi2H*~ZKQKEnS2okrdEF%2pQMk0^TcwiaruyqsKRP{!T4VeR?eN`; zTWkP@f4LQ&Y)^*6*7K7cu-}84;<$Ba!+)-H4ZTcIZ!t#P7aq)(GW++Azq9&tgIC5O zyg=f1F{b7f;9t0@;meTeh&1Id)bHaQ)hp<2m%IO&7%nT&?&!ntE&?3X+*AXbF5&@Q zm&|)UQ3>vU(4-%o?n5D$8^1Y%kH??J~vuf_3@cncu}Vtnx2kxA0Q@&@ldT`t!fQ(kr#B7vulB+r+t=OFhf}ONq6KOmM&w zNFPvnuydyI@9h(|r;&EE4OLUIQ{CDkb4|MjF2Wb5vcWIh{_}g=&K1iB{?a}iWR$fE z-`J6S{c{JMhEPRWXpPl!{2NvG<#zh@wJ*0t!QImRdm*Uu@usbQ-qz&8TP;#D*U+9< z{+}l;nB0$`5}kN_uQ%c$!Nha$*9mc-_&|IEDkbS-e|2fjK2ZQO(0up@IVTws)O=Rp zU9m+N`x*JT>y;VjgK^BiZ%D#y(hTVOvxnX8GW~DI)o>e+E-m$EHdX`J9ao3xY01Op8^hCU+){PB769$+PA~n_O@Km=>3=1G zoeAiOo7u(tA+;+GY~$P<*TpOO?ngJC&l2QeHI>D^sTEf~1dNE|pUBVZWna{y-u2)z zt)8rZ>tAn3ec%f)b{V`^CFbIqh)Fg?TWUXeda?PGJ!9=@N;LMmQk&e~cv4|_y2+*q z%y!vBBy*SU8SM9`>eE<*l>@B^mTiYiQAqhkC)8j6AC`D4-SOA|F-I&=5eDguQCJ}i z*IxRhoh5=Oxc$t_c5wWamc#k1z+f-@_Pj(EjrubCZLpN)#n4?ns_W$PA6-CZ3vS&q z03B~9?Qx-dy~TbMIewD`{{J|R({*ZLsymiEXv=trg!+EshR)GH^v!s^Kkiynie|3>-)^@6TDh)S z>c83GLW)@x*p{>4t*f}wcE86Gs9Kflb`BJ`~4+Ev@W-yx;nq&MJLOh;)(O> zzNo&$bDgsO)&DTzN3&VyQPU})x>a9A%UUDY2MD(#onVDrlw4ooq#sBJ?xzQf?nVgVsUtLY-co1Qp=mLPnp?TnktE%u9P-Y)$NJ6V(#o*`{CYx zHPtbNt>!mc>-Xx0Wb6n_bo&3q;%!c&jjf$52FKoIZkHMu)K5~!q5Z0vDl7a@a*_o- zX4BuD=YEcc&b%^q1L_Rl`pHjFWSpC;KJ{-swI0qsZoN8o0$!vsG{wL7y8sxr?u;^4 zHq|*FJZ_zOb1H5xbGp$L=(li} zi=(8I012aQrBl^c6M}qTVgb1hFSMw zKUTl~0v$hT*l*^iQW>yalQt}TVR=!BW|)b;(*~ZM_uVhbfJB7xK1A(B56%a9T!60% zoYb#O6u?bbM{$GThF$Tx3%Jo7R@W5z)c6<@><*thExHblTn;-lzhiHCDSQ2W4(x6O zUErm;$bx4*u_!qsYAl4s)Z5X!ge(31l>>F&iR6%4=T}25-9)Pg=>fYTf(d2+q4`^{ zX@1>9GK2^{WY;_!6X47yr9@26evJ9NH@f)wfeYKjZr7)@!JS z?9fTim2EexGrE&5M#a|UaTOFLh18^^p&MXP6B&-0#`3q_T!qS}*>bSdBlAWM`K`P1 zP;SMY_%!lKoy<18s3|dP?wcX9=4!{>X;r2lctSg zUnO#QmU?)vuz*^Q8CS5Y3q_IlGx}9Vi)2uh~EGA-0X^u0s1c%2*sg=|jS*xyIA?vH-ow zR~T({>$?()vk_@g8O5c#J{pA@0Dv`#K!-kBSy2{wy7&=kq*t|e_b9tVp?DP z5^NQgQ8Ug6&@)buFi&4})wddqVzY~Ag;QhlAAn3{cH>~CjE2x5`pPJJ7pF2~%`F4H*M^hU3OFu8%U=+Tt+0YTC+IfXAsi*bRmNR_5&$J$uPH}|eU3=h z><%~XG4Oel|3NhH$bj5a%Y{Offf@e*#k*x&6yTY9iZetf71TU)o<0q;&)~xs|GYb; zjyf#@Bk-r^-;EA5$3lQ?dI$2YTUON2s8-LJ zvn0`z&Zi2hwK7Q_{OobkWZaCQc+c!ILalRVr&Z&m@$mg+QTW0Ky|`q7Qf<|AWv6>w zfs1Bu4ap8`w-P-ZjXe9BS{R0kspY zHZESnFw9q*#CMMW(RFYKuY7-_Qb6iHlK-&#G%)l-RY8Qmx{AijU=$ACu>tM6(-?8N z`>6==@Z@s$csFSG45ok7Gm`~GZAcyV2P>gGEB<`5sMc4c&gA`VqZD`T9e*|0bkv}! zlyO;YH*WTU91Vo;n8NDl5zdC=3)@j@PgIY*pfp~B!mht?_O8xbTUXTF>7qCtcsHZg zgt@8y)DrERpW@ptJSt6`h=2n1r>Y4o42t=U8@~v--JAQ{TlYaxtyapOEwZNZv#UGX zdhhE#ZhO`t1NW;~Ba0`tbvPQ2xVh_Aqn+qx`_i=<=3ew=$HubWk5YoB@l^6~mpT8w z{}c*J6f~}^naBKU?!@S58)}X(kwf+AtH;S@^ktW)D`9n@SXeHTr0}3XOz!-=)KDWU zIsL?u1EE`ZCS}Qf@jKVGV9RE2Vco-eV`ykPO-k(p#4uZY`T6F?^I)HW_Z@>{3BvPd z*4=IY?5Ix#64POU?Z2)SE6|f;RP}m|@Z2;J^~QBF+1=`M4ZmOCd&r)H+ql~41>}!l zC9DRFW*M(b@}qE>4srt=4|VrVO5)Bdf{keejVR;#07nr27`2A8@{ZdSsH*j4{TXS= zzg<2nYIj8fg3grI+pu$iGX#Y6_bGV~y6HMK9F z4lXIK8g*2MbCx#HgV^kyHy4)9*{Rku(qm}yLE)_}?m7E+#votDYrGN}8sd1V>E8EVfeHG;q^uBZ81)Y9R zBH-Yim0Y%3LYX=JeY_gg1Dy#XQI0J1K&zb0%lDufix!-wz&xtNWm>$xSO zj`&W6_0lT$jI_9Z4}u5-MDF7|jFNTM%QuI85D~XH+_M_4I!aQTzwPsiKU6`MonO9J zltymDO9szZu=p$9sr&7P`?K_~Vo_&v*TNoe?FNfZd`k-f(YxZg95y zDbrSO*57nqp4C+PG{LaZCAPIj3P}i4hh>1^zQuc+QC-q5>d&qQHE~@abfF=?vaRW9 zAFfgz#j1i7Ym9s~XHaE6t#d^`e~|!{K^-mn!-Zoe13k|ZgeQ?>Pp@_r@f){2T|6m~ z>1@}k+r;ahaj^wGPGd+voq5I0Y!`r> zZCUR`#Hlm}jtvsUpZmk?=90?5+rM4J*&oozgU~UC!jjhX;7j~jaB2v!<>&&y$aDH? z_YZ`?ATSUdN0XDq8Ph#>3Nu|>^&12poVRgZ<4Ox-^6{5nsE%Apxp<7H%I=Uk8F?%E z8pd&F&-edn?r;4^Osu%R*8d0jB9VXczpgI+A9umO$u2%NRS5*UMuDn({q*%L&g@X<-;iiim)wG~(Z!@NIO{VnK|$BwoPUulINbr&Bgqe< z2O#uf5lM%jwdOAFSYO-404pE`Nyj6=NZN%=XL5FWqV>d9tYVoQCqvvSQc;X)Y#adi zCMeGB;w^76$kB4X=xV2XX+kKgtwrWBM*_r7M8?z&M zyXqaN)b`qt;!9V^*Ct0-y%g~$M=pj&iJ6bEgQ-IPvN!z>5&!%e5 z2JFj)wl(dxwZGcgkwsm1inIxa9!gX4Q-8NeX&Av^$FP+ZWDz;Ha`eGlEm!4!IEGHN z@H^tR8zz!>gFcbpr7b+lM%8%sIpD>${PKEx_&q3P2OGTx*gN^VM;5g-788EDN^QGv z8BeC5CPwR#$oD43sCU@m@IZQ~lUM~6ZzH6C{2~_3tz>IxQ7%}}2ovg_peks#Q&kPs znrKGW**G+g3BG?7XW!2~s8+YeV_atquVJ5bkW$~nsjwGG)t1LPt`|JW`dX z-KQeRT4bBi_{=dldMG(7dj;Hhk)TnLP3rTWXae0f(cF1*pI#VIr^8C5bAn()(Gg2O7181EK8RbfGC)A_~id!?&QgGka%MR`w0#e>OI%1j?; z@GP-*fi6LBgYOBfg;jYkK*vbZl?>)7B1bCELY> zm+}wvqX$sY`OQa(>qdmNtj44IX=H+B>I4hl-^sTl_L=%V)MuSLH({KI*?R=S0xqpO zghH#p*pf%0TN+yT-zL87j))0pTEdCbKT_>2d)ktVFi<7auErKh2^gy6bM;64n0x-i z#!jc16wP2|(=prEqn{_it*qqqlp~z_UPv2{zKx%jO)xE=sAMUN9OLuUrkfCYw#?O_?MTI&ozorO)b}!RAKWwBG zUgG30fxVTLX&Lmm`{UHnWnolQ@xww}w@4bcy_$@tXNN#Xsd9l=spmV`bfn{$unfbp z^_nqqCBgOE9aff{Q_dza0=uOWJO~YLR&qff@q?yIFBDigC+m>_E`AZt*OR9-h`ZO( zcvL6;7YAt9N?d)oeBkT&D#exxNBSC12{bS|CoD!l@OI&173ziiq*kN5fJFD5G>F-oPtjcj}8hKcL-|2LGr7r^qXy_K)b z_(m|ey-2;xHtS&l;vpAoqf6X*u||7ny$}a^^bJ z%OH~6Huw7>rlY2)eD)9?+f$b44bMh2Iy{g^!QZWvp8HEe=!e7eHv8e)@T|ez4bxu% z^p2@8$qttpze|H8z$^_%A^(gs8==9otN&W8A!^Y&GwL!_%h>83$0y3)i}wPBF&BVU z=8EO@MQmIPr2)IUiLu^LnUY=W86%S*!D1|Jeh*R3fmnBy@^Z>)`M$+ehCX= zoS)gM^xO$)D&zJTxeErCL0!eJi)b6+>s*xvX$V2hU7keY2F#c9y|%2AR_kZ!fPRGX zD4iA_4uq{@c?m8rCI*w<$sN^eDH6n_W7iMo5EP-dvmH?Fhk4!8i)PtKT+>f8Gz~*! zI#W!t)21N3TiPriO)I_i#EGef_HQK}L_0%lHW4M(dVVS#sd-0zVxgUd0@SlP^D9Yf zdfdIKP6u{&))L%t1*%QJU#t_j7q&_Y~|HtDtYT($hjJ7jeGB{bf#M-yFZV)<<~U! zRa~6azp7i$B-Pi_rAq{ieRXuywo<)HYUydQHXAdb;3(0>GENJdQ|kQ_72dEv#K)gX zWF*xmn3nqb;0NpH|Do*J{mOijWAK&CHQSNs|By3+l%yf+%My)ZPVUqznpbKc zRGN8)ka0Vrs~Q`;5fnL@l6Hk`V}glh89o(#H(1Prx`}hQqdY|X z>=j3p@8-veKf2k_{JBGk;s!?x?IdsFvONzsM%SBogJ0AEt~N&DWK%59x7Tl&uh8SZ zJk~Y=V?})y_~k?g<`_vVl`@1@uc;;ppS_VEk=I_Qd&o)sb`@G|#1{Pfv`jEE!pQiK zH}~b@MHWSl58O#F{#p3Q!g`0~BU7n(?~luc9~{JE#)h>F_jXdSYWpv3N6PpMB8AeJ z;9n%>KefSA|1XtxOZN4@-ySH!)iuB=H%of*vZE;>=#*@&B%k+=&=T3(Bs@3HoF2c6 zSehR0_GG+pJ0y8=_s?@U45dWPBHjfnHn7VCYp5bnspuh@&{M1U=N{0-`z9{lC;0vM;_U+yOaM*X}dW@ zmM8#Tk&wLk2MEL)16v5)()GuO@5Aq^etWYBYue2g^(?+_6ZwWf@j(dYc`=MN-N`y^ ztTOMD+`HY3iV8QXLUs#!npCZx`o#Y zpis7wfpMevDql@1mAbre<%y%i8P>UF9#R!=z){W;x2iSXJxVRy{YD^ zdN6p@$hM3VMYXK^ToE4VZ9!g^8g>9f%D;~ zxMF#`VoAx(ZGGQu-EKu7FPAd!Yd{rRkAKEzKZNUmGZU&!u!v_j^3boV=#e<}ZPU@* zer=-Hgl=@M=UagRa6-uwcG!&MnO%5fHVZeGm#vWSN+xd~Y3BX;L`^364DkC53*p?s z!XoLL@x?o7KoqMm@c()PsmHV4@!H3}9 zMIQAuFMVHZjWTGorfpUWsHluJu^OmG6(^F`<;CE-R?FCm`Y{c)-kMd_jmV#{c%Tha z>kPAXZG)2*n%1ahNQ2XV_hgi3@!36M%kwrP%P2g<<9HWt3pljOkV73oudtBPC%$`f z^yy|5Fs=9~t@U(`F)U#*niu7>iv*bZuBHSN5mz17Zy9ptFqksi3u-eTRIYj3=9<2A zu;8GS&5tLZeujCS=wG&dylT472;A>n-RlkSoScVnIMCpAeyx{+?_fGHiXA!BBm$eW zw=bAV8A?-DL6DHPugNU0Ls+Mon{p=*3&AsHrJ&mWxv+PgeXO3O;Eu#1RY>&cET5NmD&EnRDBG?&3{uS-S0 z;C)9HqmAZe1qu|gwqpmJc1LM&Or>gPWxwld30rF)P(2atc#Blq7Bd!w#8t#iPp8JY z8jfUEU^;Dlp9Zh!QVYR*k^|y0aA!S~?~^iC`}dvSRj_Vw8DhG^xM8~(-wq;%0V3K| zF`#Q;+=|Y^7|z)87^O3acgepC4q`bR*3TH0QNG7CKb_G>2G($)^Y0zQNoY?w7{Bda zkVXbBB{=Hy7R#BxAs6-a1u68L3u zR!_ssH2Ik`Z2L+?Lf65+3fQ~0SC$#o$%tLsd6zb|o)+uCDyZv=BT^puON2=39g*iu z`w4ZL&W}K}uqH{5u@y0-f`dmY`Y-%ED`j>ZQcV-$^9C1=y-BT^IN;@C#xSVS)M#EZ z^<5ijR6jvowVnzZ&2>qRj&?Gwwy!TX4&h-v+kFO25n1VsbUU83bD}pzea+=Js#aFI zzuhHcoS@3+2C3!zTMS#xF;y6^`F5XYGA%_I98Kn#D5rTVGxz|Gvi3g_6~%}-7? z)d^5qmy=0X{o+i1arJ;W1L4uWbZc+qQN(V_trN)o%}7QH?;qOCe*f><(^cuwG=4un zR|oHMK`^GA)iV}LpQ*IRL|;B z_>`1&L;J0hnVVSZbf6Qid9#i?)A+SYHk(3Paw6oq1#N5}^{w}L;&1B_Q{ew=#-P4} zGq9|{#nUsgL2pNfVq@pDXw$C7})UD(K-}o2RxInEU(b`RgtYTyq zBa{HlA`$(}NORq1!uD*s^{)U(Nb>Z#R+j)LaQ1L){7w&=J^X$-6o#7jf|6Rjt zNbXzW(92?@aXNAhB;IkUtaR3Z?}#Ak>yqhAl*<_$U&f&m9hbH#w}q0HK&L;Gkw-WF zkS3Xrk%dn@?>|Y&oyyUf{GO-llDgZ)7N4wdn(d&sh=J5*5N z`W6EVN1#3KjvP;dL;Bu-!ve^>e5|9f`SHJtv!?y>c=Sum`_&lS_Dc~(>jP?I-HyXO znLOaL!t?N0<17Mle_9^#RZmk?TGaQlIy@r_c!V{O*W|56pYfy9#zT(9`^LsIo- z+Ph_)o#~Sk`Kusi-c_j7iFtRnq$%H3srp^!E+W2F8dPqxztS6;qok-vEAG7wGj003 zc+Wp`!Ypz*wA}id!8`J0h*jPFN9657d0xHk=2*rwSp;t*_pSQLDWO^cwBD4f2p`!S zzjs@Eq)V9y*UqtWToLHu@MLP^bVhkOm1>|><6qh2ssvCSCk~e(?DH43n>{;8mjAlc z24~w5ZXi?b!9z8uTf_u(d-oqL+wu%nkm4qWBm7qlSu>0$(9gS?Z;YYxlKVvBGP}n- zcOpw*MloX5ZDgwGn@h3PZOv4g>17}-Vt#Wj!lu9*yius2(CALO?4G9UZm#vdM zXA*ri`Qx*jeiNtl;Gka4c)Iq%IDugZ_BB_X`?cE9Bo7a4ONpD<_T$ttEq+2k6btK; zgCtugwBIm%sP?>gSwX6R8~gHv%F}V*AzWl5MzP+?6ac7UMUNC`-zM|kZ z%_TdhSm!)jK7S$cv-l-ujG2+W&Q&OMdLH^dKOrN~>J?6=vgEV1oWM`VP^M|^%DTXM zT}I3^ZZ^$_T^j(sDZFrrT`ASb%zB!&@lPx5h;nq*(cgrS`8w}{Ch-d8KGSLzamC0w zs=GJAq_{|>G;4%XRXrm?G~RMBu9@g(Y+H|YQ=EIdU&L7G8O|`NH(+l; zX3;6pIUNUM=cxJq0?qE9G38BDt<1@(TtjZ^#1L2#_^wpkzK@5ypLQbb(Qxw(xt))t zT>XN#XN}J%+pD9hpUEPiE#ei~)U~Io2g-d)%J;@&usf#I=l4}e+#Z^K<2$o}`(X_e ze{Kk9@+$JhH(RjM==_|xT%WMar;Oyye?i-+ZKpAj%ful4F*<(&@a_q7Jh7y_bHZ$A zV!N-M{RuZr*NiV3ApW3@}T^6+xBpr}^@ zI!>}d46HOI6SRBB#mUtWZIwA!nMwn`at0nNh_)s=!(CRGQK;TNC zrj7wwK7vY8$6%al#pD1Rmh*gr6T^^gI zl94r1wDEW<-?!er z)_R{Ox3gDZXydMImc4U3Iq{CXTdRq`+ljgTTJJ4|O{`)by>(X-d)f5<6vyQ`H$^(< z=F@scUbF1gk<5ehxx&x5_HyE5O|@iZ_L$c_C zxJ;<&w^fX)&vcyp+{Rwkm8tR4#DOK~hE1Z7aHr$doH-h&FZ__OE3CF*zKG~I3c7oY zeUUsFks4Rnus<=WXRsCl3Q*Z^WL66p1|dlyo8g&Y+QRo5%_c0@lV3*<#>>@Jep7e^F)9d(%l=IYqo;nEZP(k~h z$)2NinVrM-d%yqcsAb26$A6m6L6{e3U@Y6dg<(=G(FHS_8 zN8E<9HgI**4kuu#IIq@twv71rgAK9yI65L2M$CvH-b+<5mMLVj zBs7k_r_N7pN-NIF{xti8qU<3HwxlSg=`#LuNYd7iDipq{(bj9T=JNd7F^|N2tHIzB zjDoaCudjbuJgy$DI~?KU1ZYsgwN22_jt#eI@6I#ZiA-4^LwxyuG8EI)AHa z0@Jo8{d}jMd3p}x*SZ%OJ4=_V1iOczDzFcw z^N<}Oj_p5YsW__z`UEnEDYk-%ZDu2QBCTU{oZTx-tSi6E(9_^M1IF5_MaEBr4Ih-( zb0&9|f3nqjV;I%+$k5D)%1djs;kc9ANqR4?Zz~wCqL{ms_2cX`w>KPZeqz5pq=S*C z3utFKS6u&ISp4EG8E=Sh_4d`%&EuH7M=O%~oZ%SQqEy`7yz+GCb^}eo2t?<}p-zo- z!08tAG~0G>2bZZsueQ(IEm7xkJ|{$xMQye^nZO2c*;3$ z9;xCKlP^8!U=58GOft{^4K`9LATJw#K^2Qn^n10xsUE-v^ zF?1N=_@(xKj{ zT%r?^K=`pzabi9kcH*l;cd>~UD*Z?k=P>P+td|;_VEjPWSSyliq_k_&GFHJ){l^Y( zhEqb)N34k8JnNur=XWQ~_5wn@wkY{!`^R64zZ*Ftd}F#Jb;|jB>#le_e|=EDi2qa? zJ#&_^eu*$r^v_9dwEL7S(3%-vau6JN$(`3#ZcdcABky$>a4+1L>wx`VS|k0 zFCXZydK}n%?$g`Hb6EET%C`~ak0gc5_zi9IM89^ox0#HXi;1Zz=xR7!ED(+}V6n;` zvF;wX6}|9{t91B07vZ_EHR?%jN2;tUqExubRw*a{bGCe5=9Svjjxx#G%%(;5ZQ}~E z&aLZ6X5EV2X_=&CU{-Lu!S!Pwt0bN|s?PCA@mNMfWsKEfFK*6SitSzz6JD^<6BWD9 z@$B-d+C9@5UAZP)!s+0fC&|A%(Guby?)FmtV^t9BvwUIzL?8A?IXD?woAyO2Phv zl^H5j5Y=vabRYIH!!Qya-V$7hp;hD}T#=Hk!PsALMP|Gozc;p=I8UusL<{r zc6+@W?zrx)RB+M+vzi*!IgO+Jdp(vHd^Y>^TEf^b!w9yM_Mwimm@$Y>DYL_tavf7q z3X{{1McU+6FVI-Mi(cJYq!A1>spPMlB!jdXVTQd4VL?|Nw@EOahL?=4dZ!CdiReCT zc{Z>bY4ZfbnB}k;9p#zx=JE-TVll%7HPeTR6T}2_P58}+X@H~zJ{eG*X}Est#M8pI zLg`}L3!jbA$of;anzt43#C|$GC%R79AuOV#P98H0vo{i+N2*tzgSe$iPRk?ep zhIH770m(8j+13a_kNn+5a|n;_RUSAI5{5Ac1<*6@d>LHy7Nd13|Z z;FObZTkrh=NA@djIeCXOdkdXK)dnHm@dnyS_UotwZpTeIQReT1uD+2r(v+Y3rT27R zpIjD#b1rYg3Egr|1}^@)WVDq_{oCIWZ19B-_QV|4dBevMy@L#~R@azyHBC-Fi)O1P zH=}s{EC*hX&p;I6V)}S`*0YIz@*6Y-uMt=6qF1z5k5UkaLG{9> zeWRnJ-%E?q&X}@Ef}`4Mp_J|G5v^r5-8|)8VBM&-7EWH+!elXe*KTuh9ve9_GLmV1 zU|&=v*zy(Tt(A3veI;u+4ksLce`K;9AYS`eA9hp*#i>}~$U`}8Sdp{_KiBpaTIGvj z7w#tv9ZA$?B22tB>eCj9o_n!sF5zRN+Ribs z*PrAr#7~F&cm5u}3Rt8!-G-GBr1DNUoL#zJ z#^sj9lzW2&311_GBj6u2s0Fxv!)CU_gm2Ce6Cln}T&P;>?hx;4@;&;dBOQG>5UU@P ziI>;#8|j3?&wxGdOLKPbt3}@O>!$GK;mt{ry78;?{@zom$)p$iUaUYXJd5l5bydY? z9-TcZv(e99jII$o)F;jK8;P{%o$R0)+r?idan@y>Hb%AT2RX|xJKY0t#8qN9c0Gqk*F`(w7XmzKD z$}h@lb*xrXep7QX@ZDt_jTAY3&;eB-p$f)Ej*X2)N2{pC?oQ+vqZt98lL(lf?dIXZ zID$ClJ%(;w3`{*(W+#LAmE9su)$q4@0f0jq0c6mRfpnn$=+i>`(c$V5kBruV4YWPo zSw<9G4&5b9$Uq7^AOw5!HDE(bX~I}4ClG*t4t5Q%d$GmjC|oa1bAqYhUQtKKBg7MmdWlCa-EBsQ*E ze2*0%_QpqwNTUB7B#C zZmk%x*b6~yd;h2Y7#?GDwZJsZ=QjbrRVk7Zk|cnyCWr8aHecGzQ9MwzYf6>#Dg`1M zB*mkb8waZh0NkBenoO4f0{W|YIZ2Y~iU45)m;>txQVc;>ZF~<3^=G1i_tT=^QP zc$ZHBxALe=CDEq-Wx9I@ow|M+qYz&|9GzhZf)W2Ti9kC;zTH|04?wV>X3vzTF+4R!r>MN^?2~B3<*v>0>}~ z-SQrWqP-RhQr<)d@Db*}T&xHC$pCoRi1`8?kkv0O$y@~4GM$S>T*f_X@dL=dRuQCZ z8N@Hpwr=|3qz2t)Zax6(A?3kJlUPBDfQhU1Adk}Pbb)IAcnWF<*bL8Pz!Gk!vuO!% z8v1qekQ^+uscEStoD+qzFLow#-#PU8CN

QKt)v9wP8GXEZ1vc2J7Iz;q@9exs!G zC14KO`=0=b17XM%&&fG!=6DPoUl`EaTOUW%EgfF-0FYT_K(7aJ_Wib_!N25$$k|A+ zZ-Ii25`{^l(L-%5y3Y4J`iJTf`$&7nmZ)_y2sugoHDyEDaM;hD!-M)-Z$<5lovP|O zG^`;l3HclkR{64I$Z>Zg>!Rhe+8{CIRN^+QZe@S&(P;ewgz(*y3H52 z)&cw7fYIgWkAzLn0PM1cdHKCP!o>T7y+D-5>O*>o*CftPBO1VmxZ;di5(u3QUVAk_ z-AJNaPEwOkN@`{}4v|PF)eRt3{xA5J|Hria7e)7fx*b-_ z4+>O^rqhHsOhPY6PRtfv9h2mFKmnpN17A^EYP{#@kB_pTHw^^gGpOfyc4^1u?X`hl zuUH#%Z?!|=x_NiW{R2Tz@H`6u69`mAL%HadS-^h)s;F5b literal 7525 zcmdUUXIN9sw=Wh@ks>OfbWlK)B1)(NA_@Z1OX#Q&Llq(P7GIQJA|Snkp%Wz3&=CQt zp?3_u*FX|lk`vx@pZno{`ak!4I$!phJJ2MMXug_WGqB z71gC9N;~rEMaolkAwHan>IRkCOCSPPs;15bo@&fz_7H>a3NtnuC0mh;a-g_fsNt~$z=E0L4%J$Z z|G8UKv%G7UC_?t-z!i#c3(aDrh_xF^+!Qgu8>m1LS<09FDdKs^)f0;N%)oSbfg(Bi z{&PbKYT|LZzh)i_S^g=stj)yJ*4o3=afBysy?m|Q4l=e?dTZ*-;y{WW+W3usUl??z z@nh`dp#k19gfbA-^QYV*PvsM1L^2=`s*#%1My;{Z{QdW7zA9K(E`v4uWNb2Gt0X!f z?DknzNqQpQPBm?z-p>D(c8cFk91C4sDeG0|_{b4Yu6-|Y#nu?HkFADc_KR@b8?ZJ3 zg&GCRn?cbYxRHOl+o3YR0FwQ{=hhxDW5iaWWnNl({U^+zVCFIG`}3|-J^E9U0d`s* z3WWMd_#FDK!(N~N!ht5r^pYw~#O*)N7Jn~NQv9Gk)^G>7gLq`DFQU<=|0Mr@5Zl+< zJ3V`PW_!G9$DMf@I+PQG2{AAV}!ooau zHQ~qYp029YWufT^RywH}%TX@Umz=-8T^tLKuCh9OSmF|Pt~+)nB``sgryM%*+L*$V zJfpR{cH-bXI}CgAGJyIw*=@tH9ZZ=(gFU4Q6TmHp#kM$ ztm|rc-gX3EH!`nRB%!0JejJp4Z+X~zS}}F?bk29Z6*rnG+O4P`V0pFt5bg8M*zYZ4 z>;7mk`N&Zd$B$b5vX55CkQe2}#z;TJHWd|V;21+}wAp1g7MiTeqzQ1-0jUsZ zyua~ddg1{&ykNF*6F4naI85`59a^f2(M_$v&jk+y+h`OEIGS(A-fZ@JBj`6uiI>mZ zDBs$<<2S^eCO6WgyG$EI1s9K#LY2ygjkZf6vJSL=YaXur*h-81-rGP=P5tNz-%B$) zr9um~L;%!s>bo}zvJiI1er8rq2EEnz{Tx6Wp`!8T>%Px@ zBgc^N(r_2^m9ySTJCsRSp4>Q^K>GPpRfUn34$FLY=~Bq6XE%>OiRogQQ`7RBKVC(? zY$UAwNT&pLbcHv&7Kgvr#EG|dWUX<9ty!r>EpoN&%0cvL9uabe1@As0_cQ@I%V;-% zmo>5L8DCiQ2#n?F)3t=yJ4_Xj{b95Qf!<3JvCyYB1`G*0#b4!?8mp7`X>iLmVUOM- zxwYA0x`sP!6lRR4-3*ES|9q#MJfEXI8RbvxN4W1KqSnb^+Wxu?iKWZ-`{nj*E!TE;ajz_2BXMJ*vde>T0`j(r zMezgbdNBP}C$oGn*iZ3$tdfS!6@)!!4L0J*VW#5t{?Q|RE|T}j$>5)X(|eH9x)u9| z+WjNUD}AqDb1hjRrwqiNe8YS(sR95YrUS-s_wJfp2_e}Pr8H>pesTRki}$gC#ppoG zKsGn$`N{gZe*n+ruj<}QCz=G*UGf`1X2XV zbv(T;$sxbP_8V$wdlHh+KFj=(Yq-pgBP={nc_qiq_R;}vE@N`2<^f3hYsqU zrjdb-$om)p;|`M-!h^SjH(8j=W^W5>v`0V=g1$%H(qD*Ohy=kM#+n|rUu$>J*zTxJ zGmf(zHczo-;{r213I~cB-;318YK-uU{F=3IXmC*O>ggm7>-|!l#qb>c6+Ak@?<^`B z$X1YB##L#Kc8>_KzcD#~Pghk{>2^@_Et3}czKqiT_=17W;|q;vqO?v6a#=8?0wgPE zVta&pehPx-8pZMFg0&&pa;=N5380?Ip74Y5_&SvlRc(_>iKqMmEj(|`s-|Kp-hw*Z zOe6$FOk)n-{8W0~W%g*P-zp)lT1(f0j@)8<=@UMt43&3gQQfDX39+` zQIXp_Db8g_RD))dRS+XxVzq-j+jm^ zP@iJ}D%07v>lNn>H{gE&3SLu`pP4u8^&KCuf>axo5zabn=iy1Ut$CaHgNpo_iae*F z^v^$x*F4t|nYmUJlyK@Z!^**7`#4lVLH?`c@yTY{DQ;8j+{QL&xUlwQj1z}6hmwgj z8o%f2P0w}$Ng?$LBs-hhW~lc3-y8ozlWnaGX~;@1DwF6}iGQ{8K9cko#`sc^*?m{& z9M-g0+?6hX+WY_!`dzmpZ0S!%Gr8F%?r$}n)_R}McI{%vTuT%2Maih3M1R@(hnWc0 zCfw#^aW;6My`CLS_TNbTcM?;$yN~C*3~}udi5D+%H!Sw1_^fSih`v^8{RN9TFzCt? z;TL4SKvl;Zpn9PN)_;kSW@1y+Hd$YPz*BmInj0gB_H4&bj*%-4aqufmj<=_NTbA4V zoLSE+XQZ6?xNPGX5xWX94W5gWyI)1KM-rTT@_Ri>MXS%&+fITBo@6Our_??n;8I?m zsH|}DQ=>Ai%*x7Ny7d5S8}jDCA=D8+26=I%0=QC!@%ba__Sh`I$iAP;#8%N=&PvnF zU|t8R=hz;hml@81HO59(h3w{CMY(Qo9d)X7fLSKf`t)TB0XtPC4%3Kz+x2if%1GH) z%?KN*xf8c*I(D;0cJY|RE(C>h8ihED zObh;QH@o;k05R#ga^zd~5|)G_?j@svZ|In16AoU0NGW~HtRMaQr)iOT6?nJP&$%Pt znJ29~%r1`j86BQ1JcQt@u`rB}lVehWKWB7NDK+-@sGMi%o5y!&^q-mLHhS5ORwue! zPXjnbECv;%2wJ|IwEzsFtv`a{S@TqNvneV1BGsB@nPnpfgQh$* zWU6Catu4&_el^4DaOoo@ z+{p)u6WoQJL7fk$k4PXx|p42o~iKeBvP&G+FcDyZ*sGAMiMh0N5(oo|o2gajiJY_v23M3vH! zKSp*eWOZ)#W%6@D;Q zr62N4rsk*XX{2D8vt7^FUJ1-RMh*w}8@K$%D59wi5pzeZ!PR6^$5-w@W0B!=ijZx$ zu5YL+0-JauDpsqnv*BIA)!NhcYffUmmG%(;Oqv#j!Ckt}tSaDkn8~xg)RVbi=1HO}24QNSUOX$?0G(i$CsXc0KA~ z&3C3Fe{BEg9`2x&zc_-uwa`=e6b6qDJrs{r^ID%cQnC&vVSCBF9%qsQdYjDQdKEZ0 z(+<;UF2dhmEam;8Cf>(-X3YUp?O+nI9cX7{R9RZU$9E84FcnMN$|2QaX$peSx@vky zNyv7abs&Ka`UP(+Nu&fPc2|KEqD34XtQlLQUERy!B2TS87~v6Lc86Pjzmy1uarjEj zzSps*Js2B(*;MV{!=2+WUOEMWFgur32KSmbf`}aCU!Ye2`ybzE?tduzi?4Co1RonZ zKCD6g+NtI*7QK&naB{dvU&jBJL-f63B}lF5aN*Zs0TmiPf;3`j6F0j_;RqPcxd7TY z%v8Bs4l@52z;?oHT@+dMHdEa0`{dkTIFd)5v``vVA`0Se_Uo)(R%0C#@faV_wX$Z0 zR=n339Ac^t%wY?$O|G7w_y-=Qi*9z$^45?yYpYNw-Hyh(w-5Dt;=en;aWBnZ_VBJQ z8b|IJgV9c`5?jmt&YAUy?D57Kq@n!SOkPDxg>ZYFce@dWfLPD%IfWyM=+qWdMtP5@Tg6;YGk6bv!R&7 z$DZ>YxfqDkQ9i6(oi&Sj%LMRn^mS5pc5k|c9@~@llqGx7P-U4AuASsG>*{=+eb@&h8|e_!#x{AKRe-0Ww+oRl}AhKS{Wf z$#sa7F=#vmghMV@TiUStn&<{epR9yNvuFry6kYCW{GdzgqH0hEe^iaMz|Sw{BIJLL z8eV(#u@=>qjzc=g_d)l84iAa}bbC)3=v=iAAoPU6q15%m67;qvgm`68ny1@MBhI%n zI00EXifXU+oi9(6L-|kXD3|$8=KkN%#vS3}X8L&5FIE1H-Ke5(969cPhVD*S)dF*( zsi?fx6qGPGY{ai4zwhP1H%7Y->~r!2e7O0xWd5kQNY7Y=0@E2%W&l(<`x(#Fkm<-b zVKvmWhqHIPdDYU%+e>91!|3gkXz$j4S`{bM+yE=|hIvE<>NS7<1RMoC{EZpCXHsjc zRxa%^cD8(7UnHm4t?R)Iwt?LH(O;-LlO1a60|T4?0XvrR~a%kASa!Q{{yx66+*N?kSs zOXJ~%{USB9#Vo!k$aJUmZh=UygjH_sf-OY3swBI{`b}-4VWX3;S^q^CGH{mlMW31p zN_o6CSn_t2AOEM*m;r2wqxX*6-aZ}G^Ub=!0nS{Ic~a?7sEjWWv8_So=N~F4CpQ)r zZXCuu1P`-rko^NsaT|d9BYW*(6;=`ef0vyj)?n3;Lu^ypM4Kw{;&W7u)M59Sg^|n4 zN|3Evq>hPSWmTHXW?yaTjlRKLcsJ2w*jD3FdZGF(lSBFfgYtad*g>dV%Iu%Ju`(;V zW~~Y8gvAX|h->Ls`?68U`{D=4aAnQd_hn6QBiT6tI!NG7p{{x39~F%s#;DR>|HU~R ze5C7Lb61A2WB2q{-L)ZzP#4F%mA*L$(hUH;+9~D|gBOb!3Cv)tKARdH+FFAS*rB(l zyG*Obhn~$~j2bX21`f5u094a!Mk4&#D^k@-v&Dedw1J-rKaalZj*8!CM9F$6rCAF!Z-QU7=rp#d}DP zS8nkx7w++v&e)!Q!ek1Z7!+-43(5Ja4Xmy7)%JfH*y^K{7ZTkqgTzOU}Gd;`sE zi9%L7nCSwa8M|NcME7XN-TgN&unqST>=1Hn@f#vy+UijE15$X^!4Sklve~BdPW&^Y z2`u(&;Zvh+{kG3`TU*HqMTwaPo6ny38y-|x-H%xR6AR|%2AtZCe7{_UP55q8$OBeU z>0g2HuB_^H!xA%!u=pje5mCsFz=XEbV6r+&s<#smhM>I&j~nUE#szr zQZLn(>xN^?EozU-cyEi{U4qgb!!cPh&HR^0f2&5&uV3wdu9E6t3WwNGB>kt!K0_Mj^2MMZy zt0a5MzL_Ciq?$V={wQ4E-~>PPBYzPLP|&hfjKb?TDxX~6p05x5<#}-B%zn|DlXx*B znu29*PS_TI!Nokb;;>u%CSuGTA{H69`P}X-&r~O_aQVC7qI5YdO6o`R>(^Dbht;IAuU#!d&YD;oW?9T&%|7PnJaH2~0DdSy0 zHx9gb3w8yVS?WwdVHCr7d^3M_*Rf_UthJ@Fn$q)p+>Vgy!oG3I5+D2xHrn4d1-!)xdBx(LM>orO8-+fQG{Fa)e5HxbS? zsp@o2sfitRMZXxEII%tZOq4~Z@HnEQ9|^sZW0|sEXT|zs@hJF)XRi-?T`68*nH|=dH$6wc3VQH!@232&ws$b{6E#4QnB8fuf7Zfoctd~W$p3de_q4+ z|1SRgZ#VoQv=)(*xnS_$QKTNVY%e|jBtI`pjQTYL%JO_w2H+#cTsL^^&Z!;7t6nWG zVgFXq+{!gDV^^N7m4UQ0m729Pd6K!#Ikc?eF62x;Ot&X3B`{#OC1j@=^9lR=?!U3a zD&unIR%R*By}_9U`cSGpTmF)cv=CW}*vUB`C~G*KJoQnI0ICIj>o|rEjkp;OI1>7? z6taqjfsN-}Wlh-LswoAV83r{y<@01cG#uNw1w@#~+^3LjP@xvg+Z)v9YTJG51~#gV zZM;@>2IQ7Y@>PUosrt>VvXhks_`&KngKDGc&m4)X=c-ew4^9d>H!ob!%T!Qmyu^Kb zN6+lvy5Q%JT9hmKTqWT7|8$Xw=foSC?2 TSconfig`. .. figure:: /Images/GeneratedScreenshots/BackendUsers/TSconfigUserInput.png - :alt: The TSconfig and Include static TSconfig fields in the Options tab of a backend user + :alt: The field "TSconfig" with the line @import + 'EXT:my_sitepackage/Configuration/TsConfig/User/my_editor.tsconfig'. + Below it, the field "Include static TSconfig" with the selected + item "Editor (my_extension)" and the path of its file. :class: with-shadow The :guilabel:`TSconfig` and :guilabel:`Include static TSconfig`