From 4019f043861bbbc4208572bfae05f265194f94c8 Mon Sep 17 00:00:00 2001 From: Loredana Perazzo Date: Fri, 13 Jun 2025 13:55:34 +0000 Subject: [PATCH] [ADD] POS: customer credit as payment method task-3090872 X-original-commit: e95d971d1c5ee5a8d7d13eb54f93f6ba306c4d0b --- .../sales/point_of_sale/payment_methods.rst | 1 + .../payment_methods/customer_credit.rst | 107 ++++++++++++++++++ .../customer_credit/customer-list.png | Bin 0 -> 22256 bytes 3 files changed, 108 insertions(+) create mode 100644 content/applications/sales/point_of_sale/payment_methods/customer_credit.rst create mode 100644 content/applications/sales/point_of_sale/payment_methods/customer_credit/customer-list.png diff --git a/content/applications/sales/point_of_sale/payment_methods.rst b/content/applications/sales/point_of_sale/payment_methods.rst index 20dc83db57..c0af09608f 100644 --- a/content/applications/sales/point_of_sale/payment_methods.rst +++ b/content/applications/sales/point_of_sale/payment_methods.rst @@ -29,5 +29,6 @@ under the :guilabel:`Payments` section. .. toctree:: :titlesonly: + payment_methods/customer_credit payment_methods/qr_code_payment payment_methods/terminals diff --git a/content/applications/sales/point_of_sale/payment_methods/customer_credit.rst b/content/applications/sales/point_of_sale/payment_methods/customer_credit.rst new file mode 100644 index 0000000000..5294295f6c --- /dev/null +++ b/content/applications/sales/point_of_sale/payment_methods/customer_credit.rst @@ -0,0 +1,107 @@ +================ +Customer account +================ + +The **Customer account** feature allows customers to use their account to make purchases. They can +deposit money for future purchases or select their account as a :doc:`payment method +<../payment_methods>` to purchase items on credit and :ref:`settle the debt later ` +through a point-of-sale transaction or via an issued invoice. + +.. _pos/payment_method/configuration: + +Configuration +============= + +To allow customers to pay using their customer account, :doc:`create a payment method +<../payment_methods>` and configure it as follows: + +#. Enable :guilabel:`Identify Customer` to force the :ref:`selection of a customer ` + to allow using this payment method. +#. Keep the :guilabel:`Journal` field blank to use the customer's receivable account. +#. Select the points of sale where this payment method is available in the :guilabel:`Point of Sale` + field. + +.. note:: + Set a maximum sales credit to prevent customers from exceeding a defined credit limit. Once the + maximum credit amount is reached, the selected customer button turns orange and a + :icon:`fa-warning` (:guilabel:`warning sign`) icon appears next to the customer’s name as a + warning. However, this warning does **not** prevent a sale from proceeding. + +.. seealso:: + - :doc:`../../../finance/accounting/payments` + - :doc:`../../../finance/accounting/get_started/chart_of_accounts` + +Payment process +=============== + +Deposit money +------------- + +To deposit money to the customer account from the POS interface: + +#. Click :guilabel:`Customer` and locate the desired customer in the list. +#. Click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon, then select :guilabel:`Deposit + money`. +#. Choose the payment method. +#. When redirected to the payment screen, enter the amount to deposit using the keypad. +#. :guilabel:`Validate` the transaction. +#. Click :guilabel:`Yes` on the popup window to confirm. + +Customer account as payment method +---------------------------------- + +To use the customer account as a payment method for a purchase from the POS payment screen: + +#. Select the payment method :ref:`created for the customer account + `. +#. Click :icon:`fa-user` :guilabel:`Customer` to open the customer list and select the customer. +#. Click the :guilabel:`Invoice` button. +#. :guilabel:`Validate` the purchase. + +.. important:: + To effectively monitor and manage the customer’s unpaid debt, either :doc:`create an invoice + <../receipts_invoices>` for the order or install the :doc:`Accounting application + <../../../finance/accounting>`. + +Debt tracking +============= + +When a customer pays using their customer account, the purchase amount is recorded as debt until it +is paid off. To keep track of a customer’s debt, consult their customer statement in the backend or +their profile in an open session. + +To access the :guilabel:`Customer Statement` report, go to :menuselection:`Point of Sale --> Orders +--> Customers`, select a customer to open their form, and click the :guilabel:`Customer Statements` +smart button. + +To view the total amount due or deposited by a customer from an open session, access the customer +list by clicking :guilabel:`Customer` and search for the desired customer; the amount due or +deposited is displayed next to their name. + +.. image:: customer_credit/customer-list.png + :scale: 60 % + :alt: customer list and summary of their customer accounts + +.. seealso:: + :doc:`../../../finance/accounting/payments/follow_up` + +.. note:: + When a customer is related to a company, the customer statement report might be related to the + company itself, and not the customer. + +.. _pos/settle_debt: + +Due amount settlement +===================== + +To settle a customer's due amount, :ref:`register the payment from the invoice +` or, from the POS interface, follow these steps: + +#. Click :guilabel:`Customer` and search for the desired customer in the list. +#. Click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon next to the customer's name. +#. Select :guilabel:`Settle orders` or :guilabel:`Settle invoices`. +#. Select the orders or invoices to settle. +#. Click :guilabel:`Payment` and select the relevant payment method. +#. Click :guilabel:`Validate`. +#. Click :guilabel:`Yes` on the popup window to confirm the deposit of the payment received from the + customer. diff --git a/content/applications/sales/point_of_sale/payment_methods/customer_credit/customer-list.png b/content/applications/sales/point_of_sale/payment_methods/customer_credit/customer-list.png new file mode 100644 index 0000000000000000000000000000000000000000..c166f2ebec1adb43862dc1696414483fd315c7ed GIT binary patch literal 22256 zcmeFXbyQr>wk?bkJOm4F!KHDR;Lv#E?hxGFA-F^1!D(EA6I_D?ZQPR(+=4qi@;m1q z8Q*>HjXTEo{yRNdcCDIg)>^Yx?XJDMqg0e+Fi?q5VPIe|E z;T55eFCQpQvO2CXFr*QGUa$#Urxq_@B5QSRH*G})0W(K?RugkaQwvrvd#4vP42+Pd zmy?N^t%VzfsfCrbgD}-edp8w@wYe~r7PlgsqLYNh2Wwd$7Yj8XC3Q0&TQh!hDp3(s zAuoX!0(%QL6ACYTI|o+*FJY>`cm-aL|Cj+(6n{b7Y=x<`6;&uC99=9ZxLCPZ*;u5! ztUWlWL{KS&T+A&6K$6mbr+8@zQ+;rAa}odmJUu;GJvmt&U914?{QUd?HVyy>2g?hB z#ns!v&BTkv!IkOD|k3SMvS=&4P<@F-=zaibME&nOj zzs2^a=dX1BHINtgfAIbr`oD7j3;cpoR1}bOG;{wGo}8pG)t~VN%pJ|F%?18Ch2&Vdv-O<7YE9wJ_mg{}(Db2Uj-}2Q!O5R4?SL)-OC3 zyga6s931Q~j;5R}T)bRdEGFi>94!2NTx{Hy+`Q~;{3icGq3mM)Qk5ol{~FaFD)T>7 zW*p|0F9peB&c(;a!o|VQ!@|e;!feU+=fm8D&5YafFDi300cl4Udy|*xw6-^~vH&)lgsBv)9o)VC*`aQ2Z=vR9@<&Z}UT$6}DvKOs^4@%*d2DTMwuDYDkCF9`2H7612|SF>>bTkCI2z|Q)wE((gj%2vR{>~Dj( zns`{4|25Ey-`~2-KA1RIS-h<8zZcYh*{%PZ$ui^Mzp|mA|4T}Se@AhdMi_z{`_^or#S@fQ^j`@b`oPe^&K>Wh?~v|7arg7vNt`122Amv%Q>NUd~p4 zf1IxVuGt?M{~td7J{SKFM|h$B&mjLJeg7lZf8_cfDeyl6|EIeCBiH{(f&UTsKh^dB zn_Q^>yx_5Lc-aMczFf{o2W8B{z~GShyj&%LOgt%^TpTT}?JOwVUbgoX7GBntFfd-r z)mc^^B>ZV%&t`ZH2(8EsB#W+=$ejO-w{ntem_4yzf8Klc)CcRG*~)mNzyVnYa44h^T7}m3EcR- z$&J3gqzvD5`84=&Ng&*9Xm-yvn*d_hD1UKR;48eU@ zG3ZL`*RM10!$~~eR&5H^GBKxRY&zGS(SDVRzA%yJzG_WAOTQ#_s4{mimBwF4x%%{T zNVkvE{`#A61GnXRu)LWu8|shA?zOyir&?V~gu&$52(17!_0Kxt9Hn{sX{k}3Dn}^4 z6HX?LMs2A=OXw@51cGyFDNDk-6DfqFl=MGzbfE%fAIXAVvp3acBo4#qppA&5bbZy9 zph%2Ez(^xgi%&sEXlT_jA7j9CnJFyUP9w^dFOm}R@WaeVLXoG@aFN(Zs`?anSN=s+ zqCeS!lS#8$r$rSsG6-a7dW9>a$lY$!G^?w3z(x9npUwz5rbBHq4Xy|iPeJz6I ziYZODD%@%uOK6qlot14dzhs$brYgb&(6gAE(=;+0%Hg@G`&QF_)HQ?>0TQ@fWGKz` zxFbvlwU4a%9i{0xwm-%vRCUhWtz46vvvf4z=PB&<-6e60R9_Cg7IQKkB}9o~MdmO} zg`>=N+14B8XLKFSJV~ngJWQp?zamCR9eVrm1MkCdPE2hqqwBNAy8d|gFP5j$OjqC< zx#jV7hkt4l3z4q!S3`rc{5#3(H36;lbWiJ{Vy&{hbtJnB@3nI31>XbII}Kwd>PF`Y zvL^E8w^p{)*KmX8JiZUH?mM~}wQ1VNN2RU@9t#WYz^DxSLe(%XvtqI7o0L@(r zC%@0pqyZ4;upx<(E zI{NLpy6P4sen;AuW>;=X!8$gwW6ljY2CHeua<@8gjknBj9)T=oD$9LeO{fZM3Ttuq zS-NYMAIIyZ?u@le$4$njZ4C=DYK5JA(|;~b#*GMH3ww$w)hcx1$mxPd*~*qOY)#MR zqhOvHhF*Px_Id0P?_wVN@fKH&zf6HaWqlBw@cmQ|2C?0;`Rg{C&pSO5fmsU z-LIOluDh4qHQ}Mp*$!Rk8`&~j?Iuslu`(yVT&K<#hv(K6=3T(}9#qmlQ69p1&$j!t zo(~q!v8du)cH_P^v}ueI4Bp3E z_gAHmpN=x2`rG?i(EBh{T9wR#CVfaBi4&1hRu$!BVy#iWZu77~4}*^_+(`BcvA#cD zDsI<$^F38YVCr;>PdCkOyI}c9wibD_CFv6@VtXLx;`Jt3f6O5nQKMSkPsRqlwO!QW zuZ0Y^xcRYen&c>*Nt!eje%iLz5mh;3>RWa#`+W4Yz&^XCaA}r)CxPZz^dq_cZ=U*$e>VOg)~a=kL%AowCMga zS-7pD#&ac8=_{2y+4+5oEVjFy6hj6Mv94=v1x<@9Wb8yt*(|F>+YF2Gt?ZHro+a16)EKl~`2DW9|?gcvn`#!o(-nQlT_CR_JF) zZc0osZ6)XL*#h5n2vTQp!D@JHf1+t>u9cJ?c5TvmL>Z4OQL>F=yHh{-Qcm`f+cJ9k zObw7hpEh>3p9Ra>BpFuYPS4@Np0r}3ge>DN zOa0+!G<8?E{_|b3+Z}s{Y&R*myaDK}f>&@fsL07-%VR2vV~+#>9;{;(5dqZiKMo~C z>y$-Oa&f}2(0gqS183S-WI(Hfut&^6gKRo})|_hfJ5?eTduZ#O_~+!HdOA*-cR#99 zqtt3XylKS`*i8afSu{1I;TL_EY?K|So(Z_OyQ5;i3Vwqbrb2S4_*mMJ4im<>A2CZXUfl=Fg)$c+nMs$?ptahx{_^G{by+Em0J zEO$;|DMM7a!XAXL%Ti~NtWaeZZ+-AdNa_2Qpyp6oQ$&;>sdf@qPDsR^rHdsMXfyT} z^8z6pS42KGh13T({2B`89cpwGG1_CVA`9yo%<{>~J?Y^)^uV96D#LBzJAPJgxrI~` zf8nHYlQqNfSO?Y-(JOB6_Q>Mv^`+wrTfk<6q^5oR?Db0d$QP?W33ONxa@n8R0DRo z5O$fT!)c`L?st*U8Z(^^@*DHS^euIejCLPdvsStFONwfeHrOFPU-&Jv{ zI%d-;tKKKmmOCFWWBAE5jP>qEzfjO2{2R3;HdIn|zwi`-!9aZMm$m$A6&pu2T|klOIl(Ll}NDZQ|Q>Y!q9%}rPo zYOI1U!n6lToV1K7-AGwC`@mZ6{X^L>?!G0CxB&UCb|+0^F)}}|6q9<7w@E*}SgCk1!7UHw4tUod8-ZA zDV5zTVk!=4#DsgfsW}(|3(ERe9Bc1m!zBPHn$iRr`E&##QJdURe_T!~SIO{VWV+APo_h%Z@!^axrjm1^Q8W#iI(sHG~H2@=-M z!^evB)?9U8Q!*F^;T0bWP^(VVX<&VgkB}> zY<0z4Lk1@||Hx>9%5I1%*ZrZTmK+|tBmRw6=>8$SSu|>#lhYK!DSafxcO`X7fB1Jn zBHZ@I%=%5izHNZnxO?!8Lc)!CkD$AXCpJ}r-2_E!QV`16B@2lp3a2k((G)GVD|#|? z*`MlDncPn$d`3#-T$M#I@rA^t#_QjZFLKYlNOBqBG8tFKM{TgvTsMr=vB6EH6SIv; zPjSlvayl=8Kjm^f%7H7-ubJ3f^RZi6BeH4jU$DL9{RF<%&1n#L3Rh*u%Jc4yac=)WolS* zcO6o;>@sqLDDCSYq(1bwV)Tmr?G>Qu5Lr(iRLq`Elsol-Rb|R=-CLOT4k4L9t#k&7 zI8%w|o>-uK*6@A}o{q=+V>kz#Syd+Hwnkrb8?TJEu#6Gg4vsRlo$$8lU8tntc7%W^KD!RCw zU!)vg!>~96nyZvPN9o9nCm|SrtS`_K;}r*7hBK;Kq-<_f-Y-~)#Egafbk4$I(|Ct& z3fOnU(+tJOHw6(B8BYsqbJ2HGq$iQ1m`w*wbGK4|)9DQ+dt0zmHWbuco=BU4lZ&aS zDazYNpkuFRKbMn{J1?<_SWSx)MUG$U1#ZjM)c1 zS@{vrlJ$YCC?X9r^saZ1LPgD;^hpVuXuv>;G}gO3QMM5&nGhwRLb^yY^Xb(E!Qz&8 zctL{}+o7E-T*R;Z;%s-_w8QkE-M727l6yCFoe6<#k|-NU9Aufej5x7`n5FN0_flqG zy^T|Uwb+%!i?CEN5&oKfH=sf%L6#~gL}&ofgOs|3IRQP)tii619KEFK(J}RYkP$lp zysUogFlrXM#1_==j54?*ph7dpVI_=6%1nTGEfHs}^@-9ZBT?5tm3DnI4>0Ni#pNqk z7pyNqpjO`HAD$w!=V~D%3<%X3yKGW#&JD zjQ%?ee&>YP!)OO_EVU|fWB0k@ygK%xNT{5?D&9U3N}Iz5!iNbkd;K0m`0BH))Q-8y zwp=TZpNI{ShxGjs7|VOTi(OT$0KYd*ln|Cw<-Lr~`+$?dx!1*%t@N9r0&l)tCCw!E zwj`;>_Dl-lMwY!Y-enq9`5s$Nf2d!?>Hda14Q&9mb#!=xX$ zJ@XSr_dWMKrGC9@Gdv0fg>aez5Xaz)^m@kOb<3hhl$3j@jVse6_Y7K#lJd^sI(CLL z=w+82;8=Gk*UZt{C`V{Shc+c&@keniW*%NlPmA;YBF+IZ7x#~bVyeKUky~%T+YP#W zMn)XV7LX8EABBHU%WfsHJtF=wlt#f-K;jmaI~e(w0IB|7j!N<;8sLfC+spij56s2i zv0s{O=r;i&*l*CBmVp#NNl&D|>8{DGbcNrY=ga@L5J zZ3;FzT#9OS_Ve3?#XwAklrn?Mx8%X_1-v8YvvmX1Zxo6Ldqbzv*o@v-hp}z9vF^np zge9n<5{gIxR6Wi<6WbOy6f&d@g};s^Ud&Gp?&A_p7vQKxU}vRsO~6-4hoUM{d}qgo zb3yoJ>`o^u$APWsubCsOBBm}Xthcf*Frq`VE0jG7X)}TS67V*g%VYEK~@+;(ZG1JsZ&T@ZVdRq%B__I_o1ufz8 zf%TkHe!hO}ag@Vy(r=la276M!!l`;C-l?JAcwq&;#C_;i@sh&=lv8GQs?l>pe6mfg zJBlO%dXyUy$Tw~{h;?;3(`70!8P$Xa!L^VAWxb2VeA>^Yi>-3{mQJVvFxlc{@`2gC zT}!xCsr~aP=M)$Dljn4pK8)uiyec+g33owJv~}OyYW8K5%r`%$lZ_i_zcKO}ohA#$ zdPG5uh@;iUWooPJf^%skbN-g>$mw7_uJaMI%NXz;s9QR z{-oz=_Ccoh-;@HBd-?swNVuC**y?jJWWJiar1nSR8rS4GexEwd#}nF{e*3Ipr38Ee zPy{HVqA95J)A+gI+WbTyElQoQd{x>18;nS@XHt4|-WxvdFB~lCw*o7J0pG>|E87XD zq8XVKKM#Zd6E_dJJ^K5r!uGKFAj*r5df4d56o!x<{N4^`ZYg0IhAR?|)@ug%7_{^)G`Ys zy4|QYr}!PGb-jl6{DHy)W*}ws8D5<0C+A2P zJ2eap9HEMWy43UY^W4HxPF_iIX;uH=aCBVi)6*07Te`*NH5CnGaalDg23}HXj^Dpe zx3+i9teh=v-I`iDuCH%u>s#KEv&=6p=NFZ8@=I&!Tj3Hj-re0TF0C4wJ3Kr*zC7ZS zGVGmwzW>;yVdCFEI1+rXczJnMQB}_X5Pm~QKQ=M#<`v8%Bx~d7g-62lr{3E`Gj&5$6{dgI`D2H-7Z?4|Vkn(6b5wRrFLfP54BBd4*+3soBFL;}cUe zEL>u@w|6_cdqk7~K{3VqhliEb4QKZNIVBx#L0J+i_S4fd^A9fH#-}`eKQ1k=F|muB zoSdd*=Cg8(w{`R=sTt}RTDP`!iAbuft$%m*4AL{UjZH|0&ddjdLsX~;rOJ?Y&;T$kV*qnJ54={ z%d4x>@>)n)_2J=hXLmn2Emulf4ml0y)zx)fLu(>98=RgiETL@e;3=b^T~_f~Qck0) zwo%u}y1RF95 z3MLkg((+o`1|J%l+TJno^$iTKu5GNWec#;NnwedAFAWlvQq9ONOwTIF&Mju<5RHgQ zF0ZU>Y;ONx@8RMRsG)0~kdo!(=Ko`J>*?v)cT9u~28IGgPEt(WYxyweR&Q38Xb2u@ z9g}N#Is~J^B@zy99fOR7O2#)xqB4%kkV2pbbKR@=Gh9sBrk7weHC4^#SgYVMU*M1V zBsaRfuV_9_KkjdXi<8|nAfSzw^=rjkWGUFc{=D+vzCCR5!N3^ts4&17bpZblxc}Dq ze{XzEVKLWk&-pa@v87WlHKYL1So+4*df@5k8Y;@(0W$`}k110|4+*!kpYF!?hv(=XM(;z;QbcW%;Z z>Ds0PzIfMEUcAe0lJGNb$E@$HAOw|bbzY*R#Kwt|Zu`z1-VRzxf*?|TSKDJFtz5bI zO8$&}jF&T79EWte#QH$u;&IZlQp4uGE}0go_c$8w@0UtacYVKLDo^Lq_LZnf(s?t` zr621l4T(TPpx#Nsz&*3dMTxp>=b+tYAzfD*AE(W%a`h~J&>RRqlDuSBLTt;$VHgByRp zZ2#k!2v>K_DwM@TPov3c&I-OG zUe;$RC9h6&R(DKjw2{f_a66IFX^i`3SJ~*s+G@A!y;hep>| z(b(>vcdk40u?A|Onh=sG(&OWW26X)BnC3;KS(YC)rIu z%1^bXPfkOS&eO0|uV0E>q51Vg-G%GLD~oIv64Tt3^4kLF%iUD`omVTOLz>;}639>c zDyi$y3(8maYyp5WK?^nOx;G$=dIlCJ&M8DJCK^J-68P@URD_wycs=#~H4EGt05)SP zDEG{voj9@{b%}=9+*=Ox*;0|vA~1~N7Ox0s7Upa-V^9tXZ7F0Or^l!H82^pAlIyCD zU6vs_x%vcPMaRRp6(DExHZ_ejF@Zy`Vph5T>;^@Evbl)nY$##Tm}vzga1NL|!m=hN zx`&xM=&uS!o{zM^Q+3O@{PMm{<5HT}1~rx$Y~r#;crF1^kfv!immv1Vv|14UDKDWK zX8_5qwrg*V^Nv)X%$<9+62R#Pp8P(+p}2W|_c4uBrM#N49GW+eb&AM1Wr(|!ThNJD z4z*42syjKuP+S?nH&Zn8a8Eqww!U{LU^IY8+^SW&!3yS;9lpCuV0JZdU=$I4r!m?Y zc)CKaEy#fCx#3x3`!mL?t^nFldeXkQ9j%|XH_}VnJtn{M)uLHrSrT_<-roU|(N8Q^3#cH~6bdU9-_ z?$Emn_Iep%JCnsRs=W3wfy1%ajBEP$UF~Z_gTsO=6jVBZ`!L{Adsa>U;`sCMBnx-j|^ycYI4&h%hn5ug& zKho<}o{da2_LmeZJE7%A=q=$iXH``(%b_x7@PP5hz9~d|*__kCTPh9zt{8ojWn)g)#2(V0|xHh^)jGK z*>ZpBOTHOy1xSx6oDXl1W+Q=^(PCMdAie3;Z9{46h`M~L8b?6}ND4#9V3?$rwBzCH zZq3*!W8LjQdPu+IEk||IIWr5>cGsc%Cv4&C=oX&Cb^HUd&=Sb9kI*+pe|m)yg@<7T zCE0jhg>gxabxN2(b#i2_oP&^SlkAzsN2*sE@|I8?APTKMhMQD?uAt2 z)j&T86Ud5YsOy?{)oj#&HbYD7DdjI{{27eoackc)uF-Aoq81Dl_3hX&vNK*s6}1mE z#Ym})@89{4l1!k!GgOu#W1g%2(C7l+92@k6uuo2=~7$&6%$^U+O3(}VC!S%aR} z*OA;~g;23?=^xe>?8)I5|HR(`^fy;NUDC}2LDC#YmPN{-#8oQ2R!f*`jC6=yW?^h>BUc?T7Rix2_Nzt1ERE$8OU+`#nNJ0baj3<}FKd3n zEuyq^KXgZHGe^*j{&UDSvSx4l9@sIkz(98U!&Ts6&b^k}5dIJ{Kb>!w7B-daE-HWk zA&H*CxN=zSOE@oT2wb82h=gQWAyu@g2D5G@xH7*Ct#(eY(*Aj1A~*9~foeSh1#SBt zK6l`Jbi~i{WT}BJ8-AnL!2QXaXqU!7G&P%A&AmbwCP8DiudNg}B3{>H-g!AlhRqFX zHjuQg$1q4yzEQphrDPkAM+Di3YB&LHXB3Q}IHe5>0jY^#Ot{8_cKdoYU{>pxaB_hV zR?J5aZ99fSK7oFJO{`1np&d?3JZ^djVp@q!`{pY(ACmX--jAu1dDdX4W1Tna$05Da zI3{rwUHI#Z)lMx+$3pUsyHC9c^8Di49m@(w45|Wa*0sbIkoN?!MMj?q1cC0$L)4<#Y-g-AAD8;qEz$2j}=JJJqr4rgp06ptKE@s(Qe}o zTKx%H*JyYl`L`9wvGC$cxWsE9sk5#X13hVDg1iKsDn0|SdR_H^>_Ze!79&);{!&I! zUZ4qTQb5_b zw-RX8w$zVF9F2zo9+jes?J-cNsej$px6?wA+k1N%`te%5Spaf>8tSC>n*-lCYU4?# zVMyL(kxIldi7i2{?+Kv*Z0H-bq`>PRGTkf~?-uK+dT=F#x4JY<|EP)fnj0aCjC3~t z4R~J;BGs{TiPBxK={$RK=9@b@12+#8$?Eiwrb~KJ_Q9M2M;t6*B4eoR*jngh8L%x1Wd4 zDWO!|f}PFK_wD!K@AhWZtXe6OjXGqr&P`c0-Ew}}FLt?EiGeX9@ATY8M*O1kQ=zKU zI`h{qK%7DSVGV+!#;hwlk{&eIEBV?FKNbqa$V7IG>_|M_NUa7W#o4`NVndHV_?xT0 z?^?7^nl^^c5k=N1&CHX1T$CXWg%+GR%ceSeh)zrx$zZ`Pe04K89?Rz`tXoyG79f=@ z!E=nC5bB`Y!Ll^$mz4t|?SuHFde2Jwd+%U2q#3uJA&uHpF#dLsi z31LseV~!2Fe8mkH#C{vM6j?|a4qgGPmbvBY9@vxvuSD*Q!c@O*dGz5|1q^Tmb4)Hv z@oTSxV~=YT8|2ttMf=NpJr5G~cg|)Sy$V8)$yWO#edAnD-qm1CtoNIwyw-bfSids& z$Y9BN$>&WF{%GT~#`;ATCQkl{nGSrztU4^Bpsx4xu|GiwkqZY?g|76NDQOS8I>GPu z5|x6O^aqZkF>1OIdfeqxO++`dt=!rUfEV6;oUhx#O@` zd&<)X5;<34Q z`}9gLZQUK_Y97)u=G{^DZh50sJJiE16REBt7)-lM`90)g(9RnZ;0XRcICi6^;QA{L zk^@{|co(d50{2+$=dDu@5ZUH#5;8yJ@&e~8G(mW-hk^8K)uB3_zngNagjw`hI@FBl zL=!g}aXkdOd4V3f*hR~B=s#iWQ@DVwy#KA^_slsYF0w{#fC?a<%g@R+63<6;qYqGq z#a%yo#Sw1c2u?2O9tf>`9oqlHXaLoR=Vwc8)Ck_errF|8EG#2+xN<*tan=BAQUOS_ znod1Y7yE{Uj^M_mAZ_3NcBMAGFirTEu`pUeK=iLuAaW5G;8&^JPNr)_CVxrG>HtB# z`TZr|ET%9c?&LE7g8-Mr6g*)Iu79o2(c`u74#kfZy9E615y!vyN`#$(D~CSU1l!m6 z>Ejz1qwiT6%@KSOt7>%m)6DuN7hdJ8s^%*x*EjI=iQ|58A5Jc9T$zY0IJrYti5&2Q zbD&r^>Y#h=SO>aAdKy9R#kI-yx!WQgv^&8CU#Q1BGwI?|WlJjGO?P^8u}NrnD<_}zdM71VkH&)!U9Uc;&< z78E63yocXm26 z>E^P$g2JdPQ@<_FcfMk#c zh>?cI{twhGm2^};FKAYSmLWAcnh#=ocL4(ZlLq()$dC#K%1LE_GJW6CG|e-loLwEM6=$har?WwvLV6DKcwfu#vc zeEb@D{9@O)7e0a3@&Z+0cT=y5i+N}vFnBsf+gKym6yW*&~$i2Oriu28g`>Y zXke@l3CaL0!Czbs87s8NhH2m7c?0`%ea%&X;mEM{OY`PBz^xp{)ln@jjzU~1=c#m& zH6JT{JK zZ?N2OD0x0h)MQu#_GDv2#PJ1Ay1(&CPw#m$wtpk7_m&HbfPS7#mkxfpB0LzJDmgjW z(pu3Q-}q?(i&Qr|!5&0D@p)OXom5q+S&N`H`RA~)1?X!nC9^h`<-0TucsWZk@|u}t zsq&(1dY+YFJSaLJ30mZ;DdK>t_Hs2*%%pietc|G8*zX$@rc_|_Zy(ml_-|J=tXE5j5I1$S7~$%RiO(PhYYY!UI?w5DWa0WSxv*g9=N+<4 z`XkHnfQ)r9tgcVUA9k+r#tqS#kR!pS_VwhM7NzTZmD0`E{QDut_Ef*HoBA;v!k2JK zCw;m~h-ZSQsr%4=4hmt@%!iPWt%z&?5E-VaT4hOly8|xN$jk4a)2%x7jDL`PHhs7M zDiYKT0vTmMKj)Fbwhh%Ma7-(uCAru;oWuDW$UuV?181iL*V%!db^Y(D@ z%H3tlDOFdvZTV>=a&~Bf%dtD4NRa5T?p2V_=~sr$slT%BGclDpAZ0+Ze&`XuhInY51o^0o~ zCKcb(I4nY~VG$8e7lle)#}ckN+^su>AmNw1wyPskpY2RR2Vkh;Hm}fZ5lP-;hK9Nl!xHNENxa^9 zl|P$tL2i59IH;SjM#%VuAG$Xm@nRd09DbFJ9un?3#z!zwe0OOE7@?(Y!lobO?YhtI z^bNHAsl5p!BHPyvD;Y@vNA|jmii*Ms&PzwX7!!=Yg_VO z!8_xEoga%8)yU6%=M!TNiwHR0A4!t@L`8=UEdh4h?ShWLw8&m;A->^$etTu9Q%^$kv;Ly#@wpJJnAWxd}F0rm72=3A1ZvT!jMW`{a7zKX2y6qA!pru+f}+JOEf*M zx*_~SdTLxJ4p`ow2GVI&pXmA(g~~6|VJ$hKdBMFdfe{)hyXU~Ksk?8d>iA)Pm}VvN zA|fE9R9z^Mym)QyI94N13RR&z-E7b2h`BC)x?BWB$jN(?rV{H3RW%obk3VUbKWb7kG()19ea7U=K=zQDaDkct_m36J^Hu!X*5diu z`}k>7!LKpjv*mZHWJ&=LlrFK|5QN;L-}YHE(L_ktNuWAV;NZKXq*~Eo{^3(yhE7pB zNZgrK9VQi?=FqEWWp2C8JcfN@Kr^5keIR=Ts8Q4+#-oL?v^1Q>fX6gWJfivN{wa>% zhX>y%I(RD+bh|Ke2A@XLr0+A6Mpcrd^vK^SdHFF#Q#;0iKj%)OK~8C>k^gu`vw6l{ z9RsfEOlgk580aO=GIFfl-q8Of5>@&*iToI)TepMLId#14G7cyp`{*Z+59+>|7*mvlQLA2;c7}>q#HUA}*tRv#Gmt*Kk z=iLFi;MGqEe6gEc=`44o7G@$8(tbZ$WgSZb3%Xl6B!gj)0>UPOVBY_EFUEyoKzt8O z0>Qi-y%>ve|1@D=j5k7xL_Z!H$PLZjq`x%|E{Sz|Ql?##Mqy>|f!iWNF79wZk(^RdAwdX-LKjNS2#yN~9Y zloilZ=tM9%3-A#?u!>%5ZT#Q=KJth{#5N1n%m`i4PLiS}=s$W97R<`2rbW2s&&VS*+K0pukHju~7?&cU$w zt90D4wk9jLNd50OaE%LW;(ktgoWLX%3@^U^+UZHm`A3>rn+NJx-)o|jKMnJ@^7hwX zl-e!pmOt4X)Wy9e*kJ6;S#)1_?DxC(m=W)I>llObj5y{Z;5atXbY5^UH%nUTs=a}n z0}CCm@AtVn>gIr|Vu_Yfxf%|Bk~}9ujk-O$@!eP`8-ETE8T`oS+cihr%MeG^&QNFL zLF>`N`g6|)iiRn@#G`MrQKPE(itCD;*Q$8eN{acr0$`jA`nOa^fs~UbAA0_R?IaN`t5a&UMbZ1o3_vs0PVo~ z5Ms91_>5t(n*-2#M$Vnx%pVQPgCu7i?A80+{P7vCYrFr!di>K)rlh~}wpNluCog1S zyBNIte&kG{+^yXk+hd0c1fS$ddP$xHrF&u!&Mmdd@_7JWKH1@O7)??PdJT$n7P4^` zs_Aak{~86;ek%`W_cpuL!?hn3yVQ|Ir<^hjW%@y#GsW z3SgZkw3Jg}xQEjw3ob34n3y-ajmZJI|4`qqm*3Nf=x1MD>Z#qH?ep|J>1Dd)jOPiI z1ZqtaSb9?H@|dB0@VzhFabV=W6-IxSw`QuJlqRLJA)t(ovMrY+Rb8W@o=#f(Y4F1{ zj6wMtyYS0nk{VNq`J>iCwNNH;X8?m@oxN9I(&_WdJy<{ON)6BONsVhw)Y)+!-{wW@ z0|wi`Wj_clN3+ZHs6{%IPuLlfXnM`M>>$bt5!?l==nGB@&&??orCiBa<0w|XJ}!EC zJ^0Z}5{$Q3BqOHAH~{F_Ctx3Yp5H~x_I9yI1Rrnd@$)9f^O5XGoyQOZjP8jHL$_=z z95a0vkDSb7%C8P=rTwTCr8YFWftjS9qpceLtyBYSvjHN9)WY5iygD`6k~<=apmPG^ zU+r<6-#@5gMtDclJjA#mf0FC5ZV@24zx*OdvbEhRbDPCP9V$-&F%2raz$v{z_qWaV zb+}R*q`VvDfm2s>AK(5+Wc>=HVE$FDh=3s{1$wky>=*43#q-pn0azSN844|K%&-c4 z{WDKe)M^hFvf(ZzQi9VcAq?{+rd`Lg;Lg3F#6$mzo`G8zOSAY;ohgqLC7>_vK_T{3 zSo1P7_4G$8ryB*W8?f3a_MTr4KHfvheH6kXiL(c5^~P!Wpjwkx3(Ccvqz;+yI`z8) zpN(v1P>ZIfW5#|Vo7=R1eD(E578 zphkRo(n+N~hvi?>!>D=7fS&L8DUDcBF zrCTiLP5}BkRq8d&9PHKh>%j`CwN;+U(QDhGaD_cJ;VKhRUAPVA*^EF*5*Qd<>OcPl z&=WE|P9Vn+N(q|T2AAkE(A>H%^Umk|-c$3*pqC39BpHahSDNsbupJkB+dw$oCNo*G zub*qr78o|>J+Z3E!1ALesq;jF%k)6=jmAMaSs_8g zH{#tdOQ>pb`No6hEBS92Fmj=59X9X1EbuzPqE@XmlE6)JyEHSd?z5k0_4{c}!>ILx z703Pr$FA8atmppkSw-iP-YV~h?{ z0PqO2XGdNB4?j`akK39@VWbbtIOWMro?|;!EsRH3zUL%$P6atE8bRbSkv9xEiOY^P98bTJ z_%Iq}l$($45mu3=^}~LGW@s~>*Mc_Ud3m_?RW=ct%!PFV>F%tX)$yu%OKErIrc5Ud z%C{-DWQ$8Ln(ZYWcp%529np?C*Qj%x7Hglalz@6;7)*~KpA>R>qw8|rjT}48)q4Tz z`Zl^Y_s;G084OpFfD82L?y#FwE3I=o;v}Q&5prHB*N(PKy_Y?~4;*(C=j5_-U$RH2 z>aF$%EFq$e`nhZ@eZBkbKT8g|#0@zQo42!ba~0<4D5X?Ab~?QczBV^2SI9l^A-rb0 zvfY|&?N_|m7(pYQ7Po~JY>oaRe zH%YpiB2vF=Hz#C={YMHfR|Bm^U*EG&scX2FZ2kyjhU{(t^F4WFJ9cUfJ zfEd>_=`D!CS{<%8e*RD^bz^g@qMuj<_w zZnN*gqqqV{auRN4xlCO3Io;u)eS@IuikN|uhmboLB78W^k8D`+M*^rAJLU^^eO`Y@}T97E=0dk_pP(mZ)x;8>-JN(iT zeKo{(pk5ZuB8hNt=-`X0^4e|7g#{r{^fiRB;)e+vq^m_S*qoSw$XMR?kBL&JRQ=|| z*IRZ01mx>m^#Ib@)obWpDvaJ~z;3ug`MOwZ=GKvS>fQlO_%y4)6FL5_o2i^z2bRg+aZ z(Z68?Ck=W&Uu_6K&U$fj7~A}&h%4$*B0fG3U!qN_s4-CrXvw@TyH3r4KB@WmS%AKv z1~7cz+EKa5;K zA1po~uqMik2Cxc1I(>fHqLelUJv7evKyp8TQR&y^uKB9vQJ(Lp50z%fj!`7`T633B zt^^53>KIt0vXH9_>fTF5C)Ip^#b{Ng!3?UWw4&)@o9J;M1cuVD73Ps|hJQlmKX;@y z+Bc=YJj>h}UemzAwBiHu23g24XjS96W)v3wx_)J?A)b4js@scC=!3&}{#7^X3o2Lh z$F#4Nx%DXtje`X{g=%eSlY`X*!Y}b<`81LMM~w{n?T@#7uCYd#m`Y{|FAO zcP{{+1@o+oj)exZBA%+W;lx=R=El-27gslL{xVTtpKx(`B`F&oCd`TNhz`td{C&k4 z%vQ|DFt}>{<=D#Bu!7rDtDR90P0N(ni%3Su{V5zPCY7Zy2UhHWco4XMoIay=Iz_@Wa`YG(y$Y+!-BA}VdXeo=$ zEg?(Jdu>^LFl}f@+|mzvi(2*dNGSt>AYIRPJnl$385oAXDK-j5or|+cXfZc2cZEq& z#;=cQ&9tAx9R;l_ub6vi;-I2)=X|SnZZw~udGEQd@mr5kWvn?a&2cmXHGwtxcBR@r zmL~;EX{9b2*PDra&-r;yS^ewnXFeIgM!2qX0 z<~A@Ke@D3QH;reiE4dB?gK~Ur=4)v+UHd_j!1^=(uX9bK)J*+F^xfYH%+bR*@l}|@ zqht%J+h(dj_HYRkU_YW3VVC)f>K-`He5L6YSb+R~?K_zk{o|~_u|O=kXpo=F(Y=M= zs1RM+H#SSV8=ezzR|vOZw6M?MQNG>+%o9_@)P@I#hl9G8`WJ5(jL>JIvk@Xy@NxLj ztZk>0#CiQ@M^j^xRa&-)j3Zm%^(U@WOS;RZl>gPIl}AJU^$kbN7H zkRdV?YGjvX>|>c`P-vMJyU8{qH1j1UG)1x}m1Riw>$fntAoUfBoL~ocE9C zoO|!{InVRC=iGDuxX<0MNcmy6$o2kfW4`m2@uWQo)uN+T;ja9C!R3hd@Y>3nmQ0J6 zy)QU!SFG}|R`kiXi?ZqPtV@zPtl)@KDez(EQ9}4pO6^N1K zl{QHLrf@I0406XkBx}pMq&Xxzp+2%%QZ!ibv)eNV*hkkO1=nA~^0~QSyr8Bm`-cPj zXgu#AKn)J|y<#%k1FTip3aCZZdQvDCSjB2LR@$Ym=YZZ>(QYb06;9;ZLAf-an5MCd zWe!MR8+1LqvA!rQP0#^(Fr`m(k&B*DaWzI}@Zx!&ExLbKpqN^h8gdT2Ynot`YcHpyW8Pb#^p7cTP}F6oGufYA9PKHI81`ZR7r+kf0+vOAot$ z4k~_3C3uX3j2Wi-@s%t3m!_@viKMO%&FZ8gI^ZqEssK~8(ilwrpw zZFX&vHF+UPZ#I?u#DHX_S8B9lGvFSSrNI}`(3yOix})9gsg{u5;o*js75&N{3EkXc zZ@txI)u!4F`z&~@(Um*Vq~%Dr15v}jnnGXH;B>#84vjU+-4iTgIvX2XqSoA!S_<`H z8gb@4M2Q%~mon6ng1rg%WapxL-vzBS$`AQ(dj~j%c78keOlW^ez8!6?F+qxq^40=Oz4s+r-sGA^ zc3oA;{b6T;5e3`}k85$Gp~_lpZSi|34NZcq3`_*L3qNLFS~Spp5v8I-kUiB{hVbpq z{!ye+21#gFE!Em7+PSn$?iHJum!>Jnws9F>FGtrdHCiRD4|NDo<+W!1De;94M zepX;?Db~_)Pm?E>ajqfz>+S~cRm20%!)an_5wvZmXBAhH`AlSMS9y!FV0g|(;^ ze_)jU?2sVWuU1NLqGnBQ5$8G;W_%KO)+_RwT>hv8Gs-wuP810jm`8`Nb`-%HL@@5kp`;@%Q(yT#vhNel3cdV<0B(7avenx*C zFivkOEI&}2Vbrl6>G)|5X)#7kx*92nsOwq~5)Hume%;mJ+&>QUQcrzgg3hgIcD-ze zPZd6^<@_H9)}Q_KS{I5;I>?I(skMKk_KjuV-IXz3x3-m>yx8 zi<&?_zM>1;3VRSY#`X&{Qa90c_N=%A)sIITjbznQ2C_c1`|ne6Wq&5)I&n992&DWF z372TLVz|*}?coKf4K)dvTy~~o`*A?Q&PpMqBYDi<)Kgi1)y3dhO>M{cTraq~$_d$f z)Lsripn0Eo)fk?s<6!vTZT4Rp3nJ)n_2M)+ogDKfzeMl6_+73CAxh?-)8b|Aq#tMz z&d;?=dOeH0ERbb(!`hk7aR1C%H*jYf2z^iwdpPkpRdF`gUn+_b<&d4cfVN!h9(4{u48 zQ3u2(3uUq!SVTWBqS2}T$qoIyzRj2rSbknQA%za=BA+wrVwGLxo7&)}oV0pa4;I;91>p%8UxqbEx=Sp{JDXHI&0Y4g9iJsqGrI#-Kyw1l*rzDzw z1sj+GOo6T>?8xdal(3`OM5PY|!?4w;P}>x73__O4?-K}9N@$Hxj=Gz2qWqOdafsld zYb;1qm$77h&l()pA4_*uFy6vx0C5==j71#3#grkqnuJfu?g`bhX#lBqYu`Lsay@xE z1lAfCzjUEgdbHm&T8AWjmqGM^ZFMj}j%z(iraONM@+GExevEU!Eu>#vRD%^V%QO3^ zp|#2d+ugP=3hIVuM5qsAFkWZl;)84hULHU*6%rRjp_)!AgBd?I1Q2ET-iHWST<}kD z@cO2i{_Ig&tErxH4!kDZLNv586aEwNBdGUw#Zy>KM!%8U>25`5i7kwd0EcfR2i_=- zm{;Hd17Ej^FbT>^)LpphKB(?D=4u37Rf;yBUywgU#B-fgX>4ao8+=j9fV6iY2t?Tk z=7HKUxM`P}SMVq@+AJ1(9BKU8{L>1*k2lO_LSA4rv5B}^(quDT z#oCS)0~E2UxKoB&)tahtUd(_5YgZW}o6l`n_eCEWOw{@c|D-)+& zjru^Wa|&RhiUT`0>b@l!J+Xl`KWbs~2S_$m4kQjP0~{@b>tN)#bpQpF_K0dVfr}r% zVw&!<`6wy#Lj@`7~4%?@l0=j2^+(X#6p(0;MH` ztBWD6oZG_ol~wXOLKwnB4O$x6Q+jSEzmk-w>Jc$(m?7KOrpY}foafYXPoLyzuHRnEe;>b{ zVB;|G2Yg_q9sJ2S;IJL+k0%d_Xj!HM62E!L~I^XKmFW{zIkyE6*MA* zy`LbW`pTW|!II!axOsWpntZ