From 9b6b676dd17e4e56e68c50cdba3ebe5e607fc4b9 Mon Sep 17 00:00:00 2001 From: "Peter D. Gray" Date: Wed, 18 Jan 2023 12:04:16 -0500 Subject: [PATCH] refactor --- unix/README.md | 5 + unix/bare.py | 199 +++++++++++++ unix/{ => mk4-images}/background.png | Bin unix/{ => mk4-images}/led-green.png | Bin unix/{ => mk4-images}/led-red.png | Bin unix/{ => mk4-images}/led-sd.png | Bin unix/{ => mk4-images}/led-usb.png | Bin unix/q1-images/background.png | Bin 0 -> 175962 bytes unix/q1-images/led-green.png | Bin 0 -> 3618 bytes unix/q1-images/led-red.png | Bin 0 -> 3581 bytes unix/simulator.py | 423 ++++++++------------------- unix/variant/ckcc.py | 2 + unix/variant/version.py | 9 +- 13 files changed, 344 insertions(+), 294 deletions(-) create mode 100644 unix/bare.py rename unix/{ => mk4-images}/background.png (100%) rename unix/{ => mk4-images}/led-green.png (100%) rename unix/{ => mk4-images}/led-red.png (100%) rename unix/{ => mk4-images}/led-sd.png (100%) rename unix/{ => mk4-images}/led-usb.png (100%) create mode 100644 unix/q1-images/background.png create mode 100644 unix/q1-images/led-green.png create mode 100644 unix/q1-images/led-red.png diff --git a/unix/README.md b/unix/README.md index dca58d39..3d5ec269 100644 --- a/unix/README.md +++ b/unix/README.md @@ -9,6 +9,10 @@ make && ./simulator.py +OR + + make && ./simulator.py --q1 + ## Other Startup Flags @@ -28,6 +32,7 @@ wallet (on testnet, always with the same seed). But there are other options: - `--mk2` => emulate mark2 hardware (older micro, etc), default is current-gen (mark4) - `--mk3` => emulate mark3 hardware - `--mk4` => emulate mark4 hardware +- `--q1` => emulate Q1 hardware - `-g` => don't skip login sequence - `--addr` => go to the address explorer at startup - `--xw` => go to the wallet export submenu diff --git a/unix/bare.py b/unix/bare.py new file mode 100644 index 00000000..c6bf9600 --- /dev/null +++ b/unix/bare.py @@ -0,0 +1,199 @@ +#!/usr/bin/env python +# +# (c) Copyright 2018 by Coinkite Inc. This file is covered by license found in COPYING-CC. +# +# Connect to a real device, and allow simulator to use it's hardware for SE access. +# +# This is a normal python3 program, not micropython. +# +import os, sys, tty, pty, termios, time, pdb, tempfile +from PIL import Image +from select import select +import fcntl +from binascii import b2a_hex, a2b_hex + + +class BareMetal: + # + # Use a real Coldcard device's bootrom and Secure Elements + # + def __init__(self, req_r, resp_w): + self.open() + self.request = open(req_r, 'rt', closefd=0) + self.response = open(resp_w, 'wb', closefd=0, buffering=0) + + def open(self, name='usbserial-AQ00T1RR'): + # return a file-descriptor ready to be used for access to a real Coldcard's console I/O. + # - assume only one coldcard + import sys, serial + from serial.tools.list_ports import comports + + for d in comports(): + if not name: + if d.pid != 0xcc10: continue + else: + if name not in d.name: continue + + sio = serial.Serial(d.device, write_timeout=1, baudrate=115200) + + print("Connecting to: %s" % d.device) + break + else: + raise RuntimeError("Can't find usb serial port for real Coldcard") + + self.sio = sio + sio.timeout = 0.250 + + if d.pid == 0xcc10: + # USB mode a litte easier + greet = sio.readlines() + if greet and b'Welcome to Coldcard!' in greet[1]: + sio.write(b'\x03') # ctrl-C + while 1: + sio.timeout = 1 + lns = sio.readlines() + if not lns: break + else: + # real serial port + sio.write(b'\x03') # ctrl-C + while 1: + sio.timeout = 3 + lns = sio.readlines() + print("ECHO: " + repr(lns)) + if not lns: break + + # hit enter, expect prompt + sio.timeout = 0.100 + sio.write(b'\r') + ln = sio.readlines() + #assert ln[-1] == b'>>> ', ln + #assert ln[-1] == b'=== ', ln + assert ln[-1] in {b'>>> ', b'=== '}, ln #ok if in paste mode + + print(" Connected to: %s" % d.device) + + sio.write(b'''\x05\ +from glob import dis +from ubinascii import hexlify as b2a_hex +from ubinascii import unhexlify as a2b_hex +import ckcc +dis.fullscreen("BareMetal") +try: + busy = dis.busy_bar +except: + busy = lambda x: None +\x04'''.replace(b'\n', b'\r')) + + # above is quick but will be echoed, so clear it out + lns = self.wait_done() + #print(f"setup: {lns}") + + + def read_sflash(self): + # capture contents of SPI flash (settings area only: last 128k) + # XXX not working, and not for Mk4 + self.sio.write(b'''\x05\ +busy(1) +from main import sf +dis.fullscreen("SPI Flash") +buf = bytearray(256) +addr = 0xe0000 +for i in range(0, 0x20000, 256): + sf.read(addr+i, buf) + print(b2a_hex(buf).decode()) +busy(0) +dis.fullscreen("BareMetal") +\x04\r'''.replace(b'\n', b'\r')) + + count = 0 + self.sio.timeout = 0.5 + for ln in self.sio.readlines(): + ln = ln.decode('ascii') + if len(ln) == 512 + 2: + self.response.write(ln[:-2].encode('ascii') + b'\n') + count += 1 + elif ln.startswith('>>> '): + break + elif not ln or not ln.strip() or ln.startswith('=== ') or 'paste mode' in ln: + pass + else: + print(f'junk: {ln}') + + assert count == (128*1024)//256, count + + print("Sent real SPI Flash contents to simulated Coldcard.") + + def wait_done(self, timeout=1): + sio = self.sio + sio.timeout = timeout + rv = sio.read_until('>>> ') + return [str(i, 'ascii') for i in rv.split(b'\r\n')] + + def readable(self): + # expects (method, hex, arg2) as string on one line + ln = self.request.readline() + + arg1, bb, arg2 = ln.split(', ') + + method = int(arg1) + arg2 = int(arg2) + buf_io = a2b_hex(bb) if bb != 'None' else None + + if method == -99: + # internal to us: read SPI flash contents + return self.read_sflash() + elif method in {2, 3}: + # these methods always die; not helpful for testing + print(f"FATAL Callgate(method={method}, arg2={arg2}) => execution would stop") + self.response.write(b'0,\n') + return + + sio = self.sio + + sio.timeout = 0.1 + sio.read_all() + + sio.write(b'\r\x05') # CTRL-E => paste mode + + if buf_io is None: + sio.write(b'bb = None\r') + else: + sio.write(b'bb = bytearray(a2b_hex("%s"))\r' % b2a_hex(buf_io)) + + sio.write(b'busy(1)\r') + sio.write(b'rv = ckcc.gate(%d, bb, %d)\r' % (method, arg2)) + sio.write(b'busy(0)\r') + if buf_io is None: + sio.write(b'print("%d," % rv)\r') + else: + sio.write(b'print("%d, %s" % (rv, b2a_hex(bb).decode()))\r') + sio.write(b'\x04\r') # CTRL-D, end paste; start exec + + lines = [] + for retries in range(10): + lines.extend(self.wait_done()) + #print('back: \n' + '\n'.join( f'[{n}] {l}' for n,l in enumerate(lines))) + if len(lines) >= 2 and lines[-1] == lines[-2] == '>>> ': + break + else: + raise RuntimeError("timed out") + + # result is in lines between final === and first >>> ... typically a single + # line, but might overflow into next 'line' + assert '=== ' in lines and '>>> ' in lines + a = -list(reversed(lines)).index('=== ') + b = lines[a:].index('>>> ') + rv = ''.join(lines[a:a+b]).strip() + + assert rv + assert ',' in rv + assert not rv.startswith('===') + + if 1: + # trace output + print(f"Callgate(method={method}, {len(buf_io) if buf_io else 0} bytes, "\ + f"arg2={arg2}) => rv={rv}") + + self.response.write(rv.encode('ascii') + b'\n') + +# EOF diff --git a/unix/background.png b/unix/mk4-images/background.png similarity index 100% rename from unix/background.png rename to unix/mk4-images/background.png diff --git a/unix/led-green.png b/unix/mk4-images/led-green.png similarity index 100% rename from unix/led-green.png rename to unix/mk4-images/led-green.png diff --git a/unix/led-red.png b/unix/mk4-images/led-red.png similarity index 100% rename from unix/led-red.png rename to unix/mk4-images/led-red.png diff --git a/unix/led-sd.png b/unix/mk4-images/led-sd.png similarity index 100% rename from unix/led-sd.png rename to unix/mk4-images/led-sd.png diff --git a/unix/led-usb.png b/unix/mk4-images/led-usb.png similarity index 100% rename from unix/led-usb.png rename to unix/mk4-images/led-usb.png diff --git a/unix/q1-images/background.png b/unix/q1-images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..bebf66c26c9404540919896ed81f5fbeeb8d3b01 GIT binary patch literal 175962 zcmY(qc|4Tw_dkvzOA1+HgcM~NRE)^h*kTM>vW=yPhB0K#zLcdBvW*zqVC+LOGa^eH zCCS)^?hz&XQrWZiyLr7okMHC6*Lb+E`?}6`u5+H}oac4!N7qdaxj98RnV6Wkjjrig zFfp-UnV1f9va^Bz;gdzWgFnpv7KU)9nlGZWOiU6?MtWDRf}IvxLY^yj-Wbc?XeDk$ zhJN#;40xWVvKgJJ`&h{R;162<^K*6<;b%(dw^5h9Qn+pVPqLtJZ_r1BY}qAk-9?j` zVq=7F4nI&5IV6Ze$g?~UJbRkC=oQhrA=KHaZF2Nclg*}6OVf?O*6E4P>d%$GrPu>E zeou6!kNIC*v9!CVh(lu z>VoH#Sn)6wzC`v-^REAX*;7`Bl}coK(Ro*U*cy44ti>tej~Pzq1TJ5Q;L}$;nA@6P z2PXK7n{+$fmtM|v@q^2V64}>+{>-yOkF}gh;A1UQfk#*Eg|J~N%lVgAX$ChLK^J^i z4_>W9#)Tc4zt8zsCOR6=j?K-83-=7Z-{tMaC*1D0_guj_`cdO7HIJ z$oQD4Wkv!8=K?$TA~oLiy8#+=Hsq*(7-z80+x$Jx7%EYMt=ED@_5BB{!IaJQ^@a{% z8y0}3b)D%+$j3=l76?ndN_%t1mS{4^eOUerEP?-W2Ow~g5nU$1RHyG%B>fQUjm94m zLxkJE>|d{qsglW~L>yaGQM;;K9g%E1j%O*zYZFKoy}9tuU|4+p^wlm}+l0-sDyx@M zTcJh5GxgM@g{s}c3pS?A#|f0 zw~ASgaiR&uZ5(GBz8D|6fA&#Ob6U&lrmaRDH>X|RagJOUZI!9_MX4Dd0PP{Br-Ig7 zt^56TQQ=v~seNDXL|N%nL~q1b zuATdeD3D8Fh?0$>2emhI)v^7a=fQtr-q_&Z2`-=>R5>j10aI0j^LH42e;b3tGJ5JM z&nJ{RNaqW`MN2u7_s)jR`pe{7ML*rj(lSdjW8|O13byYsChix~cldx(3}Q?FevQ;y zgj1wTNv}AeJIb-pQ1)rHj`z${)5j%y#2yOEe+sTx@?e|*P4onMAA(D&ZMit{!>bPYoDA=D zuKV^Y`>$u_hjp)IL57PY4mV60yDH!O&3$9u>_wK=ko(nx-+g(-Vqi%L;DjMI3V>6!e`iZ6T2g6;2@4LoQ z9lpoEALzUNu#S2Z+s7s!QKOmNzm-1spRyG%ILWXrPCI_q@JN^S*z@NPwtX-8Vi4U%D01Gb z$r!D~KJlKtu8sG$@icmSAM;0sQ}B$80-vjTd)%3=ze4{Oem`_0^%@3Pr(W%*!5VI* z4Cbzu7By(k@?SHqKdiL7PI_V^lD-VCW09P)lFW6?qLS|et5rEyK0g+3Bm5l5=q zlYb5yxSTb{?xPEBcKPz7;r8xYV3u<4u%v6bAkZPkBK{!lmTwYw6F!_*Nix>R#(ozD z)nyFa9~+Vp>)BXaEW|F%DN*O=)3^1G%iQ+C+vj`eE~}~pb+y0AP5!uOjTAHfyFxcR zq<3DApk;oyUgM0AD>BX-xrd>wy}V>GKTP(W?32uLUi>S+t{e31RZG&ar*m)>=vXil zMf5x$F(!>pKprZud#JLt@avaTc&gi@=~np@$32SkOdgt5B?XfLvGk5Q(2=M~OJ0fULD(YdRYa}fQQ;!io-|U}?NOXv7`Jlb3O36x&fw*AQM9Yr> zQ{KpLOTar+?2=;spZAO?OAbgr`819G^*t(WH@&1n%f;)O$v4R>>*H^~ppH9>p4_e< z6pL$0QKAKCO!yA4CwD6>-+k(Y65G75LzTcQPS2_acF%Vjdb2j4dX3}0#gG8o5CA~ zA5%X#*iS6ubsrGSCX#3}A0ZE}ES}1n%lE*ai1@W=E@SuZH$UUk2D#n!8*wdlt9I5O zjzWIDDQ{I+%>q3X*I>~|{x~@lwqv=cJl0ZLr$6o^0z7379Y&i18e8}k!lrQ5NS)rl zhgw9Jr5P~15Q?f*bOLqRK#d`PhmVi)0^eZa?R8`}Ta0xPr3+Om@RURX;?4J!d>pdMm z877}VldiD-3+n#Xn{!R5EwaDYPto`$gJ9j$@}4onh}ZN@NwQ<8wYxW4P2ChbwqLl1 z^?Bn?^5pVjLqgt{Y!mIR1uOTM%NJiJ5vCpkRyGW7jT0 zznXo6X9AlyEFt++2me^=WFcu@Z5rW}k5L1KnK5DvXDt*3+D?>UD=ZUJcAa9cK7b|eH8_ESET6;fUO_As z_~*S05x<`i8kRv@U-~rj%WYaVnIylAI$5@%XQ*87m5;fC?SGp=*P3&~CQQ^xLFgmB zUXvP*o)xerTLjvCJo@dcG+LfmtLGCw}098xtpQBXg^Laq3Gk6=*3K`v=H=4bGH%t zN_7}rlt5xbpLzKs@Y!xQ^`!AEsHSbw5!RDNa-4S$<;BB(3vsezW2qH^gn?NLu6YX& zC~iDf#J_IF2$ghSNm`rra&I{KEcpkGE;IT~o$@w|l4n*rzw|ceo!RBNPW#4d#=0oE zbKW`A1IpCh&wRkA!OhapaVUB$00rw+iLhaanuJ6eDG(MdzInGy#a{~MxW445ztapQ z>USSu9`#8vP0FNA*?d@C^<~BFcs`*>-vaf0*plz1k)p!;rqnGvOhi%=W?sb*jjvfJ z7Lw>ER6%{6rurv{#ZsZ9w{acD=&mzl_Y;o&GN`ht0mYN6nfZrQ;dqjC!@kL=6G+Fs z)ke=R7Ti5uFa4p%7PZ*KZ@*~NAex^*7I<)`ErZ&f2qNdge z&}sc-wf2NUH&*KK2l{IgWWySxFg0?5f4Sz^W{V;z&gP%%wpCfa`|p*##on>tbrg#k zusn2kMROurzBc{URQn{8gTQkpAwstbD?VU~l@r6`;{ny!+Gsu#t5GJnl03YeO;!1v z_Sy9hnB|BneDiSti>NK}e86h>w+{Vv~=$#{G|S zMu*(LUBnAkln|@ehxqA|j6VC|)!*D$-VvANvG85Soqor~4f5p6MJn#?^kuNXD`c@M zYW}M zRXX)mZhwYoPUVv5bLW+n7kaN}(OqWudUqy+f9BBQE6uL__x^A-3n?1@=rEMj-nV;3 zq$i^7)~BIMZgEuao6ylq27GYH|HdV=K%?OmUh)Uy)K$4a$;TyBob40Xb^kY{kfl)o z&CKtI;n`K(AB9k#-VsP$IEU@~{#WfkX|Bfr0_CUpjprK3f`|=84%x`wSQg<_W zxbb3jv6Hy{I|IJ)PwOQye9-W-X}zK(5AcV>0P)|>pUXX8bvzX|5n`{vjYMqJ#=v@x zes;Y4a_33ro#(pFvDDl-`cJ$~!`j6C)ax-&+3W9|Eb+e(y8V5-ip1`eim76H!QoFDgK0VH3xr^)WNx5UB}GB)`O z?|@QxUXP|xP0{lYo)W+O3SJz&TA$VGG1NCQ;GXQ869eo2m?y#u%^dA9xmI zJVDgMWpRvaxGCC`@s9(m<2Hy>mYA3_(Ku)4|KQH+g99nv-{@PrTR!rvl*NCsu$x5# z`-5an*j;XvyisAF8n|JqUd+mO!G3FZIN$}0ot?cb)@Ld|)?Gs4*3htza%IK2bvxzL0T(>KL zo{Q(z+%YZyQTlaL27gAARU&x*98Vi%avy(HM1NG2{(hSn&IiEnEN@29S z3TLdWqSXYY?1@*sCDQbCw+y{XB0ZyF0m-~Tw3ji>TBOK$5q90@S zH<2cMu!+-T;(4oE3=slJo6rOq>_muHh8PX37ly%i?3Pcd5lBbL9-bOk$eTFY#ZhCX z8;`Vb<|!>-WO&Zq9GlwDO>1wcz)_^^PVpf=n&9@rSly#D5lfJFT4UB<@b|!s80r(} zw(P`G4lZLP)}$h<#OBp|g9LJJm!!j3yTKggp8^K~o6RCg<^^yS&F`HM`-||o-SjtP zor)&S$J3_H!yFsWKjp+)^1y;zVByuQ5u+d63IqJinc*m5^!#B%Om2f=42S*xBFslK zrQ`UY7Lu&*{xm`nSSp_5`9U)5`Q`UNpkFGcpK9it)m*1n>PnI`A5hu7EmtJ>Kq-~n z4z?Ce=qq^&>H!X~hp4hv(@JBYNhHSW8MFnsk{w#tIF-g$ZuS3`ksu53<$QZ7b2A3U z9qZxsjZNRM9z-d2EYdWUPv=HaigdfPFD;yx&^_TTpg^XT4jRpix8x1DXAbhJ5Rz!t zhElS{=b5dfwyqz;PqFfUw~6HE`C7-ddh6B)g(_cSOr^zZ>O@w9P5QGZG5hlhcgYpZ zAIu!i+3Ww9CE{+?8maekE41yQ(qU?Or**61(KxD9G#1l%&CW*|%Yk(xaA#i$FXb-( zzW>_so8`&`mVFuDez`6IXG}gWygSs^Qn8yhLOK*s;r5tjeGH&khQlG(ccr2$^~7Ia z_ke@ud4kjH6#w;;{Xn4K31H44m>ug@h^(jb0MU&W|ECVCXd0}TDO9Do<6__2VbO=D z8)D9KH{@~|L2ALmDHc|1FFRLu_iOi08ivy0lsde57Tm;=G*f%L|0J6avo3=(B3!Cz)gL#@| zaI<3Of7-E7YC3FTHcESTnS=$E^a;#GrQnc4i~rwHD1^LbcAUnz>OU(%o^*V^pQSeo z;5x(hM;S_o%mnFjUTbJ2JAb1U1)x}214jJMVe7QwUklFbZ0FrWn?UJy+!sJS-ly&f z)j99H{Rp(BMm&Nm>>GkD{K|Tx0;uwE-m5JBa7O5q252bs+bUU1m3$G(GFlI6jQ8aQ zjb||9v&d2K4;db(C$TU%%6M0vPTfCO*9**Fmpnn}<^?UaD*Ma04yYMe-8E0;0~0Sd zM|BL~Sin~x1QJON&j%%7L(q^{DxVm|&6+tEYrlee+c)x9>Y_<7obiGNWAy?@GlHy7 zCo3EMw`rVmT#ly+8U@ln(MdFrxc5AL>v@-q4p^Xp@PUuA)cg?gH9}$1@PsA-D~wJ* z7}WpS74Wv*p8$EErB%~DDCW=K)+-!r32KUKM`6oBN-pVXsTQtD7bIUBfD;i1lo{UF z{-@-gSaBBA6O(O7O)Pab7Z(fTAKsTR)cUl61?7L6$(I2O9c^*MRXp4O?;&*uuSa5y z9*rMg?DZ2qOP(x9kt#%T?QaUzcq3j@g~UXF{*yMxfWAHV`DlSh*o?%5K91)qVU2`t zmi=LPO8!@G*8{EeO?^zKE+?{#iD6Fw)dzxRI=caxhs@AX~DrfO^{{s1dNF09kR>d-o|=RIr!wr9v5W39SBh;LTE#6L;K z)2R8MPXIfG-6sxou~vPND_PIqzW(MjBgg6cR3f=Pyhngj(FkrceDahkf%JAl7zE=@ z9lYwn@*OhW?&i#k9>}UsAX6trIYa)Dc@6!JVxK5QfSv;UnD$Mdic@h<^|giV>9YjR z3_t)J{Y#%Vr{Xa`n@N^as%Ai?G0H+Ima2^IIIw5|f;m;rLyQl4q}J{a)dp zqS}%sRN+r)@?f4JG9VVl7|n$Y3nsu8Giyp`G`tQ%mj<~o#h2By_Ev3kNCDZ-w5hqn zW$nS+#K9=iBF*;%;MrZMr2xl^0me*>BARtq=DLI0fpgE4$)nKxv|KuRhkhG>Xg}BY zHFh3tB8#1GmOoW?@87<(qn{L~Q)s0Rs21QMoS4$v$D9v-mIa!%`Y{ePdYabxX0o#M zS?hq2SeRZn%!?g+nVfm}z~_<#V$Bt5m);ap>egcYV(zh7ruhtXit`R=kco9UTSeOTP$_V9_4m&Lh#~;Nam>A;+;DIBb zKRZxZ;ju4Eg2x{(J=W0wOm++O)SfhulTV-$qe1mnHGV!&kth9G9fk0p{b5{dLiLQ$ z_;{*R3ON{0+c86W?K>n7;;Cj?-a$Hw@6#o z1d{Y0tXGrxj)KpIs)i$U?ecL8|A)xOzkI7-y?Q0o_CvD0z=o0dW@Nd^a@)ytXuM1> z1~=mh-TZzTXBkbiW&=QMztnp6B?0e>^hu$!wRUwopnAZll}-hslg?o^JnFmAQ~(qV z^nAG<@*sOF33@V?%H!E21=Nb?le<5c@|E3`+CpRB+-zR^ADqqMvl=A81Q7Hv!Q1g|P??AM2u&@JZbslzAZt8)``}M&P5S9aqUh*0b0uT~S)s!suAe<9v9T70=xBk~|5PhPy#%*GD_6&U@O5jOKOJv5c4 zP|!LV-Hly9F_DJP-ZTJ8o#c0Z7o8(XpUm$0Z@#ZP9)-&hs3S+BT|>1l?R zBL--Kcb#*c?Mi%F{jhZWL4*wLN=c;@>0oK4no@{fwV})iV-qO`A7EVRXb4gO>dQ)k ztRQMx`vhKm;mKdl3m8ArMTgDkc&@Jdjw#rDE0nOSG@#SXx@oxilDq~(o9pdTrf-Z_ z>+W0KW#^K6idk_Cw!OXq8V|(kyxhe~5C(I}Cjjf~uMaXFxofNm&!4jhqEY=1w!=$7 zd*d>DQ}nHY2|Ie92WS>>eC>RI5-fdnU70e4aa0xfmmCQz%lsMAwaCc?gTW>+Ph6Wy z=plDclpZ8#qsu76+o<8sDm3aE*WC<HLs<3_XQTy8Au zH(o%H-+4wILMHv7IzPIQF;hIcjJa|V&iHF^O7%~}n3zJ1qGF`$aF(ejP!k`hpEAm~ zn34mA7ZC~aARb|ZPGq_W8v&Uf5sO=&jsRkFhm{Y`jwu0gi3mb~2YSAsS)zfS(bun0 z&q6Hhwuj*UUPMr3H^A`SZzn+RzUqALmd9PWg9C5a0aBjykZ+Cs7>q1!P+{TXC!E8I z`FHS*Q7=A&*~3vek!q+{aFoytPqT92;E`t)QD0;_Xa{IzXw*#|78(=F6t@_2aU^TF zbMc?1O$DlBAJtBVXC&v*tnGc9weO)J_rch!B^(QDw)JStWyulZ#U-X`hJodSBpjc$ z)wO+^3@vz2!Tv%AB|aigg9%i3WF<@-oUxca%}|WhUX6H$JlPpVa+)s0R=RUwDejiy zLIh;3U4`J+!fth@)`vH5Brn=qzW(_&-@;XzoN3XN967bDxn`}zg8eq5F*oYRXPfW> zs|Ql0s%F1vFg8b`*~jJy1z%3P^<2r1IKU6qc3OjN)geBztaWg^!yi_yhw)?)%{P-yRPe-==S`}kWLL{XH%WJ}h0 z8ec?)O|oVUG6pCl5m8+#LoCZ)QcW>@fae#o0xX|AyDICk7}{rj@ef}_=6>pqri^pM zTi2~Ih7M!d(bd{#w9e>(^!+CKTbdBKg|Cw2rS%y%&Oe8XM?0Ht-;Sk94fZe^l&3jB zMc4LTA%K_9q8%BBv3-e${NEWknb_J>52V)#)T?PScP2w@3I{Ds;EX1@&>96WtNF4! zJOifwQ_Y;{`nS&Be-6xCrz?dPFY8vHZmR6%)J3l30GfCks@<}mY_7r4EB!A7%s|y# znq1m|qCIFU?pA}Os`4(fp80SmD(E14F@c>pALKxSH6UOTR&XB>v&0jOE`z%8iN zast=c7%qr^;gF(|NQ5S5LtJ}q7pY28)w!^@$(01K%+jZyGdp95Ce|~iAL?P+8 zr!HDoqQ)KlQ=ppS*TJAPe;o)88&JKn3L}D1hrZQrCU?UCbPCH@YW9ePjy}4o;U(rt z^}b3`NrP6>(je84hnb6`SzE#sQivzXf!|suPMsbBZ=fw-fQ0LY%h}z3>r|mnE=wgy z`uTPi#}dn}n+z&w>6A>x9(3>8&CkcMi5*?(FslmXEC1oi2{2Fw=`sI~gWX~7zb6dl zSZ)C|bwUA}=b5p2T2O8G>#mU>TqHrbt8f7`#Y@;6hNXXlVR1pQ@#Sz{=0*yT$?9qI zB9^A#blYSBV+T&qHP?3g_e|(@PB4AcNB&(PMFsKzJ1T3-FJ;jEP6Qde z5PV=sZc$p03#L+jm8gc_AP48&4x}W5aq5`rAuR6B>5k}6<98HxL6bOlCNY(7Ub80ghl?eV}O?q=+SIx8W;57jCDUVP@&V_G8Q>oXVQdYl45kpn_WonSC1^>T4NO}?cLy*0^+buGi{qV4$h zcTONSB-0uUrIhdpc>?y)i#rAOtj1UIQ;Xhv#u>lU=QQemig5JQR+XI>f-ZHi}4-v9+dTA>UZ)+Q36W zpjojAys)KAg!X}1o0&Zv?{ta!T<&HIIPR;8Ps;)P*!Qdw|L&hp8i;R@!{ruc4NtW| zD+{Q^yy3 zHKt$m!|@w0d%0M9mcYa@CWo?fvst>+zOe6aGF2=h`0vbz*7vcgWCZiE&U;-27*k6N zWqIE|YsupxEiM}N-;~!yP*&o{3+!*sAG#+_#W*0YpMnO70jRAtZ&&boC9y_oE}rHd zO$D7!wRthlZ*#FN{P*i?>g{Qo-KgMqG+Q61h?3D#k}xoSIC6XO$49xZ`)Ne&te!Mw zN_i1#vxU_TA3P|Ci(RH2reifKXd(q=$%{)_fp3e^;(NlE6NUo4_r z!)!OkXuB~qYZpVYe46Hl6 ztHQt1DF^6ZCD!S$E&WkzU^AJ_0LyJ%jMWRo*9X-?ckr=P1zuO5r$G${ue4{6{3Plf z(;mtvd!%P`TE)V!28s>h-p7C);+oUF`4Py<-BruPa&qIwtvj9l@m4KlN?F~|aM2C5 zDNFx3rL5l-xnRXkR221_IMMwo%dzSlR%RvKlIAXxQ8#vGaI04bFO{u}p8v;r^`2bA z_N$+iga*&Dy^@opo5LykbGlWSPdAdOwK8F|o=)}5A?;S_;t0)R2^h>2N)CBHUD05u z0dzaN*4F6<&TcO>T=f=0G7pbDas_K~ex1pW=W^~He^v39w4Di)o)^ow2oip9Tzugz zB%l3J+-*~V^G!Sx>K^zl{livVoeK99XnPIE+}UZRxwk!*N7TuI_NDn+MuD&1Pm5fB zK77ns_D?JfsUe7kVp@p>jfuIqq33lw18mrL!KHq!4Gj%rJ^jO1Ka>)%_wH?sANr|V zS9F&I8Xdea?=WUhKXxSX<E*gOBgOAy$4EqDSZZSR4`H}&Pex}juUILZ|h z#7E}D_PL*q@Xp)8cutdeUnm*ulFwmro28wZLme}u3iqQjRGE36i&Kr^Wm^3>zE=kI z7Q3si_C;n%(t?c0miHfGn#DVXJETa+h@103^3r?TYX1}gEDO*POK)~lkzeOC?EH9N z;HM-x@5Se(GuRSt>+};@(ISD8(A&T*j~%;0=zY`^t`Hoj@PmzxVV7N^r$kan4XhMM zretsV&?8tXQq&%P+P!Gv=|ui1=O(^ldx*>(gFOl~{ex|oY}rEKsM?&TkBYwP7z=nN z^^hq+ebP{uzA1CrA?Rvx_L+w@f>FAE`u_guv#pdtXg_okY-M$elLP5rXs1ztZvl*#(HJB^oci+03(b+{^#7@jP|+rfE3jQh;) z>7Nbq!#Mrwv5t9uHeu%~7}|-Z_Hb+7Cma(;ZM;CYS48Jek7t>7yP$4I7SRMLbgdK{ zj99#H$OMsI*Rfl+y?(evy85TikTgHA6=aEph4cxYh-K=wB{YD^--mk3cA0P6Lt6cU z+gDQ_Letsulpg+Wlr!s&k6xt&LCz}X$VI##yK6ecgl&XHB#BW5a@Gn(=zRFwe%0XTpO0LCjnOMDG9jcM9rH#1Fi@nm`!4BM8~4T(QWsBrNIPp6j$)Vy z91bmt8@3~Kt4o*U-BakO(b)E#Xm-)n04!8!E)xEMAaif#jb$tBAS}b5Q%t*DJJQ z_2rYCJ4hMk4${&mSE~|Hhp;&mbUBCp(0OuFM7FjWz$eFxv~W?aoH{5LDz8TEAg;ZF zHAYu5)2=pCcb z63j%U=ygNm=_fnfx)Ds7)Z-I4OeI^Re<~wt?k@(L;#JK{O_lRNim_t@t>dH<{Lkok zBAOmTR!$Ehza+j>zeM%2%IUAIQz?m0hw%eNeKRX#;iX7Byi;Pz3x=Kl;qp=mP7g+# zU#gSsjF5yUW>E5;g5P#S@~ibAF^HUBD6I4WdD9pYx(EacV3}vQ$?a+?8f%6+->Pa<8YRdc1C;@9^nPcha0{@?@&DS2n9#y@Y2NbNw!t}F zngVAfVAa1t=|r2)Vw5-?2q$;9$)^q${ndi{M`Qi;h{+=?&bx_(R;xb!d>cnhpDx&q zH7G$2$qNVFEuTiXS#F}gej-6iy2Sc{$f72UegUm3=$ua;wB?N~dmu*1u=w=0Sk1G9Sxx-cEre^K@FNdDV|}*rZa*GYkQ_ z%~LAXI&wm~A*$;cf|8ArC!W-R(O=&5jM`2;hqVa8ZH{0RLIwmu=U5YpnxbLkyKWbe zoTNx)3UlNhveA)4yduO1Qfw1Qab1zxGFtrU^0cA(*Fa=tea5;4FYzyxI>?eqEC4H) zpP%v)NA@T`p>DOB-{5Aip2`ii);7v{EN1@B@%uV%+w1}s9J`@O_@HXD+NF$~e$x7b z8I7QrSyt>jk%v8>pcUr`$O#s-Dfa6|Htc==cdm(d9x_+|xIc5|JE)5{vlJYa zI^eKS(%!WCxKWwh?MBC#xK)*rMtPDxcxezwu;A%Mb2siY`XvF`Uf#^Iiyn`ODc(0N zpP#=fDQUc~(v&B4WF(R%D1?~c3MQU-`ahjIoFQ|Y{V?wNsB~bq|#2@us z(T;@?ix6jxIL*1Na7lIy!^70Q2CbCcdS$9qZGfhqW>7%E#izfYHa{@(vfHM~XzO(;#Cb8I3?!T>=S2 z)@zlhX_z!pd+UTd)Jlg*;ENu)}c0wXS{TDS8;3M5%tegR^4Sgz9L+-9@5dn zAEXzT=9bG572Yk{8;`STQ+e4$_s{eXF`+EF$A6z=XxIkCrefa{)(5^mle1Mqx z^;218k1r5Gr3l4LKMxDS$(0$gT*!eC?#rR=z;Ws1?C z64H)H?CLe}e(aR_>#(I$4;19c(7@%)pPoY5h39YE`N0O=y{o~*mA(w1mbCC6Xf<7Krl@Txk++g6 z>;WAF8&$dB5PNJwkcJ1ow+j5Ufv{R@Rb6J@#CO?qvE^?loIs|PB)3ehHxjseaWre2 zxZv&^DF8eiO;@h1OCo8DDaC%y%J8%U+SmXK7qApPVW&ipu1>mBSsnyZoPm@8M26RFT%P z{-h$}_ClLki{|6%QFw843&yF&+6Ep^fW?+qh?;iW5hy znk~kNAI`M@TxI(qH=X3j?JtAw-BW}&ti~n!r^7tcoBkAwoN1)XUv%BA z;T?I3G*5rmn4bDWT8Vfr4MA4GQBj`qGL&EY!iTi;&A(Ymt_T9+2mo1s-@W}w?u!>0OK`Guop{uN~ zO1j`I^14f9ZzK{b68b*FV%`btJy^(I{S-4*(rtffH?cM{%2g=LRmd|I7M2%GF=^7A z3(5I0+l9yl2+(}CQaFApphFjRJGEZH*z%^um6xa2e%IBluk}Vh>!24K;Qqu6xFx@| z@cbs{e&9<}grQ+&rQ4mq`Fu+UJ`amTPsP#PD|p6W?r6Na7A1CiwyW=-6<*~kO0~m2 zz(7c?Hkempxf()J49NXhTF!iz`=N&y$QazIwW52|#H!&A^Ti8P?vq+}GSp*`fl6yjA4_6ID4&~u0e^1CP? zL&Kwg;9ia8dkP#9%9}jJWGBvn#bqxtz^{Tp?(oODv%$<>V^}Hnm(=0g#p}?j5TBeR z1J}eS%y!Rsw4Gox_W|d^X)zJ{>%SucJAV$tUFV5N5A9J(Y0_9<8(3vc`(e`F?}JeXv}O-KA0R)3EVBErPOj#lnY> zM@3M|rJ`EBt(J2IAWwyQ0xpu)FgYY4oN zaQ^^?es>bAEyx|6o>s+OM?LXWVGrbVYir#tFkTcjy+xG^XfOZOlr0mA?py&4SGgR% zElMeUGz?0N^g!4D5^!?uV%6>S;qpE9hI`Yg=W^@btR?|@sd!~r`YI~_>D*Ff47HV{ z{AjxX6{VCk{i;4a38TKGtc! z_-77JHR-OS?Al&|;|&e^!+8Kc0`{+k&W3}X{CY*!A@F;!c*r@kjo(XMfvE{J(uvEY z&k8=IM^{}FJ0AXh0?RYgvmyWHzrscCPICP;HXJoHT>8YflX}f@;ziuo9Tm^X-w+F@IqNyj#0&exCbYr|M)&4C1 zo;+umD}!;AC7;Id5Rmn7Q2-=ppSVN8b|c|K6ELS=tZXt@_l>Q@XOV;!;OkC#)-F#Yp13B)Z`|}&?;-}um(t?z)$f)7yPa3(b;CT0ST)h-ohJamo z?7N^J+ol8Zd^rT-kzltjHb~7AdC6ekoTUid zjlmy%-^R{3!LOV>)+sGz3dfiHBKCmoVndboU8k>iJ6>3KK03oT&?2e?CNrGaUDOM{ z*rV-8JEmqn;=vK0+a%{7E!;J{vKTK7eVsS<<9FN_O?(;ig(Q-7g8c%q>Eo#~ViW=b zXAoGV$SdX98JCGve~jat5o*9TR4cezT*mvjV}cg=J(v}A!9O@BPHX&4Je*b#nnFz8E^B)8^AO*l)Wg z>w)LQsC`m%?>M zz3@V?f~}?RX)a-xVz8rKqi((FAF^dohIwarm;>wdHGkc;LJfhhW2drUokHz~E+GVn z?-#z|v|Zgg3wIk>09p8OArA z`Jkf7c+sj*+bezogXJAjP+q!Io{2{LD(PtPa@ws;@Y=-CwrVU9VD zXa*ihOnwNRBP8ioCAhh+ftPIc?m|8Z18y~&w<^*d>d@1ymCuz8=G!Z!e9)gOFy_Wy zu3)*8^LesP3am`Jm9>VX@RrFU(xe zie7t_DKzkfAbP$dInp=u(+;IZNJeel8_xyAV{D8^tn)&`1}Yu&7cG2JO2MR&$}!!l znG@=kP-1rJG%w>vkzC8-<1NvCap3|w+atqIiL90T77Hv5xui_pI%-{ArX1nC?_uQc zF`x?)HWemQXt4a$v~ytJQ-F2s^VxLR?A%K!w5}8UDQwRcHk#=6NuZHG(d|uUc#(QH zHd5rf?s%%p3!Ti;qz*yn$hjAKD@un+8I~e&MgX_%@&y}nf0f)c-QSlj>0Kk(kUr{8 z4h8HfHofEd0Mf{VSW76X3`y(l)Fe7S7_h;ttxX$2ERwi}-%A?QBwH3@e+k#`>GegLp+1$4QS@u1 zEv41dERv!I1ckHQQ}wqOxAi<_rJ`bCB~1%3Aa^6IZ=m3uRmpn|!M3S$eey!FISau_ z$VDmieEsCYaHyus>Gre5P7Ko?gKM3??Qy52k< z>aYC+Zj&ubDax8`3HkbF%`!!@g|ct)jbbc=?CVTrt0alYI+USF_A#;-p-9Hg*c$t8 z82gx+=Zx1J?rW464B)U8aH#N@LbqN?DguaH?s|E4uNEQQwjp$WRrsAkQ2qs zlZS6Wr9a#S?LFjvj}y=(-`|m6CQ9n)oBz2y*vS;&%M4EQK;BJ2JRB z!r-XyA&BE{J)P6e0?QPV`MkNkx`J$l=Y8bx1ot?7Jea=IYo{@;a0%Ea+@2iND}Fr} zR%<06tnG1o7jQeU8PO7j&%p0SQkJjb!S&4Dud%H*@C#Nyn+&jw5#ruG!W$Vn%L~jB*ZE5@YY` zzK>dn*ou-KljEMkR?ckPa!UW$Y67k*r=I^S4En+k5;Vwv60`?%4dlQLRDKeG6+%(T z6~mxe4Ej6>_zz?93bKo_zs|rU@n|o1g)JZEUosloG-*TTMb|n#5AW*~w%3WF01=~7O}`+zj5ty0tIQaBSVSwCes7hq@&`*})3kkeapgI0U_wxOY+WUX{2lQG~7H{F*II~f9?yZF+>oK6KUj0L~} zDJI<}2e4IFh34xYNI^^KYFvX^IIjM-s(dkh6?qG#W@NMQiii0}_-xvB?QGRuN!>V+ zl)2it09~Ys{p^=cPzxLzZpr-up-fo3yyl> z$|Ppez>8EFFfO*s{geV7zHBl7;5aLWZTmVp9$ozdHEmZ&%w3*bxOH7`;YK-j;Pg=z zfNR;4>)VNC`rynPcN-b5N)IpLyNqLYSg?JPMz`5ZkiMK-ba3llc1= z4f{^IuCl%HC0QJ~q?xYZ6g>O@;u`z=%J!ju#)R!x?w0@M4q7Idx1CC|FgfGbU|kmP z?|9OH>IJI1z^$G+SNA`~v;voR@0J?o?&W-?r*+=^#k&6s{- zBI&spmg-(v1;`6tXnfv4xc@u?yGs^k>SKZ7i+|7Y|-soD<=b08hwqSnqbux6a_S{np~H z|1LZyU~Wc!+H0x7-J{M=a#_NBT=-V-quAWXmOoz$ZA^VAPZab{X_*2?jjb++Vw8gO ziMEPL9)*X&bLXf1FAEkYDxw4A7vr=cm<|9jX!-Vx(je`KgH$D zeh9+~M~EaSW(xoA7|NFpz(*ZDP@3x%Zz%HPDjuBbyLv~i|8uBX<~8i7Ndg_Q#^LoU(8MvpibKu4B>VncD9;S9F+NXxlNa8?k~w9XJ~?PU za$9z)&Dd5#a`VHyl)o?^cHqCP(Dsoc>t|t7H=l*P!u=nrWfs=^A&ak0HCfq$o5`~E z!D{uM83tHIz4}%EcUKq!DC2kdj>ZI`K8BzC8fub4R8pc+UA}9+Et7Mj7-xzH8EgC9 z(_YR4U3MKVm(9nkY_Lya&D`zf+$kFaO;t)prZcY;#r358?6cvytk;TnO!tE-#V|R2 z37x;#@YS68fFMLe%NXw#iCtM#&5e0(5I(KL{9QkFP8a=aH-%dh^a9i%LAPEun@WP_ z%=7z`3YIc(QSU^@6phMnqPrXRkXd=+bI2blHLILo&UBK?`vyZlF6x-^jK7)FGA7t} zZJ3jafuSN@pWj;&dp?I)X|rB;xp9d;7yD9Yd@-`U?CN*kuIF3d zFm>vlOB%+~uLwOhBYv8@kA0GJCAas*r;MM5jKL~!(RQ`aemWR8!o|E$9R|Xo& zUe(8ZB4syDgBfYDCeZ*Q4*5#vvB zHDY9jks8!(;Jp0HU1i^`CzJQwnDK55O82j%tpC#?+s*#0_zZM$;98qZI85Uc>Bca} z>(2V)HdX?A+fO^ee50MKKi#dsDT*IufunK&V!ZmDK+P%RyMulwzxO9=8*N?ne7x~s zw3n>TPEK72Txt-Jd%4+1sYLn4dd}eGY)I-@Nq0oO%pMVd8;lY4@2YMnY}*uwh+6w? zbpOTZ5&RWNZw@Oyx3bvEhOcdOTLy$OotR+Qt7PV)ABYX4&zYk6PRDfH2$i>K&j-qa zFEhaG)8oVfEiPV4CEc@^E+L@T_`lfBNal2`R$0YYV|Ku8{3i{n#>WUn8rV+nnAUz@ z?n32sOdb;-I5WW?W~GE4*(8KNdHk&at@jOiEPM?kI;)p1aXa^gweJzrOB@y-_N2_JZSRuKPm2w=t-qoAb-euq(U(Uyu@AYFkZVPFlb4q_q(` z%4DK1YdIn*C(N3hPb26VY_HB0O1SekMGYT;QIy5bmUx`*FV$Oq6`L+LsXbBt)4aD> z31fY@&B6#%eh&}oX+n2hrJSYNf!+g?ncvZk%ugK5`QIvkkysIaCj zlNMW-o?>myf|SEc(p z%^Gyom`qGoA&SGFN=e_O#-v__Nr5bqX5s5 zbFW*N%-F-NCf_*z*sZesX%AOxZA-*zDX9B6tzCzbJ~=}`+sHYYS&(oka=Shu=5`c6 zG6;ITp31A`Nz?jX7G|9O;6?I7>wnxYDa!0yPgKlJ47Er(%R;JJXRL)xNsaC&?9)Pa zN_U8l6z{XY+;n=Tq~I0UK*)(zOIna}Av@yw*(StRnFucj1hW9;pJ5G8Yah+aD>O%K z1Z9lRjncZLteKuMnI`=zN*R%4w)Db|eRxx`R^6yWhOoY(rMLPr!k6FfYv} z!z5G^j;8QJI?;MY@@aLRApN|(U+KYLjjop1jU*Rpg+Etz?x%d11f$L)1bpaG6s)(qqD ze9>G9wf_5z7p?K~CMt)w)&4)T0*cB&!|N4~!nk)*$?O$XaSW;FyKX+giW!Z(+M(!| zuo zcV!=tV7Wypq7{8JzXea{+|LAC;dHC-5)eRFynpApo=y>s*myIj76(5QtlD}qpqmcN z=A2k=s6v)%HUt_Tg-Isr^cW+4rZJx)&yD42Uz2{I2GYg}o$!87iTN~BE{<`)(HF8k zUdzAL!;2Aix`n*v<+^yLJVmJeY#zWn{iqRgmFaSuI*DwKVFdpp1_0f6%OsD$ z!q3{W;5pCp>Ra;Saa{7N+V_+_+m8*rxqG)?>+D(b^JiccJ2xLi;}jhN1%of%9Rk3w z-8Fs$uqraT3n?b9neL)M-t~#XmiAx?^VWLM^3!e(c(Lrls*qV%`ZiL9$o3ue;`^A$ul~uCZv|;GGJv zFS&lK$N<3azKw{r@SV~T?zr_7HP={gJ|`VPEcVuoT#V1I_TFV!Ie?a*h8vP@$QQ=?}@gY~z-I>o=8YUB0uyb6Wa`?RqX-+(4Pt`FdZVMEl0$ zRTCZPXE9#)xz27~>67J+&*fWid6pp?TsEmeWC+s=B9>x4ZR*dx#ezLkr zp-{*29axuN>5Ic}FgWPF=eWF%>SFcR#xSFblOdOH`}%7v#oz*h^VCS$g@+649;l}; zIz1~j@GU+tGmOsq+X)E6J~&-ufH1+|pV#`f!q*Kd)M~@`8Q`IDQfcViO~P#(D27ih zN5OgH_S{Axi&}a5*S+HT;psIxz0-857la+6;@>oGz zHCM(_WFEFgI1KCOx0!e&kAshmr@L31r!nC7?pFgGIYc~pCh3;cmiK#2#JxwjfDhN$ zxWvU~0h(>%wP|8TJz&vmu&71|)=%5H*(Ha?SNu39>vJ#rTuk7nF{-rF{J^V9`$%jI zyC^P9%;FM8&)w};26VxzEg&e{g!OZk*6`q+iL;+8SYTrkC)8X?Z|!%(r$&0!!aHS> zn&2kJc+o!fR zNQ3nCw+N}*uHsKC=*gzGom;%La$1I)2#FZy;TMU0kS)_%t!#NkSEly_Ol2djJ#1m$ zz%`yes6y++(I`cOy6LBu>u8D{K0W1#QXq)1H(r{aFCun25^E1#Z~`@%ea|Bo*bF+Sf=mzh@z;jUrvU-TPhfxtr@W|GOQTX zb8~}GQCFu@HMqABdYeLadxOVd^W=N$ekU#QOPiiymLH?Q{f6bhG( zuW+MRdpp%zJk_(W?cMYcWs?T&H(OsGf9f_!M12KRW2Va%+1a#6{F3?Gx0G(qDrQ*^#NRKPXmkK z>XgtuO@i>i$cA97BAxRKF9JKs=lat|$n=oLb}W+x)BykloGvnWMq*#!qBBlFq42XG z11{)uslv0`W%0CA0o_j$>AqnbjRhB}rMlx@$=&R!<^6jbKg;uFHPflV#Z|#5G>2&X z)41OJmevs)=V6TS+ie6|MBG`(IdKr|w&cw>DB9ht?V^k22d2@ zgI%Bg43(|pBCA$)6xW$Aufs#9#KhnSt{k`bYU>QBLika+0E?gq##-?lD@KpY;BrAQ ztKXCStsWCHedQgASOb>x5`Jo~QnV;MY60O^r?(72sdsaiCiI(pV=OD?#EYUhAf3Sl zNpv)hFc+&-fvePgFhZBj!3d*&W13Alm&;xI1FA^B=f`_eT3t=s!nT0SlK&;MbmbW| z<@);L6)BLqR{K2W%PACwYDsY0TTCW*A2Z$@cl22e;QONDK0eQssr_r)G@j$fBx;>*10^*>!n1?uMaxIKT5(ZY8{C&6RPxvfZ-L zJ2K#A04-ltwEqoyDM6nGD=NTosC}VCtV}m|t4otSl5XCcois-8WM|o+;4!sK?^4H| zm=8_&{~HUiIZmk@p@ek&D|Sp&$7%FL@A1zh;PTK*@3DgPfdSe0Wh;8Y=8?%4i&L-Z z2A)ReNJvRy`AJ8L(hy z^1ky$to$65aib$t35>w7gS)D1tF(f>E^P2Q*!+ZzwQ~R~I_x+!Am{ zgC#~{B^mVlep}HDwqy=V{atA~p@Y8w2&Zl1zE~`POF0lr^mEv(rG18=+|TUfq?apm zkE8bJgkMZBoinH*4qcckqIWEkZpZYf$!T} z7`h%8H7t@va72=>ubWX&Y{fTef+`E~;0pR?xfpn!pg(B`$RWJ5*i>&ShTPhk* zcCdRGT;~Hzq4R9S;Q~^Rq!~K8CCKhhf8f3Lw%kyl@^lQ{rv!grhzr*nMGcx%+&b8( zd^BwxAn`FI+e28f9K$0@2S2CN44v88RqU8a=aY}7syih*7Nfm5{xR%gca0sy9Dxe!J#jXvSyV za5qH}RY}l&b}}7Y1t|Pea2TI=VD9v-W+bPu;amVMW75F7 zBE9^6@ese5gA>wy-yr`DuY)egj9zJo;cx)iWGE1-A4-qhuFtZ{46fR&oTy*|tVZZl zmnb79+4!8KIW4|K=LFoIXLCK>A~bncOxAiWSgTqK*8tasr9fJ3ZsSggdbg6JsT8Jy z#iIh04*qKu4^&*GDwp>*a)*)mv~zX| zuxF+vpovDTPx_S2c;R3QJxl;Xm`qR&)yxXs+K6h@Dymvk=Z0mVDft+>=YVSafL+(j zUoqi^p}w?0Jvu`QP}*89I6`pc3;I@Gtl*1sCcOy@1x}>ycfN9yZ8pj7JWv*IHq7vg z#ju_&kMXhpSXvyoau|H4>*R3ig@;vIM+#0{^7nSIo4pBr^G`=*7dmXq9hchQd(hiz zYDmYs{FN{E8t_4Qf9C0skB#gPl-fE7k^p*aIsR7TyVr+z`48z+Z>CQxXVC}Ipt&fx zc{lwoEcA*o{t=600_IfsA+2e>_G_Z6h7T_@(!CupOij!GniOrUajvDf_GkRZ*9_+q z54w5J^T?-N{m_BM)}`W(o9RBweKU9T>?PoB*xkhb(vCY<4Z&gCGUfdi??t`Ujt1I+ zqq606H2m#0oE{691ji~{-{c{lzYLM4PXJoc{XZh_$;7ZJHLi@uxPzQ8{AS8W8d}%% zUwUSO&HF2F+#VjYJB`mRFh^8{t0n8&0Gn}xax)jMS}Ym3-Tnx&8#a7yn)ZNFr&{RV zLJM8vpJ=-vMR}oq;A^J5_-cT~TC_K1RT%2WD)B@pcD#WaGA}wFNCfKt-!>45Rm1g< z@3b0C=CbwuEm7;p_J^K7TovQKhiOs(g zQ9K8c;Lnt7H9*#lyV99eul9xE94#qs+X_>fyM^o)1d&9S=Q!B9Fa-}AUOQsp_QO_y zf>qo=w2)5h#|%4~AkT`j7|#i($HW>lHFR}wWv9C5pM7h;jl=J9-)D!MQuk#yK6g22 zEUPAM^LMFielLqnV?BK`Iel%RTDUETh;ThNeXzLz_KmpwyQl@oz~G-P0GxTo73jJF zNE`hkvP->s2>Oeg)C*K`H6=f*h8 zg@#u;9_%CZT}S0>^B&VJ@FSJ2UzOABr~VH326!eL%6qX&fc%y}g|7NXIj8W)FSv5+ z7uIW$O~Ma;_61c?kc5$6(lXZPdk`MApd<%tASIxim;a|5u+I$7V~XL| zKtXq8Zwqhho)%}vm7@5PNk+v8Z*q_GT;L@?6jo>bDfl?fV=|y(xdSk}1|B%>KOYXZ zslr2;O{L()EB~Og|H2AFzx?yD&R@+moD0wXrhm%WsQs5^q|YMSD~|jo0HL+)4w@v{ zzT5rB>uy4&fDR-~@p1gAG~U17uDdV*a)*6`6KNyaxc=fCjh}iICX;ZnW)Dg&7QBu0 z=+=SD(B%el0uXxV*>sop{>C6909R7-Y_81AHCDXBiY0nesjvRe5B^Wk2S2d&$2qH? z?EVy-miS4o;UFpK;B1WU6xaWUf7qZ?zW=j>t50ERAq=z`oe%w=m2zUVIZHK;_A{Py zP1MfOIeHwwd85ps%&RaNlwdG7uh#HxOQGvOAqNyKz^eg2PU%U}sUHvaVhaEu;(Ney zF}so{ zn0=i|uj0%VBaa^TY3P1UEI4O4-s_=_Gz?;@EUecWdC(ipnLlLsP=6f}#4-oUA ztOOwjO%cv!pn_m?bKiBMXYlfnQVvYb)bzK-BpiiSh=ajEIri|7)E~b%u+aW5-RU2& z_H|3Pyh^-MA#N}BNZlbpj)RoYl~zulyYeV#4E?yxWfd2%;sCTarf`nZcOb?2|B>R3 z_Oa#KrD1o)d-Ez{@jc>x(iE#bSn?6Y_)>Qtxn5=vjew!Dd|Uow=_~sGjza1TxE|)h zqN<{eE@glMsx?XLIN7I`k|}QSjk{D&z+gT&swMsE)Dd%)DtSj}*_pm=I5!+?n`VSkhz?0zjl!Ybj?;Hz$;$DPl-#O@ll$L0r(x zl6>g}kSyzuC=A?O7(B>6)8D2`+QxDGu+$g8^kNUFnazx0dPg+_Muh8pa3(}{!nm?4%CD`1WKq3#NC;6f!Q{y@8HPit-pp`HGuTB5k_omXLfZ=3k#`mi(*hNTAp z4fuT?uJ&Vr^Fi;8^ydws>9Qpz!NiNchM%6wI8L4njMFe_&HA&`Wuw-FcR$L-s5pK+ zpe461l5xHE{jxZ?)#+ZlnK{*~y0>D$=VfiQnSLcJ&2*&uv%-N2JE{zx$^5S%P8Zs` z*&eLmWB&gL;t$L0fizTF?nHFbi{A7s?vFy< zzFR*#`-l6y-~E3Ssu=t*QOJm;bt=;aU#*9I$%p#f@7BxpU$Dp5o!R z@9$CcHClY!UCZ-$(Fcp`JK$Wudkd>!efNf$@{b&)9K(c1#~VK0FuejK^WGFAu=r;l zzlKiC?h@tIr+ZI4E6kK$6e&CyKn3uP)1_mJ{B-%krHmzN{buF6!JDZI5;N>SxJ(?L8oK?gz#9KK69C5Nwm(bpzx~HZUPXOFiCk5=eLjE8 zH(fPnx#W;7XmuFX{T89wV>wK1xC-sD3w|dCevJEUy8J3iw1NZM zko(0X1aLieekB?Xa~ts{;MdBm7c;asQu#vL#v(Srg6Pk8lbGg zHTH3v!Ss4syeh``?pG{0!z$^1+I}UuY}dvYiDyR($foyN0pf!>k!H`$$CyNqSJiLA zUH}aJ&2BWR6Nm%6hz9P(w7Y0-N8NJ(dHtd?W*MlaA_Rq(MSg2c9k6)PObeDsM z%r0H`v3jbZE5QxX<@@U=b+4mlSC*??S)4aI)5bdTu=@-}v0( z+RVQPK)e3;08apqcIkQf?d93$AF#P^F6|T=_nTbh!s|=bWl;f?Sx0e8TJ~?`$@I++ zfxEi3EuL!;nCl+7BUWKnc-@DXjbIp=wva8OBiEaZ;dkN(4_*DR(Rb0bbwv&IfS1{1 zQ|uQrn>o6VmnQU?ZOkm+(SCjDiWp{B z?3+8)djC93G<_#H|9kIU@gIz`WAT@6AGq~Q*#88{`;v8H(DdPBifJD|MynsIL>H@Q zF0huO-H0#02E~m|FuGoGnY2EtrI#?s-*Y>&;Lpb|$hkg}{1=D&BbL+V{{#jGx(pJ= z#>U`X=PkyD3X36ko0))Wc$r|2bOG(QS#~hPUOGgH640#&ZAVIJ+QQ?8wB8-Dg>V}u z8IOkP)uCqZ<#zT(JcyWJfqE7<|5k(F$=kUWClJyB0h;R=aXLXMu1;$g=`Rk+RA>9g<}nP*&uOonTc^P@L@Q#U?P@pi&}`M|s+*eW z>f2&AfSU5dh_}$lhjuXz>(9PABGa~eYJp)J$h=(43f_`2e1pgw6LuQ#gxvU4V)c zJaRh=oo?)3w!!f&X5g@;k+w1Iarlq?V?}w*ciJj9R5aXdF6VsV|J)p8Vw{nD)>0p7 zPwE8H78%k7?aC$}-)CU~LzmB;aMADYZd1-*VlPn)7yBzwqu9zVx?k0L;oBf@cHEgq z1N-GW*YUcF-Jn~^|5m8x@YQuIkJH~9Z%e;@<8SsJd+MzovRGQXfX@hm@QoNg(i?mr z&ba#`;9k?VbwdnOC=#!&^H`c)`>2hcOU1&a$Eh2;`rYODdz>Teri%(RY4|G@(V_E{ z3yMvel^E;g`{;lEiNvzJ#@R4+Pjumf+@4j=fF%WYln%Tex0oE%_pEC{Z}tprH@Lu- z7&v=xR`(Ug$uKyh6yEpkmH=vAEb0mlN;9>bwf!9TTIxYEgMy{B6MUANfOnEb_u%*N z2P3Rqi7d5J4fodaxc#~N8@E#_HsP8djFd|+$D)$#??E2^?d!8AI#8y(xA7u0^++YR zW2=r{d;JmHAB6+T3UK*;l*IcgQkj6RxlpRTHw%qgm%}7X`=_KP}esC1Rj_oS(p95FCRRKbh)o(us)|$kmHN#z*qf4=;$=&#h zewu~PqJmK&l5iEjcLg@Wv;NCl)7C!Rayc`xN2%_+BVs^`9pUD(vI-szT_}rh#h-vV z9tE`>*oX0Z{3aQuNRG|xd+~}+8ZpR@puE#buCkgm;E9MPl9A^@B zTgT0#9?!nj0)X<)*%tS%lV}6vxsnW?&e%@WhUT8OM{Q2r_{HD01Cfdj>gB=Zj}lOZ z*u%Ke4~NRK_4#(sVo;jjt&nqi=?v0)`4F2qKCW|d!UKBg^3mv?%aQ|gpZ9ROP*oe@ zvH0NgBrCfUCywhjJOvex^YE|YfV#rbwx-OE!3J+N>7**eK$pb#J5auxpVr(}T+6eb z8Xk@jx9?R{!Uz*T{Q!~FYb>~)A^xWm^1JNzlMQ-4?sLDjQzECsxLrC++VXL-qVF)HKY6Z}enwUM-h&lUXSYLW2^g?VPvL+qr^+DHe{LTw(vp$E|2h-FJvRfW6yJYz z4J0m^vqKl(T?}^Tw1#kk&bT7DzAb$RC|c?)%eKN_YLDskQE9CsP~ydvn%-J1pt9c`|#g&#-$Nmk7JJ^0=H@cru@hox+o7M6U$ z1Am=&r*S~BuEssNayFjvFVB2BR<3)u+9)zA1Eq1acB49Win%luAOR3MMw~L?GD&-R z)nXWhSC`xS(ou#-O+H<{aX%qZalQVUJ*UZ@cBBa|uWA}yD!`2v=YUdYu7$1uq`A!a zscyhMeChn}zJ_Z(R6F6atm*ca5I`h-(7pTGhiIxG?DVxZl}f#g;<6OrsA&ysir`Q`yHdMd z+;qlR1cH^pDGv$ZNYu?ip zmeB=8RevunuSNwTh@40 zyCYAIe18YzhmI4VC_It-r$>{IH)1;1@JQay?pseuUg-L(#VzP1jN#$6+orjfRjOnq zvkzY|9>oM}PGVMK@j)|~!B9tt9infOP`y~h>LLi?YK+P(2@HTNWe%~%kC3538)L1F zQ8C+1tXbrJ@BP7N#BY$o2Y%W5od|6=|9zp8~<%H6BbwNSucM<0wfiGjc+haZ1 zEyLEId9QE@aqu)UlouyO_gx=06|9x3rRiv#{-qwG@xbo(F#Fca%rUkBwat&-q;gMo zW5nJM?^)YUIE_(*_&9zfXfkd!guv<$G+W?6Szx4+v?^)4$ni?P03*R8W0|y>$0Ag( zaLRnUMl2|Nu2P4shUY$w=Z#x{^TWUDG1v7A_@zj!O7^Ph%pIXtg%+fdy{_ zC#DfoAP)l{o}9TlGBm_|Pa<-(Ah59qxs4%q(Ap~naa2R4(bF2MBn{aS?2$@_c15Q@@(w<6){jQ|m7w)_kPT)kq3w zR={S&z1c?3LDd?rm8#Wh;+Gg9ruZ>((4e}nbnOyKmep8e?S9bQ*O;c=E3+I%m6z4_ zygx5S2(cNDjAuSwj)|z-m_(4tn}^<76FD0TX_GxoW9?bG4|6<0vqN}y>2Tv}SgX(n z#uBrLqCqPYR}-lL_ZN=q5z%mfeR&#{{c9AjL+AZ0xE8!ECa67k3r zge3~$R-n{csW0K@``O0U75K#wQVzMPDkiXTJw@1d&ZcyA_?sUFD8@sNR!MqqTLi zZ#OJ{CF(Q~B^XPvf%oicN1bX2-+oLI8dsvcdq`eP4*T0wqruR&UGG^fA(nWxUEQGd z{Z#Lj#wzc7G|j=`8cxCBsRYiKtC5*bh0gCrKilH@nPJQQsfz2#3nr@Aw59FN81K=( zf#{Wfqrh0=Aa$+8_ulMpMaLi?i6sbDNMrwTd}L?XSC^>#j1c`GB9*Zz%9p2csI|tW z@>i7iOsV$_fkgPlF(UL!&09P}?P1yEr=t!6e%iPNnwR0EmrAlRIoTyj$5_MeK9l*i zVgJC9(_>_Jg#G<5DyqAmipfHas$={4jCY|qGT79R8JWEr*lZO+gf{I&sB56XNw-UhN5hB{EnF_YB1feH8h@RM$@fvxWCLq$x!I(gxgK#xg4 zO=xT5TB~uSyO7!$BZp9}9il^+s9MPQdjeHeh>1rK&uS@Hvv8=SI+j>>*u!6Lb$NL$ z(j7h3u|eMG46zxcbiXVj(PY?RO3S1CR5I9-s0rK)1ejN-ZBSRNz28t__uwW`JF+x| zCog-M5F^Cyu;Y&uqVA+{Ho$82tm>8FNGj*@7T5HQbo$$ zsLj+$2Xd$vtHag<2X5+q=dfDblKk!qOLbW_YAs_^6Pe?UzP2wQ=ub1SHa~3Jkakb` zsW5m}WXZLjn$trl9ara}?s2S^sorZBKfPl+z8*}dlNe7`@7K;*j+V;e9osF|coqH% zr5e=XZqEgu(t(QthU^xBDSw?A7aD1e_~ochgLCf2XA|;pm7~PSeqVm$N_lX*--_S+ zDATxPV|+kh0LR$m$ysnqi~ShGoA_TOkd<%suT?pq0tI(~rgq!R{ zuu|Uql^+#I-A5Ka(B+TG{vr{!*+JOP&-_u;Q-%we?I2`AUa$7g@gUZCVj$E>2)huK zxSz5C@8Su+6Esd9Dq+NFmc4#_zR@X^U&xC#Up3zj^{#BmP;ZSF;NZDzryQj5 zArwBhR8`J+ejt-2kT$G7zB|ViA33@h*l3#d@Y2Z6Prk;|f`BITfxBmlYG>MrmO^{& zL}FD;(^^jrVF&F*80>3p9Mg2bo-;RyQaqC0soyCtczleu59*yJzF*>I-jL-FD2C_zdRwF1k0#2tnBsKm;oaJJ#S zTYQf@^3{x%vY57Mb6kXkhD$V5frdynPr;Fb7_8KGF*{;yREVAYvfa=ypNpq{PzdB14sRJyQyK|OXFFsZ!`D^691)bRUJ<{^I}Re_?h8u8lM!c|sFwE*+a3vC6B?>RJhf2r-?R}P)=cxMBXhftV} znFrwA=J#f;L+{OUZ8uh}#FqU{b6wPRN2=`SjjoP8eDIkxu;LnW;>1|qmxY|=>Q>{Z zZFpyl$HEKD0zC6~3Vc3=z5e!JRLVS(>bgT;H8EPLmhc29kPsA@^te(puy zCuTVz-no{A3|lDTRG`Db<3GHo$wh2JJ5CL)Z2hlx@--G)h?2!&0m>x3_~=kjNG`23 z@sgRMB~MmHLw2?TD>yGX{miDXcu7_B^QvXom}uB;yMrKg5kV$X2f4eZxn;~wK@5!6|STeBSdUpOKWd&V?ZlMvc;!+r`uwSlB+u2EfS zjHE2N#4rkl-R>*mBL#-F27bW%<;Ob^863PzJ0!xpC89Xs#5rb%ZO7(u8W{oEUnr)! z1x-si1n0)PXpmADhTD*9=a47I)?Nliu1IOR?Iyy}?`~wsc;q_au)c(#&l8!l>|Wud z)udPGA&sKyl{Vr?F{PK7kWLX|>w4O)nd#bM+8wZTGNqWdSIj|=clLju*sk}iU27rM z&Z@8eW4N-_ldrz)%GeoXA3XhrKwnf7WqW*e%!N6I_FHH_0=K+|0A3zMJZtu{p-*er zl)5uRTyZc$FcW$plpc;#Cma64h8itP)lW#>Y!Gx}$2*>CAlEdI%eb&!v@I{oh}#Y4 zvo=4uL~S?FD1<4!{lm@Ul+p3JAU;b|yYZd4@w4@-@RxO1)P7dyI5qEMS&?rNdyut9~)E0DhRUU?`Za*DR!Jj85gQ2 z@YUZ_99hwR;jsJ0ff+(BhlCC-<6h$e*4wxU$%uff8R}W9G6gmEk7eJHWykp_Lw^~J zspEUAOW7wE;N!&SwAK4NzgNS1od(m_ACg?u6f%PPq9Op@6Q$3_64kQW1)iwLtP~s* z+o5oba@%h-;1Q@65pfQo;_zknCJ42aw)6W=%F2^HynC_w&hdzqRn`U~t88de%lifs zjS13H19hSYPOcjd1zb;%y{?Ff1*6nF>TT#E zo(9Gg(hAJQQ|h+sR@pj(fBD{0S%J^YkA<$N@1z~xSY51NS!^`k|7M&$!?Sz=<6j!+ zl?9)WfKPnA6IiP~a@}+LUGpksY*pZqO<sCp1le-Ri7loL z?1oWE$YKrG#YbD}tHH+Lz31Uxr#HOcxXP2k(-}@Mz9lO)7ldjgnaaoBYO?Z?yub5| zQ)9PT*pC*vjf^7x-nV3Ooun-lhXdO(rDUyUE;e98y4}oUK~4l;8ZeF;2y-F(p4V{n zqwen>MK??t)Qj$~%hJ}rLIN2tG=KnaZNOsoaDU2}dVdFBOu=HqF19YBGnZm?ZFP`6SBAK(2IC^*s*lr49H=)!|r?Y#T5XVd$ZlDYk9>|8C%Z+RK&H|GSPo$Cj(GJPB?Kf4q zTjNxfq9BxCFB*Cu4!3LWObl!7pb;kfnOIbUp}eb?4YF0*G+D5ECI3A#Ul_zPl`_uvbMx)-4{2|7bP5y4B$sk{>x1d!GBo zog1Y&AFN74o1gry@NTxpxz}wqR!F^rv{hJ^#6Dqp@+3<9e4Ti1rC}KvvT7ZjA?>o= zYbb)`5Fg6C;^O=(BQ>yo9lly8q44N>7&2^KFHu2UOpL)VM&HONS(&>E((^_~?}O+= zW&YR0r)gcVr+yCi6SKt=$XDN-L!;5J#|6KB7^<%b!C{xXPCYCB@xd-+9u-80;>m4y ztb)ICJ+wRa4nvJQ{ zQGO(v{4}x99(koM4IA`GajO7zv=Yh(Z`_yvwCkLSpS(h)2>(9-`9KE0X9JhK0IZk` z5R_Gw0$E+d|NeUp@T+VSx$-q&zvF?G^O)iQNY4Xudjcw&CM_fDX)1UPyEF#JN`o+E(OKN;^=#Fg## z%Yp4=?Jg90Z`=mh^p05U@{yoz>{K7#pWFKKiE_`QWrlL`#TOf$Ac_g^>EkUl zd0L(dl??Q=qj^>+QFt9$3l=O`Ao*K!ZczmIm`6k8frKd?EzM7Kl6 z0RMOv*t!yU_99@{M!=s2O#TRPdx3k71ggsbmlqgzP8i(nkVQXVJ{{tV1Utz!4xcb_VFyY|{^@z6sL?O}$XVt|&QgoFfi>eNYU7wM?__wV0e zHa+*;b2#_hbERlk{-Y&`8Z};lPp>6}TSb3dK@^+><{`k`V>J_0sv{(Em6^P!{(Ga_2dqr#>i z4YYA$zw^#J4Zs-v9H?<*s5DK3cf}Sy`8s zITq`F?Tb5O(Nl5e*&A{)aK)>@tCN5qWPYB9oey02B=FD)!0H7JyOPrra5%$Yj@OT! z3QQda>{t!-7z$kfDe%%|z|XRS-mr6l3my*xxit%b#0=oJxxlLVz}L@(wS3G|T3Zba zzX%vM4!EXs_#PI?$m@nw_OGck&`ZjA3QfJX;n)`_my8g%+4G0F=#%TPW zWHk^jPYf=+<(69{iw^gGf;P5|e(iKUVql$Idq=hgpU<~vPZF#U^uK1C%qSY7^9QOj(qJ<#Wu__QY%lLDyw315cd=Ec?2?XuqR?Yu*N) z{|B&m_eM0}7+}oJK*s@L&=#x>n>34egv)JP83u8ezY5$t0@x@6oHUtU{tEEK>0z@c z&9DFZ5GdHJ49qHufY+}Ds{qX z3>G6u(n^0t_Zi-Y2YR-j{Gr@8wr$%6@_EwjNYIKfK!6&tNTG`m1LEkvM!?1~iIy9j zdk?`F^AAT80#0h|s97V}qh`%&X#;IBMwFmNsA(BJDl}ng58<0{zL89W6p_YC?HXoI zpg$LdCRrt7*;sX)b@3Tk*!epI>a=OvZfk!(CQh8F)-1*E1!#Nn$tR@~NG#zAho_dN zr2Js}&Uxqz%q{*xwZBF|n`*_o3&gvA-o~m8sWCQTEp5$N*ag3SzEtZF8!IP3+q7}O zA79qjL4fwpS->+F082grIu8zO(6+AzzIp~I-@So$I|vwYDe%CkaA3mV6M+e@0}qY@ z{+4Zk1CQGc+D;3Dwv5ie-3x)YZv(yw`_9H&Je{4$xWI4uZ5m^~SkY)LbIywUSW!ph zdQttR9R;h+fi^nDGe0(+|D#DPIwu0QufF;UBS(&uE~k?|_bd_JFR}sADn;ND&52)r zZ<4Juc#T@CyYIeRqQg=X`j`(JHcTo;7bdnTQdrmRx8E*(OeGApfN~i>e!Qe4q0mIi zKms#DGwoAPJtb-5$f!WSI;*ACgSM^zDM2V;%&CnUAKI)beDESomD)of(4&Tli2UG# z50-4FMq}NwJ4gaZt7KPg8*#=VmIA% zljH}$#M*)=m!}@#49bOpC$gpnZAV={94ox)CLuYQrPY3C9LvT4ZM=^a8&kYDVXbX+ z&Q8LH#nCBt^t>lg%L?=8hxY-WJXBxo#3{g-n}B~G9**|p->2RVT-&)Gu(32hAALP= z_wX=i>(Cdt^;_Wmdw|cMs;}>)8^dKEJ~3<_WpKjOpMYOK24>x4NmtY=@uaztInjrZ z&Dgpat^Rn=7qxzA`CjXs(^6Msl!;s~s@||+*BX5pY~=0aT1`#b;K75Xk4ZB{f^?b` z=}b@M!O)>YCDR~*l#;yk(o2#SjY5DzD~nwF#OTS{vu8{7iGVbAf3<7ZPRep*MyLp3h9mBQ97~#f zt(H~~+O|Jkin=0Wlpi!vl7fOl)vMMtQOrw9hs3h7GD-ES#jf3}S1)POlC|FmXghb} zIrujH)2Q5v}xrcD^-dXRhyX9wjFoeaeInU9nOUzQl5SGSxMzSXU?1k z-ebw`eg*$pb5o3Ng?*+2AS({JVovQ_5`0};-9 z9H^-PKDaMzBF!5JOnMVo@h$M=S>Z_015X34dNT~L=Dh~EJix(c07p##sw;q}&kln& zn+>?~^>CEw)8l{*zX5%Z08Y6BaJhkJFQ^YhIP+fM*sFp2j%=uv%jgKCbqJRWSqHFE zvXYT9!G+pTm?O(7iRXN=qK$gyoE7)8qK?S*qV_EpcC5@dT(z7HA(|qBppE|9G$}?3 z9sOyNq%d+aGMBa}FK0wJ>ZqeY>r*V@zQ_HK`=AyJj+|zSZ4!GYfg=A2W(59z|NZw% zL4+GOZj`t>>31iDfRzdoK~ZIRV0T|gMub_jW=Vh1T1E||)sk|20{jPR&wOO`{!Ql7 zmOs4=flXoB2)!bAP}IWyueW}Ac~V^P1Vo7hI9lpG=c=b=VFl*Qbm)TRlN#Ap@KPlBfy5+@Rj2_dNc>8GFeN@GQzHmbCRKb&wLr3R9!W~$9A zD)fiE54mIjwzb!m`zW5kDxP&KJp(fvRlGJ~J#DhlDgV6$Z2r?)qS?L1ikh}@4*~OE z2l|cxx*r6%5`e#d2L5|Kuyc1(dZ!yW=V9Qe%fpeKHC4cmvw-q^;Pk1$4FiD9yOVim z^$J*%YnakXFo|u2CjP_Ag9~6F9Br*VP3Z*F9qhl47^hR z-WYmeBQ8qHOho#XUettYtf+2J9r2nkRy0!2oU`J7R@D)?UIgFqVB2!z89`ou{dJso z-g%NTK~8I-wY_u`qDu_d^_-j>$s`(0=%Ypo4r=BI7Gnw5cY;Cssc9)s?oXjLW0WY( zk?ar6tFcl!cJJQ3LC$NsBvB(K*bcOgL$q@An-h6qc}*dPd{0qwDF2S!$1H_v(9Y4-|LP z7IhU*6KP|EHjanU4J#g-u->*f;6UBmZfsd$?0}(p?n!|IuK*7m2NbLeYt$-BfyM6v zH3}N(0i%HSeSw0Fz~cAAB)bQl4*d8gz~BM7kOM9u1z0c($nFYE`3!jUJ>(mFp`ASALLk}y**mKQN49XmY1iqVrnR1mepGC zu@@eVKRPKevdb!vgOLIM?1^R5w3!RFwxKzf%N&&gcN8~4rA0kn;3{7As*Syojccz> zm=-#1+|7#3G13NS$OSrIZ(n0vyP!5U()Usz!YjbD=L1V;Yq~_W5YtiBMrgAxeg^0_ z61e-YutrTuoSrb{N1VjzaUkcaWP}ooxs60?R&xYxM&?|chTTxLk?V!yqeN_6s^2|C z-2CR7ZZJ(0I&NP=VCFXe;;_z!5s=F!k1 z7q-qZ?gJp798~dAb!)ZIp3hvSOqIpc0ae6IgP});pM5CS_S|ijiE*J=1ooTK3x7Of z?Fn8_dmFoK(r^!wj`Z$zTQ2Gg{#6e}hCYH2DK6p#uHsd%mhsfHfhD>V(IvSSJO8Lg zqNfik@+-0Qi{FveDGTZSQ-E%@C=6+L+SPM!d0$*XH!5cWJJxB_l4=uGdQkzE#57woH`hwA)^natD znOe$0xsro@iIodH*4UE|Zt~>GQW4&h_ckL8c%V-@g>FQQ(zRMzJ!o_7^kV&U+YOH! zRlw7yPnWJYlh8d@12|~}nIK;%`nTzoA*T$&wt?zte#9a`jiH|8^78f&WF{siY6`Fr z*YSmx6B7${x}JU#&{8e0C9os1-o(Q^NFLb`v_%3oaSef+NFT$`tc)UUO3=o>C~d4h zrw`6j58MS_bj-=a%I{WV%kNu3KlNywMD#)FepDCu4sv31U2I=LGn=O~;6~|;8We6b z9xM|)rAr%9erUQlN+AX^jJ*TsI1r%U8nY~X_C!PSUNiNZxHkKWL^!h? zCTiIGQu*9UDD%UYpNw^LH=(AW1~t{Sk{^_KclrK1Jx;(5xH{O;|M0%3v)7`)y%UZM zpfXr#s%>WGoT(dId~xJ@k^X%L{4rOZjUZMt2y*D`PaaG@he)BeiCk%n`j-n`SEw~( zkIgRLf=kQd#g|jZGjVJ=Ug*+L{c*%*Ne>g zdHC&{KP+h?-F>*8_UO?=iWVjBnw;i?fq2X|AQwR#Px4q^&%MhkVKy8_oo?U0T_VR7 zd8d`?m$MJBO_4fu7c>*!FbSN1i~Mu3)J z^CP$s=+>?W)-L`VTNZ6cg42Wi?dHfimBv21TNZqy?FgjSvxQsn?%GNn*!6M+Dof*+ z4oX_ONU>th zSvn{tD~kke1vAT0z1HGG#qKuJtjPd4rc~sZD^X984~-NW6#A5r_QNV+_5vnlr!e~v zvk=7+5edsOR3tp}%rlC`36w~T&;CVf55- zZ6{lT5bjqr7x(SkR|0Kg$BvbJ@{CIAm<0F+HB-?1}Os^y!>Ot~R_2yCe;x6}T3kHJ{A(oXUQF&YAp=qe_0{=A52(#JgncF22-7Ok1WNxk`TVD8mFqS|i;{uS zqy$5(OHF9aV&EU&Df+?D1j_3OwrF;wpSOH}M4{1NRpYi>SCfu8tuRAiUf>L?%!jYVxM8ka7DO>~SCd5EPK?|ZbCQ9F@ zo#I2nK$nqAbzP&Ir!AJhk=}(SwJIIU9^TEfq^sHWg-O;&c4NV9Ly$qlOfaWcSQj6f zJeMie!e$<1_c5JNIY_(KjEe#Dr14axR|II2+w2+QO+GdXUl@WoPEv+$^TZSlv=Q)8 zZA_twnAdWV5E~{yUpe<)Z9)6u+PFbMVhWFlk zPm128rinpuJdnsmPHan!5#N)@zy*Rka&3}`o$f@p-FBPWZKdzU-l9}kDU~G6xzvhj zp%h_Tlr(MPUfgHMB|2uz7|CysV3Yd}f#KI*e=YgV=}k+Ok&z*3Eh+Tr<{rs9Bga(J z;Os7xc}5c4eXI>4Qo4VWf;JL#7QGNa`F8!Jtn$tftrKMvI0&JpifJ^oCzY8718hsp);jEbsqsM@!5B~aJXG*RuS5kP z&zN%f;fG`1ym<|Vj~gF1K+5mG|BitJ2TEEsnqN4_Ni`sxxw)y`d+)tg48Nv2($Dsz z=fU;v6h?tth9e8V-_`u0(9?6%;r6>w<*Y#aAvx&KqdiuvT>)g(!IlivTJ5)}Y1H)> z66=v|Zg`Xa__sb7bIl6<745!)V1&MFOy8vBk4B)yz&ozBqy%9go|5noPNfBfYcrJ> z)Pxb}P;141Lc>H_5gtsm3in8YClNs^4(F*<2<350&T-Q=zm7N`8e7p)l{I(ZF9r6!-cL{U9t9; z^(b9l0guCjEvv0_^ws;E&6FQ_MK2U&={I9X-ZQYd4*9P%K4_!g4*hrdju2QWMbR>_ z=G9kUm6}X{7ZHUf`atqexzqAzpM556bYc^rR+*=F!R*d8g_}%cNcx#Rcze4{n-sgO z>VqHtCnE`NjK-U|M`Cg!5;Oe>q7Idb6&QGAKiIrBtlYdDiCujNK)Z{HiDqcNG!nEe z+&BP3FEp-cqr*M}-8cv7Fwb?mu&_|FaxkH~$a&2ueePAUINYdgptU9%NiPHVcxa)9 z%*a8TylLDc`R?&u(ZU=+Rs$ZgxLWOARFrJc zw<$(~HljRZQK6s|p%R-rLKTkY@~^u4w#I%Ram z>Yvu4dR-lyAtyHfWt{0;%N%LUGRf@{ku=_k5X|MwY%QRT8a77T$!Tx+JQyuWjR!Xx zE$Mr#dWPv|_~7jmHrp5_#ck*9fW^0&qo1&HAvQy>m4n=~tW%>J||CzrT?k@ej2&Q5QHB;1dQ9Grcj zLL?aE9w%I8)aq&bUfT$Gd>&*^NJO14KEWvRRu}?p@&!e0v(?h&)J<7fHr>3oP27v8 zYnldmdREK9DXyVk996tV0svz5vD;0#Sbd-VO`qC?SayD;dq#pbIm@;vPg4<1M$HAZ z5m<_-CoOYDYZ>AD7Rx-kYLf#yD)aEm%1XRGy9oBA!Fvc8wce*CmK!*^7Ycmlv~8^g zw8ctI$M5L0%qTM+USd%lSTzr<0Bv1%_QDU(h4Ur1W=YRWLsEJoO1;JCGomL-1EnZR zC_tSf{u^f`XxnKUiR>d|Ctr{CEC^0%rr&SB{UoP*L9)vOJi#0jyPGALZOwC`sr%OZ zupTHK8E2yL-JLWH+N>U=z)T17*IFAJ)28Q{s+FBLpc=Cm z1Tpg~V98&#D6ic2Kw9J&dAd1~ajsu&=wg0fv#kz0Uu^lHEf%MhctyYEbm znU;&w$NAyy;gpIRF^`4(xK)3LM-b^>rCxq!-j7n&i4f!vYqbAU} zV{5ghEfyGKzD1I3Q%I3BXU-g>!=?GUjPv~PbTtmz5-Jk0=27E`%QZK&1r|)oOhoQU z=_v20J)%5XHzPqC%MHIS4fB^+PmtXLhkBoBvNOYuoGX$MvYYb})-zzu3be7|{>>@) z>yy+9{f;vW-QiG>gm|*zQOE1-XS9I>@D4SXDolVj`CX{BW$LCj**8YOlj=t9_!QJ6SZ{uh zHG<6!w6U>SRk`^6*;NRZH6D7ka+;9@P-~u2IbaiQkOMbr#0WyP2u-3S))m*6;#>On(Kk)bD$k9B0UUzBP;ER|2dNQ^r2O$G`H+2G5~_pR{q|zDCo3TbOK)AJ z*5rNu`=lH{k}q{3WYd2r5}Q@m+jCI!mJ?f6H7;KrgH{+7%~VsIr}RyY6nPF_HBDPA zf>Cb3cinZD1PpnYF*3*XOg6X2jrRXcMZg>8Bs1dER{d8k3T9d3x231;mY4OX0=d0_ zEh~V^63eT1d)>&JoPkQay8DXK&6QkQJUjjP`#JsA2Fp9wR$<&mpv!<<9CSukY)bkW z>kG~K1siQ-vjuIULyn*m&K+(Pt|~!7Q6fUsz_yjzEr;l{#h!m1(3+=5MXj4kQE$U;W^??T-C}mV=4DD5B znh$Gc+K}v32VEV$Qcfyg`DYCZ-!le8^vt2SmmNGBxcVL7;nBb{<5U{4+S&Kio+uum z-+?@u53)UI$F?U+P+O*cV2}IwwcWt@2-pFK-wsc*8%e22D6K6)$3xm7w?h@WZ8<(+ z`t<3NmSN~42pP>-V!Uz9ED%9UN0|C5u&ow3zII6VC1cmdB5e9?GcsM-@VGsaj}0R( zt4gXH&8I1ANIDV@aiTU|KWn!VQE}u%kkWlkuSWSM>mByBjCnlD*u6F!dY=b1p|F-s z%j8!wNeF6>b$9HI=HwF>8wQ``^?T+nrl9r|VJLphUX~ zJQhy)(@^R!#l81b87QLII$%xDuht5Q5bq>F-dm{-v|IY_R)m5<+(+I}ma<%?oL-a-e!H zP_(49MW-P-@S1_xl2pIhYgr7H(pbqqd!+xfpyRkD(*J1SnsaF zqYR>95YFVulO_MSNFnhy&8$iZyshpN>)Wpzu=FKuHAgd#mi_`^_L{10H@sv{Q5Dl<|p998-TP9z|v2FMeprhbyip4$V-8g z9N_!uK%f%1?gL=jIdKJToyO&$wukz7X<4I0r}9Ewu;AXM+8$&pEky+fbH{oUJvjcX z#<+A>uB zT?2ce0|_3Vq%8~vLa+sGlG%%n+RaVUx}+lOlw_18?X8(qTNKrDk6xX4vy@2O66tpo zaP?cj%M*ZwZ&^~Mp-Nod@J2^R>{9Deq@=e?L&|s;s%1&I^@28PH;X>0M8&V_S|LMy zSGnlWLl4DOS6wC1V^AZuX3ZLjcaWfs0Xe6ie!5fxDHy1ElZ!lIJi!|CjxxA`Y47Np zN|NYVvt~&t?MNQoSaRLCBs_YBwrJdFpsn=#YLw1Z2O)<0)Omm4hB?5ljljnb0<|^3 zm>YrgPQV=p0Y$rg98=o^|5*+!{|2Zk1v(A{7+k>lJbe=I&GYq5=yo7*?fZbk2^4Jw zYO2El2)x&fNx;f^hMTK)Ve%+15)X+TC9k$NDcvKjAPav!(=z;PIp=*zzCETykJlE~ zdO6%ue(9jS9BJtAX^$Q~3X+nNiqq56OENPvE4JklA}DFc7A#%>_=B(~ z+9gGY+{CE%ESmfGT3neLqYwMErmZmsxH0ZQpEpOH6OLL3+(8deZbNE98nUx<_&&iK zDn|Oo!FO!gvLz)yKR;u2*`kX}ci51YlrEWlXezF&u0vH>HL5DDU+}ZKX23hxiBP{l z%mmMBi(@RGwsR^k#UqbAV$E<1(DuaXz~*JZaaRL&XISgDPJ!PnvokR4Tp+DIP_O}* z|9W`y5t7;t7;#BhW02DWNX`a6dH}W_hafckBH*VtfE5vbJ4aj$obWGz8i>kbVD2lx zJGTQN^IG1F_8CYW??Pp$-bd01XscLKgQAaHp3}P=w2?rUc^#XBy#M%MoHA&Mrlv## zZ6)7Sp=^GfTqx{z;M(_q)DFNM2R3ZygUf)Wvw@krxha!#fa~4^`18#hfS=z1lC#3v zGrI%0?pumOvVbSX0z1|Mc>{s*FN6W!v~j?y`I^SWNTH;|JxChije4ot zniT7v9lf1U_(eH3{k#>G71sMB^RSYXl!Tz84i2{icBdVkv${wJk6->?3`epJla|TI zGq&;?GxNc!cC>*ut46Y!)}!{q*==?>;FQe7!Kx5SwwA(C?!=HmLr_&&jmokrRF_qw zrlJPhH|;>#u5vI{4z+sxi6BkMfQ>Gi4#1NTgv$^3vYcqwuP;hagz_xyA^WjjifDdq z9dAoR`iFTE_n0L@(01{EfnPoV+V=x;dxSR-ZZZUNfBjH@o4!W^6aO!~5tSB%%{$d) zz*A=fYj*Q`bshxV_(eFdp{@qV?k1UyY{}UO^*$UZ-vvB08rZTtTApCw z|L!@UazRwk_GJ~yeu@)l%jpi>^c67oW#H@Q0B@q?(uS%s;Oqy09>ahe`h;6fuy*@* zVZimmCH1}G+&2b{e9fEzytUcVOjN#;K~`~u*DCxJ&#j;nbzai|B$$0&m~ zt2Ss?g$LDZYZ0stqP(CI!OEb-f)J_=0X&1*!&YXS(+0ZY*jzwHP6kplQgO?PcS=Bu zj`V41X(%l%m59?Pe>M@{-ux3XGc$46wEeOC_Vp52vlCbYQh1Y4Qia z;tznAE(_l)AsM)1K2TEyJUtHBu?A@02blCG5DWtMjQ}c3!=F)`@cZY$8&iM_o&biP z3EX`c5U2v~`30Ch0hsqX(7rEl*8<>^hk^I+uJ6;K=K>c#1>8RhSpTc3zGk-1MEYf3 zl+|f7#mR3be-5D%8@4@Dj8Khv?VqU*>Abi(f;MipIhUotmSrwCZt>?;C|?*S(AMo> zVB+h*w!gyjTP_4}G>txUepnk!&^Gla;D^_Nw{Nd6dF(%dF}DCyhlWAhz~g|c-U!cY zxfZ+c2w>uyz|&{N6}0(>xREk?@04y<0XCgevq5n+KVCIZrgps^(8jXOVNA@7XKT5( z4YakECmE$5EfKUSEfBF5r~~fqk6)*1(@dOr|1^DMI;Gq-398(?og+bc~_W<9%2%L34Kpv`F1_2H?@bC)Q zzL`q+jYqNv-~<=g5tq z=(TE8the5zZmNSS7c(WE^gaT(YZ#D_6yDtCzXp8tATV|+K!3LNOTv!X zLbxeX3peLc;A@!^x26s?ER@|L8yS}+ptx2)2VEp+^R7t7+P60vXhqXqa_q6k;;pyB z0VYfY|HBV5b9WOp>w*g|z*n6=G=2BtIh8116erL|?!w#Wg*9j2y%M{vdqCSPVAjnt z&~_~_dP+TL+gt#fXizLa zUM-rmSl35;fJ)|3(-X6;0?S6A4YXM{l+C-M=C&AV87-}ghvh8r0<^t+Mc9E_$dxmI zjIO{vyK_5^nh2bFhXQCD3{07`H)vzD9i!&B8TC30xa-i}pzVin@B%^Gxc>mu)ID_k z-syX2hOMmz>db}4XXa)i>xx7a*Xd6W7r9X+I+C#J?oDCeoE9SV{h^N#rK+k*ih65m z`TqOwarS2?nQlh$>`Ig`juU93<0`dZo%RFn83B~YqH_Id;Q*VhE5m)z3fdUpbKUzu zhyK8mrvaP(47(zn|2UAC2K@KDxCSD4`?!#PMi{iU#5L0Ngi)wK>$)3{d$-l8J_2o^ zO?`~oN;J_3Xk9!kr#TRy?G;jfye$K5uK^id>OtF}(P1;{6Q_kE=Y$+|dYH{!q~H;n zwg#YWxU#10gvr41*M%Lr8Tb$f$;i$?&V(cs1Xij(UDx7Km`h zzk#!F115F{cCHPVZPyF9=G}0>4TEwDw*VV|0}i_YclaiH3YHU0=_T|7!Yu147s3;n9Jf;OhRn)+jySBlgG+t&ac z`T|$Y3V(L*h;U?`9?;gVH*nWN;Ik)yckXC7=;?W3zoBAtxp&hu(~)~+3W`Gdx%{H> zl$&fM#IAsH=dD zOB)_&dJhNsi~zov)-XjJHFc!FNy-3zd;=)n1{{4Q@WV`C=ihOA%HAGMq>uCO0c~2+ z>BX%v&7@+j>uxh??mpLyHqf@uJ@S^*VXcct>f#(Mn{8n#o&CoEcYX*wHa@%&3AyEK zAiF1UZC?FnbeNv-IzS>^Y6-|URj~`0b}q1HVYnQ9-0uAac=M((A?bt}z<^_ct8xKf z3h?wc;LE3gnKy*Xlb`K^hk@^B0>8}(^QjCv9_TeZta(^xE_yUAJq_(ArlJtmfi|bZ zg|6#+WA60$acZ@knXA2}`(5e9l4)VCJCO%g`_+4wjJu{yeoJ2};36+%QP^zX0>#ta ziHvjFK%4y0MO%0Gb@Op^>3>RzS3l^pw0JF8diU4Azv6xKqSK@ZxjOpgbcqB z@TUWxJ>KvUq;~{{jSHKE81ebT|26dYVZ`akD}X<~1pb;29B^uwt8Mn9;Z2VqZSBJF z_j~Sj0dUM!Ku%8}SPN|WBb@$+K?o){NM;P^Fex2{wgTN#Ni8$Q!NKA9^2xc4nn^%+ zCz`!S1cwIPRw8eq8W-yLso6rW@_8!4Do;Kw%ktd9AibV0ERV@y* zF(EwvBda5M9YY8qXbT|}3QE7XN$VK_t)Q*)qYw(0YA5h*F(X6`8%cf1UQ9n9izGQY z8F`a3QRuK9wE0$~VAIDFTk2;0^gCuE~{EwoI!)?7v_Xe*dmE-{X`iMA17>YGjz zvry==9<)`wTZ|$Ld5*R9sO6PP>;&|`Cfx2e(AIR%uMM=dF3`s8KFrh;C=Q^uIE0=Z zd&1-LpuD64f${*htl5h4trbWLrNEcqM^#xBYRYR-Q&oe?s!9nDFe8Q2>wwGcLMXcq z2ajrx?!`xs&CARCc4JF+#WZQbCZygnT-6xd-2EgCc)DXfu*~R6ai9S?&5T3xCbs*;x>rk_H-is?6yDzrFU7rej6cZciG%<)H#7_NI9(s^c*Pdoh3!32vh`6 zU0RJmNe%Kh6rgfP6>>6jQCCxkKy^U+zP73kWrgLEg{?V>)9J+iCv`^M5I433taDq@ z+Q(+2X>%>~WBuoiKLA<>N~v6C_jH8ZA*3FVh^qEw2)Tobr{-v&&I= zFs!Ou*5W|hh!G?3?YG}z^XARy*s-IfL;UyOf1^v6E_m|ECvnX+yY0t1?r_|3$4Lp+ zfBNYsseNh^$UEW%h0cXesdyO6C`IQ*dB^}wB*{H4xVEZmN>Z*dM zDXT$Uc@S%VTL)*rh3xEX1gZk4sjfkFc|iJCQ(l9z(z0ejVr}X8+kpP#d!jH`Mlx;b z4U{Wu7N9MALkBFG(Xt(3ylEcvII9zWdnU{X9?Lu`9)(%Z#uqI2yHh%K@7{g?xpU_x z1_FWf?Cflh?SS{QP{BmX_i_|M?HzefM3fh9hP@haP&Uw73bGJ9jP$ z3-uG-8f~lu+WwJ?;xzM`wn!~+x3&E+Z|09io3>9~H~QYAv7~a5rJ$|k%PN%p6kqy{ z!wx$P^XARN^5x6XuU|h)pBdjxz8`npbr+^iovOR;va&Ksn{(lX7vivJDQu9a0eQZfP>m zRvp5Q7s^mqq#d+<_~D1>+O@0H@&N+|NI$1cnSzHOepu@;8Y!hPfNLnj}Ib-ur>1#Mqdq3p-_f;MWh1`Qe{ZQ{TEW-Xzz0Bv{QeK+pB^G@9p zVb!Wt;CplW>8EQtgo!j(S`LW18)NVSd&n*Us$fMBb!8#6&+UNpv@`@N0|?fHP*Yip zy2?7q=X=Ncov14bqEm;?NJ&mXSxFh{0<~elRauLwk}B-l-gpN>gI#X%mkqstKWr>t z-zfcPa?s|RpN`ev#E}EAi~J&&G8~3CxZ>@<@F4*=LewPspN0i%?RschJovk353OlP61l zLp1wXDKlrz#JF+e_GpBy0&PRfN8r83%qKp#vaijxu7fWhj7`~p8wPDk{;@aTd@~+= z@Il>OZr83I`uFcIT}RVrZLM`$_(KjkL^4@Yo4k1O;+Sm{pzYRMZ^eE0-G{WaG#qfi z0n#Mr8ilXE`bu>i68gE2c3R_T+7jSHj=LQSwijU6)*@6D zRHL?_4nFvim6eS^Wwiv%s>=cr(4yI~jm1j!5jKkg`;F;`{6XsGcqw>tj&-~VF5gb5AmHv`(z)@5VWTk9lWftDgk9h~Ugzb9Nd4xnc(wg>d7 zkTrp}$`E!wZydBe|NQf~?6S+^4%#|&=zvX|Hc5|;TE2Db)X9KpBD&*_JMh+9Z{e)7 z&a(8eQzJnwo|uzXfwobO6EWkinU=P-wN}>ml%6OaxWiJ=MzC}L{rATlGWw(u-0j%0 zLoy@&```b@ZMWUF=Nf8u&p!KXFp0eo{(bxHw@ZHp0s-mTKmYs_|N7UzqTZ`}_wL~P zMNP7hPd@oXIvh=!Gzm2|HMscVi?M50y>F!eZM0apTrLTK((#)@R|d9~{%%6Dva+N@ zklXE+KBAV5zi-^QvB5!T!GZ-CKYsjPZB6L!LfY8)f;La756K(Tv2no`?AqL>^=ggp zvp3m`%t<~39r5?AZc@+|+G5Anms{^7?ssb!{PFMINs)K^xv5cx>@}f7z^=C{P_?S% zfVF5ZWv|n^qM~mRf;Md^T@z@l-VNG{wbdEfw#EW&)HDd65N;~mu+)TFHfr0ZPoIu| z{No>L#dUo@=7Hm|xa_Ar*H{JGj`N&?S8ku7t1bI#;mm$%aGzEmyktf6Xz90AD4iGE zJWBBL;)^dzVCnVOUk3rwLk~S9`Kd87l;6Gm_S+J06LQf-7wysDaW2zuj6nl5`6~$t zoR=TnLZHBmK?DQ-{NWqM{;HSJ#gN`*y||XY38y2D*@TN_;?@z1EK40vEP?)3}c6 z`|A7D)cx*uWqVX*l*hdpO$*u zI#WecjfJ>xO4lSLjI~KY5o)3Zv`K*oj2342s@{9r8M5(o)P)jm$mPQ z&CWMxArLg?7@YQZ4*vW<3lpI?lRiwOb$p7S#2BjLKakd9^p34}SB+42Me&;b<*+O^|vWU5{X z?=gnd&dkpCO_nk5(i;rNEvebhYTVFUNcp>@WwcwG{8tD0B*_B;8hK3p?Js?WwJ&Q% z<hAwiE5>s&zL{rSikBGv? z&-x!JKhYVtTr}7FANp{49ueY7QF3VPT7N_)1wVjF=bEno7q^LFFZWwb?&c@JxBgW{ zD?7RsT0Vk@XoaW2f4_}NvdUfa+L}!!jXw;2VjNm&AW=TJn`g_R6g{h?g5bB-8ke7K zsEt$kOcew*!!lWOhDG=O8b<8LQT-mrmM zQTvYt5!WRoU?KZ;j@Ozt^`|#HAsq!HRA^@(l7nBTRKW-^se~GSf;4l-=RAgJf|f_I z8pPZui3@*`%7X0JEG*$*S~MvvzJ_S&@e=(jvdBBUGi=pq-HHPXCBs<2fn|%mRRD&X zc_#30AWT-{A#dzx(#RR2Es5dn@*Vz7$ulRQK3#A!{1BLVTsNk)(itm z)KTcU$)uH!%!_I-?PEJ1w5nXwOQA4KRG~4eY@y6>2T?EIXr*QtO#MH1Xm!jcM zYx=OMoRpAG>>@6-;DKe)EVW=|AKePdz(DNq$btOircCyzk-|=3eQ=xv7AE=m>x^>L7Tk`*=T%^>* ziii0fPbqLmOtBdPjJA*%raI*vv4XOUfr}&(Di>t?pWn>_Lm{?mN3_1*5`6$lVvknV zIj~Kak5F+T%18;4`mQ#d@>OHqW!BHwN5kcEWXSNiGUz7pEm|5QVP-{YInC^Q1ZI!8 z2{B|?07E5+H(|1DaX0AxHpK@tFn24i*o*STECI>3bK=8#5 z@CBv@;i&Lem9?5Z9sQBS&)i@g*;WXyM7SLd4CM+*JaSFiv8nW^#@}LE!}R%eW^lLn zuX@txPTFWv%+ARgz07tJhn7uKc!wzd%c_d9#7NXHStB0csOn)fvXJ3u3H1rQ7DskyE|pFM%qN|H}OQQ(|4^INEfXB({D!8wEPqZi9}BoezlRl z@>n!seMlk4hvCZ-K+$-`%1M$3m1OK6yRK-}gIE8&~h;D`>Zh%eK|?N z_BJg}n65e6XmWMElsaCrslVPDvv2?)RV7lad-X(0kHja zq(p7FPo+|xARk>3&*PVQ@z%0g)E^S2HgcHb(vZi8f2J@E9Rhsb5X@w`4;p_ii?!_o z+z=i435{=5#qW%mfV!7|wPztaKB6!pMvNPtF6CM3rT^n!7y#Rl^s8Pon1b2t7b)Zh z#>yGdkaDCDo=pzDvOiv`*XflmvNOBS`5j3kP+@1Kg^auBXWP`Oro|_N9burptQghc za+#b1u!f!_ofO$e4Gl@_?7{lB`I)au6sOWN38tz?A1kVc#|nL3CqBD0z9Q#Rifg*6 zHOlPC0AvW^$Q#&Q&6og-Bco_KN|}U^$DnhfKeNW~6BOfKy-l=Sb3bkw&Me>V8cNvv zF&LjD3t(UV;7>LC6o>tCu^LT_<&nU}`9h^kBVzTFm;JpEyc0?^39$r$ud@vjwgL&6!BM+l4fTBt5jRL!=Bfw$t8MPGjXJ;OWWi+eq?(I3{)csY@$||$pZGX5Qvm) zA%R2)=wFA|u<+ONWoEwG$!y#6zWkJz!kN`h=uEr*04uqdxycUh>K4Kr0*+i=*94qx z+XTZ6GD64}nK8{~;V}#EfgR5mOr7UJ^=O`se8oFyiIa>VgBvtl)M&Zg*Kv<~SQSWa zMYus@Od%g01M0YxNp#YZ~;T4rnY~DtCUa` zm>GWkT2C}H-pBd?EYfn5$wbDOMd3M&yS$#&6jI8Pso^LFN@>$JNp!%Yk528 zGCjmq1XzGR9Y(`ecvLwn+_mk8@3^rSy6MRG9ybq2G;|5s4Plu%j>vtN!Y$iwia+sM zv|tXg;ioTrvY zhh`P7*jCY71xF8@(KcM&+%CrWCe8o-iopJd1Q+T{{hGMVBwc#xpt8BveuqgbOP;YMVt`vK18UEDZ7@AqYOVb<; zjrn%Bv_tKJa1DPmKk^kf0lUgprGPL0eJ7Iz@g&iK_1onlZS0K>bK#x$!FD!jzIK|_`~h?eA1pz zOjXpPc9hB}0^@4=xTQ_BeNCGJ10RbxmgL+0R$TD_M^jpT=o8ASruR||iv#Xm`Or(& z&O`LhLx)}LdYfA*e*h995&$^YYd5{ZGmF|Mio5s`ZaUJUIQ}#QLJNC_%|fh`ZMW|J zSn{>=5yVw383WsfbXL`?5zT&OIklsYjVo;yND(F)D+P{($r zazTf5cZvcO7bwKerUH5d{hWzXo!LCHBf#dz+PrRFrGWVd=tBNoseL zmLQnb_H!fn2!4^kNyATwApp7(IPMs-YK54+x$X#Ax$?5T_X-y7m}Qaw&im-|T!&5o z{C4|?RXdDM2JQ4g^Ko^sM|NiKS+dsc!%3Ye6&pK1VLH|F{u?Wp&K!FQU`8c%;b4VI z#u% zvP|5e?($1KQJT#1EQz!zIQUFlxg#a?3~`Y;xcNVf7*uPsmDV5^gV@G3;`VsSrdhw0 zD4`=31FwX6t3wg|+i&EWr}P#;;6A+g#q|+3k|>8q=U+7d0>D~ZgA$eK<5w%QK7lOh z+cZwa_di<`MB0f%1eXm-1t+7$r;&kMz3&n>zgq3ssf_O_YB*HPm&TNefkc2pdp6bX z72ud`u3)jvuiH%K*JW?urQJ9s7a2)>jgNf&y_ldd@63(z{^+45IXzJqmbhz%3vTN? z$!ahle=bfyGkugsI)<~!nqi)Zv=aF2pY6u~5?-c1fj=|+3qhOzVBPO(e8y_Sl5LT* zOq`N)aE@w7UB<7*#{0RYh2UKr@R5qRpt@UB@B;}ZPK0^yxWPd+VsAo*b%E%*hOM= zLa$1`Y}aA@t>hD&snpAa*85u=J+e*c!T^s7y}D3mMEq+^S%{PDoVROCet)n%Lz=T>-DtaS#ilCZ(Tt&g=z!0IQF+O&J1{Vx>M3%y{$+|DvRl8>Z%2rclW zw}UkrBb40)KwSiq8eZH5$!^(6tG|1r1XA6HWp`QpDmBZDT_o$8?22Vhd9*qMh#MO2 zjC)YIxxQyQy=MxkX;yVys2ELL(bp2Y*czmjXLOpf)g6m43R2Md!R<^k!-6dzxcXZi zZg-C+H8=2JZva>FJ#|T_%PR526;j_vDXmtLQEAFI7CL$6%jkKsgS z)dC#qKVf=UfJ{CRfv^I^eJZ%me@sQ0Y+nY-zG*ynk<0>Hs>sa3j_o!fqnl-=xPW?xr-8;G{Cc;4pacEG5xmr{PX)z5qYN@e?)`R& zr30b7nOaLbIC)wDaiEnx`a&6f$*vq)NNbsg#Z+7(t*(`3Vsui{#@|V&rP7$p=3Duk z`hB|>HM9i(l&t5nzYM)8Pd9C=PQ$fXnIAy4+XsF7jmlbzQ^cby?{TiwYL!%Vil&?m zzMOA1>Z%Mg8w$oL}L%q%L`r`^R1WLF+2^n79X7>)PT9&e2jUJy8>Q zP~K&SW3CRV{==N3HQl{L1RRAf!K<1H?2RfnUch#dOm|qXML(mG*``BZ4HO{B3AmrHB|qec17csd`*#$EUFCnE64N3$*r5}|-|@|iRqpICT(psNYr;ce za*t8syGDQ;d-kNM#UGGaSeM1|QiD;v{#)Xp(hjO5^R!O`%R1B0%%)mfX#PU6!k2og+y3<+plFSM7_C?cg>J=gIPAUmC zzD~VOnKrUB#&~!bCqyuEyBeX=v?72vGg;b)pK>sAq=<{szn=}J;l=&^^UaI+3|D%7o%zkL7mtUrpk z1e}1G74{ua_Ub0M)Gf}~_>kvD`Y>3{B@zIw4EQ9R{3j1$|DBG&v#We(nN};Z8|uxw z;~)E4)>8YVu-@(Yza2UbMr2%=;hxy7l?y_5bY^pSR#WvcM`L{yRl;6AkykrD8IYF$2KA>+Gg*3vuOp)>w;!Y>u zL0&zBeC4@{j9E7`XJ=Rx9LB*X9U!e`64gwV*}={{$j%kNObW*fcQi(V5We?&`VST? zNEiZ2dVzuo?|!}mJxWaREQL?y#U-O0931d))r}(G*(Z>aD`B%Q$ z4%B>lOmDtvZfQ!syLDmk&laAt$=mu~NBlyFHd(R)xK#k<6^6Lh4R;GllG|SQCqtcmDUlKVrSKmd2 z$)|mpaAyJGc-bPaRxwlMP``nxs;2x8{-4DP9G#d*of~j}=C7>K_#fx;1RRqzw*1!- zD)vsw$f~+Cu2tF{3SfCtK81LNOqQJz_2MBl{I=n6ZGt#V5@a7Er5$NLMtSx> z96r+Wk!+dD=t?)?=07$Bu-fC3B9F=y%ipJ9j{TIPpUgH-;Wny;IJbCSm67b8mdrpd z;KOGTPIjZsEy`Sq@QS#pvbYTShd=zm)%4ooSN}&*4-*g1A_m8ZiGEa{)eN4NsBaMY zm09QK<6~G5C(nOXMxkk1^*B7OP$S43(HuWmP&#y9jrjd-DqFXXn9IejcHp?Yu7-_G z{`e|Ka<7?WZrzq z-U}VA@gx2ov05UV zOpuT$VgO(9FETfE=3WXi7c(=wR3OcTQj~1Z&Ym6$G_iRPthi0P^`sg$ALZw0`G4#( z`bj>e_iRBt62PaJC(GdcSfIV%srkwy&JeuUs-N()5c2Ww;>Y9iDx-*4*+9VwGaD-{ z=<T_CI&StaclnXc6t;Jm-SN% zn)$lopHb=qM&E<(6R_gf%eLo@njs~U&Jy*G^0M4z_4E`3f$Uxc50?x<|fpaW?Zwb9sbQ~ zdU;s)6Lp0sHycY>z{(8!fr+#6hnbm4l`o{}AHEiVoaTqZggg#E+QEbq_5_dc;%GyBss55)nclA*QpjAaEm>~AIg-VYs8J=zUW_kj0nr}+#Hu}nRd4S@@bf8 zi=AlZ5utM5E-yQ_77qgGw5*NYEJ~cmAE2FtuG(IKUnOcanw{Nt3XW z%Xg3hw>nE@1(_*;i~zK8PMNDwAm8S-+Ms8oP6bU3zA-BB(pH5#m>a;rh6em@@zO~; zto{QfD?66qfnQkyeS2Fj4?===k`I01owym81>Dke=}|X3;y8St7F*9U6g4`$Lp7_D zZ1#eNQy2~O!t;U0>zUvwB?Z$4V@iZ)45#8UYXD+we+b$;;#c(0?y%kou`vm-gq0hk z&6Ob~T*bb7DAacQ?G;6U4H=%L7%WKsmpkmkHUzFAspXtn3I2C`R^UH8?0=|ICs3Fd-~d6iUtfsS~qCS@q{IT+l(tS@XY zN8Qn7luQ0^9(o-l$U!jphY)fhzpe1)2NTW}-NXKUpkTA}v^36&O%qS=NS^+g zTYCYd<6>OAo*TKcx8C?dHOV*DPy7ucbdZV@UMu`S9=emi5H7ol=JOPn*L|k!qZ%Ya}+iB*DR9Rqw|J(fKB+=W{^YJ^WsszfAQTt?Kr#L$5#TC;aAJu>Pt z1t!}CoSdUzlT%g5uO3Lvg>Ma`YmBL`#_?x8MvmqAFW_;KI;$gHc{Du=q3O@Uco!8M z{}X~&Gdgt0cN{s00^dpF%UH9@KWwNVE%mLDK@$Km@5MMQP4azzBzA9i zjUT1NgL&1BJT6%KTek_->cxObPZ_cOxwsH{=J$QQ-rr&~U(D%vOg?DhgJXIKy$O=#M-Xwv=$MyE zT(*cF$gEZy&mLB_SL8EVw5qG0B`P^lRnKtu)YsCOJKRY8s5{TE-N3xnR86@{P)|Pa zN#pvZ%d^045byXi78aflr2K|{k6b!}8=bd5c_RuguDo|!W|YW(xJ+J;V8&-EnVpx2 zEdv2PzO1bTZ=Z)!y9n?6!h}U?`$;OmSs*`;bsaxg6+tjq;|}rFhII-r6zt+gZlY5qHD!dB6zof-R+(O6doBx3hiQ zpWZZje5UxtSGjJsp_8BX?~&E&%1EWn)_(F&5Sj@eSb67tuMtGJI%D+ zD3k)`Yz$=c&0~HsLKC1v5@3R2r;KGw%*`bt7xsfk@%*_DWO{EV8eDf&%((N&l>VGW zQHYu{ASnBx*QDFWzPo|Wg$+0b= zwqq=aI?j;;v5K-!r^q8RP44DoO~yXu5gUrCiu+Qmnr$A_$-hFB)sum;jx($>=#1@vqyx|>4yh+-UiS5 z)d%|4U+mz#+4D8O)XAI#?W0klLCbQsq-Eg9A|(?_bZH!Tcz7f1eQxWNYN(OA5&Oer30eObe(-ZWp6IqYJS z6nkho?!r?9@snVg(4ung3X3;4Co|53oM?8Jqta01KrR#}8u4@Y1#4bi01W6Tl5Eeb zSD4iX4@Mm&yp>2&aACs`5LYG&!0zO%N!{6rCVdijq@OEL+Na}7V})ca>!jdjGXM92 zW1ub&PUY{==#IoXpP!wb?jMaNGX+$K{b>BcVrSf)im%F{&oM{=DrD`&Xi~aq>GnD! zS2}qKh|pgmU2m87ygG9`K6qyuau>}yADun=J{g8Z{#zLEC(gr1J=!^RHC9L&w4CLe z=`ndM;`R<>CYulZfEukpVuFYO8!f$mtQFX10xS#=xzCYlS*fFV)rbGeL9*vx#EaHG zlIjrvEq~re(r{5qB6`dH?s(mizbwN&rNB)ZU72vwNc&!=+^byst1I4OoD8$S}npu)TKyFK|Hw@)ZQUqEeRie%Y`-xp--1%HMAGg8pE6AMKN@dVl!zrc) z+ru>Ce&-z-p622?`9TA4#Sz3~k0K+j=63Q@LH24d7=R_ zys0?YnjCno7VgdNeYI}}^XVpz4b7HuU;DospG#r4QQC3SL*N{PZd}I~zI03p=VQ9Q zj>zBS8qTG*;)rw#{WVu{@ZRt@7`md0zjr_XbBG~6^sS9*O~lUT%Nx^dz7(YiqMYrU zlzLV=VY)a*arM?20}%7tA9l$UYLMHhyz&RLyNYQO4g$p$LT56v%6-ZFRTwl#GId@G z=bpz4vA;^bgLm}j8kW&6X>YR#u$P!EG|v$^F9ih+c?#qC zIvS5RuXHIC(OF)zjkd*I_x@RTN}%_6Dy+6c@?B4fAkf|NbB2ZD!`IEUj1|7+93{3YJ zt1ZeRqKBHrA!0Tw1R%?!yTT^;Fe4eh5hoTO-CCHDjCCG;{RI#IsqZzuL~g8|u9=v9 zN^pNfV(0`M4Ot4H`X?Uo`AO?4Y9dNCT(+r&qM4Hg>q9=RC-F(3=zQ@z%+PG-rhMC! zV8MC`1)IdRA!%buz%11E#i(qD!7N;wE}15chxHSTOOv1pm;Wvw>(ir(ccy`NrQy_|z^^E|Z+1qE zQ=iK#pB0<_!v66{d6di=X)&8&^{bZMVR4d&9m|NQvThp6GIx7sg#%xApsDiNGf`A1pN`jnwobiig{#y5MXIq7wn=wrQ)JW(U!`f`73z_XDsqjpRJS=sI>ci z@m9(rSnM#vWy|(KkYxESxrW%XTT($GDfTD(CITbp3nDfJf}>@(#j6H@On@rr2U0uJ z3^NR$;uZw{004}a))O{usMV-nl@5(?2CLSung1nZK!%EBr=VSHYy2i~m`Gf(-pHGT zV5-rjr7vy-35|p#*y0S-Ad2Q|qT-z?G$}qcQ94nBE;{C%1-}^OEg6c>N0L~r&K!lG zkcC{&CTbBa@}F{z6F?%8Dk`T7UEQ#cn{bHsk_&vpFxOnUI-Tw>p9KEQ_{*@o3sae` ztAEQE#2nvc!&My&ZA)1K3bD!WY5p-?33cqDIvSnJ-K;j zk0ArDNzDcGxdD5mV-o<3!-v^%<=K~E9kOg1W*Cawpwpqqzwo5eWAOG`e0&_<3I%v�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 literal 0 HcmV?d00001 diff --git a/unix/q1-images/led-red.png b/unix/q1-images/led-red.png new file mode 100644 index 0000000000000000000000000000000000000000..53733fe1bb7d68cb5d46d4ecb1a233ec5f8a481b GIT binary patch literal 3581 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 literal 0 HcmV?d00001 diff --git a/unix/simulator.py b/unix/simulator.py index 25a6dbde..3e130c5c 100755 --- a/unix/simulator.py +++ b/unix/simulator.py @@ -19,51 +19,15 @@ from PIL import Image from select import select import fcntl from binascii import b2a_hex, a2b_hex +from bare import BareMetal MPY_UNIX = 'l-port/micropython' UNIX_SOCKET_PATH = '/tmp/ckcc-simulator.sock' -# top-left coord of OLED area; size is 1:1 with real pixels... 128x64 pixels -OLED_ACTIVE = (46, 85) -# keypad touch buttons -KEYPAD_LEFT = 52 -KEYPAD_TOP = 216 -KEYPAD_PITCH = 73 - - -class OLEDSimulator: - - def __init__(self, factory): - self.movie = None - - s = factory.create_software_sprite( (128,64), bpp=32) - self.sprite = s - s.x, s.y = OLED_ACTIVE - s.depth = 100 - - self.fg = sdl2.ext.prepare_color('#ccf', s) - self.bg = sdl2.ext.prepare_color('#111', s) - sdl2.ext.fill(s, self.bg) - - self.mv = sdl2.ext.PixelView(self.sprite) - - def render(self, window, buf): - # do a full-screen update of the OLED contents and display - assert len(buf) == 1024, len(buf) - - for y in range(0, 64, 8): - line = buf[y*128//8:] - for x in range(128): - val = buf[(y*128//8) + x] - mask = 0x01 - for i in range(8): - self.mv[y+i][x] = self.fg if (val & mask) else self.bg - mask <<= 1 - - if self.movie is not None: - self.new_frame() +class SimulatedScreen: + # a base class def snapshot(self): fn = time.strftime('../snapshot-%j-%H%M%S.png') @@ -109,209 +73,97 @@ class OLEDSimulator: img = img.convert('P') self.movie.append((dt, img)) -class BareMetal: - # - # Use a real Coldcard device's bootrom and Secure Elements - # - def __init__(self, req_r, resp_w): - self.open() - self.request = open(req_r, 'rt', closefd=0) - self.response = open(resp_w, 'wb', closefd=0, buffering=0) +class LCDSimulator(SimulatedScreen): + pass - def open(self, name='usbserial-AQ00T1RR'): - # return a file-descriptor ready to be used for access to a real Coldcard's console I/O. - # - assume only one coldcard - import sys, serial - from serial.tools.list_ports import comports +class OLEDSimulator(SimulatedScreen): + # top-left coord of OLED area; size is 1:1 with real pixels... 128x64 pixels + OLED_ACTIVE = (46, 85) - for d in comports(): - if not name: - if d.pid != 0xcc10: continue - else: - if name not in d.name: continue + # keypad touch buttons + KEYPAD_LEFT = 52 + KEYPAD_TOP = 216 + KEYPAD_PITCH = 73 - sio = serial.Serial(d.device, write_timeout=1, baudrate=115200) + background_img = 'mk4-images/background.png' - print("Connecting to: %s" % d.device) - break - else: - raise RuntimeError("Can't find usb serial port for real Coldcard") + def __init__(self, factory): + self.movie = None - self.sio = sio - sio.timeout = 0.250 + s = factory.create_software_sprite( (128,64), bpp=32) + self.sprite = s + s.x, s.y = self.OLED_ACTIVE + s.depth = 100 - if d.pid == 0xcc10: - # USB mode a litte easier - greet = sio.readlines() - if greet and b'Welcome to Coldcard!' in greet[1]: - sio.write(b'\x03') # ctrl-C - while 1: - sio.timeout = 1 - lns = sio.readlines() - if not lns: break - else: - # real serial port - sio.write(b'\x03') # ctrl-C - while 1: - sio.timeout = 3 - lns = sio.readlines() - print("ECHO: " + repr(lns)) - if not lns: break + self.fg = sdl2.ext.prepare_color('#ccf', s) + self.bg = sdl2.ext.prepare_color('#111', s) + sdl2.ext.fill(s, self.bg) - # hit enter, expect prompt - sio.timeout = 0.100 - sio.write(b'\r') - ln = sio.readlines() - #assert ln[-1] == b'>>> ', ln - #assert ln[-1] == b'=== ', ln - assert ln[-1] in {b'>>> ', b'=== '}, ln #ok if in paste mode - - print(" Connected to: %s" % d.device) - - sio.write(b'''\x05\ -from glob import dis -from ubinascii import hexlify as b2a_hex -from ubinascii import unhexlify as a2b_hex -import ckcc -dis.fullscreen("BareMetal") -try: - busy = dis.busy_bar -except: - busy = lambda x: None -\x04'''.replace(b'\n', b'\r')) - - # above is quick but will be echoed, so clear it out - lns = self.wait_done() - #print(f"setup: {lns}") - - - def read_sflash(self): - # capture contents of SPI flash (settings area only: last 128k) - # XXX not working, and not for Mk4 - self.sio.write(b'''\x05\ -busy(1) -from main import sf -dis.fullscreen("SPI Flash") -buf = bytearray(256) -addr = 0xe0000 -for i in range(0, 0x20000, 256): - sf.read(addr+i, buf) - print(b2a_hex(buf).decode()) -busy(0) -dis.fullscreen("BareMetal") -\x04\r'''.replace(b'\n', b'\r')) - - count = 0 - self.sio.timeout = 0.5 - for ln in self.sio.readlines(): - ln = ln.decode('ascii') - if len(ln) == 512 + 2: - self.response.write(ln[:-2].encode('ascii') + b'\n') - count += 1 - elif ln.startswith('>>> '): - break - elif not ln or not ln.strip() or ln.startswith('=== ') or 'paste mode' in ln: - pass - else: - print(f'junk: {ln}') - - assert count == (128*1024)//256, count - - print("Sent real SPI Flash contents to simulated Coldcard.") - - def wait_done(self, timeout=1): - sio = self.sio - sio.timeout = timeout - rv = sio.read_until('>>> ') - return [str(i, 'ascii') for i in rv.split(b'\r\n')] - - def readable(self): - # expects (method, hex, arg2) as string on one line - ln = self.request.readline() - - arg1, bb, arg2 = ln.split(', ') - - method = int(arg1) - arg2 = int(arg2) - buf_io = a2b_hex(bb) if bb != 'None' else None - - if method == -99: - # internal to us: read SPI flash contents - return self.read_sflash() - elif method in {2, 3}: - # these methods always die; not helpful for testing - print(f"FATAL Callgate(method={method}, arg2={arg2}) => execution would stop") - self.response.write(b'0,\n') - return - - sio = self.sio - - sio.timeout = 0.1 - sio.read_all() - - sio.write(b'\r\x05') # CTRL-E => paste mode - - if buf_io is None: - sio.write(b'bb = None\r') - else: - sio.write(b'bb = bytearray(a2b_hex("%s"))\r' % b2a_hex(buf_io)) - - sio.write(b'busy(1)\r') - sio.write(b'rv = ckcc.gate(%d, bb, %d)\r' % (method, arg2)) - sio.write(b'busy(0)\r') - if buf_io is None: - sio.write(b'print("%d," % rv)\r') - else: - sio.write(b'print("%d, %s" % (rv, b2a_hex(bb).decode()))\r') - sio.write(b'\x04\r') # CTRL-D, end paste; start exec - - lines = [] - for retries in range(10): - lines.extend(self.wait_done()) - #print('back: \n' + '\n'.join( f'[{n}] {l}' for n,l in enumerate(lines))) - if len(lines) >= 2 and lines[-1] == lines[-2] == '>>> ': - break - else: - raise RuntimeError("timed out") - - # result is in lines between final === and first >>> ... typically a single - # line, but might overflow into next 'line' - assert '=== ' in lines and '>>> ' in lines - a = -list(reversed(lines)).index('=== ') - b = lines[a:].index('>>> ') - rv = ''.join(lines[a:a+b]).strip() - - assert rv - assert ',' in rv - assert not rv.startswith('===') - - if 1: - # trace output - print(f"Callgate(method={method}, {len(buf_io) if buf_io else 0} bytes, "\ - f"arg2={arg2}) => rv={rv}") - - self.response.write(rv.encode('ascii') + b'\n') + self.mv = sdl2.ext.PixelView(self.sprite) + # for genuine/caution lights and other LED's + self.led_red = factory.from_image("mk4-images/led-red.png") + self.led_green = factory.from_image("mk4-images/led-green.png") + self.led_sdcard = factory.from_image("mk4-images/led-sd.png") + self.led_usb = factory.from_image("mk4-images/led-usb.png") + + def new_contents(self, buf): + # got bytes for new update. + buf = buf[-1024:] # ignore backlogs, get final state + assert len(buf) == 1024, len(buf) + + for y in range(0, 64, 8): + line = buf[y*128//8:] + for x in range(128): + val = buf[(y*128//8) + x] + mask = 0x01 + for i in range(8): + self.mv[y+i][x] = self.fg if (val & mask) else self.bg + mask <<= 1 + + if self.movie is not None: + self.new_frame() + + def click_to_key(self, x, y): + # take a click on image => keypad key if valid + col = ((x - self.KEYPAD_LEFT) // self.KEYPAD_PITCH) + row = ((y - self.KEYPAD_TOP) // self.KEYPAD_PITCH) + + #print('rc= %d,%d' % (row,col)) + if not (0 <= row < 4): return None + if not (0 <= col < 3): return None + + return '123456789x0y'[(row*3) + col] + + def draw_leds(self, spriterenderer, active_set=0): + # always draw SE led, since one is always on + GEN_LED = 0x1 + SD_LED = 0x2 + USB_LED = 0x4 + + spriterenderer.render(self.led_green if (active_set & GEN_LED) else self.led_red) + + if active_set & SD_LED: + spriterenderer.render(self.led_sdcard) + if active_set & USB_LED: + spriterenderer.render(self.led_usb) + def start(): print('''\nColdcard Simulator: Commands (over simulated window): - Control-Q to quit - - Z to snapshot screen. - - S/E to start/end movie recording - - N to capture NFC data (tap it) + - ^Z to snapshot screen. + - ^S/^E to start/end movie recording + - ^N to capture NFC data (tap it) ''') sdl2.ext.init() sdl2.SDL_EnableScreenSaver() + is_q1 = ('--q1' in sys.argv) + factory = sdl2.ext.SpriteFactory(sdl2.ext.SOFTWARE) - bg = factory.from_image("background.png") - oled = OLEDSimulator(factory) - - # for genuine/caution lights and other LED's - led_red = factory.from_image("led-red.png") - led_green = factory.from_image("led-green.png") - led_sdcard = factory.from_image("led-sd.png") - led_usb = factory.from_image("led-usb.png") + simdis = OLEDSimulator(factory) + bg = factory.from_image(simdis.background_img) window = sdl2.ext.Window("Coldcard Simulator", size=bg.size, position=(100, 100)) window.show() @@ -321,17 +173,17 @@ def start(): spriterenderer = factory.create_sprite_render_system(window) + # initial state spriterenderer.render(bg) - spriterenderer.render(oled.sprite) - spriterenderer.render(led_red) + spriterenderer.render(simdis.sprite) genuine_state = False - sd_active = False + simdis.draw_leds(spriterenderer) # capture exec path and move into intended working directory env = os.environ.copy() env['MICROPYPATH'] = ':' + os.path.realpath('../shared') - oled_r, oled_w = os.pipe() # fancy OLED display + display_r, display_w = os.pipe() # fancy OLED display led_r, led_w = os.pipe() # genuine LED numpad_r, numpad_w = os.pipe() # keys @@ -349,7 +201,7 @@ def start(): # - open the serial device # - get buffering/non-blocking right # - pass in open fd numbers - pass_fds = [oled_w, numpad_r, led_w] + pass_fds = [display_w, numpad_r, led_w] if '--metal' in sys.argv: # bare-metal access: use a real Coldcard's bootrom+SE. @@ -369,7 +221,7 @@ def start(): cc_cmd = ['../coldcard-mpy', '-X', 'heapsize=9m', '-i', '../sim_boot.py', - str(oled_w), str(numpad_r), str(led_w)] \ + str(display_w), str(numpad_r), str(led_w)] \ + metal_args + sys.argv[1:] xterm = subprocess.Popen(['xterm', '-title', 'Coldcard Simulator REPL', '-geom', '132x40+450+40', '-e'] + cc_cmd, @@ -379,16 +231,16 @@ def start(): # reopen as binary streams - oled_rx = open(oled_r, 'rb', closefd=0, buffering=0) + display_rx = open(display_r, 'rb', closefd=0, buffering=0) led_rx = open(led_r, 'rb', closefd=0, buffering=0) numpad_tx = open(numpad_w, 'wb', closefd=0, buffering=0) # setup no blocking - for r in [oled_rx, led_rx]: + for r in [display_rx, led_rx]: fl = fcntl.fcntl(r, fcntl.F_GETFL) fcntl.fcntl(r, fcntl.F_SETFL, fl | os.O_NONBLOCK) - readables = [oled_rx, led_rx] + readables = [display_rx, led_rx] if bare_metal: readables.append(bare_metal.request) @@ -427,19 +279,14 @@ def start(): else: ch = '\0' - # remap ESC/Enter - if ch == '\x1b': - ch = 'x' - elif ch == '\x0d': - ch = 'y' + # control+KEY + if event.key.keysym.mod == 0x40 and event.type == sdl2.SDL_KEYDOWN: + if ch == 'q': + # control-Q + running = False + break - if ch == 'q' and event.key.keysym.mod == 0x40: - # control-Q - running = False - break - - if ch == 'n': - if event.type == sdl2.SDL_KEYDOWN: + if ch == 'n': # see sim_nfc.py try: nfc = open('nfc-dump.ndef', 'rb').read() @@ -448,44 +295,48 @@ def start(): print(f"Simulated NFC read: {len(nfc)} bytes into {fn}") except FileNotFoundError: print("NFC not ready") - continue - if ch in 'zse': - if event.type == sdl2.SDL_KEYDOWN: + if ch in 'zse': if ch == 'z': - oled.snapshot() + simdis.snapshot() if ch == 's': - oled.movie_start() + simdis.movie_start() if ch == 'e': - oled.movie_end() + simdis.movie_end() + continue + + if ch == 'm': + # do many OK's in a row ... for word nest menu + for i in range(30): + numpad_tx.write(b'y\n') + numpad_tx.write(b'\n') + continue + + if event.key.keysym.mod == 0x40: + # control key releases: ignore continue - if ch == 'm': - # do many OK's in a row ... for word nest menu - for i in range(30): - numpad_tx.write(b'y\n') - numpad_tx.write(b'\n') - continue + # remap ESC/Enter + if not is_q1: + if ch == '\x1b': + ch = 'x' + elif ch == '\x0d': + ch = 'y' - if ch not in '0123456789xy': - if ch.isprintable(): - print("Invalid key: '%s'" % ch) - continue - + if ch not in '0123456789xy': + if ch.isprintable(): + print("Invalid key: '%s'" % ch) + continue + # need this to kill key-repeat - ch = ch.encode('ascii') send_event(ch, event.type == sdl2.SDL_KEYDOWN) if event.type == sdl2.SDL_MOUSEBUTTONDOWN: #print('xy = %d, %d' % (event.button.x, event.button.y)) - col = ((event.button.x - KEYPAD_LEFT) // KEYPAD_PITCH) - row = ((event.button.y - KEYPAD_TOP) // KEYPAD_PITCH) - #print('rc= %d,%d' % (row,col)) - if not (0 <= row < 4): continue - if not (0 <= col < 3): continue - ch = '123456789x0y'[(row*3) + col] - send_event(ch.encode('ascii'), True) + ch = simdis.click_to_key(event.button.x, event.button.y) + if ch is not None: + send_event(ch.encode('ascii'), True) if event.type == sdl2.SDL_MOUSEBUTTONUP: for ch in list(pressed): @@ -498,44 +349,30 @@ def start(): bare_metal.readable() continue - # Cheating: 1024 is size of OLED update, don't change. + # Must be bigger than a full screen update. buf = r.read(1024*1000) if not buf: break - if r is oled_rx: - buf = buf[-1024:] - oled.render(window, buf) - spriterenderer.render(oled.sprite) + if r is display_rx: + simdis.new_contents(buf) + spriterenderer.render(simdis.sprite) window.refresh() elif r is led_rx: + # XXX 8+8 bits for c in buf: #print("LED change: 0x%02x" % c[0]) mask = (c >> 4) & 0xf lset = c & 0xf - GEN_LED = 0x1 - SD_LED = 0x2 - USB_LED = 0x4 - sd_active = usb_active = False - - if mask & GEN_LED: - genuine_state = ((mask & lset) == GEN_LED) - if mask & SD_LED: - sd_active = ((mask & lset) == SD_LED) - if mask & USB_LED: - usb_active = ((mask & lset) == USB_LED) + active_set = (mask & lset) #print("Genuine LED: %r" % genuine_state) spriterenderer.render(bg) - spriterenderer.render(oled.sprite) - spriterenderer.render(led_green if genuine_state else led_red) - if sd_active: - spriterenderer.render(led_sdcard) - if usb_active: - spriterenderer.render(led_usb) + spriterenderer.render(simdis.sprite) + simdis.draw_leds(spriterenderer, active_set) window.refresh() else: diff --git a/unix/variant/ckcc.py b/unix/variant/ckcc.py index ca45aa4d..5f5ed5d7 100644 --- a/unix/variant/ckcc.py +++ b/unix/variant/ckcc.py @@ -228,6 +228,8 @@ def get_cpi_id(): return 0x461 # STM32L496RG6 if ('--mk4' in sys.argv): return 0x470 # STM32L4S5 + if ('--q1' in sys.argv): + return 0x470 # STM32L4S5 #default mk4 return 0x470 # STM32L4S5 diff --git a/unix/variant/version.py b/unix/variant/version.py index 22c66acc..92380566 100644 --- a/unix/variant/version.py +++ b/unix/variant/version.py @@ -32,7 +32,7 @@ def get_header_value(fld_name): return b'\x18\x07\x11\x19S\x08\x00\x00' return 0 -# default is latest hardware +# default is Mk4 hardware hw_label = 'mk4' has_608 = True has_membrane = True @@ -40,6 +40,8 @@ has_fatram = True has_se2 = True has_psram = True has_nfc = True +has_qr = False +num_sd_slots = 1 if '--mk1' in sys.argv: # doubt this works still @@ -67,6 +69,11 @@ if '--mk3' in sys.argv: has_psram = False has_nfc = False +if '--q1' in sys.argv: + hw_label = 'q1' + has_qr = True + num_sd_slots = 2 + mk_num = int(hw_label[2:]) from public_constants import MAX_TXN_LEN, MAX_UPLOAD_LEN