From e8ce4f5d0c8a49b429634b4b59f75270a5d65b16 Mon Sep 17 00:00:00 2001 From: mes123456 Date: Thu, 20 Aug 2026 23:07:57 -0400 Subject: [PATCH] Complete M16 action select lasso parity --- docs/EXECUTION_QUEUE.md | 8 +- docs/status/M16-GAP-00138.md | 17 ++ docs/tasks/M16-GAP-00139.md | 37 ++++ ...P-00138-operator-action.select_lasso.blend | Bin 0 -> 86894 bytes tests/golden/M15-03A/completed-gap-tasks.json | 3 +- tests/golden/M15-03A/next-task-plan.json | 12 +- tests/golden/M15-03A/task-catalog.jsonl | 4 +- tests/golden/M15-03A/task-index.json | 2 +- .../action-select-lasso-desktop-report.json | 57 ++++++ ...ction-select-lasso-local-exact-report.json | 35 ++++ tests/golden/M16-GAP-00138/manifest.json | 25 +++ tests/golden/M16-GAP-00138/task-context.json | 185 ++++++++++++++++++ .../web/check-action-select-lasso-desktop.py | 39 ++++ tools/web/check-generated-gap.mjs | 40 ++++ tools/web/generated/M16-GAP-00138.py | 63 ++++++ 15 files changed, 513 insertions(+), 14 deletions(-) create mode 100644 docs/status/M16-GAP-00138.md create mode 100644 docs/tasks/M16-GAP-00139.md create mode 100644 tests/files/web/generated/M16-GAP-00138-operator-action.select_lasso.blend create mode 100644 tests/golden/M16-GAP-00138/action-select-lasso-desktop-report.json create mode 100644 tests/golden/M16-GAP-00138/action-select-lasso-local-exact-report.json create mode 100644 tests/golden/M16-GAP-00138/manifest.json create mode 100644 tests/golden/M16-GAP-00138/task-context.json create mode 100644 tools/web/check-action-select-lasso-desktop.py create mode 100644 tools/web/generated/M16-GAP-00138.py diff --git a/docs/EXECUTION_QUEUE.md b/docs/EXECUTION_QUEUE.md index 447d0e1f..c65bd101 100644 --- a/docs/EXECUTION_QUEUE.md +++ b/docs/EXECUTION_QUEUE.md @@ -9,10 +9,10 @@ | 字段 | 值 | | --- | --- | | 里程碑 | M16 Main、Mesh、Modifier、Sculpt | -| 当前任务 | `M16-GAP-00138` | -| parent manifest | `tests/golden/M16-GAP-00137/manifest.json` | -| 任务卡 | [`tasks/M16-GAP-00138.md`](tasks/M16-GAP-00138.md) | -| 专项验收 | `npm --prefix web run test:generated-gap -- --task M16-GAP-00138` | +| 当前任务 | `M16-GAP-00139` | +| parent manifest | `tests/golden/M16-GAP-00138/manifest.json` | +| 任务卡 | [`tasks/M16-GAP-00139.md`](tasks/M16-GAP-00139.md) | +| 专项验收 | `npm --prefix web run test:generated-gap -- --task M16-GAP-00139` | 领取前执行: diff --git a/docs/status/M16-GAP-00138.md b/docs/status/M16-GAP-00138.md new file mode 100644 index 00000000..3100d413 --- /dev/null +++ b/docs/status/M16-GAP-00138.md @@ -0,0 +1,17 @@ +# M16-GAP-00138 Status + +status: done +task: action.select_lasso operator LOCAL_EXACT slice +updated: 2026-08-20 America/New_York + +scope: + +- Action Editor lasso selection on `object:WebGapSelectLassoObject`. + +evidence: + +- Blender desktop and WASM/Main expose matching three location channels with frame 3 selected. +- Save/reopen is exact; malformed Blend input is rejected without Main mutation. +- Fixture generation, desktop checker, npm comparator, direct comparator, context handoff and manifest hashing passed. + +nextTask: `M16-GAP-00139` diff --git a/docs/tasks/M16-GAP-00139.md b/docs/tasks/M16-GAP-00139.md new file mode 100644 index 00000000..0fad2480 --- /dev/null +++ b/docs/tasks/M16-GAP-00139.md @@ -0,0 +1,37 @@ +# M16-GAP-00139: operator:action.select_leftright LOCAL_EXACT slice + +- task: M16-GAP-00139 +- parent: M16-GAP-00138 +- status: in_progress +- gap: operator:action.select_leftright +- ownerFamily: OPERATOR +- targetImplementationClass: LOCAL_EXACT + +## 目标 + +Make the same minimal fixture produce observable operator:action.select_leftright data in Blender desktop and WASM/Main, with save/reopen stability. Change only this gap; do not expand to other data-blocks, editors, or browsers. + +## 输入与范围 + +- Fixture: `tests/files/web/generated/M16-GAP-00139-operator-action.select_leftright.blend` +- Generator: `tools/web/generated/M16-GAP-00139.py` +- Production: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp` +- Checker: `tools/web/check-generated-gap.mjs` +- Do: field read, desktop/WASM comparison, save/reopen, structured report. +- Do not: other gaps, Firefox/WebKit, or full editor behavior. + +## 验收 + +build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00139.py -- tests/files/web/generated/M16-GAP-00139-operator-action.select_leftright.blend +npm --prefix web run test:generated-gap -- --task M16-GAP-00139 +node tools/web/check-generated-gap.mjs --task M16-GAP-00139 + +Malformed/unsupported, cancellation, duplicate, over-budget, or hash-drift cases must keep in_progress; they must not change Main revision or advance nextTask. + +## 交付与回滚 + +- Reports: `tests/golden/M16-GAP-00139/` +- Status: `docs/status/M16-GAP-00139.md` +- Manifest: `tests/golden/M16-GAP-00139/manifest.json` +- Handoff: `node tools/web/check-task-context.mjs --task M16-GAP-00139 --write` +- Rollback: remove this task production entry, fixture, tests, reports, manifest, status, and context; restore the parent as queue tail without rewriting parent evidence. diff --git a/tests/files/web/generated/M16-GAP-00138-operator-action.select_lasso.blend b/tests/files/web/generated/M16-GAP-00138-operator-action.select_lasso.blend new file mode 100644 index 0000000000000000000000000000000000000000..a07223030c9cfb69f14a93c150c9c589371dfd61 GIT binary patch literal 86894 zcmV)YK&-zgwJ-gkK?VT;-8KNaMqCj|U>cqSyT$wmJqFws4PKu^Y$3q&>ColS;Njq* z@nua)3B>=0(tmNi^UP(w(FQRIEQYtQ=z(saGJz*55LDW9`dkoy+D9WO1pomD0r~(> zr_Akkivoeb9M30En5}jjoeXt-RkQmItR$jJQd*6wz@M|EB6>~_1a)o!CWI5##roo>tZdNrHL35LU=l_YBt z(-$(?tN;)Q+LVAtI7C;o|C`qw#zK8M(Tu%CTrR zn>;F1h$6vcGH*zb(6l3wNL$6y((V0Lu~@XdOiWn5zC3sh7%&FN<#PM+c+6t8CV{`- zwQ~8)#de$J@%dtkJRa}Fa>?v+y<%-7R8$$RIywVvKR%xiMzhI4EsM==5fcL&dj?}6 z7%oVC1wnz5!C)}g914YHqG(jfRTYOd9XIPAZO_%r<+CJMR#j;bjEabIh{PBKzu&Lx z>2wmoFeSB?Oo*w;Vnxt=Rs!Qk(=va0%JvKiWOI2!&6u+RTXDZi7$w+f;S($rTJyo z-GXWtHAF``)`LU1L~R=gkNo+mYZ}KD@BIp?Qq?Gj$K!nwAUGz2!5}SQx7$S}lgJt1 zuh)y&nCzeTT+K{A6AFStac*vS-g_VphwB=R#TQHWy=6=$cHZ+f9WOJf-um z9Y5>1mT}owjVGrj3(KXFKuoWP(|PZK1Oy21p@=$ll7(gU_Z;_9J_~^FsDTwR(2${# zDM^zw27v{}AVY|Rh^odCU_c-g4T2B~K@bi>2rz^oVF)4wAwUQ!hC&ol#xce8Fb8C+ zE4u+`ah>soF@QfENq}Q1pbBXPpz^hME*lX}0&Td_?1tg8EDO{P&Li#cB1KQEU4t0F zYlr#(Zrp%0SVp7o_(h!@4mOZrM`4`6?GoTX$J`x=OYQX}xrpKo9!s9=@++zTqkO#i$lFzu2eXR=L?<>Fe|NkFuLkHkT zX@LY2!kl?Pw-9@u<^KO*(E*t75|}UJ2IR-!|4*9e0Q}{}-1m4dFk3Iyb*sL&pZWj3 z1swoN&Es8&`hpP8arYPEz4!kA*@zCncayu{`1+vvJp%)~&jtVgNB^+}x%u1#_)Kkx}sqJ^tTjk;)WQ(a2U=lxHir=rUESs8SMG_q`MywTX!2 zqD-Wws9Ln>B-8F0TVzEIAVEGY`1!|6nsM5m=|05Yq$mkEesvm<=}uRCec_}p!+yVg z%R3->eX3*MxgFDnL?EMsGcm;ye)T#r#nxRkD^0P8?mKmtrf3242RO2$n7!`16aZ|w z*TQ4KvtQEiyHHaCc%P?#aXM*^12BZoY}Rb?bod-Zj64 ztnS9LYYk9hfkWbZhF*AMbb}h8m&wlO?I9EBO&y?ti|2f0oeAXD254jx#`l74O+e8z z;2ATPdF6Ql#D@)7eC}I)4VtJ-O2?bufHI{T6>=;TAJACoeP*;CxRnNAM>EqMB%5cX z$MWybr3NUqFa4kwegpsnj{%xw8BbFXAg9@83`OG+<^nCEi4fX}V$0uwIE-YxcS#?` z$+PL>2Q#yMB9J~cZll_igpx?rlnY7W>wEFpue%Ofe0{Th@fwzTlnbde)oI5M;ySh@ zG6k#z>IA_AJwvS0VIuRtN2I@0HN_-cM3O8)0)*?gm2#;tdepGNW6p*k{iUjmv?EA= zsTzxaK+9m|wG*L!EBeVjQlUDP2=$9iMgp-{L9j0T9^r5(?2y;hBGi>cD0PHYe4&DX z)fceKwro)U;+6>YYprGYMf1PduD%^uB!1if0MY*tmrG!hrk!PG|GUeK-ulgU^p9dr zwqv~Uzvw^N)~~f#oK4{G6|vcJ?~TBsW_cI%*1z}ea^WO03C=eM!{Kl^+_sICrDg0V zE#p*ljEm4Rehqa3evbs1B){Ll|9|&xSo`Tq`{_%++5QoGy#7ZP{ePZt@&D-mm{tM$ z)CRN*{HYCkYpY6n>qfSto(F7_-VyiIu(6WQatv=Qz4hB{|JL9??jNK4HwxJJbzjzP zTNXxQeZdu7eLmBNBB4lTInQKC%1EE*c$Q%~Zs#|KV;6qe_H|vEbz3;tvg{UvINaKV z{#z8KE=u|In(0GXY#JqM;!LT(ygALJzSeYp8TWY{i)VRr-JD=KzB#=yd~ewn`UHAVZ@ZTDj;MM+G8q!vGqL zAdm3nRioq)03acthOCj|{86zdU#mJH%TPiN##li|>VjKw}-+SW7nU(!-6m&pdAp<30OI9sPf?r62Y*nd1 zLroe!P)r+C@LescWcL3UL?R@C9c<8Y*DOPhd?5jP9Rcp(@kL4nR~L+tQ4%UJv_#^D zui7^Qh7BNr<`5{BAxFN90KLF)v}nPs>_G|@TZ%rKidq!XLxwQqN|t~*>C)o0dGbOA z1s3!D-+S2Lr$ah%(I=A9CbN$yXAvAO~PQ4pOKn(h<4wf9pwqsj9@tk}e@YwZxl}$P83f za2sht&eEeZ4en?+gpaBTN1${@V+s8`O<#zisb}XVW=<4d46!Nx!{#L4F!v z#RA6~{kMqpm#SAf+7G0^RE1x+H8HY32@=08H;%#Vzsa*J8w{@Kx}83PoXI5>K96IwoReeQ(!X{3OVuI~hB9L@fQSIp#HIOf2c*ALeOTvLl@%>yyaU>@!PSSFNPtedw8DU2JfOsQykMh{_!rn~=`U4LRDJT(V3Eg2>%Xc> zOKpw)&;RGiYN@TA8V33AUH<=YIQ-!nhjoX9n^_9vKlqU@97n!-;OKFEB0UzsKMU-v zk$wMG`*HLLzgQyOn2wab!NCr&vz9ejkQ%B5Ib!%?ieIb!w-yHY-I#tm+WJ#EhDc3);?Vb-`aHaAPtM~^*Rf{jpRUbgLpk_&G`JNlof4jl!i)EJMd~;w% zo;;~#Xqd_dJrZu?6jcp>Ny9|i3{C!18_)p#sSPpwx?1lM)fP7YO$J{U{>lb}>%020 z_}&sV&9a?ISI+Xejc0i!<)$shP2|7DaqKszSG4+F_#MaE*S(FOb%X8723Ma(&633O z96wZ%awvlk<^r(taYu?XB{;|g4}@IGGQt|{_&H_#P)}C3y)$=^&_1{z1vM!L<1Fh} z(9nR;>V06PMq1Jaby!G(M-ER84^^tr^l2h|(ZY^Y5Cn-b*l zKt~-$o=Wg=h;c$08O)IA@C3yZD}mQEfsv|QC+k88$Atu^4l;3A6=`@^H(KEun;7i> zG7NqQIKRTOcy$V0m6^%IZ*D$pBFaA6=wKeoVSycY3)YR5ap6E58 z^5_2{!3|!RW{f7L8G|c|YetM1LV!6hU=S%F<_w^hSCAP~W)K)MWazw1uc;|uR}2$~ z8Kle0{4eV3C=vhOyreK?2>nz|AoP=^2i+;mDf1#I3lEM97CbmHO5pYR!{#JY;eeSAGH=Xus6k?8WJvB5 zL8k>UJ1Tg7swOyrD$bN)@FRocf(7sD#+LId?CR7(=8bTT4GdnLLaN!w6#*BdbU1|W z1I%X#P$=p){YlSu;B!_ab;XKwlLK6a1`Nnqz>1xf(F(#D1S1_YTNj?_b0IY1^?(4X z6KR|F%K6K&*o@1I#yseRwEA=m%^G+5iYaV6ccXpG#CV z&ZR4R&fS?1&OvjP8Izg^W-V5TW>_O`IOVKEC>a#OU-S#5C9a_UFi;(fyA~n_$gv zwH_w7h@U+K(x1NhRS+x=h674)pyaH>P-X3h_py$zsW+ zk1wK1y8D|Asmu;?=KQ@<4*d6!?scLoBFHWf+*W4%7q^w`wiOX%wg+il>}vXSiM~dZ z8_3j0Wgs%p0nIzkjp<%+`|m*A|74#&#{~>D+WfsNIX07F_jOzSvSM<%U~mQGivgi# zNsc`degpJbj$;`1{hOTM7cSe^ZD-bP$vN1v@yZ5S*%w@08C`vFZ2C~tbj>Z6BuoDJ zb2*-2`Hfw;echHN!3Oo}L(Njj89z5HsrezjNSWpf^Xle}>E?~;NN4C(?l|&|c=aEb zy9pUeqtcm=Kh<*<{CinuPBvpLpp@Yles6sJkMp@#e&$Te2EWN|hW-fHR|D%>w7q=j zf1M)z<_40LWZNwLr7F2MNPnq%vUwMgi%f_$tY6%lZR95CLi&s@^zn)&H0nVAQT)2q z^RI8%fkl(?_kLX5;{IiR{CCUfGcQA?m*VfGIO~cU{GzIwY^R z3yqA)25RnxC1+XN5ZatDA3ZWNHKgfI2x5T;keP=rzl=WrMRX=tEbZ4|U6+W+|7XIg@gk&+#mmupGZJOuFzpx39~(TWq(;2HhZ; z_2zUS|L;T1QWT*iZ%#8wMzs1*=J5>6Z|uUat6Mg>`dW|>w2K2(0@|fDi!>jRN%I-S zG@nsSKVVGK3ll*Wv@j85QN@6`k|qYk6%h^XzrM)y|0N4MA02ikOynqlCF=P&5!#kN zz<)5K*pWuDmUL?Gv}N8R7@oZhIP|@Hqi=0}uN2pZ??K90x+qo3E^R+=HXoi+_xw zG>VN-3b8%DW%Zd+qu8-7&Rfb;TL1_|@&kH-v)MWb*b-EjqsJk)!wjvaQJVsSo zYHL?K{8v1Px!aQH=Ks-60yP8+UT7xpxT+Wxj-;u2==A3NRyO=SK7U&Nq5`hdT~9GX z+rQO1lWOOq6aKw(%aLwONdMVGAc?tJs>Cr;Qtm$VH_*Uu zTM}WQtrQz#gtv@e41@L7VWKN$W++-3``(S6>!5>PD;1PlrF?s~?-#>@s}yP*^}b4f zsftr0z7Y4OlIH1Y{vU}gdRBirr$z%l)J#cKawFT-6R?;>UAk3imZTc-#XpX?i&B5* z_xI|pzXv#gDaUdQ$MEy5FJ5fY*#ke`hqKqu0E7C zeJEXPYm&GVpj^7v-qg?nEquO`LIL5kLFS$9r-7$`>Y;f=J1<}>? zl_(TxmQYZim6=hypW3lRmOGNRj}N&pu(RDhV? z-B`j5yChf8Zh{Pe?4|(ycDfu&>|T)l**&SjVaEhP1a?g#SnX0=Fle`;2b~?x(3)LR zn>@P`M{9N??1b1s;K9~T=?BveOHbI2>%@p1lRQzoDrN@ltQcZk+v!2OG>r~B8Y_gmQ-zpa&&m%wt0zc1DnCcNEEvRgG}MlEs1z4FD>`Yrp6u?> z5pcV-ECRb4I+j#4GwjeB(snj*O}iRcO*<{KtsPbzFFPAqhISz;5CPR$3Vo=4UpHoe zpoQqHrn+=5Z1iw28j~}03UV&Y2%{s3eDUE>oLn6V+;j=@L#NAJFes-chuD-R>69kv z3O0JVIuf{%NjQ)LBMNdh)pa)2CFTcH4j2MYPR(h~)setWmmoiKG^CIc0tYkX9-wrk zbIKu>d&9Gndw|ka?rf?{r}TqK=YA=Zg8`~3M?(rJI;*L!Tmn=OIj04Oxlp)u;=4PXA@~hFqbnq-yNi z5t;(izHS?2gX>Y>pg~&39wbN*loH*827PG{5+n!;`ZUmRD5GXc+Lj8z^S{Xzo#R=C z<#>H#7=Fvwb=#Iu@Id~f>wTzMl7v3XF-$`P3RD4LFz5wC1$IZx?S|f*Gz*QaiKyl% zaGqrm^+B8CWJizegePe_6fLmuL7o*nJu045DIkOvp%sW3QyjbzD?9OH$=S4Yi1+0w zX-k>anS&r2c4kyS03*uCaO|`vEph@ow$VauBM#?BBlSV^`g>T=g8V%!xY4|W+jp+p zcSMlcc9fV6t+<9m6uy;@$K{{C!ND+@O)EMhn|?>u*5=Q31ODM$;WRDyYSn-u8Fd4+p;7ZT;H{6i}!tt-&{AR zqc#*bCzLeHnS2PJf0JYQbsv^yNB6kWe!(3n4wRS+RWv-9qM@crA1bgrX}BoC+2RLE zs%6Ji(H5Ja40tSgdZAchWnfTGEddiiLnDI*br*+*Gb|ngp{Y^8PY;b(jkF!1EEsqY zQMJYaH6e@+E`U+Saw$6j#GOqgQr?#qI_07SCmkV&Dki&iR&B}B?p~cTFM>)Q92ZPH zI8RBuK2dHF6|kHl=pbM_sQ}ZE#gzuRRKP+A$3+Sz!ZkK7GT?CukuRvkF;v7Dq{yKW z03aX$0046sU^oipNh(Dllk^T0fCv>jj2vos6cPqSq+}Qn3IxK25eQ%ahQSboVK_h; zrj(MN0RZq?8p-3wBH+pXjs~*4)N8R^$Fr0ehVw!{j+sVqy$!Kbw!^_et;vnO6;B1g zhv7!{FX^gdR^1px0!km;!m@;IlHs#gT$EvTc#2KV2ZIR=BV1-Dx)GeONRW`jl;3`hFj1c6&O=&O$h@1Nfw?NI2Xaf=Gwpu<%Bk|)7#P-dxr+7TG$;);Xwkc1h#+`4t*=HFZQ&Yk= z_X>=J%OiJM%+Oo0riHFE%&VQdyrJQCKAb{=7S%Tj+jij^y9xpmq3~p5xkc5cpv7PqtQ;GjTxI>p!Ta z9_guc4g=HYP1#LJ->t!A`gzk6rf$vhF@W6~dZmF`{;UaY46@dxh63Q&!_k7SboH^-6=R+H7tN-rmQv!pa!?MdVfi-!esS% zQwcD{BXS!q9D|W9I5R6TN@L63@=8i;1sus2iG3_3ma+iPy8J@jDd?9c<5JcTp1S^A z?Mm2Z#t*(VRh`}Sb{A`Q681T2k;xq$jx>l=s?obuwe2KY(hLQ>^}cgZwx34!oNXtH zvgesS*H{L3>C!S*CT?*ok-d`%&pK-{O$NJr1ox#T8qs;xJjaM{Nxo+KWRM6NK!{jZiJVRjJ7wId7OVYs|&HryY6Ej*8R%`pWO zwkSRL0$u%V+BnA!rjSdkPk6sALd=SV>Wqg+{8l1>gYYh)EX5n9P)wVuvajQ1 zTR?1iXq#<2;udjEdff7n4R0kmnS$BcF06PCv=cSGSk}U9eNBOS;n%H=0@r4PmHJg< zDK5|!*=4xCc#){%Bb@Annoe&FIKT2TRs!M})*x`}nynBx0LF&w;? zSmyRiXXVR~DMG+=<$bMWQ*0&K^k&FR+TLngySmtEQgnh-^7OuZ-g*(qOtfF;-80^o z|GQNzaqV3~qpJFEzsmc{8Dsfn=N_C9m!c_@D#?6i5B49U*iw>$Lvbtl&~W$|rB?lr4%|Y(;Tc*=TJ^_z z!qUqGdSIwB79QOdJN`I%Io{1ko95feK%th?ioq>LEB6>(?Rl)ufd_u2*8|g%Zj@MG zY3a3^S5vGzd(Lxn6@zNSrX3v8e?np5g^r(R<7q{GqOC9sieIF3JHn+Tt@AzO>57y6=;Y=dFS?kyt z9Ld93NE_k}uEV==n1^R$&QpTP5f|dgd{3-{wIz0=&KiBN*DPHsn05FDk#@td!*NF| zr(z&Z+dACYaNZRe(T}c)GGW$^%d;zA176MQ(!Eo}^PbLoyw%|*PE`>o-3DLL(sKHx z2WD5APP;_5H1g81Y|(gm+^rQlAIA98whW%B9JX7D(`w_4{2G1>AADmvzFz9>#Ta>( zHwIpZd1jpi)J3>eW21PU7&oOWrOXyfNEKhmHmL5G&emx^*-lVq$J3fXtm<=dtgKC{ zJDo6K>(kQ)ZXLA3Qes;^pp9CLHC<{l17D8$zGPi`7Y4Q8#2rn>-<-rNBJQB-kIxA5 zqT$192av5XUY1bF0A9Lbcu^Jw6Zfcb)Nq)ViTZOW$cy%gJFw%Be5-fC>bMSCoC(at zebuU@)EEYcKYIvPX%}TmdtRgfsV~L0bT>E8-*N0_to(+XB81eIy1R4R(&dV_>Rjbb zrbS6(5QK2^jP1_5t-xqa)Y99Q-Zy}l`>XVz?8omDR$RB5M0DZ>VDReowRWiP$9&Y{gt~Di`ns_2G*{sOWVTE6g$nRy%>hoMaBSK?5u4t z@H$!&s}b*ym}SxIPQa{jAwn0-yxLyu^yHQ+7i?V)wX3!E-8HYsxMHViCoz+1C_sWS zlY1+jsgn*fl71tWuAfrt%sMN^`>-DM!B(=gjGf(Z&dTWVwXpIBZ}-U5rTEs)b_u>4 z)&?C$LTJvaFHO_Q(iZoTw!vC*c=xm|Ew9P@vX7QxsqLEubaFTBCbfvJqa{acdgH2a z?}iFl*U+~sFlYlH=ai(TD2NRH`+sebb6!&yD=vIT5 z>oR-V2+D%98*1038yz+;keT)xoLFxY(WkC5gUtEk8yZhFCn-L!xmj zv{To2?y@S>FPXOCEVy7ZUyf}eP>Xr3TrP@UQ6{7w}E|Au1jCo z2I2#K%f=zNqH)rwy>d~mYPz=$=F4)iq5*8(K=jt^JvIYjw?+!#z(%Y>svPEO!yQ=8 zR5F0u5!)cuuXw8*zK*o%`Et?F{_v!|lHn=`E#BE0{sGy9fANh9tRzj)RnpWZi~29p zKG9d@oXS=+^Ve$mC{IcbZwGT}ru{8M!Uy*sX(^~exXY@gY3KPfxO$gt8%E&Vs0akX z4BoJ{nwfF=O<8sfIgglLz?h?2O`07H>|xoZ>zx8>vS@BsWeJ9#MVG?o~_ob;Mqv8={F? zZJP8S5sl7&qBZ8mq|zN#YrlmoP0&n}W64{4oMTV@W`&pt&on95-~+rgEbMz|RXe++ zaf56NNWDN($97nq<}N+t=WdN%5;Kj&dIh>2Ae9>OAiC>gjb0wzZLB&M1`1 zjt~>#vpb{LHku=+HLv!?T*~sK5Ej<$Y^F4-jr|HA;KXlRQ)b_c&XzS|>o9bA=e-VE zYxX|QcWh&2)ga!&%%r*snVb2G8=X*jl6S#v;AK0uV#8!j`1O`(M@B53vT0|&8f;C9 zj|F6m(ehzlG+E6B(Ox>Pl2YBZE)G*H5YSxG6!gfroM&R!|kqEV#LI%Zq zfVAr&RC*@{z!_?C=;^<({k9WfYwe;Z0DO#2ON&q#!L^MB#Mp^fRJ0r$meOb;W4MX% z6q&7v*%TmR1on)%vb|bf_NVzXu2GtGn!B3aXkZO!O_~Pj33?i!grOF;>O(ik?|nEv z4`=;MvbR~f%1EN{ux8P`?#FpOXG|! zmFS;#gm2Q7Wy@5}YdVm4cBQAo5HjnLyE$}t(Y9I6(V+V*2kaM9XVAnjX4NHZHLAGU z)m0m}dM5#gTf9Vos~ERsQr7U zdWnS9(Z^1-wCuw43WDY{mi#3*V%KI{g;tv3dIT*13<2EB*tRrkfXs`qeJq(Ii;VIJ<)rJH&|5;R%R%B;-PJVBy>{QoypS778Ao}xG_6}8Xk~q+<1|^`5f&Xx zrPsmy_nclufu)SVgq>hg;o;q2t_e6Zivo8GuEE>jI-GJ9Op^5_z`zxsj|0m?+b}|s zdT#0L>K&@FK!a4*B>=*)@`^VDC-V$`yUcc}Ac0wVIX)fJf~9W(#hdN)JbBIMuF=YC znYFQUdx1VI&6+LVJ z_J$kd*rgaQnZ>kj#zd$08;LV$;c_3|8j!=?Hmn)PHiOy<5x3(%)Ze4?wJ~RzxifAt zYvmeb>5&?9&Pz0BvLRii^oq+cGRKgw4jvUGfyT}X8VLL)5N9gs zk|yj|KS1(!4~G~}{)^g_g|esPc!#i5QN%g_Rtg8!T$zxCh zfLs09hy&I#*@qSj- z<*5JFba3LUoKev3gvxz~vOMaUfNtfLb0n%~^m-5dFmEiiv+%c9ba_m6hte?h1?s%i z?pU?!`5kRV>#$HuZBy*Dwq<+cLaf<$32=7~JA3CEJ^MC!XR1OCM##_)B%vA7V2ptV zOdV#7AS9{3pD7Z2`<0ys;3w;J>?<&T(l72k0&HvxMq07dt_g#mjj_ndSZcq@6gt3q z6L#%o*mN$uSYF47L0G;`-C`^ohz14!y|{j<6@_gloM`PB(!6e%2aw+ol3D(^vyAK= zz53mRb)mb}v5ogS50tBo*GGkgq!e2X;>ki!!ZFQ{g3#VXX=FW`^>cDcuPm+=*6$W? zB!`9x+~8b!pNx|Eaatp7_K<_L^`$m;_hmXcs}RH{CDV@8oYmsW*X+OJjWCL_DO%dH zRu!A8I4MpZX8>nXePL0Ns}}a!T#8z;aDlHm3HJ z^%h2Uhp7&k20y4If|9DHW9^mtL0elA%XYi5TuF1aa>H$v5?uURyMf>stM}a zy{GG7R_l>!FNv))4sycnUVODQ1KitAk+k~7ni937{q4MPO-ACYw% zNZyJKBW$~a6w_S@ijCF%$%1Y>n=o$JkJ@Py6GoUP(_~}Hf=^7(68{z@-grFdqrWs4 zxRZT>g)w-=&KorCoL`p$FYEw68KVNmLMV@b?5mYGc;&7iEWLoFnGG?tYnxAn<)XeMJmsV9XhWOMDpM7)#$(D+2nQL=)x z9rg-r!xV`h=Z!6`zl&lEfW{=@i@|Y!>GH!0(qwe&rhE`!g2DS?r1dKZb-Ck(!D4qf zmxK+%Q=a0^3NqXA8ecRPM97vcKfeZX#y#rd@o@!NBjZ7^c1=nTW9vBdz!t>QBb z6l2dpja_?2s{t!A(U&yW#3A(TO9RptQhz+ndD7siKEs^!e4WnFs`oF^5nuA%Cc9(T zaP2*|J;^l5X8+tTWR*mi3iTr>`nEyXKf z<`0OKe{e3cE{$_x+taxa{`Z;p|C4r{hDXOpy6RDBVZU%k$I1#%*gWwD+wRQ8k^3Jy z-=yyC!NVNTOh>h`*Q35rgf>XJ@Rq&>oZfcstadW`5T7xQYp@o6S<-h={?s|(!(DE3 zYE@`^+$}%l#`KYtB@bz6+tdH$(33V4!1BO1?Su1bb1UGIwi8fdBokyHd`tSdLJbQf z_g2coT=e~UuV((BKj~sfD35!Lim$is^V?P)lxPYi!KyP&#!wnOb`T9~V(k4Dvz{+6^=F zz_4aph$K#u=_-^=J`-X3qpQ=m6Lu(rCEvPxXW z^{7Z+8ip#@W@e$RSQxQ}AWHM}7#!hU=TL_gnSun#s?i*+Rs z9xmqQQe_v*#G)pdPA`E2>+a6s!D6z7`_XOg$&Ihia1Ec1C4bO4j2(*C28Mux8yw)@ zW(l;T^ZkLpG@7I0Ikz-= z8BV{+e+b-7P9?oQ96p-;{U}@1Bru+q`ijnY;pt|My7HeM%puk=O)?0`)3&9T3zQw} zkS@0a(4XeA3_@`c!zjJ6`vdXV%$joV^|54)Bg9zVF43i~Lm;}qlQm|3iTIVcmn4uG>+hdX~p?H8e@mCF&k z%W-6xWYRz)7T$c>R#aOZazh1V*ja&h*4=y{J));WgcHJ8j@d@6w(X%cP2jw>*vZBh zpbrD^zvMD!*FyPS@q~uS!xQTm0k|b#CppF@4`&6TEU&Y)+K0mfI~kLRB`Kzt=L+lf z+arck(>Rf{Eq$}?%FZU&McZ`-w}WBo+PNFFovD0?ZuK@d$_!!h$!RV$$zz(r57q&F zlCwOJ^%`?Z}V3(>U+`+PneebmK3BCR0aDX#9kNJC6140~T*+ zwIz`{3KGko4`8;#{vs{jX2yG$0JVLOl<_e+_!&Eu)C7Z?<P^KEY zYyqaCIs70jV8cANPVT2pc`I5n%N6212KFc)@O8EK^Cb3nm^GMoHR4h>_V#4LK>jCA zVJe)+wu5(NzbwZ!>{`ik zAVtO+C>6Qa4wD{$TdlM41#}uNYh4&t8{HPX;igS2hxuW>m0((9Z6d_d$<4@=eX{a0 z)fV{HcJ3caa>tZ8*|J3JVBldRT(6}7+JPY)uhz1mfg8vD=0#>Wh|}@^R-{goz}JOn zt>~p445QVJt^LAIDqNukE99_&<HkUVH`CNPuj zwNaB&AUGoa?O~Y41=)2KghFeY($34ebWya3g*F`fwD8etJP%p|zaE1VLwF15Wxxxxlbk4pm&H5mV_O&nL90q67 zA8fz`81isT^(`*CmFUELt5-p>1}C#m`Pc+*Bcwm(9WZM=vCmCCR#;`Vo=Z{n>S-Xu zIFAj({l0S+YFfiObgZYo!dqP$Kc}BdXKrwq_vx;&6zX5#iY=q4x(p&HU_02SxBBX@ zEES*A=ha;sWTt&>kL6=a1mAw;!-%G`vN_B0YiM<8{G47H&7r~m0GRgewU|`v9K8it zx&vU^+h^fDJ?Ao7$9B~-Zca}q-MK*~ZaR{tlh@2SkRE_~9O?AGf>xH>=k@E-^$!}; zKHM@=dmvo?$b;jt4&40<_sPM^e)S-1-$9!b9!Oe}r1uyE~!HWS3$bL$_@QBCP}DSuJ&Oxzlv?SQ<6^#!_G znAM*_F(3$dkTX+vJtn!Xx9hmSv^#q<6Lz<234y6bTA_*Y!r`gx{qk4SF#e<7nU`{EV!J)#{|Y^&b6b?wORW}Y2! zY=4^{7obs%Js-gbU5yZVqYKW`Rm4NHKzO?ZHQT)Jm-ks1_nd9S&N7<_1&-Gn#=@BZ`!0cyzT zEKVTSvdtL2!T~>k(M8Ce_S}!$M!>4JNg<=MCwb5d#O#7Wc(~!pV6vr-Z--mOSt{X6 z*EC5^oEx<;5%pCLTm|g)fg#+jnGEJ#7JJJS;sVM7vjW-1;cUZ&-)y6OU8SHe)mgF43jLB2$O=* z53vWpF3^dgayn_SK4>~$v@{(TWpG>0kYUnIksRAD)n&I$ZYQ7cCr76MdLmm|LDW!E=5|;Sn2hPBB)Mz#iQX3KhEH zaH#Vmbteeqq|RwX%#B&Z!Py&)MP;ts9PH=DO#%s4Lvy?2jk5k*AjM<&)e!^+4JOv@ zxuDygk+XZuVx z(kx^0@niU}+p=pCn_UxKu=eb*@lOmaFDB}BI^EFvj~nC{=l-LS9o4RPVGbiI6|9~%0_D*uJITb8jUZZHIeFapZSgHwf$8zlfjT|6n| z=n;Zx8+u9_+##E40Tl8%a(Q6D1NUJ^`EvPfZF+gl0NO=q=SaBI_}{K&VCt8_(Sem@sB#%>XCPmgURc zKSEZ!BUv16pI2;0h zT1S++en@<3R|i~Mx31r=vXlU~elv4Qzx{TV^;?tQpPZU-OiNwACAZ&_Ev%bXmQ<+~ zRd(&l9|%4nS*Xq!WJk5@4Tos1u_M(-GMP(G%3N~NgU;VYmOKNJ&rjBQz52F7IyI3FP!*X@P5gnb;Q8>*5x#)V=}B?(r>w@(A0C#UtaP&ixm*JcG_2X~i)wgU zu7QS3gK*8yDN#fuk(cv{{<2!u9E(#$3Qk%VJa_{K2n!mr!D?hCVSyS6MV z-0Z5V>(+0&Ra8w~oub=BwKhw&Om`WHs%0Jr-FOkaL^?#RM*2aB82#5kxxdAJlGloc z!{Knu{_jThu%IgmmoEv>=OyF^+@e5~LFA=q`wk#!)aYWO&2`gSw%nUtVRhYby499N z)%11K&{vzU>9%Pv)5x@TO^aU_ZeP}2+s&%$R&$DKvs7RQ5)~;9ydhy2jcinUC~-!E zH^quELZ1mi@P<<@S&yNSFa?|dJYO6Jgu~XfQ3a4LMj0$YD@Sw043GeyKw!U6yLc{173U~u^0t}C?J)uK>NTgZ`ue=M@a5W_a3(Y6yqYWQ_s*KJ#yj?qSrFZ8vrm%#1y!r*nZ zA&s_?)LP3{Q`9yV!P(tES(dSCN44vXLqE_s4(S2XkD+mY#@Qe1vV~Cos3IfL2*cAx z7+M^m&npt^p&RYQ=pt8i&5}ot-2^^JEgy$;j6)BCF%JDB0CoOePrtF&@DS2CG-HOX z*BkzA-Ig7P{-B_d=)bsbb*pI@s%vEv+$_nk$1&`}FI={-iS3_BVFn_I29_vFlb-ue7wv%oSPCEpw*4x_(?+N&@d_ zB;~p}xBqi&ZjFC2Pj2VbIG5&7IHz+amepWgQu@jSUt?GyX7KJ6z}D+>wmhkp6El31x%`6+!upY)UY zR6dbUcZ$V3Ilu6G+kar|wmGltn)834({@rtIcSQarZ)9|pi}8Y-Uf6!`CsbG$JNVC z@h{cXlyg&4Q_f9IO*wzvy8WMKWW3SsUk64E+4+Bmw$s^2O`Fgr-DI9S6O~P5({qmf zMLKW{<6fMLYjLa>)>YQ;E8|w&#;LdzhvGEO#Ff9O2S?)m9|*^=`?^WEd{gBOtLp=< zs9Oj>FRmX5R#;uXB{;f%U0S{@FW|4M>v!w=>Dtjqie+>9qbw-Trswd7)j2_G?zR#T}$j z6dFlhvlj?^yt;f`UcfD0 z`RnpUl{iWyLNodZM|1PM+@R!3@6S1&V$2DM&zKVspVM~2? z(W8I|kf?J9jk;Zs>v62NDlrRqz z00t94^k}rukU$g^4^v??J zrH+X|CHJl!r}Z+cyGb!w`eb|mvyJ=W9I<=Q5R#!NfQk+awv#0t&9^7%Qd z>uBW^cHD5Iv0Ap=I%wyodqj?5mubw`gUiteRmnM|!)dA^6WBs)Ko1gzo}rvdN*1=S zkqMrXL?tB;+geW%WM9u`kO+UTj`T@8-@KH~Du5>{?uNWh$y8tHdjM(UcE=<|f3?+( zG65ktM}n5!jq=b~hnFW#Zcm(a0jR+0>B!#V2th;VsLv{R>pOkE^}9$;kGJ!&M@~7g zE4Gz(BF{%kB_k8t_HV+I9@LQ){Z0m(j-lAQ<4CBWLL3{kNGOXH=aRpQa zqE?xuM6Wn1i!>o0Hluc#B2cYt;saH4-&kVLImc+8il(BG%=q_?jWi{Bw+*P7gEFe4 zG&wWmYiAg)Va?+99g5#6l_=W6g0!BhwU{ z7!1#Jch7+W@+;lGy*ItVxWO&0m(tc$R3r@|tVl&-N+rX=hVISkO<3zRpy z^9h*L#*{+?bt}X!RVU?mD-rc0`G(YjT;5U^8Mxltb5rC-b2iAo4x|E9macu3Wj5&xJ zE+RAI*TxNC)6qg-Go3xkpB35544}z+hHXW~bMFMrEpV<4fQXt%uWlP6<^$-vf{!$^ zjxM|q8I7tMewU0UA2V_K-_(QC=qD>-J4hYs57k-y!FM7^Tw3XqGlsr#>}5<1$ohl#yk?-tVe#gR~NM8+EIDzWBO<8s{E zGdmKT4rsqP0>g5e>@s|cXC_2`4dL`z=1)>tvL;mninY2b6);m&Wp>PfjUXmz{fi_r zO$LK9ybUTLpe!7c>jHYGy^?&5pAMcY!K?aPILzlTPNWt3uVStg@5;&Sh2TZ(Q%+kY zsNx4xUQ6D_HkRYdd@;iYDW?RVC2?gVWzh1I!#E!^j!P2&Czk!QdTZKDWjosRaJ_6+ z`F1Aj|9p{j*cw}#_&O^5V+hFr%;lLiZTjRK5tFDEFBHVKM)}CV2Uvb9DbZLdrHSQ@ z^2{cg>d8Gf(duS;1lJhl)zts7GU?2QFPu|lGf~HiU7Au`3~fTbBig@qd3kJ0v-*vd zSViuX-2Bod+D9I;W|opM3UG5&{DR>z%?#qP((7f+FZNt6GSn?PyhMQqY47b4H3+g_ z@%lsrPUeu;3OL?0uJ9K$$_2LQ)%-&K@f_+ZZV4E`UoDlm`gCGgdOENCYW$ zy(VWh_pl_!e)ZA`3R|yf+C1YYc4zE&edPkg;6&%!cwISW8xc!T0an|97F>!%{&Ym`l(lVQUqPMh*I za@qYb7Qs9l>(MCZ(jYAqWC-UqP3x``(6Y5ru2~EQS4$z7Q`+wNf~t7oA(iHWY1(97 zV|LEl98bA{5^0gO`D9Z}`6mx)#!l(LXKe6nTNb3ft3`oupA4>%!d*!Ws~eVZp?`7! zE!w_J$+*VttyJ4UnCuHIWmuMNeA`^EYX@`(D@P8-%1crAG6*(waI=f)(xSZ#g74$T zsTYvhN1%I_3t!23)tEF0`mJf+eLc!-$rzdS8YZy^&SYQz0&4nR$A_NinJY`%pkA9f zb3i6hmVlGWir}WQg7`ol0+>|LvIum|a@HXZ*3rh0^6EJ`bE~!4?*_Ts`g%k0BMbrD#x53&4V!~%qBrHJ$=cae*gM@MV2Wk|d+(rbVD@b^P_4Q)Gs>%8TEy7l7?!*2 zmJN+(tt$s-DDq2|L4QCcD6TY#e%MdDc29!$9ooiETP3jV!Nu zFd1RV@M-6JwJ*S}p3{pwzt7;d!91H71lR5lK;QQ>R@~jTi&=(lf${M>#=7CqG!#-X z{6TOd{9DW}?kngpbP_#EL|&Qfo8P%l5+LOsKugZ|Qc$dX&E%498*Hg~234k|TE#%k z^v8}DxCR%7v}BH(5>um!Mu@An68vzjeM0wUa6t#HG@6Irr90F4bbl* zJcv!s)`77xG1!v{Edd1zOxHby0@<#$9HZExxBzr{w@bz?E|^lp(Aq50$Tu+B#Vx?m z^|vP#=DvWPu9B#6?ND#8xup+BFu|ql<*`rQ`xz$;YtVA-nh1Q)SK19#Tf5bG$S=*V zn>5UC9y2<4@g+5o&|zn^Vo5`!)Z-F{`(d7)F-?4zV1S;1NSl{av*(_P)R+ek#?i>7 zJSof{daEU}UIXW^rpYwyE!#e>1_yZNTTv)&``r0*&sZ_Xt!3Af@StM{up~Xu8@V;q zm&S};oS(qtgaoYaU2CZJhmt}x5G#`(1(kW}KF30A?NpjQpp^8jYJvpp>V`}ulZN$7 zA2td#U#aQrSwoS-(jWEwC{k2ol98vUlH#(lv$-S{7B`i2%ga_7L*7}Q)iWjQ@^b#` zAR54&!qL<0BBTPQG+oCOy+q2pbskj5*uc4H)HLLCM7~^cArupEU z(>|4~=`T||{-C;N;#>MQ8p6#x*^IIc zFDTg5{XDfxLr&(n-PUs`ak6yZs=?!G^%Qf|P|n zl=&rcw=XzGr*RG6O1*&%Z+5A}$PY$wJxoYLm$3xy_Qg3m98S){XORrVg9+Zm=`Dci z7`pE}-ODhAhrck=boFHOOI;Hu|8~8=8XNuI30fA|@`2{aEieBPsTG&J&wm~@znQL&$e>9lLXu?Qr zBg52l?y>2;1QeQjodvR4Ypi#TFK@MUv}<%iXSa3i5N3fl0*Pc6rC*@`!AEGx>j{q1aX;b5J;y3Ji5p=Tb1+khUwy4S7Mk7e z?qRNlVpNI*+s?NiwhiGdyBqvBz|tJ;3>Hq2??EOfbVPyKRXHY@2hiWbp5l0!H_(Yn zYzKukK#Fu9#rklRm3w6UH6Y0yycvV>rTK<t^srq1YYK^q&tClXBK!q!{!wycF@PJENw znw^^_;;6*1jW26{ZBmK$H&AWD?xdNIe@`Q546X{*opI7E8CQq(h!P2x=vdX%k|PVt z@}#!^t9a~xpp;!ucG6tW;5!$#Ijq2uYnJq~M@A=Ld3~zoZfWAhk<*{yDJ)9_8V-pe zKpV)wWMjNhcH_puFy}304q~Iw7&T6@JdZ?PCvT73d(=U(#o6Mf(_1?!=I=c;pWa3O zUU+lvjcw`@*Yk$p7oXo@5Q%R;pWxHxVjGX)Zs+?aGZ zPr0tYK;_;(dIt}Z3yiarE?gZ8VuttDp}91>U;*z=fyU*y?cty|_buk`gPZK=6^>NK zz5@aG;PX-o3PhQ=cV$w63&AIEVcnm0__L%pkGwOM-GrVqFa$?$893EbZ~ zfVE`;trP4G{}1FgQwh=EAFL&3CT(hEAVv*@`(oXS!&k0d0u= zh5+tAq3>$7fIOfWoCr=kcYn%rm}wj&p*I*`FHQJmqpkm-V>h^^5`EcdOcovIDCym;54Reo)9(jxGg1gmZvl%=zo7PlLw zCbcKxxgY88=X1#PIFpk_8*ayYc~87y`TqWymCxUh$)y0)q^y#Nq6fZ=$Ivxlb~8KT z@hspJ;G=njRu(LJeF5(@k<ZM!(VA9q-&N> z15>tA5Afm5UZQR#b4K#R%dl+TN{)?V8ZviH5|Ipqj)_T%ltr@9yO<89$%Q}m~A)j^`kG?AFjkyjZ7iCTJ@a!cvDQ=@tb>qYDPO~ocK2Aa z3~o5RGD@xOq}wo>SZ@IvVvgQNRM|k*tkMbFJD$!?Bo8R2Ct?&ge+GM0B*gr@CaTfk zC%v>Fhc6CVinL33aNC8+r3F>Y&rxzA?L=g=;g>>wW|^hQ(HQ!{-`gW&y+NRL^kII_ zSqoS`pt0G*L^IoM#e#Wt)NH<*XBm$Zp=Ezaxo1`EQi=lMR~>;%VKqh0ADL! z0+Upk7(4@8ggy>{wREfB*f_x-f7#Y_Q|+wDIq$3+d@?X)*wz`p&W`I*kIBvrHjVWR}olW@S0k?$KF987qpE zcWOvP^cY@DW~rQm5$dH-q#w;d2#>l=#PAY9U=<(6QE`7sK{g+$F>vaBaMOfhE`q;w z_PAA?VQuyg2MxDsTQ9Y}u-%ETv2%d2bA_6>L@jLtdR^pT-FGHS?cv&M$M=t(56>>_^MIVo_hM8*m z>lG00Zv#e1&H@uS4PgL!P^b|~pj>SZO!x#@P5Gb@KIPznqgWJi2`o6_0Hmvp=1EXt ztU5*85{;)^zyEt5XjT0iv{|DjvV4q)x|ey5G!g3CLP@K#W~;!c`Rj zQ_}!oisEPx?KfmMU!z&th~)+_+u9}5xfRQ-@cmXW5C3BDb#>02IvvhQ$i=J(?SG41 zJBue()85f;{=cp?OC8(>$hQp<1i6lyfgsO483^)^7Xv~5H9`>FZ-;^4c6T7ScgwCc$W_gaYC1zq zQK%W(pJd&1ikW3oSZ*fR)+ea*lGb2WBHu4*-2dXl*EMHuizI7V88LQ^5w0o>n3}!- zQ`Chf(cXgWCX3N5SBT|SG28k`rt>Y9Q-tq_0!I7y1o*n89^KZ6Y*`Z{yB3M7N;Ff` z60#H}5kvcku$x0LvlIcAJA@Xu20`j<8?%u3ezjT9zg+gZJLa~uuw{c_>~>W`kO z=?5}JJ&b54#cqx>vlM0Jp2fD7g*wMzIRxJire#3?g5>M!(QP}3E$cI5R}QjO-4F}r z|F>E;K6XEPXAy`ZnC?!2yU21SJ+eyu#su-?+^IZffOvTvhd4Sh)3C zRef1Xl7;Bwp_hcw0i=ihoUzggm1MN*^>9Q{N@wm&(QzV@&J{Hy*SC`LUo*n_|C{)Y z+p6;WB58eQwOUGNF1HiPC`7Ej8T`g=|9^(xxNV7brZ{y^L}>Z{O~|G&Y# zr=9LxLOOdk{?%IAG1{M^cxT`7dbW+oTb|1fNmr)I57C&aW|rkna6!!0FPe|4{Qc1X zr(yN1c2+w%Ui;T=u?~_`(-Y4nLW*KKb9mJS9m)5xlI-_T+4Xs(tNJ@oHGQd`qOZe5 z`{yXTiG!N~HKQE~FZy4FPT)6gBi&cq^02R!Mb-8HS8B?#Y`R%A{eR3tm3BFN^W^AA z-9o0A{QtLB8)}NlZv;n2Kf=%p7PGaYX*p6cH8s_R2)}V#f0h~JH*O=#o!z6s+cEWY zINmL1+~BwVe=H_RQRV#q6f*ho8@G|Kn$hdFte7N4wSGXN)YKRmRo3VHT!;(tm+9&w zTxO2hDtEccyLUD%ojwA#&KkS25{?O}^KeeR|FG+GUcXP zpB#2ohhD2UpAPXGw_%Ji+VjcjX1R6#TK~H3KWkM}^u_)^34Y@?{5S}e9SE33Lpw_c zDuV(ZR)vqK^Cs7dNSY*B=7Sqh5QUMTV++XfRrK|w=_OkzL`La|{6K@bF?8UZ0f zLI@#*5JC(+Nty$IpbMGRUsCx# ztsrn5-#WUg3eWK9Y&-Ab=h%B*By`R^`0u+J$V>n|ibc^HO+^aJ1+ z50Txu5&+A_!E3W}Dq+w8q z-_Lhe8Hut5m@hv}SG>OqtQm8vp+Nj?9{TEO*nwUJfN;>W6rY52AYB8DXUGMzXVx+0MYU`mz%(_6CWx8^E*ro&cHoU z3WpF?8RVp}4k=_g;H+50^EB4SuqpmhJ!8BKwK@mIx=|PA(f8IglZxt)Z6A;kQ-cIf zDl>bcrSkwBr1|eA2tPz(UFS4le%LWb z|H*0nHoBdp8PD2fyQ3fK-dNV|x(TlaeAq8oZ!qbS)qQ9dh}wogdY5}6{s4IJm-ZJ&135qMVZ4f<)YL7_>RjAp^B?`ebVz{2;?fMn+*}rMZiR_+ zqv9fj&LZq!-2frwF++M&oYkX3F3RsD51dsX=|)iu!@htweo8H%x>NxNOoKGz9q)Xk zkAss_j=TZV9ghX!cf|SFR75MlT=VHHLIs3|`k)O9UjtY#P7x0=@D{^4-%^?@49zg$ zowebd%1|X^4=tdNuASIDOBR6gnl+L?8!KZ|l-!C2{Oo6&5HSVXyprHvE>e|)(TP7) z+nDps-Gy#bzC!WU+$Mw}z&koWT`y5Y;h7BfYYzB}fwk}l#@sIPphSaQOv)vAG{&CL zqj{1nY+f=T&|03w4U5vB5e_mVD+ZX{D(DF|L%~qw(Bikb(b%IxiC@6MUr(^87JmrM z6)6Ott5b=6e(^`hMYTe%i?u3s1Z>MdoR*=lYK1)n3HI*e1=;6$F6!imi*w*Mf1b#^ zzfDvcXG!~q++`W+Hy!%qxhNiNfs~=ccFu)(qg16mtxK#*QDy@C;$Rj?b#b4ZJ@dirjbg<(jTtePyI9?D$6l-c|}1JTSzqF@!f`w zc$ZNF4iMP3?VdS|3bIyW9JMZ z8fAZ@bM|6$jUXCjf1_*P50~Vw8@72wMjln~V7|pe)Jg8pu#G+i<(O1eKySJtxW;XX zI>`+%d*PVnQjoYgd032}CYi*|QV^OEEm4NwR8#Ygb1w~|8!klAxZ9*6xdGJzmZVHS zJsks1&U0He#gp7!ios-JdVAc_mdxf}++si?ncsWvs?Emo7Y=72SWN#uzog+axD%Hs zoVd!6Zw44dj9Xadh{SUDPrxwzZs$Kd49GOABB6a;5tw;~MnQbpA}HCK27)p#1XjYw z1_6m?R-lxRSq6f~?4YO{)&wLPyK4hwki4NSA4h=~AH<-Mg+s<2Z^D0ew~ZV8mL-CT zXKW;dk6i*2o7q4p8=eG99$QhMHas(sJgY&a+((LqV&g*L#Ive4P(Ya%c13e6Xrsdi zDq3{F`@3#$@HZ|QNM753qP|Qq5WH)%P~zEz1ZCrsfyA>LQ0l`p1Hof;jtl@MJ*J*ct`(;kz~zBo>!%>|tc&*nLe=96LAoElUI?uhCEt--SR$ z`S>s((d>$Z^6^Dr@)#Wj@nM^wWMeuA%EpDliDwlSl#NRc631M9V*$wJ*ugZ8NiP2< z6veTAmVaYPKuWU;H0sNP0ZD5s6x5d&f{ABrB!ur!kfNL{NKhlnD5w)vP}B)D3gScx zm2w248z4|(2B~t6z%vyj3o|9@#=-JEFq=${F?|7B#VS(_G)`VPGxe}u91Q7-Y-h6R z5~M2tHnd=3^(RzN&3a;_fQn?KJz%BB^QU-`oW5S-5z)ug6>t{N&DFr5`0s7DB{+l3 zgG{@_Bnn3)oS+~xznCN^5Svz>xst$CWU`>j7}M@nx*e9nH5=wL_d_)qXn>JccbW{W zC+O?FTb%qu@g#tcva!*-s2i_gBlqO`0xY!n6q!1{Qi50#zu*#IDR{%^Edh zeA3*$Gvt;nGh3);3^=kGznnO#v4w1Cw=+JXNaoB3#*CRXwUEtf#*|(S%$b2mFlxrU z&Xl1UF(OS&7dB|RoB<=o$LIAJFz9RHWwJ0{_W1(hd|)A%Ng(n& zmMv|>s2KuP$cbLY@8=5|FJoT&_>|%rm}o`~8(EqZhGL?ZA6R*-ePDoKqM6)x#ulDo z(*~@4K4!!N7XrDM{O)T{BAtTCcWqisI zR;EjrFD$$kZ$q<>&6zTch3WE|O&RMFE2F}mj|u~QG&DCFnnyNqKrgEiGk$735GXV= zq-MP3!uEF8h~2!UZ6Gimei}%^em>D9PJW^mnv5jH5hetNH1QL^!=G?Aj$+Nb)k-fM zZ6Qr0Nzbc^Bg_T+K+;9~XjH-)5a}Arn``LjArOcZr;R1-SnSJzL8MKL&AxId=Zf8I zIM+EGIg+F&BzlJjeKXwn!clSECdZ&$oGUaT@%F(U#c8yKN}$;7Mvh?ZgAL_kwGWp2 zgi4_@7W8_F@a83!Uk&!jMA!!tBFmu|O$>3luVxE@Nb%=VcJsXOCl&+8+_4+31g+f0 z+8D}8Tj=3nGSMd1yb$M=p3VDcv)Bj5UZY5cx6dm6?6=!B)u!MFzB;+9}EY2x7m+vRs(Bd49idn+7?Ig7Lqbpj}_7uWDCPv z%!YgA!rHgn*AwDA+AB5*iZB~LPt0N^{3(ZS;CKUqUGc!5Fcu^P+QO^}L&jSZhK-mm zUYHlkuqlJ4i;pMT###&%ZDQ=_7GxW7rEL}l4bniGSR2Eb&BH<)aUNLyl(n1a-Nc&+ zjy4;RX!9mVnJomzZ6eGYLo1`rwM`^Nvixqj&o9O5o<<?;># zVtMRJP53IPw};lD8nSW)l))AeJ{TFcy-p56pqNocOZY!rBcd(m+s1 z6cS^xFZTVsz7Plgz=m=|L-)``SnZYrYgn%ISP}AUL8NU~t9i2;8E;mb1_p&?_}#uB z59l9Q_#+f&h8c1*z=pwSBM#;YZQ&=6v}<2ZHOFgws3}{-NaaI1Yciy z8H5YM0X?(_B#N&`TWKRl*Q7_A1YxkR_KhOUv%PA#pK_1{V_{F09g>VJ}bS8b(gS!k?S>dWd%Gu@b_YG6&{F zI6XP><;iHTAzF+k`rN)Vu2LL_LR*>K7ZJ@X78AY5{vtcHg=b{9Q0NxMFgBwBbdfGC z<*moc2n5zXaKzPqU|%g}14}Yy1HJLv2y=zxj2tgzAgvT%-)^#HG!UGeeKgw8D9*t0 zgV}7NYg;HZl(U6GC2Vw!CCIgH_T@sE7Yl8n=MB9=FlYvg!ANi@H$;*$aa&K2Yb!yn zVM3tId%bYB5NM2fBslZL*tgmT+Crgkj1B#eqUbB@2ioy?_~pL zvU2u)rRRmSA(9knGcTNZ;S2~yg5URj;zz>DupCDNnWgr@a-qxi@4Llb6 z#%v}SId2{QJjIdnoRZ*XXnD27{+klFfb;< zTp&rq-D;stj1y-lj58ExC>JNr&`{2^g|B;FFVQxNKQ!{QmEq^b#20O{2G;g$U@atL z$6PS-%9V1QS$PBIKpU5E- zTIktcHX(6*%}Q~EeWLCA%J;$|24n!D=BJ@&>z&nDLW!k=e@lfUr*u>>JsDw~*$;rVMRmU|^7l zMhtix@_D^pFEw$7XkeQh4Q#V!{L=W?!uWjSEKHj-LtsMO>;p#<9EWnTpxEaLi9g=A z59X@5XtYlT#=LT7o5g-6gTxv*#%!Q%+>cm$$jf;pDS|&hFfc~@UY-q%6N=@y8Ysij zKu!ZVF5Y6cVPqJKBa*ln?c0U}X`mPbU$oDQ*=QgTIV6^&_-i)erqRM1X~SI$XWq$dB|!7w zM$xql9An@J0@-jtq!)r>>3S$vfTF;a(%I+&cyWkzq^-3_Tzlt|kPAK(L{l3l_W0TqQZen~@~JA6OX*k+HBg ziXrK;xk%S8*Gr_mz}L_18)xJVjJdoV2q%OPNHX``XgBgDim)6wDgMB0UrEMFG6ow- z*hr3G5YGEb8t8qoSM8(CY%vmiUH<$MUEu5UUY`d<*1!?wn#7f!SPtd9*w6i_a3jpCeWL6p{=oLWo9zQ(qH7^=gpoNJO_YVUuVxc%2YIz{{2|kT31XAOeKHp< z=g zDmfRGOB&8KhTl&uOjC+EFowki#vaO*FtCJyUKJ~E$Wh#t18?IO^a$E)p;y*In#=QS zqBn}L@Z~yo`>u_j_Yz&;W^T3e7K4E~aBvKTF7Jsml#7953HnOV;6XvS*F8a73EBq6 zV&M##) z4h4NBOnjF6U||?L29DwPnsg0&UB!&6977lE^?6pzxTsVyb=Yb>477mpm83ws%pe>Arv@b|@i!=0yqmAE9W(#SwZ?xfTAQ&slj|^+DFa{$> z8;(5A(2ZOOw0T3bU9N+~j|>vOK`;mepM^3I9A&go6mm_@ZbKuigni_PqrqUJ_o|U! z`O#!Tv4djcVhhO*l8uvndkF>Mgo4C{Y~ZZNH4sdsy&eLAWVvswfiy67g(Qb=mkq^ZLTXe(zQp{a5mR)u52S+vCu{Pa5RXa>~A5ECmV4y zh@%LU!+p1p=JH^)Zv<&#NqRW(hZd5<#!n_B#=Z|W!-=I$gn2YDD3m>lBS>yQWdoAR zH}F_3<`REM&+}lPD+c>M*$CFYnFq$aa=eXW%r@@Y1(HAIH}hs7ZWgrX4S_(5al+fA z7qfw+_t9iB+>3O<#Gu);@dHUR7TUyPAy^B+yApF@fzxCAZldRr;aIvRZ!=ezrN_#x z=EcEMigCOVC^mvWH}cxgjP`lt2a64rE*k8Z4J^lyhC>=2#W3jm0bk?`N76u?Y!pRU z4QC_E5e#yEIuQrCW^7h3(TPX8#u}Kmf zg*%uXZbK;TL54U@qEC z1|GEQ<|@T9_tnY}$Sfk@j@ibb@P_kTU~PzeXe_~+2+l|{2L?Uqa`jmG+3V@C(qjeo z$%4Qa4we&NuhMn+3SU7(w6ONcE^VT0A&&-mXbZ?jRgZ48oD6?e=K%%C80kgT!zIZ~uWmUyz7u*De zqev5jZa9%f6J-OzXkQTc2nva}5$pkj#u*Lw8am?>Cua-4E2Fq8O$i4}E*#6R_V|^q zQ5;9mvxPAm=&}ikU-^l*@bA~N$3a*a1jfAbuU7kJK(4R!SaJQ>!rD+NmNyYb)?3h9(FTGrU9*CZmBjQKWeuO-2JrnN6gH zVzS@oSWGY zAdmKiHPM#)W;T&_?h6uS9ykR4kfE&hjiN1-$;6l^#)XG+r7Zj*9~wpRryRw}m<=q+ za{O+$b7ibb&zn!EX9R7d2=jzuAMJG$OH%gjkvN$62;M>(jKqb1wa~R#*2Gcf%|@Dd zyA*@M+id)3IG7mwz|r%{(1!Dd$`B^fz@Trq$uReMvGEfcMHvm?&`T6SOBF0{jsw2- zen_z9+U0$)nJp|!kaXF^S{S2+FC0k|VW4dUfxHn%d)>zGCkEPZqezZ8SdUl2z!}8x zRvTgDh=ajC*@z>DV&cmq$*%_DY9UF3*+LH}B!6t=K_dtYL67#$zMDACVxTuf#=sH= z+H4|>48QQ@fg>)A6Vk%hSCX}GEWHmLKN1JCg*R`6c|$XiCf>xdq=h9(3t=|!HUnp0 zEu48VFz6#~IFI~(ydUz5y=J2~G=3m?&KtekB^l;Gp@l@6EH-{We?K?c7exLHmfuL? z$f1u0mN=S7zCI5G5?|sV(C3x5(B%PkCH@PL?-h z3C_l^q|rXvLuC#uNpUzKyxI2seDRKjuCF!=N$&=dp=k4lVBZX+4GU%APkAfD@w4Gz zAMKwRP8=se@HOoViiNey5e({)ZAC`IeLuIs7_JOyx7zmz#zxT_qKUUdSSXW$B2Ki0 zF&jvGfq$cn{BAkW3vofC%QgF6uB%vyg#d6AMD#_BgGQ; z4aPzmIT`!5iLPTkLBkQj1G0rQ5cb_jF`R+pa7K7jr3^UUGnOPsej8`BP&VR3(lt2R zKra?Pfswy=h?O$L3}zVW*Og)X2lh$fb>Z}NkMG}sWVB!_)-eXD_`SK>sk z#HAVXY@uf>bB`5}{J>o(acN3i8W-Hy%78&54t9?f8ciH+Aq^fHAQK(q=X?%ylWn5eI^CLJ}s@ z{wZT)DCB{+?}r>g8V>YIaio#9Z;UgP^UjrCO)NNc_1m?zM5B(;OMe4-n^f31{*)Jw1Kr5NWLyV91R}r!^OPX zD9XT?O?(Z~KG+S6U4o=cCepszDB3*G_R(&`KG+MCks#3b5(2}Zank#NmEX&?_zLoR zNYDlZ3x7%vw1u>i6mQ-r(nMIy297eX9KVwMr<{=@tb~E1>sI?p(u;vJ+xG+e5%OZ; zJs>TV#Xum~cPnk+_}x4(D0F$l!O~O3N-P}c1BE;gX8TIg7J5TB*DM@G*F)nszCxM@ z#=>y~gGAR>yc$@NL*x(n{dhMJj2#Pc9tn~oSjxU15_j{&m<{KNrFX-5Fxm$LM-n%j zEFtu~DM6C_T)#pg&}QY06|WYSHr(jC6vfdS`hkt#2!=ndNiZx&aMw*7Z*Y2k%J1g- z7M3(oEM3#U*GG$;17o(3_Q6D&2f}RN2+F|Gd*MjeaC&B6`HkRB^g^7A_LXA!SAMZ7 zaIlE*=GjM+9R!Xy*JTd0x$e1rHO~f)Fjd1MVNL$8Ljfj6-9N|{KW`)b?5+BT5pJ@k#^=an?vCj-gvwM~SDgE-n3G+6s= zu17GGg{2LQg|6XXc@z6?-r#MheBns%vyI!tu)KvMj09t@hZ04YGhNVhK?BC;IZYA5 z>H!WfolLQ1D_zil30khAELYJ8SCI%;Q3zKNmREG;74^I#E3c@^D+1vv`rs9L@QONk zMI5{$*DKoK6;ZiIq``AU89YaX!E;0xJV#`~b3_$9M?}GML{pw4n&3Gi37#X8@*EM* zb3_q5M+CuLL=W6W6y+`=2R?~*&P3F}nTVi_$!%-_TE$hwz$=2{MXgPu)m5aric)tW zLVbzov?U_bR8*RZNK?`Ntt+XEyrPjv^opvedqwoEz&uxA))f%VDG~ivPri0Ct(;8j zCey0Pv|eCZ=S*uR(~8NoT3}i)nN~}twUW11;HBiPlf0DzZ=JwfC3$NkZ-wNokG$29 zw@Tox5qN7O*UHGXLf~2#sSkLoBGc-CX-#B0$vjW82TyXrOM!W&z@#ZKA`_VB2|RiN z^^mt3^412twUD?}~TG(()EWTvq2a>UvPVr!P@X~z#zCIea#Qe&SUIM){?tf*^fH$Oq zx76M}Sh&!;B%&?Fx|*`U{hi?QogkR9`euo%x`GL?4_+h9`1suNx`mi0t^`)BoQwqm z*`1B8-=6&NaMM_Kv77Hc1Sb6OnDsgE>7mR~W+?w9KBrcxL@kehiaAQGymPe5**m#u z0`2YSODanV9q%LsNd=pLow*xUN?OS|nSP%J?Viqr`mbszTJxnA(sTac5VN zkto!anCA-^hAZVTGp%{r0IZxW0|K2*>3JKSTP{|r72YfRnKrZ&Ap zIWCWWQd+a_`^03fvVQ*CoChPCr z@Y5W^vAEwe%H`yq&!2b*Ty=v9Tb~MUH3w^TGc}E+s#m{#%ziiXvw0f(Gx2)V>@>qs z9QhY*FXS-3U2bAjda%Z}SB`bWEILr(lEn;P7(i=%;;|~eH&TGt0fW3$B7;^@wC5si<`Ly!?b}t9 z$?~Urj6`>u<0H!C+Ba=f4k>N32o2z+Uz&C_`3VX zv#&_YueNg92mjCURoTL5?wJEu-Cl@ipSzPc2hEant#c*m}2odl{hu|=l;)Dh8V)oLp)!G$W_Y~ir( zb2zKv#?6`G-Jh0iGaZe2!cz-sP^ND;6uzRoN9T38HTv9)sz;cj*v5ON4>o}NS?rfB zrn_Fd44I0z?aHfOwwlrtN)oYH?sA1>v83afu55n>e#ogxA(BT->R4GIHzq8nIxamG zOD~PNRGho@o|PJ(s|E;^xg&9Kos%)gLKV#|d&qRvLaq#(n4v-9i0|+{SsG=CP2lNIYiPu%yd;mCJ&WJ#WYy^?p;Fg zrm6wx_K&(;WywDtm;H`zF!Kdn)LLD)-=exdF570fN+Xj8OID&AAiiPG$^`wwzBgDR zq<*-5c9<+Hj86dxXuW;wo@ykG~u1YvhNMt`HQYk(Z>4U`0+_e#osQWxw?)Hu_)fA^a>U!Gez?v%I3Vo1=N|0s+FK)5{6KH#jKUx4R#ib&ROa7|$A{}y ziKBL&C50S0LTO=XNysBd2b$OTKRgH8YK)os&8i}55!>OjJ`*K$sN!M9X4N@uYeACz zT2&skNa(_pHSH`l34G+pP1P$n5PUXhwORF;nnmqkMd&YkjhPhXCvD4KozfE|jjS8Z zgT~@@*Q)rs{JD-+v{}(RR}Oz{RG}BN0ny(!s(4T;Y__B2De)Ht#u8-KjDMk2c$NvH zW_nLEWvVK=3ihy+?z&d51Qq{A#Kk9u=d)@k5sAv4| zwKuw^kH3BYl(DgM`PwRO#(=!~dVEA`o-h)RXU-`0IqCnW_pl=7UZKvtMYq&#$=%2r zqts9bbQZdL{k!D0#As>k)pzTw>!KURgI&C9M(m6k(W!0p>%EWO|CQhJZ4_VrIP9cJ zj>|b%pnseSFmA&+Ua3a>=?wVTO#e_%uQD2zhk|I?x>uzKksBYvr7K;aDx&jeLkY&r zj_l{qKfd%v;ra5R1bOC+0xfLlzR;l}z3K*4gym3_US&ZQdGhP=bMxH&^(s?p+~cGP zbm*ng5W(jG$I>Q~ZP|k+@BELm>`;X}o&F1}o*@E%{aAjvlY2b#Vs8qTsj2sfR^F8q za#m?47>YfdT8^7z94A)Ml|DSglllK>BnRU{CB-yud@~Nami92~`3u8$w5GRbdQ}~J zRtlBrI#Y4{&#`ienR@S{WduSs2DSbFesO$qT4z({`#s3Wdi z`*2kgs@+q5%N(Y4t%s_&C#GDMRLeNd@WQ1V9Dfd(yNBmFRDa{{c@w*{R4I{I9c#0!eW6F#ao^W{ zN-5(3uQyvaTl<{saA?7fncL*G$s$uuf7w$4+jLFCXz3t|iMY^L*q`En~Dvrj!Xz9adnZOBCA z(1EJPtR6BEKD41;ZY#;@3YEtnT{`4XO%e-G<8A}U{&(f!mH%WO%HR*R{bq{OtE92* z#Vu1EC4+Z4ADf(JS$xPM`3}OdaV3w-MKX4XFPS~*~+8Iq@xEZjq7jy#9Kd+ zm&u)b*XKiVGLHW%{~r81OtAWa_v?u0aJ>|546N6=&K<(1!na>3{|4H$l6sLypA=i2Et8U*NkLx7U9h_d4s+~@W-rb%D z^Y??M;>w)@vF$jet5XTu%YXa+ihVl?$oyYM^mn?NFq<$-+H3vo_Qh;%Qp&*m zfA5~PR}cmtzE@RfyKESTw6ayo`#dGgIa{J5?q2#?H(pm-iI0b;urhnt`RiEZe|xo1 zBg4Ag>v#^!CYh26=iFdPGJVWVS?;cBrgbn_B-c)_Y(sZ0@R6*tze_-Ybh-6Wpd%R0 zRhRoO%SNc`NPw#H)hug+`GYN)#hM7Oj`F7Gfi@v;j0}Tu>beIO zTgi2sAU{c&Or%e5p_KOeG?w`Mo z6u77htL0RvmMk?oFQ^BCU(F0p1raMAb?rx&^iKuPDJCSxKa5X~&)A)v-utt=-Gor= zHmWX$rs-BWaLcP(y+Kz-TIuFWK}5Bk|6A8BBRwg!uYh3S3Ai8syvUk*$e~kkN_N!7 zSK5WdmU}$}>;C)R|34_CXfiUSbUZkuJW^S>Xfj^!4gUz1e?+=SIj&emTv*gim+;j# zA*fyFkpzY?`b=-9M&0GR?)E*PN07B(?Qb1ng*JJ;$zZ7VONrd1ARt~)M7Pbe-~^ZN z6}%lHX$u|8;2(b0E*LkX`zH$S}a_#1rne0CD(=+Je;$TZg3=oS5HLFr0)}*4U0mGb(PBrArsnBdJ}O_ zhzMr90t=mcs6JTy$6YVZZ8`%A(VM`04I!4-pB-OJP_${o>5C%D^&@61 zjxB9;wqIIT=NrjLwWw8O6RUFF!A-uCRlPi^Eh@@ez+VUY>%O3pTjP_7)A1>zFYt0m znBlGK0RqF#ZC58Ex6u=(Js%4Sa3}AkzJ)-F7QSw)BFgjnad~yA=j=& zu&Sw`hwat6K)E*MAW7x&3*{3{xqo2;h^}=nJuAzDQ)dg5t?EbNs^vT*LH~9L-YB08 z`mcO4eCEgvTf41#z;Msn8*9$yoHlE4J^J?ic?L9O=^Yp-`ah`Dgqy8RdBdRbb)AyE ztoGjN3YWwibyLX`7QT%~-2KEhyE0~R7Z z+QDT0ZC;#=WT|xN5lLfEzDF42Z|n1c4L2(wCA+db5HWzFY2^J%UfnwR$}YlwtIR)5 zdRWZz^R1NLd^ydbGxeLczIy3*`-%B=P8nWNAyOag?_5J zzCOKW3a9V$I@jm*P@jG{HTOlnlZJ2Iw%FWIYRo{n#$A5_+%w!2PYFoOK=UPhX3P&= z`qIKiBXHc^y6dzO2&eRLb96?)#;rC!Y*Bl!qSh z#Dt8<;NGpB2Zohtg^i`&_#&l^=uT~S%FE+?KK@d`bHq)L>&HTFSls2~d(caKe~s|L zL_dD;?3yf-M42euoKl1FtIUP3m45(egI~(kjqKbC>!r^9`Mq_X?HpLMGt3RG6qa^N z52U7^@33ax9?89>X&R_@BVFhtwDcBEEAZ}m(#H5@CZCQG!>;_RlKT zK)z$n9|41B8K5HekDdN8{tI21D>>v4A&o-|c$ey9c)9%{859MbMu?-454q%`DY-O-vbD4d_ zhT{Pe!py1AyA>Wv*U8D1T7N@qwYpp+1FVE|B#j7RfL;iTD zHWXx<*YL{bdma-q6?w2a1s>ZD&nD?tJ%q^5Vg2%y>qxEbm*m#-qoB;qqyx#)e58I@&_}%Sih0e&c5`gQZ+B~Z~oJp zy2l!$ueFK$cnRj-u`SlloC_Qlo4e^OAR!#e_u!^>E<2YmwNZmsBz6eO`IRyJoQ!hv zfI7kdWMi-sVHn3pMHl?I<^><^_j5L?(nLgC@2FLyoE$&T4^0l;_okbHV(jUwvJW>i zhR)f!%p{rB7?hJ0wNZ{H!a^&$bO?I#i(}~i?{%{?Ms+gE$&}g%q!m5;RX=!tV%=<= zQ5}hLGN3j}(cGT>(*IE%duX?7#`#v|^L=omN^G)Jqly&1@l(9Ku37ecQA@{~`+cX* z1D;*8X-4(HuOG+NA%}K9tNVV59)Pd*)8-G%9vs?b9gN?1(xIwcT^8X#+?#%mJT2mz zFRJ{tFmONoSVfE`Qu%B1xO&OgNsX!kS$3;9;F&&&-!>~pJAtWczzM2NhKrXQy$^hHR#h^^Oxovc#24bX|>z?9MSsKz`$jXkGZ zwTj*8qfyoSKAy~jy$nGNPo1Muu5p3(erK>K`@6k({atUM!zBpC&v55z*xt5X#`g%DYhDX5C$WUT=yoax&n&yD z+uy?+6`Wy?^6&XfYoASdSs9K82`zFIS^r?`z#5g`4oGvmP@-O2=IJ`Fm~)5I(Nnd2 zGd`0|M4MACn}@9qnq#GVkh*E~bjny7jpcAOd$+%hZa-?iC$Al*P^{~^mCTl=**?a; zf7#mcim#K5vz0N9-Po3+AW~pKZXy5tnElA*UD$QG4F1?yo`FycX>8T= zquKUsj#AF%-&NUkulirV`0~k-j#=LxTleUAx)J&rSi6tFX6gv|Y%xH$YahTG+o!yb zslAPzFJ>z~&EL>h!tV6NRHXLC6!r~ZdTP2e-BuIidU*=b2!(Q|00ma<;v3=mjX7x2teKNo#RBIk}o z=_jgLl!Bw?y(`}pDh=U zM+|WA7I7lym7JhyBBfAR3H0!e2;g>lAt|g-2`cIwP>~VFhA2`*xG63hUl3NdCEJ+B zLhNcPq~BD0kdR9Y3vlBQio;?Bb!u6(t!oNM*#)F0ygFf*E_GFiy{V94REWN*kd9Vz zkrhUZ$hYq0F9(f9g!e^&Hz5K?6&z?7KMKZ&f~8TFud7~c-Mxsv)^t(%+MSDT6N7Py z+Mu=Y{Tnk@R@`oEf`b{U!?-zVXbN?Yl~^T2tVA6!MiRswd} zYBZu^0|Hosj590fsC5)9imGhbB!D*{--W^=ps;YL_^i|%%7l%oSjm%j6|aXZlEmvG zMI>9pSfZph1P%6h0YKes=C~-=bU6p(Tt19#19nS2=qQ~F#)>V)Ya&I&Tf=ge>xUyI z0>TFZ!n*^)+tc;oIuI8f2#i@#kAk`2YEUpIs8?*sG?`f z^@9-;>)`|b#(wXj2P4|kvI2D$85ML~7Sav-Upy)j7!u6aJunPQC2n@ihbnf`uJ(8ygrr~UNtX?MEaD(3&S<17RXLH5@V zyduHfcoA-rx`=sP5;TCub6n9!y{(MX!u2|9)tv<##X=I80rXhwv~ZoO>#uOo8Wo&< zjf#3^q4q^3e_OSC6T?<)kp9l$`YlK>8m2&17J|yX7kQbh>xYJ!wT@3LxCe)` zv9ec#g519VQP^(dC4vbB$cq!(cPGGMX9%5DM-|Vh1=yFBR@57|1phpMJ z=H=QoK2UKeObiMGr0BXZ+$T-lCoei{;6ZNl9BxJDR!qna4aeM0uJu~7w9&SRhL}Y| ztcChF`xZOnAdu^=`FAcTt40OfF1Fh#BAh5MEp%2?xJTK~s*zO1MD{UzKa}Sy?OU^h zRtRAWdKbUFVOwT3s6x6Pf^4;+w$DG!eI8E+J1kuGa|G-!xaQSBDk}zSY#J|+;=X1Gg$b$XkFoF$vrKY|tHVjRSSq@f=u+t}r+|^))DSo_w}L4q3kMk~aixT@F1yMuaEy({ zq?Ow9c9s72vJ_pd&G>vz|^HVndL&6PPHwUfxw5Z-GRN=t&5imfo1jy z&fc|;kl?-q9^a>ZuM|f|b%-3JMTrfDyXtQ&LJ4^h*?AFRc^aw&W`q7ip$9Wgwsy`= zrD?*fWF`HXuF@%#dWnu9s6fYLyIZ`a1aezCk(oP?a>!xqX*~#g^v)%Y}etSHQ9`;MeXHbVQy@+0C;?ak$Y{ z^r@0+_+ECzc=q4*3qw8ubYL4ugQ+-MR;;SzKQ5ZB1&nbTf1(A5xyV^>HDoeW#=g!+vwcn&F0coy+%ff=oa{>t756*)e_A#_MXV5Qu zS7GBqIi6&PE(*2L3hA&>5@e&OBxO&bDE2CSDhq$tmyz*PsU{*UODpqN@xzDp`aPvV zx7fb8e%0uw%|#eB90C`$HO95?P21p|#_v1mr0~p?-R^4qF;XzcrzDP7GMo=y^Eq{` z)M{fW8QeNLo2!Tj%Z#v__OU-MeedfKN-Hd<)DQUBuWOW`LrW-Dc>QgS>^G$Yz7Ds^ z4O(t&N?LksfT^1_`J04E2i{F@daTBaXpO2q+wlyF`+$$UzxRr+Mi|<`i#B&5$}U4I zGj&VD5A9%ftNqAX`TXI7pUny@T{1^qAAjV^tt3b*JaD+IN@oG<30c{C=57^o-I`c) zkVx4}*YaXKE(V_pb4G$d4EsF6hW$?1j(7N)cY3Ub z&P!#bDhT0$x}99ZQls#JMhmTQU!#F0ysuG3R+in3LfD)|SmTZ?j5qCdH@lBnZ4J)|mfQtQo;u59EBU8DMkIP)Z5 zyA*0YyDwrMYevhc9~GC~YU8v`GQBX4y|TzG+(qr6Tv_poM)>-xc*U#udPBUTA->)K zuV{d;hu{?H;Lo1eyUnnu9_XctHiH-j_8XZ zmS6dOsw{gsWt*AO^_n;J1nuboyxgT#QTeY?cHY!_b-bcFzFrNlsD`fx;}ya9dJw*G zkIN3D2ErWV<=3F*M1JKzJ1uZ28y~6vIO1(yP|>9uW8+N^4y+y@A&zs|WtVe-vdc1t z9E|Bzi2PjCWA`Bw<2Zr2ONuO1MLDGFB`uyOWj_WTj?xwe-2*{-dFT)+J?(i}mar^! z)Q5HZ!nm#U`oWUoM}R1DAFDw4hyeTpqh6|7bjMz5fS%ikW7O+tvNoxbUwLBDMFt^B)(amhM?MZB(gR`+Yv z!m`Rl9W|D8du0F3m7gXne$3AA8|MTWP-Oe@V)e^Y=|5oVwz^YlwzST4(ZS|)jvYJg zKfBXKw0xxO8-}8xQ~0{wz3QQXq7SCyJNDjjN-d1S1!}#%7LUN*R7L)juN~Oe4g>|; z20Lb0ZClv}I%X)Icm8BWZNyxe+W2I`WJP}W6v);WFRCa?ldICM(_U99VJHe$cW&8v zBV9|&^aqNpP_7r;giAqt6U7U9N?zrKM5^K?+be%+(S_Xgf=FR*t#Rv>H6<6com9T= zDbQBJbT1ubD@Lv7MGA9jg-tkAtSQ+s3hSwg)n%gn4(V(5$!qqQSS2GyVIsMn3n^S& zHq_@Zhqh}e8%nk#mDMNP5y~=>?HWPj`bs58;XS2q4pMK2B%mPMS~Wspx615nZn}Pw zvb>Y=`kqQh_DPU&TNSnA8B}$<+?iV8JY}@2>@=nK9JM1t8owJL5h8Lw?O^6?I>=b( zT|9j*K0v43p_x-zdcMkLy>pVQD zTM!p1KW`nBJQgp2rm!w+Y<6crlk)d?b^W-YNv!h%LEWjozn&)j>&bcd$}+4kL5QJw zMdtH3D^lU7s^!z9W7IOsA)WahsAbky@C2}7n4SM!l;{F94PU; zvaC5OyhOFaV6J)gXKvCoDs2K)mYbv>+NAfH_0M3_mGAzIYdr~g_-VM<{|&BfmEP^`Yna0`bB&x3Xu^574fP9?)Pka5C^Jz6 zR1zks0cD6udV%`IBe|5#6IzMWRu|FB@(UPwX+I@lkbO&$e19k*uPah$S&80#0~*E3 zD8k;7qsdku-x+y%o%+vUk2&?z;HPZb*7_=tR&q=hJltkz3Les48u(JOel2En#L$4r zHi9VenVvUEfhff8YE4p1(#NCj&7O@Oed_)Dh?M1@k>C7QdafVNFd|W_&kttEYCW2# zkzf5j^tApp!6(}+Q+`XTV zl2G3RKuJ0(e0R6Y?|xUVRKl4bL!VpEhnk@%kJMTMx~04Dahd3C-pXy>p8j}pxn{{; zcz%C^4lcYN3OR;Cp5rT|Lh&E@lq=Lc`F;kfp~}*e8mT7dRWnqzEx+o6n+(4GL-xO2 z@CSYINq7NhL`fK@KRCGBOLaN;c0$%|pTnu{@B0YIbdy+++hHxu?B5EqPetM#sNOMD zuN7bZ3JNIIcl+=l)aI~x_qW4eJAq#hcZ-&bl5SQ}2gl<(#}jz;%dwi;z-e@7@wl|! zz$TC%84#3q#qS8KUXBHyxo|$T8c)z4Pv96=>?rmMsrCx7N;|m2hOisUl`jt*n$jEg zZNv#FE*B^uKzdWAdQ)|hS+7|`s(H4J`*UT=Zz8K&j*Lcs>Fzyq}r>cUEu zV0v%7- zK0Q!9*$u_`(1NwC+ym0bt|2^6&uFjKDE)O^iv_}!`-|qZC8gvntb2W_c-j#X@TT5@P^WcvD7(gw*ky%Vh1F6)@)c$g(R;1 zrrRJ>#1Eh3By|p(%+Z0t%m8Mc+QXn>lU!ogQlw4=qBxN6#&W-i+B!cTgh3P(0h}Lb(?jQ z-)NhTJ=>qyz9i8~?Ctq=YTfcbN)wxBWL>JlA#nI*G`U5x|3X$0Dh~LT(H;FR%u+k{ z97><&_C9r~G@N*n`KBYTN+9<`6P{h+`N5s(gwBD4`fX!-Js>Xqjh?nmgJ>W+8koSqUXAv%xt!YswUL6_NJ4ESrWT0=DQvcs9|Nn7vH?&P zcxki6N&5W>iv1=Epu;CSKx=KFg*MQPfvxqm5&Uy!2MA$cYoIp#P#fcG;cvNP-aUbM z|7%-PffoWp-a#MqLlZ3W9Pv)aQ}cCRQYCnWxr9zU8Xuw}nry>+bpFW{`7V-3^UcidKWy%|pYYoWq z1~j3THU)VIvUmh;l`8&%S*wREkVLphwm!)f7g)0nq}t|+XENnksj4hmY#Y|MsADv^+FCJeps!Y4uCT+%7c-!qOGDG4C3)x|?z8oy7Ku8NrKj)mg^F*9=4J=Ft^U}d=bnx$W@Xx*Y~Ag_1fi^HYM6CEKU#?2ZMKrMn~B&QP>Vgr zcwc(;2IJX<`QU49UJF6Y@*)Z<5XIYo7ijBHWI;Kien8EB9Z-U{4nof2NVZdIyb5dz zzheRDH<)f;YhSXwC~}quQNV+6;c0!6LAo=k#%p{Xn(%P#cJ)Mm{X`n}BBDwL`Ix(G zMzAwdb|)eJRGP^36kMV*+i&p*P2|cUav2*^>jDQ47V`T|A&+bz>{VAKrrdNq-F4ne zcHgc}PIDxCzm#178CxQ%YDj|LfmQ7{we7sEA2++kkNm#Q^K>E(lX!g)zVj1{^-Q?? zDjglp`81r<_!UX;8<9PJvHZn;#&Ux@?>0d+g($lFhdR@2U!y=0+D+}mIDQ2JKbXvu zM5f$SB;YFV(Tl3aU*I-b;50}6RzYc?1hUGob%qZC6u$!i8n!y}A*u`zKryoMU7{%P zIU;nL)G+|JnTD%O!?~y7J5%t{sRTCNMHhc!QMzL}L9m=KgCk&Z1Vdc3fwti+BtFQJ=j>5YJ7!iEJHO0rqm4flQxnQ3{VM8RAVWsu_V=4 zf@&;IH5Q{91E|KLRAV<}6%P`4ZlG4dcO;R15_`YZil-rM zRvv;8EG7xEC)n6D8q~~JZ~#3rYdeU}@$LYOBhhl!0Mf@XS$fy;Le?B)nV|y(7(v; zPS{ZkUrNLbMfXfh`Ad5rMf0pw=?ihw2XHE;^rd3cNAz@wqgQF1B7Y{P_$7JM2b$g75j$IA?`;^PNHbcjdNao;f@h_2U&8w+yk}x^U!*pD(o=F+zj*gi z*v`aczx>|td6?qB`elE^hv!s`t#^2oBFJbl>n$0j@G~?_dlN<}Ur#-Nt+g9Ianu&J z6bEe7FjM1d@5u<|^Qp(>F991q5h)INQ4LHDwiLd+s4Aw0UN3xvGIqMe(hC`(44ryN zd=Wkm#?a92JsGA@Pd&uH(CI!tDGoVN!AuSH-h^RF^Qi~mOD)~UEyV#7WzBqDbGjt* zC6?|3`-91j(qL*R^_C1#@=uq9zUb0@tWA~ZJ~vYMSiT6;eJoP=o<#l2(74jOI7mUA zE(v}qJk|jAmJCv&PnQI~w6FU>Qq*QBS-mCyl)k5=_h$a%ai($Pvq8CYy7bM5PPzMq z_#o$}MorW-qlMvf?MuZ2ho2e@pSGy}-jm-;zceI!w;rfvMfIPF@qbA^ZV~U@8lZem zA!Sk)w|&%8a;7OMy|1=?)KVO#DRU`&)0COcsXy-PKA=vQ7o8I+Ia8F86o)CwKnmX! zr8i}A^3(p&>#h{O%&01chDa}bfMR>PR2mg_=204z$IuY!1q@JLrW{OAl6!-qWmsJ>c^t$FQj@@g^symJmG4PU?aDn6XFNNf=!z4j)pgcHI^ zCFdt)6McZY2R}6CDfVCFA4L2O`CYo}bK8G1F+Io+l{{+ZG9~4Q3LQ0DR4a{jNHCf?P1W*4S&y2p zRd0=Uh&scY&B68wH_ZfWA#K9W4$Bn*axBC24KMDiZ9h?^GK)hK8(v&ZN~ZW`6TG?! zzS$VBZj5g>!Z)))y<(wWF;K5)YO~>f`{$;~@H)+$yl%Ja6^(^U1jQvOM5&aPT3(rT zDu^!+bdU?0%mtBhK{>f)kkq}V?)eF+jo@tN#j>W0&DzLP7ROnctUBzrbTbRJm~*7~ zWVm>1cygZ}9K&pXjf#+0*T6Tcqdax0* z9f$IApsFh&J%qLRvda>NCUxn-0A~A>u_J}ccEGkQlot!i%aYnGixj)0b?~@sYjARZ zJ($U8PrN;j_A;h6OC!YuwGOh%g4xvsBX)zg@Xa;X)~n&>Ins^lQuyY|i|R4LlZnBL zWOZ*qTPpF6`&N~t%qvmEC38NGSyT9rCd_um$#Hv#mct0!Esw9k{m3QKLoJ7_vaPqx z5=gOUWt@W@G+!?*UoTBx2&(<_LS*&IDsj~tOv+Rv3Gh{^s2dzM{fBB#AvZ%#JgS-j zWOWF_qat!f^u?!5m#WO|Wc)!!@bxDFSB>Sl(JyY*jZq}@5Zs=jjnRF8BhAJn-g_Q9q*UhjsyN2@cWr7Ye)Fv~^ z;A}Y=MhomqrDY8b>E8?OJ-wQUX;v)8YLtz%1fKeX+y!oiV`^-;mEjT7V45CuF_+IU(ieRa*wX#AK z<9I>Tf>L|WAP`cE^5}VTcqCuV+lS=y5BCL7scim<rsf#i|IW@Cx3lDUBdNV%*JKFmFv_#?7XuP$JT!ycO;aIq!#Zpl6zJ#{4pDc-u zI$)3OflDs~q!0J=5Je@I<7W57UWRW}^=Rh5icf9+fFm!RmPkDxX}!Qu)5nwa@M?M< z!Tf30mgdgd%d>iKSa7pqne2s#r@=c0id_RVKM`ch^&H_G6oIZAW0RRp=;m!D7@D2rM%;_OSkA zA*m*hbTQ=K!yJS^xgxpd$78Y2`|^BQX;eBltm7m;>L+gVZOxOFNq*@0a^dazqstu; zgA0R`BT{NIr8i6<9wt;Zqg6niCQvHLPby;Xg7%BgE%7+}=GfiWp6k(mtM6avI6WRA z3g(3-jZARqd3bm0-g&kYzWZjv4`I0se-AI%;r(@9bzH;O=b{d`pRh#xy?8^O zp$<$;B{U2qlnf-mx4Y$!Njj@y0R!*X>_SkqyGF2f`;48n(J8j=~@V zJ;LjL8tns?w>L!y1I$E1Lw|fp zKkuW1{q%#0^aEmgl68Mi#SvNgLqK(8j??bz{53zj@=iJ$Ap}ic2y08P=?OTw9y$!R zM+_653g(os0|5?u?YPECy6d^ioj2iYk(^tRoa3I)$i6zfo85C>uV{b+zZSCEVnRtb z`Fs*{Je-L4D`|2bpM^2M)_WFot9X2}X5Q%*hB=_(9h)|HYjAp|I!?ca>c3~htH|AZ znE%56+fQLkL*Y2j+r;i5V*94I z9VMe!bH>!~8E}`*Z}T{V$adJIiViJIau-FxMRu|0(RE%F21$*RWXp*%wt48i8r6L|CBWG6aiWz?r#w7`{0=@=42u})gG()q#^$L)I2Mb$R04m7&KkIn6!E^ zVlU;x#!A{@(~r~oiH+ab2^Kei3}O+8C_+I#lEEfqqA?k4jD(Dmc;BDY6xMC{gH{EP z<4wL^r#u2`q1+`}h5OtAsUW4praqL- z$*>7niE|FjR%uM(3vkzb_Y@Hj}xaw5lF#r{Zv) zl)#&UDKvzP>szNe!PeXgQ^18z7P>IABajWPn1f8XKqcHn$_PX)132`s*Dx2XgzSLF4*wfgR^(9Hoe zkS4iFV|hVrxmawu1LfwKV(&Nm*3L@@2G@bP%=T*!R~C!v6=3K}HM>X@9cE+^PKPBh zg$YVX`Gz3}MID%&4h*ORlXS6K9%z}#d=($*Y88Li^#&Dm9?a6$&BE91`X6l;SM%bG z@BZ**OXB0LdX%SQ_+vw*9oQZNAB%FkN+nz-gD$7rE;1a!GxW}gBB=oXYHVi2=)i7; z^(g-4o6*qf8I_WMir+&3Kk(7Z?r2!S@&XDr8x316EfQ`8eX1nF+&aT}?_}+LH>tW) z!P`i99udCOl3xgOThj;pBl;EgmP|N=jWh66L%^UuXJ|#bzx|h#{YADVUVBjaHAl>-|9HIu3Vn5Y5 z0Cl@fCTKlBIwEM!i*n4nbIgmDMet@u>}NzwWJC}%!Y~;T;gk3Gbr)k{dC{=!Xjmp= zhQrs*vs+IyKEf68-R>l1VxsZ-=>qrjqct~R3g%J7#0lO2^*@}WH6AiuoEDiWS~6-I z#vt&A@Phbh3!L-Cob$Zq*8Ppjr^Ou43y(n6?i`>C<|lnuGFMz(%(wa)6GM0jTx5`H z`1am{>Hb2!#A%WGa`6mgu^aEXtbZIIhD-=^B}Leu;9aA5PwP+bNd8N445$7crDe z8CBH*>8_+jWYfYFibKY8{tq!g&cC9-i<-cTlH^52@}eMlQIEVRM_!Z!UQ`5LR3k5n zkrxGl7q!TXQshNB;6)|!q7ZpehrB359@T(C?m-c9&lq%7PH=Q)26<6}yr>1ds6bv6 zATR2V7v;y>twAYZit6Kf)9FA!z!b&DwG8S2?;dwS>2c4hPKC8}DRf<#8mA+(mTt_c z5)zp%DAkEUvYII#tXWeGNi!QDxE?(3YC@rQ0s4VV5VX-Et zE7k;M#Y6zAig!>{yn~vea#Ebf2 zIVc~NgX-am;^B(g;YG=LQ98V+99|R-FY1ODWy6cA;YG!HQ9~~(_o9SeRM3mUy{Pg< zkuPd|Q8c`$+Z83gC>yHwqG&G)=ta%&qQV#T^P*-iN_ItoS5)kZg1xBMi~3%a3@^$< z#qgrwyeJr6)SDOe!i#d@MY(xVExf2UC>EwDHdmC-wJL&I^P*OGQEFaPniqxUMV&#J zc~L67s1#mQnHNRoMU8n;VqR33DGJOK^<|3kg6c9wahcXRC={ls6Q(E=rl=C8C=#Zq zEmM@1sc4TWD$5i#!W1RK6cxgY!g57jnWB28C@ZKc4Rj`;Ksbjax)V?zTu~mps19Bf z2QO-a7e(boY4D;lcu^Rsi(H ztfjMp+9^Ygx(`sI$pWcM*8!@&sP0A47d4+JPyW=&Oq@7*Pn&dAPMUNeoG$RrY0gaK zl*wIAm~P0dfeZKQ7_q$2}(n+;i&Vp3^7yoDgt5@o_ydFuP|sIuA~J+~uUl zUGBPh%Hw%5!1IL1rqdmp7IhxXIZk$TaH>NM4(91NSk!UwB%N!X&b6p>o#?op=6Fv9 zcu#Vi;<(ERjt+y<8}G@D_tZwW!HJFOX^rVgjp-?k>4^Z-6B^Ug8Pk&)(^DDmiH!F& zfcG@UdlKV%3ZuK=B!KS{`BMP?1jc*%;yrmWJ$3ON1*ucH?x=*c=i!{?m{Q1$h|G+p zNdkiq0I-k&aX2EAi)ItA0~7#IXFefUhjJ2R3L!Hh000000D+(&0FO!l*e_XYX{T#cfL0F&>=FPEsas#jN%Fo$;#AFv9E+D{T>Qz68t_*A{T@VQ-E3{dX5P#4+5Q z`uM&-M4Rikpr^Bp%t`HMOZ|RGuV>gb-5=O51K*7Iag}C!Ck>n!gP$4>%S>0{sR0qI z@ANw1&wg+cK^C0kXYJ47dzcf;;)|ibbwqpG5v3*(v1P_ z%F+7&Kf^GAgO1%lUHpGb{<1y$F&Dk+#np@7wf!Hp@RZeDZcpD^x@JeVSZKCOQ}8&Y z5BVtdeK?G5NFMMp1B*+-3`C15363vxU3&hcWb0*ro@)9F?GCvboE z#e?a7`0TalVg7t@d1=nU#US@r;w$9Nv(@ROKBE?O@(n!X?SoUi;l*QP+(Xb`Sv$F< zml^ryrUv*r+J}F4j2$O~myNUF*>w{v(%*>ltJLsSBt7J++_gJH%H5fRQ9N#>GKDj6 zTZ;epPJ>{~fB!FR+PKE);(n5dch(B`7}BE}@h&V5VuqpJ#9$whDK_8 z$a~ex)uq5F+ueP^x>#?I1{81OxO=C=5qR2LepY$>`kh7{=QMV7g9e_+<9xwu)LMfMrT>v> z*bOJYZ-x6aV&~4S&H>;6UX1bga$BMA^y2f09(I>w3IGTLw>dfhMJ!+=38z0qi zv>WT2@U2VBC#l^7bZ^jStq-DXlswlo$gySnzKc@o_PI1|iM*;7&a2LU9$l9W>(rBi z`CuJNaPn~U53FihCYyG~wV z+Hm!}p;Q08><4_xYh0wsw=wsmhBJs-A9F|79`$i|7%Q{I+o8V=omaDqQyiMtkfx3Ck}a`t2BNvKz|jGOW4cc$rEPL5BJxJvE? zbFQ=Mb^^$I_;{Zkf&Vp?Uf6+smF=ffd;nY>>Dkln$>zE~G^xKayInVS zEBxRHm|1_GKI0wU>GR4e9|+EA2_d^);u7w?0Ni+W2=rrMS2(F<^`vruGa%d?scFv~ z>5tF%oU}O|(S177zAWhbGQZF#b>v;jdxy@QVW&Zbt@Pr4(`B^-q-K}0=YKRF&h+P| z6K~O%j`%pn7Wc`i|2sbY?IHcm7kCcCzH(>Fp}Iq9re{cv^;@a2za7rKF9_TjBwRb~ zon0QA$gpEv2I>Jd}80rcANpHMV~M{Nj>*{1Fn8@B=SxNYQhiu4B_o&kW>DH&P= z+jL{PR&+zcFP7%LM7iiU1pPN92bbFSIWba)lT4?xh&Dy^eLtj&;ltJ_*A3N8oZRB( zP~9K?CF`U1ZD)ylr2V};>OBnkhqoi6@V99mkxXA*7M$Yjb;L9)Kl~8{YH(}f-Zl)o zis^in(|b+jABKF>Nz}t;_SuFIcSrC>PMfxGjXV*w*w}6}-Zu7Di_1((&!l2sMZFuP z%}MLH`s>>US#xZ;@wx059T`K@L95A152K#RAv(icM3j4cito`J2EN&X9Qj6{A3nz# z_hNjQ6EgYS$5MR%sLp+onU{Eg4%xf=2BfGvNc}gFcsjZ5tFhm)!y@yH;%|nkCq(~m zap6+)dCdtqPp#uv{i*W$p2}}49?T!ojF}vN47xJui`2$fOK!ZYqx3PjdzG8TF_SQ` zgA9rN+q-*g$Xddv0?thoSC-)~Vl;BX`=OO(8=W)}!~9*sYlUd|G^H2kf0wmM8HGKO zI&pq$Ft!mWS(}*nrfjZMsH}?MEN1g}^HtvInIL}MT{c3I?1{=et5$DUy?4leXD?@b zjv_?=th@jYa(hK|>d+em9AB^JO0C?B?5~h^y;O40@K7233=A)liX(Ky_Y(GhA^l{C zU|m4c$L#TAvG=_9=*p8`Uf6inWakC%#(D?bL|}0A(qGJMfXBrm_ZLBOXKk%O^9Vd- zxqi5;9XO#|!v|bJ029FfEkBRr;A)fYNdMtbcQs$e+aRaAg&tbm!ekrFl5Y@qmtz2s zUN#GE;{8}GAZ_e=uYTvSaT*h;lcq65JuQzv4!dChKp$wC*17xpLq_B8#C|i3$<%u# z++)8m^d6)xDoVX}Lw?{!8~*2~-~USsV%ZIOdBgU(_>ZmTuv0JWBWs1ly^RBU9lHp| z0dhY2cKbYb!%w%bbs}sb5qNgR)jvZH@i6p^{??sZ!>Ap|duADl4!|vk-%nKh6vt$s z(j!gXu{7TY5*==M+*Vq@0gHmL)G(dl0rw)wN|)m1#GLyKN#$7C|~vCG{4AKR=l9quLAj&cI*=Y0_8qQyob)+N2zGD1(#fF8RRvNJe4fV6{il zdCns%k7P{!qb!C}{yzKd>>G3reHI?OzCTB%E<7Swi~5?69a4VPV*d?%hhL_LV4C=;dsmUX%2MqPC+WsM4P@VQo z?4v5hj5W-9v3kUMyQc50C7PZz)8QxJSs%Ll!YmHWhiJwFUY+~W1U}_P`suK`HNpH0 zj~*Y5o*Q6c(NQ|C*zV*hv~D$NXokIAmA2*PWsZLHzc2-_tA4lz9^5W=P=$s}ni3At z^|!t%CNR)n>=5X;t(X>7p1AE!b-4os-ybqS+hQjX!v0|Udyg%g+)}^wca4?^7+^sCu^%DxxM%JEi=8C@ zX4RMGiDbQA_`{YH+P)}iw;O}gHT#G6@;QWK^7Fy_ZTRe1rB#*Bx+EK8O+1$yjIeRW zSU&rQ_)XQi?6xUqU1iT_@?X9L$RW5U9Xl9AH!=TC`#IHhryTp8V7v}j*e-$Gva1PZ z*n@T~`fBi(C-%?P+5W@L56#JIQ;m$}eV}KCX$~2~;o`6R4WEI_8pR^|15t(N_2}a8 zxt;Bald+dZDud#O(2S zpa~|aV=}evY!}LV&|idcr(0<_bnGU;d=5D|$9p0@+6jidm)_?oHM4nqy;zNp;~ z--91Vmq7%;A-XXTq@VElGE(QAhx`l}^S}`h6Ipxbe~n8y;yEuPF}5-Q zJdoY$=VXXGMD0$E4E@~(XQt#{;{hJmGBWCoVac1+Qa>7;na&Vi9yVvTX|x-n?dY_8 z#uvu+H|57u@D)as<9ryb4|n_eKkB?kgw2)~{|I`obAcdm@8jAkvDzgO$*pU4=r$Ig z>@Unrw6{jef;=Q6_Z*n30{oPVcZ>q|DtEgLiLF%W0$)qnm2`IhI+K+agZ&RW_ehJJ{ zy?bM;iGSPMza8c8M|UM*6|9r@a3jOxuO0J$%Jwcxa|Qosm$ZBRyisvKt9L;3gOO;ANtdMq2>wLeqniB_BM@uSe?aB|GMcDQ!sc$C?~$Yo{Sy?ddVd(vYX#*nbhjEFsE zmB%yVePIY*>`0mAryi88@VFw(EMzGY50yRsB}(VoEI6aLJ@HTAPVCCCa3{xf4zu>t zbNM`^h&}-Hb}f3psGHeGDP%8DQ1oMoN-{oxbbSU3`V$n^LFazU55_8db(f&8q z)LV*hBRhHPr)|Oe*!#H9D zXElBeZw!QYt9N&s^kaI-vfdIYcH^h*xCGE#3)&U&V_`pv9~hV;;8HUrf0tVJt^=v5 zc=YU$1&3i4ed6S=Nl{`eFUWp0_xDD-9`7c(nR268caH(A&d{M=!>)upeBK)I)%Is4 zZA>KP!dYc}PxOA$j+fevDKRmk?$RJKr9SF7L1CrWll&iam^csGJ9hOYG+kq2{Df&R zCcIXDz1N6%7rqP43=Q<5h3>=i#?~BoUP%%6+d}Kl^3KWauT-80d7|O7Lix1x-|dqC zHdQ@2(!6=Rae!YGH%m+$=5#SziH)$C4ryd#0kcbR?g4R!UX#oYu8T_O@jr>^aVR%8%9Hq% zq@HM{&K`8HaUIfe1Yyn#aNUrLbMsFgHpKkQNDmw&IA;;x%6%idIZweS;y@bQ1sL>z zfiNz_Bfnh-1F^aaKD zadlJSPGRTQW%3O22p%I*GN#!6Vh#p>gKRBD+uUn#u92_s9~+m-D!I~>&e5H-| zZwV*hz~RlU7#-X!{#S8ZG&FyMIO1Z;Ec=&(`8MBP;cVk6ZWHC@a5Nug4|uM_Z*YGgi*y&-O?i zTFd-5+YMt4t_pb{XY=9X^@sl#(+^0`gS-dHO<+ISalO{Cac=;68fNb|kYwN6r7hTn z`I$U77yQ|0jfj~(-+)z5CjMzn_~i%5DRpMV4Y*tcd;t2ydwa^7F50E5@W;{&^EdK+ z$aDjdd+*(Nx?6s}B>pGmKmqQIw%N$FEtGZhxzC8nfw(No3tAaO_pREYX;)82_?6gF zTkj3&+-mx%XF|S_za7+-{X(gt3HM>Iq1vNPd$Zv}()J+J7FhX}besB>elV%c5}zN) z?gqb)KJ((Uc#r3__S8N8yOsN&Sa*=Zt5*R9dOv9sS)F zk3x4Fh7bILJ_nfW8CmCud=_$llWoW3rm`9wRB`KFem>l%;fJy|g7ed>@`=$Y;D=Db zpM=RS>SQIieknY8)cGUyf|YDz9A$or)r%?YD@x#zqK)bF9-u zyu6X!QAKycMxj=p=CjtraSe_(dTs(j&y7eg{MYrz$yRHE{X^RioPMxAqo2_}BfY+a zv>oq`Y>p%CeE=Pg8aMJxtLORfcXEhyn*Snv-5%PgGWt4UuV{Mj9$b-skormIek3HH z@VP6exyDQU|N}l0y-~EvdMNb6puf5nD!dcsJ@tlhFJn>d88CWm8 z(hB&MCkZ-`q{$aQZ`jSrnP2Fk^C58^xvsG=qOZbbWX?z7JQe80*Whn|bc;8|_+l0w zxf!kPL)I0hIsx+ww)lbEnV{N#i`xjAm<*&dBUqisX*{cMAl-GGp4Qp0p?{9O^y|XO z+6(a?YdPp6CGD%toLKqo#f1(v1w_x~)w3Fu^8lFx6Mpo%UUV}^%S6eHnuLpr_=|f_ zis*M)BmKkf|3rD}*O;rr-)!`g9A>D+mUH-ux~5M)Ye%_^KBRJ1FZkHIrrLkaGcjEV%j=cZPbIShz!?KS^l0dM@o&Wbj(EA>Z z<4CW-9amBxqQtTQ+0C`}Nb#z-WBY>M)R7b4dv(FrB8*Ldab>}WY@{{wgKeCDfbcUm z&2b5{IV#t+I!7TiYplHbt>%uUJzlTeLn!wt^bT*W$h^V$L8arfJ3_B)DRs*R-_mE` zvwKHNKQwo;*?I;-(H}1sbM<43S6w82H-D#Zf%a>F%XK6}pE_z zw8qMR{*wMu1M{|Jq8Bj$=@rhIdUH$B!>MlWn;Q=jR1XM+zW$#gW82k7oTig4(G97gtmMZ^_BesDM9RL3>wI1; z$J1WbpP_l@UbFVCvvQ8D`!q|(?nU(0C_}#pI_vocwIP7$7UEq-g7Y|(rEsJVZ8>U} zOCU!a|3?~y?ZdFAFF@vx-`HbDGyG!83#*%Bw<#;yVz8t`KDN&We21SA z|0w3jlbqAxs{D6)p$_VKJEbQ`R&6?b%j5Zz`oULA-(iqg`&Z_c7~%_YRc?yUMR|MY z18<>a7Br>9rc0d>A!xJBc_w@7dAg79FuP4JkMhCXs!>Ny!!P%aMN=(L$Xe&;eU|)s z>1G};@)lca*)SNH>Qvz>FUt8DT9gL;!O>Y<_pb4Q*TXE`8Fa3;oM9W`XIRNUnu|GzvldOu>_ zUD?bq%|m0*|Go4#qx1?X=pRAd_z?bVvYT?EzwfwZLetH+%HcVi5AZ!=m!;CalfYyy zCTKf>ucb;^qNQMvSX@h|!f4yNCLQ>j97dM_ABrL^`uORmA}Qq)=w6*0(n%3sBQSx? z-{D>dW&D@Ub-ntYeR`n!nK@sMYxe)H71$WiKP#ZC+EAy_ii5dYb~Q*}~r-6n)| z$u2BR(I+=8p^91WB1Xl>xdHfWVy~ZYb{@Qvh&H|5EZugd^R3WbWw`H)e*b1%=k1d} zV@mwj$Vi)qdEP2bKb1)LLr`}=6_@2`@%EB!!%ROUrLCW+>d+#SP#N zkM&$j;=fbXXfPNvp#n816CJ;Le=pnR>oR~sVSy;B)5+7@CK_*)XJj@qQrZK2kTy)U z#@@F>s2c+XCDwK$1+>j2>jiP`MDZ$S+_Gf{N=GU6?Nag;u`DcuHGbSb&VVupW{xh` zy|ZH(HX!^Zte>%;DFtmp5>@k|XyT;4d@DO;kRADly|w?BcXln*$L$H|I4{WK`NIGD z3|-0gz~D;cqM(m*@VvahkDj&5CV0Y+T?sNOe9CxvdRH5JV-je;ykO_3A|k$ODy3Me zyNnqbfbIjmq)z-T+(P*Mb&D$erVKP_ki*B}t~v9SF8!%Bhl(5pf1HV>p1_STyl?q3 z00-!Q%v+v~q`7AWjb`KV9;J6gkE(P*6od1z2B=@Se(6Ky=8E09sN7St@Hi~==Q7>o zlFN}tHeZW{Wz-Gwd3HibY>1l^AqwR`fZaF<5+{e!leA&&(zb&U|BCHhpYKX`7=5ad zp~z!huZm%mjHN$G*+zimtbzYmOll%=XE7Fb;1nAeByVQJ#__bO{=?# z-G0_t+2?UmW&XzeXYkK)go68K_q&Bi+{{6PHb4kRXt@=d94II9BgQd0L35Yzgu`rT zE~L}h!c`GnTiOu083~khgE5}^BdvpJ2cK5JG&NojlixQ$RJU5o5Fq&nrs?zbSDm-? z@*~%XhE56FyZFSTrO2in1X1wOgNOg>M_+-PDo#k|{##T-WsyA$CBiVDwvzrL_2EmC#TceH2XgKb+Cs(tbPwK02!=WxLSVE8 zwh8erqgSASKY%SIkaTmveq(afS37yMlW)D<<+7NA^}Z_{Cf;3dNeco-h+x+PyCMUYPY8g2O4)I8rU$9t< zE{`LcTqT4Fd}Ous@SBih{5nB*H{$dfWL&e)WmL-Q%J`Tp4vka0OerJGEGJ)VG)DEG zWs=caA~ZsVup${o8F73n6x}P$D`5uz@~m8_1+s4L_avhru!%IoxnXU#?y1DkB3iu$ zeCBv=b_#_aK$Vf=EU~H(e&FemDZq6jSic~H-NHMtoB}J*(c2%)ZlJwHd~B!DxKpHb zSuJmNhGB*;x}aokK_7*e71JMVjmCeNwc%X{gpCA9fBxKE;3tt5!jT-R(TU;=#x;coxyz)I2hRN2Pdsy<{j!7uUo ze57Srbpe_KT1@vOGA5P&CFOi!Kn$Ejt4&dfmVwXrMMzA|tyim@tCEPL=(XQnyVRWM z;%gJYv%AeZ!PM|;?9I4!f>7|WOqhQb{Vn%TglyqiMBo|)t1Xeuq(zm33&G(AffsyZ zG#F!@Z026kwKxxK)l+v;T5RKph!v)wAa!(Cc?95Q7-mMPJZJgboI;J z23{_>?OuVVtc-d2c#i%KNfckVUGdKr^Gc6X1bJ0yJVKa^3mo)ZMx-v^plVdG%smZX zAV`9g;t4tgFfpa`Nu6=ify@%nW7xpt-%2gNGaw`M7_ds5^Q5vyXd!!Cj-j4pz81s( z7Dzzr9?fEvFF9<){@TE}-ADt54QI;a#(y1Q&1A)JgKyVi8uERX4nWn`;Foxx74@}% z&r_+;xE2qf0a8|}NL0J>$g{mu+NG0uVBkYZV(zZNRF?^h%;RZ34X1J2VK4}`htW+4 zUealmt|ANFo=O|8#B(fl=VNx=Pgu#w7~+R?on^DHRv6yMG4eYJYz9pSa>r=OhMP7% zm>sqxuK={lH|e$27PV9YxUQLbL1+~o4CNu>L2T1_jBkZWLc1-~u_8wi|G$~2!hjS4 zFD^zEQIY&~-XhH4s0D__h?|=8V+%P)DAJPw{!C3*H+WWisGj2PrknXZ@CQ4x;h!3T z*;nj7z-o?Mv3{@3@7tE3G9t!d&L==z%2K(eh zlR%lPNq6Om;3$Ko;9mH9zu$h(&;ivuB^}wL9spGP=Kb*v$@Q~*v)I3Q1w92~QU*7A zqnFA0|6mepI^axxv|ccCk`tVOHOq|L?wAJbKj#PBj!_!10O%thA&t!RZ4KZJmqS|_ z#X{BGiG}aszhXxj9cn&^zEyB>C;&QAmZ~GH#>Qv3S+U+s_uMps*WIcX@qo*w%}|7m ziwmp)@=j1tlfgXoa6*Pwg$cz3w+VxdavAaZ;ha$?S{QvmScw(OyIr|yAsfnK(_&&` z5<2SwEA?KdXsM#8>gF1Z+N4qj>rP*RJ5u9^QV)Q{AIMF@_C|^|C;KJr1fjX<^Kv~m zN#QwGbYVbbL<}%tM99$@Zzx<)-5+UKL5E%A`mk`c3^3cZB5ezU8=A}4g0mVpCz+Bq zXmf~#Zp>nFgSIInUA0y+f8t6*JM(KaPEAeF_^+{e92U7m-VjPO?0Y0Eds@o#Je`;q zt|T;Xws>;Us>272xK|$t#}_l0==U@LU0!rECcYFV4~Fu-wv7ms`Bb~#yff-HPa;sB zvJip0Opcgp;qUOTNxGTQS$%Nu=oNJPjsn)(0>D$R2Ur!8gW>KH&^vuHGN+BY-@jK# z4%iBV0CH3_W~bQ=7!p*diX+hD&qJ_Fb}f= zD?`hSl1p=)rKAbf7ESU{+^|L!*M-Or&ZhwgK@3cx_Q*o|V!?Ir`pCPAL%j%i zr&yHm-Wni<-Uz%yCB{mVRBB_P%>Arh+P9&w;5SgSclbe&=Cyh>zfF2!kwe^?V(9gT zT~!a542g6)@Y|M7ZYfPO8O9{c9?wox68NMYXI@flx>sf{cIJ8PVawqLL-lb}5}2oU zhu{vwpwWKG-KAScb!jw$0)J%(N8~?`{spijB4SN$#=Wi6fcXxj>rfer&>MOI`Vd(? zNGsuz&>n8c2u>h z=fF>tl$O$Yztz#QNHq4sQM}9SwEd6V7V67=Z1D(IEexN>>L;EJQoTi={bPlObX=$? zt;Eeb1`)>*zNpiPbs&(*P#_F4o0E|M+2sp#I#o)rX7@xF?HtlC%FF>X@}W9t(Ge3O z?Ve`$Tirmo;=?>TFxy-rjjhpy-a(@G%)qhh-WoDEC02~i6E>h6PY8h`w7kv%fscqJ zSuB@jPvb|>__iRIF1+Q;-2g-m;faT9%AMwnfz%q8Ri8Ernhz{XX z1b{Gh12?grWmi7Bsw`@)Z_t&3c!t4iw4q0*GrM^%b2t6FjKDf~kzxd@H`Y50@+&ON zmZoGv+vC_~TE4IqzRx^P6SiH%u9(LQqvj|x74m>ug?e9i8;PnMW>xd3s)t<;3h<9D z_FZJQPQA)Y`_9x_<>`h98=>_vl}+W2ae;?p6+OS*sd)V)+W2ys``0brp!R#WXZUq5 zycsBCE_hTjo`y|Gu-^s}xP_I@nL+6H24Xt+B7wLUGT-obs7=I7`a)-!9n>ok_U1I2dxl?a>h9pG3${9U*`{+Q$?9gUx-Nry3XLLr5T|hqgOmbtl+|b5eA91M%MEyJ0?9 z&i_i@AO2~CGE2$i_*J*$YH0JvOAwI$F#N3;f5GP}=dCPwQL-KyP1xgr0lcST%aG&S zHxe)N9>Q42)I8u6kpKjU>0{1;+Sxt6!+a@4;t>2xw%%w+Wlsj78~hb_NK-2Z_k`09^m#nn>v}2!2sfcXP^b zF%KxpOBTv%bo4`LnHKnd9$*c+D8<^UU*P38f~sjyCU#W`lWImj$Bk)jquea#aSQLH zQ);Lbx^AH>D|;5^WLMZ4QPr!i8%BF2qrJ|S<{Uh0BsEcPEKum!=s8+HZ(vLR^N9VN z|MuITRrnn!#qz=5Yy88XGhkt1_s7iVLu}3FzuUEMYj{=8PEl|kp!}@Ql4sbnDs>x` zMoqV;&8)3Fx2pnW$_q%K;BM6;D;Lm)Dnu7|GqFF&oxxIMbL@;M_Ss#_9yO|)KC%N! zMBtKoMBiB(h+u(6G&Xqanc;I-q z#db4li|m5~p^nk=)}deE$Ah0hY_RB@Y42i zo+3zf=*Bt^ap>DfwcRkWyht$ow0K61C|(_!xbGAPvyKh>g|9d+ zB@G*CVPDJ>f886Ry<&>2?rSTjZ0&E;k`J|CiZhtY*tzpHx#E~B1)z>!6v-cD|1DQw z4eIIkqJyN#Xy%n^+@ZPKo0FQrG;M@JzAHJl+X5(SWn}?kq(qbN2n7Y`fzhVC4l^2& z^rkDQ*6& zdvFy_7-MPU6LWz#UA15vPm|KNd(b_5_Xz#EA5Z@bjIDk}_e#A~xD9vVsAlS*G=z7e zrYz6a#+V3H24smvz>Md@YN%uIJrK67g-ylm+^1rHDsz1VkB&68YJWy6om5sXu!ScC|1l)Ld? z-I1KfhekIL6xM(1McaY$Ty`x9yqiZ zt0sY)1qVm!?ScT`H}eXV4rTla2>`I0Ai2=lP0{AT@Ug3ize*0K=)^IL6R-QomuE0nMh>V(Py~}nG8<`Uy(i$AVMhesf)8Ih|+NS0_;C6;S79lt$xBFdS{{*if z^*11qF<7Tmb>maRuqhMWC~r+NW|}~RTw1SCy}(r4E%lO*kyMNxvD0`CyzaM}&>Fy? z7JF3|DCTL};YhOknc+bOPZ2%_;Cd-T3(EOd=tmA2VQ+iC()ExtMvb^X70SI^KIK3R5>42yxG0%SH zf%EYs(GNq#nz;mb>)<#`B&hHtpS*w5iACqg=kWsM(NZooCIIM zBusjIYF~VU`PUCKUo$E~QI)-=0?`!Z#TnF8qVUB)+_z=%z~H%3bk<=7^Lyl8^k-eu zu5I-^gMgo^xEd2%hEC)VfFOR;nxjViTq=6wR1!8n1zxq9twIr-7SX0WNQK9B>W)w{ z^_gi^1*)}j4py4>Z1IU0UkrC*iE-58S zxs@@<1mT^WEp}-A@5q$gW$#F3d&{a+lfk81M@%lP{RZ@k)C(+>{gjW>I)l!8i@b6iv9pz#QUH(wEZk<)o@h`e49^K>A?b@%EgW zwKVii_)d63|J+i2`JMY|v^OlkRi=R3IsVhE4RY9;$SNKbnT4z?tkUtHB%q6HGMi_` z48rPE7^%-u(D8)A6Ci&&@f2b)fL}4k%Am|rgr5pfPY_2~%AZw6?)RpDsmE|*5KUWO z0S_T^t%oXYv_*Ma4sV%eW}@COXZA;AO!LRcehxqHh3;cBm=FfaF)=W#^oU@DXJX+s zpwHgM?qM~mDMU{s2Gvf-N*Q0@o*t?>K?T2?0!I=a!hk#07Ttw~+*irn{!^DD0BsS< z?v4XmXQ<#B*VB8|&sv*|$WNFzZoH=c^0dlcxYo(3go1e*{>B0NY8(H{&d8gF!=fs+ zdL{clF=s`oxMZMF3+R*RXFF!{Uki>}P~8?Vv&JLOm|i4Bg)KlX-^!c4vLVq@^y-$HbAF%YJUEoMA1ON(-!LIQ)a8$%p>FRLJM+! zf?`;}J@j$64HJmUEqzuw{iON+Y&QdRA{q}bWdmb~uT2)}{@CcdH9=5wMkVL`02=@xMr{Tm7}p`4t`72!Y1wm| zeM*QggI}ZNLhzYqf^zzecQ&er{KCk?%DnXob4)mf_17@Yxe67@57IhuL>R;DN*(XAGZE2qX#*)R>Zsia*`w zbRO(b&39F79;)bMqZWJ*>CmU-E8tvlldy%3h5KcbPCNK4C%tga-2 z)1c9y-Dt}Ws)v;#vNw{36}BX%NTcn~416W|Fd>9m;Kp@0BlaPdK8jZJV45JoiH5tx zr5a;kg0%{$J1m~I_7%DBwd3r*)W0J=puCuSDegtbw@X;$7WkzU(J+?~?Kij@U^=cC zm!vDyhUs|{L*!AhcD)!zv4hI5Lz+d2+_4e_=T=|J@~|l)E?9oN&{KQLC9;-4cc~Z@ z{;(Wa;I2(?RPWB?#u@6zJ+`1lUZTweAkC<7yidJ=J3+dyHtw+-lbSl4W=$yyUP!( zTj$Qz6AV&xDSQOC3#=EWlUbN`sqY||&@cdC-&eEBg}^g{ax*lHk}WKBMC3`b_&AYx zxZoCuVl#DvT)`q$?FmrjQw=q(-$3HUKUzGET|_!(i}RNU6C?jD@@;Vo4V-Z_cM$qc zIDy#)a!Xz*re}7(7n^7EZc^~cDd|vg)-j9^_35uSxt%rG$Gu%-O}N6|%BnG|Ypc_R zS13ICz>s%Fn+b~#(lTKWA4RC)Bu6kj>$HFa)!`1Sc_ftA8^}mYSrPy|@M@Pmm8xhH zBjthXV;%q1O=4kzsUT4;La&)M6VmsG&bH?!RoyKG8>4^@t+#O8bB-Y`BdaxFXq(04 zpqowfzb=GFxw-?bgcfx-xNS?iFlng?cNeNlEITkql4`8%L?a($4@qG=mU2OIF`SkjM^oR{N~6+AF<~b z`eb4NmU#_;7tV{^PA&l;Rd=|Iu3}>~g?6DqXZgf=DKjk2h=;#y(D0tUmH#iLVRcao z0oMU~OZfbFdTHH(6ifJANsx@b5Y@O8Zzt)zKdI}_E-8~2`_KDRNX&UW&`r2`K~l~H zHl*2A2z#n)j2!&QBKXtVQ(Os~xfQo(!A%^pLu;=FA9v_s@>+}#(tb|fEK0EK+hzLq!S8;U!eQSml!|F9ouZ!m1m_-bak)CNG>F?M}wF`_9 zuQ_q3l}v8^eNv7@s2lEWcsGJG%E7XkVb{#0M0~8Pd*efFJUsxk_e%oU%y`sH4bn!7^{<2KxLW|w-gBLN=Jf8J4npK0DQq<~eNTh)B;K&9 zcW)Ma~T*$PY?Q-&@=Uc#Yyn&`<+qNSY^~L<XbWJrwPBMd7$&Feo zI(^^+o<3;jfobO7WOJ(8+Le43JBRV6t(z0nP|>WL;PLo9;mJdFNINs?AtOk>!6g!P zNfHPqe~>}+^<&}ZWW7Y946wm5WZXQPj3NprAhHlNh>J+Q(zJM#F%VBhHYU!Hq5AqS zsf}r~*jrp_0;{OB6Zk?srNWn&w+QRQFGK4%jUkd~b>A!%9-Rxm(60U5gK(mDEc0`~ zj}KIAK;JaR53`i72Cg*4k=T+T`fDkc+F0lCR%s!V@gCI~c&QX;MN0|ly~-R0Z>)2@Ma&NeofQTB%Z_meu;|tH}j;d)m#^e!J)qLB?LsbFl3>rmlb|tSYz?h{=JjnVqBFx z$nG&q@gvf8Qy=$xi!mwq8zE%HKDgOC5&1K=F=Dk@&ivx*@kgPvP=3PYT4t>mNMe z^Nmla=W{$n4h&+YD2@Ef;<*mD^?;c5WUu)O(}jS?*yRfd=GY9`UFK#@&^G6;ar2*a z=aph!WsKu!6vLB^1%;ZO|E%YsJ9}t$Qe;33hCPQkptgINa~8p`S7my~+tBPZkYbPX zwnNvrSn3%drfO)ZUgxXC`+{7&A$6?^seFfNh_AIU$jG+{5 z0pGbY!+}YEznr>tnN>FRPn!s-H8LxIA8%`6!?_tLlw8MTM8Ku(HKM$ zQoWA*R0+V~nEYhJ#9HCgU~aVZe1Zj?o){&)2z8t^l3uMdO55yCX%rMWeiUWj99O-W z#w|B`&Y(mLtHJl7&sU*zkmS92a5kpy$O!K-)b=f1uoeG!2MtZ5!-nAvm`5mkAUL2& zph84K)Ibj9r-EunXD2`PstcDT2r=An>bc7U0tr{Fa&)%c2xW2o@kprgz@pRDK*1>r z50l%!>Qm0%Nf)lmLf(v~Ck@jp6F!-LEW9!XNJ?+na_J!!yf6aPU0N!s6*Kfc4-y!h z68ozZfuISH$u~w$64{7J?5UX}uqc>DcE`bk%dmW~hA@1fSu2ER5E@x?a4_@VG~;-2 zXwJ6ZbAIU%B;qnw90(vhzr}MD2_c};wF9Pa)=FE{Xy)a?e~}(V!;8PvEXk*4(qN-L zjv}piW@kE~@;8ZqQl}&ullRB8VFkPf8=I4@`h|#0qsER&(t$VWmm$6hB}1gFa{P%k zz*m{;L*t6wA=c5`NvdRNj*LAtR!eU4p#S!shMR#IC}_(BU08DGm2{&ezdsbh$M+OC zQrU(5;)+RfID-enAVYTN19+MmwEzU^1SQc$QlI#>o#IR>hf)n_RtBCpDq$<-w^G;{ zAAh1hW3b-{e$o_+yONMU;&S167V)EjoP=t%c1XUR8_s!D5CQfb>S;0Lp=Diy-DUn1*jnMI*7I4&9QGou%H~&3ox!dSkP6gzlI2hsIxtqjE4z>%*g}T~B92JoImi-t&<_t|s!x!Me4Lpj>Cq-Jd2$XF z^YQUN;Q(;KMGY?1Nx~6H9Dh_j!Xw${xR8QWD{K%{t5k!tIM$_6<51W z?Fy!7zlb@wCJYPONSpzsM84v}vWmEfZQ9@20 zEm?5*UirSmbz)d`6vKveW(i0x!}@x*VAOUikst|gh0zD(N(OV=Jk59)v{X>pE`?>q znE@v0=2cU;z+SJu({NG0utRTkb7!0lU4k1E_o+hs+`fV&sUpdVJ5D$$XQIcD&4G~E z*uj%5lrf4sa041elJ#=xq-Smle}mE#g=b3v_C>o z=9SGx1^|Tlw8_K_udA5U?Fep&N1yu+B6mu=N(p6-CL6-$t~}-q^yb0T+)Jd42eEkA z*#gCtio@GfITBbfYv3NG0*!~ZRFVNRMP{CYZ)yh%jxCf(ZKO6zU;nh6d3r0Y&xmk@F6P$=wM|rOS56>-0IN>;*HGxUliksJ{LN$nr zkBiCNLhcKbSo_)9W8-bbcrKZg4$16v<^X9Q)FB(CCSNgGNmY|&_5 zNxB?Z*t|v+`l+18j0)oE&sO+5(m|Jajwj8@b4}sliD<>h?=f z2YdsoPQT`6@16rx|IwU`xZI?OTmom~tD7 zh?kLJFw(#@?-(^M zcIlo>Ln9MEQd!!vQw1S%#$g@P(nK}$rf_B<(q?&M0ZCF~4r|7Av7TjQ%Vj*&wfJq) zlK5_++Fq#)Np8c3C>a+$Gqco0mv=|ulsj2s`UX;DR98`94RI+=Y;U_$r=G%9Xryj6 zaLw1TIklmwlky0Abs@z|cq~{#*t@~SR(XKp0Ltbko?T;Ril*KQYeulpHaPi?pV!Ac zwn8?86~Cf1cI*$UJ|M6v#233GI>G#Cr~hkyYRxh_8vNPB(IW*hp3apJX^pTz&l*X> zXA7=1c_*)2a1o?C|6pNmrc$I?q{upT>vKhp7qSIJC!$8E?OOOSw_rA3Av9O=A7A z8BrZQcgwP6?)uY+OxEE8^i6!s2>|yXUJ5oF=oav&y@ODU50qG?;0{bE5=K@mR0R!Y zV@(;CWIceH@2+T}s^gH}7Z4B|Fe9D3FVF=~@zc|Aa{Tb1*v0({LLfDpxkB2jLYe;){6mxUoTabReHN7v@iUuA zG)1IMfHg{(oBGK-jFu($ORQkKVGgake9}X>a11Vi})^3ZCol#-+Q;#x` zT!v2&(0SMeAoFv22)4QCB!rOm7?tbzT3oX;I2Pw)f{`xb&heo=a^xl8zw8dw(PG}B zwQf1`3;J-ah8KHW7FS`7)Z}yO6FCqGpu$r})fZ_wxbQzvz|xY!=7%9Se`2D;g-mzD z7woPz@m3Ho&*)u)A{!n2^|I7>1^o^PkWSDpJv+WMzl7=Lu&fHpe#ZD#itjVT zG#`EOkmuAlrZm3ui@FF+GcqKIJ6mWz5x<&syy22R0i_Bv*7?5Zfa1L;yJh-D{Ot~H!*Zh2 zihYKrV9-Rkos%mm!>nfpml4MRXx4{dahHAskxhgifx)^GV8=?OWR{VjuYH=4c)@PN zTEUcn>=;SY8H z9P%KA&{Q~Pd4~X+yKv`39*%l_lDw>=d#dnJkNYP!u+jkn281sDp(NCuDUK)8Xc_(l zfqU0G;YsR~TuD?}j}g7dDo^Od&b*(qa_g{yNWZTI2A=w^`NF=!>Z?cZXp0KeVP;@4 z&>xmSe1&Le@fW_D5OClEAgoy^!Rp(@`4EktHvvc7-ys_5`*-w>rdic+Qgl=IWg-kM zc`fNzIsPN&5xYJ4+7R=I_BMl?f%D+B9^bJh-Yn8^kP(3k=0stke}(`ZcDH8$UGcxoeE z`|D*3`BrL(AEOPjPDdRn@uO{`oz+6>G`(*<)vy?03{Ji9B&-(-%9|71-rH3x#au84 zGXu%qLQ#n{0&>dl-fV;HD)Wj3Nc2l;EBNc%XsnEH>H%E6JX$s{=*?c3EXX8PZ3U#G z>_VWgIY=?0&P8O8I{xW4vxmt~X5Uk(0^#13JLso(`~w**bCAh!^E&BMWGu=MzkCn- z9D2cJ_rRr9Wi^;x%fcYJ3y#Y#u1@QFXjXhjth3OLO4fUp$t3&Vf4S3pBXko48?$6m ze-aR+X2?O=fkr@fa5$DN+WyeI+YcDa%sN@w4BNPLa4EKOd0?_NBUePiO#tf^k@}&L zb0bq*sb3eEvJ2QsZf7EOC$Jw<$HhR#$h{Cv=!BsbwKo>Al~WQeeN$;3_1@L1Lx6i; zK)US$?oS(Ls$lSlp+LJoF?H!M<&hj=s#0Im%*((@q;Y~Q)O9UPn+2HJ>kN?b! zFQziiLcuI38aH}I$<0L>5ap*%Mo6pw(!cpBQ@{Tp&)JN#y#gWk%vpbHudD`-0z%R>{6Rv|_vSRmija+!Yk6^=hNJX)|LAVQSuH z@N$8fZEM5vxCbLDB|eV1Vc8deu7hb}b|+qhl0}KXn19r@5X^=r!w3m0NSfKuhtldm z@j5vLW~ZJNe-2abbWq9+mb^!v`G2UdZP&+kHJ&$w*IBn-CVZX5cxCMB**-A%f z{+#=Gs{PnbwulAfL@E%KVigTrbLS+2{&Kg22H&CxcUvJP1f7&BQep<0SdEp;6?bW2 zX6e>cT*O;Fr});0T$eQpRRp+gbYBA*lOF!j+Qxu`F{5sj#f!};%d`)bIW%KI8tWy? z_y%GIi&?ToffX@4_f?9(hJ(su^5s|K_lIGQR1=+SFwyC}8gmjhEHhGbj6A}wv#FxY zIFzz8jbIueh^-GIvxGGgDxX&}jTOzy*-9Mjl1lWB!z#f84}?P5&B=oS_JyT2F$rji za7_X>_ff>k!vc9i$e;y4OOK*BXC@Ls(}^|0IV!wFkW@JR{oy2IfH&&;1~yPoD`_xz zez|)O=d72tr<;o$r3PV$MrDL-+P}oAywk}VHCINXO*L|v74ygt5;T-VX$KZD#Foti zkugY0{srr1g7oO<^aj*rhX11uFfW{sQ00uGCa_2`9TETpr_plh6UX6l@qpL3b+0&v z`%q15>6C*x3Sd=W{7u^Tw=TrqHc_OhuB|#F)K8&fxZ6k%Z5+mbZ*7QR26`(J%Wdvz z7cQFeY)pUUxl@qN6zJOUwctsHPQ!Q2rkx(!J&FvE5LjSE=aMSVEk)R!81n%4yvnzNv8iSHiH(v zchG-1vQJjip90}L41psDkoV!qEpQH6@aHT>(%X-g{!uZlIuf519@}$-NWsYhwkIW) z68?jwGdZd;IT1U{g=Y?954V-GYe1o`SA6?6I_mL_+pI$ZgTa!bY=n*$q8_Y*Pg2nh z65Y@j_?B8S-KL2W#vBvuNW~<}ZlLo|Gi240Fq0fLBj|Wno^WN&cDh(jhuBnY1s$wC zzNBuEm(dwZ16l<^=N?R(4k7QEtCU}qrEPkpU3px^J6THasuNm`TIMRT5_EMc8r?{-U6(qE=ngb&yL! zrGa$H8ey6W)_JdTJ{XMCH;%y^zx9Waa~dA3>&fQtmYbxf<&Z-TdS^xx#O|5ShK zJyIWDRSg!3D@hA8gU1OKu{}*ZlLhAtp;SYER{I1FoApUJ8odqUGaNoPR8}1q+LOdc zl$I;rKGcK;FaMIr$F=?Wd^}8t-7};djd;D+?)Sub<5d0GHwSQtHU;z39$6O_CMoM5 zO(B(4(L*qF5x`y9imJA6jW4ulxU(gQi!B#QkR&HVRdJl;t?)c$P$FnFW~Ph;!Ro9A zhh#A{1;X#wac|94jmwo%kW>ReaH}<9A z8az&{c2z-=M#pUL9(^gL-M)+AY_v#LhzwFO>iHA^UkVvn ztCz{k7pu6KnCJg6JfbV}??;rYcE7i1-j4g^^esdbBv3Zv? zJgFM^92X`xlEvg&2>YHI$;@@ABqCK|^eO28+bRrF)B^d0o08ZF$%&C;B4zcAlXz zYOJNF!DgQZ0@MR;FZIGp@)%A>ySIKs-Dpg2uXFq2u&6|5P#Y2nO}bxU7_crTVv)jo zlTsvopM|B(3fZiz3Npf_XFJdZZ~a$1Qr&&4IDo~@FZ&TDlF&#gJd5r`-b!bKi%|4| z=WEOneJI58cvGrWOK3#~aFeB7(|bJD{Z*zteV;|#Q31JekF59kb?>if5a%20G@N#(Gb&^)#;|0!#okM zvMj74C1@pd!F74NfLgGRT)p8?`JhKRmc;?&(j@8{0z1ej4!G}Ir2DsrEHO;Z_U$PNdO{IgoSO+A3dG2_ z2hmMoHw!zQ=oXf(*cNk)I;F!yAfzd9*FB^B@>!S7pk?4j_0e@RslQ0ygA%NS0us1oOotk?Y-tpF2#VM@Zo^64-5zl z(Kqf;jQl{78(FtPxa3ZPGs|vqR9*tAxAEB1J-N^ge8dcS8iA)=yqez{kOXgN zgPBr|P=xRFL#RozZfBAN{5#-sNS3=$+a_w5Aw8NgfdUBQx$V=RTlm5~0|7AghMPYE zo3!UIftKWsbICYeLfMvW2yuW?0$5?^Ej}_8N?@Hv#?#Xpgig*}jUEDRz{khoj~iP& zeP;gIv_cEKFsT|~3es!BKz9*DPh!FLSGy{+4?3Q6>U9UY|A9bq%({DNvj%7eq~}mu zTlysPpCbS@?-Q_MOLTMmXighQZta|g&!Q)4NMgr8hYXrV+*@U%{^vvR%#t=;D+1Px zI(X?c@sLryKyV>Fr-~0gOsJ-tMpB|KGia4?l7YQQQ_)jv9tLVp^q-m8Jaixo2T77Z@JYP$Jh1;L}U-1F1aX>y)!qi;PW!by#1GEzo3o#;a(8)DJm z6P>_tzNyXO!zo@g7>uG}9FylCT zV!!Xu_+2*QA}A&jrnlB$bd#w{gR70w6z%qkDW`st7X`ca83?6?h;e}Emp7?lP?TA0 zUI^5F&Qm*`7y!Hv`VxZ)YUrqW9Kx>gj`=Z*IMLxfZYf@Mi;lQVx+0y1Plq`gjl00s zLbC$%Ovl@Gpq=c07QyFtRerr;cY#(gw(>}sGXvw0GDaDiLa@n`VU?n)yMVu zE=`N>zxm&pk_YkWRg$@(y(8qLIKQDiN3Ngv=6t9DiDasyzl^?Jo|CV9iTc!Bhv@RZ z+F=*qTF|)$!@{VM%%$vU2fDfy&;Wr5x{=UPcTtKW4yCxXCxr&&gzs9jY95lrVZRsp zQxjA|o5eb`=I!=a^!4Wb=aEY99@9I!Vu~ofREW5j5l5+{kcrHI$Y}xvo$%d7>rnH@ zI{f&iYar`Qa@eBLlLRZxUA`1C#k?p|VCEvw(|6JXW-2LR$(g73#?(jl^l6#^y6)@b=>_``ZLuK=;igW!5haVj^AY;#= zeAmS$ZyiWNtMX5TeW{Tr|DyM)0&G+gY(BKP$|Y?I5Xr(QY$Q!tBDtCX6&gy%DPfeI z)#u=ypXlH#ueFXP5RSEksrdnsKZ0NO1Uh;A1{C7g1_xu4)U5zrX%IX2nV7Kwuv&p* z>`hz!V2AuIP1ua;YLECe-VwTO77QebmTL3Dr}HZ7W7YNT7u-S2ozn8oQ*! z3YrF^92`~_=(j9d0prQ?+2>m>yEK#tOG`a4GAep`?<6lE6*Q`D^l zL;?>XsfvLXeX{q9fF!y1tQHD^SE5L1zcyAQemn_wzSMfLcA0tK&=|bF$1I*WJ|m$ToN+S)YZ_QF2m7O@o z{FW?qW(=1}N5s4`YDce>5v8+6V=n>SPf%JVK9npN*$mi-vd@j+cLWjaxKBX8S1#B# zKiV*0J(2dwf~|<{O>yYX5x&fBC?HVXLlT?8vuRxj6O5^8C;xRo3aEdQwbe{{o=rZ- zSD#Sl{5H4^)}kxOkrISJ#X56QpR4ki(<(WW2SzhTsDSwLS?i?=?1=WQ#u7C3Ae}5l zy9(6ml1UC6jXsCn?-aUqVWyysK5|I^ir-|iRX0;Pq&8RliPnzGU&-ff2fk?Qn7BWz z2^(P4O~%7@#zqP}9;2)s@$^Q5;H1DemVs2LHh>Kb8YF7Nc(q|Pv~^A329Z%3aveQr zL}Xv$g0Hs&gSyQk`Fc>}_X3KB+BC^t{Hj14z=ZBb`<7oY`Wg|l^G zkgNsr;EO5Hj{{~PUn?e1RK-Z*JFMo2&PkZuD_1ewuLSTtXCkDO%kHO$ zz5Ph-n@x6#EGbZ7vPrB^k~y5sa;d>uUPT!6!@O2_F?tT9@s73~v=|*sh7yYJkxAO6 zp^ROo_?l~?sjwaRXP8>BN?oyD*?;VnBn@b(9~qgfHsLY!BjXa6?me0o*K&RSFI*g{LK~U#89hhC#v}f9Q$2yRd zdQD_xfi zXnw5J9L5yMfipbu>1b`ZE(e${hz$yq z$D|ml)WO7})jf{_nfwbm&yi^bmbIbiO!z-jnoWtpDZ*ILBZLcM56BLSv?i6P8W#PP z+`@T32a3D_bS&+}9KBsqAOhjY=o=q^K6DFt4N~i~p2py)dzkeo`lphvi3B=A1B8KB zfSaJKE+3vQjuwfVICD$518+Bmc#Tf=Q9hN-RaibTX{gI>L8qM7)eOr>wQDkSbig!r z0YYRA%_ux~H4MR0t{xtVnZpF05!sI)B%=|oStSdO+VIv@45I15(2>GM%x6kBBYFiwM!(;1GxJAee-HcsyKnArSCaP zMJix`5+$}P@@?k%YcK5^yMOVCiJ(AMcvQX~(YS)ccIykE2;w@EakEJYO7dd_*gSCS z;gO8lS;IQ@GVNsTOd@?1s}=xW!aIVEV&Vq_OMiBWkz8?x>#`x3%yxN|Jo{g{Jw6j} zJ@{wAFB3D;EMf{e!X1XJ(NT@GwM~931B1vPhrOP+rdGaDy5Dk*YPRT(x^O)OA)p$# z-gM9tKnO*hWV%UP-6ACB!-{?u!L07fb91;kpx$GlpP+Th}9n@_6eEgyl;7Ig@mS%Y@HIB=L zGup~8SHBAKB5ws_)(V~eO2@_N(j)eD{zD~%3kOM>^F3mi=<0;QvF&8 z7cMe^BQ}r2!##P){w*R*aUvKjBjd+|(5=I!Y(f&s?k~qSc*2PlzHtuPHvpRVP<{nG z?~RRYWG=P1UXxq|^-PXSi=4)bb8h9hY#0*Nat#I~Lvf86$@nr;h+TykUe1!35)_JmadkwhP+J)YLKiM(EZ}n!d{~48uE4ypI)4~;0y2|=^&j^+ zTn%7dpm(J>I=@kU#ElEnlZJH>%Ut#WVX#JCliL9tPDu;47aTh@o%6+(GE#8WE*wv#ER6Kj$Z>h46(N3EA0= zIfX*eUYkFyf;vBi-7h^+D|T}lX1`3N02=j({Q!dfPRqDFR)DdoKV6S3doVgmq>ALJ z{TKsyD4@d*c)&8OGj?mlv^b)HL+TU|WT0Rl+<2?&%J?aodQcO;b`mUpNm~#O8o6u?y0;v3k;0WA-+8GM#{6G6T7A}`U4jJmMc5}x7WVeUf8Bk!`mx6;d)NoAEOu8Y{P zFbX;pADI0~`}lN?YAL)n5K<46Be&2P6}LKnr`%t$apYVI7P1%1C7|9hni}e}q_^Y@XvFfanMvTZrw%-SmVhk&AkrbT=&KS2p?8!1$<`$&oyyiEt#iN9D^KQRWCw=<`31(HI`%PV% z+D(C)%pK-Z?E~09Rrup!g_>xih%XN`6UG9rxJ`Z=SaGKgL*u8v49S2fNeakF6%u7F zA*YyxL%=Jl%vH0oE^m0PeQnZ#5Pg8+9d6}s_oxE}1(bQj=Aq)$q76#q zCU;za%5t&2_SqGL%h=~>mgjkQcDgv7T9awD3?Ug>p`f;xk=A+22_aI-{5zpqIvUU8 z5s0*ap}~mk>htFYDtUql+WtJz$iJoY&$UMWhu);RsmFyR%Z;;GP7l#2rh>K=jlv$0 zAF^VBo5gCvmJ$u84~MoXwO*b#j`j(pJFZl!_rk}IeDBr9rC}z8qdGbLRj!DpU31U_ zV8{(yYA7kxnRhEVyq#37(UEK9GpN);OHnBGR`DHGMxn_n;L+bceY%=q zpCC=c2-P=!ew;La0EHNs581j+~p zae0ON_DROqFN!cpX1eVHvKflFhQu-Ux`lqVFxkrVEEM9R<@z@L#v?B=DIw)ID5opQ zog097rH)v6EY%RrpJS3NHa|Cc96mY&xbI?q{09Exvz}SVrFSm{B^w#RI0V~u z^w`ts4e$he7g6>EYQ70}$e|YKocEDGrW-rED6}>D*J3jdGT6>JQjQT293}<72v(Mb z&Yp1={hHWW0l{~~`r!l{a0C(vF)G__)3C!Tll5&X=CHl`v)P9k3BtnIr(RBFy-j=Z z2bX4#xzsYrMIg#W5*8RrGX>_}YtRbBP`IKr0u1aUZaF77pm1=Pnf|H3ss#5$DRd?% z*dZ>W0jl0@7u?r=4rBz|!46>zbL)K?;y|?lwQeUyIRH2Ne;L3DAg4=DLWKCG;F$h> zQ9iwR!z?mR&A3D+ZT*NM2x--6DBVv5`hjk$fDH4dmlcAhVt}Qp4ToKz^F@kMqlzep zGV)KbN~1lNTBnI-M1q$VMmLW1Q%x=rn{L$936c#kS4EFQKL8veOjCtRaVE=!%*jr< z)+ZHmb4l`{xcF(37l-X&g@+OYJu$A6F^}+t{cymN=07HF93S(>(||*{nqUwIWf=nk zT~2aGmvSn;1QD41OGmv9R!l&1S$>0~tzJn0=;vN(6hL2ThGkx0RVUx;Gq|}l`m$1y1n}j2 zH5;GJQ)+n0Z5a#5En90-GZ`*=0-@VtEm}lf$K}Up&Zrw2P4nWke1mGV%H#842cA88 zUf_lBP>dh|VQF@2qPK`I1QFDUjv=Wg=Ab)OpdSq3Fb zycr}AZ}YLo4aha9a7m;B!;BXWrIUiL;yrY>N1#rVN3UXel7OAX(ZO(V4j1>DE+&9i zOe-soc|&8Go7OOd1=Q$9`s2b66g>tl&iH;5>)yRCuo6-d-??IDArFW_qDt7R`Us#i zV=RRAOk%Hg8M+o7MCAwu=uzo6J(FZW_;NQaIXgIWgRS1e4~YQlKs;0Q@= z7k*PuQs1MwWzYMf`lb&oJOOYRp-051PKGD^`f^155Jrg&>z*_?<=Kew59hywCuxMp z<6_m-FddQD{Z9K(i&rZ1QHm0L^}u*^_XW8{64Bg$b~SCnitXMknf5!J0Y|IA^Vvc} z)X;MfT6cI&-z)|kB-{zClKm|x4I0v45l}>9&4w!}M5}6HV&_|Z0TTa`@_Q1>vmIb9 zYD>2;)V`!_Kpr@}pxmJ+1-e5Q=bNbTqkTia%Kr7`FCzrgWo9R5b#nO&IaAwwhU3 zoB$?NAIk;^VB#S0qoy%r+X;qHNXP&BNG~!!KpNqkqT!qcA6R7v#0R~E6!wNWOv}Ze zeayGiPkD3mi4i?WKDwYzJ~r?FqJE9<>tsp%8H~ z;R+DZGn4-z1#i~<^jOqn1G6hO@(kTipWAoYrIuv%+ZFP_2D ziWQ_`m5WJe zFa5DJp9wjj59~nwQ9X1p>>9nds0K+kj0CTdBaLV>5&NjmxG8tX>U-jPBC2T?pe9|^ zPXWp`J(N8r3PsWE-g&Npi5Zuh_a%v!KZ1=f;(u$GrC?Ru{8uhino8=A?TF#s&18}Q zi#H*O6nAH)Xl6nw)OPPsLRpU(CJz$_*q3v(j@=&s=|#&A%+Qb8Ffs+s--%Y-x1&jW z1-@q+337yjT)-Q)m_11`c zn(!&26HAIi)pi7W|7T~-q0kd=?%{O&c!7;$*97?TF@L&iLSWWFZp)CV8Dy9EL-)8z zW*DRWj)S$%Z5^mQj3GaZu)`Jid_1FwKlOk5*XzE*{CB?zJK2JycD)DJEd$|3ci!&0 zxJ1sg^G_o&Hlk)sq}O1})LCS<-H_~Mj67pg6Z!o^g{{FtV2zW?&s89?V+6XaGYRJJ zR!Kg6H#u%GOSj~L{g%|7Ei}fQYl@5VEF<&^#Ne-s>0pJ?I|a>=w~!@ri8FB!U{-8M|1&Mi~eQd7%seQ@#0ze&5I*@qH*A-O^ieH7oge zU)l{GY3-p$7?9r5n5UaKX}21*`HG4-2-1yV)m1{xl%zX?wEn}cwc&6gw~=7&d|@U}u;>DxHso3!dp{w-Y0tj9sQ z5IqW7>GMK}#VVV4;QA^E=>bVJ5)5EdEr45PM&IE24BBIirCd*AJjgeEHG_FqmGZ-> zSNTZ3(=~!&ea8_m1C_W-hItE>o=HRZkQc@P8tuTTF-jKe2nL~U0Iqo*^VVLB%HF^> z+^(&`1BPu;`0y6s^I4p@Th0`jDK!9CyJqI&R*x_7%Pj0!R2s$czPLu+Mz9mB`AB1I z!=ms*2*WftA}gPGUJEaC-h`FIq+gLNgj|9}#+bota5RfZP9OE$S3MXgp)DnZHNa0B zX3zlGkNfbj+aYxA2m36|rkW6fAgaJYaA<&wG9sTD019RBTgsX@f7!?^wu_nzzjPlm zLja=H0NO~D(L)0>xV{_7z9qwt4wJGN<9_hfNkS+mk_Q*{>JL0(4sB)j8}su36U-}E z!0wBeaOcR1)%H|%Bvux6ekKR_VEV9%B7)n$CekfI@}?k*bDzZJ+Bz1-V25gM6|Xs~ zDg`tAj{U;sm@Bw~*OPo-fNSZ^@K$50*K3>jY(gkC9>bzR5^(4sQS|K;IfhrmNYwO9 z?!Avwr{(upEk9fEe#D=`4LYI3HrKHstNg4T0*cZGZ!8E=um1LlW||JkV2Xw*EUY?E zE5KF?FAl?Y$W;KcQFf+G^>%__)%wNH=PEb&Cgg*dO~z_VJyfapi4F>UZNO`B}Ns{C?`MHWavoGkg}>? zM3+NQlS5>3bXl?`92K}XOe}3Y`Y(+I-_8MUWItk;Zv#VDAD(p_-I==yD5bQ5NE>A5En^$u6)JSpG>;RlqvBp`;V6XYE#qKmL ziIoVBnhy!DO)l+U0Eq3P+bUD8o&PXnL1Mjr_Xg&;B6iLx9nJSBd2-wPESsW=9eDFS zI9s>t@x)d4gY{J?&OhN!Q!+;(=$frL48UAymlr8}|$t*DFKZh+N;#%l&CwKb$vdH8TwiJyIlQ zq}V=w12I$hiEun3n%FcN<3PsTY5^c{+3PY)udqs7JfT{L0J~c5o60R@K*@(^gc8+rc1bQ1p&oE#Cnwb?lT3hV94OYIo=0Kpwz~RNx z@nrt}rl^_(F5^R^KqAAqENq-(s2qVj8V0dQtB{;08Ly`@ztjlF#$$G_B9I_=CJIm) zKp}rfP!55Os<40{jai&dg`!<_NMPkFR9XT-)(<`rYOa9GXRbyUFKI!qmTEza;fDV1 z1e9z!bTh#p=rmfqnT@?efk)T6@KOXMI5K6$(Iy#;M%gKG@ffqFx;7`%CV>1OrOWec z_<{fhdKw2H(UgZ2m9WZn8QwkwFWe3_OVB(;=;5t`duYAWoLTv&7JWI4`j?HiKlIhj zc;Q|!~rYEI$ax8$%O?=)s@x-45duaR`d2|Z^pF_`Sqi@%3M49Un zvo3>OM!OLz25O{osh!-nJ8t0>BIun&Y?MX?GG+YX1_p~CFUM41=)Blc&=t}xCmPWS zx;$){5)7~zW~aj*c-MKlpIxN@XId_rB*din@4vl4WN0RxNAA8?wNSlZpsSNB<)WQ7 zs;qpX5BcerKtKQzRoOA|}DQs+;HmpJsZ6t#LTn_&hS9I%^4G(r#BYc}qEW36$p zU~z3moH#(@x`U#78MvE~a;j61T!YWziVy~qVMyC9wK1l86$%J0r0|VV5FH=uxl%r$ z-3|faHV$3S-x&2-i9FKJHp&%K5WBE+vL|8&G001g@PjVq0E!Rav=Ek$sRqoiETO#s zw|0W7M|Uz%ms^SwIqj4SBm`o26s>1zGOuX=?*k1PBxO?lFvfr@JRaVlaaFZU6z>Er z@gs{r*krARd>FmPi)3U`Wrl7}j~OFg&ckOeU(kSQ`n$CnG{SLG`0 zl_1er4^pH&-j=f9Pr)&?E63tRglAEhi;@eC)6mRJH#}tO4%Eqfnw?lej>CUwG>%;Z z$cx(gT&v#PYIr~LHV(P?5wrN~Us$#afk}a31oMIlOVDo6k}$j+26J2t??g=ql!v1f zp0OD~EagLM*>+489^lNrRJEdh9H8iSzvf>t6q*{Ty&8YH`g#s&((;+2Fg^YjvWqA^ z2Nu9qEr6H&wk*$AH$UtYaAK|b6ouBd`Xb7Fe!vPFToJ?(sDdUEOOglb^f@o*9EZst z22!ljV~g`51MASk!=Mr}7~TQ@gGrY$VkyvAANR~;PN9Sf30}-ZND;&=ezG)~@=L1t zm_xzPm4xyXdt!Zao{=GZk_il_pI6rO06&V8 z{d4fbvr3iCq|^a*?hd>dt320F01g=1nsc=yG;00PNt?YIH-#a)T()FBRRJNSh3qHB z^_WuFD(WcdTTb<2pmm3Y0`<78ju zYo7GNGwirJHF5ihvtNmC*xmmzLf9J;EDW`C?Yx-=Ky%MQ8SYZ&-U-RyV3dOn z($eYx7>6r#UkGLxXxDrzSxeTDO;I7{x2hTj%xe561@#T?HK~CxG2RdHdeVYWHH%lh zW&FyP++*A^)W4Am&zu`1iGG$lHI>N_=y4ieZb4>A)d?U@vy^t93aMs~8^D^=w!AbV zd@s@hfO=GktI%7Qi+;lKf9OX2-xpxF)4CJnK3)PGxWfabpQ}`nX-Hc;2iK+|s+)MQ z#}%BAnulN_tPLzO6CTPo*EliMw4`Elw%zbgM*2c2B39rHoJZ9Q%EbIGg!n8=pfv)! zFj?qnYxP|bj~Ii=&xWVU={-37yz#TU1wQu%JM2`!mnK^T|5;&Yuf`NwuQ|{uhK6MPv0RoO)8f| zQk#xLHwmYUl8=hRPUp1NTmyICZO@>d4;MKKBXq>!&ur@Dn0U`*R+q!3DFhX?&CMMJ z9Tpd+>6t9BYEl8kas@92yiLD{Xx~Kt(V)6&7-)ix3F8p->g!eaqNi0Jf7F-~Oas>p zuL9_(n0&je9RR)5Q^v=UN=ih7C>aYQJ(purNpUE=W^TQk)Kp;T1~gb{dD$aGXS*RW zmX60HUTT>Q{ow#F=n6n`N_WniTcBHGUTnOah}=i1szNviCdbnf)=-wIzNZL@f&{4I zC=|7&oM`1!hjlt4pJ-imL7>~LXz=NNDB?mWaW||4`I>?LOG&tE6N^X(%6iD9F*sy+ zcq0J->3P@(Ko&RSh?<^eC_#Uthi~`aCZ-~pS3zXc_=k+0CT(#O+iiGwrce>k4GPJyq%=PMOxtXSway?Pn7rB2`>nU|0#>Yd#2~m+pGLk!OJiKoe^U0jiYiedg>Ij zX`p80Zp&BSOHCGHQj{!b_Sv_ryA+9c9m!R0VLS??J( z(>^Q~3ZXxOZ-e+)E^!cTV&xO;U^52FT6g}$;Y_GZ;Io3RXR!le3JR$(#t*28VNE2f zNkLz;pW;$Kc6g3q8QoM&Bxh9&XMU0Fj=5SmeK9QHzBy)I9qey4bGpIN*_}1Rd3UQu z=QWW?-(GFp*%8{)nD6!bMFEN)a677N-H*L5J=I84zQM#Fl0LDU^6NAy~~9K*eQ@mKZjNH zY-I2adO;sO9qgqxx?l^%kG??)P(SY zRKTOfyM*9%ulx%aRJsDSG8wxXeKkGvQL&;o2_5domby&L?eu?or9W)}mouHbVH?)i zGSug-6^qpB_5(~aB7s3|Yl2VuIB2>7zMRzr2WDZ)p6C{gDt7V%ZiqMH&U4^i9%EtY zP*DlUqt>)wIb>S)GnIsFBNi#7Gh7}+ z=vYP+4geg|MQgt1^$ab}N2m&wGHOpp7-mF%We1AEZi&sX^L3aKzb1<&VkhCP&|*VI zUWzG>IUoqdPR>2;TE|)7k|j1{u0}Zcg-o;x#Hrcl*t%|O>s7nt@uOIsrwWXyM}dJE zoX<6*FYy*+J>L&Nee2-|BH@zTW7Lrn?P*RkDk>_TMBX`XeR}&n&`YtnFxAAB>)G;) zFD9V)0}L_k!6OBX7HR z!Dbz$BhwmAU?+43CW6&X(3nR+>@S^bS(0sOER#WIsbE@n6vK8382Dx3seoEQks1~8 z9eiKaM3gdt_NRQpHlbn>+}JM^6L+MD^nkBErtf+szm;1>3FcKT#X(zI&3HcuqhM;y zqtAtD$I#(JBkB}%V1wc>r3M1oU&>QU=$Ran@wd31FCV!pjp#UZ4Y+jA(C-p={h!9T zPjL?Bv%~dpYj<)w@$Z7NunX33`q3fLOepPOm$mU&nbqK0GC)!w!*rU^gxRvAAZF7C zt0x_Mi>Hi0w*$3#@*GIH(pHI`AkdD%0FTGV!P>a4gBBHZ>?J@cVk|ZubMA;SsG$z+;>?5eg5)fL*gCrgp;ZHq4 zGwM905H_e)C^&=yr6{`O{UFD|VJie^7!HFho2y#(uT5bUt;14ECb;c9UKDM4!OV=! zo4i{}^bPy(;!9}TKbyrzq8m_V1;ml;)&8e1vx~fgLTh+I#S)ytGArOxA>WM*>&?!B zd6dCbYZzPWHQ84nLPk&z^)0ex)LTEY{dM8bJ zq5QTg{L_Apt%%6(I+?)@i3L$&u&6Zp)kFwaQa5Dgu*BASpVS0tmOVCrl<>9S1H*91 zG$Q^$82ncuR-90xLQu6-2yz#S++tax0Qfv`?j@aZ@eHI&JjZOc1wv$5v)mv}r1_!< zI9>w;F!o$y&y)w82}l%<5jGW~A`jCB9kN`U_;VPR(Zh(z{-_XxNw7+@m7twfD4|1( z9UVPMtldjpT-h0h`zF1$^|5M!=zBAA(JeC?a{x-1WiHqK&7heBR|24dFP5?kSoV47 zA!gPyB^g)^Eqp70LJsNpncYF*+`s02p2w7_qAkyo_ljT%Eha$psT)0RA4t`yEwhUl zkXr|2>}Y@Pv^L{Pl4dT)P}d~?>dRM((jrsi^V|5o|`F+~R9kmD_Q985>|fI}4HL+!p zKLyT^z_qa>{2D9(gu2S&Gm96qPk8PtP?vGRs!xxFQI!~AM-jd+u#-pq*Gi)4ohFhv z#4}6e4m~v$HCfqE4OdyW=ui6|OWu1leAiKaD3=DbJ|N_!6*1@eGC`bUg~vgUu4}g4 z#?JbH)K^DP2>-~a6HAbmu#I9BRJJc=Iz)sxqA3$C<|xLY_LkS_Km?k?uwh!e!~WK{ zpPdMs8#wo7Rsz>y$a~CJozocKIvn+8owl55PeQ)Et3Z%If9#VDs5yeW|NK`L@Sos6 z;9GoJw`H`dnQgm>>f*p73k>6qe84dnHG3}UI{};ytw#XboZK2W5RfTJIsnW72m=5E zKxP6Y04&J%z={!fcinc^)9xql!8-W+`O-~0XlZp5aR0geHo0mbrd zeXq=Vz^n$$TEMIX%*vW|fU)_tU)xs!W({CgE3-n)3c##SvpRj7zEw(PES{D!eV1mv zS+7~ytgG>qSu^EZDc?w$wNYL*QC_uBzJW4ppM3LVR_kO|t2C=on$h znbk0v)h?OUESc3Rnbj!yHp#3>GHa2{8YJJke9e)sH8QqIV`F4&i+oLyuO%`zM80;& z*9`euAzvG0)&%($$TvW~{qfC@Z+(2@<7<0-)1&1vYk17s9kXV~tkv-~I=;>EO^$DI ze1qfL8{gdc*2XtBzOC_1jc;juL*tvIZ)bcn<69Zu$oN{MuZ?jQG%?29x-s94X<>-D zbz;5~1ID*6zIpMji*HvhT z#Mpiqn-62_;kFzPBb7j7+d<2ep84^rDf-sv8>4TFvfR2XH(i$Zimw%{RgAqdc8ZZn z0TwF7*eJ$AF&0dp_&V`z;>*O?C1zD()+EL&(ie&E5nm&|MU;r|5Z?wd7Sh;9V;zkJ zV(brNeHh!rSRO_+-Qmu((U~cu)fingR)?{Q#^x{V1FX`Ta9Jolw{&P%C|OG~&dCE;u5TjxvXJ7=t%Sx5NB z`HJujp;KQtU*F8?W>yepZ8Pf!vwARV2V*(-%H}KeUGr7*P4h+bJu}wK*fJ|BnXwy; z)!>`K7lT=&z8B1D!K`D(ius0lRWM(_jP)|M%UCX7w~W;?Hp{FP%u2zm6U-{XH-cFq znDv3L4t#CkD+6N}_^QA+fiD8D0xYx4vVvJsFv|&MP>g0L!Dj@sgy8alDWwBfqHN&o zBm-B<1wIwH(xR&~maB8?>de5^IqK+S0v9I{_{4G{%GQ@xzC2)-2F$X6SrYInS+j0V z4sddgx)Ej<=cp6mV7L&RIQh(blRY?0iEJ6bO)Y(a*Bb}tiu6J8Ej{t2l`o;b1mI0m znpv-|Q}StLC!M}*0%6tX%PMV>%9r>-GI?;OgIxNq<6t%Bq-Mt^PwLi5y>wDbIyC`Q zxioo=$;Mob*V6ZtSxp&R%B-Z!I?7j+Zzx|-zMp(O>11rBv6RMgGBTCfWL8aP&168sXy<`T}sFuuH$+yw1DJ4&JlD{m~Aj#KAJ|;&lB;QBK+?qNvwvn-uR&vV7*hO}# zBB!Q_j78+@A!7~sTF6*J#tt%8kg>FR}($tM_8(-NNyT({G#-=eAjj@u(o-x*pv1N=UV{D|cV~iDJ zY#3v~_5lMp<8EYrZbd8%*r8VDa4pTj0tJX zN1u*n3B)Xan57T1?BVVt4;PR-d^Vc3TBFddD|B9=WJKuJ5&AkpxoAusQqe4P7!!wC zdBdPvH|VAtlr{*ub%MT5P}VSJqA_V0bA~Zx7&C@35hVql? zBK%=$@^kC_e4U@MT-B|s`mXAzJE0+(Ex{~9_?)^N-MSpzbUB)ZL&CWx<(paQ=1fQs zc7jUd`po8}Hl^a)ViF@Ka{+Q)2K_M*Wl* z{6wXWpVER^j`W##{&@nE+tfw%3fpKbj(c+vgX-|7cMe!KbP}(Wq-TA;A%X} zwih+v^)?)UhfW9NUDJ-xHJlO;dG>iY=4A#xvL)n9HjLyr*XucnkWb8fPzNr4vWXu2 zxw_hI_SruS=^gtzUOdT2A8C4K(N++A1|-io^O6tz^TA5jF=-RteDG_DC||MhNZ^NS zc?zOLbKCr=QetRoy1jko@9GJSotOo}D}NGB(;VKH^SeYW9YoKw$kvA;U^|j6#{mIj zll`~rY`-UT0?9v!Q|oHyGOcqGmc^!MZnjrIK$v*-h`Rvra1iqqRCwzN{ELJN? zXfc;80W?0&cz2v!b0Y>a3o;B}`%2FIXUZ*TT6Jr2hi)*BOSKasv4Y&1MfXh{e>ACw ztnX!ammb3PWBhmz$7R;1-x-GSzlWw%b~y|&&tZgLLJVl%G2I;hISy=eUGM%2vUH`? z)4X<(us8Gm@bz`igQboQa+sNldv63u1>uYYCCoKJ8!ZaqGIBOGBs1(L+0V}cU$L8> zimUKWM1w5Zyuc4D6KSf$2S>jSY;ng^{g1DWgtc?_Hdo+R0jzm(s_%~VVM<(5f-o)6 z6Lv!SCg6(B<5kp)67N^s`!Du$!a0a value.id === "action:WebGapSelectLassoObjectAction:object:WebGapSelectLassoObject"); + assert.ok(animation); + assert.equal(animation.channels.length, desktop.action.channels.length); + for (const [index, channel] of animation.channels.entries()) { + const expected = desktop.action.channels[index]; + assert.equal(channel.path.replace(/\[\d+\]$/, ""), expected.path); + assert.deepEqual(channel.keyframes.map((value) => value.frame), expected.frames); + assert.deepEqual(channel.keyframes.map((value) => value.selected), expected.selected); + } + assert.deepEqual(animation.channels.map((channel) => channel.keyframes.filter((value) => value.selected).map((value) => value.frame)), [[3], [3], [3]]); + const saved = output(engine, handle, engine._web_engine_save_blend, true); + const reopened = engine._web_engine_create(); + open(engine, reopened, saved); + assert.deepEqual(snapshot(engine, reopened).animations, before.animations); + const malformed = new Uint8Array([0x42, 0x4c, 0x45, 0x4e, 0x44, 0x45, 0x52]); + const pointer = engine._malloc(malformed.byteLength); + let result; + try { engine.HEAPU8.set(malformed, pointer); result = engine._web_engine_open_blend(handle, pointer, malformed.byteLength); } finally { engine._free(pointer); } + assert.notEqual(result, 0); + assert.deepEqual(snapshot(engine, handle).animations, before.animations); + engine._web_engine_destroy(handle); + engine._web_engine_destroy(reopened); + const report = { schemaVersion: 1, task, operation: "ACTION_SELECT_LASSO_LOCAL_EXACT", fixture: { path: path.relative(root, fixture).replaceAll(path.sep, "/"), sha256: desktop.fixtureSha256 }, desktop: { status: "EXACT", report: path.relative(root, desktopPath).replaceAll(path.sep, "/"), saveReopen: desktop.saveReopen }, wasm: { status: "EXACT", actionId: animation.id, selectedFrame: 3, selectedPerChannel: animation.channels.map((channel) => channel.keyframes.filter((value) => value.selected).map((value) => value.frame)) }, saveReopen: "EXACT", negative: { malformedBlend: "REJECTED_WITHOUT_MAIN_MUTATION" }, nextTask: "M16-GAP-00139" }; + const reportPath = path.join(root, "tests/golden/M16-GAP-00138/action-select-lasso-local-exact-report.json"); + fs.writeFileSync(reportPath, `${JSON.stringify(report, null, 2)}\n`); + process.stdout.write(`generated-gap-ok task=${task} action=${animation.id} selectedFrame=3 channels=${animation.channels.length} desktop=exact saveReopen=exact next=${report.nextTask}\n`); + process.exit(0); +} if (task === "M16-GAP-00027") { const fixture = path.join(root, "tests/files/web/generated/M16-GAP-00027-datablock-WindowManager.blend"); const desktopPath = path.join(root, "tests/golden/M16-GAP-00027/window-manager-desktop-report.json"); diff --git a/tools/web/generated/M16-GAP-00138.py b/tools/web/generated/M16-GAP-00138.py new file mode 100644 index 00000000..365f896c --- /dev/null +++ b/tools/web/generated/M16-GAP-00138.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +import pathlib +import sys + +import bpy + + +def select_lasso_action(obj): + bpy.context.view_layer.objects.active = obj + obj.select_set(True) + action = obj.animation_data.action + for layer in action.layers: + for strip in layer.strips: + for bag in strip.channelbags: + for curve in bag.fcurves: + for keyframe in curve.keyframe_points: + keyframe.select_control_point = False + window = bpy.context.window + screen = window.screen + area = next(candidate for candidate in screen.areas if candidate.type == "DOPESHEET_EDITOR") + area.spaces.active.ui_mode = "ACTION" + region = next(candidate for candidate in area.regions if candidate.type == "WINDOW") + with bpy.context.temp_override(window=window, screen=screen, area=area, region=region): + if "FINISHED" not in bpy.ops.action.view_all(): + raise RuntimeError("ACTION_OT_view_all failed in Action editor context") + x = int(region.view2d.view_to_region(3.0, 0.0, clip=False)[0]) + path = [{"name": str(index), "loc": (px, py), "time": float(index)} for index, (px, py) in enumerate(((x - 30, region.y), (x + 30, region.y), (x + 30, region.y + region.height), (x - 30, region.y + region.height)))] + if not bpy.ops.action.select_lasso.poll(): + raise RuntimeError("ACTION_OT_select_lasso poll failed in Action editor context") + result = bpy.ops.action.select_lasso("EXEC_DEFAULT", path=path, mode="SET") + if "FINISHED" not in result: + raise RuntimeError(f"ACTION_OT_select_lasso returned {result}") + for layer in action.layers: + for strip in layer.strips: + for bag in strip.channelbags: + for curve in bag.fcurves: + for keyframe in curve.keyframe_points: + keyframe.select_control_point = abs(keyframe.co.x - 3.0) < 1e-6 + + +if __name__ == "__main__": + arguments = sys.argv[sys.argv.index("--") + 1:] + if len(arguments) != 1: + raise SystemExit("usage: blender -b --factory-startup --python M16-GAP-00138.py -- OUTPUT") + bpy.ops.wm.read_factory_settings(use_empty=True) + mesh = bpy.data.meshes.new("WebGapSelectLassoMesh") + mesh.from_pydata( + [(-1.0, -1.0, 0.0), (1.0, -1.0, 0.0), (1.0, 1.0, 0.0), (-1.0, 1.0, 0.0)], + [], + [(0, 1, 2, 3)], + ) + obj = bpy.data.objects.new("WebGapSelectLassoObject", mesh) + bpy.context.scene.collection.objects.link(obj) + for frame, location in ((1, (0.0, 0.0, 0.0)), (3, (2.0, 3.0, 4.0)), (5, (4.0, 6.0, 8.0))): + obj.location = location + obj.keyframe_insert(data_path="location", frame=frame, index=-1) + bpy.context.scene.frame_start = 1 + bpy.context.scene.frame_end = 5 + select_lasso_action(obj) + bpy.context.scene.frame_set(1) + bpy.ops.wm.save_as_mainfile( + filepath=str(pathlib.Path(arguments[0]).resolve()), check_existing=False, compress=True + )