From c6bb719e658573a602eeab184e2c23c5bdc4a284 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Fri, 3 Sep 2021 16:14:02 +0200 Subject: [PATCH] [test] Add tests for Arabic decomposition Test that both NFC and NFD input produces identical results for fonts that used composed fonts internally (Amiri here) and fonts that decompose internally (Noto Nastaliq Urdu here) and that for the former composed forms are used. See https://github.com/harfbuzz/harfbuzz/issues/3179 --- test/shape/data/in-house/Makefile.sources | 1 + ...3e46c3b84c1370a06594736c7f8acebf810bbb3b.ttf | Bin 0 -> 44884 bytes ...872d2955d326bd6676a06f66b8238ebbaabc212f.ttf | Bin 0 -> 17556 bytes test/shape/data/in-house/meson.build | 1 + .../in-house/tests/arabic-decomposition.tests | 4 ++++ 5 files changed, 6 insertions(+) create mode 100644 test/shape/data/in-house/fonts/3e46c3b84c1370a06594736c7f8acebf810bbb3b.ttf create mode 100644 test/shape/data/in-house/fonts/872d2955d326bd6676a06f66b8238ebbaabc212f.ttf create mode 100644 test/shape/data/in-house/tests/arabic-decomposition.tests diff --git a/test/shape/data/in-house/Makefile.sources b/test/shape/data/in-house/Makefile.sources index dec23cb5e..506c1467d 100644 --- a/test/shape/data/in-house/Makefile.sources +++ b/test/shape/data/in-house/Makefile.sources @@ -1,6 +1,7 @@ TESTS = \ tests/aat-morx.tests \ tests/aat-trak.tests \ + tests/arabic-decomposition.tests \ tests/arabic-fallback-shaping.tests \ tests/arabic-feature-order.tests \ tests/arabic-like-joining.tests \ diff --git a/test/shape/data/in-house/fonts/3e46c3b84c1370a06594736c7f8acebf810bbb3b.ttf b/test/shape/data/in-house/fonts/3e46c3b84c1370a06594736c7f8acebf810bbb3b.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7312779518d96fb7a9cf59cfe7244d6a351c3b09 GIT binary patch literal 44884 zcmeIb3!EI)btimpRrUKZ-80?O^PZlbnVwhA`z4KpkVd1C5JD1?z>;_vfh6>nkOT;s z5Q2eVmL&wU7-ND7CIn;bCANbJVI7C?v3z_A>&1^Hn8hzl2xe{U*bXKz{r&&0F zi~u|Q*4gj(sZ^({PMv%1x#ym9?z3uy6hg$r)xs3(S5B>%K6KHsaUsTz31KZ=xqjWo ziR)iIF2uy6AgWxs@vO;n2R8eKSb0K-i?3g|v47}4e(K_g5WSnh<${a$Z#$IwNV*I6 zpcmUO-gm{$fB4*YGPr(Gh_0z!JGO0aIrVd`Li8*EZfqA2na@S~KtF=}wq5&=9=oOZ z>s#^skP!08eFrbv_Idv!KN6yQDW1Q%f7`J`;x6OIxXF!jhwKW*(=-Bwz z)$NI3tgGEu+mUKpB;?Fn=24lk3L-6p*)cXYJXAeAG&Y`z8?Cu~zBT9nd8&S@qvpKn zB^P(c3Ojf73@+-*RMwhDLkrfYYFZJ-i3lN%iYiDH8xrS74EEKHi?`;|}2Lp9&0W%m3rcyomnrI?i zVZ_s^%1mR-SJPadiZ!ETpPcz?ab59CqH{Li_m{B|@SQy8nZNeewfikIXoXT$Jsrq8 zf~-?2Yky5sLn_t;LxNUcgI1sTO|+VfwU*V}%xfjB#!@45wEA1wr8sY9Q2e-fp{N$3 zDu-GaQ%0FiWyWEns15%oni{Ga6HS3cB$l>j`Sl0uB5ofscqVvcA0{($NCf27(MHbaIl(bA9(Mtn)DWrr`bebrBU zrE)+FFw9u!~Lcy#3h^bA8v2bc~=#=EcERz0-HKlRN&%5PlNyD(osiz6nAKef)2ei z7~?<1i(7Kbx@*?fHpxXF-M{>gZ~ndhvBfR1RCJ)Z<&r=8^gYSOGgh8*mM@S9jgBS~ zjh!_OBg1w6k-de!Rin8CWo9nlM=m`l%_V>g**>7b>|lQoSHMa@#{+va?PGM@N#gSy#8zROE8)`SA@6z00~&lps}nTyBwnE9!*EbSyDO zM>?1lifc#0K-{RYPQUUrqb1iml4_|bY)*EyR;)gMs=9aEhD<x<9%y5!GvsrtZk3^lmv#`+S+Y!A$S09A6fL)NV-*B?`>}4XpaF#6hK+x-a3DX0WemNy~@hv5I7SRd3xX zYvPULOP6eE8eX*F*oSP1{>7GP$=23Pp=vCdh$RPWTVqWf;dH9DJ{*#!KNR@?rDE;< ze??dH+Lz>m0{!iIVgth$dJ&G_vR~@<+-2A9Tyg7vxV*b(b*iPZHr1MmS9GPDbMbI0 zx#s-QYybGxlJkZVfdwP+L}NZ(y{N8Gld7p`$z@UvSC2II)W_&&jCgCzX-2$Z^okkq zl#@9T@28gqLWrF;m8n?FSJ~NCXzuy$hTA`~siJF5!ME;(n>shHEG+CORFYf6%;(G@ z{Q;{kq)L=7vD*fDvpNS(xdmkF;bvFS}-9-B~3`jR)l))34EcJDH^LbQSh>yqQ4R&#@`Do%b&*7-D%;gmUq3Op^v;rCpFP(WtbfIF3RbhUYwKXTGFsnQ+mMVkXIqb6 zw`9WxXigOWOr9hDP(Y0tdz8cc5J*w?sZ`gV<(Y-4mh5P@dN|WQcur`?(Qvk9qBWTp z!Vr<-uVs_G4SmrTq*t*QMN;DerP{dBF*HW)b9At^wXoJo)YL^97AHgDrm>Z>tEa1f zv^g-4+jEW;iFS0<_v9)EntIQg>fF%P+%g$nu%f;ZJ@Id0ocEXFEfE!BkRvGQM%fCQ zz^cXtb?Msk7q%Bt9izT0uKZ1@%i0iYe7+W>cEzewyN%j`+>qUdB-focRbA0HKCvK^ z=*Z5tA<-5zxl*Ky&&j`p#OR^3T^b&;8}ZV}u{)hR2z56K59SUr)tfB)n!JK(Ntv{^(#N@tFLKU-nI&Py^7R7l2?gZAykVy#$E*~TKg~> z%79<`ldTn%gN0xulu4ycpJ7H?@{8ih`Z_6N^{IwsjXgaLfoLJswP9Tzi;_=fnQk za3Y+USeDHX*8hpwbY|UQd2+6#u)}Cr>B8H2Hy3sXNFZ2$qRN zA}nRNuC~gu3~5=xRAqgCMZ7XOHQhEm((Vrr=DQXp+k3lO!R;w<`NQObUGY$$y*p<$9_z3yc#PeX!@wIJ!|u#D zLXZlNvvsFBa}6t3P9!36v$7D$_lCozE}e46-uv;Dwj23t0m@(1`<_WExz_Xum7vet}?2c{gshG z&sZjZcvR;~o0gm9o$R67kxO;#+47X4Y=__9(lpjO6*q>`{$+*6Lb|af*t9O&Jkh>% z(=K0adc9$cxAms#5@&3J&c6+gt7V0Nre--R;q9(=2je!1(B0URTHKaP)Mm1^u|%P& zAzc-YrsAotK{|6^Z*{6B-r5q4)>mi85xkX8%QNIg&6&}LwJ-)tL+o}*3nK|tv{npH z#jO6cVJTa!*Eqcrg1vw_g5s7HPyM=7)A&U>2xrh8fa)7O;P!Umm;0g11ZF-j<~@PTHhM*_oe-lJuE>k5Xkl+oVH5Y z+qC|}R(;jRg^<26mKtuSc36`a$~ebVTJPneE48bxL`&mnTYXz=CRvlp*2NMXnTF1Y zKNP9S$C`(;jSD*v|JvH>Qnm5s_L@Mly+7J8EBR7+hd}6e^kerB*nU=*Ow=wxS31)b zFw8_cl=ioc)z?%t_f+LZEB#GFmFaA2cV{FMt68x$;j5|Y>Z@$6&i7WP8*$ z^^HekA?WL^;&Bh356;vGl|xgOrleH9NJ*nCU2yUTB##C1boi% zxYis@Rd$cJH|9;NrW)?H3^&86aDHUr&~RI>=ZrpIEE77@kP8M!3XLn!snmYFA1ynw zD0u*!tjy0iflVbP+ha{5U9oUOZ6F#;w^qj!`Py_tRXCIy*<6umsFkv=EfMX=S^iWe z(bOJ|)SSA4c`ypyB3m7Apy=~eF*4~!SE6gUqBU8QOy@eFmqJxzcQ%=ch*;BD=H&Zb(xm4*#}!NGEy53hk{nGZ=`OdB_58oXZtW1(Y5h{Tqv;K z;pC@mXKrSt8d-JeRApnLx;kFz3o@(9mWpIF+?47Xx&U=jw{2T(qRQ86F{4-{R+a7< zMfXQXsF&mx&e7W~gEA*Np0{jNo{m)6vF7dtxw`gnBppdtN8>?Nx{mr>3kugiRM);d z+p@5&zOS_q3I|{o2D2S*sfpzmxAbA+NA)OVN_>*mX7?!AY`{4(ZgrL%BvDZls?7Mp z@nE7dTG4`jW~QgPxxF@+sIKgQ;asMoqXoIpQ?8Q}IyTOF zijIc?I6XCo(aY#asbD<|+Vazltv$`%?NTOvRc(pJV6eX;+t=1G0ncgA_q9%RSYf{r z5Bi!<@AqX#tIw<&9qsHvUOz0pEH8!i!9sjCPxANcp00LMch<6t%&XdJYkQKpJnf}$ zYGZ4mxhv1SI~x@Dy5{CWq?)$U-(F~6&}Bt@W-RDCRoO`Kd-C%#@;-7*>B7njn}WgK zbbDjdcuoHZo8tvrhjRTbop~ea%V+&4&iYhCLr=T`O>+I{L}&9@k1DM{Fj2CU{~{N0 zj;mxTs4|XIR5P!$m{q4LI!fI$lafxs!}u>9*QqOsw8O;acoWQpG@-YP!@|3+Ux>$v1>RI=_!GP+V6WGvS= z`2!<4jP&aA@mM@l-MOG;Vrlb4UM8$`>j8guFwv7o1ZhE^I@mcfT-jVbkhh{CD|?2v z&~wBu#P!UJBV1)8Iv)mGZL8^2NwfaXvMw`Cu*XCql8I((Yct(#$SBqNXQ~{PnU)H; zV{@{%A`TOZ_+&-MYF>jfF=q9Ozh_Led&AUd$<3AdD91yI5VqQSt2+x#sgS=h=eG?t6xnMZioo&MOvTjvBFP>!{Y*lqspUuNh6SbW? zsr7Vft|k=B!qKWb>(lkg>Z<0`mZf9uB}JwE)`)LW&0sDNt*GqGvW-PKJ|^Bl-5_FV zeU<9QRWl`Z(JH>!6b#i?=ayuW$&fBpe}B7?G>la1<+Q`j&V0Tx5%j4d!R*6+Sz-Cj zCTh&?9nbb4ARARR;f7_|=7sR@Q&l&4!$Q?b4tI3LTCv#d z^w?D7Ma)1DIvz6`rbW&?_DPlFck53dP<(9ZeYf~HHlpGq+y3+9ekX~ z7^NX1me%?+>}w!LwcOv4rw>#idX!doxVTfr_5WZ)wtH!8$*wN71t2}xRM}ctReM#n zFJhF|eG;LB)nZkK7M$tx1uSd~n3$}?*g9DC_9?#1`Kx~2JGp$*slkrVsHGr7Y=JE6 ztuH~ldWMi)=aX+3ps+5Hu1r)_MN1n9Qn_Rd6Mnp_ing@1my2Y6Cz(jK$IMt%EvUs) zRqfbP5Q(Nn7QTJse3Gd#y75b_hfi>}<-G(u$$HFH&K8GR2@&98E$tthZ>7d)Y*9kS zVyV$=jV&YwWeeZ=^hp+RjN+@sPPHPJ5CfhyIo8^HZNb2joww?4DGAIK$rh?KmWT$! zl~5_x^2+LO=8BTE6;&h6wYIcWDdtM`9QCJAv*)VWs&`l5yG#z#6%fqkoyPu3$pRwS zG(!DWm+T>$%eVYSGu-m;5=pK3ICn1CWr<vMGr z4NlBFpw=~WdR2^LV}yh`E1Qhw_+RDO>SHfGaMViDmC261~T&#L66lBtsA!M(w#`$i!W~ zVs^b^QKfsm!q{B$a*t=ks}Pg^)LF{tY@fT7@!PMMcqMSHn9P@r)={%L^g-!pwbD_5 zL4`5U6;vuurlYMV+xPU&r{6#knt?R_kNd4@O8^pwyHJw zC0iEk8TlXfdbfK8{;b1XfgfGjm+a`r5PAh~awmZCG3aphds|u6`;>FB z)0$ub)wRPf|Mz+i!Fv`!{>6N44CC@lOKEq(dzDQVzf$~)I1NVxW0j8aj`7TRCXfkq zED4{oBz)?U$P&QQ!l#}Z<^>=koDd%|UPIf(f4rOTU%fb091?#j{->;$Yvjf9Cd{~h z+eqP9VC**j%=nt|Gqc}3(>!K=&V1dfwzgV-X1(ECh?$g5Y_<>w*sj|9i*?of6s^`grK?Lca>T<)M`o^j>(1nt0x{hBVO8p%d97F}uH|L%vqH?gh2M{s&QIc(C-3o0 zoadax^WQ8z=|H1sKPgwE=NJ@MSf3CR)@Q_oykDeze<14RcJFE3gZ|r3#TDkcqQMAZ zPV*I1=mad`bQ={_%G)3#W!R{ z@hO=E{SlE8Z{c|aGlOpwUzOcR_gBRq$~KIReu&@GMU%`I-;xIC9x1*do(9i8(47hT zuY{4!!e`5S5Xc z>;APO`K392aj~$Byu3yDFvz&k*bJVh>tA`k7?P8~Mtp|lvkb!$BJ1(0mFw26luJd{ z{|%i-;E=Hi>6cM1qsDj!KUrQYi!$+>Ld!@FDPf8A_)Xv-KI_l>JN;+*zvh3!|BYf% zVRFE1v@yl+zcu>S=&v9C^`GLnRq+6k=U+f#ei%R%f&&&iz~!ov0Gd$c8Q}X(-8XXgJK+4EAjLo@cYnj z%pz7D5Eo(BN)|fUha)RC%%(b`?skYHpgb%t1KbYEwMcywXBJo6@a!nyKBTz>n6p5) zU0eztJCMVrz;6R)2&o3tu?V@Z!?6-ON^CymTx=e_Wn66fcgvU3yK_EUNqz*<9Yi^) z1zQrE+xyL3TLdbpco(?L_wOUDL1{=+TGA)|G9ZI8B*QWyqcSGrvO*?gQdY_;nUZO& zrDbG|td(_$=?$_GyFHp^R<_8TY{l9|yUfcD*(tkZx9pJx*(>{GzZ{T*a!3x#5jiTy z_j`WOYW9?e}eT7Gc~Zlhav?3&zm`0$P$o*NLvXP@Ba!=v8Y5%2AAw8XXV$ibaQ@7}&6WCsI?anIc( z`5~c)X4rkVaj>G4b>Hp-Q$ySK9d&b<8ro9fVmLMQp)0=>>+&9Cnn~j5UhYaH${3;mF2xPHZ-!`?wsd95=BeR9w|-gY ztd$TwM1=t5D~`tpQ8((&!7Hy0!hjXtVoDRTnV^hlHkTZ^^zb%|@&+NAA`9T+ti#(c zWr-DnHz6?5zV3LhW_rbiXY4hP92&qmh;s<%FwPO2qd3QKj^kW_bD;&A0fIq-A%bCo z5rR=`%j89a1VaSFzAG+Ve|U%LZA7^;WBvp^851Y_F==r&p6nFIas35xmaG))IX)wv zlR5E%_#S$!uZy4K8d$Vjm1vuCXn%&#zD%M0I2-N6cEtay&(14 zW=@)`%}wUH=Kbbf=60M1FowCtywSWB*Y}$bn~$4M^ML#oPWJUH&6D&g%?*6WAHhfZrU}Vmk24kyjqS7IKK=w+(mX z*RJ@Pz*QiPg_9i8c*69Jz|_ss)Z)4xIkh6Si5_pOC}3Q|U(KZxy;Y6vMIXc}J?X_& zBl7AJ-FTiX@u#dA^wx&(RAL8dLG%KXK+e_3p%FWY{E#`Sq)i}|bEoBuA$1LMFqO2` zcy5)-kOT({M-p7C@ar#K`AR8R2LCLrrok*6=I;xjPJ<^Y$U$qu!uW<7$tYgTJ&7yQ zX#MDt^@sql86|l$dSNZN_d^0+u@2gBPn|VkPC(;)c%D#C+VM<4YUdf#CTA&I@jL?k zQ9^3AA5Zy%@hfRd(Gj2H#;cHh1J$AiBJy&i4|-yE?bcSpVu`D*0Z z$V-u*L}sG#Xj8NgGY@N{=SL4juR_`wWDeqdO)Qky;V!w~s;%rq-V*B*at!BUx zcye55U%P+hs=0W%7HKgqlv|PR0-QT>?!$Q)=P{gD;k*{-jW}-s-R<%&c`vRX!1)E7 zU)Fhg@_7mP$8dfP=kqw9!g<1>lh2j#qn?F4t{=ttP|8;EN4WlhxB%CuV@68KJff78hWKB=KO*qf zEOMF#{I9SlDf=)RBjuUmUSPfs>y`45_&vY}5V@tiUD@wXi~o$LZ=zIEJ}N#7c(wR* zV2T3!GEt&4p#w;ddN;ybkpc_$@A2;;=qRoHJpujn!h8EM`bW4saI^ ziP7P1q}YSQ6nk-4Y9#Cv`*HX&Zae@9IA#uFRDB4ZbP0|y#F$O-0TDTNP z9QwNq-c^B`>c%L2iCBd;>Rfo(A$Zoc;%0FNv_T0a4j72K;`|kTQ$hkpc3#oT=-2dT z0lvJV2UVym>Lj7Au<-*r;Zx2dRH~~muBy}(W+Ii3OK`fsjs|sAz zs64fYML{7EQ?aiFGSPoI%f>zgeY*gwt5#OGh!PuExipsIoW@M$)z}kqpSVffijv-4 zI_?t>iicqzkBcX;-|uPcwD_je<3QcdV9XrG_&9-aaRYiCofz+qU~Ib-%TGn1@I*!0r(${F2FVNJIMV~ z<7U96MknB38UGjXPh*Ful$OGe8`t2v+c*XIe)$@%eFi=DI%5Qw8w^ATxytw=t}mBA z1^g%D_W^%qTb_V8V3QFVIEP6j~Uki{xfWxo@skY7FPq1QN<^Cs&3uF z@HX8hr{O6=dCFqM4`CjLmt25zC$9JDd-E75atbHK)kQzb?k?s1h!#A*h#34;@g(}| zU&q|vx6$^!h)DdZ_z8Aly@g=n$2?Od=9HRnw4vWVfH|VYm=9WozWXN3^IU*Aoqg!P zA43oRTI^E3MLwn4t*^;@7n zI&#Lj9q|S*xD17fZil zuhzc4TpR-*=HQAg*f~pGur#9hCxCx~s1OhdjA-LB4~_A_Gi3`%D*U*yb7X{QfYfYl zb-Sk{9@}2*Ll9Yh{?hyppcf{~EzC)zOo2A8V3s&b)sDqd3TslqgTl|&10`YG zOf3wceweGF;)u2hC$6yfu5s@o3Cc?!6UG0c;5Wg&4XFl{&fB2L0pe$V4*1D;UIqNw z+jlC=jDp`+@B|>G;`u6cdy4D+dE6g&-9L@{uek0X#r-c__YVk54!Z8|!2JQ&{SCPP zoa_D=?kSg@|1PZcw7c#%D)rN0RI@4#96$pdDggku}BM+8uJS&|{)wt})Ruc$Kwm!?LVsm|nIaEBa2~xGF1_ zZd^OX6$y@&;6XTp;6Mx37>?1r7><$xu=2<(4abx=hE}dqa#Uqw;}>1D|ByIa!E@)r zox2Zg6WcZ1ePH)dv8M!&9NZ@k?N)IAj_td}Wf~sdxBFsvqb@HRC0w!psr#cG3-g+~ z(0$cPl!2D1eT3sl_6aiL48)r=QTDT7)90ZD|Eg?5J9G>!&1)E{K59H`ykh#zqvmtg zdh15(Zr>ii2>m?qXyWC{>C8tE0vGvZ@ z2U{O&eWvw=*4NtF+9uofwO!eEQ`=o_54AnscB1XYw%6OU_BHM2w(o1d zvi+v^yV@UWf4u!f`-|b{NntY{JHsk`784`?@U-7F2_}>2vi@HmLpyd)^;HA7BewjB`-hZCFv;fmG)reh_l* z>U;&yg)R;8VRd~0t_;LuKHaV$b;?|BhfXIDwJV{?Iu$EhfX(1+!&wJO*q)^@j4RC^yX;2 zP71bLjG!Gj$&FE(J+XS6c8-i=v==qH{Bh2hv!&kfnyCkNIA z|LL04SE_9W#>VAl+b#nmJ&r`D6!%SvpVq3Lh0^m+VP#w8<>Q!Q6?l?6W9)0Lhu`V06%=yNw>g`amnr!>7tfiy}{LeS|}}8v`zk zy6FQCT|Ql6_UbT$1uAWi0v?0UxRo%pT8%*uP|+}^XiOLK(`AuLMCucZy4Kj)if{uD)Ini+fN9P~?hyRGBrriHD zrS=z%rxx@-rgPGg(vSREYs{T7jcWq)#hrMmju~wODh*>~4k=mFL6y>ny6VLBLNymQ z0b4TBe>w&5R2-&QiUXq}9A?Qfm_O}~Wnf9%biY_)E4Gv%EQB~_r>yG!- zmzF~JaEW7_v2h)xbQ;5GXj`4li+)9muz6`3_Lhm$yfluyh|>q>s5LKIq?RjyD{Y}# zE=@yTq|v-Ij=YG|huep2UbbFsxik%Vu|KSNX&iYGrw@8|xm=XSEtjV8%B68$xwK7c zPqyV^&h$51E=@yT#A&%Sj=YG|hvV^V*|feG|LJu$FHJ*U#A#j{M_$C~L+_rWTz$Z3 zUhJ*vd#!s-LtdoOyfluyY@F6IQx3a4p3x#NE&xWr^VL5&1TH@K8^^aBG0)3ZN4E}L z!1mi%$Lm>D`%~;j#&>{PgpOa8O!_5_TAvS z+xLj?dEeV80Ow-oKeVO-Tkfs|Y?S}l_h=ARQ z&fR$44e6GkSFjIzy&e&-U_NIPR$E^%+92VxW}i82USM8pK4`vRMe)JGCDw)34c4R9 zYmlNM=FIJr>Q?wpt|pwfms zX`R&W9D`-KG9_zA&(gc|w$n%EV)SzviKENlGT-!XKFrxC{v-xbEG_-Ozm0fnbMl6+wWAmEZyV*Rsx^3Q0 zVRN2q^Gv~BCnLJMbodyKDwF-hDIK5a(&=aOm5wxa>1--n2B&nSa!RM^-mP?`cbCpi zVRN2aI;ODW5@oh)&n^K=tjnV7&XHO_VGiDC<(Al{vGcb}=9N-Yv9)vj#qA?(%j}Us z03%n&M>l@xG^%OkakNB1;00DJ?h;RkS26220(!l=&wee(a%}1B zQ3PjdEwu04=h2UYquBvG<%*?lyMh>DO(7S~M+Gpuat30-S{y#LpO!VneFfBK5K`z> zmNn|05mMiuJ}=ejWmK!@rCMD^b=tgCrRMTZtob_he*b3BOB%(F^ zhDHb#FQ3EXXnZlK^uhYE|IxqrkG(y5oE{_aPLDn!s9T<#z2n>* z=MU_ey9hMTQ7*@&+&{!41X=x{WSTgz{EcFqI)K{asPYD^i+&j^Io~sHHt$#Yg;m+~ z*b4jQF*cwSVQ`|f>_ZW|Qeh)yv^LgD%XKR5F`>>J4mQ?HyF$^%%4lt@mv&0g#>;4J zte18 zv#|&3+IOPQr|W&bS}WIxE>F2eY^+yuU7m7{*jO*EE@in!>{9C5a+fBI$Wy==b+b5t z-s(=w^4=)#nztNUw(@dlDay-XW9O5tyd2Awcin(h;fJtB`gN>}{sQZvHSjmvkG%TS zWuZS4?=A~#jJ{fqXBj&&o>+rAJB0Pw+ps44D9UJ*c-S7MF>aZO@s>?v%4xi1B2Coe z{ls|dL}SYNcs-Lej7LrkaH43n46C>WQ^mgpVkx|oJ)%*Jm;~;YBi$;zAriy9(FS<( zCd@)qLO&zWLM6&xK#O!P%1@nfSDxy<%ER$ew6 z>!sE5mY2;VFRHE*t8`;h$INo;(=wFHt8*)t*T&8#L%FQ%>X66KS|Z*|BY6ymhZJZW&t-@L}!g3P{g#vp=HcW`xqKbq%<(AO%Z9tO0rOO$|J4#MufQWB3%->c~S=>9}R5 z54zIpC*?fIRi|XUv(p7!>4+~+HLE{4R?^?C(BHQ~mj<^G4(czY`rH4zw8+&-mV~>? z`5S`v=a!6nttp@TS$XNmBL^Bc53gRsWnAXh?W~rdqt!?u(0cIHGpc!9+v7|Zyj;VxnlWxgZE?ir{dX?t%s2kh+-nzK0FKh-!*=?A5awW-+;A;**D-dvV@^PJq9=gGZ!HXlb$Kjz)% z%bgrgmV34=_w1b9v-9Lm&vW!)m)*g-%TA6b%e|#6_m(-i^F0+OCtVvY^XBeg-MP0Q zwLO2tb!t5~!1+*Gu#R7WQY*pr5D|I~IqDS5S48)e-Ct97e`neK7hU(rJNk_49vMZy z>AL6hSIh2SE4zQa?7p1-<+A5Lah13ZUc^W-g^>kULl|+g@!rS7W%t*5?<+XJXWC&yg$c%FRRdtW(OcK@{ZzG`jRz1w2JFU5X{T|VA_ z&wHQV>AHtUrQH?``sy*%X51^HE=Qq5-`+V$>_xXaH_xYl`z0ViB?FSydg!{}&^848D%%fGm5@X8Oup|7C zd>n6R?lhh>JIz}y11p@r07Xu$H%{PP%=@hd>keNX#-Lxt-hwIY5C4HNVcdcDcnqAR z>oo4eo10gezpxHjKgY=bcI-lLz*hnuGb)WkXxB(bxT{2cnejbyz4??iX+4QG;$7ka z@e}M>`tg1bv;CXI*821pmTZb6z6%#S^WnVik?VIz)r0GI>eE(Lch zxTlmdXdE_vU~V?QX`QW7PKc|;3G9WxOnwvZ^e`piE(LchxJSXgI=y@v@2%cz)|j_h zd<#LpgK!hx6&RDZVKtWN33n;DTfsdF?p1JKiOV(eb>m#)IdiS~^;s^{coXIgyi>Mc zaUtBLu6HZAN5Q=c?o)7oiPxCC$4D60<9*p{UA)$a`=o(A+?0rr`?(G1kZ_NJdllTL z;C=-UXpZ7#?7{r1F=9My@=F-bdlnmDAqN#l!d>c`-^?IK!o3RaQ*gh62NXP5;(L?$ z73Te3#4P3uWqdbdwv3Vz?ox2Kf_$HYdz_T2NdM@OAMUK>cH_1d`sghykUH$ zM`pematY`zR&bYsd^d~QAl#$iUIq6lxL?5o3LaF@$zue1t&_JKHJGu|Z=cxjo^Y4q z#cJ2oE(I@9knevnC&E1n?p1J~g8LObpx{9T-8oH&hw)X9FO=o82k(+GC&FC{UZUV( z1^K2K^CQ%hd)4(m1@|j>K*56wdh=T<9+ykd*Z00rb5!L=$gjj0&?pKiS6Bw`u!tz|F@wS&Y&&%+Z97{>KOTkMNJgndm1&=Do_vx57;T{F| zD!5O<{R$pX@SuWo^DfW%O038+Z^B&)UZNnsZeu`eghv&;R6)MWM+pe`D7aU_eG2YZ z@PL8`6{OYT-5FeS9x#i3%G`0sEqKT6E+Ypzrx*CYYYdWu|4eb79<3DLqHy=$^~gix z?2!k@CK{v1COVbf$K`y19&>P%=5XVfgEP(=>pTgT#v<<~g&u*prO;y(M+!Y6adM;- zdhFrgI4TGLJHHfqO!970=#hw93O!bFq{yoBIyq7bJqB@bT8ivRq|jrNcauVoNZeBB zF^eOG9-%lnQVKm5ad29SmXk=qF$(+J)fk`BCOLP+H)=SR<;=!01+P&3pOevX7ULNB z8%RfupNuZ5=m@U>&B^Jw)8rV&-=rht*opIHTw&9D0yx(m#x>sN@QkYBirVX0oK0X` z#}QQydo;OXL(Gy{410du$;0_HUh~a(iP)@jUWSp&28>3?mG3kzRr}633h6~W@>ZdI20A^wqOqsZGk1>PJO)tSMS*8tN`&`snN3yQq4Qs*X>G1 zfmxypa3v5a-~0U-db!>|%QvpQvzL0Vl5f%I*vJ^U6DMoL+55_S?iOO?WUjnF6;}yd z|L!HBHT?UKWZAzPNhW{Cl5n?+wiM3G{ch{WEz9rPR@}1uuC2u_%OpISF^2xn{vSQP z4eQDr$8i+Ju?l|e9@$vzl+US8^Vqjgg=FRsck^UIi1BMNv$PelZ71?P zjF#pqjCpUwe%trjKg9PaIKIs**ri~Pf&~S873^1VK*1perxaYF;Ix8k6$Iwkb+YRu267V!Lm5;w(U3jr_Y5>`}0wV6TGx3JxeZq~Mf-D-@hoaIJ#t z06!S1IJb~jGYMS^_9$3Tuvfu;1qT!yQgBMa6$(x(xK_b+fFF!hoU6#IIf*U>dlW1v z*sEZ_f&&T;DLAFz3I(SX)H5IJaQ(qZ#hH%0n%C%3ut&jyg1rj%D>$Iwkb+YRu267V z!Lm5;yg)S&5Cp>*rQ-U!CnRX6&z4-NWm!uS135GAiqm$pr^#|PJ9rNfg{qq znoa3aut&jyg1rj%D>$Iwkb+YRu267V!Lm5;_OUb&A)Uh*rQ-U!CnRX6&z4- zNWm!uS135G;93RODagI%>mCONn$j^afS0;8LlQxV03f}`h3gKo-YSqev_HILb#XAM9GqX z_GqLF&-L4UV`>z)0OL6c9t$z<;u}Kv5)Tfa;>Z!lslY75!S8cSf-B$EWBpgDJh)SV zd%c*453=#SzqvVaCwD-N4Nc@Zh7`=zev3)Jm$Vo;>bH|ZDpyP8YN=fPDp&SiDpaoC zlJR{f&Ngrcfp0qLH>IS?$xtPes$_;LnT327gA+?;s5}hCo$Km+`}7t3bzs)9-an&v zuv7uV^=U88fKA_vJo(o;AI8r15v;!H_b!-PkJzXs{kDP|M=F+vRJ1GdA1qPM#nbB= z6ld<DU;mc&AQg5A7Y zZGLOU-*HjaOwaJzv2DR=#htu)kUPIB7y;yW8+^*5=CfwLoe+T3z0jL}CyzF5&12K_ zBvW~k{l*^2R+6H=bX>w0W|wI9uWN8V9GnYz*TLZGm&G z$gw!`&=zO&cC22|Ig&-K?#$d}*d;NJ9FpEf`b}rS2K86Jy!oDAopt7@89?^ugZ5UnO;Xg6D>&}C`J?)=2M5~_Q6(p zBTla7lRFOw=cT4~lvBHLUTTgl%c)rt%*#v37*kH^#(Ak}C*{;`9CbH@*8b~kwbZ{E zyi0naJT7lFqQ>2jV6N^t>&ep7j`*B2aC~n_!v7+8qQAt+`r(&QYoX074pY5TZmIgQ zRQ*tD&WXM^FTPLfL(7?m-FD+JVF?AyqiR3qTSfuQGY%jp_KC=GzPO|PlCtni0kjgW zE9S4`yo3gL((_rj^j*g!<#XansD;c(z-D^m78iYG{-ecdiS~L3tcrQFMKU%PF^gZmXUVG z9Nkn7PD^CpFH)(PyMu8ga&XR$r!|m?`PgN$^R@3CJvbQVY2Rsj_r0B;nrgxdM0melYiUvK62g=w6Obd4cZh z1e6u}l`qh0**3l#FM2^hc>&*Z<(ss$|DbxyE~M$GR?i%!? zw}zhyzeFoEj^gW^_lZX%=SL1lUWq)1zX@cB6XJVl8w`AP1ADw7A!Cta-3!2#`FU|R zm0cRPyo?e~x`irLInJiC)A1`9EDKY*am;frj;mM>ovl;b<{XXM7+ZG6RIPO_r*p5< zP;U+e^Y&uaiF?q)rJjB+t>D{u_r4&PhOUttLWe>xV}HYOd~@_3eD(YZ`EB`{d>eZ+ z+OU^m8s9lTU|en77G4rwAKo6e!qwsK@UifX;k%6o@YVBYjUO1lFoW3D(q~SZXPdjs zE6rQXd(B58`N)FEn(*u4nMh^i0`nR3rO2J;&n>@IXBDia)+TGGb=|b;w`49Mr7Vq8F=cz>VX#5p}P`t^o&QbE787+g-yN=dEF_aW9U4i_wd*>&0Ee zZhLX$u*=}oy2H(((sJ36PTK`}+Zea>ZXC1c1l|ccS<+T zPU+xmX}x)B$=o*XLrRf|T`7os|n{8?3 zILhb6*(q(=wEb%;H_lG!;8=P$FDHh1<*=o7WV2J+ytK5Mn~l>pS&nPr*Mf}ujJL4Q zuT90SmrMIauEidgT)jB02|}mD zc9e7Dv=-cS3oxR*9y2`r*3^q=4gJ{XIfQRm-)#h#H1LkAqv*r)5do+lhrhV8IdbYL8 zy3)GEy4QL{=~i2UTgSRB(puDIa7yaM>ax0V?pk-+OJeO>cVk(1<(8XskH9B zIF^POZ~e{1k)M~2GJ7#vgXK8p>c!b9ZE0XxExMKH7cqat-M=$mVAIhdU*EdYa0X%r2)}GM#5R9oGi92cGk30&nc|Tdf?8 za&^d_85_d0_cu4j8BESmnwUSX0p#DS(SJwCo}1<0XW_S9x{(w4<8J}r;8$Iow>df6 zX1`CyIXAx9xg0XAQtxr{JKZcVcS~~D8huIE6H9P5PJU&Y7zeu<*e!}y&ks;fq~412 z99-2vhT|C7*mHVc$G&#Ht24hYem8SfmKvpN-SOK31(c9ubxY~a#4N**iWUN2>pmav zGF&U~zT^L9yhwr%Mdl=m|eM1OJYl(WmM1vieh zrt8Lw)wN~!#q1dur^n{Zxwvt>cJtA5Y2`SZ%I2oRcnzjn$M+>798!H_qng;N1M&SWW4a)}eFbblKdJI6ClRIp;lq`IjdU zmz;mk%WF}x`R)0==7>%{-!uY`p@%Y_zSpc3XPW%VhJDKa`IcG%7HiM94&d6hVZAD- zSLy84#!CG4lPr2!XUkn8j~>>O@_G4MX=d>NzBqC_)#XIvc4u;y&t*?Wl zjWC^UC3gJu;xv_8+YX%<%Qs|}sClrX=qKKZzwYulX2V~`TOj!A3T91~;BU5USKooT zTRvQp*|s}p-0omBcS_^nbV+TAom4hP%jTux$}YLs?Szxc!8mz2IHuwZAiYC-h|S5y zajdU-+gf#a+ZeY*4$juSotvXmN6xwRIR9*b&CAw-ZneF2Yxf1+x@4Kldt?UUL;(@= z8I)cBdseL*&F@41e%l1bO|%JRD**0UdhQDM&hGQ;+pK3VmA*s|EIjTd*aNXR+&`D^k2j7X@~a^$bn%)>6UVf-S?q9q+&FtY<=_}io3JzL?%8O1FM3|=r}Hbv>^;z8*@FDr*MIq5&U^D> ze?)&}l2L=J_xvj}`~u--$U#rAYsc;vyL+HcKh=w6zV5VkJoDl>;>e=^c^hio`FDp) zA0JF4;{F&OCtFF>YvB9}0ec1f+j(5M=NoW)#MM|M<2T%%5ifCt8tY&kBR-CA*4Z=1@tQ}!yzLHDiSf6J_;@cMzfU*qtn#cJ;K1Jc+wX-n$HXg?^Y^7a

7IU?)$UfUFEx>_FJ9YS$Ub-OK88r%{|%nd(_-Z TXuq}0y@d9=z>I1;h4_B~e3YA$ literal 0 HcmV?d00001 diff --git a/test/shape/data/in-house/fonts/872d2955d326bd6676a06f66b8238ebbaabc212f.ttf b/test/shape/data/in-house/fonts/872d2955d326bd6676a06f66b8238ebbaabc212f.ttf new file mode 100644 index 0000000000000000000000000000000000000000..21b2dcace4b990233ff82b1b2c39c5df342bbd5b GIT binary patch literal 17556 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