From e83cc32b14eae101920f6f99026f529fb01d27e8 Mon Sep 17 00:00:00 2001 From: Philip Searle Date: Sat, 13 Nov 2010 23:52:13 +0000 Subject: [PATCH] Add palette and odd-sized PNG unit tests. Fix loading interlaced PNGs < 8x8 in size. --- basis/images/png/png-tests.factor | 44 ++++++++++++++++++++++++++ basis/images/png/png.factor | 29 ++++++++++++----- extra/images/testing/png/basi3p01.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basi3p01.png | Bin 0 -> 132 bytes extra/images/testing/png/basi3p02.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basi3p02.png | Bin 0 -> 193 bytes extra/images/testing/png/basi3p04.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basi3p04.png | Bin 0 -> 327 bytes extra/images/testing/png/basi3p08.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basi3p08.png | Bin 0 -> 1527 bytes extra/images/testing/png/basn3p01.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basn3p01.png | Bin 0 -> 112 bytes extra/images/testing/png/basn3p02.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basn3p02.png | Bin 0 -> 146 bytes extra/images/testing/png/basn3p04.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basn3p04.png | Bin 0 -> 216 bytes extra/images/testing/png/basn3p08.fig | Bin 0 -> 3131 bytes extra/images/testing/png/basn3p08.png | Bin 0 -> 1286 bytes extra/images/testing/png/s01i3p01.fig | Bin 0 -> 60 bytes extra/images/testing/png/s01i3p01.png | Bin 0 -> 113 bytes extra/images/testing/png/s01n3p01.fig | Bin 0 -> 60 bytes extra/images/testing/png/s01n3p01.png | Bin 0 -> 113 bytes extra/images/testing/png/s02i3p01.fig | Bin 0 -> 69 bytes extra/images/testing/png/s02i3p01.png | Bin 0 -> 114 bytes extra/images/testing/png/s02n3p01.fig | Bin 0 -> 69 bytes extra/images/testing/png/s02n3p01.png | Bin 0 -> 115 bytes extra/images/testing/png/s03i3p01.fig | Bin 0 -> 84 bytes extra/images/testing/png/s03i3p01.png | Bin 0 -> 118 bytes extra/images/testing/png/s03n3p01.fig | Bin 0 -> 84 bytes extra/images/testing/png/s03n3p01.png | Bin 0 -> 120 bytes extra/images/testing/png/s04i3p01.fig | Bin 0 -> 105 bytes extra/images/testing/png/s04i3p01.png | Bin 0 -> 126 bytes extra/images/testing/png/s04n3p01.fig | Bin 0 -> 105 bytes extra/images/testing/png/s04n3p01.png | Bin 0 -> 121 bytes extra/images/testing/png/s05i3p02.fig | Bin 0 -> 132 bytes extra/images/testing/png/s05i3p02.png | Bin 0 -> 134 bytes extra/images/testing/png/s05n3p02.fig | Bin 0 -> 132 bytes extra/images/testing/png/s05n3p02.png | Bin 0 -> 129 bytes extra/images/testing/png/s06i3p02.fig | Bin 0 -> 165 bytes extra/images/testing/png/s06i3p02.png | Bin 0 -> 143 bytes extra/images/testing/png/s06n3p02.fig | Bin 0 -> 165 bytes extra/images/testing/png/s06n3p02.png | Bin 0 -> 131 bytes extra/images/testing/png/s07i3p02.fig | Bin 0 -> 205 bytes extra/images/testing/png/s07i3p02.png | Bin 0 -> 149 bytes extra/images/testing/png/s07n3p02.fig | Bin 0 -> 205 bytes extra/images/testing/png/s07n3p02.png | Bin 0 -> 138 bytes extra/images/testing/png/s08i3p02.fig | Bin 0 -> 250 bytes extra/images/testing/png/s08i3p02.png | Bin 0 -> 149 bytes extra/images/testing/png/s08n3p02.fig | Bin 0 -> 250 bytes extra/images/testing/png/s08n3p02.png | Bin 0 -> 139 bytes extra/images/testing/png/s09i3p02.fig | Bin 0 -> 301 bytes extra/images/testing/png/s09i3p02.png | Bin 0 -> 147 bytes extra/images/testing/png/s09n3p02.fig | Bin 0 -> 301 bytes extra/images/testing/png/s09n3p02.png | Bin 0 -> 143 bytes extra/images/testing/png/s32i3p04.fig | Bin 0 -> 3131 bytes extra/images/testing/png/s32i3p04.png | Bin 0 -> 355 bytes extra/images/testing/png/s32n3p04.fig | Bin 0 -> 3131 bytes extra/images/testing/png/s32n3p04.png | Bin 0 -> 263 bytes extra/images/testing/png/s33i3p04.fig | Bin 0 -> 3326 bytes extra/images/testing/png/s33i3p04.png | Bin 0 -> 385 bytes extra/images/testing/png/s33n3p04.fig | Bin 0 -> 3326 bytes extra/images/testing/png/s33n3p04.png | Bin 0 -> 329 bytes extra/images/testing/png/s34i3p04.fig | Bin 0 -> 3527 bytes extra/images/testing/png/s34i3p04.png | Bin 0 -> 349 bytes extra/images/testing/png/s34n3p04.fig | Bin 0 -> 3527 bytes extra/images/testing/png/s34n3p04.png | Bin 0 -> 248 bytes extra/images/testing/png/s35i3p04.fig | Bin 0 -> 3734 bytes extra/images/testing/png/s35i3p04.png | Bin 0 -> 399 bytes extra/images/testing/png/s35n3p04.fig | Bin 0 -> 3734 bytes extra/images/testing/png/s35n3p04.png | Bin 0 -> 338 bytes extra/images/testing/png/s36i3p04.fig | Bin 0 -> 3947 bytes extra/images/testing/png/s36i3p04.png | Bin 0 -> 356 bytes extra/images/testing/png/s36n3p04.fig | Bin 0 -> 3947 bytes extra/images/testing/png/s36n3p04.png | Bin 0 -> 258 bytes extra/images/testing/png/s37i3p04.fig | Bin 0 -> 4166 bytes extra/images/testing/png/s37i3p04.png | Bin 0 -> 393 bytes extra/images/testing/png/s37n3p04.fig | Bin 0 -> 4166 bytes extra/images/testing/png/s37n3p04.png | Bin 0 -> 336 bytes extra/images/testing/png/s38i3p04.fig | Bin 0 -> 4391 bytes extra/images/testing/png/s38i3p04.png | Bin 0 -> 357 bytes extra/images/testing/png/s38n3p04.fig | Bin 0 -> 4391 bytes extra/images/testing/png/s38n3p04.png | Bin 0 -> 245 bytes extra/images/testing/png/s39i3p04.fig | Bin 0 -> 4622 bytes extra/images/testing/png/s39i3p04.png | Bin 0 -> 420 bytes extra/images/testing/png/s39n3p04.fig | Bin 0 -> 4622 bytes extra/images/testing/png/s39n3p04.png | Bin 0 -> 352 bytes extra/images/testing/png/s40i3p04.fig | Bin 0 -> 4859 bytes extra/images/testing/png/s40i3p04.png | Bin 0 -> 357 bytes extra/images/testing/png/s40n3p04.fig | Bin 0 -> 4859 bytes extra/images/testing/png/s40n3p04.png | Bin 0 -> 256 bytes 90 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 extra/images/testing/png/basi3p01.fig create mode 100644 extra/images/testing/png/basi3p01.png create mode 100644 extra/images/testing/png/basi3p02.fig create mode 100644 extra/images/testing/png/basi3p02.png create mode 100644 extra/images/testing/png/basi3p04.fig create mode 100644 extra/images/testing/png/basi3p04.png create mode 100644 extra/images/testing/png/basi3p08.fig create mode 100644 extra/images/testing/png/basi3p08.png create mode 100644 extra/images/testing/png/basn3p01.fig create mode 100644 extra/images/testing/png/basn3p01.png create mode 100644 extra/images/testing/png/basn3p02.fig create mode 100644 extra/images/testing/png/basn3p02.png create mode 100644 extra/images/testing/png/basn3p04.fig create mode 100644 extra/images/testing/png/basn3p04.png create mode 100644 extra/images/testing/png/basn3p08.fig create mode 100644 extra/images/testing/png/basn3p08.png create mode 100644 extra/images/testing/png/s01i3p01.fig create mode 100644 extra/images/testing/png/s01i3p01.png create mode 100644 extra/images/testing/png/s01n3p01.fig create mode 100644 extra/images/testing/png/s01n3p01.png create mode 100644 extra/images/testing/png/s02i3p01.fig create mode 100644 extra/images/testing/png/s02i3p01.png create mode 100644 extra/images/testing/png/s02n3p01.fig create mode 100644 extra/images/testing/png/s02n3p01.png create mode 100644 extra/images/testing/png/s03i3p01.fig create mode 100644 extra/images/testing/png/s03i3p01.png create mode 100644 extra/images/testing/png/s03n3p01.fig create mode 100644 extra/images/testing/png/s03n3p01.png create mode 100644 extra/images/testing/png/s04i3p01.fig create mode 100644 extra/images/testing/png/s04i3p01.png create mode 100644 extra/images/testing/png/s04n3p01.fig create mode 100644 extra/images/testing/png/s04n3p01.png create mode 100644 extra/images/testing/png/s05i3p02.fig create mode 100644 extra/images/testing/png/s05i3p02.png create mode 100644 extra/images/testing/png/s05n3p02.fig create mode 100644 extra/images/testing/png/s05n3p02.png create mode 100644 extra/images/testing/png/s06i3p02.fig create mode 100644 extra/images/testing/png/s06i3p02.png create mode 100644 extra/images/testing/png/s06n3p02.fig create mode 100644 extra/images/testing/png/s06n3p02.png create mode 100644 extra/images/testing/png/s07i3p02.fig create mode 100644 extra/images/testing/png/s07i3p02.png create mode 100644 extra/images/testing/png/s07n3p02.fig create mode 100644 extra/images/testing/png/s07n3p02.png create mode 100644 extra/images/testing/png/s08i3p02.fig create mode 100644 extra/images/testing/png/s08i3p02.png create mode 100644 extra/images/testing/png/s08n3p02.fig create mode 100644 extra/images/testing/png/s08n3p02.png create mode 100644 extra/images/testing/png/s09i3p02.fig create mode 100644 extra/images/testing/png/s09i3p02.png create mode 100644 extra/images/testing/png/s09n3p02.fig create mode 100644 extra/images/testing/png/s09n3p02.png create mode 100644 extra/images/testing/png/s32i3p04.fig create mode 100644 extra/images/testing/png/s32i3p04.png create mode 100644 extra/images/testing/png/s32n3p04.fig create mode 100644 extra/images/testing/png/s32n3p04.png create mode 100644 extra/images/testing/png/s33i3p04.fig create mode 100644 extra/images/testing/png/s33i3p04.png create mode 100644 extra/images/testing/png/s33n3p04.fig create mode 100644 extra/images/testing/png/s33n3p04.png create mode 100644 extra/images/testing/png/s34i3p04.fig create mode 100644 extra/images/testing/png/s34i3p04.png create mode 100644 extra/images/testing/png/s34n3p04.fig create mode 100644 extra/images/testing/png/s34n3p04.png create mode 100644 extra/images/testing/png/s35i3p04.fig create mode 100644 extra/images/testing/png/s35i3p04.png create mode 100644 extra/images/testing/png/s35n3p04.fig create mode 100644 extra/images/testing/png/s35n3p04.png create mode 100644 extra/images/testing/png/s36i3p04.fig create mode 100644 extra/images/testing/png/s36i3p04.png create mode 100644 extra/images/testing/png/s36n3p04.fig create mode 100644 extra/images/testing/png/s36n3p04.png create mode 100644 extra/images/testing/png/s37i3p04.fig create mode 100644 extra/images/testing/png/s37i3p04.png create mode 100644 extra/images/testing/png/s37n3p04.fig create mode 100644 extra/images/testing/png/s37n3p04.png create mode 100644 extra/images/testing/png/s38i3p04.fig create mode 100644 extra/images/testing/png/s38i3p04.png create mode 100644 extra/images/testing/png/s38n3p04.fig create mode 100644 extra/images/testing/png/s38n3p04.png create mode 100644 extra/images/testing/png/s39i3p04.fig create mode 100644 extra/images/testing/png/s39i3p04.png create mode 100644 extra/images/testing/png/s39n3p04.fig create mode 100644 extra/images/testing/png/s39n3p04.png create mode 100644 extra/images/testing/png/s40i3p04.fig create mode 100644 extra/images/testing/png/s40i3p04.png create mode 100644 extra/images/testing/png/s40n3p04.fig create mode 100644 extra/images/testing/png/s40n3p04.png diff --git a/basis/images/png/png-tests.factor b/basis/images/png/png-tests.factor index 7edb8d753e..6e02c3311d 100644 --- a/basis/images/png/png-tests.factor +++ b/basis/images/png/png-tests.factor @@ -13,18 +13,62 @@ IN: images.png.tests "basi0g08.png" decode-test "basi0g16.png" decode-test "basi2c08.png" decode-test + "basi3p01.png" decode-test + "basi3p02.png" decode-test + "basi3p04.png" decode-test + "basi3p08.png" decode-test "basn0g01.png" decode-test "basn0g02.png" decode-test "basn0g04.png" decode-test "basn0g08.png" decode-test "basn0g16.png" decode-test "basn2c08.png" decode-test + "basn3p01.png" decode-test + "basn3p02.png" decode-test + "basn3p04.png" decode-test + "basn3p08.png" decode-test "basn6a08.png" decode-test "f00n2c08.png" decode-test "f01n2c08.png" decode-test "f02n2c08.png" decode-test "f03n2c08.png" decode-test "f04n2c08.png" decode-test + "s01i3p01.png" decode-test + "s01n3p01.png" decode-test + "s02i3p01.png" decode-test + "s02n3p01.png" decode-test + "s03i3p01.png" decode-test + "s03n3p01.png" decode-test + "s04i3p01.png" decode-test + "s04n3p01.png" decode-test + "s05i3p02.png" decode-test + "s05n3p02.png" decode-test + "s06i3p02.png" decode-test + "s06n3p02.png" decode-test + "s07i3p02.png" decode-test + "s07n3p02.png" decode-test + "s08i3p02.png" decode-test + "s08n3p02.png" decode-test + "s09i3p02.png" decode-test + "s32n3p04.png" decode-test + "s32i3p04.png" decode-test + "s33n3p04.png" decode-test + "s33i3p04.png" decode-test + "s34n3p04.png" decode-test + "s34i3p04.png" decode-test + "s35n3p04.png" decode-test + "s35i3p04.png" decode-test + "s36n3p04.png" decode-test + "s36i3p04.png" decode-test + "s37n3p04.png" decode-test + "s37i3p04.png" decode-test + "s38n3p04.png" decode-test + "s38i3p04.png" decode-test + "s39n3p04.png" decode-test + "s39i3p04.png" decode-test + "s40n3p04.png" decode-test + "s40i3p04.png" decode-test + "s07n3p02.png" decode-test "z00n2c08.png" decode-test "z03n2c08.png" decode-test "z06n2c08.png" decode-test diff --git a/basis/images/png/png.factor b/basis/images/png/png.factor index 2a77d13068..0b18b01a45 100644 --- a/basis/images/png/png.factor +++ b/basis/images/png/png.factor @@ -170,22 +170,35 @@ ERROR: bad-filter n ; byte-array bs: :> bs loading-png width>> :> width loading-png height>> :> height - bs loading-png width height read-scanlines ; -: adam7-subimage-height ( png-height pass -- subimage-height ) - [ starting-row nth + ] keep - row-increment nth /i ; +:: adam7-subimage-height ( png-height pass -- subimage-height ) + pass starting-row nth png-height >= [ + 0 + ] [ + png-height 1 - + pass block-height nth + + pass row-increment nth /i + ] if ; -: adam7-subimage-width ( png-width pass -- subimage-width ) - [ starting-col nth + ] keep - col-increment nth /i ; +:: adam7-subimage-width ( png-width pass -- subimage-width ) + pass starting-col nth png-width >= [ + 0 + ] [ + png-width 1 - + pass block-width nth + + pass col-increment nth /i + ] if ; :: read-adam7-subimage ( bit-reader loading-png pass -- lines ) loading-png height>> pass adam7-subimage-height :> height loading-png width>> pass adam7-subimage-width :> width - bit-reader loading-png width height read-scanlines ; + height width * zero? [ + B{ } clone + ] [ + bit-reader loading-png width height read-scanlines + ] if ; :: reverse-interlace-adam7 ( byte-array loading-png -- byte-array ) byte-array bs: :> bs diff --git a/extra/images/testing/png/basi3p01.fig b/extra/images/testing/png/basi3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..7437629ad1bff0606dfded4e56b30f29b288d3c1 GIT binary patch literal 3131 zcmWG3FK*4uO-xTMZi7&Xt%*$q3knvL7dHpFJLNZ)7f&cnsw_#>P0r6P$j?j7D=E%z z%yVSoVR-jn367M~{=*Sm5XgWF0vV&?kkFu3IE;oZBqRqa9H+e2M{-<@WWOV)z<~;f!Qh60^7~-0cQCkNB&PuYKEy>-dBi{f3 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/basi3p02.fig b/extra/images/testing/png/basi3p02.fig new file mode 100644 index 0000000000000000000000000000000000000000..c373d6159c5fb82bc560fa0904a45946b0d9116b GIT binary patch literal 3131 zcmWG3FK*4uO-xTMZi7&Xt%*$q3knvL7dHpFJLNZ)7f&cnsw_#>P0r6P$j?j7D=E%z z%yVSoVPIhR4@U?VQ0PAbAt@PE4+{)xg%5I|!^{Q;KMDsP9Y~_1aRCbq3gQADus{aP zI4}c=gCawLT}Vcb#vMvvKtp&mY#{-G6gIR@d&r5N)^?4W4=HVsq8B;%N6Q3Qz|gTA d7%l&yfes6MV2Y$`K1I#}bc}Z-?~dqv2LOTl6J-DZ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/basi3p02.png b/extra/images/testing/png/basi3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..bb16b44b30907b832b678a3b441278df340edb9f GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH%)r1{DZJ<-ki(Mh=EaktF(C3l8oA>Me*wxTz-(}y$c;d$?hLjJF#hg79QUtv`g1+0Ah)O6+%y3%0 kK!=4{>!bX^1(PfpwnWvwlrMbmdKI;Vst08#Hgh5!Hn literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/basi3p04.fig b/extra/images/testing/png/basi3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..28523ff6f12f3f8e98073ab84ef77b157d4c21fd GIT binary patch literal 3131 zcmeH}Jqp4=5QPV8Pm$h3D1yCsfhbWd@&g+QmMV&+tzGVsv*aw}giT(iSqNwfVc~;) z)hoUkhTRnAevHFIWFGbj@8LBov$8O^^=gq`3iCQ`&v`W4rE!)fQIebVlFTPlVp8mh zK}FnAGl7B$1WbTymi5c_*_5Hne{mL@pvm1~Z=lc@r}-Vjx#Hz$e62iQzxP|Nk8f|CRnTFwFe_KaJro!~b%i7*N6gnRh{q-T!wp zFt`9&E|)fV?gff(^K@|xshE@eVr8<$zX=QdragS9+NR;%b~IQ*M^<9l2E!vd+h?C( zII@q&;mi?+BR6^0F7JwWQfc53?9iD|$he5*L_qV3*BrK+SKaw>*N06*_XNYzScwH+ zV%a3lGAx}cv7khXdCI+B1NO@fK9ddC9@xTtImqX>;oQaofA@?RGmTe=O`R?+y}#PL zSZx`DR(OCwFvHZ>kD4?aPVKE04`%2+-2h~U1|1S{c)Dz9BG-bV^7qFC7#KE}y~^Mz Rxc~|Y22WQ%mvv4FO#pr5f6M>? literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/basi3p08.fig b/extra/images/testing/png/basi3p08.fig new file mode 100644 index 0000000000000000000000000000000000000000..5c1b5d70960fbbc6535549735f9c798af25d9594 GIT binary patch literal 3131 zcmY+6F^JY!6opTwlx<>ZnNqMZo!t(B1xwvjR^u>{WpHNTcL`$U4objg!7A8TSOrU~ zU}+ai%aoR;v^2*H;of%wAH2&s-+6zxhgbhRJ$Z6=c)dL*uTK8EdVlr4JzPKd>-h3z zd-(s~$IqXg-8sE{dUbhmcJb_R`SRk=qd$;AI6@X=$eg1Lf!MZm!wxAV&2k`d19^}m zcW&ee#I~gyc1R& zK%zhuRH&SyLLjy+-LOLnNvj%2+(sSLsGZw20H;|_t?wsgY|DJ1QBAaNgk(4%+m z_Xxzcr5kogA!$DViH8`10fX~!Kp?g)-LOLnNrw?gJi-`^7@bEW0M(3JYAhs>tutN$-$vjWI$r&)WZsQH} zKx|vOvHwO=vM3U73kEE#+jz?&5Zjh+?7xweEX%~Zk^xKWHr}xe#I~gy`)?#At19uK zV!+C}jSs8>v2E$b{u@cjx=wto8L+l)<0I=pY+Jgq|3*@>X%e3r25hX`_{1g<+m>$Z zzmb$|+r;OV0bA=fKC=zPwxt{UZzLtVF7c&fz|OjjFYE%bZRy7T8%fE&Pkikeu(xjG zEBiofTe`9TMpAMZ65j>}9IV^;#vu^fmTv67k(3o&e~3dFXh8~bl0CFeQuV`jkFx{V*41F>!C#{L^g$z@6WTo`b%ZsRAHKx|vO dvHwO=a$OU@Rt8+H+xW#b5Zjh+?7xwezX51*5VQaQ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/basi3p08.png b/extra/images/testing/png/basi3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..50a6d1cac7a111d53cd3aec0d35dc4d09311baab GIT binary patch literal 1527 zcmWkt4Nw$y6n}dd;vwQ8DFIG$3@GI2c^hLQV*{=V2t>jrDk_FvDg&7$%b-@G;h|=k zpdN>Gek8Jdh#y$4REHQNu9O-n$@*~yld0Q~CgKPCdUtQ`_P_uC|GnSGdsmv8GRH?B zs0RR_gm`WqJ;%AfULF7pdq_&9mmwd-CdUF(;+S%8&r$#nNKHzgW#r%qssai!qCpSQ z0vL_7LIcnOu#UGNg#{Tj`hkLY32hvQ!1G1`Sw@Zn9(h>?HW2Wkq9XR7jEce`M@cLI zX9QKH0)U4(L{U}UX&T}n(htKT%SQskpw)^XiVOoBfYl1vBTI|Gh(?PU5N)D}JkUAF z*+A4fQ52$qu$3IJkUnIraqtk890gF3fMr1iHJ=i#wnVy*0swAiP?EIuK(HVK+H9oK zO8az3*a`*`R}fi5uu;&5F%xGAi8P7`R6^54fJ7UmSdgp%+jcbYbn0eLh5#4{O2a|z zFlncK3j#}*c@!wwN`=4x0@Wv9Pz46?iR#Xv1EQkRnl2%Lup5n_C@hN_Xp)3BL=u!O zgCs#6RU@v*uGicWd7h||*~k+*SQG^)HX|blsFAzW2%aZ!O(VrJ31D;t3x3pAg5Wqi zve-$Qc$9#ED~5p_E`A&DTySs_gXBPgvEi4GHiIsCXqG@a(*{? zqG+gzY2=omW89DcEUHMQNrOtO^VViET%@j9XuK5ipN55EJB^!6bHJ02)DH{^ z28HH;T8~zS28YEnJAZp0KzA^Ki%l=ATyc3-rZ)t5_Dwa^e3e*sHMuT3A|j#p=*X*F z#y0Vd=-McX6_VY&k>*>Z%e|vX1^&KXtnjHm_kp z{Oz$(O(8S=UuD^|XKQO8JeWScy}iAy&FQ@UT~n0V9QLiaO{Ytot3K50Bj4!g*tp@* zcGj*hPH>pOmLs;xabA)>UnI5F|W2|vHO`X8G8{qNq5UvQ>+yva2AorH*qN%N=1 zRO-F+*Y4O692_0}_3qrW zV_8*GU40<7^H$aV#hJ=gqrL3swI3}rKihD;tJ~gc@LGOoZ}}hHIjh6Ni;61tbzVDC zEf)+M(cfo^N={x^khe0+l%Bp^o)#S#*w$83a{u1Ivl?+Wcj0ty-sn>0W|&`1nH z58GA$jXh^Y`JN;7H@hZGKGv`#E%e2gv6o*jI5)Y=Gw4px%OQatp)Q!Xsl()5;fH&w40HKUbx zj4}D7oEu&UXI&wcy60YxT`|F*cQ@)MIhQzY_v!Om7VgvKXAK=bq{#ES%PVuszm5L= z&bJ*WO#!E!Apy*TI{`1@hW^84hM29NG>%Pa9pm_Xjc<61X<)<)m$})aVkqnKe7Wgq z-P0r6P$j?j7D=E%z z%yVSoVR-jn367M~{=*Sm5XgWF0vV&?kkFu3IE;oZBqRqa9H+e2M{-<@WWOV)z<~;f!Qh60^7~-0cQCkNB&PuYKEyXI5zMAXy8F{ENn@&k4zHj_up0tP0r6P$j?j7D=E%z z%yVSoVPIhR4@U?VQ0PAbAt@PE4+{)xg%5I|!^{Q;KMDsP9Y~_1aRCbq3gQADus{aP zI4}c=gCawLT}Vcb#vMvvKtp&mY#{-G6gIR@d&r5N)^?4W4=HVsq8B;%N6Q3Qz|gTA d7%l&yfes6MV2Y$`K1I#}bc}Z-?~dqv2LOTl6J-DZ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/basn3p02.png b/extra/images/testing/png/basn3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..8985b3d818e391502c4d05b93db26b046bc57bd9 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@mUKs7M+U~W1%@xC#RK`w#ZI0f zjEsymdgV<(E>D0@h%3W?AY}Lt#0>va?X`CSX(dk=$B>FS$v@ymi5c_*_5Hne{mL@pvm1~Z=lc@r}-Vz>816FsF9(VN75txh7sS~8e>Vez z3y|eZnNqMZo!t(B1xwvjR^u>{WpHNTcL`$U4objg!7A8TSOrU~ zU}+ai%aoR;v^2*H;of%wAH2&s-+6zxhgbhRJ$Z6=c)dL*uTK8EdVlr4JzPKd>-h3z zd-(s~$IqXg-8sE{dUbhmcJb_R`SRk=qd$;AI6@X=$eg1Lf!MZm!wxAV&2k`d19^}m zcW&ee#I~gyc1R& zK%zhuRH&SyLLjy+-LOLnNvj%2+(sSLsGZw20H;|_t?wsgY|DJ1QBAaNgk(4%+m z_Xxzcr5kogA!$DViH8`10fX~!Kp?g)-LOLnNrw?gJi-`^7@bEW0M(3JYAhs>tutN$-$vjWI$r&)WZsQH} zKx|vOvHwO=vM3U73kEE#+jz?&5Zjh+?7xweEX%~Zk^xKWHr}xe#I~gy`)?#At19uK zV!+C}jSs8>v2E$b{u@cjx=wto8L+l)<0I=pY+Jgq|3*@>X%e3r25hX`_{1g<+m>$Z zzmb$|+r;OV0bA=fKC=zPwxt{UZzLtVF7c&fz|OjjFYE%bZRy7T8%fE&Pkikeu(xjG zEBiofTe`9TMpAMZ65j>}9IV^;#vu^fmTv67k(3o&e~3dFXh8~bl0CFeQuV`jkFx{V*41F>!C#{L^g$z@6WTo`b%ZsRAHKx|vO dvHwO=a$OU@Rt8+H+xW#b5Zjh+?7xwezX51*5VQaQ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/basn3p08.png b/extra/images/testing/png/basn3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..0ddad07e5f5de86a61bf43d8b89e138d7f1ea8ad GIT binary patch literal 1286 zcmWks4NMkw7=KO>3}y1F=z>r=LEEca@LnZf*~BA0ROZ5~$d#4)lIa>n+tGAx#s~NCh;!h=Q?&7t5~~Lk>mL*|1x+L`Ivp6mn?kJ^kK$c6a~%|NrOteLPR)ru^*4 zh?oc>ipx)wHw!xP<||VqG2mh2yNQ1IZKr30Xr(I7PBXU z(o_;ftk^?X5O*qmM)+A^aUR*s!>r3PlcI=3mc_D63M-aHQVj83+hHDKi)~wG8A%eb zMRFVzAa0kL4aW(lxy(-(A3@r7{KRdCcI^9^ zBwSWlMY4uMp(p@%T`0C7K$rnonuoRmLY9xP#5bTx(RKJi zCYfG^*s^*-{Ro^e4Kgw{Dlmv)JpjQ5bKwF@CLI|%59=nhA>e#HJh5GNjRLr(&Jco- zL=roU($L^w70~)&xPh+uFV&-K!K0w3W-9Hy@g@HWXL3ML4|%5ULen8 zlT@|D2@;VI*iada4446_ptp_#Sul*Cx7Y6>PlSiq8TyN-q=y}cXZX&@20)p=ihIP{CfA$Z*4W@ zEr$zzJ<~t_(0G1&!T9U{_Iz>DPFy@Dgq4(i*+1}U*ZiG1m)32#<4sRFJ5!AP>yZ}L zzdq~5lB&|C6*=qgy?nj!is#SN$*Gwo6M?qJgKJtd1_tvb_xS3qJuRh&eH)f1f0J@< z)4uq(Z_li{H~+s=+3L-xjU7X)ZvEUC-CLA+t^7d7$jI)tsK~;c&XdnBOC5Txp}1)@ zusm-vWl2G`{dnN}K>pDE=;yi{rVB@Y3B-HrtGOePxNz#}j}FD`z3|nlwikX+ZZ56= zAY&lKTUG9w&2^VN89D}o5=^>%~&6ID5>`0fk%7K&zZcY&F#znJTW|E zB5&cFwM~ly35&;HdZq5*>W9rM<&V4Wr%mNt{B`@CxYpR8I;^7!?Tc=wu6t&Du2Ec< zKIiz-xXN3dttqGahAW20Qo6MzgSk7e_{!(?CKyw`*?j|NY=7wG%F`JaWZ(VOm8CUr z$$no_)1uMK%W6)nN!IrL6EB>puUj#i+1xg}<&qUPnY6#j4&NW^MpZNn{t+Cq+^l@L JEAySt{s-!kV`~5a literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s01i3p01.fig b/extra/images/testing/png/s01i3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..87093122f8cab551dbaaf52a73841d1bd4f9ce60 GIT binary patch literal 60 zcmWG3FK*4uO-xTMZi7&Xt%*$qjRlS6#mzzPPWeE3LTOTENvdvger`d2UTR)RaeiZ- JV>1K8e*g{!8BhQK literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s01i3p01.png b/extra/images/testing/png/s01i3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..6c0fad1fc982e54aea994e12efd3fe3584cabdbc GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?zc?q{RR^Ea{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y0;s*GHxH2&O@2a>I4&-uqx;TbZ%t=lFvY8kdJ=QNN1hN=BUHx3vIVCg! E01FBk(f|Me literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s01n3p01.fig b/extra/images/testing/png/s01n3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..87093122f8cab551dbaaf52a73841d1bd4f9ce60 GIT binary patch literal 60 zcmWG3FK*4uO-xTMZi7&Xt%*$qjRlS6#mzzPPWeE3LTOTENvdvger`d2UTR)RaeiZ- JV>1K8e*g{!8BhQK literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s01n3p01.png b/extra/images/testing/png/s01n3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2c8c78261e509e7ef2c352306618963954a84a GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y0;s*GHxH2&O@2a>I4&-uqx;TbZ%t=lFvY8kdJ=QNN1hN=BUHx3vIVCg! E02xdg0RR91 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s02i3p01.fig b/extra/images/testing/png/s02i3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..b0ab738fa9852869b31b053d34078a06b98093af GIT binary patch literal 69 zcmWG3FK*4uO-xTMZi7&Xt%*$qKv-Vf9OUkl-&kHep){$oBvm&#Ker%1FEy{EIKMH^ Lv4`RRe>egF7?2=T literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s02i3p01.png b/extra/images/testing/png/s02i3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..2defaed911a29507f745bd7183a9819b29cc53de GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^Od!n2%)r2CU%&n%ki(Mh=)Kx2KC^NX4Aw1O`S11~vx9e?93ZfWi!(u6{1- HoD!M4t literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s02n3p01.fig b/extra/images/testing/png/s02n3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..b0ab738fa9852869b31b053d34078a06b98093af GIT binary patch literal 69 zcmWG3FK*4uO-xTMZi7&Xt%*$qKv-Vf9OUkl-&kHep){$oBvm&#Ker%1FEy{EIKMH^ Lv4`RRe>egF7?2=T literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s02n3p01.png b/extra/images/testing/png/s02n3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..2b1b669643540f182c425fb67869b7f97fe75f10 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^Od!n23?w}&=BEQGmUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFgaRYopTp9lVmyFR@1#)>jT^vIy<|HR1Bmj9V42<8zEkc1T22WQ%mvv4F FO#mnG8JGY7 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s03i3p01.fig b/extra/images/testing/png/s03i3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..3c603e5a8c99c505419de7b4149af00980161b0c GIT binary patch literal 84 zcmWG3FK*4uO-xTMZi7&Xt%*$q%>~Wn#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv S^BiY0{AYlp|K$iaP!Is!R3X~{ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s03i3p01.png b/extra/images/testing/png/s03i3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..c23fdc463170faf97e53fccb4799386700b21a15 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^%plANBpIb2ie~{iEa{HEjtq=#3k+XOiw8*-J9&n% zu&|W>*t!_VWee~Lab@_=@V}g49;WoqQ$(6ld^s L^>bP0l+XkKxV;@Z literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s03n3p01.fig b/extra/images/testing/png/s03n3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..3c603e5a8c99c505419de7b4149af00980161b0c GIT binary patch literal 84 zcmWG3FK*4uO-xTMZi7&Xt%*$q%>~Wn#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv S^BiY0{AYlp|K$iaP!Is!R3X~{ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s03n3p01.png b/extra/images/testing/png/s03n3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..6d96ee4f873baf1df3652a8d70994eeea799c30b GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^%plANB6FUp{{d1g>5jgR42*3H3|~x(2T2w?d4{mC zu$2GUx){i13-AeXW%$qVzno#?)1~u)B7B}Mjv*Cuk`odN5)y#?V+@X#hCJRt7K5j& KpUXO@geCw&86D36 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s04i3p01.fig b/extra/images/testing/png/s04i3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..1b60721cdf80c15ac1693068ec59b5b2613a81ea GIT binary patch literal 105 zcmWG3FK*4uO-xTMZi7&Xt%*$qEd?#*#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv X^Bgz)|IdJe7|Q&U>^w!rYkw0Iz&x!B1w zgoTBr{KwYCKrUN=Pl)S(hVuXa8D@QV-U$>D@pN$vshE?Tk-%_}nTL-@Si+8hL2?}n Uzopr0P-Lp3;+NC literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s04n3p01.fig b/extra/images/testing/png/s04n3p01.fig new file mode 100644 index 0000000000000000000000000000000000000000..1b60721cdf80c15ac1693068ec59b5b2613a81ea GIT binary patch literal 105 zcmWG3FK*4uO-xTMZi7&Xt%*$qEd?#*#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv X^Bgz)|IdJe7|Q5jgR42*3H3|~x(2lAPVojgNW zSXjz`Y+VfGvIY2rxc+A-|Noz1)_3QfKoNdV7srr_Imtf`7%+0!GcfRQFf%r7-v+XT N!PC{xWt~$(695jV9kT!c literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s05i3p02.fig b/extra/images/testing/png/s05i3p02.fig new file mode 100644 index 0000000000000000000000000000000000000000..846b376500c8e9a2283a025a635587df3c294839 GIT binary patch literal 132 zcmWG3FK*4uO-xTMZi7&Xt%*$qtp%;+#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv e^BhnAXJ9}>$a(>7VKzSi literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s05i3p02.png b/extra/images/testing/png/s05i3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..d14cbd351ac11022eefcfa3bb2af528c3aadae41 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$9%)r3d&i3yCki(Mh=$a(>7VKzSi literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s05n3p02.png b/extra/images/testing/png/s05n3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..bf940f057678363347961bbc920a0603b500d70d GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$93?x4=o+|@VEa{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y0{5kwZm{m%eG;@706qLxAOHXW literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s06i3p02.png b/extra/images/testing/png/s06i3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..456ada3200643ae917af3ea3f9fa0df7471c0660 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^Y#_|U%)r3-YN@#|ki(Mh=b^8f!C{x5dr%K!>0dAc};RLn`vNXST-!El6+N0&!i n!bU<#VwswOk4HkpRtAR1{5kwZm{m%eG;@706qLxAOHXW literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s06n3p02.png b/extra/images/testing/png/s06n3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..501064dc25cffaa03049daa6a4295d31d2820e2c GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^Y#_|U3?%0+V!sWfSkfJR9T^zg78t&m77yez7dv@| zu&}U{|Jb@1$mI<132|lk&%jXr|3Ab3#jboAKtVB27srr_Imr=Q8xpga4zn0A8HMRG ZFj$^vi`OjpdkUz6!PC{xWt~$(69AfyA}jy^ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s07i3p02.fig b/extra/images/testing/png/s07i3p02.fig new file mode 100644 index 0000000000000000000000000000000000000000..1fe13195fca80d47d2e490af8120c02b4dc3ccdd GIT binary patch literal 205 zcmWG3FK*4uO-xTMZi7&Xt%*$q?FH@S#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv t^Bfr`Gcf$ej{cW3AR~yf|K>$j<%)r2S&bt2^ki(Mh==jv*Cuk}VDtG(2QH%-+V! svtII_@t;Hw#zXcz;mHztXBa0j9DK~v7~1r+6R3f~)78&qol`;+01$C3h5!Hn literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s07n3p02.fig b/extra/images/testing/png/s07n3p02.fig new file mode 100644 index 0000000000000000000000000000000000000000..1fe13195fca80d47d2e490af8120c02b4dc3ccdd GIT binary patch literal 205 zcmWG3FK*4uO-xTMZi7&Xt%*$q?FH@S#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv t^Bfr`Gcf$ej{cW3AR~yf|K>$j<3?z5j>~{cCEa{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y08<>}%WQZXm_$N%<+Sv-f=TJo4b eYw%F`{a>D;u##)1Tx>4LCI(MeKbLh*2~7YjwJ1CQ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s08i3p02.fig b/extra/images/testing/png/s08i3p02.fig new file mode 100644 index 0000000000000000000000000000000000000000..029bfafad74f04ce553187540a34ff62ea322f4e GIT binary patch literal 250 zcmWG3FK*4uO-xTMZi7&Xt%*$q9R(fb#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv y^BfruF#P|I3zh$8Ktm9fK*9eE2n6IJiYTpkktd($OxAUf#LuTM1N@j literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s08i3p02.png b/extra/images/testing/png/s08i3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..acf74f3fc4132609443b0555d56e5b314644bf23 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ%)r2SE-kGO$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vj!0%z$e6&;s5_~hX3XN8U8actlAYR0~A;Fba4!+n3J5qz{IFfcOc>T u0@fwp4bCJ+99*!q$#Hv=YTpkktd($OxAUf#LuTM1N@j literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s08n3p02.png b/extra/images/testing/png/s08n3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..b7094e1b4f19ab9c2022b303bc79e00e986f925d GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^mUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFga(M!LLR=aC|1W3wU;dxrKLf+6U6C?CacNH%$B>FS$q5Mw7orX>_}}cf hovEdPM`3y+BZF-itL;x80b!sr22WQ%mvv4FO#lIoCTIWv literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s09i3p02.fig b/extra/images/testing/png/s09i3p02.fig new file mode 100644 index 0000000000000000000000000000000000000000..b869491c6c316df479da4785316eeebb930baf33 GIT binary patch literal 301 zcmWG3FK*4uO-xTMZi7&Xt%*$qoduoc#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv z^BfsJGyG@3gZ`H@U?PZmkT}DC6jTm13L?c&{vU!sYA~gM_LhUSV@iQFV(P+a7ltG8 I_y{Nk0Hnl-Q2+n{ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s09i3p02.png b/extra/images/testing/png/s09i3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..0bfae8e45678282b23bed2760c0dbbd736be9df8 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4^%)r3->c>4%AcrO0(btiIv2B6ji)rydK69~? zX9x=mOZktji-BC80G|+7hW`u<<^TUP{QqCh@IQEaktF()~}fr+~zg1bjT rBF;F5J&BF&_kSLqX%_`}QkWS^|FgS^^-Kp^#=zj|>gTe~DWM4fSkxz) literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s09n3p02.fig b/extra/images/testing/png/s09n3p02.fig new file mode 100644 index 0000000000000000000000000000000000000000..b869491c6c316df479da4785316eeebb930baf33 GIT binary patch literal 301 zcmWG3FK*4uO-xTMZi7&Xt%*$qoduoc#mzzPPWg@H#S==CDoavzlk;;6^7B&jN{aIv z^BfsJGyG@3gZ`H@U?PZmkT}DC6jTm13L?c&{vU!sYA~gM_LhUSV@iQFV(P+a7ltG8 I_y{Nk0Hnl-Q2+n{ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s09n3p02.png b/extra/images/testing/png/s09n3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..711ab8245189b4d5118b4dcd49ef9771bf924fb8 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4^3?%3Nf7cA8SkfJR9T^zg78t&m77yez7dv@| zu&}U{|Jb@1$mI#}32|lk&%jXr|3Ab3|K$w-!x&P4;_{v@jv*Cuk`ox1e*fp;30o~G lp|iL#LdvQ6heDwO14Cvi>)|ZtdS#$e22WQ%mvv4FO#lN*C*c49 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s32i3p04.fig b/extra/images/testing/png/s32i3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..dc2e1147520eb79933468125b1b8db9242af4eed GIT binary patch literal 3131 zcmeH|Pp-ls5XOmXui_zeE>9^CsP%Ftg==a ztCTg=3OYU<9}~-v&u6q@!USzFt(g8XAK~ai?BA3z0iWQ58W5ArV!MRE~6q$@s|4RlervUJ~%!0-_^f+^8Eo$_x4-rE$d4uMh(IG9Fcuja({9D zzs6@2dT4OIg`ISN7&wGXmm}wHa&sg&Ot`NTj7sqtj!(hFaWNA80i_H_i2ra8el#Ck zb055 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s32i3p04.png b/extra/images/testing/png/s32i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..0841910b72779aa7571cce45e56447eeb3de4520 GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF%)r3-EjT<7$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c5&pba4!+ zm{U7pFJF^^h?~7@-J{?g64%>Ss_=bq+ht{1xSCJrO-tjMmhSi` nkfZu#wXNcYdz+%H|96_V1YK&G^7e=_(2oqBu6{1-oD!ME>9^CsP%Ftg==a ztCTg=3OYU<9}~-v&u6q@!USzFt(g8XAK~ai?BA3z0iWQ58W5ArV!MRE~6q$@s|4RlervUJ~%!0-_^f+^8Eo$_x4-rE$d4uMh(IG9Fcuja({9D zzs6@2dT4OIg`ISN7&wGXmm}wHa&sg&Ot`NTj7sqtj!(hFaWNA80i_H_i2ra8el#Ck zb055 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s32n3p04.png b/extra/images/testing/png/s32n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..fa58e3e3f69b3ad3cf92d96bc17b030d0fafbcb5 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFga@7NTLR^9Le}-~~|NkKrL;3%55EIA;N|b|y%R#KK``N64bd9HrV@SoE zsTcS1HYf>$PW;WtqGsLq6}$jpDV7@>y0l)ibBXvN}dz6L`X{!W|QK qt4`9uP~=9WliB7OneY3z7cem=9`<-$rKSgT2ZN`ppUXO@geCyfYFs4% literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s33i3p04.fig b/extra/images/testing/png/s33i3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..4bed1c220507a12564dd3171ec5e1d2a2dfc87ea GIT binary patch literal 3326 zcmcIkL2kk@5VU&cD}6+J;a>FvDT)vWl1QeqdV~tje1W(0VXo=go87pEHFhiumdR!& zp2_lV^l`Io)~!ClS95F*!)3S_{r$Fl?e|8XKR>>9?enVN4t>{lJKgWQm#4*#y1A@U z<@=_BvZlti%JPk(6a3+y#wxmzpMr%o^BM)p17Hln?vXzrb&_ywe@P%e77tq=-v~wn zGp!v`m;v6-!axVd!<0`(%6EUPS;oR!2@-r_VwZ&oTE>bX!9YGk(o2DA8c7PrwB!X) zxlcL-|AMq3uXaz9SVE)kwt=Csh}397Jkt#17H4#(CL;%rU7*NaD__PN`7H zfwP2x0$2VV$3@M^j?9(*g?wPh&uOWHMK$tc5r(E(7{Cna5|tUk2pNnj+%?G%$a_Gg z$o=4Tio_perpcg@h+g*KZ>kv{H@@oe8ew=x+$a+^1XDid;z&3t98a~ea8&WS^8W&i C_;0-c literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s33i3p04.png b/extra/images/testing/png/s33i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..ab0dc14aba444d3f59f0bf77808ee7ee78ab5a48 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCw%)r2S>FoPcKn_c~qpu?aW7`757t`W_eCA>& z&kz9yJIm7?|5Q?Gve>sQ=2z#A&*U>UfA#bB(&kXT4uKE5vkQo zUQ-!gbN(`3qRGqhce6z7%EakmS0Y8FPq}6+_@ir6xO2`=y*VFuJPs^Aejwdi=Zl4) zY)`yQC*Lu~AJ4vKi$Bd@7qys2yXwnUHFvDT)vWl1QeqdV~tje1W(0VXo=go87pEHFhiumdR!& zp2_lV^l`Io)~!ClS95F*!)3S_{r$Fl?e|8XKR>>9?enVN4t>{lJKgWQm#4*#y1A@U z<@=_BvZlti%JPk(6a3+y#wxmzpMr%o^BM)p17Hln?vXzrb&_ywe@P%e77tq=-v~wn zGp!v`m;v6-!axVd!<0`(%6EUPS;oR!2@-r_VwZ&oTE>bX!9YGk(o2DA8c7PrwB!X) zxlcL-|AMq3uXaz9SVE)kwt=Csh}397Jkt#17H4#(CL;%rU7*NaD__PN`7H zfwP2x0$2VV$3@M^j?9(*g?wPh&uOWHMK$tc5r(E(7{Cna5|tUk2pNnj+%?G%$a_Gg z$o=4Tio_perpcg@h+g*KZ>kv{H@@oe8ew=x+$a+^1XDid;z&3t98a~ea8&WS^8W&i C_;0-c literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s33n3p04.png b/extra/images/testing/png/s33n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..764f1a3dc71f0aae5785c00d1563e309a7d3bc13 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCw3?!GHx*r3iSkfJR9T^zg78t&m77yez7dv@| zu&}U{|Jb@1$W;&U32_C|{~5{|{{M$i4CVjJK};YYC{Yd)E(fu`?q{mtVq{n7=4!I#bZtC8xk9FB%)(-P6#}_whaYKv zG;#N1*N-P`3zt?rkunQiXB;>sd*S~OJ*$L#9ikL`vuNIwgtW|7#5 zJ8$OyvHR%k{&iEm)b>jr)xP@Z4&A}o&xiZFcIWKR+td5DzIkppUE9>n*0#Im_UiiE z%wFDjZ=5&AyEw`w;r017vk=3gOymjh!aSE{lB)p(bUClapD7WcR*)%?5N)O_rU)HL zTQO@HV@oRlM6U%I!*hU^Ig4M1w1TCGqyFYSrrU2IT`0W-sX)Du;sBIQzcLjQN`KE> z!&{;+2w6Vqom>KjIe%A9`EsFzE)oMEQ1CZxZMdN)L$);Q!pXX_BKm%?6 Y=`}^zV#=aS#2HEay^qS*a(}*-Bh1$DkN^Mx literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s34i3p04.png b/extra/images/testing/png/s34i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..bd99039be4a6c3a7a2a6048541436892bc4fd5ae GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U_%)r37KTjVjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c1LAba4!+ zm{Z%gm#f)8#BG1p-0Bz*xXo g-$=Io|APMvAEo}ki@M*T3G^LmdKI;Vst0JTexR{#J2 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s34n3p04.fig b/extra/images/testing/png/s34n3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..cd5d18dc963c5d01cf89e601d1da9bba889ce324 GIT binary patch literal 3527 zcmeH|K~BRk5JfHa9EC%`hCSi}0Y!*KlSnSISQb=PEI30i>L#9ikL`vuNIwgtW|7#5 zJ8$OyvHR%k{&iEm)b>jr)xP@Z4&A}o&xiZFcIWKR+td5DzIkppUE9>n*0#Im_UiiE z%wFDjZ=5&AyEw`w;r017vk=3gOymjh!aSE{lB)p(bUClapD7WcR*)%?5N)O_rU)HL zTQO@HV@oRlM6U%I!*hU^Ig4M1w1TCGqyFYSrrU2IT`0W-sX)Du;sBIQzcLjQN`KE> z!&{;+2w6Vqom>KjIe%A9`EsFzE)oMEQ1CZxZMdN)L$);Q!pXX_BKm%?6 Y=`}^zV#=aS#2HEay^qS*a(}*-Bh1$DkN^Mx literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s34n3p04.png b/extra/images/testing/png/s34n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbc68b3b9d5f263eb64bca9ad8bdfeae8205f63 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U_3?xrvihTr9Ea{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y00D12$B>FS zQ_pYYZBP(ky%4X^8GYlzZKG+@7dEqqPBxHOE~fV1{h+qq6V*Svna^1j^)9?Ct99+6 zN12I`jtXnzk)}u!%RD37KjJGY{QS1{OXvRBqt2SFsin;wQV|yPQK!t*<5f${SKY|E by&mjqj=t@%(q8BXw3xxu)z4*}Q$iB}CDT{I literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s35i3p04.fig b/extra/images/testing/png/s35i3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..da5c5500453f7540ee9b34ff92449765c3aeb59a GIT binary patch literal 3734 zcmcJPK~BRk5JfExz)gAx*sw?4u?i?cT{Ma0B8z1~Wz8LWP-7T-;;}n{afZlBCO^sl z&Ad#v&YpJr?zy)gaOh6m+jO4J&c5H@-Hu0RKVKeS5B=t8+)v}s4+lFQhnuVG2eY_& zW3<*{j`2=!dE@EA=t5t4>b%JprsSeZO&DN|78v4_Fw7}Q(IgZ+e+Xd;7Auj|j{^Yk z&+DM5ut5_7341!fnARk5JmM?<;~2%}LJ*y>y6++dn@EZjL_|7svP;RZM8)YyQCfgu z*ylrYQOs{>slzX0HW7edZ-z$KQ8EC3fLF4Swq9^QH%aQc>Z~lFQiM^HMkSR<-1#yOIkWvt1$n{jN#~=qsvj6@R_?}8H5$o!NYiNU>d*kD? zs5?m)-5^YJk{GTrNDmSR6@svv>kG~hbmpsX`VWkb^w}sfZEYlnNkySLMv+hv5l-PF F_yS9sLvsKC literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s35i3p04.png b/extra/images/testing/png/s35i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a5e0a6595f100edc1f79a3e0864ad6ea0d0121 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^${@_b%)r1n`@_6HKn_c~qpu?aW7`757t`W_eCA>& z&kz9yJIm7?|5Q?Gve>sQ= z+doX6Y5h};;jD1&3&kR*!|w$e_FSCK!TZ;uv#nAtd0y%gzGN#yUNMtr9o7cw{d`v} znPPXp_t6M&TexoXtroF))1FRQrM1j3tI<%mZHpV5tekks+WAwqdfa)ug=wLE+m7oy zMQ7hT>LK{?oy%sWdO^0lW9vk3*7N!L?zPr!EpIN@4l($9_RGP?h0kp-%f1)C*BQ6t zb%JprsSeZO&DN|78v4_Fw7}Q(IgZ+e+Xd;7Auj|j{^Yk z&+DM5ut5_7341!fnARk5JmM?<;~2%}LJ*y>y6++dn@EZjL_|7svP;RZM8)YyQCfgu z*ylrYQOs{>slzX0HW7edZ-z$KQ8EC3fLF4Swq9^QH%aQc>Z~lFQiM^HMkSR<-1#yOIkWvt1$n{jN#~=qsvj6@R_?}8H5$o!NYiNU>d*kD? zs5?m)-5^YJk{GTrNDmSR6@svv>kG~hbmpsX`VWkb^w}sfZEYlnNkySLMv+hv5l-PF F_yS9sLvsKC literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s35n3p04.png b/extra/images/testing/png/s35n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..90b892ebafc5b5318b2c4dd257eaca9377692ac5 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^${@_b3?$!tUzY`>SkfJR9T^zg78t&m77yez7dv@| zu&}U{|Jb@1$W;&U32_C|{~5{|{{M$i4CVjJK};YYC{Yd)E(fu`?q{2n^e{*@3Z79)POXW#oDtF1yr`=+itVv=OktFdG6g{K)mRoAX+EY7>z zmhXBt<&Eu!6r*o!cV_nNo&Ccp*=?%nxjo?-PXbeTw3r{SnJ?StNM`T3!o6nKZi}v&Xt(4rKl7t^ V?&lUg^#FQ_!PC{xWt~$(696v@lAZtn literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s36i3p04.fig b/extra/images/testing/png/s36i3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..c2844f1c6f188dda3eb72e36ceeaedb930b4d59f GIT binary patch literal 3947 zcmeH}L5{*O3`HX@FegFc3e1K*;sPC1p;^#YN>MaRK(OWz+%wbGaasq10&<2~vggU^Tz4Z-CQr zRlHspI2;psKE$;1RCk%H*T_Oux&jlAN%gUR66eNh;&+E$&5$SfABldB@W!~}Ic`iJ zi{HZrZ7c)p@o~^?Bfxx0+#RF@GE3;ghJ#1($iMLh;6_$2KQtq* l_qx(hvC`h<))+%`vnh~0K~IP|SF`8dBkp;Z&kYZH)Gtdjo<#rv literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s36i3p04.png b/extra/images/testing/png/s36i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..eb61b6f9a325db7d967bd796d3a65494bf6b7754 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|l%)r2yqPf);$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c5&tba4!+ znA1CPFITgHh@1WGUzfMPP>Mb3d2r#rz};nBJ2KhD%L@z2iugh<9M4MfUF6B#_T+KJ zyS#u&i*AX_`$J4FwOGR3+lYu(xyz9^Us?I$Nzg8@_uT%B&fwPAv<_h$1 zKV4X~uHW!2nO zw^mgdcYZzlI&jNId!5cjyapMo+SY3yv3S|MG5=1ghQ&wM_et*;#P6@Vu`=r)^ENJ> nM6Fzb-Rz~M-&QV*`e$h`)grFMaRK(OWz+%wbGaasq10&<2~vggU^Tz4Z-CQr zRlHspI2;psKE$;1RCk%H*T_Oux&jlAN%gUR66eNh;&+E$&5$SfABldB@W!~}Ic`iJ zi{HZrZ7c)p@o~^?Bfxx0+#RF@GE3;ghJ#1($iMLh;6_$2KQtq* l_qx(hvC`h<))+%`vnh~0K~IP|SF`8dBkp;Z&kYZH)Gtdjo<#rv literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s36n3p04.png b/extra/images/testing/png/s36n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..b38d179774ce64d3da2a9c3ab1e8c0fc5ce54771 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|l3?zm1T2})pmUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFga@7NTLR^9Le}-~~|NkKrL;3%55EIA;N|b|y%R#KK``N64bh)RCV@SoE zeX02TU7fN^(b&f@AC0IF4)lp>A zamtZ6X3lW8^&N+fpX;N5a1N0dE1b9+oO)I`@yuDpE^(oyK}Bq#(;+7|2{WUFjT0Lq lq)!ST`XV5f-^|R;z~ISp;_}2b`+!bh@O1TaS?83{1OP(LROkQz literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s37i3p04.fig b/extra/images/testing/png/s37i3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..da638306c8e976167cab5ab2f5aec8dab0cc8ae5 GIT binary patch literal 4166 zcmchZL2kk@5JfGvYVhPasVtTh!J12OPS@?&6Hgom?2Z#fFign* z8NYlbA4*<6_tmbJSNN(f)pvLA?n<8D-`4F($=lcFc&J~u?Y?W9x;e=9)T|aSOEI}= zA$a#mH=z~xu7##MUcjKw@>6Ny@95<>8Ee7@&3J(kHHWA7avgqhM){8%dSStWDii@Q z;NsV&!^jM!2s~Wnen{Tr#W>k4iU!sNH?zl zS@Y?KY_#eBA-^_P8QC(xJUj&egoZg_o}=pQw$}O2 zvp@}JvzqM5qk@PHZiTe;B*Mng(4{Oqf{nhRFarCP>L>HwgXlstM$Os<`nar|1&$WL LE&^}J%;ozBMjt8+ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s37i3p04.png b/extra/images/testing/png/s37i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2b1e9b79ba8ded32f713506b543f95c8720615 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^svyk5%)r3tu$^}qki(Mh=sg+HIV-2>Eakt zF(-9`wNR6RK-+&o*^hxQcxC(!_~<1(WXyQ8cE!t#;Gj#lmM+`0{Ul?NhPm`7gP#(U z&TKlpT{>aX1vlpoG2ywrj9K?;d1~@l8+XmqNYD|GnW?j3_LDi&_Gk5ZpVL(C5Y*hb z;_)GkI~OeSB#!?*!4ts2={s4)Kw+AwsIZx0;sW~{6Jr*4M-?k-J?sdRs5Q&mv0%AZ zytIqJyc-jCPuY6yD{r}_O<9KFm9UNB@vD7vZe722&ATSp?!|BMy_))a()awI`Eg15 zcb}IZ6e>9H6slHm#xw|b7U^#ds^C5mec`FsvsuL_-L{JOW$W&>5V^;VhPasVtTh!J12OPS@?&6Hgom?2Z#fFign* z8NYlbA4*<6_tmbJSNN(f)pvLA?n<8D-`4F($=lcFc&J~u?Y?W9x;e=9)T|aSOEI}= zA$a#mH=z~xu7##MUcjKw@>6Ny@95<>8Ee7@&3J(kHHWA7avgqhM){8%dSStWDii@Q z;NsV&!^jM!2s~Wnen{Tr#W>k4iU!sNH?zl zS@Y?KY_#eBA-^_P8QC(xJUj&egoZg_o}=pQw$}O2 zvp@}JvzqM5qk@PHZiTe;B*Mng(4{Oqf{nhRFarCP>L>HwgXlstM$Os<`nar|1&$WL LE&^}J%;ozBMjt8+ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s37n3p04.png b/extra/images/testing/png/s37n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3054da516a3fc671bf5d2c4a401abe6886414a GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^svyk53?$7r*ct#SmUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFga@7NTLR^9Le}-~~|NkKrL;3%55EIA;N|b|y%R#KK``N64^ifY2$B>FS zsTXzmnjHk%9_laj{iXhZjaU6f3%5cQ1CLzmy47pf9C;MBe%0{;2EMB|HJ5HS=D#U8 zTcE<&;mf3XHLadi$}J7S6KsC%TdZ8VLMtWoP@;^%GPWsSI*kflz0dEPDy4JU==ewT z$8HrlSvDN~XJuI*Zalg3>X&(%0bi?r*mu~p# z*kbkGd%RM6vU;~}yPmpD-2FE9?b`>wofE(7z53qT-=ZIGukYz~KPva4hT&JMP+%DE SUKyZ=7(8A5T-G@yGywpP!HFRN literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s38i3p04.fig b/extra/images/testing/png/s38i3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..d0f4e934ef76735cfdfec5de422719047fe86e47 GIT binary patch literal 4391 zcmeH}O=`n15QRlf(2L{{>8AUT3pmA;F8l*Z5M8FlUH23|UGJb;8NIOw9OJqjLBLvA zKX&v<^X5r8INQ7y*-LIesmhw{y>9E)*^m9xV|8)%>wJ7W<=f|~sH-wBPqw<0yUoM5 znJnITZ=5&AJ8p^2b@+GROahGtab*2i#Deu>x07)YF98cR1rl@oUsS~&8Q4pwNMstP zh-y@OT;I}-YUEIe0ae{2)Iz=hn#dgyAE+x48bFhIo+ZWb8_W^>7>Y(zY3A;EH9d$J z)gZ>r05Pmp-7y5At$PBD>9`Vye+>|!dF~LmmF%cy4ps?wB)K1jAMcb1n{gdQ6M+<+ zKk3LA*$9>s5YbsqWXeDt9#bSD9eL#hU5N{CE7mNTj-6CDidL?sC-Mf9MU{xFJK_a< Rx2IhCT&1IvGZqaR{sA#+ZQlR@ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s38i3p04.png b/extra/images/testing/png/s38i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a8a140ad7ec7f78f5b8cb398f54233e790fe7c GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$Q%)r2?D{_Pz$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c5&rba4!+ zn6q@EJ$I9XOxyf_5svYTT%(q*Y;ODGw$)5_M`m;PZW9x8Q*O>*8?9X5^PP9_c=!F& zj}P}&avWz``7H13GiA$f!58}0_y?X%x||YHuGu}U@%Fz$#r)47t&6p-nF}}c@lTBs z^1PZ{v*FFH8(9sEQqM(?B}LEJyE$O3_8AUT3pmA;F8l*Z5M8FlUH23|UGJb;8NIOw9OJqjLBLvA zKX&v<^X5r8INQ7y*-LIesmhw{y>9E)*^m9xV|8)%>wJ7W<=f|~sH-wBPqw<0yUoM5 znJnITZ=5&AJ8p^2b@+GROahGtab*2i#Deu>x07)YF98cR1rl@oUsS~&8Q4pwNMstP zh-y@OT;I}-YUEIe0ae{2)Iz=hn#dgyAE+x48bFhIo+ZWb8_W^>7>Y(zY3A;EH9d$J z)gZ>r05Pmp-7y5At$PBD>9`Vye+>|!dF~LmmF%cy4ps?wB)K1jAMcb1n{gdQ6M+<+ zKk3LA*$9>s5YbsqWXeDt9#bSD9eL#hU5N{CE7mNTj-6CDidL?sC-Mf9MU{xFJK_a< Rx2IhCT&1IvGZqaR{sA#+ZQlR@ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s38n3p04.png b/extra/images/testing/png/s38n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..1233ed048e504292bef13d0a96d291914d12c858 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$Q3?!q3zsvFS z$q5XNhu)=5Tjidh!fa-!aP~lxV%mWM7U!NuQRf`SX00}f3tT>iIb{)A35DHSJCk^B z9JyieHiKao|6$!5cY4l9TNo}lec>oiL(-j$qysxN6CA{uC#7^J8uHKH+k8^@!3HLV YPnp`y=hnD91lr2r>FVdQ&MBb@0IdL5LI3~& literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s39i3p04.fig b/extra/images/testing/png/s39i3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..a80180579602545eaf213900b2aaecefbce356c4 GIT binary patch literal 4622 zcmc(hK~BRk5JfF+z(INl*sw>vKtK^<(Ik?KES3e8HMi)2IFNA|dos3}(8L}ZS?T1b z{y+BXMBN&FeBL!rt^R7VTZXWyH(06UO*ZrZpxw`&R zvxikmV$5bLYh;F1HXisGiC*#2SVadWQn7j+F~dj+kdbG=HYEl{im3DdA&QAuR799t z0Wip-wNt9IM8gOw?)$W0iB9GC`KA9;n|c5c8h3EcX0?JF9Tg!o662m;e=C@$XgM9J zmlR;`&a^3i73mjBYxl&=u^QN)69G&fyB^pX;8T_*s20rSI#pB`>%|$gqVPELOF$JR z$C+P(sDsVzdj&mj{}3kyHBSU(>}GD?%XCbn{*x#J)h{YD2fYHhz=>LM=6@4NthGILxw1&8`Tgh qLli-#MF_16(z|iyK^J-Vg1I}>U(6(mLB)uq7#T}KP2$`o#C-!f2J`*^ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s39i3p04.png b/extra/images/testing/png/s39i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..04fee93eae400e745534756b48f5420cbe4a1d91 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^>LAR*%)r3N*;O+E$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>VvyPZpAc6d{hy(n;s1XK#Zdmg9K;0jffD5);c^h`>wY$Cpuv)!E{-7; zb8;sb7Bw3PxXwR5nPsxbIbI3B13h{Zl-LU%&pWl%I?8Km-rd09oy#9GScQZM32{6% zJn&)b?*IA=s?&@YhcsVH;1O9g(`9z%6oU2EhY-&tz!*HGHjC7g8ZRKA?r5euu=`tFBX7AyHo&^hw&tWyi;3*RQj<5NC7 zD$9QAmr-d~@vfp^>g%_&3Lb_R^iP%F$ND|O^6>H9g zXp(yF?QYZiJMI0h)x3XK|Fr(u@2&iL4zKdoR{mw=nP&Qp=ij3Tz`$bgboFyt=akR{ E0PqU5-v9sr literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s39n3p04.fig b/extra/images/testing/png/s39n3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..a80180579602545eaf213900b2aaecefbce356c4 GIT binary patch literal 4622 zcmc(hK~BRk5JfF+z(INl*sw>vKtK^<(Ik?KES3e8HMi)2IFNA|dos3}(8L}ZS?T1b z{y+BXMBN&FeBL!rt^R7VTZXWyH(06UO*ZrZpxw`&R zvxikmV$5bLYh;F1HXisGiC*#2SVadWQn7j+F~dj+kdbG=HYEl{im3DdA&QAuR799t z0Wip-wNt9IM8gOw?)$W0iB9GC`KA9;n|c5c8h3EcX0?JF9Tg!o662m;e=C@$XgM9J zmlR;`&a^3i73mjBYxl&=u^QN)69G&fyB^pX;8T_*s20rSI#pB`>%|$gqVPELOF$JR z$C+P(sDsVzdj&mj{}3kyHBSU(>}GD?%XCbn{*x#J)h{YD2fYHhz=>LM=6@4NthGILxw1&8`Tgh qLli-#MF_16(z|iyK^J-Vg1I}>U(6(mLB)uq7#T}KP2$`o#C-!f2J`*^ literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s39n3p04.png b/extra/images/testing/png/s39n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..c750100d55fbd07d216bcc5af538a83b9f7772a3 GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^>LAR*3?%D%eb|5$OS+@4BLidG0>c;6;(>hTVkgfK z78aKBA6plL)CTy3xB}__4CM^}|3fH-^8e)^CXf%5Crf5MCykT z!yOH&Kayq_xt_}isYhMd#%sHX&9!mIgr_sq&#dB<+^ar$Z{X$9)vls_k8f1|*}8bi zpB=vzEdR6P)rUoYc6jZ*eQSQo)o-o)F5h}-kYN6lt?pKC%J$H%zv=qU-|SMRztaeP zGf~`5;@h^18$CUxb-)?B+3S1&+Z7Av3sfa~23CYl~1buOGi?Q1?D(J&sDZdtzk4qRGF zq<}iCt2aIq6bS}y>-{_UJk;}VH9${%*RKBd&TqXz$h5IJ2O@GE6z?^+#=s3d0d#!5 zgxiZ=4>c1uy%@^I^-yCv3!M36y8+60tYao5g)5S5Q zV$RyWja;A|lo{eZ(@L`p} zS{LWU6$LrdObg}*USsKY346=g=`j6{lFBTGU2~>go4o6%r;zgB(0Rug*KVDo#;EA% pAydNHT#*-Kd$uF{lI;G>I4-d)zk<)z6+mAyc)I$ztaD0e0ssYck!}D0 literal 0 HcmV?d00001 diff --git a/extra/images/testing/png/s40n3p04.fig b/extra/images/testing/png/s40n3p04.fig new file mode 100644 index 0000000000000000000000000000000000000000..5b0959580ca4e87939c32986a6aefbf847e2dab1 GIT binary patch literal 4859 zcmeH}K@Ng25Jel0;5|HqZrmF$fQA?s0!cBAOEtRo7#_o$)ylMGrqM`{4h!jqP6Ist zpJ|z;l9%l+*`)Fcm*kS1ihFTa^1PVO@}rWs{pwJrlXbo;@+{3tnIE(1X#CJZXeG23 z%FJNc0G3Jcx`#Z_{vPt0KDbV;Q3T@KYiZ(%*XvC7rgLzS*gm*kd{scz7ZB6Ctt%uJ z7k6}@f!m>$CUxb-)?B+3S1&+Z7Av3sfa~23CYl~1buOGi?Q1?D(J&sDZdtzk4qRGF zq<}iCt2aIq6bS}y>-{_UJk;}VH9${%*RKBd&TqXz$h5IJ2O@GE6z?^+#=s3d0d#!5 zgxiZ=4>c1uy%@^I^-yCv3!M36y8FS zXD@8zZ7|?*x#--bqd09rVn>dvna6z96-Ml=&4Mcg{<*&Jc=+gKnBVfCtuiaG{Fsq+ zN5I`d(XC(dB13ART()`KdT#Ey^-ixof4?!Sz`}fsxz-Y$_FSPy%NW9)eC5gyx=V3r k20fUw