From 8db49f79f3602af6381696d8c65dbd8a07ecc6f6 Mon Sep 17 00:00:00 2001 From: Arthur Meyre Date: Mon, 6 Dec 2021 11:42:11 +0100 Subject: [PATCH] docs: update contribution guidelines refs #1080 --- .../after_bigger_search.png | Bin 0 -> 28775 bytes .../before_bigger_search.png | Bin 0 -> 29221 bytes .../subgraph_bigger_search.png | Bin 0 -> 38438 bytes docs/dev/explanation/FLOAT-FUSING.md | 32 ++++++++++++++++-- docs/dev/howto/CONTRIBUTING.md | 29 ++++++---------- 5 files changed, 41 insertions(+), 20 deletions(-) create mode 100644 docs/_static/float_fusing_example/after_bigger_search.png create mode 100644 docs/_static/float_fusing_example/before_bigger_search.png create mode 100644 docs/_static/float_fusing_example/subgraph_bigger_search.png diff --git a/docs/_static/float_fusing_example/after_bigger_search.png b/docs/_static/float_fusing_example/after_bigger_search.png new file mode 100644 index 0000000000000000000000000000000000000000..1933fed4ce103f2082e757f54d3452f8db2e57ae GIT binary patch literal 28775 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/_static/float_fusing_example/subgraph_bigger_search.png b/docs/_static/float_fusing_example/subgraph_bigger_search.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba4dff63ffff5867a50b81d9b0d052221fadd73 GIT binary patch literal 38438 zcmeEt1y_|@*e%^9N{WOCNJw{sfCvIg2uO*vbf+{JAR#SffXD^~LFopmO^OoI(%oJ6 zdC$1_{)caj?~K7XiaXZ3))VuYbFP>7HSdrT(Gy`{V36KbRno@5zzW8|z?>q$gWrhs zkIlmWBs`Q2Jan9`J-p4`tS~gpJzN}|Jsj+wFnd|Kx!XBA3GoW^3h^-8dU&|FOY-qK z{{I*7I=k8Mb!92_!iNyLs2aLsV33<5KbW88^6W4$k`nGJDd_rStd4v8=;{r%PEV%o zW>FB-dSh~GE92^3QC5DSYkKv`$?6ka1&Rmqx(+W)9Bxu8J$P`RLSacY-c(V8fHS8& zt!reGi93NpnTf7;%(RwF@xq91c=M<=9@lJe^JpVUYfJNk~6Mb)i&g$Zm+FgsU|2L+M!4xJ^X z&=@@IKQN>gXK-^i+?F7_GhMsjh{kf>Xu3E#yi$9x&s!t0%k~YzrVrz@u83t6(Fm5V%RSQN--T6GRM(UZ1`A@${}ip}tn=lUhFtDz@yR#`~OljF9MhA<{|gT8Hi3Nx`m%{0^gdC;JK> z-%sV(au*kTQ65=eHF}@f-V}a{v$vvN{31HhtfU22z1M88OefPe**J zeq2bNZyg#vdK>Q2dy54#h9Ta_q44xxrsk1fUTJaq=x8;+?#T(d7j^ftZ9mqdvT(1p z*@eZU3XXuG-R#%e%fIa~bWs^|vkmWWyN%YHt&=mvr7xUGNJL~aUC|w`U941Arg|77 zjoCXuMMrzM(OX3I>DPgCkn-zzfuuI?MhR<`GTQsZ~2Ca%`Jefzy0 zx9vFn-}2}4-E3pNRo2+pbF$3x1@d~CHus)*m1VHDdCRo5G)&YMyK}7mWlNeWJ{WerS0s+;O} z<9oLbQaVjOs%Tf*^<(}09v|fuMXlYxb1zi5H?&l5X6Ts|W#Ke_HF|&>Dg@&vq?fw0~zO1@+q&At>PMz*dcL`a2 zR`99FN>TeG3_Em8p0yP)TGn`aM0s51oWhlz&6MGax4TAM>yPg0p6|BG$kL|jrlkuk z_Ac_c%4bGaf5E#@G)hW(Rn2O%X6JD`g)gQ~KlM z@gFYn1%|_8`}|bt-8h^E*f8^%*4F|1BR0~zeYd4I8?eXR(6@x`e&y&gO3BJ*)jc~Y zu^afL?OPM{3#G@+Tf3`$dUl51^?ik&oXn2mt$H!|#fav_{EwW z5j-qPel;0J-t+V>b#!z(y1IB$7Pj}2<}AL}n^uL?9}}4dT>7MuK*-iB&1zxvgYvWP-h0gZ`2hj~ zE<+~87WiYX_|n@ic(NZb$^@d5Z_O;_WwW!hM@~0CAE@%QXY^nF78-liqP?qYcBQC( zJ}*1)x{OR_mFJ4v%xke;pm%`l(si)>ZwxRylpYpK6RyI;{MeW=HJ@qMSCeX589!kG0fBp|{2|$a$1e{Leeg(V z8`|SpB?1olbw1sj?v=Z+Y)NT|id0bu6%2AT6zR*y~89-f?su&QjEIv`oa% z(6F`4F(Eb8mbdQk$qwuY{b*TtK~ddPzrAHE*nc~19i8qwOwTMOJr*A$e}D4iNf(4$ z*Y+G*Lq#R>=ya!70}{Axt=AB|zjv4apt~}qhAgeD z(jaxy)%j|Fx3sn*U$of&v0G%wSf_7&q|_!|GgFc-1#J~AV7>M4=O>5(>*L)ec23R? zhl!ez42UZ0-Nk-b?oJ0sc52KuskcmlhmCN$X+?F%ol45eX=y?>@Tstj`A_Lig0+5o zf(80Tq8%L_^RRUy)n03Y&5@)+^=JF(9qsM>?(`f2Of(yiGN7uKmLx;nsru z7zds0&Hqy86IohXg6|UwICOD`%8>s0s@U6>7A5y_&!IH`^~$!{xw*{Wy%2n(!)1;S z3k}TQiaI|1q?PRii?a?qUg8)iu~Oez$PR*4X(%d&+6@+_RUXZ!YdAO*zKn_z5}OPt ztvvh}rSbGB>YL*zvQahX$1AwKTR|5GLGy6te1{jc2NU)xF${(-_qYIV2`psVL^qpv zEoAGfUQX1uQfkBCir_(2KZ)Q86L8BZT++`PH)$i^mFrg`wIC_A?*0cGHyth1!wgXi z^_Vs&D2STZSXD_0=Q4+8jukpN=hLTOu*~4gF-9jvcX1~sCVr#zqRax1BEA@v|AHEj z^=#kpIxFkN{*Q}YgDj^3sL%cHZ{zbq%bD-Z)>2WygHY#$${=}ma=>xpMmSOpkM~wC z*8DgA{@{jM$PR@ep7qYJoV%CVH8WJBsBfuiXx#d|y!Q7;!IV7%89oGjuG4tc?=MCv zNCBA)JbBG}C+5ocFYXIH-|dHD+S^sDJeHcED0Osp9=FYGX-$?|8IsTozj*P2;O}?4 z+weG$cFHl0RQkpWaPTi)z54gpzR2q5E2@^3meU2-)1saCHA>2jwFjMUcjQj*vuNB` zOS-g%^^nMrv3V)+%iqvYu1N!q(XzXmn(Q}j;B1`M{)0A2NJ=^f6$pYNoKDC(?(JJO z0|Qz}8i?OFSy`s53$I?hn1bN4Y7E7#*&8%MUI>{$<6)*aO`?ZUJ_^C8%-9SqqM<=v zKJ>n-DuHHR0+e$|t9<<;#=5#X+{xz)?y)qqv<8-RX%!U}_0M9FN2$Bx?Cgw%g@r+= zsc=LrXl-eEB|y`~#ieoP`0()Ys8{0~sh{SC)R!(@!tn9+ot~KqLzglcou8clrAC(! z{e5EiFn%T(8itclbQG(wZn8L6-t-H#e76rUAX|!Bp6qXq*p!GqN*5L6uPfQy-u~c! zu)aD`oBsQ^uHx<6unX1~=VxO+Gp`-~et%i%zEEP>K?ytE4Cgpp?d=?&s|4EvUH$a@ zWMg&sTUfeNRX+1QMm|o?mypXlNC2O11YKA_S4BQ$cWt!%-P07V`&J%4uAeUAv3cZ3bEbq&zIuk<2}~L(#EU3-FFusEDwHB*Vd+dPR?{bv@uEB z%oKFmI9BO?G?!v#J6+V1XdE2u;no`Z%M$dmN-^@S2y__|4E!oNR1 zKRcoM&L%FNibqP1L8&COBIDQO0E;88n;05Ofu|mG64S}koLep^;_c^|e5fJe2B}b~LBYpQ<5eo=OW7nTlB#hFj6&2!=p35zx&h;AQPUGT! zyEpO47#{yY>3J;uihv9n_+hU<-<^KP$%)q{({r%?VLDXcmjg>V4?e0O9Rwn608kqS z(qld-Mj=Lx|aCKagkg)uSwPBPOn@-e0(E3NyXxaD1!btF&~@yITMKRr90mxeVX=Gzhws zAyfa?kh;ZyGDC~F$y?jE`S@ya08JRto4RXM%G7G37#0=#)aKl)r$5G8u9dDjR2)C0 zm8o)JcQN!LW|H=a0|0=jO}7kiqu}8eF52`#sD6Kc*ta360GpYXmiGIrNjh|YN_zTN zqigJvl5ej`dBvrq+zG=YZEtU9W@C#O(2~nczGYP6Jc$4}6{sTPRi3PeOoL_L9Mhrv zee*wX`t|D<0U6mRi?*2GMP^Ls5|`?6hp~!y_*cks1zp`Mqvg&VH*bDs=7$o{m#@R& zwK^OE(V&qo`W>+8JEF>;h z^oHECSfnsRwGKQx-fAM|n*!YQ=n*}%xKEG2x0LUas@+4Mdeq0 z(8XoEhWc}dzva%o5TvmFckh@1F6eERZtw4ZvLE^y9vluw3qVA6{V+7xnKbK z03VAx-b6=7S7=lolbCqr(RW*ghYzXo$r+J&hUP~MBLhmW0OIE(JhQU3U<#GR?7`y! zcAsTVgBlok!-h=5N_%;;>9*AJxBo-2Sy7Wk^-ZY)n+w?`YolMvJ7x17|F%E&@qD_! zI?|lTspA9dAS5HRhTV>)7kPz5Lzawx@}X-iql{X8;F-_LmvV7PTD5OKf2O3SwvX6k zcS8$mtz5`5dhaMf*QzSEG5BS(5r1sq^+%8u~B!j2x;+>$sJO!=5!kk>9^U*T|_}aArI@-JYLDve->Dgl(6W~AdieGWd4C;ak|wzIsNFYc zE@}JvXH?dLT7J+cD*0T^2HG^b8gIUu6J8zzW*QYfKHEQP`#5!r*OwT->f8yn(0dZi z0)x-xvtxW*+)E4$#*zMg^d%)F?L9rMYhE)mGq-JR7YR9XGI;U^4EfEQN_e1e5LZ3Y zD$~gIls4woZ=8*J^F5b`jb&vG-eGut6I^Wi$8YJYAZe8>ASwfXydoxnYk-A%$h+=^~ z@O&jrJkQSFIgFA!57sMq+)aNJa6Nl zqfzwILIc30tY!^x>eXaQnK$DNmnfTt=X_H8!^f@Ox`vCRid*IFyf|`MQ|{W+p=4%* zG-`2uH9ZEPJd!@t$5g+HN&faQU9|E1%q{9=$gn}>=P={Kt0JNE-E$wtYbtfguL{R~ zt(5efZCcwXdS5Ilq=IU@dp9l)V{6MTtEJ^imJ~i&`-O~D4=!G(QjW^&*)h8jN=fhJ zhM{)~{kcZFV-M7>X#qVy*D#=$l6b?Sl#(*Xt<<;FV@UaqIxYv0GO`mBf?oXM2Cde( zxB%YV;t$5&3dg@&T;VqHH8pi>lsk85%~r28K>-yqbZZfLImS--^$+`0^;i{OiM8 zgvYlYsrK0qs06l>-RXBJ3en=!ql7p@g-c_y-qL6?d-OJXN9}GrZ$lV)V`daMRB2GNz$9r=I{xSYO6%6jAi)#5LfEe?+W)EMzU$Bn$ zxR#f5al$wj8Np~kF^Ao5Tc4F-Z8)-MDJrp%# z8rOPQxY11Iqt`j^Ok^kN(GCg<-l)mVLqAh#o#ZZUo0N|Uu_=kEuMggMcg!d24Ix zhqZ2Q=caeD!yJoROQ_8aW3kRJ9{uEYq|6~R?;53b=O(*j(IB~Q5%EV{PLA+<7EykE zkoiv`;oS{qCZ@yC&{_Mi&{uV9bGhc4oO(y_U20TIcrtY*hePGDMe=^@r6ok%_L_O! zAC%>G*2?+Z)_xrPsySlL&}?%}k~pG|LuJ{B7Cd*PAx&a7UsDo#cXmcxty)`4oYEJc zp75t&(rW2fHl4r|ER$-lmfqe6{CK~5i)^XZ4}lGK5Bf4_SFEF^M*{(+o!7NvV~G$F zX@U_j%qF4v>Q58*4`lRsQ=;_Eo+X(Doh8|1KT8JqkvwwV3ewmgL>kK!EFbL-#U)M^ zu)u@XLI5bCsBaUWQqA4n{b;k9+_3mD=4JMK?_d%Wk1=D=0^RK9nfm8MNw!v6>RXRm zqUnT?z9oJz=FTmBifND>QC}~I&@wb89+$MFw{WhCITbEigEp7@4%&|H%elEZ0l;n( z0XrIuL8q?A`)fv=O_N*FNe#e_WWb`|0N>Gqn!DONm7#wK?%~F{=SS>%{pIhbOR2Vrzh9Tp}?toU2+w_JH zFkQC&*G&Vql-Da481cv%3t3)??R@x0h}mowKVWQUqq7x`S|#F zt5*e^nwxzAE8PX~-X6zNr4+4=`a1v`sw9gA35=}da;I^yBk?fizXifhubL<=C57hf zc#oBX<9Ui%Af1_+8LX1z{#u=W?tgrJqU8IG36=8v#%lfe63CVNlpWa^EI{x8oWk~2hJ-wqb%B&4Yv{?8GOP=bfG3BU z)V-C?Mz=~PNIgLy5_wVJsSgrC8e-$R|0psN5}ElY6WG52vx(ZVzk@DW z1l9!D%p1VLu$9{MvWtn84^O(o+zfQi6F7JT+|SNhs=TIG_VDodAseWc->C(`#0djL zs_Zk#YVQqe7}bSs`!LWY?VX+f5Ec{2HEGCEaR#yp--Th=&3o)YVdp{!Ha@Mi4}Y)B0Rs#&O=XVAL)+zLw!%cawYPVx8J_L8 z+yEqvNUA_2jL@cjOKe^n6WxHjiJF)iVC)+ybG-WOWdA1`O$^U9Q7Z+6FG2}WjUKu^ zHlzkpU;)Uy**2!2Sr}J&9c#MOGN8R<#OPm22<&pUhD5_-Fl_c%u?Eh-Hx`u|; z^6z}5J9mVDB&HX0GPW$a9S|Umkjbtyt+*S&`Y}S)3&SUWsFZ-tY@VJ10&MChjoECv zbDcTtpm=6a!tq}i(kLh?6@7es8c*O;x{xuor-%0=H9S@j#J(=6Wi*R~L>dryS-|81 zOQ@u)`+L&5YJP4Gh}fvY=L>6VCdD$w8bHL{dh~rNKQHSE1bNq6k(C^-5D5th7^A4t zg(G66yP9(UvM~M+tx(ITMJN#c*^64i3)L#)g))wRPhO;A|Ih z2AHD~Z4$UM-~pg6ECAtQ4b(ynOwGWho~;ZiDJe~PNJi3fR7T{rdHD*VolBu;~C18fsYZ9|;p(RKy1>zqv4|FO4p-9jg$~ zk~NQ50RjFufi zLGazEJ@~AXM+R~kRE$I@E%og!6!2)y2uuUXSEA{%mb3y)>@#h#96UU$IrW3Iw}JJ9 z{T(jTfFW*rdRpYEe?`!f=xJd3rH>asez)xp#b*kLD=sd+uBQhL77iRJ&!3~C>9Epz zT;>1w@$*2Zr}CR)d9Do3!GhVZU;pqSUH1#E#f#Ukt)M0$D{5o(kDi*EdgYX?t#-zZ zz*r05!mP(CTp`1QVINj1N(Et9NkJjwumYZDrZHgFX|*Ua)E=I+87{fQHZgx0>( za#^dd%+ZJuq_NPjFp;=KmR^z-jkY1sX=mqW}C&r${Gd-4)TG|uhCX$@xH&H82ou*W4#P;0!ep>?pRInn>JZz zNq1ryUzeAQA%zXz{`EgdaOn}IE(jH^#oimHP}en}WmfL=NQs>4LFEEc$>LwjOM~Q} zK%Qs>1k^mlg6Mt)(T&2iAb}wM*MEm8*LkuI5fw$83d%ZLN_c<{N|p8%Y^7~|ef5s9 zv9Yq4I%h5sqL054YApuU5ELzezwDk>s*c_)UU zUk#vuHX=JySx1|n?5`omij3Sq)|nineo^813JX`RR@pf{lQ7>x3qgGhOtCn4H`O)DI*c1T0#MgD%dmGij--L-);lLJvpg zikKccBr-LvyHXoLVNvq(5(Nz5G%m^bZ1=&}%6a;))$5Xw8eCOr%QqnY1)u)D`M1mw z4YAz_;wHw6s3;2vsQ_raRAY*{x*F3a{iOHR&V*pAy*K7ddu3;Uwt#>KTG;n^DX((9 zYNcZSt^MZS-j_vd)Dr?iLi69BA0T}c2`7+@62&Hb!T_I@!r}HvEHD6%Yt-MZtET5J ziFZF=t*gutQ3#QrXo16%lY!30z2BMsKm_4AViDz{;B^1|8V z(AU?u=HmPWDWIW`;H(IdvmyjoQg`@|Sk&>a?xrk&FhmQyRX)}P%BT-;bRI>MTqx*f z0oxrMNC_ojlFfkrOC5a#aqKpyM$Kao4De@6J6G2e3Atkq+h_3OZ{vGozCT6hb*cVhMu)To7y3)mBApjDxvSJ)Zk>u%>O}}lcN`SjyW{PLY6p|s{ zF3Yu$v5=gC>%~iZb?j(`(C=s=JFISsilEN?Xu(YU@K0nzq#N0Bc>BV&AmM_=qdn&? zS1}HX%pfU}7VHjrGPiSI)&)~q3fR-PSdKfB3lfj+|LB#|a|fib?9&>Y$=b+!Kx^41 zf6S{oPG%>?%t~*(lTZNCT5s$+o*i;i0mkJ!9AL^_0}{6D^q#RcKske7QMWx z{kEc}#rCRgR`!v^EqZ1C)8lw!_cKRf+hGDGrfjaOrzOF+Rfmo63NgHxX^d#x9_%ag z*2J8qUnP9S%glH2Oje$`4|kDx7xU5e>An<{uYhQ4TzWb>%VgAdqnqYvz1mrVA-f|_ zNJStgoityH`B`2@LMz)syesd)V zfAN|$!=@fm+}E1e&{xN@q?*V27gt19KEULQ z=|<+l-p6Q5f}nz&$rNUFRSiqOP>X4#KFm5>2SwuU}aI40O5yyto|DQwF8FiKDj&)y} zhV9_72ZOmIO9_qAe%w0)T$FIu$8^k7k^u5TJTD-!0E&NBmBGe#RL1rb^~~IX1<9n9?d%X z3byacGrTcLw|nbvZbo$$%}1zu_M-XZJ{wNWrJF6gQPnLLyR-1=IDOS^*9c#&XnN}9 z6`k>sdBOGmWrC+fERHN6h<`7!vh;VF$(9ji_=~#rbmIr&i?Y7&#V2%K3z?T^ogE`q zP<%&DNn|2#eLmEJi66h?#1Z!@yme6C`!R)!fcBS2E|>FsdSJLvAtV)Yv0%{*ya|DekGJwA}=5wovQ&N*R^rNqTOMjzY`;&+i@@6VYDoY?DGV>*9i2V-gn>ou&jOT5AT zjVXyigK-w;-p?d)A)QnoF$!(&ZAZ(Is|JhT3Rc;_uW*j`=CBOVod>{XYb6iwu zCac~%$p!h^o%fADw`FugQTHS_uWb_j8mE3`?17KHaGj?0S9F1|sUc3BY%iQ~39^T|K2ie}#l#gCu^O<-1Jy_vB7fWdRi|yH;7%qs!W& z&EGs-9I(X`a{gZHC#5F|^}~Muu)N7>fyfdY9a0|W-bk47I>R43{*}93t6o?Qg&`S_ zJZkKvyx3zLN<8k(ywAVu!8VDKn@MJ-D#zKc!|q785}t}!|~@HKO(ft z{)k^y#Tvxq!>|u#o_aKO>4s0TzqF`|qUm3<;XV463$7&V4S50?QhGBoPkhy(uUdf- zMU>%(AELwcZHQ)D(FZQJSv5Xxxg8rCzYY7gy$DNW-_M=P(BAN=jnK`|iFX>Qj;F!; z5x@SoB;cGR$No@eia1AG27@*Vr>RqqLl5Q|)Vi^q%O>&gg+L2mifh1w1^F}Lca3Zm zV~Vo9T!(qvJExsh?o*3=lsK`cH_iL%d4(&99!*>~`8nso(t}-x%Z@b~zdrOl4rB55 z5u;)6&qMng1WtIz*gA3R3vMes<(Yz?JbKe9s^wdQBE1uzIyN`nFYr&I)zS}N7!xY< zxWsh+$kc%C>l+%)*SrzdV(lCH5)XUJv12ibL#P{WH8{3Mk=?A{=@oLdq@z@-S1|Rt zr&1Nct<3f)KY$)XZ_iSS#qO3vkg4JuS9N_mv=MVj9#6=Fj@Is^R4Jp@xSs*|{u6Jk z6hn>V(eZsxa1K?H?HXJ#voT|@kJo$8P15UpBYyq2A-kcpJ)%NFkiF2^upB)snE&L& zU7HiF5%=-84!iM&rX9@_@se!q&#@}=|p2Paml$>;GM zjAy}i?FRL)q?_}`6U zL;6|pPhG-Xn!%fA5L?72vT<8Rdwk)VmvjE=;)U&*G~lb27s>Hs(w)p2lH`4$vutX= z@tD0NYt+BNF!4dkJ1PCp!{obyPC_-T-|L9qlAyB-v6E)n6R-EOwe*BwXLs;NwfqsZ zLk;-Y2IPA9riAP@bT>HVR38X%^|mmDkwhJm4ZoDYDO^#W1yCsX$_gZn=M=p zx$^^l_*1+!;a0cSO>!#Jv65nOC3VPVPawrgS4`pT+x(?X8iIF7N@tPs8mAB)5ApH7Xz`%Yi-dbF1>dOatZ}=_c>PR{)Dj}g>S)ZL0(vU zHHJ5$>g@fByWq$23bdszervm*bG2#MHNJMG_^-XUOD{Tb;`~tt z2s88AtI~3rv5ySvu#IDN2cJHW;0g+wqoX+#altS7*v;^cHL0`~HQ)F0E^1jwrPa`p zp5w9%y$L&2(bPkcjejfVh9%aIt4|v1%NWwTwc2qjrmgaf<2!L>amp~7L+r(mHf^FC zX`8`x`as0D)zTC}yj5fRgD0xsYt<`+6VAyRP^=nf#5k89Bs0b^ zR<<(^e|>LvSVkwAY+2y)a)#cs)+4Hvq* z)Q_}>$F{|NJxe%#WHJ21o`#s3=P`_KFjf2lYsi1z$kX#@zg`JMI@cXVQgJ_Y0ow5w z(3J^(J*P7I6;}+?H*u#(XCqWe&wwc*{GwQZ>a8#z)fL}O>XKdEQmKrr2cH!w&7HzG~!laS@r5%GTntk*lx$O2DxIBs6bP%{CF3!dOlY zHZFRLMk-uc;ZGd0vUO9*X=#RqUPkRLiO=JH22CnfUDA5_ZF)0cc%SER==nq`Gs>(o zLJlVNjrt2s7y~P%&Au5>|6a$HnM_tY-Cvk)U?4hJx=BZ)?b?Ia%2M5)Q3wsWX#!cn&jC8#0>u`T14K*nAVOdEYO6o9o z<==~rY>!g^Pts~_u1D(CiIdrSpt--e#A;Am^`?~&jd>~a{f=A8E|Oagg^GHkd5PEvf?8>Tv3&9JB@1xK;2{7G?w-6n zMzYnkhopqhCbONL-Qn@EcDa)Y(3Bc#YD6%IB2G`ztD?XLsez5`MNAAHGkAJ{eT&P= z>Otm~tt}Rq%Ym-rL4Sbp39-t$Re~Mt1Na<(jx&!&NQ>s@RHATo?@Q(dACjJ;183E?+ zL4Dve;Lh)AX(4XAPoR!_gjE^yf>}cqtQLrYugEMLC@{)v&hn@ax9)Vd#GPe#QVOsg z$tY9P^{VWTf6?hGIyg93c%#mXnd3*##MBF37KE>vnBX`cfys2fCsY0LV`gBCY`{zN z)2aNqcVM;IZLdO!SF5)Rb(LXsMwJ!bjytT5u6-(;(^6`zqph7P>B$AO>*l5lCthAgUFEkXO7A1xrp zE=1P=rkw+}4q*}y_Y81=o8YwD+G=BRKieAuV&EE(XAl9vcnBa&F*rd5fSHG6vzw@q z=k#T3q1Rbsr9*)wE2`b6cXf3g^Bgj1X=_6aTHt?F1a}+aqk<4I_MJ-_^BB+o zI$!qu(4y{a-$+wxO&HQiRZZ;)ux8(3Vpp1EHO1UM@!eEUWBBz%=_Px(<#oMLc}u>f zH=2^KUca6TBbR*)5)KlC_`nD<^`gP@xec2w05S*&0uP&Pcz)yAhVqys1VgzBiPqLj za=d!^B3-~8>-CXig+N(#3%Tdvrn!)H7i~gfqNOo!3bGmZz!KI4x(S#ctrz>=TZ4t4 zosI1$xVF;aG=Hy-RSwWvbb+Mw7+EyDQFqfv%6nbdCd2hVLovJ$F%lyVe0Evc33x3S z&hP2!CW3d?8GM6Z!PzYUwXS?=vcBF`GIJgxMie+6(R49qQQj2v>SX<72KaC1;Q{%} z98*qHuZ=$L;+Sx&*>+RgrQm)o@Z+_>g-~lwat#~1jLbOjs0{(9TWuFdmB3Pp0F~Z4 z=avScDrDY-<34C;lLka`(qd&Sy@e#5#WKBxn%9+RfpuexIy<{AvF_I$uWl`UOa-ES z2h2LD;HgDy%!mgV6fpW4#vT0lMa+NB1?gKJc+oQ(Q|^xK2-vh1vT+iM|Zaf#H|n% zGLfsI4*bAUiGi#lwzJSH1`Il4pGE@3dbT~DosX}mWiqehF8_R+X=}hxN9yb?Hoq4J z7F|cJsq?L=CTz|xK>!hz@>=Bw-ARxnz? zfa#E?*-fQa-Kzy!(X^$%Y2AtHyVWu&zhIzH-Dy1I^$M@G>{j)_lS?b=Kx-DTg$qRI z4R-c785xM+0-_)rRAU>kYeip^N+!D|=>qEIxxGjZP~ymyfL_^?X!l;36hyv;Ev3A4 z>A|K1CMG6WBymA=1W(}7;FqgN=CZJaj+1{2nw_!P2sJGeFZ?GtpmPk zZQhXAmNt>AtlEuSA;Oj`<@Y3CyjDQLL1{O~@clW#Z?%e>>9~5%LiMjlz009IbujYcM z7KG0QrfQ4Zw{KT2qY9u~8#mq?g4+=)(XEasdl06gtRjuI{uXegpk!h*m*nPpgN{mpKGJ(8Ts^uy%OzwOui^Yb=kZhE2s zyQ8|f<*~Xs?>*&j-Gnd{^xL&XE=7P&udb+wMNGqcgO86K#Jr&*CNStC6&gVrAQJLJ zl>%Hac0D#JK0d_C5C<366_{1GpH%t?VF_ig8_L=96n*nNJrFZB^Ge^5LWDvI3kV1R zy_y+HFD5qLl>iO!x_t(Z=}Y|g=mcv_6))?X(+y%~Iq2UJ9@)tvDQIO-UqE!hwfF}* zSuqc>+2otG{3%14zEbIXFAeGhM~5=I^BG=(#}JJ39f)EH)HNuUR^UK|3T+uZcl5qz$>R;616$jh3t9fW5QkPh84{qi^_ALaE&t|Z z5U?2))y%tWK>|p{tr8U6!=oc$N29>_fC%E^;PmVQ>6paD(b5IvQY28|ef2>>fXEble8eRrwtZS@ovN1D zkv2wWlhN2MHW_VY2sUl(IJK<*q}r^&V>_UbG322=EkfWYaA>vC-iDt2Dq6@5?rK4j zLqB!hoKiqc9>JK{FQTJo-`am=0sI98NmK631N4h_C}6FyZZ%m7CT8D{Jn5ImKD79M zA5`IO+PY%euBL;a!hmf;xW@&I{5P9kMyHBtJW+>XdAQsK0s0Rb})aIS(Ef$zqc__i_{CSkm520O-InAia9ev-Fz}! zY>xQFK~{P)Dw=F{2}E5$i~slX7`&f?fuReb*1-p!25*6cyX6L5;g9vPi%+2UIP<>`QGv$o=4vof13taGREymK4Wbxwv z&^ciDWg`m4GgOj!p;PdL%MobZM{pP1tv!vo*GSvx;_}VC$>b?>l1ayC`TINC& zou_|L$`H+9ZJkfjH*Ey$54y+>U?Y&vHm1C)Ve%l?H+IFv0I*=u5R3_?QC7rgAp7hX zqhz*)EycJAX2B*fL+q7Dz+F)6Z#+?mZZkY=fLxOL{NQ6TPZTk4MKH`^6aE`Ah>rsV z!=>?RF&a}J^Ox)oFtkG?PJejl56bFz<=+gMZ;!C&h*RA1ehj7?q?sa!50Y)G^{O+H zV~hct3iKjR5nT$oM+M#bllR610(H^6)zNTs2N7>z`(UpvKJ?DO%AJctPY{v2ICXDy7-LgU-h||F>tIXS1R>Q8>d};2 zB>@S^Ec~tYKl=f#z!My(@5p$t^0k^QDCi;-^#gJiJ!|6840!W28;^#0SUb)d~G_+0%(o)@p~k1Naf%N-|TM=$LtQaYCjrE`j_bs z?KclxLr8(aUC;*M7;&+fH%C?&^VXdo+ani)dSKb1h6hmoa4%QCdGm%=%8N(e)Rzs6 zQ}*BLpI@=WQoTHj`+^tm3)d?r+&q-1MRSk7B|4wI`Q1r@V9)0Yato3&#~H6`Ou&}I zWgaWOyx*P5s~>+e040fm?2bZ8&gdF+Y4~H~0yg5IK(034%a*NG{eeI}WB;`ur*L%( zCWZPb2^ll{ZEv*rxkPPkt=1YALp8?W81J8YStf=1rIdU>U9a*JAL1AieX3Z&s2X1n zwIHQzl9|jFz)L~vxk$%c(D!~jTyf=fI$=`Y$IS|H=+!GRY`}~85@vO~kprhE4gbBP z`X>K&>3-qug`+HoQRFxPiiGYE-*hvU&R+1U{>D=jMfT0(-#lUpM8tv%QU2 zvuP#VZitP0=rsDSfZbwKB5OZmF@P_=kk-H}f=4m1NB{o87-hD9_I0_^>4vB)&Qfx{ z8`doyJDesqI+_GIHK@d`5OeJjG^Pf#uH#N(yeS1!AKX4X zwlSnmw#t0uUG!X__U6Rcxh;r7(leZ*$UGXtf z2}6H}?BAfXtcyMGqr-#jaQedSco zm*RO^3&c{6I6>f|;d`_CKxNrFfD15aDZpg_aLuXZ7v9?EdmXacT)b|&gmQ2b5w8B) zGIJqag-vsPW${@|7tvQDw~+F9Pm&_}K})GzUhyIf+Y4r;{oqBz61I%e*%?gr+c2zx zU5jV9bpOy01;Bd_{4*b5bc9;_!nyve%;D-xPvWg9uX?f{J;7uaT6V3%s)yCMFECA2 z0zc{fbZ*~JmwJ5j?^yv?vKMB-a$_cO|3-6b+YJJ*w*drllt`rtRGF)8X^=uB|+>in#w%*UwHFi%Al-Wg>k{!D(m?3+Jv zMSSO|sh$w{^z_J01N*kE>9B1V8ks&mZf1?E)Z$eUc_~mbrrzaUyy_;t&HB5Z!mrkd zYnptPyp2s2V+?DIoMHOP{-0YGqQ!(h7$eU;uTvVRM_4IXYAv3zD0#%M_e_2bu~^AH zDg7kil;&8s%|3jdQ7ALwpX`9IPjqs_NM7f$H05j?MwHgk19S|>>1(_}Y%$h^*hG{q zMEjqpwKpAPL9)1<>6T^o)ek6xYp_t>%B?#E8J_pqTUSpAwgoN82L~8a=mv66&)Trd zSuK{o;;^&QEOdG#l2V?pEAuvZV`*JCYD}t1yjARr)e^`zdbx~&@QYKzQ)bH!MjZ<{wGWdAX~uoknu)B!zCjS_8F!5kH4rgO%kK+F~}*!!uQ>BK%J*LVW015`L9djP++)ig7}8 zO;QT!Qt#J&r_9P*PW1F2wFV2_-A|b~uhG2-XtE?wS*f<{ND(}KrjGv!qX=^^I4@W| zzBZKmE$OQKUtuQkYd$n|UiV+0AAjb$2f|0)*oe!l&9J~VO8xexTF>4v>x%^WMg6>G ze1&pQjc#|9yDW0&SK<5)n`g~Ym#(nN*EiL?K}{PGP3%A<9UlJWRSgBlb+kiG3{J#o zh-w*uhO3Ez5qHY}i zkti^3a$?_h4bh!7k`$BHJ+nW6|yN@4)sIa`GW4!=%aXQ0yl}pOYZL{c^v{7Ve4NX{hVik%U^U; zWRpZtAV+3XoF5~9Kl#pY(e`cLe$^yj%#z6s&jt(m+rp>$oyxHB=hAsTrg$x9IL{Yu zH@Pjb?{7!Ea4PwD+W?S^-cY3Zqs|)VVgaDo7%S0 z!a*!g3KW~d6|jaCZxHY*;Vqd(6jJ$!S`F_JG2jL&B##`D8P4t!-3a%}4Q-92I`tKa zD^}$CaVJIf&tQesLELA|`_(DBxXqHm&Nq{m$J}kuqE7inv&wfsw-mmL&GN-+t^3oE z;@U(>i#l$mKeLpBbZmH|uI0TcQdJ5E#gR%MNW(Xsy5lei8RGYn@e|G3W4rS`)@ z1(3EsEZ*+mjTRNG>wW1!xDVM~#=6q9Ctrn$f8C!(pT3M(ki6;J50^#z7Z-Y5PsJPR zMR7!ulLWNvm?rLtEROTv{Bul9CM=*XtF zoz49nHKE2%W~wQw26rd1dZ*DyGeE{<#1_okia9bA^5!?WoeD@x)~$HmvMyfKObx%e zxQJ{RZ?Bwq(<#EKoIisI!wCZIUCQ2pw5N1$1{MGApK7cm%tjM%2r zbh{*hVE5bHH|(owSDU0d+~_@zJ6mGZs(Q@N``K^_Lnp6Oy}_{@iu*kS6NSBl#prBF$BAf0Kl`cUV2@#}2B}Gu#h)76FN-H3W zpn!msNQ0Erdo9lWety5aGtZajo;fr3%sK4+-|N5PTEDu=?;d_i4er4kSZ7-~Tb90J zVkPyKtcG3Yl7M157lUP=M{DZxZ{Ne|(^Z)_Nqh3K8I|Ujg0(X&X!VwHU5$8VBSnbxeo1RX%%p$jKHorS(@sOZC_PvMZ z2>(%)`MMGA=FDC8`uiWTCGyG^A-)!F`YjuM(vd6lBGbF+7MvdYzLnX2yn7o;-|(Ki z{z~`c5p%@i%`;(6f^#uQ;jlczZmV`9!M#Ad$-vIzvqSzrhU_EXbPl?eTK#2j(o{SU z7}9ynUHWESW51Z_Qfs@w;hY{jBOz_2dG;@5TB)hU#oft1on>J*H(!osp(6>K(e-z5 zfo|>n)JSr(=d!G*ipWRCnu+rPyFSTE%(g1kD_cj@KdSi*thj1O44aug5~<-Gs`^|q z3MY@f%gN9wmaoAOrhno9*VT5l%z2%Ka$P9KX__-L(kxtZolTzcH=$W9L3iBlN|8q_ zvj>fx-sNxBOhZq~NRy6IZfDN1l(B$1hFG1ax2JJ+c2$_M9y6O6I z&uK+buA}{)l#VJPQtyU$9IwxO{llTc8TM2~cWU20T;OWz?)Y%!r|wk2V_h3yj7(l_ zbc<_i*1{4Zu5>iBPScr15d_ujcCWD~FXLN@(5w%H*s5*6VfG9COkYj%J1WzEv%mi( zmJ){UU~p~l;#3;hO`lkT=2*wh^W2(mrg>)!*FDx%%w2*Qo@RtiTs^!z=+XJU)vzUx z>nLxDR-oJm|Maxs>4G20Po38$RN`q^Xg=<&>CiAS8JBkCpYm-dIiE;XMQNPwDpRKG zLgewx8?Q!Pon`Oe9nO;46XS2i_7klbV)g(1z`GFIs}}Oti^nh~rbKReRMJoHjP?lO zd>xr(?sWTo!RM=O;aP%ngm~Z(@|QkuBW?~#Nn(`rrh>X#y2kS zzhVD3zFX<$dqMBi6;-E^*}9bmTTo6bfLS3EZa{>4hxhQz=~s!@Iqk^wK5Jg?eb15) zwmGk{dt4VqspPhAbCEr`i+7JJw2yc-?`ft#_6j7j>8tw^b@*fNX1k1q#kd8v^?9zf zag4PR(q$;u;P^*nx)qWiQ!FS{0|co^5(;>R0bLChLlkpiXFew;&1qs4ypih@_Z80B z5^XX|bK{WS%QoGVKhXwdra)G@QcA8G$+`OVt-1UcH^r8l6Fqum1M<%=ojGgXPB@nh zh27nwc2A}~;OYDTLa2uOa?Ny-CMfcig3heBa52ekmnAT;i*SG4Wv82`%GY3|)Gx=d zU?^V9mFe+V8}BlFE;F9*EfYf5WB?{RKU=Ca90|^@`ZN9C z>*`^Xz&+C6uZ#5Ckdgox4Zyji!aoFgV#OJ4k&k1geuMJ)l}Eq8X{%Vc`cnVeOQcKu zSSAF3O6zo2^4j|PF8~Dqr87{;)l&x84Q{}bpnAT!zq5wkqb$ok;~RhMe!D(|ue3J? z#rY~ogb`o@eu>Kf%z=Qm@Pz${G%_O~Y8BnP1ONSP9x=Tt#qV8)q>O|{X_w(Ofjs)9 zL9q#faX~kHn@4w0ww)13EJOaMWda%# zVh@m=qdV1k1Z4#w<)gyp*Bf3dKg~P#`7wCtPcDJ(_UzdQ5C`)Z2nr-l-dY-YnW~Ig zVnSTo3@C9?xC#2QJg_X8?B2kJA3tM6M8sOZ%E`|VXo02`7$+{vs255g`6pO_ci=Ak z1nl!*6aLbjqxVu7B-5A_00#iXU<0_F2v8b(ptwy)^#|i#u5SaVunrcW4Pbx1fSkH` zpWpi-`kIJ{$VkMKegP1PHE74$XL;24^EExJ{tOuMfgD%`$VmcB3&7^&X}&*;Iq|nj ztx%vByz_u2X94<&M*pqnoOUq*R-lhj1z<9er?UzgzL^G>(+faa(Jx9tdgjxhxSa%1 zuMI+X_E%e-zL#BA$;A!;B#KNRF$|)!1?d)f@ZhHpQv@!f!Q%zA9K2)%@OqGZ+-a;9 z1ApNWD-M+A2Eu8;J&KGuK*YYD)G5>h>s8@xZZWY0U`0=I(EzhJ zASAYcFCjz1`AL;R3FH*K-45_LU{Rif7(+zILF&LO4qXf>++gcr1c3WV=D+cxKldU& zc&JmUk(^!S@bJ*=?wB|FN8xa1>b1rD+7BFJK#rkIA7nn6SR{Kd9tklR>nMn) zlPg}#`NugFZ2(eheU4|%mClMg6ZjCU(g{~|b%5%(rS&oGjBuH4gZvgvWHg8O=m^dU z@IWYmK)JAAz#T-w$Xf#j_-U}67XUB_3ki%00L)1M{0%&kaP`>oi965r1|K2SyEq#g z8^Zrw>XxM2<^7DA1`-F8Cv|MjXM3V5LV=VURIo1ICtS-J=7$0WzHfvxuxN zHA=x4hY@L|{Z)MMP9RY(Xy1`!16)_eWp?Tj6em}OYoLbC@gf!jN=izwx`l*d!5al{yHQ^)16=XG zz!gJa(;PVR1z+v^0WkOlQZ3Nr!96I}!xDj59A)*)07_{O2{S_GwSV(3S;5%CjJu3= ze)jAc8bqe}8PaFi9XQAU*cWXh=fFoCT`r16Q!n|gW{*cxY587#A|o4seW?Y>~g!^jg8>Nh{87fq`BAU<%11LxP$(kF0$b@uewPBeucG2#I;1SqbE#Da{J6dh!~ zK-5l8(Rb`Az#ab#mFReQcwF2Zn(;`?&ejGOR(AnKw()y})^~J7fxY1N&JApsBg0z= zF$LNfpP14P*l@u4vXEI1BnPxXF2If50(Kfa7j2C9#Umls3buDd(RNo&{z-wy`dnhE zRO$5n5^Of@j44if<^EF zETr0ucy|V|Z4@%2O$aFi2Zo&61PKZC*Z_F0|FoiGaU zx)LE#3^u!m;OlFiGfHa%J~$3u7YaoHK?3;Lz;-)i(D_lzmfSLMlMb2cV44B$`vjJZ z7#t#yX@pr`D%1ec2=F~9gsJ{uYXq4gkp2R!hMTVCu9_pw_lcR5f)pUl;`mfOd-ivJ zg9!KwfG3IrL^m1EBF_=$DtEwIJ>le_rJ~YxSi)d=-^MmTChe7S=M3Nq*1=)mf&MEX z#!iuj(pf{;11hVKbpj*+29BoKJivk@Kr;eEXgF#98g>Xf*sssI{>+5sJ^$~K28ITO zPf*Oc$^HhQA0c(f8wfg!YO^xeZ9@qs7;2-3W;u~8kN)cd#Q$sH#mU`jyb5woIf;0eeVPKy_Ut$w0 zj<$0|8%Xxb-rrlU)4A(%9ZLgJ*AxM8_km^Eeto(t05lx|JCjjx$QXK+>(g1sT7&Bl zxwe3eaD!pGGow?efsAoj65tg_Ya~%n8aVYJk414{*=jQf#8i-W1HKnAt0tV~>M6>s z!XkYhWDMSvNwfb9NhmM0v$|mh`oaqXng#sEg&N(AtstiITP*F6J=))>f!FzN9Yz5P zB!2HpY4(Wf5x4I?g@W7Q%qU7#-jr!)ge~eLGV|D{o4123YIS3y2pN?Q@5BE4RSBvw z*wNRZ*eVOy^{@!s#0-4-0;V5q5?Gkrr>-DtDonjz@a(8sSy>_Pkv9!2mV(37o5azu zYrF-%*a9pS5>FUyVw)jF!>5j{^03UgZX&SO;XrA_DbZ(tP5v;@zBKUZe^yhMQCVPV zdyfvcmEiE!+?0dNud8?Qu4`nSvLy#w(o{5G_C&=O?Wu;nWiD>+{I9G>P#aA=i(=)J zluQOj8iJ-sPoC_6v>zxWQC=4;G|i=5EYOoo5LTBHxW$A6gc_smi6BL!VS^LNtni@T zX#^>eP=*gWe}T`cZMhqNU4t&(0A>VVTNz-qj?Lin90r4@Xu}RCd_=+44!m(5aM?h8 zLBq_f33gm4=~&Ktp_HyMnq^Bk-k^p8-`wOx^L?XMvGc##~+0W3?wSiJ+wd(yH z;htZR;M6`cvX?Sqk>$PgBNbdM2TKRYn(Oo3zU?RNFf#95xp-GWZO63Kh7juZiEpN^ z_MlVwu~ei_R{-+^BLuSw4w)BPPcE66vGgfykVA-Eh}Q-9tW>Ex-%j~|d;;-fz^?<1 z!MWlJq!5(E{5~Ot>ac;JFdGoRbh@uEE<;vik&TiAoJNTB02bMAxDV*gK9Jf?1o|6#%XO($GOQq+rUVjH;T76rU#t|3b*1X5d!r^ zFqzb!4?;bt_JrU)y803*Rv^KrXgL0VCUZEkZ^8sZZxKx*7!z^Fes&a_gOB!GcA1HMWeYinyW-^mD*19^3j&0TK4zO_7-0V8*6 zZ>QL@F&okz>Gy-d83q)%9>~ECjL%}Op-h8RBM=CHcmLQ^JTP-7b`oTXzhJ`?-7;!| z6Xr8m&EQ1=v4H|UD>BTBK~hK#UkvpCqpX`%>CGd^TSLh^`_2oEFsYC8_@KJHK4b@l zH;CV0#DKP515;$q+W`h<<{k(nJMt6C75DJ0Yn~4uHS6r<{W_9C_HVNl?@jfN&Ff5- z&aTAxI=iFQz z2j)2D<00X^%}-cnpt41dHK|;(i-H9jAD4WR6B3$0RJ#M*@^{d7K)pkV%K_&aaH0L6 z9BC2l{uJ?;vF3~{PMuHJQYZC;nEMsyzS-Nk-MvCo-r9PLi3(C?=)V>bQ=C?=^XadZ zI(G|?g89-|t?rF)&m@WTZp;jyInUkUx?oTf|0v>vsu>fLmWC!*@6zn22PChXlwaMr z8fOXVyDuKGG!jwdy4yZ@5VG$w2I+P#H8b=87Tj1(foch&p~PX|hPYM(_`eVj(da`c zh-m{@55gx#Dq%aY?n>gR2R+kklXuu$0be*9*V@6P{p;7n%N(ok62lE=wpOCT3H)#% zvfK5QIrAkI^}k!QS4SLPr89(T^KtXFmO?&igu?$h{39;I0uz$`yEM# z)sBCgJEruW_qJz0dM~`yyTKFSi`BVsPkC<(l7jTt0|J{Tn}|k3WURXIReYpb6ou$Y zicPH#?iGf&wW-TE>Yp<6q%gb3@3l-`P<_oj!mW;H`e2K>{z!3uEy`>19`@PGETWe= zB31Ol(+3t7R>spD=9QGTZxzNCZ{2$9FS9tz5&tf*PM;z69#SIjer z4;r{EpbNU*qHlmXyRBG|O7^6wdoQk9lZL58Hc`klJ-Mmz?yW!sgYCrc>pOpM>`c=R zS6>esGrp-_P;MwXPgG)9GCiK|tcig;nNbyGxvzL56rknC#+h>~eQm9gpAVnhe0y3d zsjoz%Lx!#JW1BxLkfLNO@Ba_#9IN4Lp{9Y1V90n=FpYcWOE*-yz6 z6@l_QyP$GuU8+*)NuwbUl(c2PaE4wqGMd)j%r5J^+fP5Y9$~#TGE)9m>#3)!nB|2Z zRX<`bo$W2?-QV?vJazH9qoC?_jd>G@MiM+84lYUBhMh|-J)!s#yepL>6J)m`?l=iqX_ln{69Cz$3$`1#cyf_Q0Xt985ibqdnL$Ni~U6p$0WWK=`*qcUR1GAjE*0bXGW z7DZ_lXn#uN67zYjrT_aI#fxkAAuATgT4I?XB0CaUtg7To#^OiIo&EG<-Hf zp>#-c@&Y%9TMNOw$>v7UPQvC~j>HxBFTB+o+Ke*V4jTsa+1|vK{?~#kA!VHr#5W!X zv8j4($AK;qetu$swFFIyffKDK1sgoPIkV4PO%qLbna}6;UAa)bzy8qqj#;Muews)G zFC>;3-zZomCemwC!;>1({tK}UGb+2phE4UMcY4Mkzd-r;BBni_QIO&R0K4yyHt zR7#MRV}TU9)#>E2w4Yyedh%l)+KkX#N*78jFlP;7Y-tf#S=(3-^Ir}vDoMl6#4<_D zL->e2+Lq`nH6DhCgcC5`xckkx;Ist*0Ii@^)LdG_Aq_P&(?sFzRT+w@rDqlr&yyjg;7Zj&+x{yGv#}k#1?H zVBsfzWlQvDQR0^H(ZN4AoBqiyy69bE68fxxelUDd-Y_gJKc@Uo*NFvId4yOTw5M* z%mLjy4hjc_iV4KL2<{94_#e<(6>Mbyq<0G>Gh|M%aasKV96H1;p;SEcfqj%5#-XUz7_Cp0w z+f>*LacQ#S&&aof@Zd`Ez7!#7@h$G*_Ltd3F$4$8F*unrL>gdE9A9m+Gg)eW@9m}k zkamSj?Gzwl5Yr2H4LNkr0Qx|4X6>kbG9(1YcwB_vBFd77K--SGn7(M?u&i#GvzcaJl_Y&Y$U_HFZp&ImsaH+7IL=J`{Z0AyB#ktir z{_$1fvY%|7dgn2iE0Ox45aG`#P=G~IZiT;Y^(zY~M^R$N+Cs`9{QB{gN8MF>40cOO zA!p>fxBWC@ZgOh6yzzRTZctUPhc%mbeFI+sIcpOY_AyR34TzG@f^tj&A^}YQ#G6_j z+*8wzlVx8wNZ@M)r`#A>D+>%JJ9_-0&3F_FjVO)WOhG(Y7$;qenN zFp}IIBXs`Jv{0g%P`Jp!D`WWMyen&Fp!BGl%B~L1n&SY$mH4zZuXsg)1!{xYshhD{ zPnl#We@)pdO;Dck!gVabiXFeHav{fY)^^Bu+x$QaDq@;b0;UP#S1L>P7A1Y>c^rS7 zYLAafNO*WB*}i!uz4hHtw^0)aQ=giAk2|B5At7P)OBK>Ep*V4AFisD?{=W*ohC{__ zfZO=Xa+>KxkEr1Ij}T+yfu+5E6}_5(WjV-7|5aqz-0ZO^Qb#`97nR6WKx35cPkY2* zYXt}2wgqYb%^cwlQHAp zTYmmPFX;Idk;@zUR_bR+U&G#RJQUz?TeC5KRV%^L_$i~HZhI=;e&C~E3202|*s@VV znZ%2{qwcc>*!o4MomCazEn`x126OJQ7Uz+$64zZKB3nC$rCRTS!8(_$3P_@#3?mb; z94Zi}$>zJ3L`si~3&AFCW8P)Ief&f#oJPt%^u5e!xl^J(B2udscDvjGfNm`Bape%@ z-1?9%VhWe}T*yL6I{TM~z+D33bWI0r!#3;3EWy2fi+lVEyWACb47d7%1w1?^KFL6! zx_t}WPvJmz>*6UJ)$n6!tT;CxmwkbmUO0*84(mNNfn;b+aIhg*(2ej|{rNQ~T4`5S zg(C%S?#?$Hb6I>GdER%J_GV`=_d?s}QzpvnV_sk1UMSIPzCA#|>aW$#e??XQQFrPW zQYgqvGn6cA!$v9+yEs*%E@hpUh%2qYhPA70ZVij??B3k@%>{QO(v7)HuE`P|Hsf=q z{Fvh7%Z*514m23x(G56wx9Gnx$7foyxgt7PY*3u9S<0;m_N1QhX!AO&&D-A-r~8z6 z7`>N;Voq5GzKbm_I?=r1n{C|FctEsL&sFEb&8<9E>#;~g9`Z#y*=4D-^HP=Czret3_= zr|#fIvs;o^c)vJ-cIRJF$wVi$SY&;t+Ty*<)mx*CMYdOsAJPuHht`g6rizj5j%M5UqS zy>1_?zhz@vke8akPFGkhyBlosR7fN%Lr~J@U>_LFl58!ZTi;@zEdF;Ic_`#fX6(^JQujbo}u1~xs=J-+t`()vI?$=m#H&LV;`V}O=9k>)&wiAa$-F<))@4!)r?5As6UU&WD za^m}x*p%3E{(QgiCPhFTjg3GD@TQQo1@Mm_0DtZ^W^`lu5;tQfA>t($@}i)!dEV~j z4+|_3EwEJ354VB5xeH>ejT?h54Eo8Ii${W81mKBrF`Ew$PJfw!WNvx%zA*+6kPM3G zDF6)t`YO-MxZwc)tjCf!DUl};Ad|x1v#|9X*RujkzhXpZ!4v@D=7lB(xEBT+;nECS z%h2S^34^T)N3%BE)w%q{&1!=$ms>UAwZYDJTx0?Y61n-L5bSE{qYp;L)BxetbPFpBr z5c#&Vv!n0jnF7&I=oh`aUSe?pdC~w-G%D!8o1LD99Aq{WG6>+`GuxvSy#j4?z?z_z z6yWL+vTUf=h$B4Lj`ZHpM57yc=J?iU!7t!)sdH2YgP#gq6L_LN0$KvLEf^ykPw*P7 zwK1R@HptWK@-iSw@x}2^q62~e{8FkwfRwi5)sDG<31+zB7T}i7MQ=r>0kL@tnb~iE zROFNl_Vn-=uJPo9Di53B!(V`9Sb69YqNkBs35bI`VE+<#z6sUdUC~xk>ud~aa2^pd zt&9csI||H`Nhv9+z+T5+*kXKldr;t|fePT3uJ1SLk$fKXugzsbvEmTfw2ERTm+MwM zfW%pc(M>nafRRc@cfDcc2@?^Iprw*PE z5IR&+ft!VglQRs|3-N?x^lo77@VMprKeq+=8+afJy|V*BE+RG4G|)z%yFeKF%%B`z ztO>x_aGObn+(Ph19d3G70rvxq2~hp@s{S4D9biwAkdWxEFNOyNvm(SGF_^hsOnlM^ zhL@$KV$J5W1sbWxQ-ltXSAvjzJGiiQeVxv7lAQ{UM_~S3#&}FMgVvM zkpq4NWx+sbVsN~QijgN73`Xlfo+c(Gd9?JQR!4w>fvu9Eex)fCAEjmG=H^N`TLQs^ zBnbZ&O88`DtF>|<6ingx`=x+!fMo)HHbC}i4RFCAbq!P!;70sV=?o?Su+zN+F*>+^ zQjAAp#bJuGz+a41l^DSEpSd!G3(M3WjT|G{@JpSX#$qx?7!u%Gk=X>idGehmnigW?mvVOs=@_c&C%yF1TsV^#sK9`I``K4LwfKMF)CQZX{Bfr;#B(+^(D zaQV%XRihqcKo26H+T!A(#I1BatixL^%&4$Af5F2p##YD)cp`O&9vM%;mrVC#<}?FC zN7mh+T_DHb&VgO4KqCXqb*V6WW0chn;4Sdq#-Be~L$elSjw&{l0eH92<9P1c0!=Fk z6gsft_fITcx~8Rtuw>K-B0MtEz(^jNE~4Iz`i~~TwFMk9+`6`uwn;?DT&gmFlMkS z-)*#7mi!=XvINbL+bpmT0lA>;<|YQziD0^mReDbwFh-i-69hX<6`Bagv5wd)C%|q3 zCKLzY;UKxNLQ4f03Rp{NqL#gnWPZLvJ0_j>(FusqeGNW8Nazy=b5*!Fku5oZ*i&$I zefhTQjQE#6TSV+5i!CG8M|4oF}6RL2{Mw~Is z6mWZehQ0OJPF_%j6GU@=7>3~V z@eAfgvWmvTdq65_fR^fEz#_~mc!so{Qedn0scyTWYJN2x(BFd zASs`uTilBVo|d6rNlGde%w{x7%fQUUyxtrFuQv!y+F<)O`{f=1-}m(R`-FN>zZDxu z+11LBeuOL?0Z#A&c!Ea3PYDMEII%zqBJMe>1%AF~sZfIzJQKYPD=!-ocY%tQg7t|^ zGRRVXq0Z;xB|Mf3C%U>4vMHZDNk}Kw=JWLnt&-XKcggY9=*?s7?`xFicOY*^7x#>fM+e7WZMh z&}~Xe8r$9TJjjaOAV(4K-u_0ViaUJP*YCse6^2TqL4`_T^E%I2;6G?^BqefvoPUqA zeJNrf&X9R|D~4XT>P@(^>q;=C3xKDsq@?+*=feYkQ%y3<*c=?n1BR|oo*@&Z7-;o@ zM0U@qkmWWNY~xhN&)r&CV6weCCuU0os66KV8}rG33(s6F3%7Q6vrN*9#Utoi-unYP zZFLynH&T{sspPwQ5yJKH@H93}^&!vs_-H!tJN$U?msVk$1@-7#!4^#fA0^{3QtA58 z$=Px{iC92qrskDK&DHu{2e^C}O5B!$Jt^+^M3S+!qhA?u1yMzpU0f)>^`a3|^4yAL z&?JngICaAT{R^F_-;T0V=Dsw?r(zs;WW>Scqm zO6U7GvlGQ1TzlG-!Y^j`!0Q6^i)2EaA2vHSF`9L%y_qjZxg&1%Pm!K`5qX_EBbQ{< zxGz4hPGka=@5VL8bFVxqpv){jE=YB1YQ%1zs^5sys`cH(IF3}VKYHhRzTgopud)$i z{brgF({lj1^_dV%h7B5Zd3=F+xq;cFBB4s&>s7#HAD1ARMX-4-w$A&0Nn@HiC#;Dp ze|cW$Veg3(Rk}pn`jVdqBD_o=lNpL&_866MZw51e;n$|bqV?=OooC^LQCDBA#rnEk z=-gPHec9ENtK9Mrir{G>W_sgo_p#DBux_ey0?;U zg?R{R8@;gqYHW(*7V5&jvp~Zt%dXirJ(GI4akk(Tx=jp14h*z967zK%WWGA**7Vl8 z?CfT|QumezJTlSodpc=r)kR~h3k}eUW?Q;HJ?&CWxRzn}*%6{$@oR@+qx}b+X-k8> z|8(Z{6^N~IflLI_LVp>HO#%_w0g6B9{(}QO1eriQ3TEb)`(`2fxbk-+3pB0!SV17= z#cIf35O;i71==}uCkZ@zM#W+#aFU6hz8&s3CR8{%Ak_nj5lR9;Hb9gX-0g`=W3n)m zUNtqPx#A9InC$Vd(d6&T+ytvR(6EF@CrL>WO9*>b`k#$cvJJNj%R}J4j5>)GVB>Sy zjcrNKh%ciCtES)VGbhzVNNUvj>kZmeSE3< z(^{76YWdyr?)NeY#?T>8{|gnvjw$@>7QWc2Z|&nLjHW`o~E1`^>x9T6vG< z8EkAd4<<9Doi*UZ(mZevZMhIDDFJkghBGI8_Q7$Xxk*Ef3;piKnpPT2y?wrj5di>S z(vZaC1QlUz1!T9ABWMI8s;DSt6Ylk__bDM6Lw9v;w}>EFb}%dOH5X$2w}eu?$ze!T zk6#}{PuSMdMc2QII6_`#mwN;s8mzQ*ok)ave>+rN2$flLl=Xr%I^UExp12(wE) z^_94khd+v|G`4Tszb2TSZCNO34JYk?MGfmbW$^TU4gS>Q0{hk1$h#saMgoE(iv`SK@`lJ`e025?16uWdieaGw0%1 zEhs_Vc4w&Q4cssGETvtD$??~&4O|$C;=jTD`u0!>v@JUR$*$Q{vYx#4t6||Kf+gX^ ztRZn{nkUcZu>an@k&%dN8Njh*+{oIiK>I>F)nBxv%r#0+<9Lg@F+JTR+Srt@Ue@nX zY~t2N=QiTppHB*N$ehZn&i)eIIK=|bI}Nj&emhtRb{h}ufBnQ~53rx(_wgy|G094! z=pBOPA3PV~LRkG*@Asf)%j4%MkymfptEaAPk5AUESS^`+|K&WP{3KVxF~MgS&W7V! z?$eY9M9!{m4$%;uJd?CM^y(}SRlVmmT{i!8+0j^9lHRtkh%j%@?&7W#rj<1l`5q<$ zZEam5U}el`Jcx@-IrV+;xuIzFf{5{yDCeaj$UpzDsFUY@_s- z>+9_X)QSwsgfy3al*yFjun`cb{qFe`@z-nq=Y@Ovm+ZYN!j+?*i|KAH^3&>cdwzTd zQ;rPYIlp~uEOl%&XvZevmF((&ek-O~gnfr4$9YOR665E0&Ry1VafZjbcQT=gk@0M3 zsprk#BMc^0X(BTw@4UjIAU*iF1$l>j!<`{UCP{#w{mJ-v5;LB39Y8FX{aCHL`_LN+ zKW+gHY{a9}q0m+0EJ5)W9LGFo0wFuTqx^Lq?wg>%8o%jTo1-;ihkkZOg=(80(AE5< z8WI5gpXzBoWsY)z3;(o$q2H$M1n8%b@(`qnsDqp=%RdtUDrAxJlx_mGMb;sBt; zE^12SFZeo+jw6i(92`N~d|3vrw-1p_M6Vzho*@(b z<0xSOs4z%>L8%2$H1Y%JQuN<5qeOF!R6Mw7z|HL=Qd5HeUaY+zB0WHITgf>E^)goC zzt00Ej8_X}NDv?))YAf&Wr(8vFB%+S(kTKwa7Uk;i^|EdyexAWlxwMRa7F$9VXhdp zGv4_82wr@*5CpA&5Ek_%vmTKS-d`gIa3ddNH6Xl%_KT_phl#(;p(@}Lr;HUUfuLZS)8}; zWLr}pessN5*>787Tx(@n$R#HDGc!I!Y=S2o^23o0x@xo>Z`+pH-4?tw%R$5jxFaFl z>}NW!)Vc(&y9OzX^|QW84kjZGcorQ@TPwWS{%`!-6zFg1wkK` zH5ueT{oNb9Z^eGf5zmY8AD;R8I9vEW=9|VdJ#6g!d30>?F$`0@#`%U<6q==`yMcQe z=i0`~2=1dqQ6FP$NQUj1p5a7kEuqw?A6x^CN<0d}Sdwv7^e9vIHzw z1mf8Tn?#h^xKC{P8Xjplmu_ zQp}K$dZf^iknoRrRq!p5QJns%3@(mUja>gA`OT7du&{4I0~Cxm6ZhZZE4(%zueO*F z=zU*+=lI!Kt-wIDOvy=C{a)?v>d*b{0zEJ3l8Y_oI5a;4*!#MtxD@la&dh_M?R#2y z$9~9zj200yvL_^Z45Z%932$azsL47#9XDWpK$ONF>W2ST>1bCT#}I!G@8w+8)w&13 zUa6r{^7a}*g>92z6JHZ=e%UwjYP@QkCr;N-7LvcYSbJZF-MlP2npJw>)9D9Z2hw?B znV0p9c>ca*$2r}TU@fuQ5~GYaBfg&C_T&*k|MdQxZ01pbxZ2$k`6D^}kXQS2x9$@R zHthB-skTfQOnBy>f1EX58Pt@e%y*6iR2|W%2phCcP~PNPJ^dD+RPTK#M^iy3W257Q zPQLt(A$I^1cfXW!`@Xj_Hasg~;&)W|#lBDHm$!x-rjNewkMy!%f)TBGTjsO{(sP_cKmNPB3$yx`#W5zm4-gVHJB3hFc5mh^aXj9X1Zh z6{7V2?k6$rsbeBKjBg5PNS4s zn*e{n;SmO2`KWok5`#C5!12bhB3R+ z#%|t{k=V3H0Zoqr`iNX`MF@T++DhU-srR4|JN?8?@B1ZS$_I{b9s%Tf2lr0z;4sbk zh|&akBz94k%mr(!KpJm|*8VFI+h61Z5n1Fygg4oDk0M@uhJ)qbCL1DlIw)unOd5yyHu1oeNQ3?pN58l@yiRyD5lRFY|iu+_)eR z#MdgB;me`7DgQtpH%HZhAedB3Iqd_}$U-RElTkAoU_PUozpL6}uSqJdx!I1<-*9a2y35(tTDd(6>LX;pOZ&Z1)@R zM6R^&6yR_r5@zmkVM-)lJx!MHzI1+-LyS-^=p^R?z6jCsRe?xX_MWz{U*Ep|A5Zo$ zJx0I0or{*mfn#z-+U`@`Lg=l|f4-;fPWaJhSVVelU*YO-J5`qQF{{(%ELj4n1S+pB zuL>3jq+Lvt^P@2Ca8ZzOSt8}$H;>Y~O>(t$+|szSm;E4=A<>)Kl3}0qEAKFeV>P67KHA%EIDJ(9E8~zqb-<`|lb5`<> z{j1zlnHpnf%u9VtoQc1Ri1eOvFneciCa*pA=V8bR`H+~$oZ(ig9B(pS;+!&9LYvj5>v!*H2x^~S<#BSTa$}DGFn)+j4m*zr|rpNJPax& zUmMy#Kf#*!XWQIHe6gm<+UB*DE#Fv9et8_OuHKv+Wk9^qsxR;L_xGNX2zf?3kDeFb z#~2u_LjcSd`$&zO(dv>@(FHa^1f$B~3!6>ES$FRw^@^4q*YbWC~XhkUBlhq%<(Ms@w8pa;%Y>NwNq_lUR)hFx-#7+?C3 zmR79<*~mR6J3mXa8;}jKqVA0wDz>&<7w-L?fCi)7=`l*dkn&*$@%Xzi6b}*^9F(^eNzT*)>>sd8&nhZX%E}~e-@bj8pZ}Ro zjv}P|v4tQtFJ#V2JRyhg1l>7muzH%Ac^MJM=F z#k?|P`8UZ!lFnbvCh^a~=Ze-Cj86`(YnT!#hd+mkRtriG{ADhy!YC zJO3gB<+bWu*gOSUeO3^9H|-$@9a}G|sNkdKYw!acpi)BY6k>MZhnGXk5|E*T9#8VD z@KWyk5hDC_8q>K!DqGw=s_|{y+~5wgD|$orI4NJ{)|+mAIPZg>G#*HvLOWPQd3x_I zWHTb~7ode#t*tqrdA&9CS3)rSIVq`9Xbu8~fIi?-wE_b#Xr_x4G&E%2c~cXKMCYK1 zM;)moo>V_WKLRxYCTF@Nl0KCeBVq%MK2Xz@l(aN7-pIp>s3yb}^5p~|<^$O-e8Izs zdT4ojdjoBfiGB?D3n31%3%M(x4Ae23t2jl4yUN39b&{L+3rpLK6*n%Li#$3bufKjv zn=YO9BaS;@238fR^a0_S0R{lIc7FQwG`6US>6|0g|15}rk4J#(4>gt(5D;ki8-SYq zK$Dbu=&l~iB9{cBeGq_F>FNzsj+;Qd9O7iZJEei)QVg2AgX=@f*;yEIA5hfJpw2eQ zUAl&b9dP>_uJuN@mifmxB&8QvK1hID*ioBOy>O13Nu|7wdl)`9^Q&IH1y%a<>olaWd8nL$1FAoWrVNz=g=I0bB?1Ax&-b7t?}y*qdA zoUXq92T1NSu5vj8Satr37mH4#(ikr!W{Jg z;TrU-mxfgb4RwXVzB>iPupOX1$OAAY6%Rd=U@a6D6-}Yu=qze_|_)uY*)SIT7 zdYYUww`7~Ncw1i^m%qYdk>^QYUtib4LR(Xl4Cb&sDC)GHo{L7Ukl-hL9vEoJl=G|x z>nUzEw5;(365$E-+CwW1V&m*2m{2pIuZ1^^-`|r${=W?8@$zNZJy09zpY?vQ$>f0P zL=yO8oaOorZ5VoB>+ti;1HkeKb7wWK5N9?T=Y0mrSGuNP+T@FG2y1f=dAPj;p9G{E zPwEfI&EbgMClTtyWx%hZDaTk6i6|XtPH*@S9szQQ^vN^tyq@>)d4B_$4wot|Vk+d0lNcP}z%t`7yc;DQA6i;aJ zs=&_B*4B24fuYLZLRVK=I-}s#s|UY+**tvs@JB>_@_0ti%&RwV96)t|>|UssZ9+Mj=Dv(>?M zBc|3ipmFX|B97!yDp{yE-QyG%7DkPdP)kLyntFf~plWX$x!;g87yMyhMLVf$ZXW31 zy2`#fq)NESYDKkrva2unN-S{-w-c`BA1C3aah#L5!6)`Ftg@+6Et0(^YPk4vnKa;A z5AEQ9D_@6d-b~&7VcQz!wF?$;{z2Oj#rfWc$)@Q;hItX(sAaHHTOE=1&>m@MM_>X;+9h zQvBuSjS8S0eyk9jVf1U7)#h5=iGj~QKhoCaJMrSJ-BERHh+^b3*3o)lOh!&@fMaOA zll(UVURJLn#fR5}#1Eu!Z{lpzED$MPd`(@Q@ycV2VpKJjOM$`vbaC^FvlYeK`*S!$ zw6@$OFN*bQsUM%%KeH-D9-P#Wf~!05y^z}IF=YdMh$*Vh7ah8wrXLvrxi zKA1eH!ugUs)Igv>TCW-2LfFK{Q?k@OX*j@Sjg#WFC9f6h>>oy=dO!451!lhzzl3V( z^AX3Tal>dTS=Pr|v2-7KJHAsTtXE+E#ZmW+?aO~|A3O0Cr{KeZ4xd2o`v+D#=T=oX zsgA_OtsPFSednG}w?ZF#heDG$8auS1%3MwSc`H-9B2=|s({0&xo$ z@=|RJHcs8Fz9(ei9m##GOu7_Kn##0qfQgt)Y)ZZ5f#cfLc;50eTb!n_aHO7~#RQsn+wAf=VY$$$m2Z!oA zH?e-D-9S0#&_6L@m`Ks_C;6M(kKp#oYQ-iVxAuH`?$2~-+T-d0hMhAua_Na52;x}z z0(%WZx0Cu5vyF!R1eTWs=Z74iyx5$M-kJ-V@K;s)ahah0u!)Ukq>F;e723d>w!vqlr!(PI97>rc1~@u5o3VqRAzT#~fuN=bj< z?nxXiU@pVy^$7P0Z74SE)fOFXsGtr(!xc_$X==KbZ=PRi2kW1AEyP6Y8faBy`P1N* zze_TDtl+BNYpO%glS6$GRtF#Txr~ryRo!~(>d?n+qg--PgNo{BI$<`CrttBG)?Z!B zE=@JEn6c$dprZ<1E&8DK>zjtTQr?WIHbI#O=O`VGwWuaRgTs%gwtF_h4c{u)Ir2W4 zUDl^BdLUrSL(Q(hnPK6o#;QK+0&&D9d}vf=4Ca)Yo=8D@33F8x)W3N?o5EmF_K?_{Qb+}?Qjx!hTc(``?flb%cMNPUsUuX)G$xWJjn{Z49$x6?#TwM=QgXBe(- z5;wp7{!t;fx?VTD0`(+4SnKLZDH8BQlJZmFDU!GgV*mTkVA^x5^V{O2aI0%D!RP +```python +def fusable_with_bigger_search(x, y): + """fusable with bigger search""" + x = x + 1 + x_1 = x.astype(numpy.int32) + x_1 = x_1 + 1.5 + x_2 = x.astype(numpy.int32) + x_2 = x_2 + 3.4 + add = x_1 + x_2 + add_int = add.astype(numpy.int32) + return add_int + y +``` + +The `fusable_with_bigger_search` graph of operations: + +![](../../_static/float_fusing_example/before_bigger_search.png) + +The float subgraph that was detected: + +![](../../_static/float_fusing_example/subgraph_bigger_search.png) + +The simplified graph of operations with the float subgraph condensed in a `GenericFunction` node: + +![](../../_static/float_fusing_example/after_bigger_search.png) An example of a non fusable computation with that technique is: diff --git a/docs/dev/howto/CONTRIBUTING.md b/docs/dev/howto/CONTRIBUTING.md index 7c6c5fcf4..d28389301 100644 --- a/docs/dev/howto/CONTRIBUTING.md +++ b/docs/dev/howto/CONTRIBUTING.md @@ -32,11 +32,10 @@ git checkout -b fix/tracing_indexing_42 ### Conformance -Each commit to **concretefhe** should be conformant to the standards decided by the team. Conformance can be checked using the following commands. +Each commit to **concretefhe** should be conformant to the standards decided by the team. Conformance can be checked using the following command. ```shell make pcc -make pytest ``` ### pytest @@ -49,28 +48,18 @@ make pytest ### Coverage -The last requirement is to make sure you get a hundred percent code coverage. You can verify this using the following command (after having done `make pytest`). - -```shell -make coverage -``` - -```{warning} -FIXME(arthur): is this still valid? (that `make pytest` will not return an error) -``` - -Remark that only calling `make pytest` will give you information about the coverage, at the end of the execution, but the test will not return a failure if the coverage is not a hundred percent, as opposed to a call to `make coverage`. - -Note that this will compare the coverage with `origin/main`. If you want to set a custom base branch, you can specify `BB` environment variable like so `BB=$YOUR_BASE_BRANCH make coverage`. +The last requirement is to make sure you get a hundred percent code coverage. The `make pytest` command checks that by default and will fail with a coverage report at the end should some lines of your code not be executed during testing. If your coverage is below hundred percent, you should write more tests and then create the pull request. If you ignore this warning and create the PR, GitHub actions will fail and your PR will not be merged anyway. +There may be cases where covering you code is not possible (exception that cannot be triggered in normal execution circumstances), in those cases you may be allowed to disable coverage for some specific lines. This should be the exception rather than the rule and reviewers will ask why some lines are not covered and if it appears they can be covered then the PR won't be accepted in that state. + ## Commiting -We are using a consistent commit naming scheme, and you are expected to follow it as well. Here is the format and some examples. +We are using a consistent commit naming scheme, and you are expected to follow it as well (the CI will make sure you do). The accepted format can be printed to your terminal by running: ```shell -git commit -m "{feat|fix|refactor|test|benchmark|doc|style|chore}{($location)}?: description of the change" +make show_scope ``` e.g. @@ -89,7 +78,7 @@ To learn more about conventional commits, check [this](https://www.conventionalc We remind that only official contributors can send pull requests. To become such an official contributor, please email hello@zama.ai. ``` -You should rebase on top of `main` branch before you create your pull request. This is to avoid merge commits and have a clean git log. After you commit your changes to your new branch, you can use the following commands to rebase. +You should rebase on top of `main` branch before you create your pull request. We don't allow merge commits so rebasing on `main` before pushing gives you the best chance of avoiding having to rewrite parts of your PR later if some conflicts arise with other PRs being merged. After you commit your changes to your new branch, you can use the following commands to rebase: ```shell # fetch the list of active remote branches @@ -107,6 +96,10 @@ git checkout $YOUR_BRANCH # rebase on top of main branch git rebase main +# If there are conflicts during the rebase, resolve them +# and continue the rebase with the following command +git rebase --continue + # push the latest version of the local branch to remote git push --force ```