From a526e77b6d5fbf362cd40e442a0ac893e681448f Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 23 Sep 2021 14:34:00 -0700 Subject: [PATCH] Move clang-format download into dotnet/runtime and add docs for setting up auto-formatting in the repository (#59374) --- .clang-format | 1 + .config/dotnet-tools.json | 6 ++ .../code-formatting-tools.md | 93 ++++++++++++++++++ docs/coding-guidelines/coding-style.md | 2 +- docs/coding-guidelines/vs-cpp-formatting.png | Bin 0 -> 67399 bytes .../vs-csharp-formatting.png | Bin 0 -> 49252 bytes eng/formatting/download-tools.ps1 | 46 +++++++++ eng/formatting/download-tools.sh | 48 +++++++++ eng/formatting/format.sh | 26 +++++ src/tests/Common/scripts/format.py | 17 ++++ 10 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 .clang-format create mode 100644 docs/coding-guidelines/code-formatting-tools.md create mode 100644 docs/coding-guidelines/vs-cpp-formatting.png create mode 100644 docs/coding-guidelines/vs-csharp-formatting.png create mode 100644 eng/formatting/download-tools.ps1 create mode 100755 eng/formatting/download-tools.sh create mode 100644 eng/formatting/format.sh diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000000000..e3845288a2aece --- /dev/null +++ b/.clang-format @@ -0,0 +1 @@ +DisableFormat: true diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 4775048d3d709e..6b60141e38a5e2 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -25,6 +25,12 @@ "commands": [ "slngen" ] + }, + "dotnet-format": { + "version": "6.0.240501", + "commands": [ + "dotnet-format" + ] } } } diff --git a/docs/coding-guidelines/code-formatting-tools.md b/docs/coding-guidelines/code-formatting-tools.md new file mode 100644 index 00000000000000..c5cb1ce48f55d0 --- /dev/null +++ b/docs/coding-guidelines/code-formatting-tools.md @@ -0,0 +1,93 @@ +# Code Formatting Tools in dotnet/runtime + +In this repository, we use various different formatting conventions depending on who owns the code. Additionally, we use different formatting tools depending on if the code is managed C# or VB code or if the code is native C or C++ code. + +To help enable an easy workflow and reduce the number of formatting changes requested, this document provides steps to download and enable the various different tools in different development environments to enable a seamless workflow for ensuring that keeping code formatted is a pleasant experience. + +## Downloading formatting tools + +### C#/VB + +C# and VB code in the repository use the built-in Roslyn support for EditorConfig to enable auto-formatting in many IDEs. As a result, no additional tools are required to enable keeping your code formatted. If you want to use `dotnet format` to do formatting or are using the git pre-commit hook mentioned later in this document, you can run `./dotnet.cmd tool restore` or `./dotnet.sh tool restore` from the root of the repository to enable the `dotnet format` command. + +### C/C++ + +To download the formatting tools for C++, run the `download-tools.ps1/sh` script in the `eng/formatting` folder. Specifically, run the `download-tools.ps1` script if you're on Windows, or the `download-tools.sh` script otherwise. + +This script will download the `clang-format` and `clang-tidy` tools to the `artifacts/tools` folder in your clone of the repository. Only specific parts of the repository use `clang-tidy`, so this document primarily focuses on setting up `clang-format` for C and C++ scenarios. + +#### CoreCLR JIT + +The JIT team uses a special `jit-format` tool that runs `clang-format` and `clang-tidy` on their directory with their settings. You can get the `jit-format` tool from the [dotnet/jitutils repository](https://github.com/dotnet/jitutils). + +## Setting up automatic formatting + +To make the formatting workflow more seamless for contributors, instructions are included below to help enable "format-on-save" or other forms of automatic formatting in various different IDEs or as a Git pre-commit hook for IDEs that do not support "format-on-save" scenarios. + +This section is open to contributions for instructions on how to enable "format-on-save"-like semantics in IDEs and editors not mentioned. + +### Visual Studio Code + +Enabling a "format-on-save" experience in VSCode is quite easy. Add the following setting to your `.vscode/settings.json` file to enable "format-on-save": + +```json + "editor.formatOnSave": true, +``` + +The sections below include any additional instructions to configure the experience for different languages. + +#### C#/VB + +There are currently some limitations in OmniSharp that causes issues with the auto-formatting. Once a VSCode C# extension releases with both https://github.com/OmniSharp/omnisharp-roslyn/pull/2227 and https://github.com/OmniSharp/omnisharp-vscode/pull/4738, then format-on-save should be possible to enable in VSCode for C# and Visual Basic sources. + +#### C/C++ + +VSCode ships with a different version of clang-format than we use in this repo, so you will need to add a few more settings to get VSCode to run the correct clang-format for "format-on-save". + +You can add the following setting on Windows to your `.vscode/settings.json` file to configure clang-format for the repository: + +```json + "C_Cpp.clang_format_path": "./artifacts/tools/clang-format.exe" +``` + +On non-Windows, you can add the following setting instead: + +```json + "C_Cpp.clang_format_path": "./artifacts/tools/clang-format" +``` + +### Visual Studio + +Visual Studio does not have a "format-on-save" feature but it does have settings for "format on end of statement" or "format on end of block" that can provide some auto-formatting features. + +Using these features in combination with the steps specified in the [Git Hooks](#git-hooks) section will enable a seamless formatting experience. + +The settings for C#, VB, C, and C++ are all in a dialog under the `Tools > Options` menu item. + +#### C#/VB + +In the options view, go to `Text Editor > C# > Code Style > Formatting > General` for C# settings. Make sure to check the various options for whenever you want Visual Studio to auto-format your code. + +![C# formatting settings in Visual Studio](./vs-csharp-formatting.png) + +#### C/C++ + +In the options view, go to `Text Editor > C/C++ > Code Style > Formatting > General` for C# settings. Make sure to check the various options for whenever you want Visual Studio to auto-format your code. + +![C/C++ formatting settings in Visual Studio](./vs-cpp-formatting.png) + +### Git Hooks + +Git provides a number of hooks to enable running scripts before commit, push, pull, etc. This section describes adding a pre-commit hook to automatically format code before committing to make formatting seamless even when your development environment doesn't support "format-on-save" or similar functionality with the formatting tools this repository uses. + +#### Auto-format before committing + +To enable auto-formatting before committing, you can create a `.git/hooks/pre-commit` file in your local `dotnet/runtime` clone and add a call to the script located at `eng/formatting/format.sh` to auto-format your code before committing. Since Git for Windows also installs Git Bash, this script will work for both Windows and non-Windows platforms. + +The following code block can be used as the contents of the `pre-commit` file to enable the auto-formatting hook: + +```sh +#!/bin/sh +./eng/formatting/format.sh + +``` diff --git a/docs/coding-guidelines/coding-style.md b/docs/coding-guidelines/coding-style.md index 856ce8f5bb4eab..709d4719d1c68c 100644 --- a/docs/coding-guidelines/coding-style.md +++ b/docs/coding-guidelines/coding-style.md @@ -1,7 +1,7 @@ C# Coding Style =============== -For C++ files (*.cpp and *.h), we use clang-format (version 3.6+) to ensure code styling. After changing any Cpp or H file and before merging, src/Native/format-code.sh must be run. This script will ensure that all native code files adhere to the coding style guidelines. +For C++ files (*.cpp and *.h), we use clang-format (version 3.8) to ensure code styling. After changing any Cpp or H file and before merging, src/Native/format-code.sh must be run. This script will ensure that all native code files adhere to the coding style guidelines. For other types of files (xml, bat, sh, etc), our current best guidance is consistency. When editing files, keep new code and changes consistent with the style in the files. For new files, it should conform to the style for that component. If there is a completely new component, anything that is reasonably broadly accepted is fine. For script files, please refer to the scripting blog for [tips](https://devblogs.microsoft.com/scripting/tag/powertip) and [best practices](https://devblogs.microsoft.com/scripting/tag/best-practices). diff --git a/docs/coding-guidelines/vs-cpp-formatting.png b/docs/coding-guidelines/vs-cpp-formatting.png new file mode 100644 index 0000000000000000000000000000000000000000..2808145ca1650f8023dabaed5da1ee13e7787406 GIT binary patch literal 67399 zcmce;1yEdFw=Ejn-JKwT;BLX)-JJjl!QE-xJp>5aXmGdS!7aE4CqNS#w+?=rs02+;Q^&hiFsFJ2JRKmWlfXwsd& zc=1%MAT6QoZF=~CBeDr*oLD!@yHdbz%EN#@4c#VF z^3L@ucaFl&yt25Gj>?ZO9Wg9wIq?zKpBtq{W2}1H<5HF1m?T^id?bM>&t|m8EyytR z{FoN9M{mL25^!H~w`3$3u%Nm?x+MZybqn@mXAANRM#HA=24>i8nXYz&OnU{yvM=7` z2R_t1c_;*B8IDCq{k@9R8H>zFcKjL1F}VxGrT<>RDD(CU|GwGLqQmXsz2(LEdudP; z+f&p0xeCNNm;Svg_-$?QKSRO}n8W>ZGeS%c;@^8|Q1L@C{uv&h5s~bldl}Wy`LO>P zIPd>x-~(GV;WKyuxCMZguU;xFaycb+yLKgI3SqA4C;)XNgU619;{Tn+f$i+e)<8zMTkWoZ@qy?Aa5< zs;FOpx~InvXEA^0zJNz!MNB~awuBwt8*bNm%9u=A8w4F-vOih419 z#Ut~{T*`&?As-v}7k+*5#~3D(S*|aHc*x?TfPPG!T_)u1^(Q8v8FS|;1s4`p%`6689DosQjtm4d9F^#Squu<=|J+Q$fmp{~r zA^llxjm0F1h`^_lr%pxOn=-WkMRpTlHgt|CJo2I;7-Nh(!TLM}AiG#;OYtu1=2}Hs zoF5q3l{-HAxiMvVAqK$2$*A2iEo>v&)Oql{y^O_1YV}dR9*Mk-eu~-$i*Mf;)rgND$on$Y zW#py7tbPm-o+DEyJVGM?(1QmTo@M$DqIlA3JlUoPsHiF;WnSHDFK#R`^y&WdB{ADt_FN}W#I=7v%hCiqvaPE z+@}_Jt0mIX)w*l5|0O6iF%3g@d#IccPUoOWXg_XS^J+80w5$V%%PjOeMY8JGSH*OH z&-p}3D`~FxHVSk%wjz)!ui-kM&d2wXFK}sqhyqiUBq}|YGP5NNq&=|EYiNxHbP~Na zrVm9adTI5OQ0ULy1o~|LaR?s4zQKrE{P5)dd-hS5U-sA^eR(3?(Y407*$4ubMS4V8 ztQ`eHru|V3>~Lk*ObRs|qkhAAB zfp?d+pKLn~s~G2eSS(SmFE}Eq-O)U~sY4kj0t98-|9ZKC`Q#BR=kpx}k(NjMwYGV! zydEn=@*U3{LZ%UT1P9&hV>v7LSS9m+z2Cw|dAb?tv42lgfzbcns~yNs{CkTb)#rwP zzYRO||AX&ja=$s>{RmL`#~sgotTJk;xBf4m9s94h{Qt~n|KARrKbFp(ehJQusd*B+ zCBVT!VD-On+SjWR^xc+u_~Unn+mRsaHD(Bw;DxI7P>e-0NZ|G&;Oc2gDJrT|=j7o& za4W~_NpQ-%?G(7 z+aCn>=Kr-Q|07&^7E;p~(%W^Ch1-h~6`>Ka?dv_;4j+FH8VU_97o=)mmcEckx_dq? z1*p#-9%$-S8~2z!%$seoKW?+1Hq``R$R&{X1m3DWp|l!frn8$Z*!}T@RaDOruxYdV z3G$RMGNRyrx3V#~aX-GXN%gozbt?7*dXmmp|E9#=85SLl(v)q(I)V|2eE^iL8}x@j zBLcqUlRG3QgJ{jDdPm2ljVgbt)*ClEYJuuG#%9vNp-qZF$RCHEepC4>G+~MU7H{(Y zJ)H_hRoT>~MVSn4!t;bZ^>0S+1hDNFFlMkPH-_g*V2Say3!K?f8^zMG(!!mH| zV7|ikG1IQP=j7?}@xCJPs%Fk_CWHIEb}Z6Ck}={heRR&EEJ*xJFuFqBr;HMck0xsmU$iUx`z7zYN z5)|sfp{@StQg8aA7_`IznD3X^fY1n0S_q5AH>|iyo2b0`9_WuhDSBt`$-`3TPq)1^d?-+g=%8E82BqS+SdDL zJpU#0X7h^UY)$#q)zvS(Z$?g4o!{*EnQ}9vMESyU&Ov9tVU!2XKUc)??ccx9IVw0B z(+TMsW<1~a5PE4EJBb3~v!!V55Y_=jm(oRZXIiE&@ojW}T9)-0ZWy^tLi*FsAJCDmDYx~R9fxw5u$yUc4P)d|dJTl!9 zb>On7*D(WQz(K6H`w)h2*~^{!O1+VovzA=Z*cQhPlj`hD$$YZfpVKwbF_%UHcb6@5 zH9IOkcT{K1fDc@dhbB3%O~f(I_F$hAr>`gLu0Ex%zQ5@J+nTB~C0)N6Jy-M6Ta8a_ zKUzP$0d~NM33??|kqvWaz}FKl2lUbz38}a5a&TtK+1r#j#!wAT(aAxSw_UYaBV3v?`l74n?y>WGkJyU#`os1;gB=v`CW=NK5UbmTcJq-f6 zCtJ%gHGgnx{_Z)aVlj(mn#TdKB(%IphNF$%ZUYEtpROb2G)#$m+iS2{J`gR?-6z_v z5EUTf3CA#gG4iFqAgUAgz*i+wBZ^MC?9H%;%r1`B9xt0E>NfF&;@i-lx3Aq=2>F;8 zUpMW#D_T|v~ZwYO{93$F1Nal|7clov8+dP7jApV<6fKLSjLf^2xCu0pg~!w0Kar zI`9~HJ1%Dr(qT>yGIm@8X83(8@2DzVU1QqSxwBJeb9y?OJYB%(j^3ENFdb7kckg6_ zv^?}*t)3DB25sQx&&t$v+M=NG>w)0$_~cP_Qs@3c?1_6KSEK@@u1ctIlrmN%6QJmo z&k^qRmhlu-2Xiq0J0ZTVtR1S0xSU-K>(ZgVAT9xT-q5isjOqH_Qgk`+u#;n=-31(? zo3QKoFhR&5DsWP=)b}^dHBqQ=WADw9`DOUI`^$>mMg2D!Ug1R72NPRwV=;I7M*kN+ z6P(gsqZbwMy)jC$+g~-L;|!zJ6GVtz=EYNRlK>X-wtHi}~*75GzmrTI{!n%pJcV~8wFIk{z^hD%Rcr}R8{Xw_F z?rwae1IAmavIbPFzF#76Q!8Y1(}8)oRK&FW?%S4@**$5lU@csh^fJ^p$*Km|%n$om z>Obhw!b#3 zvPn&9RvwPv8<+=-o@_cpr3vco`g?mra=EjGeQ;ZiRWY1=c1H7|8%?>MHOtspHQ&s1+jRVj4zaUF@%07lI)rrnn=!Bvr9PqPM_x-RkdSp7timbeq zAZHeK)z_|JsZzLPzm9b1hONnU-SBgp2{>O-@L=FzUbVH+H8|rB!H!ir?_t@FE0y6V zNW#(mnb~1GbTRe)3h~;j2%%Gqrl9Fnt$FCZ%u}q{U1quXnBsOn?Ysn%LB0rtl@=77 zF(jdT*z824W2jVt{5}_{WdT;R?6R!<%dME7!r@cI-D#WIWe|F zJs{AlF&zkeoO~jw>3(c8eVa69=KG7DT+kIhQS_EEH}KJ?<6`2?t%>$t2r*pFd zLEFgfOB|ixk(h3yi`YOP&GBDrxH8R=x8XvJ10Tp0q^^is_?I0+za>~}7mUB!E+0@} zdY$GO3AOEz6*wG+=W487V=Haf0+GN9Tave3uX|~w{l!fk)8dZ7>15~$7~}S&G$k-y zT3Un&YF7o_yj}L`cT-y*z%_@rdM7J^LmI)*+_4`6n?O&=WaGYgtr8t@QId-4kx_ip zMHhJVv;tgW{$A|}jcP-hL}@TsI{eq_t^V!0M{O_$E}o{%I}4}f)G6{&+QVV9%+jK8nXeG=no9^E63#W_Y zPiqSoma)-~Q&eQ*b22bnb1L7cEo^GQm-Du*bgFmf88sFw#mn6;#VXB~qsa)CQio#K zXHVcW6_)<4%Us+EZ2?)}lqW~V|2%m;1$H<;Dg9!2cj0UzEp4a1*@KvZE<`+jy3xDr zv>e#Ve+SA+S$5hex;=jrG5v}41*t7)7%>ZgSAYAf_(SKR;bw8cD%-gBC+pK5a+SXO z`EHFaM7_4`OpMXr1Z@^bln*}^?I%aRP#}$7KzFtE4q5@>`1ttNd$9^iqN|PjtiVve zlTN)|tE8TAyXsci&aS)Tc1}LNFR&P{BuyGsfK_Xu;B0H@paYhh`je)yeT24+?&-Ns z8i4pK2$@WgZIr~a18umyy4Y**Pa|f%LC(v#vO%988PS)x2`_J5iPJ7j6L-TE(LWE_ zylre%Y<$1h=@BPOEyq%NAa2$QxMO^=eJg^Iv%gvPUB%Z5|4gvnh80W4hj5q2@Wauj z+PB5I7~kEkUq09;a)(kwx=$j!KAly}}wQx_>`Mp4FWPa_E;xu^Mci-AFe{#_$wjc$6n>1>%f z%2k3>;N8matnM2!5xq0NZipW-DXF9|cy@G%{KS0#Z??&0|y^-ESWB@g?an)2&oi&`PFw)Rd0B-y(B+dKTEEN-o`k# zX)clS5OnN)OY&&8_DhT!mt58Dw(*y@-ygyyQHaAqSNf*={XvoqKFGo;i#q~NmPHa{ zNx83DtG`nF0Rvqg0FgV|!fCBvWMz~45|>5`HC2tWGbB4vFEb4_YJ@w4u?o&R$p@0p zd56Pd>+L@MJSi&!JM1odwzG-dU3fq5G3Av&TdnT%EWQWKIKs#IZuA8$cK#rhlsm{M z`NDY-Z$@$GXfgFdJto2j@Ad=I9S<`-S;M9J7L1%)Pu{4sN~_yZ_? zZErKPFMasigo`bFc)TgIA$1EI9-&~5-L2*7k)t-@!i};n8A^UY?AqM$@ zzP;-*10F!iuc_0Maj!_5jj>d@Kw;eb7Klt%$M7v_IARZ9=o2L)+fBSJ5bZnSN+s-o z=v>)?ZnBd)98=Ivz;se`%{f_Wzqe_SyS?b>-{ z?3r>icUAym{ z8||XktEx|+Ukg`1tGfM3p`a~nE%EWygh91ZeDkTjhk37|Xt7#=20gp`8!>~|qWl(E z{h#=bPW>GgcC$_!%DLQD(o=->>N4&;zGee=Ivi^jndc3UQ&$?^a{+NKZg3b30Ixng zd|YG5t|ARVFDKuiZGqYEMze4e`ZHk4_4YdDgXp=e;AE9w3yk4s5nOpEf-Bv z5iEbxs3_e@Jz(Y_)R`^1^(1Y;!J+V}2ke@MDus6}X2668u6B7c?HvFf4pUT+cx;a9 z5XnRAr)w8NF&aflQe`vf69Z;O?k>JT8LjDq4|=u1zoyIR>%lSPwigVb!!DxQ4$~<4MP7+#oG6R6!6*z(-5umbbxbNY*KUpKv7FtF6my0$0W-f)aTKiMO z|H#hF*zM+@kE2#O{i&;Bf(*vvQD z?JG?_GiA1kO{DfoPbnxfPyylc5BH8bTK>$wl-_w*{wFgOm5(coPNHfy9zmWyU z9@ijWj`}QU^=GsSCn;XrB)uH=n;Pv}=xv~`N(CdMj)g|~qCK->b2?CeL$>i7@tNUx zPIY|CsAQC>6lnR}aU-?FZ{=gV4~WuhOU*oa7cbB)t@6WWdZWDO-@KiU0?b>6`0E-j z>(vN1#8>`1D*B&MdB2PIT`ig=5}A6#0Dt#0T)q*-pEPHq>YJM2*dD=80``%3j=q9& zX$OCVqEcpfTpR3|_j^f+7#1b>uf+f_wCaTS$_p@r(j|2KtnOS>#o4%GI=pjKhsm+$ zSF}HpWNLZjB478=8KZtQZu!nwS+qG3|Vq7t^I}N;&@ZurNxM zOhz~qW3Fv14dB`KHD%d&S%dV4# ze=X}Nb~~Lor>&$OjChtxj#to3O7^3y9V4vHjqw#z4c<1z(|>RV8MW%l-0%2c3c1pr zDFelKHpnpXM zgekP?CAAM)td8zxo%n@xX=Uv`YA6e!88->wfV{rSrYHQ46IkH-(l68h5`my^R1L1(z4no}LjoK?B5bHLYZ*esZvtL`UL&dkR zEM9A-l!|(U73VLtPoy5pZT!7jveWaflM`Cmz1F;B=7lIHXUDp7NRRqNPfVN3(f1-q z$rqP&b@d5Z5H#JKg?}8n<`dPkx<^nI2|WR$7cN`E(2yE+Tek zw3S(iHtLyI(-hdo(n}OM^Q_ExjTED;>t5d_E01Z_;U?kQwN7T;vo3;OB^c#aE*|*i zPH=Hfv>()0%!#EnWanJWgUq@+nBso^SiI0%IGzkz5hM|E!79(Vi%zvAR9Fk(b)js! z2I;SB3i=4kR{3c+bu2s@mpY6wkG_{pt9tO!1KBQjms}vRP4o5~JiLQZxZZX6@FGA*`Ed|Ps;eW;b z#>bwUYTs2thuRTqn5 zXA@-dl7(#@jAMsf@3?(I1mQ-}WR_ckUFFjQVXq2WEmKpjcdh8@BFf;#(*|v!#!^{_ zBHl35^&JZX*)e+YMd!6E9|tJ7lJN1>?)#F8mIYl$ksFkYyEMZ zFrUEBJP8i&8l#5qD`A|jOQsnW6WeTfh4e`a zZq{4l9NW0pPQT9Jv&vY&Z^8F<1P0|wBj!sXLqRsWmHnz& zdtES0-*nE=VbW+I3*pOMS}cIVBo0oM1DC`O6wsD{e!TCC!0_JNN3#R$k5R+7vLBFJe(hwPPbHy2 zHSX+gseUkG8Ql_Q?MuO(F1J~nO1EErt`Bjj&Ah>nTF6?z_hZh@fct`Z${k`8|F*X0 z?V~#WbdN#h+-C+Fnm{Y%vN-phz4rq`;CTY&;JJN&BtU^V_1{Kt#{9fHf50TjBy zpb^O){gZw+;f{SvJCqdIIEb18&PK>2V+s=`3>r}hFW-pfrOU$+PbO?N ztIJQ`?QGq5PDYtp}0BCJ6?qW^dB^MFU!RnG+eVhQ`y;QZ4>j%nl^;B?W@E*5ru=^QbHwo9ZrGz2V}|Ni@v?s|b$0&8sQucEoJ{AD4Z+WI@M@TimUMGIU>7M00ULi3z(1D0c?3~xc#7{0+8b~@odQqi$ zhc@zoSg_N+>a{Awud6F>Y*8^sF6;VeZURhAQ*b znSM#`0rVk{IfhFhviHIH;nb9%G-pc2@7Vu8U97kB$%C(g-Ol@~zfe6zfg)?X<@Bm1 zkRn_X2FjcLUK$eJ3p8uB2uon0Nt?7(Y7Watv#sQEP7W%4X#NWHbbF&lVjpFWucdEF zETPZtkXl(wN638VKEbaBJV|3wTr*kX^$ygvQm5x?ld1e6kcVr0qpJntWJme-LHPj8!@E)ifET!Inz1zE#%-87#3)qLIz|*2OKeF;W=G!SjUC{l@)iwxEfn|!#Vh~Y< zhcS&|;Qup>+WSZEz7x`ODqPUGdHKCeNG(jUw>?>eNeZ$p52w z<3N5Y_;xp)%MDkv=OfDw$n40`Ru5fiF6{oSc=)yW_QrNS^fvqMY8|+)4Q2WFlXQa#A4G{Fqj30V@0`)mu<*A`Uh8~JRpnT1|KLoNMbtv$T!|TDy<`3y z@xboVPtvFYhfq;b!V%U@YHZi?lcGTp3wTaU4N0eL+6Sld{{Um=Dd$c)ZWgsp;`Xy~ zkbd~oF(v22)3$+G&y^!T#L;Bj+Z*KvB5NU(Vj5=nZ?zgC{NXi{kJB7I*li>xKyb`3 zx1n@DHf0LLoQoE9lpVfZ&rVW`TF_+z2Hg5}tsOflBe2_p_OE<%4DXHTX>9rbB*sCBxTfEY>52eU*e&l$YyS_Jj$VSIOT6dFW zxwz_e;5wk-9jbqL40gE|ECBYjfSG>aEv5RJ%u%DkfK}I5JwkkB`1_`kI zhS|znL07euH|${i`f7rQj708 zTKMY@JgHzkaaRsZ>*l;#E<>#-I3YtV`<{10qsgWEH4EqE@Q&B7W>H-HpW-g6m)r6x zQ!QIfx*G6Bu%JTlQ`VfZDzgb(LhtHS0Hb~22gI~pWQ1)>LFS=j_u^)9>ZGCQ zmu<7A(X4E&x*KSqjS_)|aie~*SS4A6W&4+#ET84^Id?Qfi{@<19JW9=*UryBq2gWc zh`>9=u_#KE>J=26WU@aicXSL@R?35osGLORxb1uwbe~fufKwPh&iwh^I>*IQ>d6x7 zayqTyaWrb5>-`E6oS|eW22WJ^_$AI&xL8HE`^u|%$PZQxE5A}R_fXC3L7W?~d$T9i z?KgN&mcp42d<1%|s+tOQJl?@+9;`VXNUXNy!dCof^UWJ_fq{QjLC7LH(=c_I?VuA0 z!55NUVU&asJC35xkif10GbiTBB2-D+(X?^q;XW{>#`0sXIAS*72w_KHSznjxkpGp&9i|GGdqy@V%6hc z*pr&1B%YtTbz6r_R3@8GYkiYA@pJiL=#kH;XKalvxennDA1&noG#0ODopy+9P#!zw zErLNAmB&KR3OSxX>r`m^(7>{vI^;a z#gs!x!3;Kp?L^Wo@Ta-nV(K(bft=eocjs(#+cv^G!64CkNdO!%V;Al!m?pQ|WSOfd z?#r?p9`FYQ{YWvn#IKG^NqhGNgR`%9Hp#VXx z?rMFVTSYl_0hWdvGAF%$&ceVm9dHJ3$SE@6_m>AO0afu^$gH$vjmqR^SOYecKjqz* zi=8~vaQ!cg8PDtw=WAQKxLaGip6C%6#}`+)`f);=~3WzMQtMJy=s?pKKYrTba8;ylGLCo}>J? zj4~nD8z)itH@%3QbYru_>Q|hTPDpO99T0Q zicsJQUIVpzzr(!A?CZnDL5S=@v~5pamXI!tVeN}E6 z(6#HFk*r~UU{%syggxy$_dlT?B~vH!XNtITOQVvWWrBw;j=<7`hjNeA{iA}=hHXa2 zIJZkzmJ6XhEFEBlN4ZC*YkQ`39apRb$mi29SK+yyDT#QlBrOKD(5U<5HOi3eQvTt+ zpY=}y?P^nobKprYe_713)*v>jp46y?sA{KWYUWSD&xo;-jyBY-iK(<)lT3~;d7xM+ zooP1O#5X)feV>nf*kECV;>9bxT&At!SUmZ=QaU{fCFSs50mObkxSt3sf~&6{k-mbZ zuY6VER#LVD`ASU2-tPJn5-HK+*MllTX_#v)74B13kDC{-U6|nn@V7dG zBjVC98ewGkf6MW4s?7c`;I_={Qe$}A|4Qu|+v70p(m^T8)*EI(s0Z=G-ESAVUmp`!}c%+l*?d-%Uf z{ZqYN;8FTM1VhseCeo*f0WA&Hm8v<~(A|Q|L`(kyk_aR1A!ctekr~JTF-k%dq&J2+`6^YqEh8i?uiJlu9LZzu~2P`z?RB^gTG7prcFsL+j?D>)RbWdBc#`1tB7Q(URw1=}W@Dve9zN>L7^u z+~Zf4vEN>2_o8HU_wq(Y@|=*Q29Sc#W{V#?wf! zW`)!`C5~Raq(p=4?m9Bc@@MY=z-I#&{pe|bn3G1#E8|)TT`ucyJr_(;myqqnB1r%y&7>rN3*lcZSb*qJ2wo_youiX_QWwV^LD zE0wOZD6`${3NwLYQ`guqe!x~aAzqWAKe35mIi7}4Ynp^$t$Lwfwi5ie5u-{^1kXMxl|L{TQ9~qGXj3_)wnVh ziH&8L?{>{n$vQyy%O;a$OqOLb>Qy#opZ!w`uon!it|gMiUKk@VC`*ic8@sNG$ch`w z2KLDO+0hn>K0y~${f7P7!VCZK0#Mnas*{%#0ZO#80VfOR^2XBq&8in0?PA+1!VXa_ z5J`iK_#T^4dF1QuWU5B|HyXTgU!P5GYkGjgcO@z7^p%ahVa9wj%AhI4wuv;YFU-82 zac==Y0lMe3v7W_a@Ng`9SJV)tA37c$9xt?2uNC?Luk)hm`fuzFGE&9u{iT_r9bG0z z2;1^sg6>yIq6@tU`KHP)i!O>s#JG)vmSHx(1{yIM%zc=fjx$^&=>rTx$5+->mbgF1P z!&keW0D}u2`H5_FN3F5mi3Kzn7FJzDw*Ghk;cgn1Y*z&SN1bRWxh(WS0h>hZg@%`0 z7x@5o>iJsXa7n#BG3O$x)n~AuEev`Y2nTKa-@l6%3QCYyV6ewWy__ z*~s#h6-m9G!a*&s;5%||3~q_r*MBC({%2Bhwg}{1r{V1Igf`xHN25stP90}b{-?JU z`lgSu5wr9BY~^`U7ggl$;Ba@u1I3v49O;P`!^*>XALTPysi19-40a0&8abY&qg$Ic z1o_v@{2uls(Yj5QHeYMRzal7qcch;v`g~oDAKhqLDNW6b7N_I=uisk$0b~r4KMS==3q$N~2nKJ<=_%oT}Cp>tdE)!4keiD&{a` zvzI7N535$L&_x)m`CUgCk!o~T#D0}kO31JiiFinZo}Aqy?7bB zH@tvR|3>bZyb&oROvvV9%a^Gn=I)t%ZWO$36 z*|iTRZcl4Ca~yTfV+9U&P{>yn2XwN}XA!q&fik-P!1AMjY)zN)IgVlc*(M;XAPcBo z-UCnC2=&Y+XB&HMn$QP7Z3Cb3e=T6hf)RR}c0;DmCCU|T_T~I#F)Tk!Y9+m}rxkQp zL|xuxO!zb@^$LJLrpTS9i{bM9^BT>ikX*r7LN-RoZa@>2Ao^a2r8{a}GI^I)m8C3E zTlwE#{9Nc@k6vp!^#9hY`(V}FA9hC(aot#QAAe&d3pB#Y{{YX<=g_9p`6XuCU5uvC zh&&hp>PTo#{sn4AEsoaDU5U1#c7YgPt1pfCc;1jearyC=CSh!-DWvBgU#Z`AQ(GF3T>x+|1%;%D)QayK%+N}j6BYUnlf$~RvLNbM+pG~GuklrCQglb45 zy&r(qK514z@XlZ5FDoS2pOJN+k;(Rs5T>Z&LXU&Sdyjyz2wgbL{3*8VukI-6m+ry_ z->eEKV343$?gVNgOJ2YKbBFj`I5fAQhJ&v{B(FpqOr(v5tp|n1@m*R>mcc?(=cqre zchLL5Mru3u$U>X{cAy{4LWMUtG=a*F1p2edy{sw+?6_<+*QY&v5uTcjiqB%&eiS#R z9utU8cl6JefqGdb-&af2O_a{qsZVtZ_#cNjMe~RhEM?E{A0e}s|qxzQZIgoI3>L633;2-^GB|J+yj z98G~w_aK)=6R)jYzvG_G%{;^FwG)6|mDKalJ>U#;De7Rvs*}C(+tgaFSW6P~#b~93 zYW#V`K{Qzo8m|}A-$m2IlAaG#*VDs^rHu_TXcDLg69EDSQi}cV!E(MnG*DJmEw|=c zGOzwS=s~o(R8lbFhg}a|N(6g2&8155Dov#g%50(Pk3yRrMveJU39tUFUob%!s=O#X zm*P(s$|aA#b2;6V5Wd+-S*o){a_l&hwO^`*f$AsH&_;a2>p3m8tueF5dQ|aYhn?o< z+2hAS)m?ZBn{W3o`x)41gwjG3=a;;=t==HnnVUbV!{QND36kx(3{N|}HGO3r^{RH9 z*L*rsi-Hhs;W=#6avR55J6^?#9HR1f`>ZBJ%UT||;+S!)#+<5RuNt;BB5;nE|iQP3sAasu0>_)t5$0(N8s#)Ya*D&_f3~I53wQVwiEbJH2pCT0!t^8oiPSiW|fFY z;@h+eJr{=0hY|W}n_NYD{Pia$v~yaAos(P)K#nDL&%tK=H3+g1Xr^+01?}E0T5q_$ zED@_}PN&tcRQS`t*~$1<6dD@KfjS<8KaOcK3kV$g7S#FcGc@~p^QHn+J_50-Kw@si zYJJW@X>2k66c=8ghQk(2m*#TcF9RPk06HtcryC$x4>7|`&eO*(LeYFlEWTg@WKPFj znfjvcIT;hmR~NJ0Q*b|2qmb&R_Ytf%WcXW6xbJb$4ED-3ySjB~H?3H$)#nej={(f06)!@PP-0T>-{p^tbPU~4@ zF!oyW@SUKB!;TkNY<;{1pFL}2t*>_EaF#K$wWHAoKB<%`)>i?_m}(1PJL&Bz3%~R+ zO5@6dbw+pE3hHCZtUK4azECG@Ro3zeK(jFxqg+Yl4pr+bA#M*Y>YY~{{8p4&ss=?f z(Ffv^Q;T4HAPzXjj*x+pdo0g?T{eiiP9S{u9H2D(Wk&uh0{2eqyN`puXtc=S0qpn5 z$ks_bke6c$rgnj1lF6``Z_w;w6hsX7QT)sOG%5d zzYi*BEa6W5;pO-i|K@Wk^$Jst%lCc74>CBj?E`IPEQGS(MIty|1?WA!`!zBg{f*6} z>APK(Undj^*aME^Y;n|acCKzy$W*CWA$Dlw!&>P*(ZaF}*^9Z73rz*=)fUTKy)xeL z^-&i-BtKmY99iKeccE5oeEd_nD>7Ln6VhN5P6iTkrE)b>iG>!3HXXk%@5yS33M5Q- z-{p=}Hmq)*)s@ig&3dWF%A6a_i5yxOLLMD+;6fR0EyB(#?8tp+0*~uBjvdlrYIbm_ z$FeL~L__(OHC7-0`1Pw6^9D2nEC|kQx=q=kyiS4V-|y%C zFWTNZtg3JA0#y-Iq`SMMyF;V|rKF@gq=Zekf|N8!mw+JB-7SrPNNkXj*mMX;hj;Fc zzu!6EInVjNbMN!q`LDRv+H=h{=lhO#jPXu0;T+F6VIFNw<-nKovaqIoj!sbx#L%y2 ztfu5QTrou2Q|*SmM&6Z+fyQ5t0>68HIy`8}&N!|g_Q5D^+JBo;bhJGkY?znl=aze_KQkcpIrr5_KmS%-K-09jx=*F`R)uw2LD zvjDb3&l{1)%zVa1)hybE+Jsg9LI>9rB^U~>c0#1{lFR_WmGG#?w- zey_R*m$H`_G#4cDGeE^$w}`;*-_2iZ{dL(P(vzqQLV?2PZAPFmdkJfpdPnXx7_ z!p8LeN0A0R^gOO^hN4(Sdk&0DL7wzo^pc&w(Mk-KrUUQ}3*ILx|0jcskw zpn9K)M8PRv%mGXZgv)kw7^dvv=L^7^8jNoDm!tH-JDzo;%<$fq7ri=J67;(go%23W z)T@WcDDGG5G0c-vQUdkt^f*5nFC6ee4xTT9|KF(^JJOYv6|Ar>_(?1Jvkj>ZXpY9| z32E?Ey6u^C7;kcO#37RlaomG%7Tv|COcDh-1yiv1;b(EP*dA4;aH$^5ew1!y z<0ziUvVGx%Y-6G@t)FK&0A__(VGyHfBQyQ%ZlJa-pC|p_T3hH!{0U|aM{qp2iWnB>~Ry>)7whEmh3wuBU8#V zgoaoh`kX8TyRYXa{+u+8S^#;Z=uX2X`;61D7!etn`asM1>~4Vz`~jKV0lxTiKHK=l zblgK~FA9SL;qMKKlR<5CG}#9Gm%DzHQc_Z2T{WR{ivGSh0I`|xt4hmZ6A0uPTU;nFRRr`HukBjs+6B0zA^o zQ1>7Ng&YkwvK372;L0k-V7&(fNo27h`8{MJu4t_%T^v8-OTCdZPrq3H`u2UN=|D+z zuM^jrw0?V||JwUPb=WNmWIT_uj2(k!^SlO%H0l?knVf`NOzXi$#y0`y2qB^8y>={* zBJ1W1Jt>x5lymx?I2GP+gbz6xaNIK#6EJ9d5a}W>J;q~J8zM08jeCB)tHnmt6ua4P zH|M^D?!D_ZKl+4}Nh!xr{dTbS{SW-n?dj6OfwrICAgq|uz@D54lA|oxLn&>_qqJ}G zRBUSPIC@}{o}9~aPh0D=l59EQ@a=I9{=?(jj~lkVzxNGS6F6G1 zV}6JgBQblfd>kJVvat@km2~R{*XDW)4z{ZPKLtwb=&f&K|GbH^J^#6o1c{?QbigIPRB~Inm0*A+R6L>t z1Ll*|;~;LMvAW)L=g7rdp9SoKK;Hx3ZM?vy=LmMl_4*Zkzsp1S)pWOCdbs;JAzLU) z1)aVo{dwxSBbxKi@P$>gW@7m!R7Z{RXzqPDWHyKBt9pDMt1x&;tcKO&p!tJ@OhBAA zflZm3!Qf+sXF72!@y&0K-;7EAs((l28afj4`|7l1xJNm8{jIZ!BkBOm1q4IOr%+6l zcOLao6j4i?I!io@K8{gc{agnbiO@q2{e2Q{dDG@V>^FxdOX3#r7-^Ud&|v-%B&DUc z%|xHF_CE-FXP$19!2?b#mg^JR4e+2A`{P+W?fJSmUA{dl52IAU?{Ut1_GA#45K!Xc z%j(jzMiK+rrS|pP8P^ZME&}iUoSyAUIm+(UFQ_-28hmlL^zn5~OU5eMjY;1qz?~q) zz@|0*qL7n$0gxmU@Q2%o-nFS3hfB-2a7A@gWF(SM2;6-js4VkVT82&3@YSKSKP>0V zMlnmm7TGgwq;gH9;u$%Kp1q>brLJrTWv+VURB{p3<1)Y^@v_-fh{0L~yxL{N8NcBX z^Z53_K(Usa`Ck!KOKRK>uJTo&M(6uWVHYyBkCB$kVIh+MnMq&+pN9SQ6cdgy;YdbU zV}F3myY+OI{Jg?X6y{+v{TOMw(YyC{R4|r5L(WSJ73^tl*GuhuW>q{GUNle~Yyh?H zl;xK1jJL+QXN#k}*iDsPiRSL*xOkWO{00$ZZb2OTV)zJD>iDp9+{ctSFfY~ggsHMY z=yuxb_qR&qJ!9)j9vafYOUxkgmAZbOS~wC9Jm>^nHt@txejqiEHNrC;yYru)F_&m5 zPeTm8V+gnBkUeMeA(Tn>IZ5Tizo1~X;ZkrcUw<)VN)=pw7Nz~UrX_fWJ{hK zR(=@%;FS$M5a1)|>HkF#^)txxxnz8Rq>^<~7prvqccqe4MWKCux>ui%u zB{K7{j8$? z$W9?DPWoKLQnJEB)%Y!uOG`R7>tinCALM?Q%>>Ynm?x&8-_(Qe2KW9WaiO&3tRTZC zO4q(#=91+1ml49Ba81y+zcoRJ@+cS#jEv*?H~|3xbwH_hD6(VVdul$Oz0j~(@_BNS zsHEN^z3Yeh=BvjygGHWc0|+SF{@3`&Jfw4R>+cONEN~XX$am@hWVo~+h>67E5QF>0 zUXSC|g-6rrN@^Vh_BLhNrv7P*fVg<%_H=Eb-Gn}ZI|vxjj_Ew zM)`9z%i)YJBuvp)jk_(n*8yDIruR{0=D2RL1n>okWJU1f%kBNqStZT#QiSRY^s{O}Tpk{V&ciA!}{{6?==@w6w-GoBe95K##y zJTk93v^e?`j8$Fz(kpBCdv8q1-M7Sq*Uk1C>2ur3gRS*Z9!-|j7&hscNsE@LWncKo z0meiYfVfTouFsAMrzQ9Fq%XWaTN#aGqB~ARx;wZdmm-1J^*&0Rz!!R5wx-$Ohle4g zR-BEGsOp;w=pXqU2qwm)ChPJw0z3sivJXEo`lDYVq5E&3-jx1)btaIni8jLZp}#z6 za?>U?FcJd3>?$`c(i9!&~7Nd}O7b>7ly@}UGlg-(ffmIzl z-y>vPgq;=`b6=JygBJtF7_5PRl8WU!+d8N|c1b)bJ%2p3_89Hc$*eMnM40jVKbvGs z;&<5Hfxu25wR1rN=MO_edgB0GfyL4M3x~pMi_81!AhSo`Z8p$rr~VFDXVz10t>^mH z7>KyKlqCS2?GDMio3_fg0=GQe@8b&MN~K)vfSp!z`ndJC4;ni9!o}$UbKB30gW;t+ z5+^r-nMxRN{HlJ6Li*)8c6+W*Y|H64UMk?h6-^>l#Tm+ld5KkkBc*dPg$cfoj6$u_ z#kG-~UW-aW_n%boEMaT190`;cX!&g?Ux9jHc4?_Ho7cvtk3T_uR2!LUnI8glq#&S^ zg))ZNhHhm$h<<`l0kF1Ehv5q)_W|{o651#CIrzo%OnV|12wP8(TlV8ifAD0Uh8yTi zr@PICGG@3xvZJk~m$Dapqw<^gt!D;U5xu3=?8CEelxJybR0xe0NG7UST&`s%30Z}I{m#IA$-)O=w=2zT&aeFR`C9H$hk+BDu=}j zVXy!lh@ZU*^@XkK;#>+hHqRTx!hJskgp``a1j21~1|e96tHo z@t36-{Dn_(O}-D#AhRrb9g=T3I6Q1>^!^YN0zXJKyDTdnQ%8;5<0l3s#_U4`<8s3T zu(n66)Q9<$R~BMsmvji_xaqItEq|a1WIYQ6e%U1ARigwqIDty`@p!l0 zESVlWW~m9_Pt#CiZ z0!dVr?DeC)go~=yvVt8p#vXVBl*RLt+rMHe_pILq-j!X5eZSX+X9D?vGN2Ok%>H>% zrZTn7lY~i8!=4c#9D+gC1aj=|USncx>{ToB>_-Xu{#gJ%$*%VQKT#Cf%wm##qKG$G zsM>kGWI^Ej5xRx009-b5&7VrDSFlYJNvRLrhJJ5@IxZ%SNU0SZZkbxuD0_Dkx$>kl zWg0$4PfV6kD18KGu$k>YA}8ZohT~4#jstA9`G!lGLT9%qX1rPrzLT74U!JsMi`9zv zwY4uVe<0B?ad5zLoAdbS+cP`B(ORU#3kOb#NJ&5QK{-)c8z4j&^sj91-Q@cP|GrTE zwZf$%VpjHJM2@n{=Xf?4o|#5TTnP?kN<_g^I{;p)#(A?P_8oWk^pyLYyH=wkq3b_{ z*@jSWnBRq$jyJ3?EM$@-@MN4F2w1>gmk$NUIl7aRQ%IMIpw|&Ah5L`2GvLzJv86EX z(+s`U%FN56xwpc(z!3N9g~J4{ z20seGpSu8FX4D@%h3EaB0-8Eu0D8t3S~2Y#vD1aRyknKzVeM8`X`}7QZ_3k>M#|@Y z6g?@BEj>?>Sa$aVCBOLXF|ViW@R~3fcAZ86gn!W*X~(Dnkbr!QweUcAnKMY9jtu|u zFZEeg+WEqw^h}2Bx8ar{JFQJTrESSfJ;6*_eq(#akGPL5j_U6KG9+T$0d$b!*~K z%Jgk@dNZJ_3fB*b$BII#L(RNz5%wCC#5}VA=%YQp*`d0(d!P30t+x|8zPzvPCZ69o zb2vcYF|wR((3Xz)_kj`3EM0S>^vxjAhYu!qG=BFHH=gjb*4COEACEP4#PT1AzYfb? zVLlt&d9nhjJDjL1W(j2Dd?Y=_05Dl}XT-G6wHpO64!Vd&93!RkdkY;z!ZMJUfqLkJkSR_M!3=K1Ne%a--6fXnDJ&7TclT>oH5 zV+`O~#%u3~0 z)`+l?x4e;g2`IPBoh>r6Ec~;D1qg39nupc0$GeRJUiwTr6{y6EWT^-S7F69$7-9a> zmttyc)by(3)5fdUoBIsMxjJTe%&RO;0)o)udN%A4=F>B1Yox^0l0^3%O7HiHC+`NR z$it|Ec)8i+NWPB|T%`Ed;6B6V8_agIO%l?ZNKYT&+r?7fJa`E~c?-@HIq0NMk* zKoJLc3D*D6B7OXa7OACH!;T$jk+KW^^4<(Cs8!wUg~5OnNt&Mc{m58lQ%QX(CW(zwUk5NX4NI1MuaqYpAUO%vmfUdY;Ef4o_ZfPWk(q+*W?Wk)RzVwKeBQdf;l-9 zL7Apff%W|2X?;Re_Q2;uF|{QxgE_zP0~%f?0k?=q?Im&H1g{6W)scsS7ox?EQNMgi z=UTgacBPZGYD&c^mAgjPc0bKI!Pb-AGPDj?Ir+f01nPK=l$UFA)&=zW4+BoVzrLrc z8-cz(HmC>evGH)@p`isF$_Aa53QT`69&Y2TB#SS$x4IKcIv4R0G`OWq`{Cs+U)7ia zp2sPh{g-*TYrBMo9ski#^K6lx`B1mw=yJW5l)Ml-hp&%`Aq}}iCoSYaL@(za#9Nlk zhFEQp#zgJxWH6yx(3dWbccPNdV<*;2g<;qdZhc{S&xDXDqR#uKTO$LDly|H-B9Iv{Vf^$!mAaR(lY;N?IK`iD;{DEu{6P7ygLfQBx*kH7apx^*!+8=n z(+pYsXfraURu2|G&X9fowWYgvP!&Xw5ih$sF~SXP@|#Q6akm$<*R4!*z7e2?qoiRwK#7GckMAmOBX>4AVhjj-)<|Jx8XSDXiUZD#VeH;fdBzJ~mI?d<2(n&=9NI{Fs*JqWEx)eZu8mE|)#Y2B z`6ii*$~w9d^`Fi|IypXkw9yAPhc7!nJFT&5Nx)W^*DUAXW`3;ZJ1^oDt{rD`qRe#5 z)6CFSo}PFRTz1iv{bw1t0gzP-nam%9H_4Dh{lNG#cPNR58S~+ip`<^qW_8pLA|Gqo znw7eJDAl~E*%rp)^M#nti#EBre4$s!=VjZ3Ek?KXf$4xN=B=@xX`&WZ9LG-lAA9pp znC(#u(JrRc4P16rb_J|mIr3NLEzD)mWms6&WwA^g<*%qoKBsvW>S-1F4HcG-obsIu zeA{rEd|F?8R5?66%8(IHAZNKYwpyT7e9`Q7ZrP=SutERJJ;S>;1=wf2GCw2~p8k*` z)d1`>Fb~7*Q~v%|0XRDI_!uWc4fHCu(hH;SGvz|yqTmJVzdU(&tu+G(6= z_%XG*`eIdFS&{ry@38&Y$!4U#W=t57_55Y0Q5bU;U$sKW2{$ziuF`a}&hhg!ZAh-O zX`Q~d(KutDR8NduiPTWSNs2S9GflE)&vhhMaGzW=Wr;QpAoM&#)AT zx%WR#$x8Ka_;9c*O1Wk+-GMtn+I!`_+Rx|mSZy~& zBw^PwccH#mHd$cL1KRJj`9e1*HOWROpMY+R8S%LPEWxr!SpT4sfEv388%%-e9u>Ou zi5H*SktnvZEZ#AzXjGLZYyG(rWL_Jga}PE3ebmd#4l^>T;Uw#{kLk%|EDKhsnV-wj zjy+j9)J-ZyWpQ%`HJI5Db`+kNMP|_3=bTO%rG2A9e0B2)$J=7Go#(I$erU17V8pYo zwd3?m;IHALuW=I#Dh78Wj7oH}kJ&x9f-PNKTt!s7K@S{9+bCeK6*^LWpyEzf>qZAy*=wD?Evw$8Eq_ z)Alr1l@g)bntus&TR2etZ=Xw(&+iA~a3btCzRGvMu{eh%x)c@J+&iIo7s@d;ph`A! zt`2=iFd(WQ*W*;+)p~etLhIFPvDd;^o@S@3zY~deWIy(plUt*C`${V#jBTh0V&EaP znsCw_g^@8lygUCm%r8?hKJ|DtJoDpUpZY;52vnS84?ui2hmS zWzg1&z5jL?^^gID)br~_789u9J^#d|EIr2d4-=2nvrC*}boj+iid0I0+eaeY{=#vy zxb}Nq`xHg~$}nYt@UE3JRz%26{z((bhpfL#6c2iNGU+J?$)m9-{!Q zf(nZNA;a1s1Olgf1ND^31f0nT;|+gY3T+kBq{Nf1q+a~rvb}}X`$a_1_EjG-aOXJu zFBAh*Rhze!w%11os$TDHn2VVhT?oc9QF+1bI}igE1LQwN@1K7~7`(xwGIo$g5w{(E zIAL`9VwxDRF@rH8b+C~R;g(C6YEPb2ZFxD(?s>O6!46)!?vzMq;ajh>|r)|lZ1S8#We z$y(kZJr9v&E$RRtJNe~0|EYiGCdwJ0I_>~J4|&eQ()PR0CWq&JXRouHDsj%qA5-x9 z^)kjx9`kp{9*(oT)2jS7IUw5^|It;G;E|laSGVmmMPo$C4QYh@Z0F?6=z3oDs?T|o z?Y2Vh=%lW_3s#RA_1p4ym!btuDn!M?s8a_uHpML{Ife3&*29Z!sN(g_Hjx6*#SgcI za($}>0x<6B76!n{h%7Vg*~UHR-L4~@{E6FVWo+2U+^ae}N(*EW+0lwrEJymYw2xy%URhZfUS1GLSFPyRIZ#IF9@%o8K<~oYaq~~!--6|aS)7? z#7b9)qk!@#&Ch$$1a@(5A7r~~gr3m5q^#%MH>Hw$MzR_qjW;==M|+PZy9C~IgbDZr zW|T5sn`Ov|&EG3@dd7MiYZRnJxUzw}N(YlE9>+3|Hr5qBeKer!Ib+P$7aL&o5I{lO@`jji%1% zG}$$M=wbb>`9@lbbGL3aci(jtEUl&-oh8uE_b_}!WDq701g8GoSKv5JdS&bLt24}f zxt(KO2;fh4fDYh(IIeZ5=QRTvV4Ey6M#}hi^ykd%S&zj58{E544m7-2UZxX2Dv$D* zPAnQ@AmFNQdKFV@#gZYv*S_>+I%0m`446zg@X zus`aMTpR^RKcZIvcLFG6f34VSNvU|8i_0Fr#*0H;UAf;dpw?#fL2_S8dk-I4Ks>BwWUPjW6pFZ!&_coni4N%~INTlOU*qG+GO_B6b|<R01cy_hAJMqjC~SyRchPIA-mFCxrr_h&nmB$HQF`!bx4J^r{+eIkRATC{?S+1A8Q&bnG13x5O% zPr}}M!ibE+$uvp%Z1Ky@D-WBze|jrM3@{2%4@odEf2!#>C*x_@*B*qmtP$LMW-s`< zY9^C5+1%Sgn@rbMWT7dzx*;~i$*^X*;%?MK0vmCTC1Lh~V(89NhCofYzwH~yq^DT6 zw@!ZexyMjb5vg7>V5rn1YKGr8;AP6Ov3H)^Kv^-LEvdXbNR>WTSFb-nR)sld=`wu)3a;$MtplbydptZ$=vbLIq&H;SL`uXi zUY)*)7&30new?eUdbvSG4}w_G)w8p1^ZNJ>Yb$2avJyuj#oEmm=7Nu5zB?-)&Rd}$SoXu7 z42~O!I4W*qX~skz-LLTmC6nlBT^;AKO`1`2VT~1lde>ZgzAc~$I@`RLT%i?=4cZ8{ zf2m1X1d(v-QE$xkygzs*;;gu>qPNlZN@$`ibbSz{1jNxvR^T^Pp=vVHdXP>D&3kdW7Z%M zSLfN!YRI~<2g-3?loy#1pSCFioyvn3!_z>gl0!H~Rm&ILUquELbakPT4#>3Gf0z+q z>ep=*riii26u`s|HA5Sie9wxsQ0?96X;CIuqP5#zkr0tIR{dPg7t7oVL;gh(uH-@) z*}X@tFPFg6)q$tm$${@Iv-k8{yz4(0LY@CVZ2ExN^!7ezs8l}z?BuLJk_DN6rPJj& zzJ02SXsq>Q=|;j2OMP&#jsC-W$Q03C3pJ>J3QOvpDIHLk6nmlZJ5Tm+QDu)vB|#5B z7@Qn#eTPfcEvEJTu}GZMauBw{2kcbgPzutY{@|GU{;C}Xa|Kfd9*s_<5s6aK6fiW3 z-4;?kz6;0Reb273_g(a2ILx{YaN9c|TmTkveMyiz4yh;4syE+c5UOQyM&4{@2Xxt# zkFoa?R4Nqj+m3ui0d;-VnmGvPiFP80MP}iz4l(|vT_Uv#a5kt~bqk>=h#zckvF8;I z0S*TVfjoxN+n4YPBN#4sP)PlG0XQC0yzExze5>z^IGS+w-P~_4w!$KB#>MMlX>*BS zx8lb?_s0&02aahjerNF60wdeL3kWPgh1Oa*Gb0A2Oza*oA6T%hiWc=nozOT30`E}Z z5D+=I;i9F&8gh8FD`{SRGdzk1pZ?FifjiDE%Uz1{V`q7e(z}7K#*I(DyyqZ8MwKDA zT?8-UJ&dwkn5l88wrSfN3QN*h{{R8zaOWg--nM z6bQMJ1#jDYyj#CxMjg5YyB&QXxV*;C<;RXBjXO!8_ZdW0kthF)qL}osubu!Pbbo5uMuH+5c zda${M2TEfLs}jG3d|{dFoAn|N1KsD2ql&H5MkE@W{5gWN9O5=ok)IF|RWEvD+D9(* z)nCG6xxn_B@c6AH+*eu)VDI#eJb0)Mhyeevca6a8 z3H>`(HU37pLbI1X3$bAK0K z6+0&qX^aL#YfE)B)5QIGpYDCnJFPAVRS^hSh2TW=fZtUM4f$Bb(ouWz){@E;9dJB3em;PAgEH4Z>3%1}oSt8D0z)WA zc%cJ`0Pa~4bCiV}hLa!Y_!MI9iSHM#;EEtQUiOjUy`Ybl zVFfhF(sD!fE!yj5Q+1N3otD2`7hRYOp`V}~(g`v7ZKnM*t3Y!yq)TY#ZYBwvd`$UC zec9=A_Jv6{+LufI$>8iAncF$KMaPfQ8hxkl`#~o)57)FNO!DJ z$YwzQ3!nOQ!wFIJSRTfJX}mXVsi|9e*zoWyOA3T%w4e`_IYcj|dNKLpN>vX4hfZ5?qcVL!4WY;1k3}gP9`!tR%VzurxyZ>l&ICc_Tj*oA26D z^6knD8cEt*%olbKgAGL$fEKTT)*}XAyY|&*LZBmVyM_L;6<8+T0<7TRlOKm#ZwZxC+G_C4$jSpFHE3OgWhQqIv?^G?B{5%wDrEl?~rkuG){h1(luAR_cBPY zI%U8L57uv;ei=$H60ANrHYY7X5a@Lt$>z{)LZeE2m0vDu*jAAt;Lb$J;mq<*{hR7S zl(dZevMLiLZ)CD9>N@RbqB%BQ&a@)BlV4SsIa|+yxAA`;y;w2eyIxhGmJ1|-;YCcs zNEkr#9OOH$^ZxJMCrrztFi7iHbRy(0^>Mu>MgvW2-IyN!;F>9AxeNZ)HxF#vMV?-JdD@5vX;sxloMW?ci4l<_pS%EvbBqms$ms-|b$tP$k`AEb zm_2)(Ojbc$ao%;lt96TVuKH_{A>W9=+0t|)s&nh&vpWT&cFgb#gRVCV(WJ68Jb8MrcEc}rM?tPAi zLj$m6i!tC}=>!+g4~L&W+7pn_&7oH*z9VE)4U(=sKiL46F@12}NAOYN$PKz#rLd)XmaybrE>*FrTplh9W}B*K zDxtWekKYM^2j~|*T43uE_7pG4Mw-yX<>m++$fu?#wHx0BS`Ae~c*bUx9(OZ{T*UP@ zuGLrjhIO|tzf|}UD{v9!cNM$>5$Lp3p}3{07uCezr0}5-mzw0)W9*7&1yC^@eS2}n z*P?fNt{z#tOZkBo9DP)82l$9Tv*^giSdo^(OzE7}+bQZZ#88bG2ObyM4A)2BaORdv zrhVj^nIvpvpie~07~#Z(**9fG`PP#n+*sIdGbxn5>wG|sYe1Zai7bIuj_9S9dsB@@ zD_oO1OABw9VfyM&_}^@&{=wcvCgrznCLgEy6UqDw1LNGTzhy{b7CfBdt5_$thu zI!=Or31g;WuU3QQjy%e>rg=wS2yNi4eT|3{DxgA)oc$|rQ%gxOG%y3$#eSQc&|#vnR@uCMo|Ew^n|W16&~_rNc-{EgaQ_*Yj}`{4@qjW8>`W z7M)zpNyPjKI_-j4m^`D%gC?iDoaaZWY9`of1I+?e3}9KQRub7-bzcaXnU&onPBR6u zOGuG=Y}-E=8&>+pW$m>Hlrkl$^NKE7h@T|^uI~XO2JpvPHHT<*Luks2F@d4fL+Y@D zaKKhYjCiieAEW)Jtf(WmYYsz`U*mOWBb(XCk|G2>#kF$rM@Y6?9F&JMw7sE*{U zDQ>cyPy9Yl?L`S_WSSOSM8!p$8AavoS7hh;Zjmq-y^<*SuLV;ET8Mfl%XwD3vN9nx zE4sPZI*p@>$1pk`N~2*e_PTGd$8r4|Js&>mx$4uc&+E_ROK*=0XFEIIda;V3ejk;p z-Y?3r=#;l2)Yiig=vf|eSC%qIQys?>Au-%XHf_djba14>(ADdJ&5T|Bn%=nVq~o-p z;DB2ysp5xQdHeiw(UGGh-L17CoKk zeM<>ThsIGc@3Uth?FWa~Q##V{*(d<>V3qsTRA9$gEqZ8ve(V`9EcFuc4huqMyaQK2iJ{}wB`VjA63 z;hHO0UKmPn8&0liEn59$u*vrpPBz)1kdzi%{;wt60EEtopE6~>;qXZ7mz~|`aI|LG~Dw8?>pV$ za6^Mk%oA_Qmf#L1MQ5C{cqrKWegLj$XAnARnd6e|ufxMn=E`D+cr6z&j=~#nfZfj% z_(EwnDr*nZ@j&Z$z9mD9Z9@C0g-|Zys2-@)Vf#;X9-) z>rNugP%h^cQH)Qg{pU5cuyfb~M{1ooO*V!gkQVyxg&F=}F+4>TKS&;4%dMUTVm|l9 zP{uL9Gd-mG3wBj5l$s5WP78_|9ncIrNd9>c?mX%O1TAjh^&;`@--?CXz@yZJ@u4R1 z_LPwk2{dS#9mO9|NRLOq1OCGU+nBo z=pJW#zuvzD+!_zk&hv?beIGDO+w}h{o7VohRvDQZq55Lj=q3B=MAW){82cEr6c>8w zo=#zt+&?jIJW91$pd-(*M=uwr%%V%=StYU$--5&#P^Qm{FSh*^QEWCvie_Sw^=xsoW zt=ic8-$}{EV`aNJt65pJSE|Avgws@5gAybsEAvLo2wTIxR&vFIW(BBYLKfHHFTLV% zCa;&0u{1+pV6W9HdRSJQeaWkLk~6(Pu6}q;sZ_49u3L%}DFcl{nmZjXP8>x+*9c&3 zcx%q@w-3-UVv7BW_8i_A&Ah7mZV+iSlEx{kq!ha0M3Nk-rEZ4&;I%U|3-ji9D`$@- z0VmD`4_*_30bGh`Y%}e7By2s)1BETV^t$eNBXd=L5i-GoD73C3xWH|57Ya27N$Kh1 zPUFj772^T%Gr==jg#?Mh)6eS!eQv+_5WU^Za1$)tDp>>`CRVD#L`4#@A@mvEZFya* z`tmgMcfGH9^r@v;ZCM^0VYD1*Av`$0>ud-s;GY^F7?3}OS3g6co*OTdY_rB!w$Aie zdz>>$Tb+1Pvb2sE4`hf2NDRXo6>uIo73>r|Lm8lVT2O!rqe*m(Q-*c`YNO^6j%H#J4%rVSjBpQNhvRM_tx zcoy~#>@~T!5>RI1M|y3rN~n!j*NZYfTjHk5wudKlKrQYz??VVYCDJo^dT&V64!M-H zUU?$g2n{iw%811f#9w_LbkpvQqNyMie6hmOo2PDGvU9w#NZk8eYIJbQ2{(yUr)K$S zFHO9Xx)yI!T53U2(yY*zOLAFinuK+Y3od4}(5?rpiN}miDj#ATo_IbO=0b3DrV=(S zfl{j+m>M^A`>KA5z;l?apJ`Y^f#GJ3Oou`N!TF=+{kW5GcRyk^6WHXtIZKb(_a)=) zo0o?d5y6vS|ZR1w$+^c6!5Y+cjJ~yJJm{9R9?X1H{qIsZ zA#ABOngW}+_&vzF&UBF#QTW-+_#07*MOD z`!0o;S@(#wNARbW1P5|8wQ!O{zQqpEi28rtCpoCVSgDxt+|C&I$k(o4C>1<3UzM?= z?RCXal%R?QO%=9fds1F(Zpe3Bx*{XvQ|m4fU;R#wh_<5bn;h9|O3X~LjDhOC%Joa3 z7kVhtW6cQQF=KUtrhTfoBf^Os?zZsK%)IyPi7rWKgCdq_2zu5GlGHuZ0|K~@mo9S< z{?W=v#cSF4pw$E^SzAKV?=K2PncxC4&B}zVjQ;p2;d9(4t{9(EqMr}Y{8QGWJzfa1 z9xM$q7EIV^ELG{aV&gFU*^|E}wB9ScyPOMZ5^Uh?_ z8|QGQn1MJ8iCC&{Mx3nqL+ROY1af<=DmyCZro0@X1Rs?UH0G4VY!2o3Vp7b~lRVsX zN^WH>ofJid7rz1{CsX7Go~*kXYv5Y9+B0QpmQ<(i?0Pm>wsXol_U5s&y(*&Qq>z(* zu$l?Hm=ZfmmEsG*EUAE58vip({BJwOj%NbIypGoDt%2@3GJZOrAfwB2jBwYvL#$o< zyy~lTlVAkxe&UF2--u|#Iey{=2LIF>_6M1HrPTw7yGcH)r!#{YtbTNOQuSO}==U4b z{c+r^0NBP+T9popbd~V+z5aXgzvjiOt>EL)rj$%xNZ?B|k&tQ~^8`XArm{p0A z6|b8sy5}-CMeKsm`2FlE;ahSnDQuaZ!XCxjf_|gm_Z!^45C93af4J4ks)OtfXA`b$ zQ~=4spzLmK(G0=&%xI_aer9ix2W&QXUYQk z7S|dp_urSt<27&}5b^z(sI^>0&baXirFXglo#V9|s_OfTed5Cg+#~1jTVE9#-_;LJ zEF78Fc55%AuOj6S;{Bz}m=Tw}W~bPE$V9Hl8Nh_y!$-Wj#wBUO(v+Yarmy{>M$hK` zF*G%!)$-=dz+27V3=kq$XX0MsJ`87HWS%M0j*;rNnUeh$AAv=mRyL$tz6nhdj1lmU zml*!>Rx!)~C;rK*7r4L*M@X;PQ-j0qX^Gd?B-ae+n9f#h&H0IAgj@T=DZQ|G0PI2e zhnbhc{vF22j{3zEWR7Y3Wv&xfQzjr8i`yV}*7Vla9@(S_Wfz#o)P*DN)O=|MaZ=-d zaPPL85YH^NYrCM+c!v-!gO zaHYq@{$hz#Of$D?z|rvkcPcs}D=XS@39+F3<8qSF3H~cZKo@R%si|-Cceb{}@5l6Z z?FXypl5MC}@$`S=bx>UZ==i>t5I7tEo@#N5a3~+Q;Efo|i&U!Y!|=Zu`Ne7gcHfD- zUu5LUspB%&jPr$xX8(z+T4>Lb``P-(z4Tr0I}%rWQGYopU?4Lh^1FuX{LaRb=n;*? ziGZZ^=2QbFe=lmSo2*Sh=duOD;fi&1?}I@u=^!Nzlo-%gs?!g0aT|Z3GAx~8Oa&K! zvf92Zy-#Hn%#fMwCsbFb6>*)(1`PfaOx`Ui1`jg0rSPw3qkn{X`sT=$J>0;K;I-Ni zE*ViRhpq?tle0f)y=vuzU0J)~dr8-H!639)LGc|l9_L1Uy!(Iu!JVQ3qk#E`0Yzn* z!*5BvAYK|_L7rycq&--j-U6v%bFjZy=A+pQOqNQbaGeReq<4-trp*bXzLYlz(T~-4 zGdh&3cdR#i&Ihl6*2=s?^*eh$nLxA&AH~R<>_A)B+)|tt9L^{G+2CBBs2=l(ErQyz zFUCPMxn10nN>Za2H)+PZsmUO#jIyg!JdFU~kF?(21c!*ni36b$AfeMHB9e%t1FpQ# zlAoC2gbokfZqx=onsj-T*>iFOrG`%6SuCVITkW=Cx{G!<~0WwmmnNv%XtOh@RiJGyK#On$X~ z-`)s#FE`+H7sHElz<0sN-*IXXkx6$s2c8a>&$x7PY~99o&O1V~Uu6fQde3L56~w^iA|zTp$UQ>9#}3b+S9wI3WYK5eO(b;b@-oWUJq`(7oF(z?1pN;~Qw{ z#p#d1s1AMGSKiG=c6PKyxM`tcKf~##L_aVyZ*&qtH53obk|=#os0~1yYSE)f)02x; ziKxb%hWl`r8I(JB#w&Jxj~lJ8Js###z=~C{-wdY<1A@hu`j{KfJ({cA=?A@0hx&d~ z5hFd0km-`a7t@P#yi7KgH8L^a@A(+_U^B*-i=vR>Pwi?CxU;t$ zr)&aj`|9?(Ny`Dv%@!D(`}p`+PpK)31#F4|}ihc)qX$iY6eXT)bBuG2<%Md#%4v1?5HU69v+U?OfPi0X$u08bx z^_gMA-&M7=KRt4H7I#neH;HV2ni`RJOgLYThT8qdsK zKHTAf`?0m`dya4!RXC6}+UBUisQ>c%S}Hz8JSnC5G%!1JxV`cde%U+Rb}_g&?#u8fhtTWAnfV zER4aJP>M{SBklN$5#{&obbs8*{-l(xKT<}y^Elu37F;%1T%_O-&t|u}YvtK0lzwwb zGq-xmBc^4_+23*;@W;fAE&y!|$@9{q_^`fQQ(QR PB@rwoAg6Z{{vqM%(JL_s}s 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 VZOTmWrh~NK+L{Kp%5ONt{1?K21TO#p literal 0 HcmV?d00001 diff --git a/docs/coding-guidelines/vs-csharp-formatting.png b/docs/coding-guidelines/vs-csharp-formatting.png new file mode 100644 index 0000000000000000000000000000000000000000..c459efc12b878a393f101d26cae67821a1025c03 GIT binary patch literal 49252 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 + +if [[ -n "$NATIVE_FILES" ]]; then + # Format all selected files + echo "$NATIVE_FILES" | cat | xargs | sed -e 's/ /,/g' | xargs "./artifacts/tools/clang-format" -style=file -i + + # Add back the modified files to staging + echo "$NATIVE_FILES" | xargs git add +fi +if [[ -n "$MANAGED_FILES" ]]; then + # Format all selected files + echo "$MANAGED_FILES" | cat | xargs | sed -e 's/ /,/g' | dotnet format --include + + # Add back the modified files to staging + echo "$MANAGED_FILES" | xargs git add +fi + + +exit 0 diff --git a/src/tests/Common/scripts/format.py b/src/tests/Common/scripts/format.py index dcb3ef1ddf5009..3e8d5509de4ae6 100644 --- a/src/tests/Common/scripts/format.py +++ b/src/tests/Common/scripts/format.py @@ -105,6 +105,23 @@ def main(argv): my_env = os.environ + # Download formatting tools + repoRoot = os.path.dirname(os.path.dirname(coreclr)) + formattingScriptFolder = os.path.join(repoRoot, "eng", "formatting") + formattingDownloadScriptCommand = [] + if platform == 'Linux' or platform == 'OSX': + formattingDownloadScriptCommand = [os.path.join(formattingScriptFolder, "download-tools.sh")] + elif platform == 'windows': + formattingDownloadScriptCommand = ["powershell", os.path.join(formattingScriptFolder, "download-tools.ps1")] + + proc = subprocess.Popen(formattingDownloadScriptCommand) + + if proc.wait() != 0: + print("Formatting tool download failed") + return -1 + + my_env["PATH"] = os.path.join(repoRoot, "artifacts", "tools") + os.pathsep + my_env["PATH"] + # Download bootstrap bootstrapFilename = ""