From 002ae60d684950a0941ab15d9b7700c15b05787a Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Tue, 2 Jul 2024 14:30:25 +0200 Subject: [PATCH] [ADD] New module pos_receipt_vat_detail to display on receipt, the detail of the taxes. (Tax amount and base amount). --- pos_receipt_vat_detail/README.rst | 98 ++++ pos_receipt_vat_detail/__init__.py | 0 pos_receipt_vat_detail/__manifest__.py | 21 + pos_receipt_vat_detail/i18n/fr.po | 51 ++ .../readme/CONTRIBUTORS.rst | 1 + pos_receipt_vat_detail/readme/DESCRIPTION.rst | 15 + .../static/description/index.html | 438 ++++++++++++++++++ .../static/description/with_module.png | Bin 0 -> 29433 bytes .../static/description/without_module.png | Bin 0 -> 24095 bytes .../static/src/js/models.js | 90 ++++ .../static/src/xml/order_receipt.xml | 32 ++ .../odoo/addons/pos_receipt_vat_detail | 1 + setup/pos_receipt_vat_detail/setup.py | 6 + 13 files changed, 753 insertions(+) create mode 100644 pos_receipt_vat_detail/README.rst create mode 100644 pos_receipt_vat_detail/__init__.py create mode 100644 pos_receipt_vat_detail/__manifest__.py create mode 100644 pos_receipt_vat_detail/i18n/fr.po create mode 100644 pos_receipt_vat_detail/readme/CONTRIBUTORS.rst create mode 100644 pos_receipt_vat_detail/readme/DESCRIPTION.rst create mode 100644 pos_receipt_vat_detail/static/description/index.html create mode 100644 pos_receipt_vat_detail/static/description/with_module.png create mode 100644 pos_receipt_vat_detail/static/description/without_module.png create mode 100644 pos_receipt_vat_detail/static/src/js/models.js create mode 100644 pos_receipt_vat_detail/static/src/xml/order_receipt.xml create mode 120000 setup/pos_receipt_vat_detail/odoo/addons/pos_receipt_vat_detail create mode 100644 setup/pos_receipt_vat_detail/setup.py diff --git a/pos_receipt_vat_detail/README.rst b/pos_receipt_vat_detail/README.rst new file mode 100644 index 0000000000..5bc74ad2af --- /dev/null +++ b/pos_receipt_vat_detail/README.rst @@ -0,0 +1,98 @@ +========================= +POS Receipt - Vat Details +========================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:7572be5ee70835b962c8d22233c3bb508500b0c6922099364ae1e0f48e1a9177 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github + :target: https://github.com/OCA/pos/tree/16.0/pos_receipt_vat_detail + :alt: OCA/pos +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/pos-16-0/pos-16-0-pos_receipt_vat_detail + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the Odoo Point of Sale module to explicit +the fiscal information present in the Point of sale Receipt. + +By default, in odoo, there is not the base amount of the vat +displayed on the receipt. + + .. image:: https://raw.githubusercontent.com/OCA/pos/16.0/pos_receipt_vat_detail/static/img/without_module.png + +With this module, the base amount is displayed. It is usefull, +for exemple, if receipt is asked by customer to make an HR expense +because such details can be asked by the accountant. + + .. image:: https://raw.githubusercontent.com/OCA/pos/16.0/pos_receipt_vat_detail/static/img/with_module.png + +The informations are similar to the informations present in the invoice report. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* GRAP + +Contributors +~~~~~~~~~~~~ + +* Sylvain LE GAL + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px + :target: https://github.com/legalsylvain + :alt: legalsylvain + +Current `maintainer `__: + +|maintainer-legalsylvain| + +This module is part of the `OCA/pos `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/pos_receipt_vat_detail/__init__.py b/pos_receipt_vat_detail/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pos_receipt_vat_detail/__manifest__.py b/pos_receipt_vat_detail/__manifest__.py new file mode 100644 index 0000000000..43f480ae4a --- /dev/null +++ b/pos_receipt_vat_detail/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright (C) 2024 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "POS Receipt - Vat Details", + "version": "16.0.1.0.0", + "summary": "Add Vat Details on Receipt (base and vat amounts).", + "author": "GRAP, Odoo Community Association (OCA)", + "maintainers": ["legalsylvain"], + "depends": ["point_of_sale"], + "website": "https://github.com/OCA/pos", + "category": "Point of Sale", + "license": "AGPL-3", + "assets": { + "point_of_sale.assets": [ + "pos_receipt_vat_detail/static/src/js/**/*.js", + "pos_receipt_vat_detail/static/src/xml/**/*.xml", + ], + }, +} diff --git a/pos_receipt_vat_detail/i18n/fr.po b/pos_receipt_vat_detail/i18n/fr.po new file mode 100644 index 0000000000..79a3eb6f8e --- /dev/null +++ b/pos_receipt_vat_detail/i18n/fr.po @@ -0,0 +1,51 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_receipt_vat_detail +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-07-02 14:30+0000\n" +"PO-Revision-Date: 2024-07-02 14:30+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: pos_receipt_vat_detail +#. odoo-javascript +#: code:addons/pos_receipt_vat_detail/static/src/js/models.js:0 +#, python-format +msgid "Amount" +msgstr "Montant" + +#. module: pos_receipt_vat_detail +#. odoo-javascript +#: code:addons/pos_receipt_vat_detail/static/src/js/models.js:0 +#, python-format +msgid "Base" +msgstr "Base" + +#. module: pos_receipt_vat_detail +#. odoo-javascript +#: code:addons/pos_receipt_vat_detail/static/src/js/models.js:0 +#, python-format +msgid "Over" +msgstr "sur" + +#. module: pos_receipt_vat_detail +#. odoo-javascript +#: code:addons/pos_receipt_vat_detail/static/src/js/models.js:0 +#, python-format +msgid "Tax" +msgstr "Taxe" + +#. module: pos_receipt_vat_detail +#. odoo-javascript +#: code:addons/pos_receipt_vat_detail/static/src/js/models.js:0 +#, python-format +msgid "Total" +msgstr "" diff --git a/pos_receipt_vat_detail/readme/CONTRIBUTORS.rst b/pos_receipt_vat_detail/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..9f76a75bc1 --- /dev/null +++ b/pos_receipt_vat_detail/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Sylvain LE GAL diff --git a/pos_receipt_vat_detail/readme/DESCRIPTION.rst b/pos_receipt_vat_detail/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..96f5e9c2d1 --- /dev/null +++ b/pos_receipt_vat_detail/readme/DESCRIPTION.rst @@ -0,0 +1,15 @@ +This module extends the Odoo Point of Sale module to explicit +the fiscal information present in the Point of sale Receipt. + +By default, in odoo, there is not the base amount of the vat +displayed on the receipt. + + .. image:: ../static/img/without_module.png + +With this module, the base amount is displayed. It is usefull, +for exemple, if receipt is asked by customer to make an HR expense +because such details can be asked by the accountant. + + .. image:: ../static/img/with_module.png + +The informations are similar to the informations present in the invoice report. diff --git a/pos_receipt_vat_detail/static/description/index.html b/pos_receipt_vat_detail/static/description/index.html new file mode 100644 index 0000000000..f97e595782 --- /dev/null +++ b/pos_receipt_vat_detail/static/description/index.html @@ -0,0 +1,438 @@ + + + + + +POS Receipt - Vat Details + + + +
+

POS Receipt - Vat Details

+ + +

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

+

This module extends the Odoo Point of Sale module to explicit +the fiscal information present in the Point of sale Receipt.

+

By default, in odoo, there is not the base amount of the vat +displayed on the receipt.

+
+https://raw.githubusercontent.com/OCA/pos/16.0/pos_receipt_vat_detail/static/img/without_module.png +
+

With this module, the base amount is displayed. It is usefull, +for exemple, if receipt is asked by customer to make an HR expense +because such details can be asked by the accountant.

+
+https://raw.githubusercontent.com/OCA/pos/16.0/pos_receipt_vat_detail/static/img/with_module.png +
+

The informations are similar to the informations present in the invoice report.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • GRAP
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

legalsylvain

+

This module is part of the OCA/pos project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/pos_receipt_vat_detail/static/description/with_module.png b/pos_receipt_vat_detail/static/description/with_module.png new file mode 100644 index 0000000000000000000000000000000000000000..9ea65462467ca6832108515ca1c4841cc4c0aa4b GIT binary patch literal 29433 zcmdR#WlSB>8|F)a(xSy3io0`hDNvxeyW7Rxy~Um4dU1Dm*P<79F7ECZ-~Kn*WcR~n zH=F&iJITo;XJ#^U^1d^3-skz9a7B4Z6hs2V4!jdnqyknj#tEK33v~-)BsqNDdOm~tX2nXr{q@au1UYBlbXA}59SEi5 zm6b(&6%G67;_nI*^mY5SxKpL0e2A3fRd{w0#tVe3HQ(L#>st&@hm5H!5O;wa}H_97UuJ#n&aez(~u zhbd9NX-6RubMfQXAO|DZBOE?ZvQA(q^|?FG5NH`GGg1e~ZL83n{KiB7Vfi%e1xH22 zo7G>HLpKq(T`MOZr!z7*lB?$7)K_RE7{)MR%k-geSUA?R+_%{My^S#InZK%@4sI^gw$XyJkX5t_KtTY zEc+--a2KOCHyK>&WnYVl-&Wuv4Ms6*Yu% zvT2_5Kt_ugAs?%+aZAgMbUFa-0@O$h{>kbY?Ch>Pe7^c&9%JV89RGgD^5t&QjXLHf z?c|N==*sV#9dP6a>C*TL>4Hk`b%tua*Ash?N8T;R3y%|lPUXq$PUmD|qtw>R0ybkN zPjIHA$apOxFGunS&AMmn>i4H)c8aZ72frszj2-;ppeB;TzgsiMBR);+2`hRV zhO%b3KU@Ab86>m&7<0`^G!`Vj<+>i|8a<|lzr?F2+4%~S*JyHSJXCHKYhnJZOYI5G zMWy{kch0xS?rXtcz|rg0T2Id>BMp5N*60y5k1Ab@UK;J1t8>BEjbY+&tH1K_9z}TV zoRr=Ht*&ti-R5meM}mRV+q}u;^>i`zmZUZ?mxa3UXfw>HW>>#W*8B=7v)<=jI31lg zcnA66hAR{58sAi4m4l&01lA5E8C;I+Z{XJ>u|k(&2+&f zj_zOQ$k}vEMK#l730Tz2ht!`(Ab^Td3lbF0y|Ecu;(gv!k}rhBB`k<-KJ-VQtTo&e zYkco1L@6qP#mt>3%ez68Z$U{UQ zl61QLq`J+{eY$dl8^=-BVsv|(Bi)^^fqYNKkU5K$I3Z#NNAqd(sK?h&mb~=!Uhd{N z`$5R*{bAJmr@k#C&jn66MN$=-hPI_Sv^c54c2B3PKPq&Gu0h2u@fJO!jmTsZ28Hgc z5j-2hT!>nz;z~Upu>+AwCFF|HnB&p(ykMcf3Yq7A-DYX=QNy^pH##WLn zw_43h?Jv0Mr+kC+-t_l{^wSmAXl)@a`+lFS_@-CYYYg=$&Fuyf&<3;+ zthUud(3V7c{-CCw>54&XPu6C!iD`B2|C@`WGz)V&tblHZy5Zck-7 zgbDRM(1K_`!nfy~%hH=iD!d7if$;ae;29WXu)b?_kOWf0?I;g%Z5$L0ujz(Pj?y=K z5C4&N3JK^8wC%-7YDD2W);k~A>k-?sP^!hmG(UE@8GmRqjs{htCQSddqgWXLm9v?8 z2XDOwFu;MaV?s(mL6SO3C;f(*w+ozz3}BX<=Gq-~LB6$Wu2T19L1)I->h zPuS2-lg_2Kc=;w2CLym_`C{Z{mp|Ih;9$xgqNx3{3={u4C7Pu=Ssa?5?i?G*?`O1b zhNkVS8@jDMTmGN>BhRuV=05ZH;~$%dUk9I!KfAH_V+b3qWMJ3Qx$wGp%vp*?H*Rp) zAAX+XvX;%C`d0SLD|l$_Gg`+8W3r9j1#-mM$XU3x1crLUyWd)o^8;h{glii;?4d3J zg0}-CdJ_#=Dt{k+7=7u}(QlqzLMnr}0=qVMq$lx=Q7?CHtMP_EQ+K9oaIor{-J$Ux zE%>v(<8S|12``MwT>zD85twep9Y9Z0_EL( z%_opjXc_G_NU0gCK)v9aZ0|DM3X0u$`Djl>mU<3$Ub?nfBL+0PT(Yw<#W-f|N?CPsydR2)q`UbNbMHWJjP-0@3=F7R(^k6N$ItsDb$PWQ(#pQr}ho8P~7W zNjMS`h9#iQou{m?Chk}wb+d9GwOk9@0gYmqqTr{nU*_ehJ z1$pxI6Nl+nT;D&~NJFfbHl)y&k&MsWl~yx<5s>_-c*X^dU*Or5Z*g%mBo2U zfz?rw7U?@?nh~pSN67EjU=|oP`{KhnYBRawae|krJ86Dn6Ww%H$2;B;aHF^{zs)P6 z?q*D`|n*`f{){JO0Q!>nSA{=5WvErY0313@BKfUs@Q=x5yo0%ZNhK{z{UqNZ!pZ zR%~M3@)=B^>_C6Rp02lt({)$o&#Y45O|QLPxbrW)Ym}i=c-;_yv2r|btK__HevLUv969?X*%EE z6imMaO&(I|oO~=9|5zy9f+yDj$*9wRGN%odUYRIg8)f84VtXW^TiRA0$2cLkOE62T zgF1y%(5L_oR5HgDC#f!&MQn{E?HP)Z-| z!BI%DWS21b`$|(q*xNR0Up~sAZ^osS95I4l`dC>$+rUQj!FBFNs*o9q`CLSUwL#YI zB`Fkm!)r&mws$}1JN~S|<1XEtC-w(G>jnqs)qkXC(~=s|n<_86>jZrF3Vxn8Z)u7o z#XZ~B6~!6KG-W34{@GE8_U4HjJbrpw!@j;d7dNIWfYE!k6nb&8HL^E813@cl;9(Zm z+cut~V$Kwv=-N2o@EhT+pyw{~8PvC8` zLN7;M|2AkyNpa6eQw7{PK8WmWD1Rrx;0EDy-u7BY1p3xNin({Qi7=6QI$qRnehzF+PL=SR?p? zrT0=kz55C_nl?@b6HWFZb3}Nm6&QswL$!`;Z8(Ci78szO>x`fLQzAwdk`Np9O>AO; z&@|Y?OS@;T3&>NJxB;?Ztrpv82xsy0$zAv(oBJ17j>nh?RQ}|hbC?Dnjz48pXzP)sEdsfjEA4#_K&ouN1`NfiG%Z7ewaC$l zXO6>pJ`W3D+6a#54bqs$YqJXIlMD{!o}pR?rwEJxz#q5YyMA;ybwq8-9ek%8HtKIf z$*woc9^8bTfe62IJMlLP9U)!b_qL-<#juS}Cg)LM z@Xa+3c=lZZq#FLi!;$f9+O3;9tz2hq$t-KO3aMM07Td9dJ6e2n_z9K#zfmB@9_HP+ zSM^L+qO?ou7b8mwL{P^;ucBC4N=!oC*RrXjo5>EZZr)Sf&Dm15D)WCa^K z|64){*t6S~%RR>4{H*A6OlG%;t~8g|Dn??dat0T%L0*>vS=LzbP~HAbtfs2K`wao< zwSX9bK;cWugUy!uk@_6nopBe}r9L;cLRjpR#yByD8NIr1Ro}lM7o4!0; z2mftS)CR$S_~0(fMba%RG!*zAjsyL`4l&bseo=I$q}D}#8s@hVdMhwRrS z_w3PvrUz0Uqs>EZSo~Hh{DcJ?pwMk9S4@>q8##)(p)}ucTkx2c{~^2Ma&k)wTCVNG zqJ>+UM1%vdaYn`dfb|Cw%yASlZjsj5MF?u%5ICMX^HY!t-T- z>}Km!>`tnPLNqc8!Kh+*YBYfX!Zd77zN@h>9=w0(Nm^<8>ru^fin8~H;}X6s&KK#t z$3R!tcE*#{URa$lM)JFJ%Ddr9Mt+Rrj}=f1TFf^J+dmz)Ix}Vl8^rEOKc)CAj|S!m z!8RW%>@Bl~mJ)8$t~yipucXjj?p)O@*dF0$2k%4@C>_HiTjq>>9gg;xMLN?_BnreA zpm`Ugl^cLWQAskriY8arJNI|{EDLAD{RobL%k=ql{Yj*@r-Zs5JBc% z;&f%-$a3Fl1baK%ZYxk?rGD>S$tMB`AWjxhpBwd$$Xazk(j#ylaPJuV@l#uBEx&XR z!(UF0H(P3vKZK!H><0QlS#ela35NI zKDp=rHt&*XpiATEp4dCsKy{{*3bh^#xjkM?YdZ%Dut#KjfeK0eMvf#dW;y9HvH8Ic z6cZo81eJ&H=VPi}27=yw`ESnT-6oskodafgta67F@>r)CJ_CIs^Y1n*gpB0uMv{{JPreJ8i+97F;pAWUXPo-!cR>q1fQ~4W;c7wN*!pv&eQwxdn6TvhM?1O4kk#8CU*1U8YBTde{57f{zr>L!sw1MyO87YCFD|PW8UcWQ z7%WV*|5KSlT9SlnA(#4MVf=lG18Edc6?kEP63&w(*SQjW*fgV9Af0fvV)^!SMybk8 zPB$B8)C$pie`3Em$jOD6FQj_-As2Wo4;)__X!HSLEr%}FFjiss{u}(l-zqpt8>8dI zjh2@~SeJ8f?}%9>&*>AQN!M#up~2n2#kF)1qkz<>?~wdAbC5&s&gIcdodwR0KEq_3 zmJ0My7Kf`5vLA}CSDMqDH*Joj+3m*Gy^AFAf#dy~6>j9t_g!qK$XpEX%MZA}BfVoC z_^a`aI$To2G~Gq51v$5KAdxXUT|kdiL7*Qft=;R(iAGFO;P7iHGLe33$da_)qtg@I z(Ea7!P#f>~y7R>{X$EjhL6M5zi8*u6hpVL2|MCo1MH5pa3t}K^3OU`nMH(@j-K`yu z_^anlSMkZ?MWiCvH~87d2?d83@+#TiFJR;sj2nbSsK1ZV8vKjA<|I`#taf=L3~tB zEjdlOHhib!KEY7YsWssU>Z1lR_+LuS1a=y$HzM^zDkKM$?L6SQiVVQong;7*lQOX~ zlJKEVf*##T!jm{&6@u2YWywen^4a@k=us)xBzNy_{|aP2V>8Q?=aTnLtR{Q@=gZIR zE8{PpQJ9B76vHh*xH%70q89n@tNV$aZmEH_^oF~~xh4Z%pOl`{o|z^}rk^pN0F}RD z+i8AJtWK}-M+(d9_FYEFd?ZGVX`&6`RA!eQID1NB3dcTt?6sb|anBFRKqITZ--#wT zI@NDXz)R2$v%JOuaVPc_3u@2QNePyDroQuXiqrYCM651vDpRMrRnPex9vy7I69YhE z41PPAk{oSwBiU%4{rI=u8L^U4hR25whuTyL>&`?1W8jT4Di-^-xuNdYxNO~AvGDQ6hZT(>B-Ub| zGXg9m;odDB;>$*!zPIwXAQVg4l~N`mp2Qx8%6cA`UDT|`0H+KjaHA6`Hua~xycpnS5Hk8VsiZtrKwDYp9rg^1e-y!^Z^k089(hT?mB0ZZIu}cSd+kLSuO3ql=7nS!Nk6=c^&H0Z42( zQwbp)Q>{v)Vn!Qx8KztPfl4^4%Jyr!RogMm#Q-W9zWyvcJG`79Z!&nbYy+k`+ghWA ze{ppqxw6%;R~qkoJ&dWGxi&l+!mXtDuOBl^OL8F5hR2dBOR4HvsIWq23u{{Agu2gk zXg}1XS{;59M&R!GWb1d&UN=a-!UiM3IQt*NEo1t6&}5(uD0ayMGO^$vHotY`qhWUK z&}yt%V;tY$O5~?crtQfr5go|pr<^G2vh@#x3D+xWnRmO3W#taGA9Xg>(r1!`)As33 zm2?3PqN{^8o^FIUtDyF&L=yZl0OwWlkNs8rv=2;_m# z`7)7kZ^>mxfp^7kyt*scy=LX3LF)7?gLt&pl>%PU?s(t3$1u}4+~ERaIP*Nigh^2O zW_GF^d=^pf2jE#fj=vob8&LBt$Ngz*{LE+>p6(YY7&mQN29E@CcEXILh?u4C`8_`N z40YW4QXz`)bziCBWzu)7~}qBeUgO+AiGwnsjm-iK_cSy zPYVj7%oHozQ7fqYsB%oqoE1BIW}@W$GrE2BN^i?XAX%!FnRKcdc&?aQ6|J9p^mOzh z;0!?RBvhUxi)8Tj-zx4;o_o$=gYdy;@lEV_e?eY!t99TGYATEF7F(bYQwj4&oBt!_ zmHfr2j`icvDYEkH%ygQTv2~jJX1Sw{R$Fw?b@g;<+XTfJ>-ySIkR|%kqOEM;ceILn zJ7=3&dUf50+}XpmE#x`=_Ea7(rX!}%OEVpo4sF-m`N>ir;Va2H{>ANE}=^%~lh zK(~B??V=Abww|4nB1JwNu)|p_D#K$@OPE`XP{8j9!HxV$=crbt+l-zG0n4i^p3zfX z@Ns3R7KcB>Lmie)rVPf{xfnLF{*u$Y@3s3K5b}sel@N!X$v9&>Gs~q4vUv*f8z$LU z_x>jy@wc8~j_L$srA%p*4I`TeZE;fA?b6sMgj1`TT9a=o8sP0&SgO+d>x{XI&A(zh zVJ7HbW&hl{xjoNQ@B00Au?q_Es^_6kT50Ueo+?;SX);3~Abn4RH;^xA@u#g$sa9{X zS4Rn{FURL{0p#Qyj@LLc{yiLtl62axVbnpI$>|I~_+3o(5Bq6TbbkhYL_B|1X)uL%(oE1p-}~qEEoLV!W;I z^phQ&PYjSshlpxOYG3km>}^xYpm`+1R`b@FPb~keO4}F@&`s9#-dT=6b&5ge=>5ok z?JuG6XvHYuIH_97&JJKyz14z^CYBLXQ~)-qp(SI$e9eEm9sj=SoJR*3=RlFAs-mAs z%ausG7a(p$#C;Cjmn%0sKMW}jylO3O9BCb%SRL72%U&tNqtde-nWN88o6cgR|F5=q z0r>yKEx(FQ?%%3LxE`sl{j0F9&-l-0e;b)|+1}x(scn8Nm$|N{=&rM@%AD^6^<@0PqllS91cuznmiQEP*OQESQd3w@4xcw5VGR8B!ktw*3zp$ zs#Wv%r$1UmtubDfaLewH*R|q`u>CR$w@~2O-o#nHc{?y{TX>c(53WW{xcghRxHIpF zwQ)-usBZ$oPibcN-6khLhv%@_`Yt+=t*@-|B1Dbyisr3Sb~CL&Is>)D&+?26bG6oL zenw-4NDW$OA!qk|({{B{aQ5d%6cQy5&EG&a-c9ySCDD)B{vL^Lz)|8gO)5bBFM9BF zI3A%v(?fzATgk*?yZ0QFONm8xzWzk-0-~-h(A9j{xm}JIc3;%)%%1}#&ApWkq-tZ! zIb$7?vbR!P%)FyT2HaC+@82M0Cn2p>aP#Th{nXFBRdN)XRePrb)W4(emT{+<3F2^@p*MNJWp~cNz}xhDP5s z#qAF=jN){mKJ0-3Hd7E{3FE4@9>a4fhkQgV|C$7)@zc_|oJ0v$f^hzZR7Z}!*3_yz zP3*do-pXb6t|&fr?amZeYMA5`NL zITHR7LM&--fPKV_1QrSksm6k^vaBQE;g$VhZSxu>2_xFT?0fbvToT~S0c}>ozw7)=#Z_@)MC@7L5}M!x z(Z8E3EY}D{y%yk8g_{gNjPWF@&q0WiyyI4vy){BLI&oYq717Hp>Vqy?9xY~%H)uK1 zIW&+pHBbwiB2k@`rAF!oC)E*vgP%Wt8Mu*Z+{6s=7unE?%ZOxuvqdqLW-IW|v_Iofz z9FF_cuXPPI$`V5g8?D;G3jacxeOhmW+#Mleke=cV=y|P`EDi9TM|DA}4IY54h;7km zC@;4XXy?lQwmu$P6z$_sy8h>@H^ua-n?n`rdcnI3aA7G`40!9A$1Wl#LxDngYKx>{ zt)5Wjd{-5qVW}{8Yl?xHAO-eZqsbj^*Z217@Z$PjMu~lT8q_=Vy=Y^DZFVTQk2w%39lc!$qKcY zvLe~`8H?j(4}AkaGd(6=Xb=9*nL^Z*Alg42p{>jKWb{~Z(q0#N>CCICX8Tjj9bUXt z;-+o#bh#m0ZrGsE__BK^e#|6IBgb)l`xH|5TdDtintAR=KpK-<@X;)6)MB;MgaxJR zmLlIIc&H%27#ONC|HItIlk@xyr}W z?CK2he<8tD@e#P9h6j}sRs~yxYPPj0$ts0M$I?i_H=FbM)$=x*aWBd?&7mOWrhYUO zDWrC#YklM<=OW#;Q|#|pd@sZzw7MrA{d(g$zEPJFJWU^wMj-=a+*a=o34-@FdJh8k z?qd9mO#ZW_iD-aEW0UA&2NLWVvL#GoJ7t&J5zY@(KsOPQGX<~lRz%+Ap0wDhdZTOn zjdEWScz0)}g>)=5qE0?Ce_Ku}7dt7ET1vbwN{nOzrd{dsv;@lO_-)@reu*O92#x?> z>CtV`W~od+qh@=?%$eA%WPF&6w$z`!2NT4k8Nl|9+8FkR6Q8!|Wuub3Uqi@|6bL#2 z0bZbLXP5bZw1`WBPAJ#4?+>0a*cJBMdU;jXDO75tYDKRuOzq3TPtlgzo~RcJ>)`9X zP|G)^GjiQW@Yb=tGZbimI=|tWviO3imE?2!Ig$#C?Amo7=*fi}4eI zH@Ez{kg9zn$$I+WfOBRu+M+&4>hE|=_qHb)2eqGVZQ0CIVH+I8&tK1r)?l^RQ9)R{=ysxEFXP|Ss6Bh zs}G{h98A#I!IdUY+bX7lv+-CF!JO1{T4ZN0yv)MR-5}|eBWziH7u5Qk$quE}^Q(UDWWvt@GpcHO0^F(J}YIE!7Y^-ScD%l7J4PKCxT~F z{`x%;#ZmzzuXJzqu}cnHVoo$-zj~H4=_?$&tE%vNZ8B^Q2)6B{>+471d zTai1Dx#(}?2`)zyuktR}A_EY;Ss=pc($doOODo%(n(6zmUJh?i$|ebM$5mDQZ1d75 z+Jz-exhpT%xPu_ixmzL0g*wpNKMx*(QkhJ8n>&Z%JG-dD6H^T1gp6RmkHu zhClK@)OrHN@QC9`|k0~HfEW4C&%%7~{ zw({PAjmVj(h#B}-*D$s0V_M~5taWU%9CzjmWOTy-xi<{q2OJx?`Tgw^&$5VN6gP2( z0QCAh@2+Tv{domGrHPf~cp(MN-)u3R&eZI-l6*<}?}=c8d*6KnK%u0h^Lk1D{Mb$! z3v`d>Uuq|ibi3J4ZB4a&=4j#^Mj(6!hPb{*-r!rgPS}79i=eA#%bN|H0 z$3%lr40k89CQfDMRPGB$EjG~XDbIId@=nW?%cIrCZ45xctP$H#}kPp@|Rs*hltDZ@zhz4)!nI*w2Lci#oH5=c} zLr8SRO6$z7=()e!>#tjmwH5yOHN*78~N_eMYxDt5dOXNYBKzIFymu@ zJj*l(oUHZUg>oa88(#-2yy|l!h&wJR?r&?_EK#Y zxMG=7Q@&Fmq=0k@+Y`m)F{Wd7RP5PUbYDw-GHvWhQ$||-3wep|mx_AKRu7)|eC{X@ zF5i?llt}EgZYu%}g{&Q55n>T#RpG~?ACsg4$iSTXn>?$W)g3X}ggB(JB37pf;@iFU z>xm$)M9y{Nv4$@`zTaS+s|m2WyTa|e*cCTN(7YrA_}ud2ic$LunS3~`0V%FjC0NRV z5m{V#3001a+juE65lY1y{0(+0v zt9vOfTb{>5Mmr$qAy(8gNAhuX?&iX!ATXtBu&r@*$=QXW_+`II*-I;jDInddo5%t7kGz z1{0k>q$Zt=W`^5(t}s=>AJHl`5uGp4X~IJ{3w~W)%d3+_4d(=Gt)TZ+TTYnEyG6@$ zUN;PkSHoh`c-PsjquysOO{Bl_9@^?%mM%p+tTg9p@rE9BtuQL=p>Jo8x{Pa2OV7FW})38R{xdx?Q#nG{|E*CzlJaOR#?>I^E^#_ zm#~u>g3F;jyiMjwq!s^Wq%#;l0mr%Jc9rq5f_WiUr{ao>aM*t&b2bU;^Pl>O zwElh<>7~np>I6-HSG_Ditn>px(}l!CNFfO${{bAwvpn!d5U`QSx3=Qf>+U;>3)qbi zFkoIyzkRNw_zlbf7CW7+*(Ec-CWB36$KN{01`Sk&5Xs)iKUEoYM(h3L{?vRciuP|L zXM&}Q-|(DUI{nFZx*+1RF)-4?mT763I`;r!(1fSchrRz(>ehhg`1F$YOf0RV5SqlI zP#bjP({}WYW`^J^kmiVXKscQ)t9-Hk(o#8elVH*!YubwXU{TiOwvLDXo=9}3e^v{+ z1Ybre&TJ^%f&yy)RO=LeRjUF7A)Bvbqwy&a|D?%Yqc#~ttfI_*Puy!)h(p&#AnbA2 z;p0AgIZ`X8SIcIZM)dd{`BAZ^uI@*1bB}IHGhzM3*H$;Ga<@!MdS)bshws{5)1f2) z&@>D$di^2aMwSTd8c&A}N8GeK8}H+E%dk$zd=G5pO4Gj&uW%HoALijaibR(bjN5@N z8YaNY-QqL`LuxO1W(cRq=x~LS_Z+s;Q1LkfP1w&dgit4y>i}yHLLg3;fxMjqXp%+0vC3|2Uf=1nyYt9qkN{*hk^KP0VgZLpiT zv+;GYC5mKynyh$1+mOu&eLjt~Jdba0kG|rE`rXNN@EZyQuA%5^@&?9j_=HL>vshd_ zPFbCUOd%!J;f(VcY=OtyWWBTl{?SL1u2p8#n8Lo_R+TwewRlyEw8i)yJi^nd&a-{^ zA{H$~tUugAOi~Jgx`xvYdjpI9*}1NuX=3l|Hf(G24wB;rRTH%Oi#*<>jgl~w54^hV zUKyE@44&PKHUn`hSh#7NI$7Yh1TJBu_AkQjn%z$Ric0Nh!L|VK#O=!`@zg13}AOI zubFX<-sn#(48~WGoy3!9cJcO!exS>G4v>8xSue5qRPssrLf3GZMFzT=ABjx-Kus2d zcsP#48I3I|N#rU~$Bt668%)8M=%bUPscBqVQUC;sK>&0BKYoMzji_F}FtYxWpR9;i z!Z}Nx=rey$dXWmp6niNWdb5M-ua>M;OHI_m3h`R*pNYDJ&c(CCZ7=I-MMeHSu-lBO zI=&9;c0Dlh>E?y|e@4C$;$*WBVKZdv%4{Y#V{vn%NvHhWI`w9N0=Crxbog>j2c2A2 zx!g#2CFdsE3l2=kev8KjlY$ z3?3f=IA-PU?Sy5d%kYJfJwr*~d;~M17?VmnV@=dvQMz7Bn6(!j<{OY0357wf(hL%Q zSL`qf?Q)8>L+k4>dCEVPvIUM3Ixb200Su9hJ?hoJj&Qo82}f9hrn`sRJN8Z@I*my4 z4c@cJla_Na>`{-t-`2p(zRri%o^{fVru_MuSE4#I38MO^3g=e)Zlzc7+4DuGNzJ;L z{Jw#BSkZ}fjpaVfL4tUAtPo7D>HG-z6KuK8@B|wGW|c^_5+;nrlaz+%JCTddsySIK zMA39>QC$P#f;j{~TYa-^85W!;*n*gQQE7){bUPBmt=qlkm=8kI*n&$y!!5=ivdODv z@>~doj=kg14*VuQzOx+Zj1>L#MHCIAQJm#{n>EE5NG|r=Ifn8wP>PG!IUV`kx^5Ke zwfgw#6cMqrJF}*-|79;L8M2v~onfN`YA$OU+8sod>-7#2W>!qm@nuS54G$9ij|zBV zkckgJkZV=8_ts+&1Wk|(gZ(aIej>H^Pdc}=HR)^ke0suFB$9)$pw-OVWQomC^*m+i zLM!jT44-zJ@56s`fScV|0kFR{>m z0#}m5i2DkDz6LvVcBAF$0K~g7TmJlTn3>LMrEg$`MQ%CwKc#MPCjQsd&6%{g+Wdh< z5)#=!cY^NB*Z-&1AB7Dowl+HxtPfp~omDfB8hrn^DC!E2{$U%VcM>(SyN%W#MqEwp zu9`Ur%C92T=@oX#gia)YKX?ZIchX6k75Ibq<)5 zx{)dF;Yln?L+iHJAsNCrrn3>11Ik!XO(V(#1hK7N80qi1?#Eb#lrNZC37mwWZH2DR zk{$UbX)ed+ZvV0D6Z%3P zx(HPziH!mfZpUi^=zqWSkeOy+-j#KYsQ+F=AC^uuv5#%7N$MDL5{{2IetLC@RA3j$ z_urHWs5%-3FAPb8y=&jE&lob-y8=x3n-x0`LVez(@hc2A%jOHjZ1^0| zTo9Mdo9fTB@$`I2ve`p|`o}?S1l6^m&oy2}fH<7SG_6^Gqm2ohnwsG;aI6)!4J${1 z!@&wRxgUQ&B>Lpb@he$&^A(d~q;iFiB~%%(#u-uMOc&cfJF{soA;&km*bl7Zoy@v! zJi&CbMKHJdNN3A4ypk5m>tM^n;r(d6NGa!d3bkT1IFlRbviWRuCQvKgD!QA6GS1@_ zaFgvL|DGNbi}Dk2#Pg2NmVm;x4}}Z8mZsomH<7Pn@PWxDCZ?~EDQ zcw|58G>pJzPjspZ=J1;nl`mMqm}+8yWxV^ zz3WSjRub+Eu{*uLmZ$c46C^xf%zcXT3$pSxDWM~R9(i-=Hy17Zit|~RV`9nFFErVG z@L~7lcJ4-@yo{u7WeOX=VNAPYz@-JBV1~@pHkd)2R;F!wH6>o!64OrT*$eYE;>6BL z)wgip8PbY1t|o>E@gm?kJWdf@82^c{hznUFF7Hqi2&$u(mGe;=UUiMD4(F%UGR`9+ z31au)7D0ZV_&2DQi<_V7J%Gk-_(68v0anatAs=Ei>psRCXZ6o1&1P>>SPul(i78LxB1~DNfx2U0#Pwic;<7D^?i>JE+ z+V0D)%vnFCdU6)nKRX>_Qarl43uwQ3Se*(joGXZuPK5{=**$)g3w8df(T1Rv;6|Q# zIVSO)>Ty$|X)Qpx(rfD6kM$#Mlj`|e@X+L^JTANa*owRh)Gv}(w1A|)cit_P+Ddzk zB%JhD-GZ`pZ%dQ+c$o5ygy^~zjB7@t zzZHR@Lr{fqM)>x0kkHv!$L7j~a2)o6I-->^mbo2%PolhZI@P_KLbZ3A9nrz1945~1 z-XH;G4poP0Y*{T|)B`lo?l}c%)aW|qaLb?k;c7QI0g|-!tpDi1sdi3>mrSyz&c{=h zGpS4qreRa*9i_-vFtybUt~X}B23l9$e>%v&<{mnokQei z-ejc7`fppbRKnLVq&`-0BA15&_&Nvy1$mx0!`v5pLp%Hb*e8@nLkAVR>aT+Yd5_0pL6}+xZZSg$A`DAl>Kf?#XvgwfCD&law zS&>67@~GMv|JX^>RoGxvx9{=jk;k#V<0U()(oIQvU@)yhuFnWy`rYD!Jvc(Fu$sq7 z8J(%ao|z?+#hx}aT|6XNbL2n}p@7skx_5s`M`blz@#OTz(~-cWROykwwu7nz|9rfT zzj8*9%^bCxVcF#o>y^g7qJj1^OlBa6#2t)b0Wu!CrNmHneiLZL0s-U)ksu4k(lLfZ zJz=5yb2~RH7C?7~%GR}R7Wjit7p(OCARr{^v%jDQrv}cnPmaN zOm1lI9}jFpL7gakvIW$|xylW8r2n$A>Zz*^^_J&DW(!v&p~t7brZo zqqmWmp9f?s@jc-Q3K9N|g= z$+Ak(<_1?@Kc?dKYD2dI#yfKh8C6nBlE{TjG44Lldy!5Rxa;VG=oj=0}b$@kCqF3 z^k9$ZI(WC_fW}G`AYwtGU{SS(91Y<0eWe{-Lt7<;+7CWePA3026Pc$fJ{S=}?9Cl6 zNZ=h^bZl*W+DWKm967z@9SP5WU$sPmqX-ADRKRTJ4nfON#(|T`8)>bMMC&>Iw~hNx zW~T89GsTzE@m6`}_6*FyNy$?RDYx+h6gsWU44i&2(VK@&ceEj@F|>q=fa}p zv_T0w85>65BJ%$vn1&dL88H6b?t4PX^nBw^lzhY=hMm09tt*fKlSL8pat?!2F9^1Z zWOw$vzMt>!kQZb*Q+z_J_$_y=w*c0i7__OxFbi+vyiw0ZSp{FT-*`TQ{lhZ9Dg@Nh zQDc0go1RVhlQ@)mXmQ7o=~H4+{OxXq*Lsve;=i!~lfz~k`ljUIEDFv1Q13x@&3%v7 zpkM{wwL4C@Y#{~Hn3Q41w>ddwtR~g6!?2HH(i)7xarbP+;5G1LXX*R)?w}^?L#|Vd zWbU;BmZS*6mxNK{j9Jgnv88HrQ--h(VRX0aGEQCg43& ztQdghYJ&ha19TT!s#=dd;e$LKLQJ)(?Pq70P*bu3diOmJcuO#}lQ3(SrC*+EargF- zO=zj}LBwoc+boSiOvAYe8~*bCR&28uL|6f8O|4wa%7>ZR-ccgVFeDcleGNQqD;X-0 z18+Gc#P)rj;uFhj=|# zZFM@?m1tot0=&U;lWf`XVAl$PgkMTW5}a--A2IgT2)FE!(A+Awz|Uz}TZx#hwT?^( zS+sPJ8kjvup7-s>f(m&DgEIQD4u- zn~n__-mE;2k*Dx@H?p(7y|mIqSX@KBkLR5yR5yMM-XU7|j$<|}+usq5M65Fb3PadLGG4aGA7*8TZ^UNwL`1xq8X=W|| z_n7}wr#0jo@dUCNI;l2*NnC$DpAKyb7FtxTsnYrh)(VwK}{!mL!=wJ#PBDJ^LP*)O0b|S+@gU zdTNBQfHtb8fk9$#A$zLBlc^)JV-Hx+HJa5k{4;spQf-wQEJU7wh+?_xlYV!A>crWG zC>ObF@+PfA;JcnZ6<5EUly63Bv<(T`s%LOG@9{&;>gtP*9B#oXmRR5}s!1ZY1L$mP zl%qEK+Kl+oL{^~g{asK5*_R(!$*xnADmczLTaGXNm&)EUsE(*>7bGD-aCZ-Ia5=cU zb8vTecRdhX0vz03gL{Br2?Tf7KyY{Wd*1nG?tD`ZE zyXdH|wlUAS-Jxl6x)+?QO2SZQmSJ5@KHT^PmKM@$zpdq!D>zU#OMj5Ls$MCkz0zDI zbI1g%ESuriYQCj`&t0>s_%Hge0Vqt|t9I^aCO3Y3Bk&(0kO4yRnct@E?b)Qv{;BbM z`eINcF3l4OoY<6@LVyFi*23QV@)t_I_z56pRQ#PIiREIoauqAEn+xB-=HoqHx9U?J|FmzcKIJF!tE3fG&TKXDG+9koEeXl8pBwbmcxwUw=mqR#ijxMfTD ztkTh2{VumRWztpaC^j}y0aJt_SUas*Efk-FSRMZWz2L<9<8v=Kx@3NJca*%&B5R6f z4MKcMe0i?@I?~M1uozM)kxD;2#l%+TUS-Vc^E4h#Svtwk6gOU%x!&h_)Y?RUOxSk5 z-k(Wz-~&T!;xO-wG#{E3{E6C#s3@`BslM)3-MRAf#!!cT@zHXWht%F)vf+-aiTQZX zd|vmCS_PyMX!YSYMH2J5Jiy?uwyQ25^m7u`GQFiC0u>1l0&=-J>M$r*RZ3@J;8W1d zZ;QrBx^F+lWiomSpDUiP+#SGDU_UPgYE>_fMrS8dGazjm3_vD@-&0nkG$}+(pD)gJ zocN+zHnamDv!Wb}4_hbVO-G;Ar9@u4XrWrBmgfy#tF}&(WhQ#n?5EG( z%=A}h%|q-O1PFu}6J)2^aKpT550N_1Wzyy}2^OW`o>B z=W`Gh@EUfq)xub^`|oGbOmCLi(rR)hm!4c6(xpyfr#>cNb!K7~FJL-sgqU(z)tk79 z5E0~T?{B&tBtv1e&C5QWwpea#3jubmNz<>z}?)AUd>-= zo~-@MQFYcK*mV46{^AM%Pk-~u^_wmOEB{2_5Vv@o2>3e_chjwc*kL8oXm&@j@{smx zcsLaP^msGPEg3ne^lQ$aZ5h`C{q}!nCK1t@q?Sjm1%>69NhFgM%pbzi-(rKA{XTT?)aT=B5o z3~uihP7`jau)-c!-;Zd%rVlC1qtA=8S5@Nj&T zcb~-cyy0@6bZQo;dxuNF!rxWPA#w=afMTYd zIJd|*wx(9*0|a<83bFnE>Faz950vKM%hhOO3&$l&nztQNGp%g-K01-9a47PRt~;=M zu2vs*qo_=FMP?0A5y0$(ErH+^#0AS2CrRb5mfZaHss_&(29NYP`zC?7>~zYLB-VM>xW_L($43BnN?gFx$yQlt{;T%4J|F@ZJs1N@Qx;{ z!;|0FmPqLNl8_P5TpnH&ogzi3fLxhN8W(c;ANEpzUS5az8Ss0?m=E5uISzWs-xCfG z`N`j;ATb>W4!@A)o&R*#zz9RJ{T;dFFA&FRD+DXx{^4};DO|=qC~pS=VEG46-^bau!9~2v8H?Pwr#DJ z4C?Wx`;yk=N0~jpPjK(raCt2JFG$I36*g~*s91Mdc+PF<)#k&$Bz<6zKy;L6uei7h ziDl~XT@Jv9yFYy*;c^YzXjiy6?f8VSvDG_GI+oL({2UIp)mcW7yN>$TVdpTiP*54k z9G-HyChV1%fS-%v#)QvPV==oN`KQ!YHl|Zd#RiGHmIWtCL&M=O$>g9wCU=lXI=SHH z@U{xer)ravKg??&-)D5z&+ndBO&lluxRH*h19P4Y{lA5;A+Ym$bET3axLydtdvSiZ z)asSsnJ6>#9~{T`+b_2VgwvZm%T52#(Ww1r%Q6xClIV@rr8e~_IzqPPW~s5f{DjZ)CssmEGvC#?Oy^p}~6#4iBvh<}3AKA$#lZ@p3p3PaA1mcSO2z z>%T7#zNbEZB%FP{Yw?Y@FBkVHTS^0~*|-aCmh+MeplB(3vqvOU%x`yxr%gr7Piz!sKt`E>VFn@OwE*HP z-`1=!W|pPgv?t4~spWgTQT*8bq+I+sf1ho0^E+wnY8u@%OKHeN<}aEV1URvW*3sfS zu)!oeVhF{H;(sN5vHxBH{7>O!aoWXl`179e(-M3(mayy!LNy_Oy6CM)7e$bWD#^R2 zT6DaUv?X?b=bYFxC21iRW2+eaa8&+V~ts>VN24kSHS z@ki;f@tc##_k~L?GblN|#~hcF5k*=d%>GKQ!n`@hJDc@PoFSGuwg*D3YoaIJ+< z7_Tlqvm!Blsnd<|nI#;nbfGv(L6@lcSael>ft80$@q!5cr9QNN44q0=dhXTrLn!!m zm_8F>ko)?%Y}>$>AX1}^ZueDx_OvNxsizZL7w|Sgsa3r+-T=+Bhx%Ju?PU4hP9c!p zAQ$D=>{7`b%TscFK7yOC2h_aW2f%Jrz1h-Ibnc(sGoT%7>x|2ub`tlKiAL48jN=tb zPRNpwD`$@Z<9IzTY(?6r;O>(COS>DDz~m=vOjgsq9jQ}g{!3rSa_vdKa(H0JqQ;%@ zWamC(y(2J0N@yd%AR?qki2>B&6zUo~s*_N{Se?@nxkU8$z<89ui%m9SiLZNA+E(pA zY!CDpnyhTmJirf_lElC&EAZ$zw>?h1Y@mi4@NznwbO#vyyXPyfC*llF+)Z866N+x= zAsu`k)XPvPh~po~Y2T-xw&xsoV~o90S7Oc@xeSY(c)a#)e|s$A=kkl#vV2> z<8MjE5(Xyt^SOPTcgjg#e82QaKTMSdp_A3}f2~wByixkpcq?h!nZ;*C+#?Iv+rf$$ z?~GMU_Ij!7z+soI}DuTcK=4HTLZFt>oN?#4t&LrZMSrE&cYsok1)jOrQH(JoN()9KY@T*5$6v z8%N)K&Ac__Vxo~neN1kk;=$a$Mg#}m^s--)A@Dd^+zi=BE4_tWnbmLKOUL*82~oXn z*LcD918b%^+HZY-ufWy5JKGaIO!BxHGe1`HAG*`+apf0dg-C~FWgqV~oJiZP!_jet z-EIS#xPM0~b-`~tCW;?iGBag!L=%L{1sF5G4&yt{!Jbupo8IcU)8JMNswiRmvoil$ zL-rvcbn(di)Cli5c4Oy(z)KdZ!iy}WPUS`jM7=*KT_c_+CE^itDMYY5p$$l}jR5 z`RCueXMwadkm2ks#&yRVwC)-)IXd5OFoT6h6yMtd>&fuc8Mu@7=UcTNZkSwhKEc8= zBbYSpszf7^8eYk0^vNFga6fmb5Lf@R*F#u-kFykz<|}QfP^{0}tuxc#!^xAoi6Z3# zA-SI(8B~|M4@bvZ4?=$j@Z8-Q=IkVk4Y zkoI5!xSi(CfH}6X_Wv?Q#T2l;@)7)$a9S4)^KiAK=*xn#ImCcA&6jKZLCGaWEK72i z1_r{A)5-;u!-K@jBRmI@(|5iHy4s_T8t$Q9}3aowj(e zKfTI57maxnQ^2_N39?($#rrlb(SPg}*~aauRCUzevk}KmwE2qJ$~f4#rO8o=n7^hy zw0*MZ6VI?jWSHq&`U9hAL9N{UHRsps^JIg!E44^uXbSN@FR`_99RFG7LSdL~yPif< zz{ugOw_IG$*l?At&s?q2G|0GIqXg-8l-TWk%(r*_b*W4oUanA7J`S)Y$FTCiixsEn z3zjehJUuv%@meVDJL_+oe)l)XX^wo(xE$3K^t&G|K4!=jtM~!R6ADxQX1V@3mW@lb zVBUuP=VY@W8Y)$PyH1+puAvWWzpA@8f_l2a@3|iQWGh7zi{mc_#(a@9*4T-+-!2b- zakoV{nXca>vg5sb>5z2FIkw^GXRJ80$T!|Ds-Gl?9xM5hy3KHWdUp3p+06 z#)DkzG%i4qd~eHN+Ndrg=DT)eM%zc~ zaJ8u;yIGZVg#PNK%}BS<_I_!CHYewzJDadM$^l%8N5+v$?u%J|s0wBn8$WCc{R*$*@~Y z1cppYuulG#y#Y3P_i`%))Mizchxj-d#*g%;d`&9al{deA`DD*yyl=}uQ5DVG5nPH; zlu%t=uK}|XxrVH;yID)`aX1&JEPz_@KGg5fgIQ%RiJN&){}~HfP+DvNQ_yhSRW6|I z92zju5f?MIPI9_%oxi#Ri9ZJo^?BnIQSX#6Xy-@V-Rtr>P^3l*7URg$h<<*v zMGm<|`1#ERH^cnu8Ddf^i4@>NN-9bSCJrgLx(Z5KmQ<$*L>-3mrX z$&WoQ;JeH9c7hlKvzCu`?bXg4x65~xzu)(LuIvI7Xvcq}(qh~+F`|QX4Utj6Fd{IBpnt#`uBthiDzt8Ca%Cb5I-~q|VVftEr?9yCTrt}yWJuIuns#cRh+W&@Fkof& z+G8D-4~NAcZ{UVPi#K7N9*7J8s}iY4htLvNN-S}DQ&HxfX6V()4g`MxRcy=JeaF?i zFhN3f>h6@kG(p}2qGs|WF(+Q_zJ!~(=lt~p>vfE{wg_X-3TyaiC$_8}D{`Rg!0U__ zFV;B3bh&oS*6bY*naXrWCF>_z-J4qPeCU?jCve*NzR%(aCu5Q)?(n6y4nGHs<};>; z$7j>oSgw;U!nhwUu6CX$6Z^PLWXsgE;y7wUfBFX~%`--kl&QD@m?$717tC-QQ5>VQ z$-o=73M1PUV;sIM|552bRImUG0St?(5Ac~LYlH`J_Ys9j9rM5`2 z_-)K-F0y1va%WDT>E+ToFYQRSbp?+Qe`Cz$zAF5AbP=bouZnH5CuijBwbf>}T%+t< zGk9bOMonFIV!b*gS(P@_;(PCqN_Y&;-0(8`EBo*;eL=k>4brwhO(tHkSER5{rX&zp z1h04tX)qh6?rp}-oEp2E?=FnnyLd5Pww{Th&sErU^GY9h6$vt3r?K`^a>{!a6J|Za z_@R_J0#Kxqe#>}dQYJr6n*W||tEP>vt&zCF#_^B05LKjq7j+V{q3oKH+!nM);U90f zCoM}2Jkr22pGjcHWmPlxy%NOT7MG@u_`4Y>Zs>sAHOiQPmFC6$eMe;r%VNlYq(zyR z*O}7#ZwE(L15J8R?vT>%KIpN99iC?qXtu(hvlpQ7x3|uy*n=Uu^^qGbw*%y%9`v_- zA$pO|-7v0DTTbu>X86-a#C$yg@z8I7)bHM>6zQ>*Y(;LA)H5na^s4+kR%3Hob<(mE zpyz^L`Fion6w8%Nf#VEYiFaS$h*{kA)#K#(dk#6tNDaq^jGfi5Mom#FopMLv3;zsp zX2PncxzJT`z9MjsbOa6lf`9&kb?J(@tW-l2!@FW$-6dla7Lk?7nqy1uDkA>PSIU3v zB$bzL>of8CM)&ckGb^n;CB3ed-=f0z z5pV0we@Fb!+`D1=)!Dqsr)t>JaW>KEm-a_t7Gb%$glq9sXUs}98xpRd-Gvob6ak$u zG_U}Bbw0M%fbufG!{=iorQ*G(6)A`Ks)4C!O+FDX_#URJUnjx1?wrdT21u=Se*wdP z;;^`5n1XtmEXfp#?brjvEtz&)&eqkpZ*`@rZ&Ore@X2Q%*U%Q#T3yP7rV4Os^!?oq z?&Dq>7n8|}_^i4NWv)|ZN3~op+PM_-905oOB`TbD|x%PDj-_Gj!so4?6mGFbE9H$ z>7I!#7#Q|>e^Wc;?_%t>3irexSgL}uC$nJ(Y6u0I>75>Z+r+Sk=Z~ik@ZEnuGXF^S zHYVA%INLy!@v4OcN#Qe(544`ZTdGM`WdmpZMm{nZR?jW=k_ zOBHnHY^0hOt_JU{9|BbI7fD(`^rD)-XOk?|XDX!K63qWXgJTC;2Uh z5~H5@CO`|}`U`lC9RNcy= z4By^!6V=b0s5$X*dlXcKk);EX&}}*6_uD_cdPGp=Bm=d&9R{zK?Fvk7 zyc1#L*A>Jp!q{27OWJBbl%8|mbvaN)vKJm>s_@SQ9$9p|cor#DRSK?qMZsY&VpOS` zsuwZEMZ|7$7_X)aBynF6xbGPkTJ&IYf_;swBvWg_?Ofi78-aC_%BG;hb)kx?fc zQgF;BK_GT~2;5^u-?Ggbn~g(89Jw;4amuCTsEVUP5{>T}n_2GgIf3@b{0kmhxu!JT zoK3K5ZEdiB4d51*ldh|WUDp&~ujmpnD#M~ER*a$L7S4OHAXM3!Iv@rRI$A8J;l}Fc zf3-N1Z1;oBT$@P8N40@nT!;#V8jtDeAyMJuihg+T*}_&!l;g1%c!hz%GW*Xz0(N^V zjh6|Fr1$8)m6MMD%&0tiY2H$(T-GYl>_Tu@>4}fF&rh^730BCoL&;gn;%9Mwq>Er0 zZ4|UiVUk$LS1q>KG*1R>=-i3;zHF8R`H6)E!77GzUJklmrOB)W`N^&43)(!X0 z?oLDFKh!u(0LoB6*6e7I)gBAico}H#TMlHl(+2^IrOslgt?QsQd#w6LJS(JnB_rFx zxFIjs`W!RWEGoC0m08$XMjf)Y5FRD>Fonwtpxniz<*v5u+pJpiPm4(OL=4FOQ7+@I zY=owI0q+X`xbkDBh_}_3x$53{&nOmNeNb)A_HUk2OO9_gcdraaa>3qJqgUwOsx(zFmX?5ojZ-tgNgF_&J zPAGb8J8~!*+Dday<0Fpd;am^u*}!Cbw=;H6T$cFB60{nf>;_1JdLwIp0THj<<0r`{ z=SIDnPdF2dl>8)(5lxoK)iZ`Z0b1&1#C~t1T(vk3H{`rn3aU@&PnDPl`QfNvJ($5T z?#0nkyK)w1FZEm&myrj6LP-20YM%4eey(zMJEZ_4veSvJ5`%yzORi2H%yPa$n8_*y z8J|Ss`Nwk_kohXE_Jd&6bp`MJ&YTmlM)op;Fw`1gna}FBUPgm#eA}$Kf~0+?y}ihZ ztOcL<4Sy1hY>G74?P4B5YL(M~Tu}27>I#5}D^bM`!WE?p_Zu_C@=sL1Qe-Bd2 z0#XkIJh3E>@P{>;aR{=%ixz|VsMDh4=tMyuDR3K0L809s;tfLMDnT?`x2LD&gq4Kz zj`ZOthZd6l%-KRZu$>x*JDkRfdU-rT78H6QPxc(6!%V)|WV8W=^j5+fD-uZ=8z+OF zzhi;Ha7d{P+f0>T|7$_C`9FP3w8E{>2D;AFnU_sfR8NbXyXbT~i+_6-v`(IHB*! z4MhA|y0-kgndbh2ke3^bQ+z_)prxqB{yo+$K9+^BQl$_em-{I71+ZzZGL;cFrZ&l3 za2-}mO~*{XQ7e+~(_^EE$2LJBvZ|Ftf9#Eq*$ls#q}pQm>E?suN~qKOfI;GCbJ`#INb9_NDKLmanx;9UTxH5t$TtRFVG2TwYO6YfC)Y6?DocCjtL(kg(^&Blmu#rj9HeY5 ziKbzt1Y7?!cH*AVHYD=R{Xo6m3QlIa9aMb)W%I+LL=TtIPVep*xd*>37$OG9ZL*>fKOvoX-WIJb~8D8|)Hl(4txG>1s~| zKTh8*t%k!GH+!R<47b(=;EhX0#kh7gB63U(QOM)k{ zlR=eoHM@L}I?SEv!YR!&g9}iIqS2Dd}+GqdM%KdwsyDmREmtb6Ae0808>S{1w9WQLSqwo)AA%iN7UrXom7b zbG@Klr+;#16(cG&H`yCpSDVl|5Zar{86ImlkuPQm#PK8eGhBZYBqz@ilYaY43k!${ z_f2j{r)4;rx?C)aAC-`~LN1z`nogB~$h4%qca2|PIiAVfj-t@nEV{FD_p$Uk#cxD1eBEScp06`I*-0#&4F_ z7u^oh=;wJH88f~7#$c`_Ia|LtQc$7@cjN9pqGTzN>Aq27ZSl(N+AIdtyAypwGd>N^ zK%57D9pMHwx~&MCsiojFx);l*7Y0m^QN5bU32&h^4p8q{uYRO;L5oZHlOoNO^pv=){ED;!Ilv`)M;S3Yyw|B7ul*H=16CQ^i)`IzgGIp)aRIJvW)X zw-MW!e<{ytY1Vo9VW72=L&nfl%cKpP7aq9FSTP?DoXO1i1HD%*Ey@bq) zR=r=lIM;7`f{Q-1UUu{v8ba0kK{%8<=FU3H_BjRUW zGL@XhTO<{d>tobnSau`ONw_BHFCM(wg3O6r=frujRsF_yKrTYd;5cu5&z-YL|Bh{m z62TFq*aV0uFCX|sYW|Yc829*n^LOyZ<7*y| zbJ zQ``DF+}2n?_~eIfy{F;Xva%{n1Y25b%ony2&=eor<}(xTXP#81AsZ{90Hc9={3F@p7->Fp|Fm zN2Ii$k-$n>(Xgp{Ub~|Ua1Mr6@o03ZJqIu_bKbf<=D6su-DZAq`(t`pmSq`QPdW5t z0Gv_5Pg&yV;L;nr6JEaH=lgtf>! zaO@-6AA?j?NyA%H$dWNq$&wQYWQrOz^MHtaH16P0JeG__bNQNB%Ke$GXvHKt3#+7C z7$=L^hL_ku)ry1~UZNDc(Vb-^2M!1a1)-^3k!aPlMQrc&m%u`!w=I06e_c2-d~Zm| zGNAo7OZ6wn!MF0vEPt6rp!1Q>mu})g@A({C4pTCkJ#>q)zkspqg`?dBsVsp*Ok^Wc ze_%y5jqCmb`zwTx$u(!9wR_-^tc_iW-$XziA7U}2iI3G#*uBSs{vi-iT?dNqd&|?yvUw0+{LT5;sGrycbCAm8jKP?)tF+azEws}hD3b)mxw)Rej;{EPF zW?BAkw12isV}JmXxs9)dm0eU&A4)r))mqxrgA53==RCF_mV|RM-QE#=sh_>lPh<%FqkFq{r6_Q{U{2 zPdkzmPD{TPpW(-DMmb*!EEJRL;4dxC*!O~FBl+OrzmI(@h=~^WvQZ+11aLmjQ95LG zBw|c@fokr*xYT{UM25Q{i!mpnY?YW^;Thn#7A;Sr&oe@+-$V0G8g`ZR+4aOkhEw@^ z@U^6eo5NF=7q^Eg2mrBm6?RmcUb+@_y z;(}r9nzg*q|DAc|X4qf{8l^8beP=Vmnx|m2NaxjFJESd?WwmhVWfrGJuBGHZHqc{D zKbHYLQn_wBT7PYOuGaF0)u@*>%FRY4iddobF`B%Hf9Nb19=zdhOKD0>hNSONnH3f& zT(2C!p#BaHUXzQVa+okt8uz`u-$}tKaRu|K3_-{PPsQL$;ZfyhWWuz~Y^=U{hq8Ed zdL$hpOk(eD5D**Y&;C#7)XDchAtsWc2fB^gA&9SC?SoC^Z2}UHLJ1hmO^Dmt?_5g2|RO_As z68}`oZEN>mZCvJ&-2KcV=x#f>Jt{Egg}m}hbGA~ixg3w?cUEIR7Y6#6G84@0b-gAM zh&C3++iWOI?d(3Pw(`C&3KbQb*H@psWkrR*F!*?UwJ?ckX|Y`p0c4rd(X+9)_6~?6 z4rw^3;1(l}5?(7{<-Yu_pOSWWdBnSw# z^aO~gb|ZxspFR4)(UQNlaeH|8TJi%$A)9MKY^zXZ)Z!p(XT`mn9&_f?l=q3ZPR-KT z7UrsNQZ+=XVdf!7BnOSvTsXCj>n-JH`kTq)!LUxdc5!yOavs!wbV7Jy(R^M56i2*G zU*5+az&Lmi_e9QVgGsAb>39Yh9+)U@|PEb^- z+*A5za+Ta0(FFZ`ky>rqgAq7{1@$_SH& z0wYjHbwV!P|3&(a+M@d$QV{yz1&K55Dky`S82`W6*)qAK&st=v6i`+d1gm`hKTPre z&qF2md2FJh;1SaOYqLcX#LDdT}}w)lZ+GBtJGz1h|i$4kU8E zj|S2ChmPCF@umN4P-3*1-XEQW?vmQ>YEG8!UM8*MYS%)eeCjlN?ILz#F@+1!_({EGVEWJcckZ+V1L0I>5G@>)2x@Qhk%-orX5E^ zLn9PJ>{H&06aIGu^0(94%1$nR#5dJPin%t#Bo8nGV%_W*MQXe zk`9U2FA5`gcUKL*x2vE(X4>8WwnA!m>gfW6F%Cn^op_b12rkfDEp3|4>aJ?LAo&FU zbXT%SEYf#wztT=%<9rSy!3GKb0nibztO$5!IkOvcCg2s0WADtMl}t@)c(8!M6Im}K zCKyA0jbn#jO|^T3yUQ`*%&ZrKXV5XzW;r6g^EV(Ih9Su0pk_|L&8eqdolk7deP^N> z_hu6Iy8?ypi!I)JV8k3xqKd;tnR*LXR|ik;R?T*zxI*{vWt3Lk&NP){DLrozVv$Pt z#jUkE+-W%WL6*5DfX?10&lWVlvv`5reX5tQ4fU`j#Knw;M+|WnyJIi2H*1UA{V|ruItPG4otBm};Go+2&w(n6T7k+6!t48z8S)(bx)p6UO6O&GAsi8CG5!NW@hdklXZ-UZM_o2N zziVr!B~otnXpv$I4}l&K7K^3sHPs?IEotI*rkb`e$bN%QONY%93s9s{=m&^Hp#MA3 z^lJBHb1#v=NPT0H27_cA3Fy6(CtF257mF~ssEV9SPz`(oqO|}pOz0mdTIxia1P#JJ z|MLKS;m$t#9=82n-7w?*faVn)*HzX!d(*Je2tgiOSVt#q6a|qzVRajpIM5)=bk_D~DJaf0zE+W(@Nf#n+?7^pDNR}kHJ5yjj&|fcRbvKSz zo~Wbz1A)lYA_Q^d(BJE6TOR7EXC?a4MYbnan`uAcj`b!#q+$9bgf@R^1!Wzy+-W&G ziR3&O-HV|sFQ)deujmtYrYqoQf;E88od}>mZM))k5OzJCRPJvX%*cviTrN_V~(a41LV*1wm%Th7o6`M z?wRyPZ-lJcu6shOJ48IzJc^Z~T$lg$CL2`hG`@We8YszIZBwaJl=Ho_mJQB^wuL^G zMzP2T`$29@5I~>G*5B^ro>{yO!C^3E4vyQ3^RnFr_2FtQvoonzC6*0}x995V9Z@1? zXO}!OV=CzzrSJ`GH11dWQruitTYDO7R>=*l8b&~9J2_a%x*mwloYfY&>w>H18UMtB zA6%9G80PA(#&ct3D7fFOApSrZ2R0hLHP!xerZjw#Vy(=c730{=wtYL3^DY=OkR+=m zE1Ru6$;W|nj^8JLs(qpx7x2&Z!KOw?xsF9G9kk&)%QVmRz@a?%XQewK?6i>APXIML z5xuv%eY#d0W0GI_(!p$?C;KzndBjRhlLQH%7sfz_zU62nK8K689EOW4V+)_r(qSGK zD`wIA^J0lvEi>ms!%kQWXN0NpKje$v{ZD%SjSeFG9OHLLnwlxJ!8PUqa7rk>#aY!L zw>dM%8gVO&zz^B3*0f zMW@Q2^-&eHrP>Yh!&&;x%dWJ2d(zk(Tm-wd^c;nNIwsJL`ndA=zW0FPMN-*Bux{Jd z8PzFw0jR)7!oFjCtZU2+F0JO$+(MnZDZEo|N%>{n3F}bvwiy_J$mNfKYt3TLbOIhSj}J!o%s zV8Wmqcc}=owcg(^P=&mKPHKFA?{-UHYqhZ|mvq4zcG0x%s)PdgeS3}p%(T0AX$#n_*;E>OdPCbP>h`G}oQ%TcDthxjrZ&fv5tmAKZI1FTW>So|mbHPRT=P2>Ae4 z6vBr1@Mv$1Wb=P94r$_UvM9hue1R-BzE-xK+`(v~K3Z|Ibh_w)aiM%7*Ap*J9BX~h z3^e#v3A-vnYqPw07+NCfS~@~jxLORIgGtV*oqHP6-!lVI5Ss=kHW2ORU<%Ny4iDR~ zBPIyP(li}`6&^SYI14W-_R;dag$ic$hXxt6Xie5CLpgNKEJBT_eOC|uM2#( z6GcrT0b;i>91!R+P=}f=2s;?CaH-$vPHYzO3g+nnAd*&ovFt5F=T%_}efBuTG!%(f zm27=|u5uOj=t}12@KOG8!IMHB@|Y%GrO%rpdic!#R0!94P)So(WYj&b&}qHrRIL*( zHiGn)#CdkG%SCaQ7^#Vdyj0OSTT5SiJMrxTBD%<|KRPSZ@Gna^G9_$mz3+W z(pTJNfhBCADdJPB8et~f;J}kKnK0PBdIMNds37di! zpPe37!Hcz6gGg-2Xx!7`hgeN4TS$F}c*hKR!+)3Yg?^DY(-`_(P`Jq9HHg3NZ^vj9 znmYR6lMer2HBx`EE*umL1eaXTY>1ANs3S|mx-%~vgAcTBClx99^vGRK)qgY5NjC7T zVqWcsnFfB`7akv^$`~fXCmpv51wuDj4HOD}j&h@5GEJ9D4hmC|C0+M{76OMCAc7=z zi>Je(_ix0x=Q{T%18~Yr@Q8Cn%wL1Dg?UWn+-8hnKP{hCovSk)vbrnK0ZWP6A%yLo zly|r$3|srj4p~a^Oq46LFUK^@V1**GSg59^_{Om@II|RAm{03i$csY2^mJyTBUpnL zX-fDs$}qOGZ(Fwx(+O2^XLma}t36E-*}x^GIFDy8KTRWVsYuCs=gQn<;c?;!S59mz zeLy-NmTY3msNt8|)u}%hOBOafdcD(@WyxD}&ZtwIxjFK~d)H9=8$dONV5U&(lVn_R z2(jpd-^{rL<(wx8Rksa;J}zz{=4~6ciRD3r)}3bO>nPjvTVptOfZfb6XyzL(vL2&p z3Y*!Ag}yF&q0@v_5N3r9zK*a7+-dS+^z*I-bgq{o!(wZPz;|~fI-p>7WFUl)8N2Qd z>6zXj{ds{BG(HcRAd)JrUm@A5k6WYucXQnvqCKhq!*5q&CixaP)%$%s%&twNEj$W< zso-A1bpTnPG5eWZ{EJRNjw2?rLb#a|h_w`H;(qo5#WCoaH(o6+VaRrnxv%qbsB^#= zSyd&ketVR=T#3ZpZE>ycF|hIOMfb5rxy7NtEVrk zZE7&?P|v9K#faJMR^9d|m~Qd_!FdF9c8zR~cNM6T#^;T>Uchk~m(v4p0;hN((jNl2 zfr`MFRxp{Ghq}$_O!Zrx8c34w3!vbaV_;Nn>o5^CfP?h>=x}XyN&ehU)Qa8rT z_4FBR<*=XfFotrjbDVx2XnSK5NFNeFA3)AfTWoY((27~h~2;nqI7#2pu%DdxSHx%F|)J^Pd>&gjWgVto%x|SAoS*sHpOhE z+56I)gg13?G^QWfJq|>+T7G|lre+k1(@3V~qE?R!XW6#E1A|AmVR+3Pee5-d}^PK zIbNNPEF%N`qr5?C!N&g6g#o;&rRMNc`c|=->zQ4d&=ep%x0Jm#hY#_MX z8|e!Ws2m|N>PlM(cS>3o5Rda*{kvp|kBL$+|b)4gk3LPahIj+Bhy8lSB? zu43q}@J_MdVo-HQM>_8nO!wnCoK#Peca{%@)j#qE>gFGjJL07^CcLlGj*Vq9XIuUeoVA*bl^WB9*htKG zdNbAs@}3e|C6z%Q8Qt%EjD~%YIuzPTCQ^vCvYaQ&xFT{wDGuT6y}nc;wYd}Vm#Sec{o6^*yuZ+a-1eXx%!DGL^zKy~J%dXvpa_8w*xm92)N& z$rSTX92@o%!os#(J){|TCy*`q4-G{nvgx*M>lLG&cWBVA@5!a@Y+LWfQDJLy^ARRi z3y7j_nM&XT0MFPA*L}3hi$}m#C6Y&%131g*c4=zv)@O}k@S%bCok`PD8}nt{@8YOH ztLyn{N{iDvFBYY9!~UaJ)lYGgoD_A$fP*y(&^+-Y8jIh-d(lD`imIBLjKY{GRk)el z8}N5!dfC~*OSvC7b-dzBKRznucr{*a=$7$a^MU;1fiNE))m1gtU>@SR&6yr#%bo57 z+e3vs^zmJ8wJ{7sOk7L_ft-^P=YJXQu?R9`PHbQcXt(es6yiH#zR3BH8xitv^Bn-{y%<`?noAth@xdE;)TE}MQgEBH+1I(P zn%^HnY}bbS3rC@7!}l+5N!nd4F_@Q(eV)T!{)X>5N~(uG{s^COaJu-oV~c6^%Hb5& zn#l#HWxn|1y;H9YT)h3ge&-Jkh_jJ*eE3I!05jB0I8atSl7^HqF&>^XH#9dPtyN_L zBQJBP1F(iAMl&K8Uc-7o%5OZqCUSu01f+5gxS3C|Fm8B8GRR1s$!Zn2yfC{v9fjQm zHJ-BG35N%!4K||IEvr|^HE3n-p4-bzzG}ZM12WTdji}u2r5n95VG=uo^I?$8JArS> zr>z@>KxAY|9M~?!)XSEs^uy*l)&fS2ezGuAmvoJ@;iIL>!#CNUBn8=Zjo6FTzLx%n zy3!%#-(Ivz`7b>f1+4NiBzpW&<)0%#WQ8z?vLp9h9x&P8talD}5? z?&qLLl5&4n5E+UqEWyaH6n}uqzH0I5S*fmkGMP6|81fh82|`v*{F5aRJ0dMN-M;o| z^LEDV!TWPm_m`oCTb8H#CV1enU$b}DzJ1nMW6X8ZC0FDQ>FB|WikEk$=dJ8;-?e1S z{4MlvG}?IboJ_;3 zS_C?EC^NryR*@v+?irYvkb4pmj`y36OD!k|_4<2Y*vMXxz>7%rsDsC6qFq;{)3EXs4i+>3y+}!B9A|GSDO&c!q^fAyUEPS#V_KxKu z>DMAnOn1}rjmcJ-1ivpc5w2JWUD{5LuI z{wfjI_k=t`hXXwrv|<)ff*J^WsbV>bl{qY2JkNDw`NBBb^4&J^-7&*a zmG}5?JWvCg-Z*KC5ed5BV~F9e!06Jv8S`oNDnk)&Wx$T6#*H`~jOilgZh*tr8+Y!z zQ=9^y6E?|iWp+c6eli(;=#%-rJ0J3@l7C)rB!O}$d29db{DtyanpC~m+(4E!c0}a$ zaa9&R{ua-%BvWT98wm32qmAVNmxB>BhcA=8Lb$alPMPXFgh>D8ZNUm+RW4Z;s%)mRgk29+w05crhKP&o@2EsQiDwl4BJQe@t0#G z$Z10=Vk5h8g4}!%9xyg9r5eGL3DT74YlR=xQjGnqOAL7z%x~<6>y!y+e)WD0DfjPq zrMH14JsT9z2Nds~9LT)Y=;4rb%I?{>Pu#5$4h&KUOB0R?dUA*zUPux~F`AlTBRQV> z$9@Yh$jA_jl!-G#3_sMG!|@|R&+hj!axXA3wi!*TRhUW***+nI{JphyO4B$Uz2Z4l zD~~2N6jeCds^nf=y01IEnNwBi%@W6;#ot(S-WS4Q)oS^9@1T?UZtFr3 z#z?w~@!Yjz9$m&{=-w?ZZd#Rt_hO6UK54>_IKrj&c?fL7V3z zuS-tvJe_Mt5h2%$zu3Da?zPJUWtpU(uD8|o(8w4;WGm(L$2T_0^all1zXasMXvMeo zTbHnR%=4RLk}H_}cHym4g(F+2(hJj06`4(8vjF^?@v+g0L6@sq$palM5*|#ucPS|& zK&(F+HvN{Y8+XUe{I;bs$JcqoGwH`!YG>deypKve{q7+Ag)hOzY_m{rLH>R`yQe6k zL&@-S8vDpFG=tq34ZBobV_&2^J3ITxxT;E3mA5HGIh#r|B|iPHM%9~2lzxDwy+hp` zp-+6$uSl?4hzc9eQk6vS>I@Wv>By+Bx_)-CMK?KORcF`r_ScpRf*!y&7j2x!ii3>> zRC>C3`P8NA)+gAlc^N>Xv5NO9nwRcra-{6cxp}z`)JX;e{i+G(lYz(Y5?6Q|YkpO4@kh z@+nZ6hl(&4%02P0ES3le*HdP#c)bZ-)F-G8f1J8)T|b`xX&qAsM4j{%r7UDyPrP(( zQwxi*4?&diSCV=k0A)T(%@8FbO~P35F{3sa;=jM3o{9MX8dy|7{?ew{?|ca@zHr=XyQB79f;|I;lkTbSFOE~<1FT& z1WMM%No4?tmFe)uiZIo5;|J5Tpr(e+)*$@eh{pJaD|n=$j4qu4-|=t$FJF-a8!`n8 zHCzLyvNFoQr*)hf>FXLTu8WbqB_b zxF?!JGAhpKh=T$k1WbWAmxV4o6XAE@5A`{|4pTb4-E13(tAQ-N<>RAIVF&4iWjuVP_YEQ{ zZvGj&%UxhWSz}hN?D4BggG5#I*g9~i=Wq-O^JVOQqy}yuJ^m{-GS2B=5+Mr#w4(Q9 znel9%gkEXlxo`7i=Q>;th-h}CpSwd07f>;2-p`O zVH12!=~REIY)Fs3gOXn%tw)raCNPK(w1yNKj;YUU>5u&+DMuZcU$%qU$TMCuJzZKX zMK01=u=KZQN5J2iEl|NsLs_nl92a+9h*S0Qw8@EGc;QnQo zX&9%0+lX^^W>5b1O`1iYoQ)0faGJ;)*RHZB$v0IFzrbxxd7eaduhzxX>vLwT71s0} z%=5x1sp@RgH3R1wYe=qDb#J~B1vE*0Yx^aBAit^1D|*Iuwc2*uoM0DMk8=P|)ctqu zQ~pN*b0N0Rp^t~ksOd#k>0fD(DU8P_zj85=W~Wm%r})5k6HP5ztjSbe5oOyg3)Z2` zRiDdeefbm6Ma_wF)5Cv?HpEkFd4NjBA2;%mp>=g+%9t(w-L$1OY6kaJdT8lhW(+lR`XW zlbjip3PCYtn1sbTX)mEPWAv;8^`Zt@i1`-42 z-33ZY?U$~{Pu%19f^1gFLk$cDgO!5zEH^O}Ej6}`dyjmx(v-iiRNx5h7M-$^OOTfr z0k^)9@0p;VS}u3A@7bqI?oNDGRq#oI@+?m&;qCK~jvlO*xp!X%q#ftpTs2%?2KA$!egXq6H{(po6TbgLn-CqW10E6Tr za(*r!s`0Tybx!8TaL?c-2w;#9g!6RX;4PtGGPW!_&YuE?*pS_u&n^&`rACzgKP-Sy zaE9pFUjzG9x6r*q(?5RkKSySB5{k!Em|D>$GMC7EWO4=UCfQ0J(kEkY#YlW%Z#_-h z?*z!ubq0M3ksYL!%)aABL0fTUrA?g{dd1`M#~0@=^tWT^-2s%SUY|uZnYRXV)OaG4 zCZy_^B-`?I8?CouLAcpDD|Z^J7lgOZCkQ%9XTCy)*-~JIDc2)pZL7g#hw-$=v|)I1 z6eG?ER`6l!eA2(%k^VPecM_5R?OZsgkD;g4CbjD;|KjCSh@6)in{G-E4Q<+DHve?r zRxHFoVBh&Hvp0J6`P1CqmFM@0*YLiSu=fGBRec?jd#anNRnb&l3xhR;PiY)t6BxA)=I+x zZx{X2V9il>J_NPAC|9r7%52eXp)Y*;nVk1rD7G$AM3YV6(b5|SUnIA0+n5+>lT^yI zc5}e^LgvR_WRiblqRRML`T9S3sGru9Z&z4@Q_(H$%&uhsNl{c)VMmOdBy##JuO^>9Vtajlaj>#0ny zrBDfOk1)|OB1-0)$QV~{ezrAKAv@b&yl7Z=s~D|(ZQp)>tVglO9%HWa!+RcD0!0;F58oQJgvp9(UDi2=Q$JfgpcaM>wNWGC?!iv zw_5Hz<@V+-vKR@m7w!z{dJwZYzj^;4Q-FHmOjv zu1>eGuK{Yp!4?GU-k!s=@A8dnuP*~j*XO6@<(9P}0X=!}kRGu0)Rvy}7t3=+r} zJ{P%WT6pu-7XIbp^r~Vjp$3(~B-tZ2BD*E0O6(QeV$k`%0_v3BWZq>)RFR%er+Inh zq^Iih&wNpD;nRw7_b3J)`Q=CNz58{Jt>Fa^HG;P}x+Ef@bl!X#u5)CyAIYHs;Ph^` zKeAn0#cFM01IfqC(r8-)`>XL^9LQk51vdo+ocNux8pcsmt8t8FpXyJ|?-(@aRjvV~ z#8hyM?)kVS_51T!#>Tpcci-j<)q1;irQ5?-`?^BxBm9*+JBn?gJ6f_RH^$>EV*;GZ z=OUE-DA?A#T)SB(@`Ai97njq-EyrOCI7AiXC{T&d9FV<|tEe}&R|8;c>vPJEN7g%1 z<$WjTgb{@{?*yh_vQ6aQ8@b-NaZWhK+PeSRfYAznclE+M2(mGZ>+>t|E9Fd$@^zI# zB=m|A6A`ENjPv=r>mBtEOHO2USlrkX6I)Z06z`FrEt5_fXt~YK_!Mcpa?1^e36X3Tkz2kXmDJK8fNzT`BbsluDW2oM1Pqp_Bl4gGbL!&mfD7 z=l2=($!v)Z7Pmzw-JWTbjwLic`nfrHG4~Oo`fZQey;zkEKtY8AG*X5%_kNrD>zg(4 zg4NrG$Yi_n<|AnaT8h7NCD!qFr4hK~%qtuc>69GqOB{5HDGE#_CeeEp!sgl9z28yr zCnM~Q?D0f-sp425K|-TMu4VP@!cKVy{#LNov|zqe66lGNnL^<`5Zqpp1{O1r}efB;n;R_Mbx~lTAVl|J1V_zLmD_yoW#yyDG1;EK1X?R znfae4C;^UdQQog8en13{_4S=+%F}lDB3LBu=mmshUn+hT%gJO#x;Iu(UTlrz}BK>$@wl>n8rdYh<+%^kn>Sx zGn$#;r4P)&CZ@L@LnS}^_mx)5sYMKZ6RjgJ(=qVBUC|eGOFuiDQu*4ZiUTZpsQ5uO zbhqB>nN+rRe&ws#QIIiO7jih<_v=Js6#rzVNhIB|F5pzBUL8AK&+6)V@fS@;n;U#7 ze{!LvNpA6ro|=q|46L3W3CY-OL68!2R@!*;k@ZDd#kN|~7%7m5m;qMR)%zsi!{4Xa z87CXC%w#3WnCcM+Bd39w-L`zf+kDaa6*BsWl?0cHP1>dBy%N(q51?@U(9H%IETV3w zyG$KoxQxd~@>!qsFg|9yKb~l#&BX_h##W`*nJY!clc)ZZrcib@-Gfmm4N39Nr@Th( zZv_`0zGwY;J*L|`xBqlCQnQl0$*%1{3&fo^aw5D#x$tK|U4=pr3-zq(Y+ZfBgwUTm zP}(WZzh+=b1aU330mw89G26&SFbd)yg?8C|$-&2(Gfo4&AaT}w`NTb&t|f9T?_sAW z`yyxtJLr8skv(vmeXJh%swNz?(lQJXla2ec^IIjnGFAGo)4mX8KJ6Q{P~iDi-rmli zD#1sXTqUKw*T4w``h32sdH0%gJz$j+MQaWJ+&?3HTm14F`VcccbZ6cb zgZ7cnlj6D*4a-3*X7%9gOH(Ex_HxISmLh0bwZlRi(<$&k)qWkJ>O^y!-$79)?}+58 zTtEH9M+B_K;p8TGf`peWRtC9h)9g3!9M2f2deu?)+fx&EN`3bM`p=tBUW&jZiy^oN zx>uE>E7n=Bn5Z(2fpyikOho{+9|I;j{p1^P4JDsFb^;^9aW<_xn#2;PBtz`Jg5F9< zI+5&`UZ!anicU1%<2xzY9;tRoW(w|w-(C-0Y(hqp_yi6fGNX&>oTPTGrPuurKoN$jXn~B(n&W4 zHCQ#QB{iryA!ZVOXv@3?aDi_8+FXC-cPVD(+|jZouNkeQK_2Wi)m8V*>N%R5yIzU$ zE?d=`LCfx^(eK@cgtxJuy-pO(lt_P%={;HA6V)8as_->ZCkr~TQX3q4@4GOUCg(Z6 zds!dqK+rYBR3H}ZSQ^J1fkde2_EvM9*8Ui;w@4u`K9>4IV-TJNUoybir3FrBR8_SARPg-lFx6s5DK%N!s zWB7q74Ri$KXD$qSAgi@Vt;>f#F%XSd1X)lC>%l?gWO~$%90G$=7ku>l+rDtd`*P_#(=T~uhr zqsrxqZtY$*N;<>`u((shK*`*z>zs<{%%yPpXZ%L(52;zU{^Y@V3Gv1Z0cij`=`Sb9 zq~xTjwi=Jw^wRl!5T!@EC;lVJUmJl$m;Y?~QpbhV(x>oIzl}ra?3DiB3184my_+I? z1U?ABeia#k?IqF|f7-OT%#;^*|A8QG)fU_b5VGdgQm z)zK-y@{T4%d46R_Wii~T#QmS`>Fcp(^}tYi`B3E zFZ-I93>xlKPkp6T%WfIb|Js*7{m$fRwK!C|Y+oqTgm8`>!ZN{q?;Rb*%HD)_GuXTs z>z12u*Qna`i9C8_tXdDTzLPTYU38U#-{co9(k}c+}-$zO>pM8y<3qU{R|Qi91RkMpBmBxZ{vWagA~-$g`-LJ(a{kl$ln~~ zy_}qdIMPE2LzZ(gevXW$yDkvV6d%gX)8Ad~&#BZ~%6(iEJ*Si(GqXcGs4xrTC< zW?)qno`|OE14rG1$!+jRyo_Zm)#gsXsWHb~@85^A z$WTpq2ORq>eCZ+rB=Yitk5D9+47e{+0*mP#%vUkif70uME?I+c2jT!QCWCV>Z&GR* z?ti~V`@H%^YG{U!cJeh+u=V4!pKFl~dR&$88u5!o?5fHL1jQ08gh_SZhgD{rbRG+O z;!VuPJWcxT9b2HhGKUM#J!70~Yde3X&IOgaG%P#L<*@ayDsQ%9*l`ZJJllT*33q$r zg8RxJ^R4A~G{-HNkD(U6k7gs=8@2sBjm>vQb@|R_2%0^R*I!#IRSYJ!9KV zY;4FAHN@U(ia*t74bdw5%pO;|xcJC_ol@|`c^bhEWsJh&A%zLG1v1DgsJuPIj5e@*GUlKzX|5aeR9Uop`vtxEA6sEs4(AipvQ5LC8fD zGC!}bI_Ii9va_5JRJUVGP4D*nGDaA@6`d5as zS&R7*z2E`9l$TZLj%T!Bh(W-^=O4?F{&yJ6|67s=obLy{HOKC`|56*@JyqWN|3m)3 zD*Iprp`V@odvwA-5Rq5W(0Fyi7lYKQ%5-_AMO6PK;m4hb2{l)3@L1;eQ|`8=iR`4m0C_!^C_xlaD?(w(}6A^G9iEP6>B(u#jrRuP?`blON@JBc%_22(V%io`v_?3?J4e^*_Vb=qm7!gF?{1m&ONp!mrha&rKX2ADjLV?CZ3#yCPaj|6cj6`cLB# z(|FD`@{5y2NSKgeV4!-fbx1mSSjSQ=*3+8Ky~FBv=Unus&T6ObN^0O}suYXHP<3#@ zu|ECwRVU6PSs^v)-sw)mGM1B47(XgPS9f9qw`dYqmeocT1xcsyFP*MeIGe$W*Do5djU4GZH}N{>jGE zEtSCT+hfS*DOaT@6!i;7y`Ij12ik?(fD)9dFt<&|v$q>&>cBUlOb~PN;P_i8?yW+8 ziSt$I<%)ZM#wv{TwGKy1r?GFcqRJL{BuQxeg*zgTB?Gibz|Qi|{k~Se2)b5@zHj4|#iyffc|Ijou5rL%8(_2xyOG1b^^O~iD=T;j( zDQ|x|91~xZAhMHA=5HKf+AFM%AbhJKfJ)vM&s_E;9&Nmkc?tiCkhiQ_ET@&hOB}J; z7$#C5*}_1HBN=E*uR?t9D&16YVkcyyex#HZPu*bW1X6cwNUrC6y8KmGlwmTbI!CJB7oM!r_W3%C7&JFN1?lDx-F2}UAczFhOo1bp?FNy za$XL!> zk-rp~%zUx_l=B7Us7Fo`l_orqDX~#Wv%4wpo4K7_`#7MuwWl&Ux4n1ZWD$4wAE6L~ z7}thMa+&k!K}pXxU!J8p3(@kaOX6*RK?DXR zbZv<$c7r$6VtKNwNt+`_&*#-=6>KO=D~wH|HuhpVeb!8@oI=pB%SUX=aJqb?#Z>km zt`M2ROq=tMuWjzQoqh`!qfX)s#a`mopKfA1IR_jnPMT+8E;mATqbrdBfAa4%ISV$% zk?JYVapgU8T)68g*Svn+j3ETx!c?X~3eo2_Ykmj(Z4sq%Jk|OrbnoV#C;nH~!Lp@* z3oKzbfD2XQ-jb>5Z;t+;rjbgPmAe-N#%))_)S3KPw;!Nq_ zUMb#7e)H5HvNrs=n#}a0J@@uVXp3mxb#*9qn3Uv9BZfM5iZ*dFObP}b3tQk%Q|2Mt z+@;)a9v{Ks;Iu;upuGW=!a#1GiC<|^0F$j)~`O>ckv5h zJ8fPS;T{;`sFT~r8hk2G$iQuw^rOwaZ^gKO%*~T$%CDwsR7<3yVxeLtEroZ${e?iy z=*|1yH;!C)Y%y{M^}Li)(2_g9H;3*F@NwzD?}VEK|y(*-<2sxN2kEo+vw;Ie1~v?mu?0R0lB9NVhM=A%^a&qi~QcnO*Bb` zZ{&2RJsecj@kR97%PS^@briYT(C7(2SbI29Kj$T+#fKuI-apk7wsrRaZcr5tO{9@bh8qk%gz%^#{py?n)H8JQv z+@8yN0xHcKWSiBtG1rT@%tJyiYb{q-0|s`xj`Io$4UcuNN0|n2)0eWcQA1)=HwNnHfrbiq`h44JZt=utSJueq7cp6-$&P?{A zAP0REEgfMG#3A+=u|`Sa>G~=(wOj5$2vvCMb*I$)z-KIn^E$Opl2Kt{zY3aw%uy=c zgJZe$jzlO{Xl|6kU_}__piiGjlm7ExfOq`lj&L-$5o^&u^an11pbI3$H(WXslYP}k z%nRWUbU79hn4=!Upi${v(3|0^F=}kqF8iSW6G%qmL zs)p%;CRMq-Fr6*qgZNVYjHW?V7%fWI^k$c^eV;m z?;J)Nr;WwM0IrfFA$z{WMC56lEZf`t_th6upG&MmGxqFzb$#pmK#aHhkt|)-pW9rA zt+|ryB|@Damj3%2jmg4*Td2b8&nBxcCZA`qu%_2mO-jF?+>zSzmkgEoOO9H4{7}(L zDq)f}OY{x}Mk!rQpDiVOTCspNb7>~(=p9Zv@;+6(;YoX)AG$|FeF9eFIaCP5dpg2^ zJ%Lw4emSH4g=5<8teBau3O1Vh$h5qR*0SPS5vz?!s7n*VcIDJAjur%Kmo{{>`>6Dw zo2$d1bL)sfkIL(H(ajH(30UsrBIzg9+Vt$143W} z|DZO|xSCHPI_kd6wfI#t zO8I_5x=`?&Ih^M$dFM}#qp(#5)YG(wBJ_EYf+{v+O2pe$*F>SB_4T>`{I$EtV_Ha0 z-_zSEcgef=>*D>wmd!L5&UU2CRDoY7O&0Jg+m8kNP(3E@g?r$9#BD99cx|Y8(0u>?cx%Oj9?sy28O48&XK9BzpSHdPT)glerhGh%#{KGemVMhW9i5AC;VS zP}I@;??n-i6j(rVrMo317XeqgyKCuOY5|py-bIjFDQPJw>F!2YLK=ysyGwrf{m$H( z`^UX=@4six=X1{I%;!AwyyyKquVPfT3?ZG_&O6k{y9gToSe4NjOtRf~uk3zT56~>O z#M1sL5cP55?Oi=9OsWwDc;)z}3s007W%~auvuGIcf|gVGZ9)euMm( zi{VGTJDzKZbrN%n8?Idi3w9qmR&wS!c;}lH*lKfKrnUZ@O6-yAS#I&;=B%N$7%W-> zS9$al7<*!QL*!O1&k^@ERJdfkkzZ9L#HE2W!22M;2FEE8W#rPpPbcy6WSu|X^+g-B z(6ReX3l+rc0$e!X%*|>T+erfre(q9u@7;%4f#XI?UqBnray^TsYhQ+z#50EWb@j~v z!}(?|F_tdQVS5Uy9?BXxpCcnf>j1dq9s%4>Knf4_M;2&k0ONB|gcJB5v4iqo^%WoE zzd9t_@zI)t`P9G6q0fJOy*@*=(%mou6cItpH;fM>X$EWqrv^CmL;s2VQBTkS$>Je& z{O_;&?+*Uy;{WU9)QuknDXIPlXeXB7jk4kS9Av@owKapJ66AiZ%*KDa?j%%&ka^eN zMqy-2WgQ=u(Fb2fr1hIN(O%aO-7hC7j9Cxer*lZ zSyAI!IoT3{2ww{t`l0t)@QxbPfi%_w_bPTj?9|W*r-+>RZiSw?TM~&V*U>Ml(P4Mb zs)x`OD?F7JWAB9Nnz~9c!){H3CSX-~2NNe9=zfJyq{=&zpUr@&t;a%jHFP5v&F`A6 z+wx%bH*AEM=P!coZdYmFN_A)d5FyoT#J<}m2Vtm}xStHoVL&|A2tlm3T_0f_EOT7K ze2WYWhH~}r%<=YvBSbEw9Lfn##(FD0fcVy`b-3ytQ<%HH5`Pqv+K8ykobJ}Z&>AuY z6#&0M4m7I2$N(68#$C$ycj`k~4dZmk^HH8bGx+FCK?&&qd}6M9j?nTq?;B3(Kn4Zc z3>T#qL7TpGhOrx{wp+Fj>?~0`{y;+_!fa&VwFz0QP*_xApU%sU!A}fH01l0hAjEwh zi-dJ^wz(T8IBy`V|3*~9&ntjEhsBjK?;3^=T?F+_an-zwVL5KWTX)pWjXJ1;SwzLI z_#5&!d>IYTmZ=!XD_@}Kb|w|2Vl)tfvit132fZceedwkQdp@I?Ao>#`u9QGE-u#Ci zEpJy(Ow>uiXCKWin_gV$5y?Lnt|V3;1|{CdRM}U<&ODv=N*(9vGPwi}`ed?*m9x~y z%*L|0%qA}{Apc%&2tO6s#QE#=NS3zoM0a$QvK1}i&S4&5ef8^N^YF@_ zA!Dd*QnbS^pkpp1$=x*bsvWRv{9uGOTPSavQL7b~WRAZGOlQO6jjFSw9Yh9)9aS_9 zwUZL@BT4Ff*ChJG0^PMpL~G2kcD(j3OFa9fKdpfxlCww}U3s*EJac!lyuVcIR?Tzl z_2}jYz>x6=7lD81If?~naZ=AI_X3A%w4BOoQRV_vKp=~tJF5Uv+ZBkr@h5@{QF%tx zQ@oQZx&a7EhY7X>3m%1crrc_=c}lPfvbBYu-z}jxewS(pH|+xI_toCeZt|5$ z1~qVb|6=^$P4|e!vMN9!@v;!IU+{*ncDf3yeGaI9Gl+Ejw^^<9$)TU4qv zJnN>G3ikmfkR>$W+gsyE|4B`Q{MF;#(md!ci;(HeY}Ve?ix%68d*%^5#g_qe|?Iznl3d08W> zO_z3a_7_E?vFgpS1mI`)qUG#-ZAEo}1P;_uv6I{Cx1YpgD;Y|zheRlA=NT4n+Td(< zY@Nggrs+Wpx|Cst#(5aS}l_@^Oc9g zT)_pn`CQP9r%o~Fo`Cfim}MBW_6h0x=}JqNbox;1)3g_eKAOGaI_|E@uCl*UXmyD@ zy!r8{n9f(BK+NL&A57WW4^4y|hnIZGpW?aw1^L>r^h6Y$lo54J?`fq2sg6&WCk)_XfvAVGKRa0Hq9N*CU0J@s2mUvEl8 z>gAS?PRxz)kCwu#srUgCG9>T2EY=`Z<#*jC_mb`0+9hr;VpqC4dk~Z13=@0v2|h)l zgFoManj+Yf(gj{s z?Vt~rmi8@Ul}dCX*Qfn`R^^3CL?6rE(Qr4O*nyme3i`U8)@czI?@8?AS11y9%16-6 zRn6Dse()J%Ev6!`^@mubSiK_HZJ-bq@fp1StX{O&6@C4%=5U> zT-agBqQhshT)Z{rPXc)#vj$#2yN4(BSB2=SXM-D(Zb_tqPy$kcv)DL;8NUY1c9+cxAVCD1157 zvJCzHdl{Vs z#FCK?oAtM_ag58k(Y0e0QUaQ_mpRWza{!RO@&nG#=IX;`M8d=sETM6I*O){lvBe33 z!UXw83i14%LR~#5CCc08kNXLYq;X61J2Ek^hi@xTzg_0w{BlO>^DNjH7EOa&RTcWz zmn-RmTc(SjvXLEUoFW>{)Tr_(-jS$}H+CIj-h(*%k2t_~x+D$ki3<0y@JBvI11)CZ zo$V)A-wdB&P4{JX^FLzz4rYI$P1=t|T4=vXn((%I!u&hR!ltRGvcgkzM<<-+BePqD zGSl%d7INo^-c~*8A_+;q9Fq3|&k}?;HwE^c-|aj~J3OzpzDR^nJ3tv9vl5MVvj^lR( zI|!#}ls0QvBKU8Lx12XX@UK0%@Llu1-U#}L>yfiDtn&94ns|+~9 zolU!=*nr|O&xWo$j%fPk)U|gDXDXij5!4gR8dad7O+PG~Pr-uD*T<&>se88%(L#^} z-xTFv1KL_NS+9j8*+Fwu z^H*0QwoiGPM+!UhAWxA&!pPdk#+jzC?Hd}Cf29_%E%=CXOJvMD$ery2-Q2HfumX#^ zK~_rj7qBrI)h3*yT1|p}CMKr1IEYMl+gSHf1wRNeKo^u!&DvQLRYq>ca~mNu%~9

|#36)zXdigCbo}v@$VD-5X`ZGj;P$eps3?Z&X^x`Z?MUBeJ_qeGp#B3&&D|po zDxmiNlqwBLx5C?A42}s|ggQ&N=cNF+(s8vaWMBJ33xju1VXV1unFu|WGvOP(&j-`M|E0RI60q@mOJ#Yt-Ce@NX@nlzS9rFlF!M)IP-bYW9)P7L7DK zt&d!Vpy3qum81qC+6X1{R8)QGGUO(nT>e-H{$vSm(?QIN^x5x)Ng3|b%yo27T1CF4 z>Mlg@*E>A9RGcO*bjLPm+>=`OSGF`q^*R<_k+I${;009p05=+v^W(!Nh;fdJQe5^d z&M-)!(zIQ$NtASh(pI+Ho>e}bXnV8nejOXH5w-bB51QF2;%GI*J`keIcBf-dlSVXa zVOHro=0b&Vh*=Fg8=7;@IxmphBu$a>=hAClrF zfKA$aVzBzy)*`QcN)=myG{3j@E$zqWKR)G~J7dKF`>`>+ZGUKRCnZt65~tnDlnLs8 zIEqgpe?CL*cGL^v3<~WRzMHi&^>~Jh9rMK&|52>}+KL-nl%i5lk!>ADg;@VWA83Atze>R#- zcXijejWdC%%AGNcyez`s)IHmxa?(_M*;Q;ODiK|_dLCB@&DZP=YBHGO@%f3tBH7QL zRaFs$c1yA>l?%^UvzELDkjWRUraG|33W+=ZVl9aK3bnnLgkm~8E=W>l@U114R5<;% zkD9E`d-!wTKOQU!G-#^Es~tJ88!PF@uSaG6xY28u^?Nv|SRvu5xNNmRmWhc8z^Q%? zYU`H)XJJ44=Endub*d&9jFG-Sqdpwjx|XtXb{HEVZ6gsPMfYY@%8b~X8O1DN3&ms~ z)2qw443^LXdRQ;|_WVuCbYa9EALzY)`uZpr{*t~K-j-%S+rDf&l4krWA$ArWbLT>p z0ITz4^O9<$Tlb*#q&I!dp|F}T9UUAtf^iTvyost2y|~y%`+5lbz%;4j;^dt_^pNrT zgf(i2fcsC4pNY5}%ed#1hZAIEjJRQsUew{1J3A(H&w2631ZL zk7_kgOu1|APH?Qs55~gJri#nz;*Z|nu<22H&SG((2+#{M!58W~|{wlhH-b60Wj{nK5--J-n^aj}>{4Hbg`(9Z#kG z5DeVY78-)(_2%tG8tBS!m#2|*LPP@g=xI?eM>!Q&y#0*d9l@Da?5I5}2XrO=0nk`6 z>lkvOro7}Cu6;(h(|UtELyzXMznQDh+R{?k#tHS+0c;=x1gMg@=G(HtMt&(p%$Y{+ zMLyI6joeE4nV9{u&N4mXkJWbv#$ZFwac`^Rg_dF%d(1Q-u1TZK=dR5zcc3#Q){r2mIxo+|#{=68Y}$^N**Qd*U+K|@GGC+eE}jpF=aJOA5}e5Op8Rr<$i&Kj z&va?yNa(RbHc6aP2Rq@x`q?)qd1uyQ25MT2M;uuDfaJ08os@=eq^o+yJ`X^@j#r!N z8gc%vOU|u?^%zawzC6|izrM8+&%JcPP*bZk; zI*ED2Hu~e?Ug~DKhrblp_G}-2(LF%Cs_(&*p{<1(ILG@WdgT-;6?N{y{$}?om3imF zli`@y-kVO_8I_KhU2lg7oDu$U)T`XCO)!RoWjAz_Y$ai1KcfVxVDo?3d2$cA2H34udO?%YKk`65-8GA^M5PzyuQDy z#$1UfJ6^9H^d;%+AvZe1@Ug^?V+WKDc)henV(Af8&5=>>?!8Kh>FF(Ak@zkK`BH@p zp&2;2%0;?G&2+L>u;c?4!o&IOuKBL9n5z6%^g%=tph^Fe^Eyg=$1gJ&7rZJ zy}uSsPO1mmS}a_9-b=!X_i)|3HP}1}nb#ejnp8EfoF~l$G|#<}8T}R-bn;X(YRP)? zifX_7sa6$grOn94O_EL=7SSNe>57+%Al4() z4B%y$6<({wq7KkMT-mPwBImNuTlQ^&DBzx_Au85>B`96qEXI6g+mp#q-x^6Jo#_u_ zjjmxP{#EgmIfLeXH9L5HoIGuzE;xNUfe*vpUGMkl-Duh?arMHss^Wc4;Spb$sHK#F z-T|HM60_2P9=Du7IMQ#p9o9rS@s%!wg&zjPvBJoGc>OSA77ZSqe@wjmR7dO?yq$ zb-mED9?m&^_qU2C?k0t+Ut1``o`h_AxJiGT8yzdH=Jj#uwKDjXOhR{6fkGDqtWJFy zJ^PD$xQDV|!m%EnHVXkWSDX5D$hmGn)mZFi=$l~#giwWZ|7!jidzN|nu{ zM9?eXA^%1Gs2!R$5a(wlXhZ+eLgx!@gzf}yYKTRKRIm<8k3^%0k(8RO&tzDZaNV6P zpV(cDBmpM)P7JvRw^U=7Cers0<78h>cXnQkF2etd8Ow|&Disx7&f<^HR+Hbl~z$Az3j&&%q)KkJj&wh-xL1R?Pa| zSOy5F%5$J{-F3KJf`(#NDZnmUQ6{=yi-~5coCGymN?&Ml-?V?Qvav85)j zR-uE?K%-TQu_;rKT6YyLXgAB^LhjPJTxOF|Dl%NYXOBi?bYTrn#aszsf5aL6A=dXz zf>8cx^0l-5uGgo`{8IFV<3$}17Lv1LD|lZn^mEBU#zN)V`~2Mdx#wp_iZb_r1OBoC ziSGi1Z#p?z0F_#PZs+ca?U^=B!+FL2#vBv*3Shlsd(yh5ixfPT_>(FiVlPGVN8%uZ+4M8jnU5top6`unYK(< z`(mnZ@>ev6l8wtEc)FI}^_Ow>8;&f87Gn(6WC*6T&OgQyf8ha>x9i6jC1zAIRR9>7KX7NPlf zv{c|yi)-*m7l8~Q6;8VFUhC~2i^Yv~7%!iARug8lmnTz{V<}kzmtW zC1}w0P@qq}C1g?MCbZoO6;<|j`BHi#)fpUhCp0bb>_|_2_dDw1eQt^2V2@uyy*Do< z>PVd@sYGGpbGp3&Q}O*UM`Z6*XY{9%TBSN1Ws6 z{hMgaoaYaeOqAXKvQhqHVklqpcVC~G?U~}xcNNF8-;YzIl7VnA`u + class extends OriginalOrder { + /** + * * Detailed values for tax lines. + * @returns {dict} List of taxes description. + */ + get_tax_details_with_base() { + var self = this; + var tax_dict = {}; + var tax_total = 0.0; + var base_total = 0.0; + var tax_details = [ + { + base_text: _t("Base"), + amount_text: _t("Amount"), + }, + ]; + _.each(this.get_orderlines(), function (line) { + var line_detail = line.get_all_prices(); + for (var id in line_detail.taxDetails) { + var tax = self.pos.taxes_by_id[id]; + if (tax.amount in tax_dict) { + tax_dict[tax.amount].tax_amount += line_detail.tax; + tax_dict[tax.amount].base_amount += + line_detail.priceWithoutTax; + } else { + tax_dict[tax.amount] = { + tax_amount: line_detail.tax, + base_amount: line_detail.priceWithoutTax, + }; + } + } + // Handle case where there is no tax + if (line_detail.tax === 0 && line_detail.priceWithTax !== 0) { + if (0.0 in tax_dict) { + tax_dict[0.0].tax_amount += 0.0; + tax_dict[0.0].base_amount += line_detail.priceWithoutTax; + } else { + tax_dict[0.0] = { + tax_amount: 0.0, + base_amount: line_detail.priceWithoutTax, + }; + } + } + }); + $.each(tax_dict, function (key, value) { + tax_total += value.tax_amount; + base_total += value.base_amount; + tax_details.push({ + base_text: + _t("Tax") + + " " + + String(key) + + " % " + + _t("Over") + + " " + + self.pos.format_currency(value.base_amount), + amount_text: self.pos.format_currency(value.tax_amount), + }); + }); + if (tax_details.length > 2) { + tax_details.push({ + base_text: + _t("Total") + " " + self.pos.format_currency(base_total), + amount_text: self.pos.format_currency(tax_total), + }); + } + return tax_details; + } + + export_for_printing() { + var receipt = super.export_for_printing(...arguments); + receipt.tax_details_with_base = this.get_tax_details_with_base(); + return receipt; + } + }; + + Registries.Model.extend(Order, OverloadOrder); + + return Order; +}); diff --git a/pos_receipt_vat_detail/static/src/xml/order_receipt.xml b/pos_receipt_vat_detail/static/src/xml/order_receipt.xml new file mode 100644 index 0000000000..dd3885688b --- /dev/null +++ b/pos_receipt_vat_detail/static/src/xml/order_receipt.xml @@ -0,0 +1,32 @@ + + + + + + + + + + +

+ + + + + + +
+
+ + + + + diff --git a/setup/pos_receipt_vat_detail/odoo/addons/pos_receipt_vat_detail b/setup/pos_receipt_vat_detail/odoo/addons/pos_receipt_vat_detail new file mode 120000 index 0000000000..228afbefdc --- /dev/null +++ b/setup/pos_receipt_vat_detail/odoo/addons/pos_receipt_vat_detail @@ -0,0 +1 @@ +../../../../pos_receipt_vat_detail \ No newline at end of file diff --git a/setup/pos_receipt_vat_detail/setup.py b/setup/pos_receipt_vat_detail/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/pos_receipt_vat_detail/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)