From d7e682c1ecf2acb895d98ca9a6187f36932e26c1 Mon Sep 17 00:00:00 2001 From: cosmos Date: Sun, 21 Sep 2025 14:32:58 -0500 Subject: [PATCH] Configuration api print Calzabana --- Api/logo.png | Bin 0 -> 73053 bytes Api/main.py | 69 ++++++------- Api/main2.py | 238 +++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 21 ++-- assets/logo.png | 0 docker-compose.yml | 9 +- logo.jpeg | Bin 0 -> 41728 bytes logo.png | Bin 0 -> 13594 bytes main.py | 235 ++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 528 insertions(+), 44 deletions(-) create mode 100644 Api/logo.png create mode 100644 Api/main2.py create mode 100644 assets/logo.png create mode 100644 logo.jpeg create mode 100644 logo.png create mode 100644 main.py diff --git a/Api/logo.png b/Api/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9c6cb32c79fda183b62cd42a6dbd8d7df982d171 GIT binary patch literal 73053 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 literal 0 HcmV?d00001 diff --git a/Api/main.py b/Api/main.py index ae79f8f..b106abe 100644 --- a/Api/main.py +++ b/Api/main.py @@ -5,8 +5,9 @@ import sys import json from pydantic import BaseModel -from datetime import datetime +from datetime import datetime, timedelta import tempfile +from PIL import Image from .qr_generator import QRCodeGenerator app = FastAPI( @@ -25,11 +26,16 @@ class Info(BaseModel): def print_bill(data, address, waiter): d = data # Crea una instancia de la impresora ficticia - # printer = Network(str(address)) + printer = Network(str(address)) + # Abrir el cajo solo las impreroras que tiene esa funcion tambien puede ser 1 + printer.cashdraw(2) # printer.open() - printer = Dummy() + # Imprimer logo + # printer = Dummy() # Imprime el encabezado printer.set(align='center', bold=False, height=1, width=1) + printer.image("/app/assets/logo.png") + printer.ln() printer.text(d["shop_name"]+'\n') printer.text(d["shop_nit"]+'\n') printer.text(d["shop_address"]+'\n') @@ -37,22 +43,21 @@ def print_bill(data, address, waiter): printer.textln('===============================================') text = d['state'] printer.textln(text) - if d['invoice'] and d['invoice']['resolution']: - text = "Resolucion de Facturacion # " + \ - str(d['invoice']['resolution']['resolution_number']) \ - + "\nValida desde " + \ - d['invoice']['resolution']['valid_date_time_from'] + \ - " hasta "+str(d['invoice']['resolution']['valid_date_time_to']) - printer.textln(text) - printer.ln() - text = "Factura #: " + d['invoice']['invoice_number'] - printer.textln(text) + #if d['invoice'] and d['invoice']['resolution']: + # text = "Resolucion de Facturacion # " + \ + # str(d['invoice']['resolution']['resolution_number']) \ + # + "\nValida desde " + \ + # d['invoice']['resolution']['valid_date_time_from'] + \ + # " hasta "+str(d['invoice']['resolution']['valid_date_time_to']) + # printer.textln(text) + # printer.ln() + # text = "Factura #: " + d['invoice']['invoice_number'] + # printer.textln(text) printer.text("Cliente: " + d["party"]+'\n') printer.text("CC/NIT: " + d["tax_identifier_code"]+'\n') printer.text("Direccion: " + d["address"]+'\n') - text = 'MESA: ' + str(d['table'] + "\n") printer.text(text) - printer.textln('===============================================') + printer.textln('====================================') printer.ln() for line in d["lines"]: if line['type'] != 'title': @@ -67,8 +72,6 @@ def print_bill(data, address, waiter): printer.textln('================================================') text = "Descuento Realizado: "+str(d["total_discount"])+"\n" printer.text(text) - text = "Propina: "+str(d["total_tip"])+"\n" - printer.text(text) text = "Total (sin impuestos): "+str(d["untaxed_amount"])+"\n" printer.text(text) text = "Impuestos (INC): "+str(d["tax_amount"])+"\n" @@ -85,31 +88,29 @@ def print_bill(data, address, waiter): printer.textln(text) printer.set(align='center', bold=False, height=1, width=1) printer.textln('==============================================\n') - if d["fe_cufe"]: - QR = QRCodeGenerator(d["fe_cufe"]).generate_qr() - with tempfile.NamedTemporaryFile( - delete=True, suffix='.png', dir='/tmp') as temp_file: - temp_filename = temp_file.name - QR.save(temp_filename) - printer.image(f"{temp_filename}") - printer.set(align='left', bold=False, height=1, width=1) - text = str("CUFE: " + d['cufe']) - printer.textln(text) + #if d["fe_cufe"]: + # QR = QRCodeGenerator(d["fe_cufe"]).generate_qr() + # with tempfile.NamedTemporaryFile( + # delete=True, suffix='.png', dir='/tmp') as temp_file: + # temp_filename = temp_file.name + # QR.save(temp_filename) + # printer.image(f"{temp_filename}") + # printer.set(align='left', bold=False, height=1, width=1) + # text = str("CUFE: " + d['cufe']) + # printer.textln(text) printer.set(align='center', bold=False, height=1, width=1) - printer.text("Sigue nuestras redes sociales\n") - printer.text("@bicipizza\n") - printer.text("Recuerde que la propina es voluntaria.\n") printer.text("Gracias por visitarnos, vuelva pronto.\n") - printer.text("SOFTWARE POTENCIADO POR ONECLUSTER.ORG.\n") - format_date_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + printer.text("SOFTWARE POTENCIADO POR ONECLUSTER.COM.CO\n") + adjusted_time = datetime.now() - timedelta(hours=5) + format_date_time = adjusted_time.strftime('%Y-%m-%d %H:%M:%S') printer.text(str(format_date_time)+'\n') if waiter: printer.text("Atendido Por: \n") printer.text(str(waiter)+'\n') # Corta el papel (solo para impresoras que soportan esta función) - # printer.cut() - # printer.close() + printer.cut() + printer.close() # Obtiene el contenido del ticket de prueba ticket_contenido = printer.output # Imprime el contenido en la consola diff --git a/Api/main2.py b/Api/main2.py new file mode 100644 index 0000000..582e77f --- /dev/null +++ b/Api/main2.py @@ -0,0 +1,238 @@ +from fastapi import FastAPI, Response +from escpos.printer import Dummy +from escpos.printer import Network +import sys +import json + +from pydantic import BaseModel +from datetime import datetime, timedelta +import tempfile +from .qr_generator import QRCodeGenerator + +app = FastAPI( + title="Print Server FastAPI", + description="Server that receive request for printing", + version="0.0.1" +) + + +class Info(BaseModel): + content: str + ip_printer: str + user_name: str + + +def print_bill(data, address, waiter): + d = data + # Crea una instancia de la impresora ficticia + printer = Network(str(address)) + # Abrir el cajo solo las impreroras que tiene esa funcion tambien puede ser 1 + printer.cashdraw(2) + # printer.open() + # printer = Dummy() + # Imprime el encabezado + printer.set(align='center', bold=False, height=1, width=1) + printer.text(d["shop_name"]+'\n') + printer.text(d["shop_nit"]+'\n') + printer.text(d["shop_address"]+'\n') + printer.set(align='left', bold=False, height=1, width=1) + printer.textln('===============================================') + text = d['state'] + printer.textln(text) + #if d['invoice'] and d['invoice']['resolution']: + # text = "Resolucion de Facturacion # " + \ + # str(d['invoice']['resolution']['resolution_number']) \ + # + "\nValida desde " + \ + # d['invoice']['resolution']['valid_date_time_from'] + \ + # " hasta "+str(d['invoice']['resolution']['valid_date_time_to']) + # printer.textln(text) + # printer.ln() + # text = "Factura #: " + d['invoice']['invoice_number'] + # printer.textln(text) + printer.text("Cliente: " + d["party"]+'\n') + printer.text("CC/NIT: " + d["tax_identifier_code"]+'\n') + printer.text("Direccion: " + d["address"]+'\n') + printer.text(text) + printer.textln('===============================================') + printer.ln() + for line in d["lines"]: + if line['type'] != 'title': + text = line['product'] + printer.text(text) + printer.ln() + text = str(line['quantity']) + " " + " $" + \ + line["unit_price"] + "\n" + printer.text(text) + + printer.set(align='right', bold=False, height=1, width=1) + printer.textln('================================================') + text = "Descuento Realizado: "+str(d["total_discount"])+"\n" + printer.text(text) + text = "Total (sin impuestos): "+str(d["untaxed_amount"])+"\n" + printer.text(text) + text = "Impuestos (INC): "+str(d["tax_amount"])+"\n" + printer.text(text) + text = "Total: "+str(d["total"])+"\n" + printer.text(text) + printer.ln() + if 'payments' in d.keys(): + printer.textln("Pagos: ") + printer.textln('================================================') + + for payment in d['payments']: + text = str(payment["statement"])+" $"+str(payment["amount"]) + printer.textln(text) + printer.set(align='center', bold=False, height=1, width=1) + printer.textln('==============================================\n') + #if d["fe_cufe"]: + # QR = QRCodeGenerator(d["fe_cufe"]).generate_qr() + # with tempfile.NamedTemporaryFile( + # delete=True, suffix='.png', dir='/tmp') as temp_file: + # temp_filename = temp_file.name + # QR.save(temp_filename) + # printer.image(f"{temp_filename}") + # printer.set(align='left', bold=False, height=1, width=1) + # text = str("CUFE: " + d['cufe']) + # printer.textln(text) + printer.set(align='center', bold=False, height=1, width=1) + printer.text("Gracias por visitarnos, vuelva pronto.\n") + printer.text("SOFTWARE POTENCIADO POR ONECLUSTER.COM.CO\n") + adjusted_time = datetime.now() - timedelta(hours=5) + format_date_time = adjusted_time.strftime('%Y-%m-%d %H:%M:%S') + printer.text(str(format_date_time)+'\n') + if waiter: + printer.text("Atendido Por: \n") + printer.text(str(waiter)+'\n') + + # Corta el papel (solo para impresoras que soportan esta función) + printer.cut() + printer.close() + # Obtiene el contenido del ticket de prueba + ticket_contenido = printer.output + # Imprime el contenido en la consola + sys.stdout.write(ticket_contenido.decode('utf-8', errors='ignore')) + + +def print_customer_order(data, address, waiter): + d = data + # Crea una instancia de la impresora ficticia + printer = Network(str(address)) + printer.open() + # printer = Dummy() + # Imprime el encabezado + printer.set(align='center', bold=False, height=1, width=1) + format_date_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + printer.text(str(format_date_time)+'\n') + + if waiter: + printer.text("Pedido Por: \n") + printer.text(str(waiter)+'\n') + printer.set( + align='center', bold=False, height=2, width=2, custom_size=True + ) + printer.text('========================\n') + text = 'MESA: ' + str(d['table'] + "\n") + printer.text(text) + printer.text('========================\n') + printer.set(align='left', bold=False, height=6, width=6) + combination_pizza = False + pizza = 0 + for line in d["lines"]: + if line['type'] != 'title': + if combination_pizza and pizza < 2: + printer.set( + align='center', + bold=False, + height=2, + width=2, + custom_size=True) + pizza += 1 + elif pizza >= 2: + combination_pizza = False + printer.set( + align='left', + bold=False, + height=2, + width=2, custom_size=True + ) + else: + printer.set( + align='left', + bold=False, + height=2, + width=2, + custom_size=True) + + text = line['product'] + " " + str(line['quantity']) + "\n" + printer.text(text) + if line['description']: + text = line['description'] + "\n" + printer.text(text) + + if pizza == 2: + printer.ln() + pizza = 0 + combination_pizza = False + else: + printer.set( + align='left', bold=True, height=2, width=2, custom_size=True + ) + printer.text("\nPIZZA COMBINADA\n") + combination_pizza = True + pizza = 0 + # if d["deleted_lines"]: + # for line in d["deleted_lines"]: + # text = line['product'] + " " + str( + # line['quantity']) + " " + str( + # line['unit']) + # printer.text(text) + # Corta el papel (solo para impresoras que soportan esta función) + printer.cut() + printer.close() + # Obtiene el contenido del ticket de prueba + # ticket_contenido = printer.output + + # Imprime el contenido en la consola + # sys.stdout.write(ticket_contenido.decode('utf-8', errors='replace')) + + +@app.post("/print_bill") +def print_ticket_bill(info: Info): + info = dict(info) + data = info["content"] + address = info["ip_printer"] + waiter = info["user_name"] + data = json.loads(data.replace("'", "\"")) + print_bill(data, address, waiter) + + message = "!Impresion Realizada!" + + return Response(content=message, status_code=200) + + +@app.post("/order_kitchen") +def print_ticket_file_kitchen(info: Info): + info = dict(info) + data = info["content"] + address = info["ip_printer"] + waiter = info["user_name"] + data = json.loads(data.replace("'", "\"")) + print_customer_order(data, address, waiter) + + message = "!Impresion Realizada!" + + return Response(content=message, status_code=200) + + +@app.post("/order_bar") +def print_ticket_file_bar(info: Info): + info = dict(info) + data = info["content"] + address = info["ip_printer"] + waiter = info["user_name"] + data = json.loads(data.replace("'", "\"")) + print_customer_order(data, address, waiter) + + message = "!Impresion Realizada!" + + return Response(content=message, status_code=200) diff --git a/Dockerfile b/Dockerfile index 1981429..a61968f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,23 @@ -# Usa una imagen base de Python FROM python:3.11-slim -# Establece el directorio de trabajo WORKDIR /app -# Copia el archivo de requerimientos y lo instala -COPY ./requirements.txt /tmp/ -RUN pip install --no-cache-dir -r /tmp/requirements.txt +# Instala dependencias para manejo de imágenes +RUN apt-get update && apt-get install -y \ + libjpeg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* -# Copia el código fuente +# Crea directorio para assets +RUN mkdir -p /app/assets + +# Copia requirements e instala dependencias +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Copia el resto del código COPY . . -# Expone el puerto que usará FastAPI EXPOSE 8000 -# Comando de arranque CMD ["uvicorn", "Api.main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml index 80f351e..8810f85 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,17 @@ version: '3.8' services: - # Servicio de FastAPI escpos: - build: . + build: + context: . + dockerfile: Dockerfile container_name: escpos command: uvicorn Api.main:app --host 0.0.0.0 --port 8000 --reload + restart: always volumes: - .:/app + - ./logo.png:/app/assets/logo.png # Monta el logo específicamente ports: - "8050:8000" + environment: + - LOGO_PATH=/app/assets/logo.png # Variable de entorno opcional diff --git a/logo.jpeg b/logo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2f2c809e23d9a3e3038a3bcd16429fe81f08ef5c GIT binary patch literal 41728 zcmdSA2UJt-w>}sILAvxJ5T%H8=^a$0OHq1_NC#=sTcXmtbg7XJh9bT9CS7`Oq4xwN z1PCzses|W~HTT}R^Dk@7TJt73Co4H8Ir}~P?EO5?-sf)aZVm8IO-WS=fP(`7;9wts zyG4Kk0QcTM*4AO7ggL88W~$!S=-p!**myhwd1GI=6nOWa2;x(|d`n>AM#U=h4Ko;+L%fIQ$v_Q$=? zM1W_2|KG1P=I(vJ51(2u;pOS{9M zho{$m+m`!RoKAPk%R9h*3bbUAAc%a=udX>Lx+8;NpVWo7K5--c%>X?2lg=HW^L4Fs zF6cG-C4^TYbL0sDFhulg_s!4Zu&CEf5Dc|f7vWcQ>bh6S$1LL4H{@{gR&s(cKc$}y zDMGSZS_to>egs=@LP6=(=7Pp>5UccWRP-i^^IkS2%Vc1`;Y=sNX1wQ>a+BQxDhAHO zKII{+xo|b#_xhU(Jy>E7J)8C}dbe4_a9#u@pl|vA;1h#Ltw<3N{;mO-4S64KVmRMt zm7pZCEBxie_-+1y#w%IXq$HYo#7WE@;A2G;gxb@-X6#G4@|*|ENGEDC%q$@KDSg0F~o|Y?|v~Q_801_WJD=oYSny*KdPqYaS351+q zi%bM)*|fLTaT0SjZMX7j5%X_;f5`nmK`Gjv`3SGugow4m zZ_IfN^Iq*ySZu2)TjR}Y0*Q5~c$A$t2i3R_(P91VwYI%?fLQUd+yLImRfRtcgHf}C z1CRHn-4CE$O_hdAMVv)`BZJBrk$s9vzb`NP{Z>1nAx%>=5Gv7Smp&HW;EILP_tC$9 z(Y<6%@nxXGquDhIJ!u9>@}4~(-WW;kRmzwjI4P@9J3-W^#c=CY@}x`gA8v?(7HJpN zd~(r_h`d*m@VKy4T>;k#60&VPosNc7|D0{ItCB;pHO{ETDhXR|v$P9jm6sBRu-{!Cs92h~ zj{oyZgwLj()>BI0C~spCNTgbHAY~p^cJOMmX?fK?VoL^(d^ss3ccJ50x-c*u>Q&Mevpw4ysdNgNBmrj$D@+{_<<y9WFgnVJuTYs65+n0nyi`Ac5hudQ4G(97(DH7DiX zY})!eKyW|G3!N=`!@r!O%6Grh_Jz_~!fUYI7;Y%w+Q6EOJ4Q9o0I1Pr?k}%gZ62z7 zFc@8?&j&OM0Nhk#;anpveg;e;Yb_4M|GWPf;wHH0X12=si?q$0F zu`Md_b93$7I_pyhhtcu}6r;O0P9oY^;}``F#}I9!G*#ITobqcY{yZvsnIFS$o%Q=> zq8RVn0~RA2FK*X%x{xw0I@N8%dGnElYaaU|@2lP9;a?tmp8`KX;?8e``vd$Di}0|+ zvvRvCM}5EgFwcw(o95anK4&jBeC-ORcRk=Md>+mbjAcxL(KTYORL+sGz+TbbruNiH zF3z(^t^(Y0K?TtC_q0Y>p0~cUx2ary2ej6PcSO~51?vXx;fZ)}bx$E-IrZksw zdfkde3&;l2`*~Ej0~O}<)SDXj-$7-Z!EQzjIKlyqU*aNem zj5x8>?`o9T+>nix@-ql@fbn*;ylKh{qA}vI+|XLkLVXd+Xb-vrkhP6l|olIgmemkSVTJ<^(=YMR+Ao0R4m zk7Z>_l$)3dP$x~k1AJ+>1LE_{iT!+>4(Hw2lBr^HRe2o!7oJLH`EwS=d*9ZZc6Q0< z@1vr(lY!(@F60j52Tf#IWeQoTGnJ+!(G-m@`wz@R{J?{yIrG_5X44}?zb*dv(m6q9 zfGc`^-Q_C_6%;i4RFyvxSY>pKv+bVM;%5a8ZT@A*@L|!rO3A%Ar}1)mgPeK@$@w;Q zgZzka~?U~WC16cR7kAo{mc!tE>(2)*9N!CtL|0YFJU5>cCjnJ>aPVx(*eH> zY{#GsU@7#8*))|7+Sa|o$D~7_QY@=LqlmE7vgzA1A(5&lELOqMA)H%p0)DEeAfJEd z7Ui#Oss4Fxzo2i%n?2OLe^qN4AjgwZwD(&Xyz_MO@yaG`O_ivo5;vqFD!Rrh`S*VG3+LjIa|R{u zdh*#A8Ld{rkC93Xnp90aM6l%ONt5?AqO0<{w!pozMjMt6rsxZlJ{r0<76xJQIEj#_KCak_B(HfR z;MLmAH`UIg{v5CQYus~oeCh8@-b@VTw6&((c_ESGWg^D>QH7|ZTv=W{F3nU9`8}X1 zq!Ww$>|MTqDB37Fg95mI?isJty1C)aXne3}qzz%$_azDMwY-`0K}(ONeI`m_>l<=K zM>gyl=q|BQpLk3k*XSRVL7k-M;GGk&Bi-~W5ZgBS{JkEnV)WI~P*PM^b)T-K{W2?y z?(HDVHMivK zdRTyQ_Zg9+-~Q9o{W}1}sTyDsY?=6_tH|4f!YwJH-aP!$4E&xR7G*JWD}qr%cb5_# zi`)T77MF$telRLftG6cOJW+ob2KXl1YteIV`fG@Ql&LgzOrfWAX*;+6Bj%`~A^X^u zzq}~HzR;aLL8UisE;EJwR8=Oy(XjXBvtA>%WwnJTNqvDiMIvY50XgE7?Q{MD1#V?l zreL7`cUGz|7u5IVLbS|lx2%|8GCvdQV5i2I3mHk1gLhT(I=93cC}?mtdEel}_t%J{ zQW8w#75hK93DbxEf@EFXpo>0tiMj(&3oL3OK%s?(KZb==LP(+*nd4!U>Qb@7Q|ZD? z%WLm{`B?iUG^rYSw41PKI3&R2R2=4!C;f2|zcBjf2yZx_6vN{QzMLqni68M4#yp0d z2Q{AdjH;6CG1s47&}?nZ8ClpZ6!kw{Y6V^L2qcebk*bat=3eZ(U9fN>Nmsr&t~d_$i5F>}e9Ecl(b2!c6Pm%Y;SE zquoFp#5KyeW}@ux2|dPb_VM`Ny?bVm_fISWWgvp5JI-=rnM!KqI}5`_gKqt)IzSWp zWhOjl)V9B0!E8CoU{=@nymG)?q&DylP=nfwI`>K5p2Vp{lkxTFKo`FPUo%u9=<9euESFkqV*=gYECXu*#kb!$OjJik@CIe3wT+_!_A5#8%e1o@Kh?T8iy1lTF{FD39helc z(^LG{1lAz)eX}tne@;l8G$(1Zd<*Y6w+dT9!1Bi+x-SV?DrdbOnyY!3+PTRrBQBo2 z9V}$K0}vlUZ01Dc7|``SO&TZR{2xs;s;Vcpd|B&=qG)L7YH#wg-JN;ER6O^cMvFo&ND_Xb%Ahe)3j&h7>NGTd-RPXPN zkE9rwg`(h4j)@>TB-K%7CojNM_sWjH1LZ$mb${eACsZEvadRnpu%9zH*498Nh|sn;N7h zid65nqfTxUsk+N}K5U(0;;*t0G(FJ!GDK^eK=Qdez;1GdKjTSw#+j^Lz_a6nq+kC{ z)c${0bkMU{p)1Q@avV(PZnJ#cC>r~R@-?DdrF~6BYv2;*lNc2W%q_^#qn7)3xQ@$82 zEwa<)-h+);!4N%W0L_k?rsnC=o+^ixhRT12!vPgoWr+}(XSYhk8}P(hkPiH0iY+9M z{xXMXUar;6JQg>FNY8ql>3gHGn7kBLm(fu42$b%SCw)&R2(h)V+OIDDs34HtB@rt; zR1q)E?#jM)>bNDer%n}F5s{qzlc%Y!V)M9dgSSn58~Pim5}>%gs1=rCtWll>gZsNY z94Nj6*j@6(+dYnW$GWU?Mw8+4a^S>7hM(0p7^Vhk^qBH>zU8-BtS?BukY;+i-za{( zFmu*8gNAegsoU)ZsP=CK8dEhh4tL{M_oae!7iJa(g?e%`z{uri1SYydB)moCzN!bg&yJAI#W>&T8J`J)|ce-7*riB zgjYV@meAY5@up+*wEr?Fn3nRypl?8lM~`Jyu3`jJS|j7vkOsH)bsA@By=DhbL&)2R z&Hi29P;ALoaU$L%uc*VyH zx7%dLYG5KG{C2Ryv9Rq9fF{tIdH+|MSsL{NP52YQ2jyK?Z ziYw)Nxy0XZ8?NfNd&>)mddtwR3a!_tvKrPMYvu zbv;j-RSnR*H!L{$|7%_8>XNN<{N@zI4ohc4&DS+vJ5hrKPlDjt8DzxbPXEu>>mAj+l} z5hQ!2fTRtBJJL+mkm@hoPB*FJhSKaz6-WuBIP{Gtr1XW@X#W>#vTsozWPxBEn`=nf zSI{u+Wv^Y0*38!o?9SZ`8#1?g^C6u>RORDlZ+6})xNrAik2Vthc?eYuCRr9sZH^co zr7!o}aF#bd41L7^Y17m59JKi!sVWV889;th2xbXz`>G-$ol-sRbO)H3GkplGQ@e_W zR*3dScKsB(S=^4O;Zd?JH+WJU#VY3|RVTH!{qt>-_bUzAkdlAM;D0IpJs2)7SpNDm zIzbaajdK|WcVRR_S8vq!0Hch1gqQZrAJ#Uc;W?0mO6WFo-+OiZgiPqg1r3v)!JNh3 zy1hNuJpaOOxeq#JNA!O49}EV`86mn#cTnHPf#fd|%PHBXOmpVvkQc6d4!{l32H?EF zd4VmK(1_Sgc2DY-@F+q+v+nc3Y?|DH`YI!3YD9noFqIEY8wW=54~CLoCcKs>2o<5= zWK|!-s2Z6`(LSWS7#}k?M$;eH8>mIfJz!SWYEpG+2D_x6g&o>AqU2w-5&P%^V<9!u zLk@_WB4tGXsNU`I`d7gzzqr2E(o_PHqGvkwEn@S_Dn=w2q*zWCQ)-coZH?*evt z!qUc80=3L%nE!3A@C?NDQEr#BI{hS;u;1&tfvP{FtvT&r5jFK(3qFb6O~Ii&q!5ip z&;4J^N}FK7w3H|<65`sJw=`Zl`0pg?-_kAS=BB(h4~dIPM_hc(4MeQ~KMTipBoNy& zpE{a$LEa55D_t1KlzP678zYYcQE2tt0U{au!;g-QorD31v*J%+H%G89`gVszaLHrmkzqwD@gT!%XH(hJ=r5 zUnd7!f^h;)tl2-i{y=CrnV0_B*DF9M@wHtTUpb*uB_+&VtlDhnQrl>1{(zKjpcwov z3BEt-CCjWI9h;+Z*iRp-4*BocJ;>X78_QIesJoK}&stm@@KB$;B|E&ls!q0-N|1y` z0GVY75%0VaoZV1j`zBPo1)Fm5KHdI^lZ((V(uaE76TiCgFO#@%PnbI_6b>2-4sKE<5RT}K9Sn`T@;^1$!J~yi`A@W&hMh5w`=|| z%Jlw@Kq>VqrJbs&w&9r00o(x_=7xb$zi9XUu24(W1&J(~jf!pio6N}xNEn7nX?4T< zu;1H~x+%4Lm2Pge$;PVIhcg1$U|_HP>w>#oZGt{}KPi1D%DhazY3$6Zh1BY=U3ETs z2W2x8zn$7=&W%{)`BrH@ud?|WpFS`vpMLZFF{UUsZ9m03(_*z*Lu<%FP$WJS}jb1K?ENxwD!Q^dag3bJ+CBEfM^**q@RWvJ^ROLPB)zJ4Ye!X9#E1G;a z1NG?pmD&bw(k4Kl&xLYpT@~WuNH2GvYFUl%2#%#0kqq-or*w9*s`M=RU#7n3He_dR zjF<;c7`J;?{E@A-Du>^0`~%9PhiZ{PG6HJ)GETMZhLb2dZ0EBeV*fw4^tMTHr zcw?-5-5{s)=h7kn4p5_dV$K2zy((lBS-EaEfMFoGe{!_ub>2!W9ElMD&Y_=Ind#Q~ zdQpiLcJhna%+m#5)iXfim%o?yv|Do(HFU*-axkkGzpyXFXCOC&9HDP6R3`USj$b_Fi$DuOwcKv40%y0T>?l z!Ce6zWTAR$BC~bQ@AfbAYcEBMT=)h;?OVz?}`0mpe+juV$@=;;*=5tBLUgKa6uy{Bemenb+5$ZCNCMU zMypGfFv7L#b|B_?;w=^Vmp1W+8IKIY1)dSn<)BvwaY8G0nFNuFgWKXbp}zOpUk{#P zo=Q!*!BU(+X6eV-BVLY5#${5JYRdEN)kQ~U>yQ}NwuqA8i2x0USL&9WgH|&4bgeGr z%e>(TqNKnwI-l%T#{KfJ*4ghK|1mYag!sD@&YL>Wxl}!}OSgYCu4{D%;4XeSl@RUy z!Aa2!nqtn5oJrmoWAUlp@b2N-f_AR}8?0)h?4Aq_R`z|Sd?+lDbfKW&39eUOrp1M_-WUlfCIlxZNvEQLn4g)qO<s~708AwCwjkEg=X2sZ1m9aN z3$D+#wzK>33V21831wqpy|--Wld?sH@&H}*GVr>Nz+Vxi93MR zmEH%53|z*xF=7I-CPmPxSd6dk1XrEA*i{OQbc*fuO=-=*35%kkr51HRn{?vm9QDiu zS3#3^@FsnSGQ#|(hW1mcWIb5ab=n~d%?+$g7Q@&W*$vP7jARLi@_?L%`XoA+q}Fiz z)lPCu_=nezo{jKiyz4V@Kavjx(zGxj-Mhb`6FV33y`TU7F+jV%{d&0@$256Yin7|< zY<#yX-+?FZS1Iv-%z^(Z7(JJJ?BJA(rt6WaBB?D*bAPte5EEWzr;wfh;Z0WZSpOI^ zI{lz~wR$YV(+4kp#i!m>gGH4!z)7D}B={;cRxCOWHR5JlX&4QU;c|L#7PuhLSaYkK zp+r>90V*sSIRE3fj!obGV~6f*2S<)@z5eJY4G$N6^t*gFFU5VUv`D_?`~F_+R=M1{ zF&7+Fj>wvcEFuv$o=UiUR&#PGkhWtZs>}7sGj$jI71Alio8yb|hYeCM4FyDMy(5rc z2Z78Q-j_`76>TaJyB`^!j=lbuRg&_NAc`8T5Ocz*0Q>Sm*!?7{+{8FRWY??`V^EJ) z^2gUZzstcM=!||KRhwMK*dw3WJ_sVxM~#ymSabQX)c>=-&Btd4v08rpLSuW@?{w{y z(@l(css}2xyF$M>6t=vyGMmxY6drg`eyLBxjb~*}g0~v=RXPt?;)g zj}0EdWgLRajDxgIT1CuL+t=%w$)-10e3carpz|iERHQA2BW!K9cV67VGKy!G^Wu94 z@u<|!-wG$C6mgL_XxJfl>y6#@=*l2rtyPBw8(wh@NhR94m zjLyk#X?#T^M2_>a-_*NIu0(;D<)d!2!-pg<3G17mkdFndTNti_8qV$0nO+>?b3XGx z)Ba~sThZs|&kc_>Q@gP`i#CXExBlT`z#Fsyul~N9o2Sj8X&{yJs`>eZ&v$$cYQEE&HSsR3dtRs_rmu$WX@8|ECWWUevc0DIHO>$aBz4lgS*Ct7NU; zx%(zy?XPHWuTGRM!n-O_{lrU#acE&$cU3=bY++w6eD9V{EEh^8!+P~vdjQ;Y^rcpH zuGC3RsCmBp!7VY=jk*7B~$VKhK@@1SI%> zHTaUg9+h;el!Ce;&v04(gBI>dF`h|-GwWy|1u||b?EPgJ!!n*H-%gajZqB4+Iw4KL z+bP%ZOXAS<$m0ePt1XM{6={$c1x4p(dI`hceZ{r{CBWH3^<$;Ociu*;(!Vc?UHmLx z@Wv#eS)bCI?I(lF8>tuRprhoL=Na~xJcmJgQ(vdel%?l7!;1|h%=sJNa7K%2s!(37 zGdC3#ql>4kYi19Tt(AoJbQow9=O3}4V?`Aau| zfI*%RS{u`+N#zwyX>xo7nVC7gZZYk=R?DoP(^?Q(RoA))Qug_9R<h6qSAb?ML-P z00TR!oNq)^x)(w($AIQAMQ8LGJ7qi`P~hL*%d~LcGt)(Q?qdXnJ>S>cCLTcQp@-Lb zay`?c8ZUMjs%w>i8BMcVC_V3KtUQglfAqt~2ulVP+5pP~TP-Y4>vtX%RD}W2hkc2I z2mG*;JHTg_1p*GF0P31@RWUc@pSbToewk;dEkh?-c4CK~$SI3nd=K>4#YkdlJ}$B@%8eO{g=-;N z)M|4n`{Tdg%O*wpT~sJqAUrqxMCB*{}yZj_!+|Ecnvl#Tgd!zN*A zX@w}yZ;>OZ2}c;LM4$d~sL-i8+d~=}W!|1|0Hy>7>t|j3@4VE#o=zCp*7*pal+i&I z_OnvZsAH!VX3B2rx~P(5Ayem3-M)%8)*ts2ie)yKn0%(siWLh&gGySD`~@=fy-y_^ zwyF1;6;`Ck3BbKqv1P?S(NS>Q(1{UdaZ+woevWwevu9@%_n2HCkq+$jk3Z|ATf7r*Tl?^E9c^wE?xa!4Qb}$zYPpx#Ylu6 z9DX7VXfq4$)5{UC&`NV^(SwfUg@$m~zF(r5{f+6GYU6P<=IqmYh*3w-!bEeXL}80_ z;Y%fME__33tjQ8fF{fKvKXzZR9ow&28r;_+HFL;K%~PAzYC85e?-I@}nKGj|A69ii zQgtrK_g91*Jx#61|DgW;F*{zPLWHFR!{g^`8}T(8={tjGO=uE@AtV`UT<#$6I*uyc z(6~Ia3FrkLk_TF#=hs>sUMs^%IrN!d@t*d$f`F#B2Oy28t|l&B6BU%59x7h8^7}L1 ze!wTy-TQ8jGHoNl!U6mU!*4!ueN9fVJ|W99@5+rrI?-wM`{w195oGxWIs>(k#RHW8 zglRuZ5p4CBguGR?4tgs~(F0;_&{}i-8-)-qYhTL+0r+hUHQFQAm)zRa>0iaUN5oOz z0jk{S>YzUUK1``S&_(32DET4qOB*%g;kN9Uw`WK6HFttk{M0Q=Q0HW~JgUTSwD75* zfie-aR{7{#G(RVzE$KZ_P_fcM)x5O4tN7u=|Y9uA6y!mzeL=|zp7Fz3Ow`RWYh~f#z1ZJeLt>T`S zFOdl7Kr3T>KXqW>=-wjEpmuBaYX9l_j2`2Hrhzu0zW3r1mTb@`5u|4p*3i+wto!4xs)!s<^g#@_z(CS}u&PT2BurRe&z8K>hFs4v2$ zk343AGsZvz4TP)TJnHmg?q1scV_1_?c{vFb@}~G!O8t8j&nfxsw;a95*=g%WH4mn< z2VA--u~*G}v`q(&4z+Fvp@_>JfR*!YiT=@6X|Xe4lI@A0PjF_`?}5KfW5xj?I^$P3FoMV~zjFj|K75+jy&G{w*Jl6xIdyVXN?*KTRv{@t}ADSAYhiyPQnK)A(r3VW4gDxD$KspTYgt?Krn=*OF zEdIA*jca96+Z+sn{SGC~NId97;|vdPQfU$TJFjyQWUU?j%sC7dJPGFUq0&a2cRy_N zAYqS_TMxgG^*2!O94}#U5SFrsTk?$+$&eyBJ0X-JHPbD?^2ODzZjQI1e^ET9damcs z4mfiDT_TTB2HI;ck((~bVHKux?8EK{|4a*yN~fnn?^IB8<8vad1#BZM;_TP zX?jsuZ^xHrnC81z$xMi|guCc=E;<%hQ>_-eP~3k9aJ~burQ)?-wrfoxni9vcBn5Y_ z-5SU^ur43XXp`m!{$robL7s2cUz@3R%0;_jx4QyK$*Jt{+9ed-+!4`5tjzNaW^9{B z!7=CnVi81tZBQY>fg!+Cj?Nf5EsS7Uy_R z4jFy=2={c!jG2)RQAdT&df-8gW~nMzb6y{pKkKNQom>XNG8xGuk^HKDr;Ax zZN1_Cvju584NS@Ho?=wJwRtjm{jL~Fv>^OJ%}I*POOG+sxK)Dpk-dp{;&0aEFKuPJygjRYE3&!j9rN1FeI zo?oPRv@cBRT$|E?dC{`#JV(r!-4#ALhQoq{mp~j_n`EUKpZUYZ^{FDQjNR~#Q)4h#Lw&)jnFuZfF;GXB+2Bh?>+LnHFj31Yg; z9fZs}ZjC;DRk7h?iX^GBFjKi)jMea#p=IcvmvY-$nbB{D=v0muZVU~U?Rv{G-Bf}3 z=N*aNH@Nm@Ea>>qhZE&kjTjtq5S3?ipimbP zNEDc7m2*^Scub-eFCd90*)hhpE+}dpJ8B(R0y^>IxDdNlqE~Y+WXn2?OX8W9&9m&x zeu5QImHQa!B5(Uq?T2P+vv05E)3z?#-oT!Y%t^b~Gj#U(F?LfaA5e2Dp|&+Z(}ts^ zviVHXFreM4PgFOAF((QR?Q(jhI3p54zF4zZs_0Gm)hk7jm#7}^IftfOW+-k~=S()v zjXGnEqf#9>?(gcBWk-pU55&t66YatP=}JNmF_9w`)EW?D5kD-p_l-ZXi_^W-ery!Q z!yAP2+|cgWLv7W>FtFoS21F((-VN?r!oKF|}v1PL^ zax&wUh2OV|{d2eDzQl4bpTb{FY>+6gtTB;El)AG}=MjxbC;P5u z8{9Ti-A*plM|q5e%v7Nl^+H5Roi{u2vq*c8_r7?`gtEuebYU88jR3qsE+dU#I_}O_ z3{f%6mNfqJ0k!rg^Cqyi6u+&%CkB&ON4LrYC}Sq?Cfd9*i1VJSTqd?N>_xV|I_&c? z-ShJ0is;Rlj?aXBJO{Q$U8VM?^J6VP3~xm|M%Bq6|IVC+aDAE(TVYdZ}V@ zx<__re2KM9mkleb_CqJ~L+zKK;fuJSRiYO4Yu$hsalKN1-51fq${E9E^STZ1yPXM? z*6P92CbdV?hiQ(OXeBgfi*<6d7Cd zZ#-v|q2awxOXJd8ERn!9XfXd%apTc4B&V6uLLW~e^SAeF&&3Izgo@J$mPWcoM{l?6 z*`#HQ-X8f&_?}!qGG0%1&6bt6PNQ%7Ig4+nkc*~DD_1l1#Mm*cb+8m z03`av5>HHrh$FLZ>R1hKkMb_hn4fpBx9*9fA!*dBwe3;-PwY6*P6!Olo6+ev8AQb`|NoL(@V;25^o>DGIo%^A*20r-7r?BbM&)`dYT6ZGMe}V^>~*M8-gCe zqK*{a5UFRSKDDMDEw8-kxDIO5#Gg5vVff%iJg<|))pud6B(zuRYm!iV;V@%nHmR+X zmG_9F{q?Q>)Ffi;$QGISB82x`R!0lTm+5u;%H%*_T}+bRo%>_j5X0F4sUBA>2IaZ7Sy1v|`e?45F1$To$DPh_CRK9XZKAlqH zLn`-#%Jo#pY5$YYqxjCD(hSL}T9lW26A4S+b{54KiYMV(K(6=RFyFiyi^FG5XUPU08k3gV8&K z+Td1fhI)+T=bHqRS8qlS_97G;IL9kj+T?|j+>A!@{B^V@P889gV>SYEdl0n#{ML5p ze99l^1)WD_ZldQ+&FqiB6s@Y8By4z9?LWRaz5}HAj=GH%SQ{+ZA09QeUVGL9}r^6V%O(;kTZzcFpmKl)}kg5jf zPM#lT!j|mA9l#?MdI>eZ9RpSe-A>w8VS-;uHM=o7v&m~XdC z){eH&5X024hO!97%wv)BL;1DrHezg_H>3hh*XOqaEuJ%x9pp{emK3|!!{o7N__lAn zN8VOHVOGIt-NJJHB-*RW=WNYsHc~XoQEWEgNr}m#YB7EP0!KAJ(pUN_`Ru7dzr^D; zl0*=f0Xb8%uy*0iLh87zfaA(aWWN}t`DlH$iSSm_xt8hq>X-JK)JQO4uY2C2y}n;x zP@uHwlHu^1cZ6^JiItxb*h^dfwss3%<6@tU|GxFGUsH60lcE3hg?{Tf2t4941@B$U ziL9xxiGz8#gs&oU+n!+qJFU#)6W{d;s)d5VPI{jipZpj5y@vM)>DSiQGS`rxm)+RH z!jT$f7yNIMGc?iI&(0U^Fq+|-vU?~4LT;cU(HAl)D~v_~JUPM^j4aHFIRltLe*;bN z=N(&uZd!UvKj#X^xTpU@zTDE7y}O1J^b+$y3@5#Ba>uUqST=uusejEznsxoHeB}qi z_pw1gTp~`mcR-m?O-;bo)={qhXxl2;FJ&ug3hAVPDvO+7*TTmD5q(+rp0b-MZnt^K zhFb{&WPgEc7n%6^y-{;%@`wd_sNk+LAhnnC67u~>8r3vSitU68j#}3Wa^Y2BRr$D{ zKBIr7GND3ngRmbWjEt?R6xJFY2^@Hq7NQvjYAbYeE&+++l=}-p;Q3?Bz49>=S6=9dqr{WEsy}?EGD*Jo_KxJexR zttikfv7vV<`{Rd_diFv0uOwtKu~#0Ejxj<&yRzgg*u~zPt#D_?^dQJ&BW}3&CDuMQ z&Sb|djWJ;FJ6Wq(Xos7fM76Okqs0dQ0?E)yHovOsRib?w^z<6M$9TIGtq6`o-qr*R zn{1q#3dI1+H2lv+!KoMTjtZduCslQGMBG`TZ_BJNJ!CYVrgOxzC68O1CEWjjTdwf_ zD!N$W9CxBMC9yh?Y!T~;h_P@PGnhh-kEK%cw7`x$JMB2#M{mp6NZ}zSfF!%V9+LXk zA5R`tMPF=W|00}eUv4kWHdoeeDG+_OCj^o)re+NGZ->8qnqPPnJ__I_k=bAqifw_n zM7WVrs4H>;x9gyo)HS!3zR2X-ddLB&<7yH`gPulct-Ex>p!a=F^u}A{;nF78z0*#f zMtRi@;&S$Ys$ty(Hj12nEdc_&4=p4!F}@pH;n5uLDAkjDC3#E+Z=7$vB?Vneq*?~d zLy zF==86{S2oan`^o@*^|WK1u=y+2Jiel?Rn0zzVW<&(oZjP5z^JacnA39(jz@aa)9kA z?l_?^`&O4Q;9f*XzHAzo%6>(4WiT^!2XM?`teGC{p3zeBv+b8(ROnnKtzbt~1hau2 z`b6Q;uRqBPUW>~hkR)K4e%|FTdc?CEvt#_+Ku#N35h*8(c~|d38(@r1rVFZ}Tz|*l ztiJ#-#K0PV;XJOp|LFrdRiL{9w*GiaZour8AkBb=Ybb@V&X+t!jtx8pB}thVA+|+- zfej@J#-a;aUQi5a)PDKk9-{3-!0|~Ku01SV>hE{`%(o0Qc!0zxE0dbHRbRZ_`30T< zb5!%zK}az7!c`aBy0+#7-fLwGUlJXp(AJz|;p9NYsWdo;d>ayWNx8pTYkE~9{8GHj z<-yMZLcL4dOY2M5elnqU|E-PUomlsx;ND5^t6}JJ{rN0{<2{{`FnMo#O?%w=GM(xl z8KLgZnI?ynjBBE8JC=RRzU{#4uQ=nvQwiz;%^y*?B=w zkw)G5x#W;Q41~7K#srBp>FwKId7VI=s*~=M89K^r{;I$S$fZyECtAO1$Te7%mOv(8WaZ>Y__TmNLb%K545Pl$0UyB0A*|;_(+o`AI+Ffs;>~8XEDq_Jb zb`=!7EsF1RT=>YSD~|_-CufVylMg>2vOBptmxX6?jP#UiX9*j$3Am6SI&0-a<#;Of zmaNB*J6Q5x_X7)DLQ*;G>fTJl$NE6gVzjd$fXMYFA7Sf6fd0(yEwEiq%JNXqF0ld~ z{QjrypSoxH75ODMN1`sB)jV5GMt$2QgFd(cSCy2`M*_A(pgqmWSpd(N(o9nVUdys*AkGSw3Yiq+$V%O_Qf zJMOWuf>Y@suWO|qIbOE0qt&}tndO+wvDa3YMnN}~gP_q#%)4_-9T|y_zi=`>yC-wM zeE(ARQp{H8Ss8Cz*_2DcRe#=fJJp!#I;=sq$q#6EI|{9B50>NJ8{cK&Y}RQISH=4Tm!$JmEty8(x>oV)}{ZB;5*9!aRqHwfd|f}5Akb#y~R zea)9+=R%d-XlHM)uHtj{ar#E-C*n>M7KCC$Y9bmUyzN5f)7^7Rfs`$Z zk&!Gnn>$Dm2ReMc5+DAmkkylz)%oQ~kk#`K^bb|a(;NKs_M~W7GmUH8%gQDeJ!B0Y z49b+*`6>6wFOb7Ik4Qv@fK&(Mw?P~=`o|*iUd6;Q2VccxL8NFUw8Qy?o2rj)rx(VIn;yee-`FDiE`!By(Qtz zwyJ7c_kP%bZDNi8=C>mnM)si~x_`R2_tP?;EF~ysW2)@PK`Nzo)Dl&IZby=L{6hO< z?;jUc=V5+ihKNYHWv_{}=ck0LN7+*>C^~&tiJizW^bI~9U2aUN3h*DW%#aQ(AgJdH{4u0ES~Dk^E?p*sY!)65?>>8|2?cuk8y zL*;S!YGHw|3=6WQhqy%9b!ZWx!mc)U$n9U!DofOAn82g*JIST?*mWgt6w*Uar=z$BP zr1L*(`@b?uv>r~SS36<#x4?cP&m4ZM_Oegbz(kNPu^WiM>#kqrh?L1z+vL+l=4J`gm%=^4z)S!UP<= z?Be-CYRLzK%Vq8Va3ZngvF_9%1>DRWpUmvbUR~H(ZPPS`Ei5g*)v3r7W>0z1U%onU zE^l@8DlPxryQHiS!2`U`%8&3Yd!tjg^@(y9=JdhB))bsSyRt6NqJntQ688m7RY%Y# zcK)SVTe7r$Ja;i_D81I<*!L{i!tY|}V`JJD*uq#b zIo}20#~2U;_*>fn!&eE2HEe-H2Pcl9M-di3sJ%*n1~8XBV43y@;gg{$ak*)nGPw+z&6fT=KR97iluTpt%P51Cb3F}?A zv6g*^9-cU83;xsGOA$3%c%)tB%VWFP-qZ?RE6d2*)90u8O1MpH4)X751xZHMWv7Py{V*oMuY zcJ}PVmqG*SBi4!Ag`s}|5Y?>$C6d_mTOS+UROZ_0m~O0*2$gd8ZdI)i#XpWANx-u@ z%jTQ~3JWb{)hG2%o9h4W+$T=bw%6{sY};EJP`qUV_*Pv-AUOIAojdsuHfk|Oi-kTR z`vV46D)#hvHzz$(Imz1|PVc`nE7xS-NdFqL5!MsZb`4!h18FX`s*451F2)n-k*1kZ zIYSY^nuN#5(~4~<^)rEQSiuGNaL$3z(N#^Xud#5L#hUWvSK7y4Uh3k}wG&>hCv6-5{^%V`-H4 zIbJ?kT^_5NlA!$~rWn0f!I$A8v3qme-YgmWwy?T6MGlIxL^PaTg(Afv*j?KLQ<>?e zN4Z>UQ#aJNSL~2YZ4G9{kQ!wstFUHYHXPSj>tdSCE_BmR&cH{fN)W}cL$!SWmcVdi z%9cwg&}t)G97Y`O^vO(Rn-XT7{h)29_vW|PiFpKVZ2g57kBkDtMRE}X@mGM$wz@#y zk|0O}g}%*it~r|Ig_-9N5b3hdx*LYS!<)Cd810c1ySRz4jvCZUr+T!fkYL3N#(j+$fQVB7x&AtR>raE636lCd`MiQ+t>ljQg-7Mj@`ir8 z8cKfRfvJoYskg1HZCKZ&oG+Z!j-2$vx8LfoT_60hLBB##cp+ufph)q8tttlGw{u^_ z=SD_1F|%-r%t%p_wSD;DD!W9ds5?s&{sj&6v_Vhp{D99sM@Tl>#~ zXNKAh!ZBnH-Mo43atj^-o@`)uzC4||!srd+l)dI%|K?OcvPGo}QZlGMD!&4Q*Nl1t zUy)F2`-fv4sP{Q8G~J;_B_rX(?8k%}e_{BsPIz}?T`_p1&Mw+v3r%%H4TJV=e3fGl z{`2F2wyb~c<5;Oo7U7cXc7am7o% zg}~uBY)14=4TuZL>(5?NvAn*#z9M@CDerIl+!jpLvjb{ChjKpq*btleMhaeEMMAl1 zoNOnyAmP$Kt)3qlNchfSI7=WYX4A>VX!eqBl109;p$#&ysQJBN?VTz2s`T^G(DR?x zrV^5W#c1Lg(doCrL zn}qv9&ryI4f~Aj9Y|d%-2|Ol>kH7F8on`#yt1S9`7E%S$ub~i;7O5>g2Es*8?7=2L znO}JuI0;Si3)HQYl!F$Wclq!Cz-DUje?jn?1nAL^Ik_~&Lhwn^z z_L_B)k+mQtDdz?bjWte{wGU}QcYxr4_Jor>zLxY4dlgS_6ALGZQuo#3dJsr@ z=4I43T$~DRpT}C;pGtIu26;h6wnpb0flf6Y##eVI4kGU)2U-_4248m*LbJy>{9@yOA-PG3xxc@+)S4rS^(Q7HS|^i8Wj-!V?Qm#B*WPQA zQQ>L6fE`s3pRgfu2fU$p=x5g79sJ|-?5a!FTFUUMKe4pwDG!ZWGx)MQme&r`H{`NSJl+#pY8U6Goj5S6BaW_Ik(zNJK)3jkn29DK$_`?` zwq7K9{VepNm-wN=)MKMxjIJ64wb9GDmPYU&NDoN*_-J>+&Q$yF5$%ju3;A>K=PYog zNRR|^7)SyU&&04=MA@-WCkhq!+hu-i%`6lx_f<;+=g=rd#EFP$La14`*?%hUN~J0J z-U8cG@KGMq&H8EF)+QA+8*!={y?vpn;dz?iMlBY5mV>r2i56sgvNNPC2UE}|7 z9=7hte5PG|Zx*0}dWIx^uldwB1%52|Xr3@cxz2Mu+BatZsVcYbf|hx-syN)^<$;i)I4$|BA2Qt`T9lVr^S!+|6ovY--80o$x7w)Hwq zP(7up1CU(4>auv@CO4HUn94L@X|Cat#`GMOW1KUP&pZ!Oa93$taAv&P*~XntJ_sV9fYYLaSz5C7@7vv*Pi`u79~#zCIs0N`{w2^W;JBr_c~#;$I=e+s38& zgG`#3fpen+aUe;j4qK<OZNOEo159|&bIOwPaX-S7_PWj4 zy`6DiXxE|z7}*qqLUSQi7nQf>FYm-dFt29nAUltq2{QR*;u8!*(ku@`ArYh2yt4kk z8Mdjsx-+_#teVw)WFRFpE{se9<8rb`@zqXlDaAt<6ATF?31<#_78DfQpbUINa6Ei zw1p00?^bVt-wB;l0hbio4{?{Vp*TQXS>8jw?hPFjT>PrsikBG%QUG}F0P1e=E)J!H zfqYr7h=B3&jr_&sT#*+$f=L?>h)N+vOxq^H~c>E656rip!2 znJpfzkxzp|l=U}-HVa~gzRafaw$pm1pl4gxd=A?gJuhg~f6gRKV;&qD6BWR#c&u7c zUUw2JYbM2VZ>R5L_EeF`{t3Oci?4YD`)#$uy{POdRQ0>sOH{VOxrsp1#P+v}>f-TM z|5fB0LUXSB>`&1{FgMSRCJ?Lp*SJmU`Nus+OVN71?8Rb5W@}X-P3PXH6e-Tf=W8~b zN`2EYw9S)e{dHuTaCP&|Q64+m;x8sPnc+Q3YkTiXS}8ducQJZ6c-4m=CeHosKEFI+ zZm(g0a+Iz(RULZCQ%Uor7q(-dwUN_u5(w{RY?(Kh4G9Iw)3RaGq(XFP*jTCYtlqw6 zqfu>0e$Y?&b+#SxGxPJGp=Mdg-=#`_#yIJuDm=;K3DwnKe+9m7ynw)`2NIqixtX%X zL01M_>RiuW#yiPb(kdsv$`$_poOu&{r-E<4l$Z6%`dfjF{cNXxwu;#rP?qfc(ng#+ zqq&T&JKG;(2O(8J_-r#p1aYI-&!7C|vwvqa*%Xa%xsLPmJ{nz*-$vqRO{0*zP9_-t$z??h+~rMS3s1DHfXM5z5bH2Kmlv;}L*Q|X9M zu5HQ^V5H8=u_LXO;2wF(xvJHzJwD_v3!3AJuzplGF4k1zbFdCO@v6zfQsn609^XNf z-XJ-yd{LwBOD*QFGJ0uOSx1PfxQ!xU_)`rLLX0L4)FNe6R=#F$_J0<6pUo{2lYK@9 z?OQ_g?fIqjFBQ#VA}!#=bZD#QHaP~A*`0zNEiyucGlapIW;b5&^;#I~CTWq}R(A+M zE3!l_hemyPkxyWt&PCeodTVKZdO^d^C%251tF& zeceB0{6b^Od81)UZvdh7MK1trS~VEbYR_&=)EDlFvVEl%7i(i~?-J53&9wjFm@Ej0 z)#&fm3b>rIwzp*kKUOh|k)d}>RsqHZq#g{VQb_W!R(FvcDq^V=j?vB5csPL-HC?M4 zPl6~>&U;rT;~gu{)UJ}1_>ZmWdf1{k9=-+=_jPtA5W#shxNK94yH9}f`)*twV_2!< zzA|GFt2zwHTBu~xIM)DZ3Jv?hKfY7rAtQHBVF{LWh#7i1rNSrb7COdfZp6kb4Y`m4 zqO&lORlzEswlC1rfivCYsIiMHE5u_69pCoBA`{Gk-XvBLc5cMK{r-gJV=J@Z@k%f& zjzbFHuwuH0cGH!4)6ca{iDjxgwVJ}Jtmq#q8UK(ht1J4kxdb;x{VlKF=R*J9 z=wf)-C2kSeB&m+yvw^?WB%BCrDv5nU?vc)BP^!69q7H!N>#2Gksa{JW#kQ{G4DV}B zPn)X#;XDRO=3{0NC?7?KtaYi*(ZaU2)QIT!OerM2xZH_!q|Q6S+uOqV#pY%>-Rk)K&nEqQ1owvkK}d@T`-=@RWT3=M2QI zZcGW1iOm%HV`Bf_^YmYv^Pr@VOz?6WqnZMT4r{&DX||3hNjO*%Q_-{hm5zBEy}*3o z2$90(d&Y#*_ZPO~%X+cXF%Bzo-~L0V2)s||d|7F~K`siWuxnSpFtN4KO4060@?I`> zvfJ&a?Uu^ytXAEZaedumY0mCsRDSoYba!;DdtttI<-9>Z@NCD`@{n`R%_YDD%K}LH z3+^F?ach2U=ZN>L5m0sL@-giWHXI0bedLGES1P|evhe>QSQb`h^5U=ZZqc`$D769C z^`nUmDzKdebzsQI7@*3?Ca~lit784v4A5g4U9wJAtJ_bH||) zqa{%4!tzBK*5DyOh1Xjd_$EYx*FUFkq)=$#=K}e;W^-Z9v z$L%8DdeJgipbX-3Zft)4o0qEoeplW4hVkX|>T8l|UZHd~+ku88G`Eof@Oq9D?Xcvo zWhV#4UN!}P#FN&rzC0U&!868Xl<_IXL7ji`iGUbgF}E>nRwSiK2$zqgkPtVNeXIB( zPo(e=FCM-&mxp-rg$tGgaM4`ru~k(qCLsnr3}o9*VDNQjt4CREUYfD=NgJBjm;i8p zkagrHPYk4gaW;x#O;)Kh32%sYO&Q#>o|MA+JL?WS0oaN)C3n60)&uTyl7wJ^3q&|} zvcUxi?7?56bWK+u;;L>kWg?g4F3>=+|#ymq=R?$PaZ%6%Ekx zUG!IvSBPt>6|W2tg7|Mw{Yc}q-Z(zqt}~i6y;;HLxitr6)wcKxw!tI^)gTE!cRtS= z4I08l@fPmG#7J(#m3?1cYW@S-x8L`=d3Xlk2OqAqpiKr&z^E>hmem!zW#j!Iq8c{! zw*ux>*zl_k?sjAkSND@uJET3MK=XWtPGfR_3;)8lceWIZL2Rud-ZJ~<&P9F1gCSp3 zK$O7?Mdv&YM*WlpSz0H#JiY9e42?V3kDt>u<}=L+ZYVW`+5j15a#4CJ!Hey}e(C&( z_(e+^OPu$&uy;Rh5>BIdaqzt#?>^?e%*3x zLQj0)OyRWe7#Wa0y=TWAG0FpAhlVh!#1JXg*sE!{g`1hyu(4Z}L$=nyTmD7aFJKgB zLeFL76YJ{EYTyEZ`#a?QUfa46L9L5Dv@UDzG7};T@YgN()7w6Gz%92IR} zE9x=jV&Nat1vpD3`ne8o=Ca%Er)Tm*RaGaf7bdP-Ma<2Vt+M@Sjp#4GSSEu-G+x9> zmMa+XJzz~sI%aAxFYuun;&FQTD5?NSnG;yLdZw)$`*sP}1;B8HyqKoB9J#nqEKtw~ zf6)TRLD}85XFcfx`7jn0$E0>X{?J~R=owiIVbn2 zw*-F|*Li1P9<_mWM*GIoJFWL`{(yYUlm32s%^=VZd|}s3fr^CJkvfPU$VTK;u9&W| zDD4FuSZVL@D;g3eo#MG${=uTSDpcv3W-nVWJ*1P|L!*J(LE@NYFpelBcxL^N1nf&! zxqZ4FBc!y?((em@JgypzOi_ZnaNDOe=2{6*+2)TMXC4~8Pk9nV2G!X!CXLJ8iyMK> zfV8)I)+0p@&eNmc`1j||D9_$^=F_}%|CC2P{Ob0FF1m~{5?ME6s;7KDX?|BTbKE>p zJ=$F3Vu)m~aH~1G&08!gH~V3C>TE5n@)GAkIsk!#;|8g9c)hsI%pj8mn_3xd%p1)ehNIV5J$FD0Y5qcyJtPaOMlypq`3K5{w z0GsqL#E&*#FV~IcJ6lrDTi;{lLqbm`I-`v%(_a#s-_Qp1_5uHJhHIt|jMi@kAlFR$ zWEuPxC(mz!%KtJw^Q9VQl(3MJH%?E4xWgR7X^n{0ri zf&BhPJcOa?4E9jqm>3t$7{4<0QKNzzgK$-JuR8QN(yveK`?LW#J9OI;5`xJ00qxIT z*sW8b4B+5UpH`QEExc?#{m(PWEsKW@g^Bx2B0|hKPhfSq)*c8ckaf%ix1}Y5XL#Wc zW(P`VQc-HAKIUAxV!2CsC$U^az;>sUiTT9pxE#LnbxCRif+Fq;r0SZu16v@7EliRY z2ye$XQtJOvIp2=TrWDA<8B9Wb@O_dpMKw|&P;H|h-P#ye zw|9xozF9@qH)_{d&tTKF>LvsE)QGY$v>4*mAF=XHzX^hNE*3N5g>k6g&x*moC1_}2aP$B!IuVGhLjuTkT+&aVm1_6pW2{Z z|8QFJy{(b*`?pMbvbS~+ghq@cgz2E0IpEVJsSGxyB6ih8CC;yY{QVz}P~9ek1G9Jw zXpz?J?^sMtbK>^}G;HHU8jP5CMhR+aP^|!QGjwC?e`XH1gEOt?v^^3EF7g6w$^+lr zvD&(#JbEz#s6k)ewUZ~aO+Yp4w*LIiD9;=LzPp9c`SD-;EqA5 zZ-YQ-8_M{nn=Jj(sc61-t2Oc4@{a9t-w4YCYJ38-ua2B6xuMb96GFt#BGYthXVLx^ zdL_qsu}7NAy(4#ZTi|fC4jdTe4JKvkvm7w?Y9UOQAjzemmZA>`YBptvFZx7RE6H!-_wd|4TW=z7L#>?f_B{>NW^uzZ5!wt)(4majcBG`GcYu>Cz9u zU;861mcMM1eLCuxxAQ2ZfF=2Z!6SyjuN*A4ScE3TCKZ8_P;~FOg#Jkop)ePK%kkY8 zf;3C8JY!(gw#bh0h~Wp(%O=SIi7%dDJ5k#kDi=G%joa~b^@Kh zM7XAMDyV@k0DD~`<(#;O;4r~;RLqs(!lNZ8-h4(RVc{tCKb-P!!-SdCJGiV35({ze zyUkp`rlp*a3P1yIC~E=}jqPWuY@h+~iwik~8XF>Q`LUCwkQt(_DU+B8F7dy?`mAkJ zWN9^!N@YtV-#_5@0$UQoPP^&Q*1zNg?b5OEIRAn>*(3fS{cX0N!!E{u?LS0(${0&c zuach{ob4{_1vV@7J8|@YUlc6>_`bAY7?EN>=6PqSz26YFt%wTcCcbv63&znBF2{KQ z$sBW|;MPf_ow^8Z%`u}xcb<3@;TbKI**PcB)EOTC|B(PEK`%huix@%FEYlO)B|+G$ zfhC`%6!(^v$}vXuHoPe_UCzS^VLkW$7{Our2THI}vsSB)?sao$&aZwFb4g#1kvlT^ zSy2cX=u^WlPY3UqcZiZseQ&K(8w#5Uz*Hd{10 z`O5OK=s?9D7ptG6Rv+3*IChvsC)pumy|cutX1%keyH3BUHGt6!z-KpkQD=Zr8ZcHm zfgt4;XPi1!;81+uT7@s{ffnkCGPto1`AVV$rEs4TbFeNgR5zqr`>LvVYkQ-;&>Bl2 z#cSi= z4jUKmHE}hIYzwM_U`*6!ynM%=oSic8M#9)L@vPF**LGe&FOcRhfv2d7&cM9pBm$79Q`GBrD>Y>|oh?E!=ytzJCxeb9qGj9s{lH_ziF zdux)pUP{!#tA10{@&cY(Me!+w=y^cJhR#9A*Zfd~0K61}G#LJc@-be>QJ<|jDd~ph z124PZ`_fsCr4bsXTK~l5NPY;B5gF3Nlh4oY%u(^~IQ95kB~5;lJb&Blb#E}B^#-v5 zC(2@sgLl!$O*AN+zhdU_NFU`@Vatl*ols#-R`<{vGI(YJv?N36J32neW^X4PRhlY(0JLrl?VutrC z-Zmf1T5thVR`$9mTg`rh2oD`}6i^UR)ZDN+A1bOA7zMDa)vUB9rX65QhFliwx%p@h+phvjLjC=>nMy9QS6cHZ%Z*VV7R zMjV;6(sU9&5Zh~TEq901*T9LX9P%G8)u5H&cWKdwIAePA0QaGOV!DdM>L-jvAq31M z5ggAosnlmHo6wyz6n2VD^c?kPR~yayAvMec7L9vpS0SBaUZ&W?XMH#+*QNzbdtR~o z^H4>RI!6HeM7$c#xzAjT{tsk{^z5n;X?9F%wqj>aH?uyqC*Cs0*CYgxKnlssZrQP| zQNN~o%tknvz>Vj`OW~ujugS9=ox|_s%;by}{ow)fg({k

cg8I(l!|l1CMRDb55j~zi^tIkF?#g!~)nN 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 E4H)YEcu$@S%HvaNn-j1) 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 YMVV5rh_Px# literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100644 index 0000000..7423010 --- /dev/null +++ b/main.py @@ -0,0 +1,235 @@ +from fastapi import FastAPI, Response +from escpos.printer import Dummy +from escpos.printer import Network +import sys +import json + +from pydantic import BaseModel +from datetime import datetime +import tempfile +from .qr_generator import QRCodeGenerator + +app = FastAPI( + title="Print Server FastAPI", + description="Server that receive request for printing", + version="0.0.1" +) + + +class Info(BaseModel): + content: str + ip_printer: str + user_name: str + + +def print_bill(data, address, waiter): + d = data + # Crea una instancia de la impresora ficticia + printer = Network(str(address)) + # printer.open() + # printer = Dummy() + # Imprime el encabezado + printer.set(align='center', bold=False, height=1, width=1) + printer.text(d["shop_name"]+'\n') + printer.text(d["shop_nit"]+'\n') + printer.text(d["shop_address"]+'\n') + printer.set(align='left', bold=False, height=1, width=1) + printer.textln('===============================================') + text = d['state'] + printer.textln(text) + if d['invoice'] and d['invoice']['resolution']: + text = "Resolucion de Facturacion # " + \ + str(d['invoice']['resolution']['resolution_number']) \ + + "\nValida desde " + \ + d['invoice']['resolution']['valid_date_time_from'] + \ + " hasta "+str(d['invoice']['resolution']['valid_date_time_to']) + printer.textln(text) + printer.ln() + text = "Factura #: " + d['invoice']['invoice_number'] + printer.textln(text) + printer.text("Cliente: " + d["party"]+'\n') + printer.text("CC/NIT: " + d["tax_identifier_code"]+'\n') + printer.text("Direccion: " + d["address"]+'\n') + printer.text(text) + printer.textln('===============================================') + printer.ln() + for line in d["lines"]: + if line['type'] != 'title': + text = line['product'] + printer.text(text) + printer.ln() + text = str(line['quantity']) + " " + " $" + \ + line["unit_price"] + "\n" + printer.text(text) + + printer.set(align='right', bold=False, height=1, width=1) + printer.textln('================================================') + text = "Descuento Realizado: "+str(d["total_discount"])+"\n" + printer.text(text) + text = "Total (sin impuestos): "+str(d["untaxed_amount"])+"\n" + printer.text(text) + text = "Impuestos (INC): "+str(d["tax_amount"])+"\n" + printer.text(text) + text = "Total: "+str(d["total"])+"\n" + printer.text(text) + printer.ln() + if 'payments' in d.keys(): + printer.textln("Pagos: ") + printer.textln('================================================') + + for payment in d['payments']: + text = str(payment["statement"])+" $"+str(payment["amount"]) + printer.textln(text) + printer.set(align='center', bold=False, height=1, width=1) + printer.textln('==============================================\n') + #if d["fe_cufe"]: + # QR = QRCodeGenerator(d["fe_cufe"]).generate_qr() + # with tempfile.NamedTemporaryFile( + # delete=True, suffix='.png', dir='/tmp') as temp_file: + # temp_filename = temp_file.name + # QR.save(temp_filename) + # printer.image(f"{temp_filename}") + # printer.set(align='left', bold=False, height=1, width=1) + # text = str("CUFE: " + d['cufe']) + # printer.textln(text) + printer.set(align='center', bold=False, height=1, width=1) + printer.text("Gracias por visitarnos, vuelva pronto.\n") + printer.text("SOFTWARE POTENCIADO POR ONECLUSTER.ORG.\n") + format_date_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + printer.text(str(format_date_time)+'\n') + if waiter: + printer.text("Atendido Por: \n") + printer.text(str(waiter)+'\n') + + # Corta el papel (solo para impresoras que soportan esta función) + printer.cut() + printer.close() + # Obtiene el contenido del ticket de prueba + ticket_contenido = printer.output + # Imprime el contenido en la consola + sys.stdout.write(ticket_contenido.decode('utf-8', errors='ignore')) + + +def print_customer_order(data, address, waiter): + d = data + # Crea una instancia de la impresora ficticia + printer = Network(str(address)) + printer.open() + # printer = Dummy() + # Imprime el encabezado + printer.set(align='center', bold=False, height=1, width=1) + format_date_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + printer.text(str(format_date_time)+'\n') + + if waiter: + printer.text("Pedido Por: \n") + printer.text(str(waiter)+'\n') + printer.set( + align='center', bold=False, height=2, width=2, custom_size=True + ) + printer.text('========================\n') + text = 'MESA: ' + str(d['table'] + "\n") + printer.text(text) + printer.text('========================\n') + printer.set(align='left', bold=False, height=6, width=6) + combination_pizza = False + pizza = 0 + for line in d["lines"]: + if line['type'] != 'title': + if combination_pizza and pizza < 2: + printer.set( + align='center', + bold=False, + height=2, + width=2, + custom_size=True) + pizza += 1 + elif pizza >= 2: + combination_pizza = False + printer.set( + align='left', + bold=False, + height=2, + width=2, custom_size=True + ) + else: + printer.set( + align='left', + bold=False, + height=2, + width=2, + custom_size=True) + + text = line['product'] + " " + str(line['quantity']) + "\n" + printer.text(text) + if line['description']: + text = line['description'] + "\n" + printer.text(text) + + if pizza == 2: + printer.ln() + pizza = 0 + combination_pizza = False + else: + printer.set( + align='left', bold=True, height=2, width=2, custom_size=True + ) + printer.text("\nPIZZA COMBINADA\n") + combination_pizza = True + pizza = 0 + # if d["deleted_lines"]: + # for line in d["deleted_lines"]: + # text = line['product'] + " " + str( + # line['quantity']) + " " + str( + # line['unit']) + # printer.text(text) + # Corta el papel (solo para impresoras que soportan esta función) + printer.cut() + printer.close() + # Obtiene el contenido del ticket de prueba + # ticket_contenido = printer.output + + # Imprime el contenido en la consola + # sys.stdout.write(ticket_contenido.decode('utf-8', errors='replace')) + + +@app.post("/print_bill") +def print_ticket_bill(info: Info): + info = dict(info) + data = info["content"] + address = info["ip_printer"] + waiter = info["user_name"] + data = json.loads(data.replace("'", "\"")) + print_bill(data, address, waiter) + + message = "!Impresion Realizada!" + + return Response(content=message, status_code=200) + + +@app.post("/order_kitchen") +def print_ticket_file_kitchen(info: Info): + info = dict(info) + data = info["content"] + address = info["ip_printer"] + waiter = info["user_name"] + data = json.loads(data.replace("'", "\"")) + print_customer_order(data, address, waiter) + + message = "!Impresion Realizada!" + + return Response(content=message, status_code=200) + + +@app.post("/order_bar") +def print_ticket_file_bar(info: Info): + info = dict(info) + data = info["content"] + address = info["ip_printer"] + waiter = info["user_name"] + data = json.loads(data.replace("'", "\"")) + print_customer_order(data, address, waiter) + + message = "!Impresion Realizada!" + + return Response(content=message, status_code=200)