From a35e4dc5f4fb6325785b6f8b123266976107b748 Mon Sep 17 00:00:00 2001 From: Sam Moore Date: Wed, 30 Jan 2013 00:47:24 +0800 Subject: [PATCH] Added sample agent + log file writing/parsing I figured no one wants to sift through the qchess internal agent stuff, So I wrote a python external agent agents/sample.py I ended up implementing the cool idea about log files. You can replay a log file up to an arbitrary point, and then continue play. I also fixed a bug with external agents calling run_agent. Removed the reading of the colour line from there, since the external agent should do it. Added reading of the colour line to the ExternalWrapper class, to avoid breaking that. Added --reveal so that all states can be seen in the GUI (but they are not communicated to Agents). Added handling of SIGINT to main.py Probably did something else I forgot. qchess will probably be ready soon (famous last words), I should start on a scoring/entry system... And a webpage. --- agents/sample.py | 111 +++++++++++++++++++ qchess/Makefile | 8 +- qchess/build/exe.linux-x86_64-2.7.zip | Bin 6229304 -> 6231297 bytes qchess/build/exe.win32-2.7.zip | Bin 8655934 -> 8657926 bytes qchess/data/help.txt | 16 ++- qchess/qchess.py | 150 ++++++++++++++++++++++---- qchess/src/board.py | 5 + qchess/src/game.py | 83 ++++++++++++-- qchess/src/main.py | 52 +++++++-- qchess/src/piece.py | 4 +- qchess/src/player.py | 4 +- 11 files changed, 386 insertions(+), 47 deletions(-) create mode 100755 agents/sample.py diff --git a/agents/sample.py b/agents/sample.py new file mode 100755 index 0000000..34ce858 --- /dev/null +++ b/agents/sample.py @@ -0,0 +1,111 @@ +#!/usr/bin/python -u + +# Sample agent +# Copy this file, change the agent as needed + +from qchess import * # This is normally considered bad practice in python, but good practice in UCC::Progcomp +import random # For the example which makes random moves + +# The first thing to do is pick a cool name... +class AgentSample(InternalAgent): + def __init__(self, name, colour): + InternalAgent.__init__(self, name, colour) # The InternalAgent class gives you some useful stuff + + # You can access self.board to get a qchess.Board that stores the state as recorded by the agent + # This board is automatically updated by the InternalAgent base class + # As well as a grid of pieces, qchess.Board gives you lists of pieces and other useful functions; see qchess/src/board.py + + + #TODO: Any extra initialisation + + # You should print debug messages like this: + sys.stderr.write(sys.argv[0] + " : " + str(self) + " : Initialised agent\n") + # I would appreciate it if you removed them before submitting an entry though. + + # Must return [x,y] of selected piece + # Your agent will call select(), followed by get_move() and so on + # TODO: Implement + def select(self): + # debug message + sys.stderr.write(sys.argv[0] + " : " + str(self) + " : Selecting piece...\n") + + + # Here is a random choice algorithm to help you start + # It is a slight improvement on purely random; it will pick a piece that has at least one known possible move + # BUT it has a possibility to loop infinitely! You should fix that. + + while True: + # Randomly pick a piece + # Use self.board.pieces[self.colour] to get a list of your pieces + # Use self.board.pieces[opponent(self.colour)] to get opponent pieces + # Use self.board.king[self.colour], vice versa, to get the king + + choices = self.board.pieces[self.colour] # All the agent's pieces + choice_index = random.randint(0, len(choices)-1) # Get the index in the list of the chosen piece + self.choice = choices[choice_index] # Choose the piece, and remember it + + # Find all known possible moves for the piece + # Use self.board.possible_moves(piece) to get a list of possible moves for a piece + # *BUT* Make sure the type of the piece is known (you can temporarily set it) first! + # Use Piece.current_type to get/set the current type of a piece + + all_moves = [] # Will store all possible moves for the piece + tmp = self.choice.current_type # Remember the chosen piece's current type + + if tmp == "unknown": # For pieces that are in a supperposition, try both types + for t in self.choice.types: + if t == "unknown": + continue # Ignore unknown types + self.choice.current_type = t # Temporarily overwrite the piece's type + all_moves += self.board.possible_moves(self.choice) # Add the possible moves for that type + else: + all_moves = self.board.possible_moves(self.choice) # The piece is in a classical state; add possible moves + self.choice.current_type = tmp # Reset the piece's current type + if len(all_moves) > 0: + break # If the piece had *any* possible moves, it is a good choice; leave the loop + # Otherwise the loop will try again + # End while loop + + return [self.choice.x, self.choice.y] # Return the position of the selected piece + + # Must return [x,y] of square to move the piece previously selected into + # Your agent will call select(), followed by get_move() and so on + # TODO: Implement this + def get_move(self): + # debug message + sys.stderr.write(sys.argv[0] + " : " + str(self) + " : Moving piece ("+str(self.choice)+")\n") + # As an example we will just pick a random move for the piece previously chosen in select() + + # Note that whichever piece was previously selected will have collapsed into a classical state + + # self.board.possible_moves(piece) will return a list of [x,y] pairs for valid moves + + moves = self.board.possible_moves(self.choice) # Get all moves for the selected piece + move_index = random.randint(0, len(moves)-1) # Get the index in the list of the chosen move + return moves[move_index] # This is a randomly chosen [x,y] pair for a valid move of the piece + + +# Hints: +# select will probably have to be more complicated than get_move, because by the time get_move is called, the piece's state is known +# If you want to see if a square is threatened/defended, you can call self.board.coverage([x,y]); see qchess/src/board.py +# A good approach is min/max. For each move, associate a score. Then subtract the scores for moves that the opponent could make. Then pick the move with the highest score. +# Look at qchess/src/agent_bishop.py for a more effective (but less explained) agent + +if __name__ == "__main__": + colour = sys.stdin.readline().strip("\r\n") + agent = AgentSample(sys.argv[0], colour) # Change the class name here + run_agent(agent) # This is provided by qchess. It calls the functions of your agent as required during the game. + +# You can run this as an external agent with the qchess program +# Just run ./qchess.py and apply common sense (or read the help file) + +# If you are feeling adventurous you can add it to the qchess program as an internal agent +# This might give better performance... unless you use the --timeout switch, in which case there is absolutely no point +# 1. Delete the lines that run the agent (the block that starts with if __name__ == "__main__") +# 2. Copy the file to qchess/src/agent_sample.py (or whatever you want to call it) +# 3. Edit qchess/src/Makefile so that agent_sample.py appears as one of the files in COMPONENTS +# 4. Rebuild by running make in qchess +# Again, run ./qchess.py and apply common sense + + + diff --git a/qchess/Makefile b/qchess/Makefile index c6a7483..6a6e81c 100644 --- a/qchess/Makefile +++ b/qchess/Makefile @@ -3,14 +3,16 @@ SCRIPT=qchess.py DLL_PATH=win32_dll +python_native : + make -C src + mv src/$(SCRIPT) ./ + + all : python_native frozen frozen : win32_frozen linux64_frozen cd build; for d in $$(ls); do if [ -d $$d ]; then zip -r $$d.zip $$d; rm -r $$d; fi; done -python_native : - make -C src - mv src/$(SCRIPT) ./ images : cd tools; python image_builder.py diff --git a/qchess/build/exe.linux-x86_64-2.7.zip b/qchess/build/exe.linux-x86_64-2.7.zip index 80e181927a9d41f66f39b41927f338a1bcf4c507..5b5221480b15bbb71407f309567a312495212f1b 100644 GIT binary patch delta 59306 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%0A1sz$CZY*eC6CE#b*vv-sBnBNHgR z`7TP4?S(hr<-8*IQEfi`4kC?;?}I$PX}jmFEJk#cR%Gwr)*RH@(ll2oc1Sy-*F58s zMROlkxW63n4a1qRk9;FHaJ3mXe5zYh3cf1MQQhYdWQ4U0vIp`tV9AHbXhz>)e)q z+azwnGSy6>_ZjxFET|%LWHH-=y#hu?XTFPUz8jvrms>O%^hjQ`22FbU###9Bw9y+r5_jpszY(y=1G(L)j+&>vYb* z+mF10k;7{U+IsRGIt5O@JF1}(6YKG^0xR}IVB<^5#=f{c^tmR2d%{f((kQhLBgVFI zpQ-coINQ`JzpHidE#A#eVajKfmNU}Ys*N)2@jtMN<`;aR(_(Du`C@+Vn|`xVg@uDV z?O2Gs?5Wjl%x_JY!c_X$Z{swViv-0~t!=yO9KD-Dv0JFr+@K{dE!yH`3NXZEA7{@V zTRjd86Q!3@RWWH3PQg)Dq|*sWF(WmtTOTxr>hZ`eN-9JUI?CQ7aheZ%Cpb>0$M{4z z;Oo+wAea1#1SKgdxYKxv0WXV95dCMNy-YgMCr@MDao5v&l*ST)Tn!R4>YoXFb8)uK z=Cj!A{efn!a}-cpozH};1{FIfhWcFPYBR1}OqH#k39;B;e3dh9i3Lswr9{UEtZkQy zj@rk@tgcmurDtixJPe?;VfrE+>5+k^@eUoMxv0$;cdVM0@_WU;V0|n6P(nGWUddp=-Bqywy^S&%heJ=j=#;9+O*q0W zoTo1sboKIzkg4 zh@{2TaYv$euC4J5PG~CrdNZD9lPt=tPQjPKp88qeW8fs4htcB(@wK`p%3oIB({T$Z z#Xobf{h$|-l!98`ElBb&&v(bYDN@ap>%x}Hz^F;g!YTVLPVvz_hw@Bd>(wfNHGky% zOXim0$zeW&S?lHv2k{ho`d^KTu0=yk#nnkax$ZOke3$18S;<>$zfMMP<77pipeD2$ zaUUE1dNdSMfF>rLD(Go_+e!?z8FO9@#^Xt_$6*xWloG<;&vpF8@wFV zObQ{Rd-FnB64a|5=zJ2wza=;bnBh%#j^DmDWj3w_d&C*?aa@}gG?RXF-|HkhTF`H^v zBSP^7ysI$2x!+0@1Je8NRcV=jAGz)P>gK#Dy#N8r25*>)L^@_0_mz*`DG~F}2nCx2 zu3EZ7pXt;}MENrfPfT=;sG59#FnF*LSwSt$$-Ch)UeZ4$JSRdu5y~=S1_`Sd11jF9 zF3u5h@ELm8UsX>znzFd<_Wcu0`{v=m+vB^3{SI!wezDzLt`eK4GL1~b2>WRlk4-{& zH_NIY{jQnURJ8GA7Jr69f^dDd%WZt(cyzT>48#>Ivh6;*K%Eu_o!_j&=tMvSAjD-G zuOdkL{7%zd5hTKm;8wVS1kSk&ZlFRo1UDuPba4$ikOoTULiB1jJs`gG-srL+KeH%K z3E>2;`I=#!U-SLv`WFEAg3fO*VYhlgl-Cd@Joi8f=XZZ?dmu>?1os%5=;H2I1&1h| zfZ*&-@%-5U1*q+YFaV$FiLL+^{$@DHM})KM)j#$Scb}mO0{76cQBZ6t&iX=lpXO_Z zb2gmv9NgG3ER}+Y78_yl1wGM?KR8}65TV&4m{+2Skk_F9^}{@xNd6pgNi?PMLmS`UtKP>Ny8N|IT}JjhXy_mDnbGa zLIXq4aLyttb6c|u7m&pw6#(90fN}poMvMY(ijxz#i{M>3cWsemXId>&b( z0*BOdQEb{JB3Wk=GT2%gmZBroD)V)Vxabvh#weSxtNQ@wXp)GLMp&py9ftNZw*|eg$V60G2-(y z00^~4;>0QP2+@x~;=g@V4I-vOqE#z?Y0d})LrD1nttc~s%k_dZ+6N`RiiUeuHZOYK zM6jX)Zj$8Oq<1|m?d^H3oh|?Su0t%8SQfcH0>g;Ua{}uRBc4ZcD@Liv>DNV z;3E>I5KqjDgg>i#jbjWIxQ0(E1XMpFJ}-ON%SXgNkdI2WiEz|^-eVzbgOZ48kdJM= zPvFpzBACw;;zCWt-blAVEPu|mSs>;^!#R6v(a6j>jC+y3P{H~C;BTb28U5XH%reKjmke=4y zkX|Gc9vXTW6)q`0QgjvnLIm@~C#6ODue49uPJ~=}M9IiHM7s88@e#r`BLaopIW>tG z$Ok}^kuTT&GZ5GyBqf4*fJw2D#)3&Mj3E_GlaOK}6(td-?s6bk9t}Au(Rrc3_X#qX zGC3(PQh_go^x^>?;o~HP6ux1eMFxwSRQ9|?Zc>vP2O+rSX%|6(ZKshcBFBnnlAdP; z7M4jWjO4aFy%>9zD^eImHtCoGLe0h((u?{No+tGfKyWK6$u79tm1KXG2e_K-#yNa= zuqj~f)ntT73t_bvBG}tnvI2R88jsyeZrd)Ipduo&3bZXI#K?`4Q=A<4TqDA3_`w9< zu+EB*oA!$`HX>0(0vB7*pDKh8Wk!yoxT;P>a#qeFMA!Zu#VkY4iyXC~uk8;$+kAKc zqFl2pK%Cq^W~=4MDUps0Dv+Ohj!Y!$4RSg(>@!3}CqcgeUVKs!BGG?MB`T5ABInnt zkYB7yc|8SApxBL0X}?E;r~ezGJ51k>Nr_C`S|Jw^p;&t57YF;jrgyEZTjg|;`MLE`~8Ct$F{ z@BKo~?xtw~n*9GBjj+573VL=#n_4Jw3kB;63W^}$s-{N^taVZl{n7TKi-PIO|8dbx z19TLa;r)BlO^v9BkbVl8^A+9OPjQTg;P#ACT&!J!F$x&+IPD+5@EnHqf#L%WB1oU- zC@z{%+Rqdf^a$?Y=>@j|8^TA4Pz!J1h0fR5+3z+G_0oS3V}BQ3FW~^{V+bqQ>MpO7 zhwXoE-yz+ka31iF^DYFcy#IuHrk z+4S=z@ z{h#T;9~ba}7rcMctjTu?1D>yT1PqDaee#8H7)gMIJA@T*efD4HU`f{?FOey7VsG1= zf{&BKMx+Sr<@k?5*b@QBJ`!)d(50a>7{I1J1P|B{f@C4W5ifixh6f5!jTpd+Fa$t| zABbFf3$K$zRKyZ2*7F}v&$7z^*vR||>u;G0tpFS^2~0;8 z!irSwCwC!&HOWC9B14(_)cc4Y9!hR>;EOkeh1AO0{O-RtU{MMXaU>Ga5baUmCM`VA zP9Ek?e*Xs;#Dc{KcoZRz5#Dzw{uN+^7#aFjr3*knZ66#fNEsrF4DgLu4EIcAfNj0a zZSVabc9;RGDhMvnr2>gY*wIwIw3Dd%r=UQ_R54JvcPogxPHp(Rp41?J-h=RITp)qD zXh2et0mIh3>wM3CGET9T>5tK`Kzg2CpT@`{uUy|8@1x(!mAL_5Ya2(7#l6UeWo8x|C)5wUKtFiyJU+ z{I9Qw1$b8ZxWJylpWP?H@B-;ssgT0v4I$o0xF)wQM6k?Tka#4Q%lLwe%vZ26`1e^$}Noy(bss^m0ewvb68H{OfvR6oeW0Xa-3_MAq5-!UhZ; zLmQ-Js=F7eVa9hMn8>CJ#ShmAsnzm-w4SeW0wAOgf&mOz{@JI^tS&WWTS0=5`sr*g zxX1hI-tSnPsX&IFOebEX1+7T1-WDFSa5AF!q=1-V)JDsvi>J+Fnw3ZDKdD5 z?w4BHN+5KwdUwbRq{zwhuXvCEh-EbF33-Hw%w4aGnXo)BhyZe}{BVfHZv;Bq&en>H zx#R!%N$CR_MNI$Ub1@xR+X}uA4`g7|b~l?4r2))z{k23c>jK`3U;qsMkVHhx&|W?m zLDrIo_dl)z@Cs!I=mP#6tU<84XFr?{yN8e9KO_u+&%+Iak1A9T| z3pDs5M6mb45PnodzF&%@bf2{|UdW@`_TNOp6hq)W7-A@QNOj;7cxh~(-IB7Bx_g;> z{X6KiqB#t>*h<0o|2-s-TS8GdBnO#b<;V;4Kujd0 z6Ok9qs7oe1cF0wr`tZUiEczit5c%lvGUjsVd2ql0TkM~#n5=)MIEy7Guo`>0KF$Z` zBm7@~PRlCZPx&NyC#9v zBtUK;eLHw`iCFY8#2v}4OuXPCg8@%}08$i`d?A9hB}3AX^nrhKX!Q3DUy{xtC`D99cxbO75Q~z(4PDPIDe) z0$EZtRQii;@ca}3ItlQ0k8j8f?>~+9L;++HId0XZw#*4W&JU1lhOhxohyHs51KTcw z_cDm;3M#p@0^e?yk+W^50@7^ZvuzOz25=qzJH2O($6*?bthiKBQ2{?r5a+6m z;g;c_cEr)=|I>~nBXrbMUFz7Zf*2w-tJYj_k=2n^bAHCqJpVg($b&lYIV2mQkGAeo zd|u#)!wdPq1gXDJ47*hi`HJ)!{mawIeE8buMm{IJ8TrfWl`aS^Q1Akhi`e0g7l>{k z))J}hee?h6{gGP){2>hwD1rSs9^@MTg2Vt6HvVZqC7b?|Tt3}l0mV&!_DRv^OT<3S z@ZAyN=1I#XSE}`V<+QY2>igXWd5GvDMgb z$v$_3BXU9(+5L&X03lA$y&i}k(o?s-OF(c@F>*IBuVsTE&BVRBGy_jK;!y$@Xnh4q z#X7sS5q2m9s@ULasSiUI5s@mnoBa~GDGz@73);DDFp&NZZWeym0`Roa z*oCT_nU;~1re}PI8)wm%bvcEN+<+58{gnek38CVGKyIa{-KM1aoGg58bJPNz5=&r| zPlm4{oc@(7?%u9jw9h{1A^x`K0ru4|p|QGtKe3{oJnU$atCFrt=&ai6WR%Me-ca#Z zkPI>nQ=kb#SHlRo*ZDh7Zm0@dj^J@M_(m;J($ipBvS7we|0^jLe4iGVOP(wjetOVV z3SsH!!+sF;xr_@=+;HN76EB?j;B*a6{BRP0lOUXg;3Nzu5jcs$={lUm;3N(w2{=i@ zNeWKVaFT(OES%)vBo8MAINgAgBAk@qqzwC9rh>Tu?SRKtwQm~zqaOTgmT43eV)!oS zW@%^b;bCs>bl2Y5+??0d&vK>>FYV5R0bBEd*xuLjs$d!Qq@s~-!@*Q5lUi1jRO@wX zlUknFtRKH~=x`QQ>H0J@S2UMvs?X$Qvb;)`_+o7_FPVn(Ae^zAi{)+z{@u@m)@c-~Dy{MC2u@Uil3fey|sG-*(Kw>^_&Ey_h6hQ2OOP3?0yt({icj6PMXWg0Zm7n$5y4dI;Wq@chuu&>}enBN!i2~bIK z--qUXukxG>e)F*TdcK;3zTb_v3Hc+MM)n#h-iprCtIly1Bc{IAhAG}t!J3UznfDhm z$9vyCBcjo!fR&EWd2JCIG*hEA_e;GnNZEI{Tza;KOYlM3$1;=i`=jZ`iJ4a)`(PEZ zQwFQj2D4Q*KDnX?Eou@5egNlenHtu+r51hYs_^xX&(uJr+nQs+@5ZyWi^9q!AB-qe zc|PKl3Xj@&;nJ#X+S;G}!+_$TJO;}u=+?EZn$Jtjp+(9VUi4&RQk*}JA&(n&8^vD@ z( z6uK5!tyXQoXYaKoyguef<&`Z*8#)nI?yJpn01LVM{8K^w2gw}5@^VAI)a-^3sRdcz zSJK;$n}2HKExtMIUSmT2QOQZSj9NgSUeT+ppZM8_@H0EMbX0OdxrXa2%aIe<ZQ#J)fLMl$X7)>dmiu2^`&zvsiz{kS0~9`S&fVJi58%&+ex$3)^r%^}kKA>}_8 zcSwdw-c|&L{eD{J`QBc3OpAxK+Q=Szl~XQiFlAZ83AMziB4srl#fz%p(|F9XxQ5s| zGg!-}qtdUV&ULmus{nzg~q#3hE$Ue6K*cj82wgYM9wCi#(lnL*Ahj z^-`~5Lmn)9@pLYcFnK`^OzV0{^AOg!E~)X^R0r-wj8hN^imz zqkaxHOiBo-BH;Jxlkgc8RU|0(b;wETsv;2bJz*r}BJE;h$>s>mc^u4KQ9Y_+W% zJ@%KrHx2z0mWgQQxRORh$!K$AJvy$zXm%k9D;a^=T$o~aHlA8M!Tq`SHkZ-j_4S9> zQBXa99(lc#z!Az-!i|s$oan|f8v2-SX3lLG)_Zt0SV|_n-n?}%HqgybTBwC;K@8e& zUOMKG#m*EYsy9+Hu9hWJpD7&>uC?Hw!y(eOOe+m7WAtU(@e_Hi_w<#b z_vG;tL0SD`{^+k2!Dpxbyr{!UcyX<^Yg+|FS zHfHa-y)v)9g$0bO=~@?+)~aI#>BvGo7ue7X#B;k$ZVY`uu|v<*rrwpB{yn@tWIofd zVMJ2lQ&RhZ&-}aYcpx>TEI}fuAwH6M?8?^+92OacC zVaOsZo!~HB6>|=%y3-qo;~Pr4QbhsqTp@RudUIf0j@C7m#W(bptdO1LsZXARPG$oB_kme?JPs)$zmt*UYvI7CX#*N60i8^<`z=AxSV z$&T;7D{z_>3F;jFn)XuBWi+!5RUA4uZ@uebHoLA-;;WyccrqbyH)}7B*Rxv?U+-0t zc17j8LlmLRen^pWd1?lwIIHDKq&w4UA19*)-}o{rqx3U<^t_J@w+M$|vNetT_q;Ls z>jG0T+tx;z{U82r0VR9{1;_rfNRQBXsJv=feN?{16Dd7f#AtyL$~|LmCX@s1^TFPg z{9&5t5=$jaZW8_|B|MK+|HPy+E-|F4PcWnA#Jd+45ra+t53R-Hn=@>M{ls~WP#yKXgMDl^~c0DXqU!yGcFM|$A}(iHIqD3Y?N`dywhS&Cppghhf(k4 z6DdhJG(K+?l2Ny4Peyc+a>?9Dv$1}t)qGoiB^lp{ne4GXy>mImij;5p@YlmaI*+^b zxL9#Y!)jY7nvu7pX`k;#lqv{^jP-z%Z|1G+_-Y;lee5>qG!orl-v zQ^tlh{#(VuqLRl-TH^n#;BYN!{>d^&F1vfR#s0=Fv z#`WHm*I|q*ug?{*mF2K@Za%`Z{I-MMks%uxmh%hCMVS1Bf{;uLmFQ0FxG>@}cH(m5C~=F>e5jM}$Gp8G=_b%}d_IFunB|&ClNA?o-oW`{MCW-^H%d?QGC3 z7xg?Z8)xGtYsd#PWH@C4@C9Nw3<1{QGCR`1-dW{xrG-VZhfTON@gb; zbxT@}tI78vZz>@tB|#T%T;EfRmx0^1A=oS@l={k{jHLJquWpuC@Q?otH9CE4bj2TteCP9B zopw#S;H5&45sw@TZX{$;0twJ1fkCs&3(w}R9ned0Q| zf?7r26TXQ@?)2XRjGDg(972njeXl-knYwXdA#CU~0kInm$(+moJDegKAJ?R&V7H(>iK{>ys^p}rfH+(9&EpMj>qWaW5 zw)I^;__$vD@P42_nNyfibhe~XJCi)Uv{J^MM|}M1Ed#xRfyqBVr_C1ljJTaz|KBer)x%f}b*csW4}6je`Nd_t%9Q z((=5UgkLdE%dtmsbC#;#;9pI4=4f+BvBswVgiCK(VWymC6=%0L(x#z@Q_R(_rzuil z@M=Tjo^77%7UeY=mv{P4ROm_%?+J2X$Im-EgQ(*$F`XQ$40%qU#9+HD_)ibUjEMD)KKM26#CTw$ zrV`slvq6!ti-)g-S@1ms?S?WIzY^4=bSlE0#rzOVRc^1DqC z>U%nLI{vnZMk+7;yGT=+pYPX(YN?4);dM`ymhy`46HYp-cGn7tFdXH7Su2s2}yg=hO=S4fI; z#drMM_UP&S8A^@Bf{>Ho%w@Vwq0)o2+Ju&}cZ>GW>j&RfcZTU&T<6Q~B=>VpWR>v@ zrMLrw_fZA~S2DkvNeFH$)5e5z%H%vX&fw(3NHI3Rw;AmEsWR6NO|@mF*S;CaQJ?ip zR8z98Dup_QYfuBo{l-z6ZP`Oa_f8M~NqhPhwNC48)FuaKQBSp8od$1tyc_()>0AEf zUTrF-^e{WwcF+qJ?dwg88PcSCX?2_eKNljcI08!73Fbp!8KK3T>k)#|CSyFD_= zD%Xq>vtXMem%oDarPWZRKmU z;T>~mI=ts~8}r&}xWF46J%jM;add18{Gvkahat62DddcXAxFGp8E*%cn%o~y2xiZ$vnYyDJ zPAVH+7?TFe8K>3GA2amsxs$GALe`*vdqEd%B$Gkwz4W&N$>ndhZXN{knUB3BuZS^! z5^*e*tWsUVOj8EmV-h{hCD#*Rq%;3b-#BGG_H!AC&-+-Kstcv$kiX9F923G_Ir84x z5NO8F&?ZstipAJ#F>i8|w)u7vT2i=DCnd{Uo4iBm%6)~VJ8(G>#Sx3?!OK{Oo(uw^ z+~{`05tQ9%34BYi?3){z~(y2g;h0s=-Dc!{O)Esar2jAe0uMo;8O4ZJ{RcKd@R&$FpIXM z!L-Q9T8Vk*W@#UN#gYWmj}6_aH?bu5HJX+v*yBI9g{H(&L;2;`Ta9NOGWQs{D!tQv ztc>)=c9&~bQxf96KPt6MvUS8)*+m&IkmoUIDJ1!B?`|!WY?lnnq)ffH!k9{YS^9=) zqP^gG&*SIln$L|`L&C3_-ytdpg8vliMHv~TdLYMUw|%S@CS_)<2kI*;3}(uLZAIxj z%iXNft#0VsDYnojlQ-I&X5WeixN}OS=t0w*#{Tqu#B$D4EK@X0nAF6PgN|I`L-Ya)|vw1aR zKvG)Oi^%^gzoJaC&C}%9^3%^C*H_ITYSVI%oy@~N`2z1IsBe=zGczYn2(!n>XC3vb zm<*@!+uZL@CYguBzRJlShK+;uYP@*I8jtA2lExJ+hq?sZb&FKYl;u-SOtmzX zoe5Woh^ZcbO4D}pQ7$`YD$^=zVS%1X*?BFqPvw*PX%1~oNroR4cC}B`9o$zZ#AO;g zKuO#+%W`X66eW$L%oR0b?`P!i@X(s!#kYh^JIZz@jYHK$Ex&9so~pFvv#(369*{BA z2zk3YSxSi5RjRuw$iymz3w(moE(8KT?SlbV65?h1H zRHwck5VrNUDEwgBPa8k@891%DbCp#v#>DezqZCu?POk&a+e}vT!EeMB>54yOy1&{p z^HSfwuUJ^Ha;>sm{KlgRA6Ye3h)!9P1&zT^#=5E~s4#H`J*H|Upq9EvAGT}iebO<* zLdsaERet0H9(kF!6W0HPNMrPwR=P8|?e-{X(5UM>>r@t{cUxLp!z_C_!A!+cQCehC zUh>om>a&rM-i*Ltds|Lldo5mIdMI{1F|mfeX= zXc@2Pnxp@!i6v~eYqG-k3*RUn>?1|-W>>|muGTlh+|6>cpCO{RPikDuIF5gS=i+pI zR`NDBB*$i+Mm4uMl}>zC_pudP+lW(|dHTLoB1Y-ukMtj}AKn9qsPu@3i?n*;N@pYY zzJ(q^`R7!ojpINY#SJXMZ+=|6T`X5-zt0oYf74c#E3Ss=q*Z|HwQ3!Hmhg01L}B)= z6Rp4k5ucC0UdVs=Is=`ryDMh>hAtyJH%HZvM28QP3R`8K&HP~NRtfG5580xk4#TU* zpL^*ajVqJv-OpzZ?}v1CZw&=O>Z&0LKDkn&51^ak7`ES18ScbRX!W~bei_{|#Liic zVw=gt&u}`ne%d)Vqnk(K+0X5XYK+-6yoo>OzdfSGVHvD?FD1>_$V2>Ym1;&46>OsR z#V>xa_d@xWO{<{g+iQE@qlrjy&~g1jidIqzh4=1j)j%J3=`POdMcdL~9=1L+I7-Kl zXMO{H#Wu-dgYWvy&yv7(^Vv}6Vv3;j#B+UoN1W7{j}a=@q3iPkPd>jJVZuy#mx|UV zA{5#Y;ah%-tTtq(Tyainmg(v8Tw$dSsLR?2>x+9IZW1d^^`heo3xCt}MC+*^mR~+U z2NU`>m1!Lm{n}Ml4GuJ$)9U}#U2vc(zP>}x3Qhb1PU5;90{NgY>lQ=-_!YmQE;iOr z{klgNHJ!e<@u9o2;r7jsO}(|nlF#BWnsA#EmtGotSfHB2Qyqz7kF@KEic_k5<`q^v zbk$39ae&N?>rpqaq{|!6s_9P$m8{nWtMZlN$?sErQ68F5RvCWSqFB_3e!M_N#&Qu#VfGkK0tYzBS8yR@QUSyrAM#kg3X#yQWCxmioFJZNZ!lq^Vi*q2uv- zCE>3W?kf)2dJRF^?zI@hD`tf>^>@Jm8VIw;=W9p=!8d~Do zH?Q>_3T;`^Rf~1gAB@R5s5|7l2-R^3XZZ07-`ndo?+X3QGOd<*jrVCL7cW3P6p`>A zjo0&jrZL|T6JM^E^b17|qAU9(7&;H}dreZ_(~EdEf8CxIuwjXlo#O4t z6NU!fz5dg;_l?rCogKuYU`t|kX1c9$U!4MUQ$SpZ5|2Ve8*?CBAF>`^E%es-OBk!ux6V6g#SWUE ziIl$AnWQDe7UX*Dcsq{O=%6(5@|oEi&fZCd=F;81eHS(zo;6P1+g&WCmz{}s9sgdf zag(95km^oFYW1)|`BL$_Q`oIE1=0JwW^5@gF&5mNat&8VWIZ=_oAd+#+1St8rd6r9 zJNgaRP1~Jzspj+4EnFjae8)?7`2Uz-lj zfW;2@o%G!wA_Ki6+s&IN-pvF4iJJgUwH6fQ-#%LzG+#Hw-r0E+CEnFc@a|d72S*E9 zzmOm>@f$zD=S9a+q(HF5b9s3M_u%Khr8^|S4-S7}EJw%RO#s=}ud1%R49nYjI=~AK z0-nD?kquH!PjSSgE@)5Ziyx4e2sbwr%`=0TN8hpI9V>sk?L17G#vHQWY%KTvL%ARH zq{DABDwu;tD}Q{Od_nF$h7JECKYXqhSM<#*(WL=OR`I=cvyjcV;?T8pJ$BwK>40T^ z?kZ0+UGPKxfyI}PKt?}1w1*0~&(7>{vWttJcG?3| z-^%I5TV~}c!db#Fu?@(Z)2OhHe%oPayX#se-s!PS%hjY$n^b1gf!l1Bp9}50x9`y5 zpw{IR+^!_tF~WShh-7h+?g1ednoycy|b*wB`l`qOU8Y#}GS31UJ0 z0#7}#P2Z;P{?%iX3 zY*)E`r)e^-SzA^mK#sBd{C03!R+ulw;bp-mZKvOv4;^?WSwScf%?1k|8lg4;MD(A< zNY@swIJWb5xDm(6D`0kCuV=8)QGt@+@}NWr#92*8@)z)M9Qh>%GjDVf?;AN|KKAUy zaVGFn;@MujjXwmHq5myL|N9F4Y=4wt;j2>=`q|U+KAF?7@(7so^{*Pb)qYBD2Ci|P zxdAiJy4xaKrkT5)BAsBkmD+aK34Rq&t*d>Nr4b-ctm=KdZFVsJEQj(i(#Hw9OYjCf z3oeJH6SlRr(28M^xpkt@ruIHe`jPpCk{(yeW+|}Oq-MN?V_ib0zrlmtINQ~wm_g``V?vdokw!xID-x8BK70f zxLbB~Sd9^Gkob^EH(9wWjWM;*S|v2UNx8ijw-;Ip)a(aLxQd;P3|;Yq`rkHCG!Nip z_6^F|Vcp=ag7I(u@WEc&n|pDxRQ&a{8~jVX6hhvH=J#UC# zB`d$#6s3-E){#C6Ie9Xr6bc<@qwj3Dn#;~jD&p&|I;I#gK1 zQM!Cl?eW)ZDp8pgyq@R;*S-2~p$2+YZEzi>3(>B=kRpDd(Ms`&DWClsUI6W~%socB zXojgJ8^^S5G|Z3hZhX5Z|M_$ndiR&BP^6LhwU;PHkp#U-^eg<+G5i{<%3lssqlz%bU!9E)y*L0zXeL5pooc-a|dD3`1keH}Ife z6trBvufTR3%lM4yebZ3gB!6VQ?G|WsJc_AqQj0+Bjn7V1EWdf(56$k0B&etCwgt8Z z&67Cgoyxc2`JV%E`zK^GRVs4_A;MtC5$kU1IJ#%+_pXu+N9TxuhpO8d_ha|tv4TGM zsz7^vt5U3-_>7~aY$BfTV0?CvN*&v|pQ{wt&&kqsN2|Hu*_G$Ab|^%GJm|?ql${A? zqDBmK^{O_I7VXd}t0>(YFMOa=%QlWF<*tDmR5#Lp*M0a{KU8DsEKFW;Ws*r|$x58B zsNbuPdUxYXLA$bT+f(sn0@u_h?>eMEey$lIJh~>hAhMQCG4SnvD`CkbRJG^j?c|xx zWMP-#9t%61{@gECQEO?clJ)n1SF~R!JO&qH6xKu2jfG(@{4f_zSb@MxsJ0_U)3W;x z*u&USy6bAFJ6dGc)wW+?6vhKP!Y9ysqJ7>6voklnrRUmKzz%n1@W1_fM&KroJE)#w z(Iw}G)-M&{{jdmNyu-oZqL#;yyz^{8w+Hsop6ZLXWMHoQ*nFhM8eZN{e;7MK{m@Cg z?XlLo@gFAAz&pla>4eIAj!@;jub=)OTVDZHRnzs)1tg@qyCfu}8w5eZdj+K%1f)Sg znyb?D_3Id*)uwnWIr(7!+6c zT#@%+AgifSgKpA`%?7ctHumhKkvojMk&H>@d@fS6^0z)00}p z{9P7#-5xCq4S&P+9uJta{7}#GWw7-Dcm2#adaWDy+d0dzBjnCuifziAQ7=Ir2DV)ZImPSxZA-xyE>IXSKhgy>*ovCm_ZUfh&4NeR)yX z@$+g#m4#LqL%BiU_T|l>BaML0R*$(7hFS2%?XCV_Ov70l6r}e3G3H5F3rLoRo>&p=pGLZ$we;j~?oha< zyt?c-ZAvpX?0U#f+;wDqw&yx?@tR!qj??wyt*uG-JB=+NT9(-iC7Hy2*pa<#`x1?g zyW|0xV(z1JcNcjXwb8N3TiwiBbs56$eHo!n$Q%-a*{^-M#`s--dL`Tnz-h{5;lydjodQ<7Q<0|nnmuhdmftJ>}) zbqE#Lm%mzcOnUX4&^o4nVuAJUp~B>)?OwV4rOUD;J#ulEeT` zspFauEp61KzW0G9oMso^|8QWd|D0A*bs`O2Py0Yqgom?G>Pgkl_goW^k&2{w_#dLQ zzd868ks6q%ID6@S7=4G8g^gjP9E_W%-&bAq9Nm+IQ&4Bpbb|LSd!|v8^Kw?u=7Tp zd%@fs!$x;`y2X;%Ko z58Zbc21hdQepI!U`DZv%u|*g7XxY7Jr{OL7O6Z;z8<(Ve#oX|Iz)|KGz8B(r8I?zoZl(BkZvfep}`cs5v`$_?sH}E*hM9E8r1K|0}acZAkT#{L0uYn z^Ctw(IQthF?mP!IWXi+BTXeJo42nFHy1N5N?PmN(I|32ohY_yw?Vg0%UxwF*#A`@{ z5^y4?4bZbQCf5VbY6!%nO6|JtCP@`AYX?q-Ha@E+4WR0FB46Xfh^za(8hUP4droBH zuwHV$kQzn9aec;gLFKG#xo=fAR()<8(nGDO&wfOCqjNA!GL!7U9G^e@k)|^RFOZ=yR2xGpXVhsaWs$j(0=IGvbrQI z#`fF`=(%KZ`8`JTp~bgw|D%~PL;nFOQZ$xMQH+kY|!O z&2!OvW>yDpw2X}wdgGfj-lml3Z2!jKo|6z1G~DvfzjsM~(7nREA%$~_!DN-ic@{zb zg$CX=f0SOxMUx&~w4}FDJ#3n5MC{w>&VJqCvjICZ?^`#i0!O@=ehhh9RD3Hr=4n{A5jz~hUoynHqdSs$?}?dgNk$J2-U+`j_;6f2$hNa>{d#muC3#-;|ttAFR87AqoHl&2K%8WVU zy5+;uY{8JvqQ^mrb0u3JCsNz;E2Xnk+q42(g?n$;=qZ5hH&VD-S!g06xr_(5p7%3w zvV0fqelp%B=s)iLE}^@PtTc9xes;f2DYWS{K9b5izb>+2*n*UD|K2s-4%gPP2bQk6 zLi^N$2TU#fL&68SDn=3Lac|_^K_QX*d3dmvid}ftLzMF88_1n?kyiejPu;3!O!n_f zQ1mH8w#_mkI8%j52KLU6bk{l7BD3rTVzjPA#-j^d%u<9ewCj9dJ@ckvfzMa`3ZC@k zAa~Sd%B?9yiD2T%k~v|PongCY-~IUrMIlKMmsAB8&c7djcSqeIMNk>3sJg6isvWrc z-edC1HWIH(q(xe^g}xwZsC{G|7ItM(Zg(uI;Bk^RbNOC|i*_q852b zIh`Az^@&)bTsYy8yF!Vu?~zpRj$I8W$2)-;As4lokhI^u0kXw}svQm_74buW%#`fV?VFHgU7gwxup;76}clUd;$??O`d^<`gYrj>YEF7ONQdl&A>en~Hbvk0_1c2v@nTr7k~E?&Z8TZhOw5XQ=Qn zfVL^cd*l(SqMm#AYZFpR_=4B+>Cv zHhge5l53^$emyEh4p48V+Yp4{h^B7Asg{HJ{96GxE#bb10?bghhmPtvyz#^)M` zukHKsYnbJ2l^8Vzq+vi@jWh+a2Pl7@ZXjw;nhm_K+k4wgiwakEk&<@=Wze;*DwgPn zYd^DYH}=%aaIY)m>7EWb*JDaH)2Fe@$OjeC$76X7Oh{Y)0aj9xC5O=^XMRagetbmM4E$c#3Z+0cBl*x43$LgeC)Wf7V3*Q>vR=9d_Z9r0c_(gY-An<4} zwV&`NxTu>bcp@P@r*`A!4&|a()X-hy_uOh?yHgeD^ic*;9{S~9yAV~y8@IZ#$mx>P zdFnF->(G0WSdDOuf)PgCI&AXluM=hreu{@ihKJH+C5 z)+AE={#x(+tLG>FkQ7p_c@*3v#CbX0H zu%%tSFSIm6`eJ_%R&;|ghN7&Y>5k7VsC|>Av7Mr#QBQpwlPMnew8?j4oW*1_neT3M zV{&0g%sY3J8aLV2h2tDvpw1I69Y-2iJHmFSrU)(cx|n)uo6(O=D+b^^Z1m07C-&m{3aK|h5p zXHg#>=W(&XspVlBy{G*f$!b)ytLP zcNUDK$myMGtG;SY!twOPi>HIuuIy60lRu-rZ+W9z-H2oG%vm(%{f#OJ&?ik|$MlzNz>4=5b`G8u;r% zmHA?S|2lRE_y0`L^YK-0QV=_>4M#qjh|Z5{wGomxr+jYcZF=8mFw=CsM59dO1j>ju zsF!fcv9(l-p55H>DOM|R6{U&$RM(mG_0`W1DYQ3zNOa_p{LoTxi7w{cpi;xC`x^_% zb$v$rpQpln=~jym4`q9mpfrV;zJa93Na)vlnsO8NO#zn*U7@HXR2 z%tl1^5RGo!WjJK{kvr}q@*$0wIh`avso>Md^3Y3B@{cchcH{=hsiJBGir`5m%Zi9MM~TILL1!i0 zyfb88;-|u6`p{&^&VXVnSoA*sNyVsJiz2nt&sOWRri&^S37-$mRy73Pgq1j`%|Vd_ zF@?)wW-~)iV=kUVmE0$=U2)r+G7@8S!GrDtnR|u2X*Sw!ytm+o9VnW0A!U5b^tO}c zfY|wAczYEwC;i^=L&wxHy`gCD%R*ynox1eV&u~u}I=|VT=~Qn$zvzs;A^P!&)nm^} ztIE_G8~wFCH-i2RK0c$1EAOQ8eYx32hfgB?E_)1xpAkcL1ez~bdU!~_?%T~DY^5!Y zTTbpFADT(-B&|%jeEPYE!k<{fcIWhyEOd@9( zRylsjJWq%AL@;4-J?Ssz&7rj^+Hd>lF@M_BavdKw3_5yw6bQ*lS&n40LJ!d>9d5kl z#Y1ue*lG!zBJcJ4iail=y~Jk0FIwu~19>qf-Vl@8J1pP-{3Lw;PRauB$+?=3M+7@| z#~TA2b5CjMa7K)eDETZUVK_8a2Gm8u+sSlW3*)N%z7g6&K%l z#q^SCYszpxrC8$wG>`iy6xe(33|O(c`3xgN6MH3(!p^Xo$)xgwPT!aZ+hDbdVMV)B z+F_g(WDpeQVFo6J*vK4+-l9a##^II(WM-v(mSDRH<8tIsmDo8Zy5)RPLYs((mcN&^N zzsOWZ#`i@%%)ZR&$(;9SO1tO-+4WVuUq-Ewtcla0Xf^x4E}K*RYUhLVHdX}lqjhgy6*{QHm)^0`eC`wJEHHd4k&Q^q>Y2*Pb)wFyzDXBxu9Rc;!|}nr4;bMJ2FPZ~PCAl%!7WI{Bt+u!uN_&RM3f~!TvBsR0B zr6fsJ9g`TA(R#(>5(#lcn^XxDYn?xp_$B7@^^&F%@7&WeD8MkAoA{k%#4+uNOsjuA z@0t*HNE_;kdegyF>o_V+s59(M67y5iEv56AAG@?}O>X8}T-%_G=e+fTf_Phzn_ERt z|AjP5Kf7-4uN-}}IdZ4`xsSVS=7_tVEK_1wL9zDLG~e%bf2~I^;8=v`{+g~B8|YuJ z{IK1-y_W3J@C@xcUrx)!|P5ul=P&3`m_lG=DPb9qIvx_i+(&%lqIe^;c6-);W5jd-r>zM^a_-$j5dg&NuZfFS4?`YSL1S zH-HYVt^CpF)WsZiMLi$(qHd;X%rVphUvo?PmxsRuonNj0YoXR>fOwWsWNff|p|Zl(jVr9z_?|bNJDlN7wFhqai0JOIOFm zFwG-DDyAtyVyXykqeQ|GTVx|TBT|9tNzRCC$Z=1@;EQ$L9~Ze&!B>P-Jrtg5?^{OH zOPP|1Omk3TWb8P4pgVWd1~Yz=Oj0GLbGBBZ%&UGgJQIc)c#>eyc)kb8;#&)&RO*(h2 zEBr#b!fLRj2Ga+_!g2ape%avM5Q3VtnbcEOy?OUu1VYc?l9=3%SThmbidlnr3DkX_ z7V}|t0oJi4^4?k8@;$x3r0AWHb=N!#E6vaSjZoGU9bAf@&OW-V*XCJ4f5D6?lq|l? zP9EN@Ui6e(v_{h_ZwQI|+mztZ-kU3&QJZQW@|45&8u5m}a5Sw__85#Alwe{4(FauB z_bz?~-cPzSgR^95$P>0TWkjy^n)kED9WCmrSCq54bOGchQId^|^7jLo&i&LC!ku4I z`3r8}bJC7+k0(~VvcXEQPv0*fNbJLQ5wP+rS$vrvhi;EgW#2cB%rQQgl+H)b$GC9M z*)9~KRxgi`G`PF2Eo$IP89PC=bwZ zN@La#9L#~{L=gjfR$EjNO-d6z`tSGXoL=+>BbI%s#=j#zC3NY$Am`5D`q4Kkp{Zs+ zGgs-nvd&bzW){b`q|}Aoth&;9zTmhr#DN}^w}?t!Oc~SaUX1h&|AfQmwKCjKJ=15c zyS#W+2HhH3l1?Cb+7yRT?r2-ueE1B9;tl%l*xe#^hOhG!Pv6wsGp@_>d+pMjUA(ie zD_5_4(lO*+%oB4Ka`kMea7=POH{)Y$4vvH&qYu*zVb(LWef93RB(;2I+p4@I-A^BQ zq*Ib+a%2VV-Vp<&`@zuKqrEnJ4AD00DubTe4^g6KPbCPQt5XIam=QiuC^LC~ zCoq0qUM^>=IJPq>)Ljd>f>6b5+vNEqKNHQcT$slkd}@4CcHJ{4dNyCaQdh;>qNT_Ys0y6pmW>>tcP$tfyly#JpDh28A?tp5hC|W+Ufk>D z0j`W?L*)c(KT`9XagZWW-od4KuW4RMHOg)C-%i8{_nt}{m3j3x+1~wZsF!$jpeuq+ zSH3g7t3=?;l7e8jVw7!f{ViR-@;H)OjW^|Cpdme6K!HCY;VA`f zd{2ZtbZ1ks{`ySe{Z+yQBBOskdHdu1dvMLX(%Uk- zk4}~P6u(oE!aIUS1M1o&FBk5au~_q&b3XX2K^unE7F5=ecxU@FBV4k@Ty5c{obUKf zf94~nN=}QlcrX8BE$G*v)nE7pOe_t(d69ARmWlnMCCP5w(vqu({<$2Go z>l6DmZ@9)5Bm5raw5N@qv-xNDnB5r2fT8n- zD1b@ysF1PG)mU=qvgAZIK!`vrn@VfT{9UJQ`QzMofhI@d5m$@aS9&*EeuMDFtB9hr z8$lDd0l&edE5bv%L8j&UyuJtQ=Z}KBLjy5qsoVm*Vhc*k3oxhnCqHX_a(z-!GiA;~ zdhNV*gq$(-sucr1iP=rjPq7p3Pc?;{#X2O%GUbesUXO(J1mdnrM-|e!U#>>)^wJ&> z?BkW(DrpP<7@LI@h?Adub*+=2;nr5M_iE~u%!|+04|3n(1k23v2@R>8UV7lf);I+% z@UI@5KJe`{++QtMI2t$p)JJ#L7&Ik5Gc?9x?1RM4mQ57$;lY!kcIxAMHuNmaPsXRc zR-hYSfO%3tKMV`&>j96z5fAK=AQUr^c9ko<^V_e@c#a}9`ZA9eY+L>CV5*PSC93Fs z$@5W)?rf8?Ed3G9+QzXtOk(Bb?j42WN)nyi{Vvn;%2}V>)wTpa${yT~{Mrz29WmUc zhB!cei1Cdqc%4!AwdNNMv03AZ?b7k+SgE%*;^n5{7mGFjSp)CD6{(kKixhK(ULEtl z?ree&On14r*n5lxG^7X&f))(fFk#xDA%5J@s>%c9r)atH4OmVzhsLfpagqa+O z`4~TpJS9$`JafhVRX*pl20H6+?|Gg)m=8E6L+)eXE7Qx0vVM9jfja*+U|0Fny6n24 z-*jgSYt`vg&2)r=&+jcor9RVm)aO~bk)4-{bbFF4Ujj@-$1<*6%*L-a7k(4aqeZ&8 zjUjeWXeJmwx}wR-C^+tK+vX;CJUh)IlW=TT2w5up=~F`HTNk0HSPxU2?IZF=ZIYtc zLP4s({*(&RkRFm8;@19W$-1FmVk33Af+} zrf=YR&X(xg^%2tSEG6b^&25S?x!wcArbay&nz4fUXNed1yRy!fWObhoc6qqThJ}0+ zo8Oxb%Ei{Te@|G9Pr98+oc<$2?00X?rzm8FU~76*MG)NV@d}r#t5>B#*i^^r&roUf z2;Z$_p@WOl$hTAj%+L)6hYzsZpO28|=e*qM-JY<=D|=3y=KR6MYSpx_4mD-1zT%lA zHfu|(Qp0h(c>rG5u(@c<2k3p6{_>Rjjkaf8ZaQBF4>TDKsTpZ!L)8xNT&b-NIW49l z=jivQB4x6wHZ)B7tB8Kg7K%?&(+&fcaN@DTUeWbV>ToBv>$N?`Wtp=D&Yu=UGLHAG z)Y4#p!H&iX6sL zi^k0qOTH`^JNFii#r}&49u7Qf`{j9P-I@((Wk1O=j+8q zNZnkSdFeOB&em+7FiSy`u<3SP;$DNN6F)%f?XPLjb*4O%X5wUC)^yz=B@l!6V_Nx1 zBzsJwfz$r^Lphn{`t|vh<}g)t9v38;OQ)}X)$MP*BkDsi5uiH(zkBx)+^ z8z$GK;9%>CXIBE7GO`ai_zp63K5qx=eNh$f=SWnhU*Ug*KwM~AdgdAMxp+)u9kP%g zAAEX6HFfWUaYsXD)vOceMGNzwf2G7Kf%DlreaF+Iyz$a~!n}`W-;uS>mlI*1eq>0# zT#RScUDS^l?IumVT0mdd3`Fsvphi}l1u^zcR%dPCAO;kf;>SlEUHNndzhP6577Z}?O?+u} zYMgqYL#Q@I>u*}}(d03f`PCt7^*e7Eh1+V8IP94T`zaQR8=@oWCSn83VFE~N6(&0| zlErH3EWNfNZgquLL;ikIzZ#WCLmOf`ujrn8+TYS63GOIrVo91DWR2S4a#rA48vsW!L16cn{HF3ios=FG0*&xlGzB~-bo1bGZy zrO;_!J5R`O-_~wbX*AtlU%3+Sboi(o`5N1JAZfNGC&%&PdL1ROukAjG5cg;12Pe$W zSw_!o8DDXm_GVfa1>%mhD%5iY${aND3xCVys6iO$eM2$3l9I>}jNstlyFy~Ne{(o0 zUH>8aGQ468)66~R+hgyMwOGkQ>8sC;N55X;x6v63z0Hu^`@nE_p6$*+F^|4))x5ra zNekJ9rhWAN4*du`_+uB%^kQTcLN@OBqs*21*pKH-b;)>a7{9Q%<8(jT`yQ97uA8B% zpl&LB5`Gdr2j7xq+Ni%(x&%EQ_>n{yt*oO)`-A@s(Q(JwK@u5)nK(2~bgB)vw4q|? z^3v{f+pH(7<*hWU&!T$aJuS!89|u?Cw)s?y4j!ej+P8+coXAt@(~*W$=go7SZ6z~148$q4p6BU-vdp^89DqK$>KLppXrea0*v z0gDd<$C!^*3Qn;b1MzrQiIJ+m2cruKtclpngIw=0q&f1dNKbv=ymc|%gctQhy7boK z6W>1VK!o0d2c;W8CjI@r$+hBQZbLV<^(@79MD#Gc^MKt`XdAt1B1hFD zshX2IuLsX8*yta0bOpm}hB2=geZ%07H?pzj>;y3vwr@#?s2AK{w%w zGWmD%ktAb8iCB74-e}4SZNDq=U4}vVQX7U{IwtYKzQn2OJE?d=L^f__URi1RMqOsp zofXXw4UswSKAg(DP6Fqj6NLtqor4AIE9qiSx|OuH;g9W&3-89~Z_DmVQBj2B^^?VF zFJe9A>`&mrt9yQP?StI+6>Ky~b#@*0FXg(s8`2U$`RU1JH?7YQonyDi(s;OQ0e}lqjW?H#OZcUVAYLl7*ACulnVN6v4hO%&B4iJ-b9Tj0^_Nj&v=pFcC#BvaiiJ z5q!4<=kl~|7GBvSB@GtG8=&Vu-|F8bG_!6^vlV;_t=xlEhkasO$X4TbjX>9zJddSv zy?!FVE+5E^G`-|HWI}P4YR>H1ZB)51Mn#o-hd$*^)y9acF+x!*HBr1y z*aCwHS4Q@&e!cP7)cauj>uzGRe}yjmRN>&-iR@_eT!Ed(?4q-5y4bnNauYxW7ZXZeFBblyoo>bqV?}aBNhH@T-_KUSi!7?VVQg!$urBs%< zV%aw2>b^_Nbbl^I`Q{%ZbVz*8d}$i_F}q;?`;c9B+=<-%drFV(l~PxV>pwie{1MDw zWWx08OY7G8&yHUA4zb$J)p}~(Mx9amiL@EXtT|kXV3ZHY)9QkJ^?StlhYJs6>fp+g zF@*Z~d%bl1zx-$Vw`OZraeXw_ctO}$f8S^k*zgsvy4Z94u)?PN!?l-eDD&v(5?h1p zMH?gj+O-Dspd{_#;`zqv>}vai-^&e}G4CtxmCyJJB&95r6w`$sO~qU*Z%pn^y$_S$ zk&bG^7xUjkiY5lG&Z93jfd>xQJ(e;{Mc9~LBn`JxQks5__v7E5&gxyvAY5Jh@91tH%1G+@ElctTkKhSMK4nUN0rF zrRhA0oxIKL+!-?B^-(%@jBeSN$Ev%fRqcUSWUnp2g$l4kz zZaG;~3*$M_ajj)u{Wz<;W#4@oMM6hqZP%=>PFk#B-c>%m#9nY5)YVNkN3MKHrkG={ zn(*{~PD*R-6WQ9BH@1;$_pI#SO?>o;yqD9O9gQjc$S$$bnK6@tu*Pux3&_ zArC>e*=(e>@oL*WMV(5b$!I%?h3w1XuUePY`JekLa0gSukw3ZcQ|yK?BK+*QU;0!o zM%UnjKEi%>Z9lhC>E3kzYQj&zH&BWUuR_nlz zPiDyW;>4$?rm`v2ksc}D)6ri>4c{ib24&zwz``sMs=gFeVg|<@dPvR~)z|zQZ{RW}(x~JoX7hq{rHS*_K^% z@9UPJg$etM7wHT~lZtKDD(t=-9^Y1^jy7UO8mK4j);!s-yGjs?<*9&KF%#KW?Omse z(Gcz2BNL-d-A>hGkrUH0Z}pj9Hd&C=T|8p?}W$=uq!JZZ)ghDVCw*~g8Q?k5v8 z$W^U!k3&CBNptUkxAX&OamP96SL(cXUC+AIjYd_eSh zz1R-P#~&{zRCitrILYE|&+*%5sO|&_eD-Hlk&Tld+ZnB&80}Bl-PS)ZtuXcefY)%6 z^{KSz;o#N!FQf_vrlH1I3sX_l$c=K2`4bzrn9|ZwgHbK6Cu_*O@ zjnk3Vy$I@xKIEB!!=x`W72Qx?hJ9V(%#lu%72wLq|ifn(Kf^Z>=27 z8>-_aOE~WO8+7{fGL?^aw~MoiHK{QmEBv2WYQTL9jP6)C#2p#cX;8V5O_GGy;*)tr zJsYQ0E}8Fna1p@f0=Vw>|KL-o%W;(cA)9me&Tg=ef3cB zl^e}Qm~ue_vy0zbPS()&TcZRMf{&1CPZCq*y&5c-!$Y@31JD}m9#$|E>CJZWnZ6zL zH_0+=$BbxjQ=sx8qM>hpdQ8j^-A#(k@5z^S>9G&nvQF!gzg&u@#D>4<%!F-G65Cck zdtja_UlvML)sIoXU7Y@V#0nAMcx;*P7WU%%#rO*H4S|c}N+XvY{<#!GNn!|cPieVe z$Gr&_yzTOq8G$vk=P6t|!M`fPNOFFC__C-Mb$i^VmLy)2=1i0S=W0a4Cek7y%8x?J z={|?l`7!1(z2-*ch5bUe`FxN6GnCmpi|kcPQ_;ivzNdo9YYR^LyN8tgg$8<<2W6eX`NvqKeBi5By1qHkA@t8h+vOODzFlfe zl%Ce8Z%4}>)ynfN5cnz7w_q$q{^-m&2+{obNtuC;j&e4UnxQY!pEa&Gw@ey3ej@c^ zUx>^38uU@G8km06xBIW7 zVRL)n+AvIT)dQD>X#(k9xHRk-`1Ha>uy|EbP&C{v-GSL0oDB5$!l_}Oz{Vee1i;Y; z7l*k4vp%>K%pbh(gNwoLfbl=X0YKCbmw~+kkNe^G@k8xlC?+OW?r!ccEKN)RQ$L&( zeC>xU<$xdkkWwwc`T>`K4FQE8aCw*r2>Jn+!lbQ*p_rLl{FR>h0jI{0X@e-PV4)9k zglGU#uL3*+aM9anb1)QhGgnIyp})ef|L`_J+5lV#W)21+5!e~P9)ycy!tSA>SU5cU zD`qqZr^e1yfhbPTEG@umK?E5{fM_s3P%;ROh#UNZbYMRL#}NEJY#G=NL4$4qpNHUb zXn75&Ak&(c6x_*|@*umEj$IZ*x61WH7lFtmTo$bwb_*1L;ivzjPYAwz`#+*B zpm`F4vzFu*D6QkC05nrjA2&d03IebVgik>Oc@Mg$AZz{rcN(q;dki$DA*UolZUF&) z0ZNc^^Iz{Rr3C)%y&ssHhGLQi=w{##Vd}tY2CfXV21PSaFm}Q23|tXS2NeUr^C2Vf zSvVJZ5D^9nSokSP^ViXfZUI8d|3ZO+Lc)vz0qE-H?q*}}$_Mtx;gn!)7EX=EA%_9z zHw4H5^&FfFEldpqygCwK09H^7wgh74p!9YI-E&atumG%ixE$8O4-6Db=x|`*Lh|3p zI?hAk!vJCP&^Y@*&!5W@!21cguLab9LKu*M$e)k}Q_%er;=Ka63(zR?!J`F;C=4S0 zv?xID0;KR3;4DHgF@eX65YG)nEkX)*U|GyGuP*TJ58k%A|(0WIF!3VOiMFom%j?etB^ub1VnQ%`%kHehe)tgP`nBkL&xaG zLILzUknbh^&!aT~m&5upM6 zTM!Wy7;M2+(Q+bhgEV0gCeZbVxC@T9;OejlAioWNfO%PQ8^zJm12peKwHDn>z`jfsMcgCWnv~5%52R1~~;+Q*QM+ko#F zik32X4PDSMX7B*)l{gjHIfjd(Y0dqo75y823n=}D^P=5a{9lq78pq!MwlIKnvN$F{ zKZXh+>;z7YT8RO&E}#H46^j!C_X~(@P$o`@`@iY#iv3rBuu>ckM4!NgP%-fShe85= zoxr(J$prsH2@=Nuf~Szo@xy;nZXG}am7Mu+9DL5i|D6kQp!pR37`0FHUmADM;3BA+ zPybRLV@cqF;4?Tcs;b`qQ1HRT8T=k9y3t<><2i(_5->Z5>!O~U{matmIb0BR%Ku*! z)(eQ@_WCcypGyJ@h%rF1`X@!ca7+B#wHA6ShO48A2@n9jDG6FoeGRFui4lOg1qn)U^`{jmLjZi%B-jAr21<7l z;C%yEg*kxs8)#PJCy*hYz|azG5b9`4qJ&`TrzG>A#RM0a5+l$PHWAb?32+OBkc5>0 zc^E-sEGTp zFtC7%cnBi~Txif`5V)d2Jarq}@U&K*0XIg}9G8cLNq~AxMBI z20{>42JA2p^3a~65Cb6#O^sg|kf0k7z(lA(6WRw8p#+NuEtn7y6<}aNEqCw;3!#j5 z+m#r=Xk{otF&5;DA(+B~oH+YL4E7$&(1Ogp|9}Nlu@Tg0vD_peY($0z(BS+}j-1N; z+rt)6hz<4s0sO*-#v}!JZzCR{S&xwbW27uOh`bGrzIFwAV`!8t)!(8pcN+rP169n_}!7C0||!^n5ta=N5&l7#X~6K7WR>%IJ!GHd+|A#0gZV$)j!Dr zQt%MexDA8<;=wMVh2>A;fJul4?LUw3pdr2i!uU{};lL9gp@No8PYzN$7240iHw<@e+I_`X}kOi4bZqS0F|V*}MTrVyMLmdWazf zsv^h%o%^(49R>wWjs(Jc5SWlaoUsOS&}V(00rZeSaZx@X2QsPm=>QoiWEdUDks{Pk z8C8HhDU@TGqzDnz2DiVBtv`+9%)gCm6$N~tavL)Jm<&OW+Sc)x+~=%72xhJz*gujX zs8K6^{v|hrDd2&5GN`+hLkbX+rtt3|ijYINtOE^lD0EiW6u{_{0wpLShrGE5CdnaO zhyW7>1lAm|qk!DcWugS>-3oMoa{0e$utEV@$WEk$An6Axlu*i4fhbCZ3~UtiQ6fY! zi(gZsI61okfS1ijP<32b94NXYqxjpN_V7Ap;8)Edar zK*eSU_|PCk(8g}lfWC4i%D;)hzX7euGmsRT4Gs-3h3+{61hf!LQ`NL!(Ci^8cnr0m zy`>K=G-)xqXu*}sLt2o}1}(-+P)fGDKK!>6vjCS4O2>*`T2SErkou1tA<*&tKQc}r zoesj(53JB3q+pVOnI0+*n81o2Ar0#Q*?%q}V38gwDqMh-0U?8POh$*|>}74{V95vG zb0ergFarc&9mrvTX8b#_^5>!n*ccH~ID{PkD_X<|iB=CjBm}b@h}+P9Et3%e?HRcK zN5aYplrkd70Xh?ekrrTJf_f$cMoiG`ngH+rTvEY269k+Npkaohkqz{jA+Iz++Mkv^ zm}Z9j=K_>02x+uUSvs(={*VGVu|RNDfE0)bmBEQW7a>5-ijYM+QKADoyAR2MBP%4* z2$CTpi~~%vLROXmIUCep9?)TfjM+f%L{(o;P z`QNPuDzLqSkVVB21NnClBDWb8=}}&oIX-i8_`B1-xr3m-_0S$7{{1DOibeI`80-FyKZ=q6!Fu zByNN>R+}s&0{yh`cb@&T8UGE*VKx{;bXWVoU2yY2lu37p;%4@Dl9)jh)IKlZ$AkEP zbzKKoR7cld7LX#nh=NoLO(}|kSP(UziX^mMGzxb`L_{eH8Z|aB_FfqqD3%yCipJ=Q z71YFzjTlQ*jL{hEQDZ~>&z#x2w=DnnJo_cNr@g1lnYnZCWjdO>E~k|Iv847qm^m2H zPwd^p<>X15xJc#0YU1A(ygOAx(%QyFm|eRELK6yz(RGm7*EY_>a=}+js!vIs(&G$g5tU;XPzfr zg5x?gHvbJ&=Z(zB&H9$&oCLfHv6{PYJ*o%Pw zG~Ut3n=INE+eFj}Cc<^)NNYkuAV)j8ldB<63WZ6;B^3Vq+F+6#3je)3n-KcXvE#_K zP{?WiMB>^GfR@fB1KY)QHEXrZTQN32o3*LE?Lgz?KggwaapB5;Jc(udxQIr>I{GNa zj%E2sX%7s3QDi(2lq1#Tr}n_;m_Z)3kBe-SJIzNiK8M{RW2|eSX?iq zY9`qp78k7?ISY=_g{n;}r*hf(qtY3QFFJscwhu{Khd6h~bG|L0+~fNhn>fKg%@y?M zrzIWY_%oNZH67y4TH&eMe?)3RW()zQv*c53f)BaSBTj$z_JbaA>xbZ>OmjBJg*LiU zZRcUTmZa2ZJO@}6g@fs3`CR}Id zKn2Z7(4QZkGbdquTjYJXFCmK8+g6*9*$1zZ&k1@A)t?itM&Z>hQHlIvqe`p^WG_HLQP zVyH1x&G1m5apNe*sky()L&UoXI;FFct?wSP-I@+nWU zvO=Yy2L%AR2b1=gGw_Eku8p=-D1to5uFZ+?e-Am)N%YzwCz9r~*uSVw>cry@xsY_i z43)mQs=rDuPEK{w#{8c2+!{$;@9Rn0N%xaNT<~gnz5XgO`lNK!8huQf=Y^z2?katR z&bg}=+2d6%Sf!89+F(_NCBk0o)2ZEZIDJ0Ci5~6ToCHRyn(*j)N2c=c@F_-FxJz5=~HVL4lw_TcGk{aBqAkT=kf)x@(Mw z@+msGE5ej;swF*N(!DrO)rbVoR@w0}_+qvyPIsi`ToqqSTdvJjv0AuUtiPyjPE<8Y z461LJ{Bf{@tf;gmFJ?J3N2Ok?RnEN9&Z|}RELf4H0;VaYDj#E%|5v^6X$kDDxkVA9 zdnzAtu}sCE?yLQ)Ots$;y6_V#+L1X%1)jnpYd6g=f=S{Ctl`x#I zg7g1yGgByLv?Q0JEZmBRsmw^o36-Oc6Hcy8a?+-rQ2Cf4tOtHgwz_~@m(0l2+W@Ql ztjd8`dh)EQ9Wzy5Edc0#LG?4c`sT8b>c}gq_pGkMudBN78YWyYJH&xTd1$tV*E{;srdm_Y~5wVS#vi&Rc8HD3a(VVvxxp5TL;_Zn{~4+>By-UeX3659&3 zH5r$w))(EpOm*J?1pNCFwSK@gU#f2Fj8|i~=q(a(!&SR$i#o3{>i%QVliumjU}iR= zMdMMtRBh&*otK%{F)S!EYnWPPp)l6X8JT<3Q&?F%+^^PGc2I@-t~F};{Wo{Brd(l(;KN z^GDBs;}_>LOcaWac68=zX?R>V@E0=H&lw$;o`Nx}b)&2;>~rO( zL~D($lJBuz@Qa1yY2SGy4`Q9KzqkG>^M9Ln za)b%S>-?^OJ4OI}28-7y`GL>cmaUVUGvI-ze|V4xg;2$SlS*TaxezApw1DIsQ_S=H zYSXb5kc0cMp$Z-nuaIQ^KvivMNOBE>Y91y5<)|GPmVA}9&!P8H7k>|+9^11J4VNF= zs?Co`u3}xKV^@h9Cj!1%YL|6QUc>02JtTBT?RPzrvzbFrb{r492M*QS(Dva;n)goD zFIPf)Cx0@K+q#m$7X~#Z>0c&0=+=z0CVrU=zy9zW0Kc!{ zH&8qA%Rz^VaBUcQVNf)`x-7adXg6Dlc6c?Y3x9Rot3g-UIx^lXMZZ2>UO{ra@oUnvf{b+37Jzp;P4!FF z^OpFf-fxC0^lQ~?)%W4~Twx52iW}Lr($>s@J_HUb$isnJ1MBjd`Yk7Vq&7p7CkLhe zkB8@&k~+p4ug;yE+MT}&>!CttR9+Q)YX6=#3dQUx^ayIEoD?ogwdPruElaI#gRD*W zR$ST91%~Ea0S9rjVndT*&~B_uJ=F!x<$g@<#p~GrF?C$5J=}xzc+~Td&j6T*3nO4% zM~uEq@FbcT&V^^36vK^WQ}L@*u9Nb&dUAIf=Z^Z~IIf?vMs(p2$Hho4_-QzmnXWlJXpptVK5gf;rM$n*IRNSK8@?8ydpBYFO5r*a0CwF`baLU7$Q?@oG#jAV zg(Hp0j$vFkKFHW8uBG>TqJdV}+Kx2M-Z+iZ5Sjlf|W=%I$%&)gp_$h?v#hZ%0 zPKNo@)Ygsc%;X%Y3^m|IWuRE}|MS+%*eO0n_qbU+ob%(E5lzf+&ds>wrVZ8QLke%$ z*qfTtsZ79INjU=VF^=La!59LZJK1=i9~=fve;xG36pEjVRzE}$KQd7ygEn_%fyU4} zoz3T2Tr&xzz!5-x{a7b``;kp!Iixbm(eF8O_>+etI2&F8Vyf)tRuThiVfqV~U~2bL zXA~TT2kE}HjqEiAIceG1L8Edr)hfYr)N^QbpH;V@0n=ZoM9-7gIz1O(**M72S!Dyd z4j&i?1k92oXLGhZLQk5a=Jm^?|A8dYUxY;S0pgv*1(5UEToYabliI=Kqw{HqG5rNg zB%Bpw^eE1seEMW#DTnfH4(F!qt)vVsXmT5o${ZnqsCZ>$R;SsZl>Vf_axtZH0i;VV z=On?hAU44HBgB^eq*(0Cs7PCKD3`O4h^(8x^OgmKk^ZD2-&l&!g&5hIG?wQAYbGTR zJb{WrS2yIz5S>&PXbZ}2H_oc^TM+sm2Cb>W>r z3>QWLhKVlZ?r0AFQpspR7gA$K1GQ~4X3nmut)nOzXsqX{Nym*LWb`L3ry4h^GeTml zb3Ul+;lb2FnOTup`GQ4M7&X*!Z2};tKWP>9_143%CY`)&t>jqtt(wvOe;`JG?IZ!S zYC%Q)X$6`!oQjQY!Id0Qqrf0Pt2+ z(9w~QP5P4-%$qh$6#9lG(Trttxj={p-#Eka< zTR-(c-}m8PJoFyW*00gYEgsKVFgdXYDdR!4R$u{lM3dZkN_Bn93{wTfasmuMF-!Le zz_Ot+>HaO}M`lc50csGIuLRcIW>myqg2;<{GOcI3AxgMQ%ybb(Cd=a^6zL){U-~Vy z+!P->;{A)QC%O48=S<1ezPCIqUK0D;=b?-%*)@?flb}GscNwq!hl5!S4B0k1L59L~ zz986Cf~9UEV7anDAe#|xo}CS?330?yCIOq%USxB(>YF<>V?3r)hZ~DooK7DJ?!)^@ z?Ig~h4lMmzBycilY*t}Ms`@kuXdIN0o6alLvy@U6`vZ0)Z3fqhtk>FE$YI$|fkY-K zNkS3VlEhDenNWFsh~mD&fo&&XQ-bps|kn`m1A>q;@u>pqm+ETt5E|8DpWrY8cKU$`)D7*e*_!^%kS=fVyubQti@5g@<>LCl*0X zj*Y(I%P@zoq0GKy-*-atkmsF8alQ#Tx)A)TED=zVkm)kuDbvAb(0ay#2{~F~n2__7 zYr_V{1<}T7KvyhiZ{0`l00)-c$U4Rb1!ZE@UhV-7_=)S(ALhm>6t{DYWJ7KDV{&N* z*Pc%T4$O-&rk@u;yXzNeq-ZM{m}OlYNYxzs76fXf5y_b;_=cdWhi$H5po~{cb)e(G zm)sUHVdgAn!7#C!hKgE~uV!)fym2HKQS!>^%#K}JL3&n}+$FT7^uHf-l6XzyoQ-{E zI*{lk_JO4HYyl8@(!aw}(<{(Zdcw*`>Pg~kohNr@IEafBG2EC980ODK4_XoTIWWnJ z2WspbAUiK$4qA1R!$TE^DbH;9Gcypb)}-kIi4k<*cHa=c8gxMEx|GDvOng%U9^yU^jMNnCJmKbXcKV)0$%`rZ#C_(5ZD_j= zp?at~Ef&<${uTijEU}b~yFJwTeEz-zb}unsMNP{-Fbrsk@2De-=X2o_YyZp#Yu%pk z3hE3MsEYQOIuN^AkTTaSM;4jV1(1KSPnQ;e8Zy$67-c!O7debj`_8P-^v3pJ?3nAw z8tvSLYz>5cn7UoD5HzeFr8Dqxp)4xFi+~(dfMhIWebDf}Bo`3}-V)%bwQypA$TM@|?@{y|cPU3Qyefs`BVZ|v4;=z5vgM6$ z{;AXz*##RN*E$iGIW3U?{Rbx_MK9x;7)RQpEni}{OwfeO(k{!uP`RTH%G70?6>kX1 zJ1Dtj6J|j)WOQIKxl3(|U-_}}nAa4&ZcW^pIN{_j=DTt3#r&3x&%;f}x3j5)4{h45 z0Gm79b@7XIGmK6l<%nOStO>uHI^7M4)J(Ip24oKYxBOqGg2NeM0gOBYvo0ZJcNj9J*p6M05# z>?V{u(>iEP<`Y?+RSDBtM+=@H_#hJK*LuYq;TV{&&5 ztXtyO*qd5~%a!1wvGsr(3$kE{7Z?ol{{5KdPX`^%iOpJB3OcU^;{maZWzt%u>QO?qJZF3m65N`iS`gdNmvihN!(<0vm&hjh?f+7d_WX#%Y;e|# z9yqdWe0;?;Vm223+XR=A;t^N>BJDpjwkjL@MnFjpm&#IntupDF3sd^%JCV|$bpj(c zp53FXN_DfFlB;K&<=;7&TeXvi9UZ^04jjMviSa>>al;402diQdy&kA)BNAH1xseH! zDxR&kQR*;bq^_uQ5l{BGHYy*nt@VON3PpeeJT{XIy9J(9sEtJ1RIs6((3;u$*un*e zgU%ePYioaCp$R;JGA>jo_zgmKS7TYiq&zps))QZC0G(MU81+e&3wCkPiMM#P0YkCr z|Htc8DCnK%+0#ra?j)1aWetPYd?ToBeMZkh20(-RiL&He zV=Nsv!DK4-cI>i;g^N8EiV#xw&i9Zlv(1c3UB!m0_Y?j_ zdXrsCyuRnW^|$5v!LxcZ=!^fwTnw?!EGI4t`*rEX4x3YY}L zvZbWHK6o?Gxw%0(1)2PQgMK_a+-ep)4Fng!^CPL?fffvj<_EzRIx_zUK(e|OrFxSy zKM2{zDA=F=vql$%6|G6yQRvi>TZMs%Xk$G`b*5--VVg&4bcruRo0Bg`i>5Db1=I2V z%(Trm!8B64ZiDt3L&~;uK4hYtxDANP-hs@gi+)YT>l_62Yu3x4eNYe)0F2+_fPaO3 zr(SJX)Gzu=l7>>Z?=eK}Vi#2Q)2%8JZn!BziH7J$sLLSw+0h zLovM%VQj@e3MGNI1G1hT*a!%t4G_Nyr6S&BN^n#0Y7M12fBLn@CXiTa5d638n4wWS zWEn5n0chXDx06u)i6Pk4Q4%lAeZO*G_z=k$W|zw%)g|Zjugd`5Q`nD^7ToL3Ok_$YiB5DZ zYVz`JlR(M?8n;yHL02ZF*(HnA{9OQ}GKx`8?-CYLxWL301TFhigecr;j$rRpYI#!+QnZ^3lysKr-B9Hm5+7GeKVAXxF!86R(D4hxK9MiQ6M& z33E7g4+L*WUq(H&M{op3M6Y=!`MSpPHij&@2!q`3XCc67ba|6YKm9)=q90WYBciWi zDcTNnojVm={M%p*zm27(=xtRXcMzrxrs5?H!f8A6a(g#WywD(x zJLAzy>zsx)8|?$lzKINS)IM3C%LS^D7fI8C+3ov;Frm#p>ae01u;~QDTbi>{7232* z%hzNNkvoJT&P#c=v6wZTzR8SvWVR+#_hN^vMx+1y!+SLpM>B)s=-wY?$uq4i!JhlU ztIS4#XLv#o=O~v;=sAM8A7*!IZL!6J5K{~LvC?;6;XT8N@7_*gbU<(Um#LQWh zL%@+U23^f0lL1(CNC**HKXeG-ofyujUk;OG28~br=+&MX|9S*+*$vOqWEreDkoTvV zTi-BV)kvoC;$dl>6dwU|aoH>v-Hr&02h7*DO+~|W`MLvN9?&Ui%Mn2V`j|StO;#n; zW|={4Ue9IthNWq;4AvNk?~4(qOc=iRd360EUB&H&ztg3BJ&KL_XGaBW7$~<&NYepQ zRtaf>Kl0GPdaKbsrB?-@qHjA&JA3^YL}ooCQ!a?ApMh$n<2cIGf&^E|GL%vUR5SQg zf`$W5R}e2QF(S`K%(L1L5gBL@kx3I+L`LRmMjAu}W$XW|y$OGxK{4B4+^zVQ1;TT@ zr1>G>l4Af#Gl>DdbxZ(^QC1!;y3C?Ha57_wIWDlE*>1a3aWlc}aRamJDa_H^6D5wK z*}KQVY^OrhX`OB`R*>hb6Og7b68#H|^}|yPN83T5E4NR>0<_Y-c_-_BZ3@dLEr)pi z3qNU_9Wfoj+2xPbjBQx<#`qsxJA-4t8nhD44CdH{UxZj7;`(0z(c77f+UZw;ijf-U ztd0I2fP@+(_sMK3;%%F&8Ddb6n1?Y(+P7qRcr^!C>#(sQt6K!n{UiW*HkSdId{O{_ zT1HiM3TIj}7N9}$Y_6n*BG;ftweW=2j zp8?%1V7jEsikve-C%`V1ZkJ@E>r$TxLwEIzfDS!sA;MQ>5+C!~52*K7-&UYnTRG=sWB!RD^2zYc@oW`pHS z6aJ3Lt1f!`2Fav&I)V0+@1TZnXBmQ1{mUvgfja7?njOWKKk~V^NGjC2@nF)3? z4XPscMfO(1`9E?UjAcZ4($-u z2G)~z)2<{P1Gg`N;b%Y5rK%5cza)E~Vq(qm-_}EO@B)3(PIc^Oio=`4{$w~-qrZyW z#m4IKy_Bm3iQ8isrI|IaHlGK*FAdUqWFIS)!Ix#FGXFAw{bxV3eCD!Hz1Sk^@7eWY zW*=9u`9J)MjOE^$unm;O1twYw%sOYhyknuNDvhIVo$=>Ewhxh4VK_^5uK_r>4pB{B zWO9uxrQ0ZV;}J$}bI33NKRwKeq?-nY(`s5J9m3MZL(y-bZhRF}cjPyju}73T_Bf+{ zs+1T*kG4mIKPO8rL;sBVg>uoho~C=HSeTxW_3)mh6IdL-{FSn{upVx(8pEOu{vC|= zImwJ>|1N{Hic(!pGwS+Z4IycEw{FVpz=v?u4w-*S!i7dgT>~{Akim=WxF#E~w=9O2^y20EqPCazGpi4Ch(Zwr#voX_Mc7hjUw@Tr`5n< zY-AZoUR+kX6N^8DJx_eJ+xZV55Az8mMU6Dx2*@tO0DibMY%UD859f5Q7P zbh9dKJF09#Zpl^J-U5|hc8w!t9pVD$=A&+p741!;L@p+dTr$&mkc&Oy#9P?NQAatx z*bzqoHzDPl<8X~Beo3m|ZQ!u_KAvHodz*9Mw{cOy5lSvsB`}Y@zDzK9qo⩔HVji z98JjJJCGHz{>7ABw^*m(>>arI7rXF|k~baEk)5>(wjw7nYCldLsyP^?Pz)}H1-NdP z6b3IuEy*mA`E~enf`MPBYe8{(??jR|l=HC38lRERzx|~%k9+cqxA*l;fL&_EVAu+i zC|^@R;_q^;d9Vm2@!Ld)>F_Y17T)OQyE23F#WIBA?vOt&Z^(#@^f4l1_&$_;v%aa` z7~QN7_#VV75}Qf(uyIo9bMTniESUFiILntClfEZ~f66A6^M8WVX*&{0^uZ)oa$$3# z_?{FWB@Q@)rX=;MJr1u+hKnFVRCA`jq}6XjGncqEuJwF(dUORrdq~)gCtU z`6mZLUj#qt9hq?(Dkz<6OTmt^8VRnXbE_orb6He(a_(Z6aS-KqkX-&T3Unu^F`q=l zK^Da%iDQXz$$bE7UkzXkn;!^nu*^MA-+ULo4=ZgYe|luKh>2ML4TDYmTqgQ&P#6mf z4)B~*EK3q^ccaCvlwsXI#sHs~>R(Vmi_-?1yj}^pJ?t*`;>j^4GVq|G7ZVOM6Kvc%5fqk6ebwb}Hc?GGbXu~#U%!vipBzWTLdQitkfv%_Pm(={Ba_CvGM z;488QD@*vKRT$%}6e^>suyk=y^$4`??ageyeIyH>|6`!m4Pey4kC~SZKD%o!X$SpN zi2W1J!>}8e{2E#~)IyUG!@V{V)!R<9L?76`hl3xpr10!-^P|$Ju*~kXyyZo!< zZ1BFUMG^ZUW5s_14S7K9|KmdVaH6SAd)(`4U~nCWiCOw` zz)y7yUFm+BY)SAGNA} zupb8cEBK&P`Ud`w@ZK>M>HAg?!C+5(3ks{?nFOTW}GzA!W8{XxoF2OHZ4ChgMGFvV@shy+UjLJ`68v7 zmkYLRLg95}{QOzagTWWRmKG|Qh2!=CDlV4Xw2gCZx<*<4L-I=1e6+Q2)6#I3O+g zL{k)L;H3{t%f-(C23~zfwO-0(`O0oZ7Y*EBTQVIP22cAi*1|{Ea^pvAnBow#WO1RR zWg8>VT=|NUozd{#cr8^M=EKxBR|;y;XkR5z zziF-0V6dft?o8O+eS9d4B2$A{I{GuUPvvUi4OKT~SzD%-|8`qek-}%&a*sZTQo#V; ze+2r3YTOyl?7@fI;_xBL?@rpbtA=@U5lr{ejGySta11lpkwnc$O+fRrD5m*?i4Y)E z`&;#*tWt1(H7qHmYX9xU)TSF00jgbM3TmJ9Wok7&B!H3OJ!RMlPn(T3uEec(vUst9 zH=v>qyk#BiDg32QV-5UyUi!uNhDI9weL3EWZc)@16}MCN6O3r?526J#24(Yoy?B zNtxCfcrVCY<15)usH3`8Jkpti55sITzRAcH-*4;TmY!{QwpP=K7`b@7n3r3E!s6)kVjkl#TvFbr=O=)r&1b^>^u%3G>;AoUzon z^42j3Awz%5&w!;wEll6iX8gYy43c(os`y(EloGyZ7jA=D=xpJOHtGm`-Y#|o_jGC- z101hYi~&Asm+r{)wbHm52bglidob6Wtp1payI^8>4pWY&2^_5#4>CB0!*4Eu!`@os L-Dqb92N3=bzn~nc delta 56767 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 z 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 EKb<-DPyhe` delta 56886 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 diff --git a/qchess/data/help.txt b/qchess/data/help.txt index c0a8b6f..892a7ec 100644 --- a/qchess/data/help.txt +++ b/qchess/data/help.txt @@ -64,9 +64,23 @@ OPTIONS If graphics are enabled (default), then the user will be prompted to choose any of the two players not supplied as arguments. + --reveal + If graphics are enabled, the two states for pieces will always be shown, regardless of whether both states have been revealed. + Note that this switch only affects the GUI and does not provide any information to agent players. - --file[=filename] + If graphics are disabled, has no effect. + + --file[=filename][:events] Replay a game saved in file, or read from stdin if no filename given + If a number of events is supplied, the game will advance that many events before stopping. + + If no players are given, the GUI will NOT ask for player selections. + The game will exit after the replay finishes. Events in the replay will be subject to the normal delay (see --delay). + + If black and white players are supplied, the game will continue using those players. + In this case, there will be no delays between events in the replay (the game starts at the end of the replay) + + (We hope that) this feature will be useful for comparing how different versions of an agent respond to the same situation. --log[=filename] Log moves to a file or stdout if no filename given diff --git a/qchess/qchess.py b/qchess/qchess.py index 219b34f..02a724a 100755 --- a/qchess/qchess.py +++ b/qchess/qchess.py @@ -39,7 +39,7 @@ class Piece(): # Make a string for the piece (used for debug) def __str__(self): - return str(self.current_type) + " " + str(self.types) + " at " + str(self.x) + ","+str(self.y) + return str(self.colour) + " " + str(self.current_type) + " " + str(self.types) + " at " + str(self.x) + ","+str(self.y) # Draw the piece in a pygame surface def draw(self, window, grid_sz = [80,80], style="quantum"): @@ -59,7 +59,7 @@ class Piece(): # Draw the two possible types underneath the current_type image for i in range(len(self.types)): - if self.types_revealed[i] == True: + if always_reveal_states == True or self.types_revealed[i] == True: img = small_images[self.colour][self.types[i]] else: img = small_images[self.colour]["unknown"] # If the type hasn't been revealed, show a placeholder @@ -97,6 +97,8 @@ class Piece(): # --- piece.py --- # [w,h] = [8,8] # Width and height of board(s) +always_reveal_states = False + # Class to represent a quantum chess board class Board(): # Initialise; if master=True then the secondary piece types are assigned @@ -111,6 +113,9 @@ class Board(): for c in ["black", "white"]: del self.unrevealed_types[c]["unknown"] + if style == "empty": + return + # Add all the pieces with known primary types for i in range(0, 2): @@ -704,8 +709,6 @@ class AgentRandom(InternalAgent): def run_agent(agent): #sys.stderr.write(sys.argv[0] + " : Running agent " + str(agent) + "\n") - colour = sys.stdin.readline().strip(" \r\n") - agent.colour = colour while True: line = sys.stdin.readline().strip(" \r\n") if line == "SELECTION?": @@ -730,7 +733,7 @@ def run_agent(agent): class ExternalWrapper(ExternalAgent): def __init__(self, agent): - run = "python -u -c \"import sys;import os;from qchess import *;agent = " + agent.__class__.__name__ + "('" + agent.name + "','"+agent.colour+"');sys.exit(run_agent(agent))\"" + run = "python -u -c \"import sys;import os;from qchess import *;agent = " + agent.__class__.__name__ + "('" + agent.name + "','"+agent.colour+"');sys.stdin.readline();sys.exit(run_agent(agent))\"" # str(run) ExternalAgent.__init__(self, run, agent.colour) @@ -1205,7 +1208,20 @@ def log(s): import datetime log_file.write(str(datetime.datetime.now()) + " : " + s + "\n") +def log_init(board, players): + if log_file != None: + import datetime + log_file.write("# Log starts " + str(datetime.datetime.now()) + "\n") + for p in players: + log_file.write("# " + p.colour + " : " + p.name + "\n") + + log_file.write("# Initial board\n") + for x in range(0, w): + for y in range(0, h): + if board.grid[x][y] != None: + log_file.write(str(board.grid[x][y]) + "\n") + log_file.write("# Start game\n") # A thread that runs the game @@ -1219,6 +1235,8 @@ class GameThread(StoppableThread): self.lock = threading.RLock() #lock for access of self.state self.cond = threading.Condition() # conditional for some reason, I forgot self.final_result = "" + + # Run the game (run in new thread with start(), run in current thread with run()) def run(self): @@ -1330,20 +1348,53 @@ class GameThread(StoppableThread): # A thread that replays a log file class ReplayThread(GameThread): - def __init__(self, players, src): - self.board = Board(style="agent") + def __init__(self, players, src, end=False,max_lines=None): + self.board = Board(style="empty") GameThread.__init__(self, self.board, players) self.src = src + self.max_lines = max_lines + self.line_number = 0 + self.end = end - self.ended = False + try: + while self.src.readline().strip(" \r\n") != "# Initial board": + self.line_number += 1 + + line = self.src.readline().strip(" \r\n") + + while line != "# Start game": + #print "Reading line " + str(line) + self.line_number += 1 + [x,y] = map(int, line.split("at")[1].strip(" \r\n").split(",")) + colour = line.split(" ")[0] + current_type = line.split(" ")[1] + types = map(lambda e : e.strip(" [],'"), line.split(" ")[2:4]) + p = Piece(colour, x, y, types) + if current_type != "unknown": + p.current_type = current_type + p.choice = types.index(current_type) + + self.board.pieces[colour].append(p) + self.board.grid[x][y] = p + if current_type == "king": + self.board.king[colour] = p + + line = self.src.readline().strip(" \r\n") + + except Exception, e: + raise Exception("FILE line: " + str(self.line_number) + " \""+str(line)+"\"") #\n" + e.message) def run(self): i = 0 phase = 0 - for line in self.src: + count = 0 + line = self.src.readline().strip(" \r\n") + while line != "# EOF": + count += 1 + if self.max_lines != None and count > self.max_lines: + self.stop() if self.stopped(): - self.ended = True break with self.lock: @@ -1356,10 +1407,8 @@ class ReplayThread(GameThread): try: self.board.update(result) except: - self.ended = True self.final_result = result - if isinstance(graphics, GraphicsThread): - graphics.stop() + self.stop() break [x,y] = map(int, result.split(" ")[0:2]) @@ -1371,14 +1420,16 @@ class ReplayThread(GameThread): graphics.state["moves"] = self.board.possible_moves(target) graphics.state["select"] = target - time.sleep(turn_delay) + if self.end: + time.sleep(turn_delay) elif phase == 1: [x2,y2] = map(int, result.split(" ")[3:5]) with graphics.lock: graphics.state["moves"] = [[x2,y2]] - time.sleep(turn_delay) + if self.end: + time.sleep(turn_delay) with graphics.lock: graphics.state["select"] = None @@ -1396,6 +1447,21 @@ class ReplayThread(GameThread): if phase == 0: i = (i + 1) % 2 + line = self.src.readline().strip(" \r\n") + + if self.max_lines != None and self.max_lines > count: + sys.stderr.write(sys.argv[0] + " : Replaying from file; stopping at last line (" + str(count) + ")\n") + sys.stderr.write(sys.argv[0] + " : (You requested line " + str(self.max_lines) + ")\n") + + if self.end and isinstance(graphics, GraphicsThread): + #graphics.stop() + pass # Let the user stop the display + elif not self.end: + global game + game = GameThread(self.board, self.players) + game.run() + + def opponent(colour): @@ -1965,8 +2031,9 @@ def main(argv): global log_file global src_file global graphics_enabled + global always_reveal_states - + max_lines = None src_file = None style = "quantum" @@ -2003,6 +2070,8 @@ def main(argv): style = "classical" elif arg[1] == '-' and arg[2:] == "quantum": style = "quantum" + elif arg[1] == '-' and arg[2:] == "reveal": + always_reveal_states = True elif (arg[1] == '-' and arg[2:] == "graphics"): graphics_enabled = not graphics_enabled elif (arg[1] == '-' and arg[2:].split("=")[0] == "file"): @@ -2010,7 +2079,11 @@ def main(argv): if len(arg[2:].split("=")) == 1: src_file = sys.stdin else: - src_file = open(arg[2:].split("=")[1]) + src_file = open(arg[2:].split("=")[1].split(":")[0]) + + if len(arg[2:].split(":")) == 2: + max_lines = int(arg[2:].split(":")[1]) + elif (arg[1] == '-' and arg[2:].split("=")[0] == "log"): # Log file if len(arg[2:].split("=")) == 1: @@ -2042,9 +2115,21 @@ def main(argv): # Construct a GameThread! Make it global! Damn the consequences! if src_file != None: - if len(players) == 0: + # Hack to stop ReplayThread from exiting + #if len(players) == 0: + # players = [HumanPlayer("dummy", "white"), HumanPlayer("dummy", "black")] + + # Normally the ReplayThread exits if there are no players + # TODO: Decide which behaviour to use, and fix it + end = (len(players) == 0) + if end: players = [Player("dummy", "white"), Player("dummy", "black")] - game = ReplayThread(players, src_file) + elif len(players) != 2: + sys.stderr.write(sys.argv[0] + " : Usage " + sys.argv[0] + " white black\n") + if graphics_enabled: + sys.stderr.write(sys.argv[0] + " : (You won't get a GUI, because --file was used, and the author is lazy)\n") + return 44 + game = ReplayThread(players, src_file, end=end, max_lines=max_lines) else: board = Board(style) game = GameThread(board, players) @@ -2117,17 +2202,24 @@ def main(argv): + log_init(game.board, players) + if graphics != None: game.start() # This runs in a new thread graphics.run() - game.join() + if game.is_alive(): + game.join() + + error = game.error + graphics.error else: game.run() error = game.error + if log_file != None and log_file != sys.stdout: + log_file.write("# EOF\n") log_file.close() if src_file != None and src_file != sys.stdin: @@ -2137,6 +2229,20 @@ def main(argv): # This is how python does a main() function... if __name__ == "__main__": - sys.exit(main(sys.argv)) + try: + sys.exit(main(sys.argv)) + except KeyboardInterrupt: + sys.stderr.write(sys.argv[0] + " : Got KeyboardInterrupt. Stopping everything\n") + if isinstance(graphics, StoppableThread): + graphics.stop() + graphics.run() # Will clean up graphics because it is stopped, not run it (a bit dodgy) + + if isinstance(game, StoppableThread): + game.stop() + if game.is_alive(): + game.join() + + sys.exit(102) + # --- main.py --- # -# EOF - created from make on Tue Jan 29 18:10:18 WST 2013 +# EOF - created from make on Wed Jan 30 00:45:46 WST 2013 diff --git a/qchess/src/board.py b/qchess/src/board.py index 0d96d1a..5dbf1dd 100644 --- a/qchess/src/board.py +++ b/qchess/src/board.py @@ -1,5 +1,7 @@ [w,h] = [8,8] # Width and height of board(s) +always_reveal_states = False + # Class to represent a quantum chess board class Board(): # Initialise; if master=True then the secondary piece types are assigned @@ -14,6 +16,9 @@ class Board(): for c in ["black", "white"]: del self.unrevealed_types[c]["unknown"] + if style == "empty": + return + # Add all the pieces with known primary types for i in range(0, 2): diff --git a/qchess/src/game.py b/qchess/src/game.py index e3f1c7c..07a1325 100644 --- a/qchess/src/game.py +++ b/qchess/src/game.py @@ -7,7 +7,20 @@ def log(s): import datetime log_file.write(str(datetime.datetime.now()) + " : " + s + "\n") +def log_init(board, players): + if log_file != None: + import datetime + log_file.write("# Log starts " + str(datetime.datetime.now()) + "\n") + for p in players: + log_file.write("# " + p.colour + " : " + p.name + "\n") + + log_file.write("# Initial board\n") + for x in range(0, w): + for y in range(0, h): + if board.grid[x][y] != None: + log_file.write(str(board.grid[x][y]) + "\n") + log_file.write("# Start game\n") # A thread that runs the game @@ -21,6 +34,8 @@ class GameThread(StoppableThread): self.lock = threading.RLock() #lock for access of self.state self.cond = threading.Condition() # conditional for some reason, I forgot self.final_result = "" + + # Run the game (run in new thread with start(), run in current thread with run()) def run(self): @@ -132,20 +147,53 @@ class GameThread(StoppableThread): # A thread that replays a log file class ReplayThread(GameThread): - def __init__(self, players, src): - self.board = Board(style="agent") + def __init__(self, players, src, end=False,max_lines=None): + self.board = Board(style="empty") GameThread.__init__(self, self.board, players) self.src = src + self.max_lines = max_lines + self.line_number = 0 + self.end = end - self.ended = False + try: + while self.src.readline().strip(" \r\n") != "# Initial board": + self.line_number += 1 + + line = self.src.readline().strip(" \r\n") + + while line != "# Start game": + #print "Reading line " + str(line) + self.line_number += 1 + [x,y] = map(int, line.split("at")[1].strip(" \r\n").split(",")) + colour = line.split(" ")[0] + current_type = line.split(" ")[1] + types = map(lambda e : e.strip(" [],'"), line.split(" ")[2:4]) + p = Piece(colour, x, y, types) + if current_type != "unknown": + p.current_type = current_type + p.choice = types.index(current_type) + + self.board.pieces[colour].append(p) + self.board.grid[x][y] = p + if current_type == "king": + self.board.king[colour] = p + + line = self.src.readline().strip(" \r\n") + + except Exception, e: + raise Exception("FILE line: " + str(self.line_number) + " \""+str(line)+"\"") #\n" + e.message) def run(self): i = 0 phase = 0 - for line in self.src: + count = 0 + line = self.src.readline().strip(" \r\n") + while line != "# EOF": + count += 1 + if self.max_lines != None and count > self.max_lines: + self.stop() if self.stopped(): - self.ended = True break with self.lock: @@ -158,10 +206,8 @@ class ReplayThread(GameThread): try: self.board.update(result) except: - self.ended = True self.final_result = result - if isinstance(graphics, GraphicsThread): - graphics.stop() + self.stop() break [x,y] = map(int, result.split(" ")[0:2]) @@ -173,14 +219,16 @@ class ReplayThread(GameThread): graphics.state["moves"] = self.board.possible_moves(target) graphics.state["select"] = target - time.sleep(turn_delay) + if self.end: + time.sleep(turn_delay) elif phase == 1: [x2,y2] = map(int, result.split(" ")[3:5]) with graphics.lock: graphics.state["moves"] = [[x2,y2]] - time.sleep(turn_delay) + if self.end: + time.sleep(turn_delay) with graphics.lock: graphics.state["select"] = None @@ -198,6 +246,21 @@ class ReplayThread(GameThread): if phase == 0: i = (i + 1) % 2 + line = self.src.readline().strip(" \r\n") + + if self.max_lines != None and self.max_lines > count: + sys.stderr.write(sys.argv[0] + " : Replaying from file; stopping at last line (" + str(count) + ")\n") + sys.stderr.write(sys.argv[0] + " : (You requested line " + str(self.max_lines) + ")\n") + + if self.end and isinstance(graphics, GraphicsThread): + #graphics.stop() + pass # Let the user stop the display + elif not self.end: + global game + game = GameThread(self.board, self.players) + game.run() + + def opponent(colour): diff --git a/qchess/src/main.py b/qchess/src/main.py index 0adecb0..137d1cb 100644 --- a/qchess/src/main.py +++ b/qchess/src/main.py @@ -67,8 +67,9 @@ def main(argv): global log_file global src_file global graphics_enabled + global always_reveal_states - + max_lines = None src_file = None style = "quantum" @@ -105,6 +106,8 @@ def main(argv): style = "classical" elif arg[1] == '-' and arg[2:] == "quantum": style = "quantum" + elif arg[1] == '-' and arg[2:] == "reveal": + always_reveal_states = True elif (arg[1] == '-' and arg[2:] == "graphics"): graphics_enabled = not graphics_enabled elif (arg[1] == '-' and arg[2:].split("=")[0] == "file"): @@ -112,7 +115,11 @@ def main(argv): if len(arg[2:].split("=")) == 1: src_file = sys.stdin else: - src_file = open(arg[2:].split("=")[1]) + src_file = open(arg[2:].split("=")[1].split(":")[0]) + + if len(arg[2:].split(":")) == 2: + max_lines = int(arg[2:].split(":")[1]) + elif (arg[1] == '-' and arg[2:].split("=")[0] == "log"): # Log file if len(arg[2:].split("=")) == 1: @@ -144,9 +151,21 @@ def main(argv): # Construct a GameThread! Make it global! Damn the consequences! if src_file != None: - if len(players) == 0: + # Hack to stop ReplayThread from exiting + #if len(players) == 0: + # players = [HumanPlayer("dummy", "white"), HumanPlayer("dummy", "black")] + + # Normally the ReplayThread exits if there are no players + # TODO: Decide which behaviour to use, and fix it + end = (len(players) == 0) + if end: players = [Player("dummy", "white"), Player("dummy", "black")] - game = ReplayThread(players, src_file) + elif len(players) != 2: + sys.stderr.write(sys.argv[0] + " : Usage " + sys.argv[0] + " white black\n") + if graphics_enabled: + sys.stderr.write(sys.argv[0] + " : (You won't get a GUI, because --file was used, and the author is lazy)\n") + return 44 + game = ReplayThread(players, src_file, end=end, max_lines=max_lines) else: board = Board(style) game = GameThread(board, players) @@ -219,17 +238,24 @@ def main(argv): + log_init(game.board, players) + if graphics != None: game.start() # This runs in a new thread graphics.run() - game.join() + if game.is_alive(): + game.join() + + error = game.error + graphics.error else: game.run() error = game.error + if log_file != None and log_file != sys.stdout: + log_file.write("# EOF\n") log_file.close() if src_file != None and src_file != sys.stdin: @@ -239,4 +265,18 @@ def main(argv): # This is how python does a main() function... if __name__ == "__main__": - sys.exit(main(sys.argv)) + try: + sys.exit(main(sys.argv)) + except KeyboardInterrupt: + sys.stderr.write(sys.argv[0] + " : Got KeyboardInterrupt. Stopping everything\n") + if isinstance(graphics, StoppableThread): + graphics.stop() + graphics.run() # Will clean up graphics because it is stopped, not run it (a bit dodgy) + + if isinstance(game, StoppableThread): + game.stop() + if game.is_alive(): + game.join() + + sys.exit(102) + diff --git a/qchess/src/piece.py b/qchess/src/piece.py index d9acef2..400a79a 100644 --- a/qchess/src/piece.py +++ b/qchess/src/piece.py @@ -38,7 +38,7 @@ class Piece(): # Make a string for the piece (used for debug) def __str__(self): - return str(self.current_type) + " " + str(self.types) + " at " + str(self.x) + ","+str(self.y) + return str(self.colour) + " " + str(self.current_type) + " " + str(self.types) + " at " + str(self.x) + ","+str(self.y) # Draw the piece in a pygame surface def draw(self, window, grid_sz = [80,80], style="quantum"): @@ -58,7 +58,7 @@ class Piece(): # Draw the two possible types underneath the current_type image for i in range(len(self.types)): - if self.types_revealed[i] == True: + if always_reveal_states == True or self.types_revealed[i] == True: img = small_images[self.colour][self.types[i]] else: img = small_images[self.colour]["unknown"] # If the type hasn't been revealed, show a placeholder diff --git a/qchess/src/player.py b/qchess/src/player.py index b3f0eb7..0a4ddd6 100644 --- a/qchess/src/player.py +++ b/qchess/src/player.py @@ -203,8 +203,6 @@ class AgentRandom(InternalAgent): def run_agent(agent): #sys.stderr.write(sys.argv[0] + " : Running agent " + str(agent) + "\n") - colour = sys.stdin.readline().strip(" \r\n") - agent.colour = colour while True: line = sys.stdin.readline().strip(" \r\n") if line == "SELECTION?": @@ -229,7 +227,7 @@ def run_agent(agent): class ExternalWrapper(ExternalAgent): def __init__(self, agent): - run = "python -u -c \"import sys;import os;from qchess import *;agent = " + agent.__class__.__name__ + "('" + agent.name + "','"+agent.colour+"');sys.exit(run_agent(agent))\"" + run = "python -u -c \"import sys;import os;from qchess import *;agent = " + agent.__class__.__name__ + "('" + agent.name + "','"+agent.colour+"');sys.stdin.readline();sys.exit(run_agent(agent))\"" # str(run) ExternalAgent.__init__(self, run, agent.colour) -- 2.20.1