diff options
-rw-r--r-- | Makefile.in | 4 | ||||
-rw-r--r-- | modules/pdp_colorgrid.c | 975 | ||||
-rw-r--r-- | modules/pdp_colorgrid.tk | 87 | ||||
-rw-r--r-- | modules/pdp_colorgrid.tk2c | 65 |
4 files changed, 965 insertions, 166 deletions
diff --git a/Makefile.in b/Makefile.in index 8351e5a..1465ea1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -65,10 +65,6 @@ distro: clean all cp /mnt/c/ydegoyon.free.fr/pidip-$(PDP_PIDIP_VERSION).tar.gz /mnt/c/Yves/Software rm -rf /tmp/pidip-$(PDP_PIDIP_VERSION) -pdp_colorgrid.o: pdp_colorgrid.c - ./tk2c.bash < $*.tk > $*.tk2c - PWD=`pwd`; cc -DPWD=\"$(PWD)\" $(PDP_PIDIP_INCLUDES) $(PDP_PIDIP_CFLAGS) -o $*.o -c $*.c - .c.o: gcc $(PDP_PIDIP_INCLUDES) $(PDP_PIDIP_CFLAGS) -o $*.o -c $*.c diff --git a/modules/pdp_colorgrid.c b/modules/pdp_colorgrid.c index 2538205..8936b84 100644 --- a/modules/pdp_colorgrid.c +++ b/modules/pdp_colorgrid.c @@ -16,7 +16,6 @@ #include "m_imp.h" #include "g_canvas.h" #include "t_tk.h" -#include "g_colorgrid.h" #ifdef NT #include <io.h> @@ -24,11 +23,108 @@ #include <unistd.h> #endif -#define COLORGRID_IMG PWD"/patches/images/colorgrid.pnm" +#define COLORGRID_IMG "/usr/local/lib/pd/externs/pdp_colorgrid/pdp_colorgrid.pnm" #define DEFAULT_COLORGRID_WIDTH 256 #define DEFAULT_COLORGRID_HEIGHT 50 #define DEFAULT_COLORGRID_NBLINES 10 +typedef struct _pdp_colorgrid +{ + t_object x_obj; + t_glist *x_glist; + t_symbol *x_name; + t_outlet *x_xoutlet; + t_outlet *x_youtlet; + t_outlet *x_zoutlet; + int x_null; /* To dissable resize */ + int x_height; /* height of the pdp_colorgrid */ + t_float x_min; /* minimum value of x */ + t_float x_max; /* max value of x */ + int x_width; /* width of the pdp_colorgrid */ + t_float y_min; /* minimum value of y */ + t_float y_max; /* max value of y */ + t_float x_current; /* x coordinate of current position */ + t_float y_current; /* y coordinate of current position */ + int x_selected; /* stores selected state */ + int x_point; /* indicates if a point is plotted */ + int x_pdp_colorgrid; /* indicates if a pdp_colorgrid is requested */ + t_float x_xstep; /* sets the step ( grain ) for x */ + t_float x_ystep; /* sets the step ( grain ) for y */ + int x_xlines; /* number of vertical lines */ + int x_ylines; /* number of horizontal lines */ + t_symbol* x_fname; +} t_pdp_colorgrid; + +void load_tk_procs () { + // ########### pdp_colorgrid procedures -- ydegoyon@free.fr ######### + // package require Img + sys_gui("package require base64\n"); + sys_gui("proc pdp_colorgrid_apply {id} {\n"); + // strip "." from the TK id to make a variable name suffix + sys_gui("set vid [string trimleft $id .]\n"); + // for each variable, make a local variable to hold its name... + sys_gui("set var_graph_pdp_colorgrid [concat graph_pdp_colorgrid_$vid]\n"); + sys_gui("global $var_graph_pdp_colorgrid\n"); + sys_gui("set var_graph_xlines [concat graph_xlines_$vid]\n"); + sys_gui("global $var_graph_xlines\n"); + sys_gui("set var_graph_ylines [concat graph_ylines_$vid]\n"); + sys_gui("global $var_graph_ylines\n"); + sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_xlines] [eval concat $$var_graph_ylines] [eval concat $$var_graph_pdp_colorgrid] \\;]\n"); + // puts stderr $cmd + sys_gui("pd $cmd\n"); + sys_gui("}\n"); + sys_gui("proc pdp_colorgrid_cancel {id} {\n"); + sys_gui("set cmd [concat $id cancel \\;]\n"); + // puts stderr $cmd + sys_gui("pd $cmd\n"); + sys_gui("}\n"); + sys_gui("proc pdp_colorgrid_ok {id} {\n"); + sys_gui("pdp_colorgrid_apply $id\n"); + sys_gui("pdp_colorgrid_cancel $id\n"); + sys_gui("}\n"); + sys_gui("proc pdtk_pdp_colorgrid_dialog {id xlines ylines pdp_colorgrid} {\n"); + sys_gui("set vid [string trimleft $id .]\n"); + sys_gui("set var_graph_pdp_colorgrid [concat graph_pdp_colorgrid_$vid]\n"); + sys_gui("global $var_graph_pdp_colorgrid\n"); + sys_gui("set var_graph_xlines [concat graph_xlines_$vid]\n"); + sys_gui("global $var_graph_xlines\n"); + sys_gui("set var_graph_ylines [concat graph_ylines_$vid]\n"); + sys_gui("global $var_graph_ylines\n"); + sys_gui("set $var_graph_pdp_colorgrid $pdp_colorgrid\n"); + sys_gui("set $var_graph_xlines $xlines\n"); + sys_gui("set $var_graph_ylines $ylines\n"); + sys_gui("toplevel $id\n"); + sys_gui("wm title $id {pdp_colorgrid}\n"); + sys_gui("wm protocol $id WM_DELETE_WINDOW [concat pdp_colorgrid_cancel $id]\n"); + sys_gui("label $id.label -text {COLORGRID PROPERTIES}\n"); + sys_gui("pack $id.label -side top\n"); + sys_gui("frame $id.buttonframe\n"); + sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); + sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"pdp_colorgrid_cancel $id\"\n"); + sys_gui("button $id.buttonframe.apply -text {Apply} -command \"pdp_colorgrid_apply $id\"\n"); + sys_gui("button $id.buttonframe.ok -text {OK} -command \"pdp_colorgrid_ok $id\"\n"); + sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); + sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); + sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); + sys_gui("frame $id.42rangef\n"); + sys_gui("pack $id.42rangef -side top\n"); + sys_gui("label $id.42rangef.lxlines -text \"X sections :\"\n"); + sys_gui("entry $id.42rangef.xlines -textvariable $var_graph_xlines -width 7\n"); + sys_gui("pack $id.42rangef.lxlines $id.42rangef.xlines -side left\n"); + sys_gui("frame $id.72rangef\n"); + sys_gui("pack $id.72rangef -side top\n"); + sys_gui("label $id.72rangef.lylines -text \"Y sections :\"\n"); + sys_gui("entry $id.72rangef.ylines -textvariable $var_graph_ylines -width 7\n"); + sys_gui("pack $id.72rangef.lylines $id.72rangef.ylines -side left\n"); + sys_gui("checkbutton $id.showpdp_colorgrid -text {Show Grid} -variable $var_graph_pdp_colorgrid -anchor w\n"); + sys_gui("pack $id.showpdp_colorgrid -side top\n"); + sys_gui("bind $id.42rangef.xlines <KeyPress-Return> [concat pdp_colorgrid_ok $id]\n"); + sys_gui("bind $id.72rangef.ylines <KeyPress-Return> [concat pdp_colorgrid_ok $id]\n"); + sys_gui("focus $id.42rangef.xlines\n"); + sys_gui("}\n"); + // ########### pdp_colorgrid procedures END -- lluis@artefacte.org ######### +} + t_widgetbehavior pdp_colorgrid_widgetbehavior; static t_class *pdp_colorgrid_class; static int pdp_colorgridcount=0; @@ -74,7 +170,7 @@ static char *pdp_colorgrid_version = "pdp_colorgrid: version 0.4, written by Y static void pdp_colorgrid_draw_update(t_pdp_colorgrid *x, t_glist *glist) { t_canvas *canvas=glist_getcanvas(glist); - int xpoint=x->x_current, ypoint=x->y_current; + t_int xpoint=x->x_current, ypoint=x->y_current; // later : try to figure out what's this test for ?? // if (glist_isvisible(glist)) @@ -107,10 +203,870 @@ static void pdp_colorgrid_draw_new(t_pdp_colorgrid *x, t_glist *glist) t_canvas *canvas=glist_getcanvas(glist); char *tagRoot; char fname[MAXPDSTRING]=COLORGRID_IMG; + + char *fdata="UDYKIyBDUkVBVE9SOiBUaGUgR0lNUCdzIFBOTSBGaWx0ZXIgVmVyc2lvbiAx\ +LjAKMjU2IDUwCjI1NQpMBwdMCQdMCgdMDAdMDgdMDwdMEQdMEwdMFAdMFgdM\ +FwdMGQdMGwdMHAdMHgdMHwdMIQdMIwdMJAdMJgdMKAdMKQdMKwdMLAdMLgdM\ +MAdMMQdMMwdMNQdMNgdMOAdMOQdMOwdMPQdMPgdMQAdMQgdMQwdMRQdMRgdM\ +SAdMSgdMSwdMTAdKTAdJTAdHTAdFTAdETAdCTAdATAc/TAc9TAc8TAc6TAc4\ +TAc3TAc1TAczTAcyTAcwTAcvTActTAcrTAcqTAcoTAcnTAclTAcjTAciTAcg\ +TAceTAcdTAcbTAcaTAcYTAcWTAcVTAcTTAcRTAcQTAcOTAcNTAcLTAcJTAcI\ +TAcHTAgHTAoHTAwHTA0HTA8HTBAHTBIHTBQHTBUHTBcHTBgHTBoHTBwHTB0H\ +TB8HTCEHTCIHTCQHTCUHTCcHTCkHTCoHTCwHTC4HTC8HTDEHTDIHTDQHTDYH\ +TDcHTDkHTDoHTDwHTD4HTD8HTEEHTEMHTEQHTEYHTEcHTEkHTEsHTEwHS0wH\ +SUwHR0wHRkwHREwHQ0wHQUwHP0wHPkwHPEwHOkwHOUwHN0wHNkwHNEwHMkwH\ +MUwHL0wHLkwHLEwHKkwHKUwHJ0wHJUwHJEwHIkwHIUwHH0wHHUwHHEwHGkwH\ +GEwHF0wHFUwHFEwHEkwHEEwHD0wHDUwHDEwHCkwHCEwIB0wJB0wLB0wNB0wO\ +B0wQB0wRB0wTB0wVB0wWB0wYB0waB0wbB0wdB0weB0wgB0wiB0wjB0wlB0wn\ +B0woB0wqB0wrB0wtB0wvB0wwB0wyB0wzB0w1B0w3B0w4B0w6B0w8B0w9B0w/\ +B0xAB0xCB0xEB0xFB0xHB0xJB0xKB0xMB0xMB0tMB0pMB0hMB0ZMB0VMB0NM\ +B0JMB0BMBz5MBz1MBztMBzlMBzhMBzZMBzVMBzNMBzFMBzBMBy5MByxMBytM\ +BylMByhMByZMByRMByNMByFMBx9MBx5MBxxMBxtMBxlMBxdMBxZMBxRMBxNM\ +BxFMBw9MBw5MBwxMBwpMBwlTCAhTCghTCwhTDQhTDwhTEQhTEwhTFAhTFghT\ +GAhTGghTGwhTHQhTHwhTIQhTIghTJAhTJghTKAhTKghTKwhTLQhTLwhTMQhT\ +MghTNAhTNghTOAhTOQhTOwhTPQhTPwhTQQhTQghTRAhTRghTSAhTSQhTSwhT\ +TQhTTwhTUQhTUghTUwhRUwhPUwhOUwhMUwhKUwhIUwhGUwhFUwhDUwhBUwg/\ +Uwg+Uwg8Uwg6Uwg4Uwg3Uwg1UwgzUwgxUwgvUwguUwgsUwgqUwgoUwgnUwgl\ +UwgjUwghUwggUwgeUwgcUwgaUwgYUwgXUwgVUwgTUwgRUwgQUwgOUwgMUwgK\ +UwgIUwgIUwkIUwsIUw0IUw4IUxAIUxIIUxQIUxUIUxcIUxkIUxsIUx0IUx4I\ +UyAIUyIIUyQIUyUIUycIUykIUysIUy0IUy4IUzAIUzIIUzQIUzUIUzcIUzkI\ +UzsIUzwIUz4IU0AIU0IIU0QIU0UIU0cIU0kIU0sIU0wIU04IU1AIU1IIU1MI\ +UlMIUFMITlMITFMIS1MISVMIR1MIRVMIRFMIQlMIQFMIPlMIPFMIO1MIOVMI\ +N1MINVMINFMIMlMIMFMILlMILVMIK1MIKVMIJ1MIJVMIJFMIIlMIIFMIHlMI\ +HVMIG1MIGVMIF1MIFVMIFFMIElMIEFMIDlMIDVMIC1MICVMICFMKCFMMCFMO\ +CFMQCFMRCFMTCFMVCFMXCFMYCFMaCFMcCFMeCFMgCFMhCFMjCFMlCFMnCFMo\ +CFMqCFMsCFMuCFMvCFMxCFMzCFM1CFM3CFM4CFM6CFM8CFM+CFM/CFNBCFND\ +CFNFCFNGCFNICFNKCFNMCFNOCFNPCFNRCFNTCFNTCFJTCFFTCE9TCE1TCEtT\ +CElTCEhTCEZTCERTCEJTCEFTCD9TCD1TCDtTCDlTCDhTCDZTCDRTCDJTCDFT\ +CC9TCC1TCCtTCCpTCChTCCZTCCRTCCJTCCFTCB9TCB1TCBtTCBpTCBhTCBZT\ +CBRTCBNTCBFTCA9TCA1TCAtTCApbCQlbCwlbDAlbDglbEAlbEglbFAlbFglb\ +GAlbGglbHAlbHglbIAlbIglbJAlbJQlbJwlbKQlbKwlbLQlbLwlbMQlbMwlb\ +NQlbNwlbOQlbOwlbPQlbPglbQAlbQglbRAlbRglbSAlbSglbTAlbTglbUAlb\ +UglbVAlbVglbVwlbWQlaWwlYWwlWWwlUWwlSWwlQWwlOWwlNWwlLWwlJWwlH\ +WwlFWwlDWwlBWwk/Wwk9Wwk7Wwk5Wwk3Wwk1Wwk0WwkyWwkwWwkuWwksWwkq\ +WwkoWwkmWwkkWwkiWwkgWwkeWwkcWwkbWwkZWwkXWwkVWwkTWwkRWwkPWwkN\ +WwkLWwkJWwkJWwoJWwwJWw4JWxAJWxIJWxQJWxUJWxcJWxkJWxsJWx0JWx8J\ +WyEJWyMJWyUJWycJWykJWysJWywJWy4JWzAJWzIJWzQJWzYJWzgJWzoJWzwJ\ +Wz4JW0AJW0IJW0QJW0UJW0cJW0kJW0sJW00JW08JW1EJW1MJW1UJW1cJW1kJ\ +W1sJWVsJV1sJVVsJU1sJUVsJT1sJTVsJS1sJSVsJR1sJRVsJRFsJQlsJQFsJ\ +PlsJPFsJOlsJOFsJNlsJNFsJMlsJMFsJLlsJLFsJK1sJKVsJJ1sJJVsJI1sJ\ +IVsJH1sJHVsJG1sJGVsJF1sJFVsJFFsJElsJEFsJDlsJDFsJClsJCVsLCVsN\ +CVsPCVsRCVsTCVsVCVsXCVsZCVsbCVscCVseCVsgCVsiCVskCVsmCVsoCVsq\ +CVssCVsuCVswCVsyCVs0CVs1CVs3CVs5CVs7CVs9CVs/CVtBCVtDCVtFCVtH\ +CVtJCVtLCVtNCVtOCVtQCVtSCVtUCVtWCVtYCVtaCVtbCVlbCVdbCVZbCVRb\ +CVJbCVBbCU5bCUxbCUpbCUhbCUZbCURbCUJbCUBbCT5bCT1bCTtbCTlbCTdb\ +CTVbCTNbCTFbCS9bCS1bCStbCSlbCSdbCSVbCSRbCSJbCSBbCR5bCRxbCRpb\ +CRhbCRZbCRRbCRJbCRBbCQ5bCQxbCQtiCQliCwliDQliEAliEgliFAliFgli\ +GAliGgliHAliHgliIAliIgliJAliJgliKAliKwliLQliLwliMQliMwliNQli\ +NwliOQliOwliPQliPwliQQliQwliRQliSAliSgliTAliTgliUAliUgliVAli\ +VgliWAliWgliXAliXgliYAlhYglfYgldYglbYglZYglXYglVYglTYglRYglO\ +YglMYglKYglIYglGYglEYglCYglAYgk+Ygk8Ygk6Ygk4Ygk2YgkzYgkxYgkv\ +YgktYgkrYgkpYgknYgklYgkjYgkhYgkfYgkdYgkbYgkZYgkWYgkUYgkSYgkQ\ +YgkOYgkMYgkKYgkJYgsJYg0JYg8JYhEJYhMJYhUJYhcJYhkJYhsJYh0JYh8J\ +YiIJYiQJYiYJYigJYioJYiwJYi4JYjAJYjIJYjQJYjYJYjgJYjoJYjwJYj8J\ +YkEJYkMJYkUJYkcJYkkJYksJYk0JYk8JYlEJYlMJYlUJYlcJYloJYlwJYl4J\ +YmAJYmIJYGIJXmIJXGIJWmIJV2IJVWIJU2IJUWIJT2IJTWIJS2IJSWIJR2IJ\ +RWIJQ2IJQWIJP2IJPGIJOmIJOGIJNmIJNGIJMmIJMGIJLmIJLGIJKmIJKGIJ\ +JmIJJGIJImIJH2IJHWIJG2IJGWIJF2IJFWIJE2IJEWIJD2IJDWIJC2IKCWIM\ +CWIOCWIQCWISCWIUCWIWCWIZCWIbCWIdCWIfCWIhCWIjCWIlCWInCWIpCWIr\ +CWItCWIvCWIxCWIzCWI2CWI4CWI6CWI8CWI+CWJACWJCCWJECWJGCWJICWJK\ +CWJMCWJOCWJRCWJTCWJVCWJXCWJZCWJbCWJdCWJfCWJhCWJiCWBiCV5iCVxi\ +CVpiCVhiCVZiCVRiCVJiCVBiCU5iCUxiCUpiCUhiCUViCUNiCUFiCT9iCT1i\ +CTtiCTliCTdiCTViCTNiCTFiCS9iCS1iCStiCShiCSZiCSRiCSJiCSBiCR5i\ +CRxiCRpiCRhiCRZiCRRiCRJiCRBiCQ1iCQtpCgppDAppDgppEQppEwppFQpp\ +FwppGgppHAppHgppIAppIwppJQppJwppKQppKwppLgppMAppMgppNAppNwpp\ +OQppOwppPQppPwppQgppRAppRgppSAppSwppTQppTwppUQppUwppVgppWApp\ +WgppXAppXwppYQppYwppZQppZwpoaQpmaQpkaQpiaQpfaQpdaQpbaQpZaQpW\ +aQpUaQpSaQpQaQpOaQpLaQpJaQpHaQpFaQpCaQpAaQo+aQo8aQo6aQo3aQo1\ +aQozaQoxaQouaQosaQoqaQooaQolaQojaQohaQofaQodaQoaaQoYaQoWaQoU\ +aQoRaQoPaQoNaQoLaQoKaQwKaQ4KaRAKaRIKaRQKaRcKaRkKaRsKaR0KaSAK\ +aSIKaSQKaSYKaSgKaSsKaS0KaS8KaTEKaTQKaTYKaTgKaToKaTwKaT8KaUEK\ +aUMKaUUKaUgKaUoKaUwKaU4KaVAKaVMKaVUKaVcKaVkKaVwKaV4KaWAKaWIK\ +aWUKaWcKaWkKZ2kKZWkKYmkKYGkKXmkKXGkKWWkKV2kKVWkKU2kKUGkKTmkK\ +TGkKSmkKSGkKRWkKQ2kKQWkKP2kKPGkKOmkKOGkKNmkKNGkKMWkKL2kKLWkK\ +K2kKKGkKJmkKJGkKImkKIGkKHWkKG2kKGWkKF2kKFGkKEmkKEGkKDmkKDGkL\ +CmkNCmkPCmkRCmkUCmkWCmkYCmkaCmkdCmkfCmkhCmkjCmklCmkoCmkqCmks\ +CmkuCmkxCmkzCmk1Cmk3Cmk6Cmk8Cmk+CmlACmlCCmlFCmlHCmlJCmlLCmlO\ +CmlQCmlSCmlUCmlWCmlZCmlbCmldCmlfCmliCmlkCmlmCmloCmlpCmdpCmVp\ +CmNpCmFpCl9pClxpClppClhpClZpClNpClFpCk9pCk1pCktpCkhpCkZpCkRp\ +CkJpCj9pCj1pCjtpCjlpCjdpCjRpCjJpCjBpCi5pCitpCilpCidpCiVpCiNp\ +CiBpCh5pChxpChppChdpChVpChNpChFpCg5pCgxwCwtwDQtwEAtwEgtwFAtw\ +FwtwGQtwGwtwHgtwIAtwIwtwJQtwJwtwKgtwLAtwLgtwMQtwMwtwNgtwOAtw\ +OgtwPQtwPwtwQQtwRAtwRgtwSQtwSwtwTQtwUAtwUgtwVAtwVwtwWQtwXAtw\ +XgtwYAtwYwtwZQtwZwtwagtwbAtwbwtvcAttcAtrcAtocAtmcAtjcAthcAtf\ +cAtccAtacAtYcAtVcAtTcAtQcAtOcAtMcAtJcAtHcAtFcAtCcAtAcAs9cAs7\ +cAs5cAs2cAs0cAsycAsvcAstcAsqcAsocAsmcAsjcAshcAsfcAsccAsacAsX\ +cAsVcAsTcAsQcAsOcAsMcAsLcAwLcA8LcBELcBMLcBYLcBgLcBsLcB0LcB8L\ +cCILcCQLcCYLcCkLcCsLcC4LcDALcDILcDULcDcLcDkLcDwLcD4LcEELcEML\ +cEULcEgLcEoLcE0LcE8LcFELcFQLcFYLcFgLcFsLcF0LcGALcGILcGQLcGcL\ +cGkLcGsLcG4LcHALbnALa3ALaXALZ3ALZHALYnALYHALXXALW3ALWHALVnAL\ +VHALUXALT3ALTXALSnALSHALRXALQ3ALQXALPnALPHALOXALN3ALNXALMnAL\ +MHALLnALK3ALKXALJnALJHALInALH3ALHXALG3ALGHALFnALE3ALEXALD3AL\ +DHAMC3AOC3AQC3ATC3AVC3AXC3AaC3AcC3AfC3AhC3AjC3AmC3AoC3AqC3At\ +C3AvC3AyC3A0C3A2C3A5C3A7C3A9C3BAC3BCC3BFC3BHC3BJC3BMC3BOC3BQ\ +C3BTC3BVC3BYC3BaC3BcC3BfC3BhC3BjC3BmC3BoC3BrC3BtC3BvC3BwC29w\ +C2xwC2pwC2dwC2VwC2NwC2BwC15wC1xwC1lwC1dwC1RwC1JwC1BwC01wC0tw\ +C0lwC0ZwC0RwC0FwCz9wCz1wCzpwCzhwCzZwCzNwCzFwCy5wCyxwCypwCydw\ +CyVwCyNwCyBwCx5wCxtwCxlwCxdwCxRwCxJwCxBwCw13Cwt3Dgt3EQt3Ewt3\ +Fgt3GAt3Gwt3HQt3IAt3Igt3JQt3Jwt3Kgt3LAt3Lwt3MQt3NAt3Ngt3OQt3\ +Owt3Pgt3QQt3Qwt3Rgt3SAt3Swt3TQt3UAt3Ugt3VQt3Vwt3Wgt3XAt3Xwt3\ +YQt3ZAt3Zgt3aQt3bAt3bgt3cQt3cwt3dgt2dwt0dwtxdwtvdwtsdwtqdwtn\ +dwtldwtidwtgdwtddwtbdwtYdwtWdwtTdwtRdwtOdwtMdwtJdwtGdwtEdwtB\ +dws/dws8dws6dws3dws1dwsydwswdwstdwsrdwsodwsmdwsjdwshdwsedwsb\ +dwsZdwsWdwsUdwsRdwsPdwsMdwsLdw0LdxALdxILdxULdxcLdxoLdxwLdx8L\ +dyELdyQLdyYLdykLdysLdy4LdzELdzMLdzYLdzgLdzsLdz0Ld0ALd0ILd0UL\ +d0cLd0oLd0wLd08Ld1ELd1QLd1YLd1kLd1wLd14Ld2ELd2MLd2YLd2gLd2sL\ +d20Ld3ALd3ILd3ULd3cLdXcLcncLcHcLbXcLa3cLaHcLZncLY3cLYXcLXncL\ +XHcLWXcLVncLVHcLUXcLT3cLTHcLSncLR3cLRXcLQncLQHcLPXcLO3cLOHcL\ +NncLM3cLMXcLLncLK3cLKXcLJncLJHcLIXcLH3cLHHcLGncLF3cLFXcLEncL\ +EHcLDXcMC3cPC3cRC3cUC3cWC3cZC3cbC3ceC3chC3cjC3cmC3coC3crC3ct\ +C3cwC3cyC3c1C3c3C3c6C3c8C3c/C3dBC3dEC3dGC3dJC3dMC3dOC3dRC3dT\ +C3dWC3dYC3dbC3ddC3dgC3diC3dlC3dnC3dqC3dsC3dvC3dxC3d0C3d2C3d3\ +C3Z3C3N3C3F3C253C2x3C2l3C2Z3C2R3C2F3C193C1x3C1p3C1d3C1V3C1J3\ +C1B3C013C0t3C0h3C0Z3C0N3C0F3Cz53Czt3Czl3CzZ3CzR3CzF3Cy93Cyx3\ +Cyp3Cyd3CyV3CyJ3CyB3Cx13Cxt3Cxh3CxZ3CxN3CxF3Cw5+DAx+Dwx+Egx+\ +FAx+Fwx+Ggx+HAx+Hwx+Igx+JAx+Jwx+Kgx+LAx+Lwx+Mgx+NAx+Nwx+Ogx+\ +PAx+Pwx+Qgx+RAx+Rwx+Sgx+TAx+Twx+Ugx+VQx+Vwx+Wgx+XQx+Xwx+Ygx+\ +ZQx+Zwx+agx+bQx+bwx+cgx+dQx+dwx+egx+fQx+fgx7fgx4fgx2fgxzfgxw\ +fgxufgxrfgxofgxlfgxjfgxgfgxdfgxbfgxYfgxVfgxTfgxQfgxNfgxLfgxI\ +fgxFfgxDfgxAfgw9fgw7fgw4fgw1fgwzfgwwfgwtfgwrfgwofgwlfgwjfgwg\ +fgwdfgwafgwYfgwVfgwSfgwQfgwNfgwMfg4MfhEMfhMMfhYMfhkMfhsMfh4M\ +fiEMfiMMfiYMfikMfisMfi4MfjEMfjMMfjYMfjkMfjwMfj4MfkEMfkQMfkYM\ +fkkMfkwMfk4MflEMflQMflYMflkMflwMfl4MfmEMfmQMfmYMfmkMfmwMfm4M\ +fnEMfnQMfnYMfnkMfnwMfn4MfH4MeX4Mdn4MdH4McX4Mbn4MbH4MaX4MZn4M\ +ZH4MYX4MXn4MXH4MWX4MVn4MVH4MUX4MTn4MTH4MSX4MRn4MRH4MQX4MPn4M\ +PH4MOX4MNn4MM34MMX4MLn4MK34MKX4MJn4MI34MIX4MHn4MG34MGX4MFn4M\ +E34MEX4MDn4NDH4QDH4SDH4VDH4YDH4aDH4dDH4gDH4jDH4lDH4oDH4rDH4t\ +DH4wDH4zDH41DH44DH47DH49DH5ADH5DDH5FDH5IDH5LDH5NDH5QDH5TDH5V\ +DH5YDH5bDH5dDH5gDH5jDH5lDH5oDH5rDH5uDH5wDH5zDH52DH54DH57DH5+\ +DH5+DH1+DHp+DHd+DHV+DHJ+DG9+DG1+DGp+DGd+DGV+DGJ+DF9+DF1+DFp+\ +DFd+DFV+DFJ+DE9+DEx+DEp+DEd+DER+DEJ+DD9+DDx+DDp+DDd+DDR+DDJ+\ +DC9+DCx+DCp+DCd+DCR+DCJ+DB9+DBx+DBp+DBd+DBR+DBJ+DA+GDQ2GEA2G\ +Ew2GFQ2GGA2GGw2GHg2GIQ2GJA2GJg2GKQ2GLA2GLw2GMg2GNQ2GNw2GOg2G\ +PQ2GQA2GQw2GRg2GSA2GSw2GTg2GUQ2GVA2GVg2GWQ2GXA2GXw2GYg2GZQ2G\ +Zw2Gag2GbQ2GcA2Gcw2Gdg2GeA2Gew2Gfg2GgQ2GhA2Fhg2Chg1/hg18hg15\ +hg13hg10hg1xhg1uhg1rhg1ohg1mhg1jhg1ghg1dhg1ahg1Xhg1Vhg1Shg1P\ +hg1Mhg1Jhg1Ghg1Ehg1Bhg0+hg07hg04hg01hg0zhg0whg0thg0qhg0nhg0k\ +hg0ihg0fhg0chg0Zhg0Whg0Uhg0Rhg0Ohg0Nhg8NhhINhhQNhhcNhhoNhh0N\ +hiANhiMNhiUNhigNhisNhi4NhjENhjQNhjYNhjkNhjwNhj8NhkINhkUNhkcN\ +hkoNhk0NhlANhlMNhlYNhlgNhlsNhl4NhmENhmQNhmcNhmkNhmwNhm8NhnIN\ +hnUNhncNhnoNhn0NhoANhoMNhoYNg4YNgIYNfYYNeoYNd4YNdYYNcoYNb4YN\ +bIYNaYYNZ4YNZIYNYYYNXoYNW4YNWIYNVoYNU4YNUIYNTYYNSoYNR4YNRYYN\ +QoYNP4YNPIYNOYYNNoYNNIYNMYYNLoYNK4YNKIYNJYYNI4YNIIYNHYYNGoYN\ +F4YNFIYNEoYND4YODYYRDYYUDYYWDYYZDYYcDYYfDYYiDYYkDYYnDYYqDYYt\ +DYYwDYYzDYY1DYY4DYY7DYY+DYZBDYZEDYZGDYZJDYZMDYZPDYZSDYZVDYZX\ +DYZaDYZdDYZgDYZjDYZmDYZoDYZrDYZuDYZxDYZ0DYZ3DYZ5DYZ8DYZ/DYaC\ +DYaFDYaGDYSGDYGGDX6GDXuGDXiGDXaGDXOGDXCGDW2GDWqGDWeGDWWGDWKG\ +DV+GDVyGDVmGDVaGDVSGDVGGDU6GDUuGDUiGDUaGDUOGDUCGDT2GDTqGDTeG\ +DTWGDTKGDS+GDSyGDSmGDSaGDSSGDSGGDR6GDRuGDRiGDRWGDROGDRCNDg6N\ +EQ6NFA6NFw6NGg6NHQ6NIA6NIg6NJQ6NKA6NKw6NLg6NMQ6NNA6NNw6NOg6N\ +PQ6NQA6NQw6NRg6NSQ6NTA6NTw6NUg6NVQ6NWA6NWw6NXg6NYQ6NZA6NZw6N\ +ag6NbQ6NcA6Ncw6Ndg6NeQ6NfA6Nfw6Ngg6NhQ6NiA6Niw6MjQ6JjQ6GjQ6D\ +jQ6AjQ59jQ56jQ53jQ50jQ5xjQ5ujQ5rjQ5ojQ5ljQ5ijQ5fjQ5cjQ5ZjQ5W\ +jQ5TjQ5QjQ5NjQ5KjQ5HjQ5EjQ5BjQ4+jQ47jQ44jQ41jQ4yjQ4vjQ4sjQ4p\ +jQ4mjQ4jjQ4hjQ4ejQ4bjQ4YjQ4VjQ4SjQ4PjQ4OjRAOjRMOjRYOjRkOjRwO\ +jR8OjSIOjSQOjScOjSoOjS0OjTAOjTMOjTYOjTkOjTwOjT8OjUIOjUUOjUgO\ +jUsOjU4OjVEOjVQOjVcOjVoOjV0OjWAOjWMOjWYOjWkOjWwOjW8OjXIOjXUO\ +jXgOjXsOjX4OjYEOjYQOjYcOjYoOjY0Oio0Oh40OhI0OgY0Ofo0Oe40OeI0O\ +dY0Oco0Ob40ObI0OaY0OZo0OY40OYI0OXY0OWo0OV40OVI0OUY0OTo0OS40O\ +SI0ORY0OQo0OP40OPI0OOY0ONo0OM40OMI0OLY0OKo0OJ40OJI0OIo0OH40O\ +HI0OGY0OFo0OE40OEI0PDo0SDo0VDo0YDo0bDo0eDo0hDo0jDo0mDo0pDo0s\ +Do0vDo0yDo01Do04Do07Do0+Do1BDo1EDo1HDo1KDo1NDo1QDo1TDo1WDo1Z\ +Do1cDo1fDo1iDo1lDo1oDo1rDo1uDo1xDo10Do13Do16Do19Do2ADo2DDo2G\ +Do2JDo2MDo2NDouNDoiNDoWNDoKNDn+NDnyNDnmNDnaNDnONDnCNDm2NDmqN\ +DmeNDmSNDmGNDl6NDluNDliNDlWNDlKNDk+NDkyNDkmNDkaNDkONDkCNDj2N\ +DjqNDjeNDjSNDjGNDi6NDiuNDiiNDiWNDiKNDiCNDh2NDhqNDheNDhSNDhGU\ +Dg6UEQ6UFQ6UGA6UGw6UHg6UIQ6UJA6UJw6UKw6ULg6UMQ6UNA6UNw6UOg6U\ +PQ6UQA6URA6URw6USg6UTQ6UUA6UUw6UVg6UWg6UXQ6UYA6UYw6UZg6UaQ6U\ +bA6Ubw6Ucw6Udg6UeQ6UfA6Ufw6Ugg6UhQ6UiA6UjA6Ujw6Ukg6TlA6QlA6N\ +lA6KlA6GlA6DlA6AlA59lA56lA53lA50lA5wlA5tlA5qlA5nlA5klA5hlA5e\ +lA5blA5XlA5UlA5RlA5OlA5LlA5IlA5FlA5ClA4+lA47lA44lA41lA4ylA4v\ +lA4slA4olA4llA4ilA4flA4clA4ZlA4WlA4TlA4PlA4OlBAOlBQOlBcOlBoO\ +lB0OlCAOlCMOlCYOlCkOlC0OlDAOlDMOlDYOlDkOlDwOlD8OlEMOlEYOlEkO\ +lEwOlE8OlFIOlFUOlFgOlFwOlF8OlGIOlGUOlGgOlGsOlG4OlHIOlHUOlHgO\ +lHsOlH4OlIEOlIQOlIcOlIsOlI4OlJEOlJQOkZQOjpQOi5QOh5QOhJQOgZQO\ +fpQOe5QOeJQOdZQOcpQObpQOa5QOaJQOZZQOYpQOX5QOXJQOWJQOVZQOUpQO\ +T5QOTJQOSZQORpQOQ5QOP5QOPJQOOZQONpQOM5QOMJQOLZQOKZQOJpQOI5QO\ +IJQOHZQOGpQOF5QOFJQOEJQPDpQTDpQWDpQZDpQcDpQfDpQiDpQlDpQoDpQs\ +DpQvDpQyDpQ1DpQ4DpQ7DpQ+DpRCDpRFDpRIDpRLDpRODpRRDpRUDpRXDpRb\ +DpReDpRhDpRkDpRnDpRqDpRtDpRwDpR0DpR3DpR6DpR9DpSADpSDDpSGDpSK\ +DpSNDpSQDpSTDpSUDpKUDo+UDoyUDoiUDoWUDoKUDn+UDnyUDnmUDnaUDnOU\ +Dm+UDmyUDmmUDmaUDmOUDmCUDl2UDlqUDlaUDlOUDlCUDk2UDkqUDkeUDkSU\ +DkCUDj2UDjqUDjeUDjSUDjGUDi6UDiuUDieUDiSUDiGUDh6UDhuUDhiUDhWU\ +DhGbDw+bEg+bFg+bGQ+bHA+bHw+bIw+bJg+bKQ+bLQ+bMA+bMw+bNg+bOg+b\ +PQ+bQA+bRA+bRw+bSg+bTQ+bUQ+bVA+bVw+bWw+bXg+bYQ+bZA+baA+baw+b\ +bg+bcg+bdQ+beA+bew+bfw+bgg+bhQ+biQ+bjA+bjw+bkg+blg+bmQ+amw+X\ +mw+Tmw+Qmw+Nmw+Kmw+Gmw+Dmw+Amw99mw95mw92mw9zmw9vmw9smw9pmw9m\ +mw9imw9fmw9cmw9Ymw9Vmw9Smw9Pmw9Lmw9Imw9Fmw9Bmw8+mw87mw84mw80\ +mw8xmw8umw8qmw8nmw8kmw8hmw8dmw8amw8Xmw8Tmw8Qmw8PmxEPmxUPmxgP\ +mxsPmx4PmyIPmyUPmygPmywPmy8PmzIPmzUPmzkPmzwPmz8Pm0MPm0YPm0kP\ +m0wPm1APm1MPm1YPm1kPm10Pm2APm2MPm2cPm2oPm20Pm3APm3QPm3cPm3oP\ +m34Pm4EPm4QPm4cPm4sPm44Pm5EPm5UPm5gPm5sPmJsPlZsPkZsPjpsPi5sP\ +h5sPhJsPgZsPfpsPepsPd5sPdJsPcJsPbZsPapsPZ5sPY5sPYJsPXZsPWZsP\ +VpsPU5sPUJsPTJsPSZsPRpsPQ5sPP5sPPJsPOZsPNZsPMpsPL5sPLJsPKJsP\ +JZsPIpsPHpsPG5sPGJsPFZsPEZsQD5sTD5sXD5saD5sdD5shD5skD5snD5sq\ +D5suD5sxD5s0D5s4D5s7D5s+D5tBD5tFD5tID5tLD5tPD5tSD5tVD5tYD5tc\ +D5tfD5tiD5tmD5tpD5tsD5tvD5tzD5t2D5t5D5t9D5uAD5uDD5uGD5uKD5uN\ +D5uQD5uTD5uXD5uaD5ubD5mbD5abD5KbD4+bD4ybD4mbD4WbD4KbD3+bD3ub\ +D3ibD3WbD3KbD26bD2ubD2ibD2SbD2GbD16bD1ubD1ebD1SbD1GbD02bD0qb\ +D0ebD0SbD0CbDz2bDzqbDzabDzObDzCbDy2bDymbDyabDyObDx+bDxybDxmb\ +DxabDxKiEBCiExCiFxCiGhCiHhCiIRCiJBCiKBCiKxCiLxCiMhCiNhCiORCi\ +PBCiQBCiQxCiRxCiShCiThCiURCiVBCiWBCiWxCiXxCiYhCiZhCiaRCibRCi\ +cBCicxCidxCiehCifhCigRCihRCiiBCiixCijxCikhCilhCimRCinRCioBCh\ +ohCeohCaohCXohCTohCQohCNohCJohCGohCCohB/ohB7ohB4ohB1ohBxohBu\ +ohBqohBnohBjohBgohBcohBZohBWohBSohBPohBLohBIohBEohBBohA+ohA6\ +ohA3ohAzohAwohAsohApohAmohAiohAfohAbohAYohAUohARohAQohIQohYQ\ +ohkQohwQoiAQoiMQoicQoioQoi4QojEQojQQojgQojsQoj8QokIQokYQokkQ\ +okwQolAQolMQolcQoloQol4QomEQomQQomgQomsQom8QonIQonYQonkQon0Q\ +ooAQooMQoocQoooQoo4QopEQopUQopgQopsQop8QoqIQn6IQm6IQmKIQlaIQ\ +kaIQjqIQiqIQh6IQg6IQgKIQfaIQeaIQdqIQcqIQb6IQa6IQaKIQZKIQYaIQ\ +XqIQWqIQV6IQU6IQUKIQTKIQSaIQRqIQQqIQP6IQO6IQOKIQNKIQMaIQLqIQ\ +KqIQJ6IQI6IQIKIQHKIQGaIQFqIQEqIREKIUEKIYEKIbEKIfEKIiEKImEKIp\ +EKIsEKIwEKIzEKI3EKI6EKI+EKJBEKJEEKJIEKJLEKJPEKJSEKJWEKJZEKJc\ +EKJgEKJjEKJnEKJqEKJuEKJxEKJ1EKJ4EKJ7EKJ/EKKCEKKGEKKJEKKNEKKQ\ +EKKTEKKXEKKaEKKeEKKhEKKiEKCiEJ2iEJmiEJaiEJKiEI+iEIuiEIiiEIWi\ +EIGiEH6iEHqiEHeiEHOiEHCiEG2iEGmiEGaiEGKiEF+iEFuiEFiiEFSiEFGi\ +EE6iEEqiEEeiEEOiEECiEDyiEDmiEDaiEDKiEC+iECuiECiiECSiECGiEB6i\ +EBqiEBeiEBOpEBCpFBCpGBCpGxCpHxCpIhCpJhCpKhCpLRCpMRCpNBCpOBCp\ +PBCpPxCpQxCpRhCpShCpTRCpURCpVRCpWBCpXBCpXxCpYxCpZxCpahCpbhCp\ +cRCpdRCpeBCpfBCpgBCpgxCphxCpihCpjhCpkhCplRCpmRCpnBCpoBCppBCp\ +pxCoqRClqRChqRCeqRCaqRCWqRCTqRCPqRCMqRCIqRCEqRCBqRB9qRB6qRB2\ +qRBzqRBvqRBrqRBoqRBkqRBhqRBdqRBZqRBWqRBSqRBPqRBLqRBHqRBEqRBA\ +qRA9qRA5qRA2qRAyqRAuqRArqRAnqRAkqRAgqRAcqRAZqRAVqRASqRAQqRMQ\ +qRYQqRoQqR4QqSEQqSUQqSgQqSwQqTAQqTMQqTcQqToQqT4QqUIQqUUQqUkQ\ +qUwQqVAQqVMQqVcQqVsQqV4QqWIQqWUQqWkQqW0QqXAQqXQQqXcQqXsQqX4Q\ +qYIQqYYQqYkQqY0QqZAQqZQQqZgQqZsQqZ8QqaIQqaYQqakQpqkQoqkQn6kQ\ +m6kQmKkQlKkQkKkQjakQiakQhqkQgqkQfqkQe6kQd6kQdKkQcKkQbakQaakQ\ +ZakQYqkQXqkQW6kQV6kQU6kQUKkQTKkQSakQRakQQqkQPqkQOqkQN6kQM6kQ\ +MKkQLKkQKKkQJakQIakQHqkQGqkQFqkQE6kSEKkVEKkZEKkcEKkgEKkkEKkn\ +EKkrEKkuEKkyEKk2EKk5EKk9EKlAEKlEEKlHEKlLEKlPEKlSEKlWEKlZEKld\ +EKlhEKlkEKloEKlrEKlvEKlzEKl2EKl6EKl9EKmBEKmEEKmIEKmMEKmPEKmT\ +EKmWEKmaEKmeEKmhEKmlEKmoEKmpEKepEKSpEKCpEJypEJmpEJWpEJKpEI6p\ +EIqpEIepEIOpEICpEHypEHipEHWpEHGpEG6pEGqpEGepEGOpEF+pEFypEFip\ +EFWpEFGpEE2pEEqpEEapEEOpED+pEDypEDipEDSpEDGpEC2pECqpECapECKp\ +EB+pEBupEBipEBSxERGxFRGxGRGxHBGxIBGxJBGxKBGxKxGxLxGxMxGxNxGx\ +OhGxPhGxQhGxRhGxSRGxTRGxURGxVBGxWBGxXBGxYBGxYxGxZxGxaxGxbxGx\ +chGxdhGxehGxfhGxgRGxhRGxiRGxjRGxkBGxlBGxmBGxmxGxnxGxoxGxpxGx\ +qhGxrhGvsRGssRGosRGksRGgsRGdsRGZsRGVsRGSsRGOsRGKsRGGsRGDsRF/\ +sRF7sRF3sRF0sRFwsRFssRFosRFlsRFhsRFdsRFZsRFWsRFSsRFOsRFLsRFH\ +sRFDsRE/sRE8sRE4sRE0sREwsREtsREpsRElsREhsREesREasREWsRESsRER\ +sRQRsRcRsRsRsR8RsSMRsSYRsSoRsS4RsTIRsTURsTkRsT0RsUERsUQRsUgR\ +sUwRsU8RsVMRsVcRsVsRsV4RsWIRsWYRsWoRsW0RsXERsXURsXkRsXwRsYAR\ +sYQRsYgRsYsRsY8RsZMRsZYRsZoRsZ4RsaIRsaURsakRsa0RsbERrbERqbER\ +pbERorERnrERmrERlrERk7ERj7ERi7ERiLERhLERgLERfLERebERdbERcbER\ +bbERarERZrERYrERXrERW7ERV7ERU7ERT7ERTLERSLERRLERQbERPbERObER\ +NbERMrERLrERKrERJrERI7ERH7ERG7ERF7ERFLESEbEWEbEaEbEeEbEhEbEl\ +EbEpEbEtEbEwEbE0EbE4EbE8EbE/EbFDEbFHEbFLEbFOEbFSEbFWEbFZEbFd\ +EbFhEbFlEbFoEbFsEbFwEbF0EbF3EbF7EbF/EbGDEbGGEbGKEbGOEbGSEbGV\ +EbGZEbGdEbGgEbGkEbGoEbGsEbGvEbGxEa6xEaqxEaexEaOxEZ+xEZuxEZix\ +EZSxEZCxEY2xEYmxEYWxEYGxEX6xEXqxEXaxEXKxEW+xEWuxEWexEWOxEWCx\ +EVyxEVixEVSxEVGxEU2xEUmxEUaxEUKxET6xETqxETexETOxES+xESuxESix\ +ESSxESCxERyxERmxERW4EhK4FhK4GhK4HhK4IRK4JRK4KRK4LRK4MRK4NRK4\ +ORK4PRK4QRK4RBK4SBK4TBK4UBK4VBK4WBK4XBK4YBK4ZBK4ZxK4axK4bxK4\ +cxK4dxK4exK4fxK4gxK4hxK4ihK4jhK4khK4lhK4mhK4nhK4ohK4phK4qhK4\ +rRK4sRK4tRK3uBKzuBKvuBKruBKnuBKjuBKfuBKbuBKXuBKUuBKQuBKMuBKI\ +uBKEuBKAuBJ8uBJ4uBJ0uBJxuBJtuBJpuBJluBJhuBJduBJZuBJVuBJRuBJO\ +uBJKuBJGuBJCuBI+uBI6uBI2uBIyuBIuuBIruBInuBIjuBIfuBIbuBIXuBIT\ +uBISuBUSuBgSuBwSuCASuCQSuCgSuCwSuDASuDQSuDgSuDsSuD8SuEMSuEcS\ +uEsSuE8SuFMSuFcSuFsSuF4SuGISuGYSuGoSuG4SuHISuHYSuHoSuH4SuIES\ +uIUSuIkSuI0SuJESuJUSuJkSuJ0SuKASuKQSuKgSuKwSuLASuLQSuLgStLgS\ +sLgSrLgSqLgSpLgSoLgSnbgSmbgSlbgSkbgSjbgSibgShbgSgbgSfrgSergS\ +drgScrgSbrgSargSZrgSYrgSXrgSW7gSV7gSU7gST7gSS7gSR7gSQ7gSP7gS\ +O7gSOLgSNLgSMLgSLLgSKLgSJLgSILgSHLgSGLgSFbgTErgXErgbErgfErgj\ +ErgnErgrErguErgyErg2Erg6Erg+ErhCErhGErhKErhOErhRErhVErhZErhd\ +ErhhErhlErhpErhtErhxErh0Erh4Erh8EriAEriEEriIEriMEriQEriUEriX\ +EribErifErijErinErirErivErizEri3Eri4ErW4ErG4Eq24Eqq4Eqa4EqK4\ +Ep64Epq4Epa4EpK4Eo64Eoq4Eoe4EoO4En+4Enu4Ene4EnO4Em+4Emu4Eme4\ +EmS4EmC4Ely4Eli4ElS4ElC4Eky4Eki4EkS4EkG4Ej24Ejm4EjW4EjG4Ei24\ +Eim4EiW4EiG4Eh64Ehq4Eha/ExO/FxO/GxO/HxO/IxO/JxO/KxO/LxO/MxO/\ +NxO/OxO/PxO/QxO/RxO/SxO/TxO/UxO/VxO/WxO/XxO/YxO/ZxO/bBO/cBO/\ +dBO/eBO/fBO/gBO/hBO/iBO/jBO/kBO/lBO/mBO/nBO/oBO/pBO/qBO/rBO/\ +sBO/tBO/uBO/vBO+vxO6vxO2vxOyvxOtvxOpvxOlvxOhvxOdvxOZvxOVvxOR\ +vxONvxOJvxOFvxOBvxN9vxN5vxN1vxNxvxNtvxNpvxNlvxNhvxNdvxNZvxNV\ +vxNRvxNNvxNJvxNEvxNAvxM8vxM4vxM0vxMwvxMsvxMovxMkvxMgvxMcvxMY\ +vxMUvxMTvxUTvxkTvx0TvyETvyUTvyoTvy4TvzITvzYTvzoTvz4Tv0ITv0YT\ +v0oTv04Tv1ITv1YTv1oTv14Tv2ITv2YTv2oTv24Tv3ITv3YTv3oTv34Tv4IT\ +v4YTv4oTv48Tv5MTv5cTv5sTv58Tv6MTv6cTv6sTv68Tv7MTv7cTv7sTv78T\ +u78Tt78Ts78Tr78Tq78Tp78To78Tn78Tm78Tl78Tk78Tj78Tir8Thr8Tgr8T\ +fr8Ter8Tdr8Tcr8Tbr8Tar8TZr8TYr8TXr8TWr8TVr8TUr8TTr8TSr8TRr8T\ +Qr8TPr8TOr8TNr8TMr8TLr8TKr8TJb8TIb8THb8TGb8TFb8UE78YE78cE78g\ +E78kE78oE78sE78wE780E784E788E79AE79EE79JE79NE79RE79VE79ZE79d\ +E79hE79lE79pE79tE79xE791E795E799E7+BE7+FE7+JE7+NE7+RE7+VE7+Z\ +E7+dE7+hE7+lE7+pE7+tE7+yE7+2E7+6E7++E7+/E7y/E7i/E7S/E7C/E6y/\ +E6i/E6S/E6C/E5y/E5i/E5S/E5C/E4y/E4i/E4S/E4C/E3y/E3i/E3S/E3C/\ +E2y/E2e/E2O/E1+/E1u/E1e/E1O/E0+/E0u/E0e/E0O/Ez+/Ezu/Eze/EzO/\ +Ey+/Eyu/Eye/EyO/Ex+/Exu/ExfGExPGGBPGHBPGIBPGJBPGKBPGLRPGMRPG\ +NRPGORPGPRPGQRPGRhPGShPGThPGUhPGVhPGWxPGXxPGYxPGZxPGaxPGcBPG\ +dBPGeBPGfBPGgBPGhRPGiRPGjRPGkRPGlRPGmRPGnhPGohPGphPGqhPGrhPG\ +sxPGtxPGuxPGvxPGwxPFxhPBxhO8xhO4xhO0xhOwxhOsxhOnxhOjxhOfxhOb\ +xhOXxhOSxhOOxhOKxhOGxhOCxhN+xhN5xhN1xhNxxhNtxhNpxhNkxhNgxhNc\ +xhNYxhNUxhNPxhNLxhNHxhNDxhM/xhM6xhM2xhMyxhMuxhMqxhMmxhMhxhMd\ +xhMZxhMVxhMTxhYTxhoTxh8TxiMTxicTxisTxi8TxjMTxjgTxjwTxkATxkQT\ +xkgTxk0TxlETxlUTxlkTxl0TxmITxmYTxmoTxm4TxnITxncTxnsTxn8TxoMT\ +xocTxosTxpATxpQTxpgTxpwTxqATxqUTxqkTxq0TxrETxrUTxroTxr4TxsIT\ +xsYTwsYTvsYTusYTtcYTscYTrcYTqcYTpcYToMYTnMYTmMYTlMYTkMYTi8YT\ +h8YTg8YTf8YTe8YTd8YTcsYTbsYTasYTZsYTYsYTXcYTWcYTVcYTUcYTTcYT\ +SMYTRMYTQMYTPMYTOMYTM8YTL8YTK8YTJ8YTI8YTH8YTGsYTFsYVE8YZE8Yd\ +E8YhE8YmE8YqE8YuE8YyE8Y2E8Y6E8Y/E8ZDE8ZHE8ZLE8ZPE8ZUE8ZYE8Zc\ +E8ZgE8ZkE8ZpE8ZtE8ZxE8Z1E8Z5E8Z+E8aCE8aGE8aKE8aOE8aSE8aXE8ab\ +E8afE8ajE8anE8asE8awE8a0E8a4E8a8E8bBE8bFE8bGE8PGE7/GE7vGE7fG\ +E7PGE67GE6rGE6bGE6LGE57GE5nGE5XGE5HGE43GE4nGE4XGE4DGE3zGE3jG\ +E3TGE3DGE2vGE2fGE2PGE1/GE1vGE1bGE1LGE07GE0rGE0bGE0HGEz3GEznG\ +EzXGEzHGEy3GEyjGEyTGEyDGExzGExjNFBTNGBTNHRTNIRTNJRTNKhTNLhTN\ +MhTNNxTNOxTNPxTNRBTNSBTNTRTNURTNVRTNWhTNXhTNYhTNZxTNaxTNbxTN\ +dBTNeBTNfBTNgRTNhRTNiRTNjhTNkhTNlhTNmxTNnxTNoxTNqBTNrBTNsBTN\ +tRTNuRTNvRTNwhTNxhTNyhTMzRTIzRTDzRS/zRS7zRS2zRSyzRStzRSpzRSl\ +zRSgzRSczRSYzRSTzRSPzRSLzRSGzRSCzRR+zRR5zRR1zRRxzRRszRRozRRk\ +zRRfzRRbzRRXzRRSzRROzRRKzRRFzRRBzRQ9zRQ4zRQ0zRQwzRQrzRQnzRQj\ +zRQezRQazRQWzRQUzRcUzRsUzSAUzSQUzSgUzS0UzTEUzTUUzToUzT4UzUIU\ +zUcUzUsUzU8UzVQUzVgUzVwUzWEUzWUUzWkUzW4UzXIUzXYUzXsUzX8UzYQU\ +zYgUzYwUzZEUzZUUzZkUzZ4UzaIUzaYUzasUza8UzbMUzbgUzbwUzcAUzcUU\ +zckUzc0Uyc0Uxc0UwM0UvM0UuM0Us80Ur80Uq80Ups0Uos0Uns0Umc0Ulc0U\ +kc0UjM0UiM0UhM0Uf80Ue80Uds0Ucs0Ubs0Uac0UZc0UYc0UXM0UWM0UVM0U\ +T80US80UR80UQs0UPs0UOs0UNc0UMc0ULc0UKM0UJM0UIM0UG80UF80WFM0a\ +FM0eFM0jFM0nFM0rFM0wFM00FM04FM09FM1BFM1FFM1KFM1OFM1SFM1XFM1b\ +FM1fFM1kFM1oFM1sFM1xFM11FM15FM1+FM2CFM2GFM2LFM2PFM2TFM2YFM2c\ +FM2gFM2lFM2pFM2tFM2yFM22FM27FM2/FM3DFM3IFM3MFM3NFMrNFMbNFMLN\ +FL3NFLnNFLXNFLDNFKzNFKjNFKPNFJ/NFJvNFJbNFJLNFI7NFInNFIXNFIHN\ +FHzNFHjNFHTNFG/NFGvNFGfNFGLNFF7NFFrNFFXNFFHNFE3NFEjNFETNFD/N\ +FDvNFDfNFDLNFC7NFCrNFCXNFCHNFB3NFBjUFRXUGRXUHhXUIhXUJxXUKxXU\ +MBXUNBXUORXUPRXUQhXURhXUSxXUTxXUVBXUWBXUXRXUYRXUZhXUahXUbxXU\ +cxXUeBXUfBXUgRXUhRXUihXUjhXUkxXUlxXUnBXUoBXUpRXUqRXUrhXUshXU\ +txXUuxXUwBXUxBXUyRXUzRXU0RXT1BXP1BXK1BXG1BXB1BW91BW41BW01BWv\ +1BWr1BWm1BWi1BWd1BWZ1BWU1BWQ1BWL1BWH1BWC1BV+1BV51BV11BVw1BVs\ +1BVn1BVj1BVe1BVa1BVV1BVR1BVM1BVI1BVD1BU/1BU61BU21BUx1BUt1BUo\ +1BUk1BUf1BUb1BUW1BUV1BgV1BwV1CEV1CUV1CoV1C4V1DMV1DcV1DwV1EAV\ +1EUV1EkV1E4V1FIV1FcV1FsV1GAV1GQV1GkV1G0V1HIV1HYV1HsV1H8V1IQV\ +1IgV1I0V1JEV1JYV1JoV1J8V1KMV1KgV1KwV1LEV1LUV1LoV1L4V1MMV1McV\ +1MwV1NAV1NQV0NQVzNQVx9QVw9QVvtQVutQVtdQVsdQVrNQVqNQVo9QVn9QV\ +mtQVltQVkdQVjdQViNQVhNQVf9QVe9QVdtQVctQVbdQVadQVZNQVYNQVW9QV\ +V9QVUtQVTtQVSdQVRdQVQNQVPNQVN9QVM9QVLtQVKtQVJdQVIdQVHNQVGNQW\ +FdQbFdQfFdQkFdQoFdQtFdQxFdQ2FdQ6FdQ/FdRDFdRIFdRMFdRRFdRVFdRa\ +FdReFdRjFdRnFdRsFdRwFdR1FdR5FdR+FdSCFdSHFdSLFdSQFdSUFdSZFdSd\ +FdSiFdSmFdSrFdSvFdS0FdS4FdS9FdTBFdTGFdTKFdTPFdTTFdTUFdHUFc3U\ +FcnUFcTUFcDUFbvUFbfUFbLUFa7UFanUFaXUFaDUFZzUFZfUFZPUFY7UFYrU\ +FYXUFYHUFXzUFXjUFXPUFW/UFWrUFWbUFWHUFV3UFVjUFVTUFU/UFUvUFUbU\ +FULUFT3UFTnUFTTUFTDUFSvUFSfUFSLUFR7UFRncFhbcGhbcHxbcIxbcKBbc\ +LRbcMRbcNhbcOxbcPxbcRBbcSRbcTRbcUhbcVxbcWxbcYBbcZBbcaRbcbhbc\ +chbcdxbcfBbcgBbchRbcihbcjhbckxbcmBbcnBbcoRbcpRbcqhbcrxbcsxbc\ +uBbcvRbcwRbcxhbcyxbczxbc1Bbc2Rba3BbV3BbR3BbM3BbI3BbD3Ba+3Ba6\ +3Ba13Baw3Bas3Ban3Bai3Bae3BaZ3BaU3BaQ3BaL3BaH3BaC3BZ93BZ53BZ0\ +3BZv3BZr3BZm3BZh3BZd3BZY3BZT3BZP3BZK3BZG3BZB3BY83BY43BYz3BYu\ +3BYq3BYl3BYg3BYc3BYX3BYW3BkW3B0W3CIW3CcW3CsW3DAW3DQW3DkW3D4W\ +3EIW3EcW3EwW3FAW3FUW3FoW3F4W3GMW3GgW3GwW3HEW3HUW3HoW3H8W3IMW\ +3IgW3I0W3JEW3JYW3JsW3J8W3KQW3KkW3K0W3LIW3LcW3LsW3MAW3MQW3MkW\ +3M4W3NIW3NcW3NwW19wW0twWztwWydwWxNwWwNwWu9wWt9wWstwWrdwWqdwW\ +pNwWn9wWm9wWltwWkdwWjdwWiNwWg9wWf9wWetwWddwWcdwWbNwWaNwWY9wW\ +XtwWWtwWVdwWUNwWTNwWR9wWQtwWPtwWOdwWNNwWMNwWK9wWJ9wWItwWHdwW\ +GdwXFtwcFtwgFtwlFtwqFtwuFtwzFtw4Ftw8FtxBFtxGFtxKFtxPFtxTFtxY\ +FtxdFtxhFtxmFtxrFtxvFtx0Ftx5Ftx9FtyCFtyHFtyLFtyQFtyUFtyZFtye\ +FtyiFtynFtysFtywFty1Fty6Fty+FtzDFtzIFtzMFtzRFtzVFtzaFtzcFtnc\ +FtTcFs/cFsvcFsbcFsHcFr3cFrjcFrPcFq/cFqrcFqXcFqHcFpzcFpjcFpPc\ +Fo7cForcFoXcFoDcFnzcFnfcFnLcFm7cFmncFmTcFmDcFlvcFlfcFlLcFk3c\ +FkncFkTcFj/cFjvcFjbcFjHcFi3cFijcFiPcFh/cFhrjFhbjGxbjIBbjJRbj\ +KRbjLhbjMxbjOBbjPRbjQRbjRhbjSxbjUBbjVRbjWRbjXhbjYxbjaBbjbRbj\ +cRbjdhbjexbjgBbjhRbjiRbjjhbjkxbjmBbjnBbjoRbjphbjqxbjsBbjtBbj\ +uRbjvhbjwxbjyBbjzBbj0Rbj1hbj2xbj4Bbh4xbc4xbY4xbT4xbO4xbJ4xbE\ +4xbA4xa74xa24xax4xas4xao4xaj4xae4xaZ4xaV4xaQ4xaL4xaG4xaB4xZ9\ +4xZ44xZz4xZu4xZp4xZl4xZg4xZb4xZW4xZR4xZN4xZI4xZD4xY+4xY54xY1\ +4xYw4xYr4xYm4xYh4xYd4xYY4xYW4xkW4x4W4yMW4ygW4y0W4zEW4zYW4zsW\ +40AW40UW40kW404W41MW41gW410W42EW42YW42sW43AW43UW43kW434W44MW\ +44gW440W45EW45YW45sW46AW46QW46kW464W47MW47gW47wW48EW48YW48sW\ +49AW49QW49kW494W4+MW3uMW2eMW1OMW0OMWy+MWxuMWweMWvOMWuOMWs+MW\ +ruMWqeMWpOMWoOMWm+MWluMWkeMWjeMWiOMWg+MWfuMWeeMWdeMWcOMWa+MW\ +ZuMWYeMWXeMWWOMWU+MWTuMWSeMWReMWQOMWO+MWNuMWMeMWLeMWKOMWI+MW\ +HuMWGeMYFuMdFuMhFuMmFuMrFuMwFuM1FuM5FuM+FuNDFuNIFuNNFuNRFuNW\ +FuNbFuNgFuNlFuNpFuNuFuNzFuN4FuN9FuOBFuOGFuOLFuOQFuOVFuOZFuOe\ +FuOjFuOoFuOsFuOxFuO2FuO7FuPAFuPEFuPJFuPOFuPTFuPYFuPcFuPhFuPj\ +FuDjFtvjFtbjFtHjFszjFsjjFsPjFr7jFrnjFrTjFrDjFqvjFqbjFqHjFpzj\ +FpjjFpPjFo7jFonjFoXjFoDjFnvjFnbjFnHjFm3jFmjjFmPjFl7jFlnjFlXj\ +FlDjFkvjFkbjFkHjFj3jFjjjFjPjFi7jFinjFiXjFiDjFhvqFxfqHBfqIRfq\ +JhfqKxfqMBfqNRfqOhfqPxfqQxfqSBfqTRfqUhfqVxfqXBfqYRfqZhfqaxfq\ +cBfqdRfqehfqfxfqhBfqiRfqjhfqkxfqmBfqnRfqoRfqphfqqxfqsBfqtRfq\ +uhfqvxfqxBfqyRfqzhfq0xfq2Bfq3Rfq4hfq5xfo6hfj6hfe6hfa6hfV6hfQ\ +6hfL6hfG6hfB6he86he36hey6het6heo6hej6hee6heZ6heU6heP6heK6heF\ +6heA6hd86hd36hdy6hdt6hdo6hdj6hde6hdZ6hdU6hdP6hdK6hdF6hdA6hc7\ +6hc26hcx6hcs6hcn6hci6hce6hcZ6hcX6hoX6h8X6iQX6ikX6i4X6jMX6jgX\ +6j0X6kIX6kcX6kwX6lEX6lYX6lsX6l8X6mQX6mkX6m4X6nMX6ngX6n0X6oIX\ +6ocX6owX6pEX6pYX6psX6qAX6qUX6qoX6q8X6rQX6rkX6r0X6sIX6scX6swX\ +6tEX6tYX6tsX6uAX6uUX6uoX5eoX4OoX2+oX1uoX0eoXzOoXx+oXwuoXveoX\ +ueoXtOoXr+oXquoXpeoXoOoXm+oXluoXkeoXjOoXh+oXguoXfeoXeOoXc+oX\ +buoXaeoXZOoXX+oXW+oXVuoXUeoXTOoXR+oXQuoXPeoXOOoXM+oXLuoXKeoX\ +JOoXH+oXGuoZF+oeF+oiF+onF+osF+oxF+o2F+o7F+pAF+pFF+pKF+pPF+pU\ +F+pZF+peF+pjF+poF+ptF+pyF+p3F+p8F+qAF+qFF+qKF+qPF+qUF+qZF+qe\ +F+qjF+qoF+qtF+qyF+q3F+q8F+rBF+rGF+rLF+rQF+rVF+raF+reF+rjF+ro\ +F+rqF+fqF+LqF93qF9jqF9PqF87qF8nqF8TqF7/qF7rqF7XqF7DqF6vqF6bq\ +F6HqF53qF5jqF5PqF47qF4nqF4TqF3/qF3rqF3XqF3DqF2vqF2bqF2HqF1zq\ +F1fqF1LqF03qF0jqF0PqFz/qFzrqFzXqFzDqFyvqFybqFyHqFxzxGBjxHRjx\ +IhjxJxjxLBjxMRjxNhjxOxjxQBjxRhjxSxjxUBjxVRjxWhjxXxjxZBjxaRjx\ +bhjxcxjxeRjxfhjxgxjxiBjxjRjxkhjxlxjxnBjxoRjxphjxqxjxsRjxthjx\ +uxjxwBjxxRjxyhjxzxjx1Bjx2Rjx3hjx5Bjx6Rjx7hjv8Rjq8Rjl8Rjg8Rjb\ +8RjW8RjR8RjM8RjH8RjC8Ri88Ri38Riy8Rit8Rio8Rij8Rie8RiZ8RiU8RiP\ +8RiK8RiE8Rh/8Rh68Rh18Rhw8Rhr8Rhm8Rhh8Rhc8RhX8RhR8RhM8RhH8RhC\ +8Rg98Rg48Rgz8Rgu8Rgp8Rgk8Rge8RgZ8RgY8RsY8SAY8SUY8SoY8S8Y8TUY\ +8ToY8T8Y8UQY8UkY8U4Y8VMY8VgY8V0Y8WIY8WgY8W0Y8XIY8XcY8XwY8YEY\ +8YYY8YsY8ZAY8ZUY8ZsY8aAY8aUY8aoY8a8Y8bQY8bkY8b4Y8cMY8cgY8c0Y\ +8dMY8dgY8d0Y8eIY8ecY8ewY8fEY7PEY5/EY4vEY3fEY2PEY0/EYzfEYyPEY\ +w/EYvvEYufEYtPEYr/EYqvEYpfEYoPEYm/EYlfEYkPEYi/EYhvEYgfEYfPEY\ +d/EYcvEYbfEYaPEYYvEYXfEYWPEYU/EYTvEYSfEYRPEYP/EYOvEYNfEYL/EY\ +KvEYJfEYIPEYG/EZGPEeGPEkGPEpGPEuGPEzGPE4GPE9GPFCGPFHGPFMGPFR\ +GPFXGPFcGPFhGPFmGPFrGPFwGPF1GPF6GPF/GPGEGPGKGPGPGPGUGPGZGPGe\ +GPGjGPGoGPGtGPGyGPG3GPG8GPHCGPHHGPHMGPHRGPHWGPHbGPHgGPHlGPHq\ +GPHvGPHxGO7xGOnxGOTxGN7xGNnxGNTxGM/xGMrxGMXxGMDxGLvxGLbxGLHx\ +GKvxGKbxGKHxGJzxGJfxGJLxGI3xGIjxGIPxGH7xGHnxGHPxGG7xGGnxGGTx\ +GF/xGFrxGFXxGFDxGEvxGEbxGEDxGDvxGDbxGDHxGCzxGCfxGCLxGB34GBj4\ +Hhj4Ixj4KBj4LRj4Mxj4OBj4PRj4Qhj4SBj4TRj4Uhj4Vxj4XRj4Yhj4Zxj4\ +bBj4chj4dxj4fBj4gRj4hxj4jBj4kRj4lhj4nBj4oRj4phj4qxj4sRj4thj4\ +uxj4wBj4xhj4yxj40Bj41Rj42xj44Bj45Rj46hj48Bj49Rj3+Bjx+Bjs+Bjn\ ++Bji+Bjc+BjX+BjS+BjN+BjH+BjC+Bi9+Bi4+Biy+Bit+Bio+Bij+Bid+BiY\ ++BiT+BiO+BiI+BiD+Bh++Bh5+Bhz+Bhu+Bhp+Bhk+Bhe+BhZ+BhU+BhP+BhJ\ ++BhE+Bg/+Bg6+Bg0+Bgv+Bgq+Bgl+Bgf+Bga+BgY+BwY+CEY+CYY+CwY+DEY\ ++DYY+DsY+EEY+EYY+EsY+FAY+FYY+FsY+GAY+GUY+GsY+HAY+HUY+HoY+IAY\ ++IUY+IoY+I8Y+JUY+JoY+J8Y+KQY+KoY+K8Y+LQY+LkY+L8Y+MQY+MkY+M4Y\ ++NQY+NkY+N4Y+OMY+OkY+O4Y+PMY+PgY8/gY7vgY6fgY4/gY3vgY2fgY1PgY\ +zvgYyfgYxPgYv/gYufgYtPgYr/gYqvgYpPgYn/gYmvgYlfgYj/gYivgYhfgY\ +gPgYevgYdfgYcPgYa/gYZfgYYPgYW/gYVvgYUPgYS/gYRvgYQfgYO/gYNvgY\ +MfgYLPgYJvgYIfgYHPgaGPgfGPglGPgqGPgvGPg0GPg6GPg/GPhEGPhJGPhP\ +GPhUGPhZGPheGPhkGPhpGPhuGPhzGPh5GPh+GPiDGPiIGPiOGPiTGPiYGPid\ +GPijGPioGPitGPiyGPi4GPi9GPjCGPjHGPjNGPjSGPjXGPjcGPjiGPjnGPjs\ +GPjxGPj3GPj4GPX4GPD4GOr4GOX4GOD4GNv4GNX4GND4GMv4GMb4GMD4GLv4\ +GLb4GLH4GKv4GKb4GKH4GJz4GJb4GJH4GIz4GIf4GIH4GHz4GHf4GHL4GGz4\ +GGf4GGL4GF34GFf4GFL4GE34GEj4GEL4GD34GDj4GDP4GC34GCj4GCP4GB74\ +GBj4Hhj4Ixj4KBj4LRj4Mxj4OBj4PRj4Qhj4SBj4TRj4Uhj4Vxj4XRj4Yhj4\ +Zxj4bBj4chj4dxj4fBj4gRj4hxj4jBj4kRj4lhj4nBj4oRj4phj4qxj4sRj4\ +thj4uxj4wBj4xhj4yxj40Bj41Rj42xj44Bj45Rj46hj48Bj49Rj3+Bjx+Bjs\ ++Bjn+Bji+Bjc+BjX+BjS+BjN+BjH+BjC+Bi9+Bi4+Biy+Bit+Bio+Bij+Bid\ ++BiY+BiT+BiO+BiI+BiD+Bh++Bh5+Bhz+Bhu+Bhp+Bhk+Bhe+BhZ+BhU+BhP\ ++BhJ+BhE+Bg/+Bg6+Bg0+Bgv+Bgq+Bgl+Bgf+Bga+BgY+BwY+CEY+CYY+CwY\ ++DEY+DYY+DsY+EEY+EYY+EsY+FAY+FYY+FsY+GAY+GUY+GsY+HAY+HUY+HoY\ ++IAY+IUY+IoY+I8Y+JUY+JoY+J8Y+KQY+KoY+K8Y+LQY+LkY+L8Y+MQY+MkY\ ++M4Y+NQY+NkY+N4Y+OMY+OkY+O4Y+PMY+PgY8/gY7vgY6fgY4/gY3vgY2fgY\ +1PgYzvgYyfgYxPgYv/gYufgYtPgYr/gYqvgYpPgYn/gYmvgYlfgYj/gYivgY\ +hfgYgPgYevgYdfgYcPgYa/gYZfgYYPgYW/gYVvgYUPgYS/gYRvgYQfgYO/gY\ +NvgYMfgYLPgYJvgYIfgYHPgaGPgfGPglGPgqGPgvGPg0GPg6GPg/GPhEGPhJ\ +GPhPGPhUGPhZGPheGPhkGPhpGPhuGPhzGPh5GPh+GPiDGPiIGPiOGPiTGPiY\ +GPidGPijGPioGPitGPiyGPi4GPi9GPjCGPjHGPjNGPjSGPjXGPjcGPjiGPjn\ +GPjsGPjxGPj3GPj4GPX4GPD4GOr4GOX4GOD4GNv4GNX4GND4GMv4GMb4GMD4\ +GLv4GLb4GLH4GKv4GKb4GKH4GJz4GJb4GJH4GIz4GIf4GIH4GHz4GHf4GHL4\ +GGz4GGf4GGL4GF34GFf4GFL4GE34GEj4GEL4GD34GDj4GDP4GC34GCj4GCP4\ +GB74ISH4JiH4KyH4MCH4NSH4OyH4QCH4RSH4SiH4TyH4VCH4WSH4XiH4YyH4\ +aCH4bSH4ciH4dyH4fCH4gSH4hiH4iyH4kCH4lSH4miH4nyH4pCH4qSH4riH4\ +syH4uSH4viH4wyH4yCH4zSH40iH41yH43CH44SH45iH46yH48CH49SH3+CHy\ ++CHt+CHo+CHi+CHd+CHY+CHT+CHO+CHJ+CHE+CG/+CG6+CG1+CGw+CGr+CGm\ ++CGh+CGc+CGX+CGS+CGN+CGI+CGD+CF++CF5+CF0+CFv+CFq+CFl+CFf+CFa\ ++CFV+CFQ+CFL+CFG+CFB+CE8+CE3+CEy+CEt+CEo+CEj+CEh+CUh+Coh+C8h\ ++DQh+Dkh+D4h+EMh+Egh+E0h+FIh+Fch+Fwh+GEh+GYh+Gsh+HAh+HUh+Hoh\ ++H8h+IQh+Ikh+I8h+JQh+Jkh+J4h+KMh+Kgh+K0h+LIh+Lch+Lwh+MEh+MYh\ ++Msh+NAh+NUh+Noh+N8h+OQh+Okh+O4h+PMh+Pgh8/gh7vgh6fgh5Pgh3/gh\ +2vgh1fgh0Pghy/ghxvghwfghvPght/ghsvghrfghqPgho/ghnvghmfghlPgh\ +j/ghifghhPghf/ghevghdfghcPgha/ghZvghYfghXPghV/ghUvghTfghSPgh\ +Q/ghPvghOfghNPghL/ghKvghJfgjIfgoIfgtIfgyIfg3Ifg8IfhBIfhGIfhL\ +IfhQIfhVIfhaIfhfIfhlIfhqIfhvIfh0Ifh5Ifh+IfiDIfiIIfiNIfiSIfiX\ +IficIfihIfimIfirIfiwIfi1Ifi6Ifi/IfjEIfjJIfjOIfjTIfjYIfjdIfji\ +IfjoIfjtIfjyIfj3Ifj4IfX4IfD4Iev4Ieb4IeH4Idz4Idf4IdL4Ic34Icj4\ +IcP4Ib74Ibn4IbP4Ia74Ian4IaT4IZ/4IZr4IZX4IZD4IYv4IYb4IYH4IXz4\ +IXf4IXL4IW34IWj4IWP4IV74IVn4IVT4IU/4IUr4IUX4IUD4ITv4ITX4ITD4\ +ISv4ISb4Kir4Lyr4NCr4OSr4Pir4Qir4Ryr4TCr4USr4Vir4Wyr4Xyr4ZCr4\ +aSr4bir4cyr4eCr4fCr4gSr4hir4iyr4kCr4lSr4mSr4nir4oyr4qCr4rSr4\ +sir4tir4uyr4wCr4xSr4yir4zir40yr42Cr43Sr44ir45yr46yr48Cr49Sr3\ ++Cry+Crt+Cro+Crj+Crf+Cra+CrV+CrQ+CrL+CrG+CrC+Cq9+Cq4+Cqz+Cqu\ ++Cqp+Cql+Cqg+Cqb+CqW+CqR+CqM+CqI+CqD+Cp++Cp5+Cp0+Cpw+Cpr+Cpm\ ++Cph+Cpc+CpX+CpT+CpO+CpJ+CpE+Co/+Co6+Co2+Cox+Cos+Coq+C4q+DIq\ ++Dcq+Dwq+EEq+EYq+Eoq+E8q+FQq+Fkq+F4q+GMq+Gcq+Gwq+HEq+HYq+Hsq\ ++IAq+IQq+Ikq+I4q+JMq+Jgq+J0q+KEq+KYq+Ksq+LAq+LUq+Loq+L4q+MMq\ ++Mgq+M0q+NIq+Ncq+Nsq+OAq+OUq+Ooq+O8q+PQq+Pgq9Pgq7/gq6vgq5fgq\ +4Pgq2/gq1/gq0vgqzfgqyPgqw/gqvvgquvgqtfgqsPgqq/gqpvgqofgqnfgq\ +mPgqk/gqjvgqifgqhPgqgPgqe/gqdvgqcfgqbPgqZ/gqY/gqXvgqWfgqVPgq\ +T/gqSvgqRvgqQfgqPPgqN/gqMvgqLvgsKvgxKvg2Kvg6Kvg/KvhEKvhJKvhO\ +KvhTKvhXKvhcKvhhKvhmKvhrKvhwKvh0Kvh5Kvh+KviDKviIKviMKviRKviW\ +KvibKvigKvilKvipKviuKvizKvi4Kvi9KvjCKvjGKvjLKvjQKvjVKvjaKvjf\ +KvjjKvjoKvjtKvjyKvj3Kvj4KvX4KvD4Kuv4Kuf4KuL4Kt34Ktj4KtP4Ks74\ +Ksr4KsX4KsD4Krv4Krb4KrL4Kq34Kqj4KqP4Kp74Kpn4KpX4KpD4Kov4Kob4\ +KoH4Knz4Knj4KnP4Km74Kmn4KmT4Kl/4Klv4Klb4KlH4Kkz4Kkf4KkL4Kj74\ +Kjn4KjT4Ki/4MzP4ODP4PDP4QTP4RjP4SjP4TzP4VDP4WDP4XTP4YTP4ZjP4\ +azP4bzP4dDP4eTP4fTP4gjP4hjP4izP4kDP4lDP4mTP4nTP4ojP4pzP4qzP4\ +sDP4tTP4uTP4vjP4wjP4xzP4zDP40DP41TP42jP43jP44zP45zP47DP48TP4\ +9TP3+DPy+DPu+DPp+DPk+DPg+DPb+DPW+DPS+DPN+DPJ+DPE+DO/+DO7+DO2\ ++DOy+DOt+DOo+DOk+DOf+DOa+DOW+DOR+DON+DOI+DOD+DN/+DN6+DN1+DNx\ ++DNs+DNo+DNj+DNe+DNa+DNV+DNR+DNM+DNH+DND+DM++DM5+DM1+DMz+DYz\ ++Dsz+EAz+EQz+Ekz+E0z+FIz+Fcz+Fsz+GAz+GUz+Gkz+G4z+HIz+Hcz+Hwz\ ++IAz+IUz+Ikz+I4z+JMz+Jcz+Jwz+KEz+KUz+Koz+K4z+LMz+Lgz+Lwz+MEz\ ++MYz+Moz+M8z+NMz+Ngz+N0z+OEz+OYz+Ooz+O8z+PQz+Pgz9Pgz7/gz6vgz\ +5vgz4fgz3fgz2Pgz0/gzz/gzyvgzxvgzwfgzvPgzuPgzs/gzrvgzqvgzpfgz\ +ofgznPgzl/gzk/gzjvgzifgzhfgzgPgzfPgzd/gzcvgzbvgzafgzZfgzYPgz\ +W/gzV/gzUvgzTfgzSfgzRPgzQPgzO/gzNvg1M/g5M/g+M/hDM/hHM/hMM/hR\ +M/hVM/haM/heM/hjM/hoM/hsM/hxM/h1M/h6M/h/M/iDM/iIM/iNM/iRM/iW\ +M/iaM/ifM/ikM/ioM/itM/iyM/i2M/i7M/i/M/jEM/jJM/jNM/jSM/jWM/jb\ +M/jgM/jkM/jpM/juM/jyM/j3M/j4M/X4M/H4M+z4M+f4M+P4M974M9r4M9X4\ +M9D4M8z4M8f4M8L4M774M7n4M7X4M7D4M6v4M6f4M6L4M534M5n4M5T4M5D4\ +M4v4M4b4M4L4M334M3n4M3T4M2/4M2v4M2b4M2H4M134M1j4M1T4M0/4M0r4\ +M0b4M0H4Mzz4Mzj4PDz4QTz4RTz4STz4Tjz4Ujz4Vzz4Wzz4Xzz4ZDz4aDz4\ +bTz4cTz4djz4ejz4fjz4gzz4hzz4jDz4kDz4lDz4mTz4nTz4ojz4pjz4qjz4\ +rzz4szz4uDz4vDz4wDz4xTz4yTz4zjz40jz41zz42zz43zz45Dz46Dz47Tz4\ +8Tz49Tz3+Dzy+Dzu+Dzq+Dzl+Dzh+Dzc+DzY+DzU+DzP+DzL+DzG+DzC+Dy+\ ++Dy5+Dy1+Dyw+Dys+Dyo+Dyj+Dyf+Dya+DyW+DyR+DyN+DyJ+DyE+DyA+Dx7\ ++Dx3+Dxz+Dxu+Dxq+Dxl+Dxh+Dxd+DxY+DxU+DxP+DxL+DxH+DxC+Dw++Dw8\ ++D88+EQ8+Eg8+Ew8+FE8+FU8+Fo8+F48+GI8+Gc8+Gs8+HA8+HQ8+Hg8+H08\ ++IE8+IY8+Io8+I88+JM8+Jc8+Jw8+KA8+KU8+Kk8+K08+LI8+LY8+Ls8+L88\ ++MM8+Mg8+Mw8+NE8+NU8+Nk8+N48+OI8+Oc8+Os8+PA8+PQ8+Pg89Pg88Pg8\ +6/g85/g84vg83vg82fg81fg80fg8zPg8yPg8w/g8v/g8u/g8tvg8svg8rfg8\ +qfg8pfg8oPg8nPg8l/g8k/g8j/g8ivg8hvg8gfg8ffg8ePg8dPg8cPg8a/g8\ +Z/g8Yvg8Xvg8Wvg8Vfg8Ufg8TPg8SPg8RPg8P/g+PPhCPPhHPPhLPPhPPPhU\ +PPhYPPhdPPhhPPhlPPhqPPhuPPhzPPh3PPh7PPiAPPiEPPiJPPiNPPiRPPiW\ +PPiaPPifPPijPPioPPisPPiwPPi1PPi5PPi+PPjCPPjGPPjLPPjPPPjUPPjY\ +PPjcPPjhPPjlPPjqPPjuPPjyPPj3PPj4PPX4PPH4PO34POj4POT4PN/4PNv4\ +PNf4PNL4PM74PMn4PMX4PMD4PLz4PLj4PLP4PK/4PKr4PKb4PKL4PJ34PJn4\ +PJT4PJD4PIz4PIf4PIP4PH74PHr4PHb4PHH4PG34PGj4PGT4PF/4PFv4PFf4\ +PFL4PE74PEn4PEX4PEH4RUX4SUX4TkX4UkX4VkX4WkX4XkX4Y0X4Z0X4a0X4\ +b0X4c0X4eEX4fEX4gEX4hEX4iEX4jUX4kUX4lUX4mUX4nUX4okX4pkX4qkX4\ +rkX4skX4t0X4u0X4v0X4w0X4x0X4zEX40EX41EX42EX43EX44UX45UX46UX4\ +7UX48UX49kX3+EXz+EXv+EXq+EXm+EXi+EXe+EXa+EXV+EXR+EXN+EXJ+EXF\ ++EXA+EW8+EW4+EW0+EWw+EWr+EWn+EWj+EWf+EWb+EWW+EWS+EWO+EWK+EWG\ ++EWB+EV9+EV5+EV1+EVx+EVs+EVo+EVk+EVg+EVc+EVX+EVT+EVP+EVL+EVH\ ++EVF+EhF+ExF+FBF+FVF+FlF+F1F+GFF+GVF+GpF+G5F+HJF+HZF+HpF+H9F\ ++INF+IdF+ItF+I9F+JRF+JhF+JxF+KBF+KRF+KlF+K1F+LFF+LVF+LlF+L5F\ ++MJF+MZF+MpF+M5F+NNF+NdF+NtF+N9F+ONF+OhF+OxF+PBF+PRF+PhF9PhF\ +8PhF7PhF6PhF4/hF3/hF2/hF1/hF0/hFzvhFyvhFxvhFwvhFvvhFufhFtfhF\ +sfhFrfhFqfhFpPhFoPhFnPhFmPhFlPhFj/hFi/hFh/hFg/hFf/hFevhFdvhF\ +cvhFbvhFavhFZfhFYfhFXfhFWfhFVfhFUPhFTPhFSPhHRfhLRfhPRfhTRfhX\ +RfhcRfhgRfhkRfhoRfhsRfhxRfh1Rfh5Rfh9RfiBRfiGRfiKRfiORfiSRfiW\ +RfibRfifRfijRfinRfirRfiwRfi0Rfi4Rfi8RfjARfjFRfjJRfjNRfjRRfjV\ +RfjaRfjeRfjiRfjmRfjqRfjvRfjzRfj3Rfj4Rfb4RfH4Re34Ren4ReX4ReH4\ +Rdz4Rdj4RdT4RdD4Rcz4Rcf4RcP4Rb/4Rbv4Rbf4RbL4Ra74Rar4Rab4RaL4\ +RZ34RZn4RZX4RZH4RY34RYj4RYT4RYD4RXz4RXj4RXP4RW/4RWv4RWf4RWP4\ +RV74RVr4RVb4RVL4RU74RUn4Tk74Uk74Vk74Wk74Xk74Yk74Zk74ak74bk74\ +ck74dk74ek74fk74gk74hk74ik74jk74kk74lk74mk74nk74ok74pk74qk74\ +rk74sk74tk74uk74vk74wk74xk74yk74zk740k741k742k743k744k745k74\ +6k747k748k749k73+E7z+E7v+E7r+E7n+E7j+E7f+E7b+E7X+E7T+E7P+E7L\ ++E7H+E7D+E6/+E67+E63+E6z+E6v+E6r+E6n+E6j+E6f+E6b+E6X+E6T+E6P\ ++E6L+E6H+E6D+E5/+E57+E53+E5z+E5v+E5r+E5n+E5j+E5f+E5b+E5X+E5T\ ++E5P+E5O+FFO+FVO+FlO+F1O+GFO+GVO+GlO+G1O+HFO+HVO+HlO+H1O+IFO\ ++IVO+IlO+I1O+JFO+JVO+JlO+J1O+KFO+KVO+KlO+K1O+LFO+LVO+LlO+LxO\ ++MBO+MRO+MhO+MxO+NBO+NRO+NhO+NxO+OBO+ORO+OhO+OxO+PBO+PRO+PhO\ +9PhO8PhO7PhO6PhO5PhO4PhO3PhO2PhO1PhO0PhOzPhOyPhOxPhOwPhOvPhO\ +ufhOtfhOsfhOrfhOqfhOpfhOofhOnfhOmfhOlfhOkfhOjfhOifhOhfhOgfhO\ +ffhOefhOdfhOcfhObfhOafhOZfhOYfhOXfhOWfhOVfhOUfhPTvhTTvhXTvhb\ +TvhfTvhjTvhnTvhrTvhvTvhzTvh3Tvh7Tvh/TviDTviHTviLTviPTviTTviX\ +TvibTvifTvijTvinTvirTvivTvizTvi3Tvi7Tvi/TvjDTvjHTvjLTvjPTvjT\ +TvjXTvjbTvjfTvjjTvjnTvjrTvjvTvjzTvj3Tvj4Tvb4TvL4Tu74Tur4Tub4\ +TuL4Tt74Ttr4Ttb4TtL4Ts74Tsr4Tsb4TsL4Tr74Trr4Trb4TrL4Tq74Tqr4\ +Tqb4TqL4Tp74Tpr4Tpb4TpL4To74Tor4Tob4ToL4Tn74Tnr4Tnb4TnL4Tm74\ +Tmr4Tmb4TmL4Tl74Tlr4Tlb4TlL4V1f4W1f4X1f4Ylf4Zlf4alf4blf4clf4\ +dVf4eVf4fVf4gVf4hFf4iFf4jFf4kFf4lFf4l1f4m1f4n1f4o1f4plf4qlf4\ +rlf4slf4tlf4uVf4vVf4wVf4xVf4yFf4zFf40Ff41Ff42Ff421f431f441f4\ +51f46lf47lf48lf49lf3+Ffz+Ffw+Ffs+Ffo+Ffk+Ffg+Ffd+FfZ+FfV+FfR\ ++FfO+FfK+FfG+FfC+Fe++Fe7+Fe3+Fez+Fev+Fer+Feo+Fek+Feg+Fec+FeZ\ ++FeV+FeR+FeN+FeJ+FeG+FeC+Fd++Fd6+Fd3+Fdz+Fdv+Fdr+Fdn+Fdk+Fdg\ ++Fdc+FdY+FdX+FpX+F1X+GFX+GVX+GlX+G1X+HBX+HRX+HhX+HxX+H9X+INX\ ++IdX+ItX+I9X+JJX+JZX+JpX+J5X+KFX+KVX+KlX+K1X+LFX+LRX+LhX+LxX\ ++MBX+MNX+MdX+MtX+M9X+NNX+NZX+NpX+N5X+OJX+OVX+OlX+O1X+PFX+PVX\ ++PhX9fhX8fhX7fhX6fhX5fhX4vhX3vhX2vhX1vhX0/hXz/hXy/hXx/hXw/hX\ +wPhXvPhXuPhXtPhXsfhXrfhXqfhXpfhXofhXnvhXmvhXlvhXkvhXj/hXi/hX\ +h/hXg/hXf/hXfPhXePhXdPhXcPhXbfhXafhXZfhXYfhXXfhXWvhYV/hcV/hg\ +V/hkV/hnV/hrV/hvV/hzV/h3V/h6V/h+V/iCV/iGV/iJV/iNV/iRV/iVV/iZ\ +V/icV/igV/ikV/ioV/irV/ivV/izV/i3V/i7V/i+V/jCV/jGV/jKV/jOV/jR\ +V/jVV/jZV/jdV/jgV/jkV/joV/jsV/jwV/jzV/j3V/j4V/b4V/L4V+74V+r4\ +V+f4V+P4V9/4V9v4V9j4V9T4V9D4V8z4V8j4V8X4V8H4V734V7n4V7b4V7L4\ +V674V6r4V6b4V6P4V5/4V5v4V5f4V5T4V5D4V4z4V4j4V4T4V4H4V334V3n4\ +V3X4V3L4V274V2r4V2b4V2L4V1/4V1v4YGD4ZGD4Z2D4a2D4bmD4cmD4dWD4\ +eWD4fWD4gGD4hGD4h2D4i2D4jmD4kmD4lmD4mWD4nWD4oGD4pGD4p2D4q2D4\ +r2D4smD4tmD4uWD4vWD4wGD4xGD4yGD4y2D4z2D40mD41mD42WD43WD44WD4\ +5GD46GD462D472D48mD49mD3+GD0+GDw+GDs+GDp+GDl+GDi+GDe+GDb+GDX\ ++GDT+GDQ+GDM+GDJ+GDF+GDC+GC++GC6+GC3+GCz+GCw+GCs+GCp+GCl+GCh\ ++GCe+GCa+GCX+GCT+GCQ+GCM+GCI+GCF+GCB+GB++GB6+GB3+GBz+GBw+GBs\ ++GBo+GBl+GBh+GBg+GJg+GZg+Gpg+G1g+HFg+HRg+Hhg+Htg+H9g+INg+IZg\ ++Ipg+I1g+JFg+JRg+Jhg+Jxg+J9g+KNg+KZg+Kpg+K1g+LFg+LVg+Lhg+Lxg\ ++L9g+MNg+MZg+Mpg+M5g+NFg+NVg+Nhg+Nxg+N9g+ONg+OZg+Opg+O5g+PFg\ ++PVg+Phg9fhg8fhg7vhg6vhg5vhg4/hg3/hg3Phg2Phg1fhg0fhgzvhgyvhg\ +xvhgw/hgv/hgvPhguPhgtfhgsfhgrfhgqvhgpvhgo/hgn/hgnPhgmPhglPhg\ +kfhgjfhgivhghvhgg/hgf/hge/hgePhgdPhgcfhgbfhgavhgZvhgYvhhYPhl\ +YPhoYPhsYPhwYPhzYPh3YPh6YPh+YPiBYPiFYPiIYPiMYPiQYPiTYPiXYPia\ +YPieYPihYPilYPipYPisYPiwYPizYPi3YPi6YPi+YPjCYPjFYPjJYPjMYPjQ\ +YPjTYPjXYPjbYPjeYPjiYPjlYPjpYPjsYPjwYPj0YPj3YPj4YPb4YPL4YO/4\ +YOv4YOj4YOT4YOH4YN34YNn4YNb4YNL4YM/4YMv4YMj4YMT4YMD4YL34YLn4\ +YLb4YLL4YK/4YKv4YKf4YKT4YKD4YJ34YJn4YJb4YJL4YI74YIv4YIf4YIT4\ +YID4YH34YHn4YHX4YHL4YG74YGv4YGf4YGT4aWn4bGn4cGn4c2n4dmn4emn4\ +fWn4gWn4hGn4h2n4i2n4jmn4kWn4lWn4mGn4m2n4n2n4omn4pWn4qWn4rGn4\ +sGn4s2n4tmn4umn4vWn4wGn4xGn4x2n4ymn4zmn40Wn41Wn42Gn422n432n4\ +4mn45Wn46Wn47Gn472n482n49mn3+Gn0+Gnw+Gnt+Gnq+Gnm+Gnj+Gng+Gnc\ ++GnZ+GnW+GnS+GnP+GnM+GnI+GnF+GnB+Gm++Gm7+Gm3+Gm0+Gmx+Gmt+Gmq\ ++Gmn+Gmj+Gmg+Gmd+GmZ+GmW+GmS+GmP+GmM+GmI+GmF+GmC+Gl++Gl7+Gl4\ ++Gl0+Glx+Glt+Glq+Glp+Gtp+G9p+HJp+HVp+Hlp+Hxp+H9p+INp+IZp+Ilp\ ++I1p+JBp+JRp+Jdp+Jpp+J5p+KFp+KRp+Khp+Ktp+K5p+LJp+LVp+Llp+Lxp\ ++L9p+MNp+MZp+Mlp+M1p+NBp+NNp+Ndp+Npp+N1p+OFp+ORp+Ohp+Otp+O5p\ ++PJp+PVp+Php9fhp8vhp7vhp6/hp6Php5Php4fhp3fhp2vhp1/hp0/hp0Php\ +zfhpyfhpxvhpw/hpv/hpvPhpufhptfhpsvhprvhpq/hpqPhppPhpofhpnvhp\ +mvhpl/hplPhpkPhpjfhpifhphvhpg/hpf/hpfPhpefhpdfhpcvhpb/hpa/hq\ +afhtafhxafh0afh4afh7afh+afiCafiFafiIafiMafiPafiSafiWafiZafid\ +afigafijafinafiqafitafixafi0afi3afi7afi+afjBafjFafjIafjMafjP\ +afjSafjWafjZafjcafjgafjjafjmafjqafjtafjwafj0afj3afj4afb4afP4\ +ae/4aez4aen4aeX4aeL4ad/4adv4adj4adX4adH4ac74acr4acf4acT4acD4\ +ab34abr4abb4abP4abD4aaz4aan4aaX4aaL4aZ/4aZv4aZj4aZX4aZH4aY74\ +aYv4aYf4aYT4aYH4aX34aXr4aXb4aXP4aXD4aWz4cnL4dXL4eHL4e3L4f3L4\ +gnL4hXL4iHL4i3L4jnL4kXL4lXL4mHL4m3L4nnL4oXL4pHL4qHL4q3L4rnL4\ +sXL4tHL4t3L4unL4vnL4wXL4xHL4x3L4ynL4zXL40HL41HL413L42nL43XL4\ +4HL443L45nL46nL47XL48HL483L49nL3+HL0+HLx+HLu+HLr+HLo+HLk+HLh\ ++HLe+HLb+HLY+HLV+HLR+HLO+HLL+HLI+HLF+HLC+HK/+HK7+HK4+HK1+HKy\ ++HKv+HKs+HKp+HKl+HKi+HKf+HKc+HKZ+HKW+HKT+HKP+HKM+HKJ+HKG+HKD\ ++HKA+HJ8+HJ5+HJ2+HJz+HJy+HRy+Hdy+Hpy+H5y+IFy+IRy+Idy+Ipy+I1y\ ++JBy+JRy+Jdy+Jpy+J1y+KBy+KNy+KZy+Kpy+K1y+LBy+LNy+LZy+Lly+Lxy\ ++MBy+MNy+MZy+Mly+Mxy+M9y+NNy+NZy+Nly+Nxy+N9y+OJy+OVy+Oly+Oxy\ ++O9y+PJy+PVy+Phy9fhy8vhy7/hy7Phy6fhy5fhy4vhy3/hy3Phy2fhy1vhy\ +0/hyz/hyzPhyyfhyxvhyw/hywPhyvPhyufhytvhys/hysPhyrfhyqvhypvhy\ +o/hyoPhynfhymvhyl/hylPhykPhyjfhyivhyh/hyhPhygfhyfvhyevhyd/hy\ +dPhzcvh2cvh5cvh8cviAcviDcviGcviJcviMcviPcviTcviWcviZcviccvif\ +cviicvilcvipcviscvivcviycvi1cvi4cvi7cvi/cvjCcvjFcvjIcvjLcvjO\ +cvjRcvjVcvjYcvjbcvjecvjhcvjkcvjocvjrcvjucvjxcvj0cvj3cvj4cvb4\ +cvP4cvD4cu34cur4cub4cuP4cuD4ct34ctr4ctf4ctT4ctD4cs34csr4csf4\ +csT4csH4cr74crr4crf4crT4crH4cq74cqv4cqj4cqT4cqH4cp74cpv4cpj4\ +cpX4cpH4co74cov4coj4coX4coL4cn/4cnv4cnj4cnX4e3v4fnv4gXv4hHv4\ +h3v4inv4jXv4j3v4knv4lXv4mHv4m3v4nnv4oXv4pHv4p3v4qnv4rXv4sHv4\ +s3v4tnv4uXv4vHv4v3v4wXv4xHv4x3v4ynv4zXv40Hv403v41nv42Xv43Hv4\ +33v44nv45Xv46Hv463v47nv48Hv483v49nv3+Hv0+Hvx+Hvv+Hvs+Hvp+Hvm\ ++Hvj+Hvg+Hvd+Hva+HvX+HvU+HvR+HvO+HvL+HvI+HvF+HvC+HvA+Hu9+Hu6\ ++Hu3+Hu0+Hux+Huu+Hur+Huo+Hul+Hui+Huf+Huc+HuZ+HuW+HuT+HuQ+HuO\ ++HuL+HuI+HuF+HuC+Ht/+Ht8+Ht7+H17+IB7+IN7+IZ7+Il7+Ix7+I97+JF7\ ++JR7+Jd7+Jp7+J17+KB7+KN7+KZ7+Kl7+Kx7+K97+LJ7+LV7+Lh7+Lt7+L57\ ++MB7+MN7+MZ7+Ml7+Mx7+M97+NJ7+NV7+Nh7+Nt7+N57+OF7+OR7+Od7+Op7\ ++O17+PB7+PJ7+PV7+Ph79fh78vh78Ph77fh76vh75/h75Ph74fh73vh72/h7\ +2Ph71fh70vh7z/h7zPh7yfh7xvh7w/h7wPh7vvh7u/h7uPh7tfh7svh7r/h7\ +rPh7qfh7pvh7o/h7oPh7nfh7mvh7l/h7lPh7kfh7j/h7jPh7ifh7hvh7g/h7\ +gPh7ffh8e/h/e/iCe/iFe/iIe/iLe/iOe/iQe/iTe/iWe/iZe/ice/ife/ii\ +e/ile/ioe/ire/iue/ixe/i0e/i3e/i6e/i9e/jAe/jCe/jFe/jIe/jLe/jO\ +e/jRe/jUe/jXe/jae/jde/jge/jje/jme/jpe/jse/jve/jxe/j0e/j3e/j4\ +e/b4e/P4e/D4e+74e+v4e+j4e+X4e+L4e9/4e9z4e9n4e9b4e9P4e9D4e834\ +e8r4e8f4e8T4e8H4e7/4e7z4e7n4e7b4e7P4e7D4e634e6r4e6f4e6T4e6H4\ +e574e5v4e5j4e5X4e5L4e4/4e434e4r4e4f4e4T4e4H4e374hIT4h4T4iYT4\ +jIT4j4T4koT4lIT4l4T4moT4nIT4n4T4ooT4pYT4p4T4qoT4rYT4sIT4soT4\ +tYT4uIT4uoT4vYT4wIT4w4T4xYT4yIT4y4T4zoT40IT404T41oT42IT424T4\ +3oT44YT444T45oT46YT47IT47oT48YT49IT494T3+IT1+ITy+ITv+ITt+ITq\ ++ITn+ITk+ITi+ITf+ITc+ITZ+ITX+ITU+ITR+ITO+ITM+ITJ+ITG+ITE+ITB\ ++IS++IS7+IS5+IS2+ISz+ISw+ISu+ISr+ISo+ISm+ISj+ISg+ISd+ISb+ISY\ ++ISV+ISS+ISQ+ISN+ISK+ISI+ISF+ISE+IaE+IiE+IuE+I6E+JGE+JOE+JaE\ ++JmE+JyE+J6E+KGE+KSE+KaE+KmE+KyE+K+E+LGE+LSE+LeE+LqE+LyE+L+E\ ++MKE+MSE+MeE+MqE+M2E+M+E+NKE+NWE+NiE+NqE+N2E+OCE+OKE+OWE+OiE\ ++OuE+O2E+PCE+POE+PaE+PiE9viE8/iE8PiE7fiE6/iE6PiE5fiE4viE4PiE\ +3fiE2viE2PiE1fiE0viEz/iEzfiEyviEx/iExPiEwviEv/iEvPiEuviEt/iE\ +tPiEsfiEr/iErPiEqfiEpviEpPiEofiEnviEnPiEmfiElviEk/iEkfiEjviE\ +i/iEiPiEhviFhPiIhPiKhPiNhPiQhPiShPiVhPiYhPibhPidhPighPijhPim\ +hPiohPirhPiuhPiwhPizhPi2hPi5hPi7hPi+hPjBhPjEhPjGhPjJhPjMhPjO\ +hPjRhPjUhPjXhPjZhPjchPjfhPjihPjkhPjnhPjqhPjthPjvhPjyhPj1hPj3\ +hPj4hPf4hPT4hPH4hO74hOz4hOn4hOb4hOP4hOH4hN74hNv4hNj4hNb4hNP4\ +hND4hM74hMv4hMj4hMX4hMP4hMD4hL34hLr4hLj4hLX4hLL4hLD4hK34hKr4\ +hKf4hKX4hKL4hJ/4hJz4hJr4hJf4hJT4hJL4hI/4hIz4hIn4hIf4jY34j434\ +ko34lI34l434mY34nI34no34oY34pI34po34qY34q434ro34sI34s434tY34\ +uI34uo34vY34v434wo34xI34x434yY34zI34zo340Y3404341o342I342434\ +3Y344I344o345Y346I346o347Y3474348o349I349433+I31+I3y+I3w+I3t\ ++I3r+I3o+I3m+I3j+I3h+I3e+I3c+I3Z+I3X+I3U+I3S+I3P+I3N+I3K+I3I\ ++I3F+I3D+I3A+I2++I27+I25+I22+I2z+I2x+I2u+I2s+I2p+I2n+I2k+I2i\ ++I2f+I2d+I2a+I2Y+I2V+I2T+I2Q+I2O+I2N+I+N+JGN+JSN+JaN+JmN+JuN\ ++J6N+KCN+KON+KWN+KiN+KqN+K2N+K+N+LKN+LSN+LeN+LmN+LyN+L6N+MGN\ ++MON+MaN+MiN+MuN+M6N+NCN+NON+NWN+NiN+NqN+N2N+N+N+OKN+OSN+OeN\ ++OmN+OyN+O6N+PGN+PON+PaN+PiN9viN8/iN8fiN7viN7PiN6fiN5/iN5PiN\ +4viN3/iN3fiN2viN2PiN1fiN0/iN0PiNzviNy/iNyPiNxviNw/iNwfiNvviN\ +vPiNufiNt/iNtPiNsviNr/iNrfiNqviNqPiNpfiNo/iNoPiNnviNm/iNmfiN\ +lviNlPiNkfiNj/iOjfiQjfiTjfiVjfiYjfiajfidjfifjfiijfikjfinjfip\ +jfisjfiujfixjfizjfi2jfi5jfi7jfi+jfjAjfjDjfjFjfjIjfjKjfjNjfjP\ +jfjSjfjUjfjXjfjZjfjcjfjejfjhjfjjjfjmjfjojfjrjfjtjfjwjfjyjfj1\ +jfj3jfj4jff4jfT4jfL4je/4je34jer4jej4jeX4jeL4jeD4jd34jdv4jdj4\ +jdb4jdP4jdH4jc74jcz4jcn4jcf4jcT4jcL4jb/4jb34jbr4jbj4jbX4jbP4\ +jbD4ja74jav4jan4jab4jaT4jaH4jZ74jZz4jZn4jZf4jZT4jZL4jY/4lpb4\ +mJb4mpb4nZb4n5b4oZb4pJb4ppb4qJb4q5b4rZb4r5b4spb4tJb4tpb4uJb4\ +u5b4vZb4v5b4wpb4xJb4xpb4yZb4y5b4zZb40Jb40pb41Jb41pb42Zb425b4\ +3Zb44Jb44pb45Jb455b46Zb465b47pb48Jb48pb49Jb495b4+Jb1+Jbz+Jbx\ ++Jbu+Jbs+Jbq+Jbn+Jbl+Jbj+Jbg+Jbe+Jbc+Jba+JbX+JbV+JbT+JbQ+JbO\ ++JbM+JbJ+JbH+JbF+JbC+JbA+Ja++Ja8+Ja5+Ja3+Ja1+Jay+Jaw+Jau+Jar\ ++Jap+Jan+Jak+Jai+Jag+Jad+Jab+JaZ+JaX+JaW+JeW+JqW+JyW+J6W+KGW\ ++KOW+KWW+KiW+KqW+KyW+K6W+LGW+LOW+LWW+LiW+LqW+LyW+L+W+MGW+MOW\ ++MaW+MiW+MqW+MyW+M+W+NGW+NOW+NaW+NiW+NqW+N2W+N+W+OGW+OSW+OaW\ ++OiW+OqW+O2W+O+W+PGW+PSW+PaW+PiW9viW9PiW8fiW7/iW7fiW6viW6PiW\ +5viW5PiW4fiW3/iW3fiW2viW2PiW1viW0/iW0fiWz/iWzPiWyviWyPiWxviW\ +w/iWwfiWv/iWvPiWuviWuPiWtfiWs/iWsfiWrviWrPiWqviWqPiWpfiWo/iW\ +ofiWnviWnPiWmviWl/iXlviZlviblvidlviglviilviklvinlviplvirlviu\ +lviwlviylvi1lvi3lvi5lvi8lvi+lvjAlvjClvjFlvjHlvjJlvjMlvjOlvjQ\ +lvjTlvjVlvjXlvjalvjclvjelvjglvjjlvjllvjnlvjqlvjslvjulvjxlvjz\ +lvj1lvj4lvj4lvf4lvT4lvL4lvD4lu74luv4lun4luf4luT4luL4luD4lt34\ +ltv4ltn4ltb4ltT4ltL4ltD4ls34lsv4lsn4lsb4lsT4lsL4lr/4lr34lrv4\ +lrj4lrb4lrT4lrL4lq/4lq34lqv4lqj4lqb4lqT4lqH4lp/4lp34lpr4lpj4\ +n5/4oZ/4o5/4pZ/4p5/4qZ/4q5/4rZ/4sJ/4sp/4tJ/4tp/4uJ/4up/4vJ/4\ +vp/4wJ/4wp/4xZ/4x5/4yZ/4y5/4zZ/4z5/40Z/405/41Z/415/42p/43J/4\ +3p/44J/44p/45J/45p/46J/46p/47J/475/48Z/485/49Z/495/4+J/2+J/z\ ++J/x+J/v+J/t+J/r+J/p+J/n+J/l+J/j+J/h+J/e+J/c+J/a+J/Y+J/W+J/U\ ++J/S+J/Q+J/O+J/M+J/J+J/H+J/F+J/D+J/B+J+/+J+9+J+7+J+5+J+3+J+0\ ++J+y+J+w+J+u+J+s+J+q+J+o+J+m+J+k+J+i+J+f+J+f+KCf+KKf+KSf+Kaf\ ++Kmf+Kuf+K2f+K+f+LGf+LOf+LWf+Lef+Lmf+Luf+L6f+MCf+MKf+MSf+Maf\ ++Mif+Mqf+Myf+M6f+NCf+NOf+NWf+Nef+Nmf+Nuf+N2f+N+f+OGf+OOf+OWf\ ++Oif+Oqf+Oyf+O6f+PCf+PKf+PSf+Paf+Pif9vif9Pif8vif8Pif7vif7Pif\ +6vif6Pif5fif4/if4fif3/if3fif2/if2fif1/if1fif0/if0PifzvifzPif\ +yvifyPifxvifxPifwvifwPifvvifu/ifufift/iftfifs/ifsfifr/ifrfif\ +q/ifqfifpvifpPifovifoPifn/iin/ikn/imn/ion/iqn/isn/iun/iwn/iy\ +n/i0n/i3n/i5n/i7n/i9n/i/n/jBn/jDn/jFn/jHn/jJn/jMn/jOn/jQn/jS\ +n/jUn/jWn/jYn/jan/jcn/jen/jhn/jjn/jln/jnn/jpn/jrn/jtn/jvn/jx\ +n/jzn/j2n/j4n/j4n/f4n/X4n/P4n/H4n+/4n+z4n+r4n+j4n+b4n+T4n+L4\ +n+D4n974n9z4n9r4n9f4n9X4n9P4n9H4n8/4n834n8v4n8n4n8f4n8X4n8L4\ +n8D4n774n7z4n7r4n7j4n7b4n7T4n7L4n7D4n634n6v4n6n4n6f4n6X4n6P4\ +n6H4qKj4qqj4q6j4raj4r6j4saj4s6j4taj4t6j4uaj4u6j4vKj4vqj4wKj4\ +wqj4xKj4xqj4yKj4yqj4zKj4zqj4z6j40aj406j41aj416j42aj426j43aj4\ +36j44Kj44qj45Kj45qj46Kj46qj47Kj47qj48Kj48aj486j49aj496j4+Kj2\ ++Kj0+Kjy+Kjw+Kju+Kjs+Kjq+Kjp+Kjn+Kjl+Kjj+Kjh+Kjf+Kjd+Kjb+KjZ\ ++KjY+KjW+KjU+KjS+KjQ+KjO+KjM+KjK+KjI+KjH+KjF+KjD+KjB+Ki/+Ki9\ ++Ki7+Ki5+Ki3+Ki2+Ki0+Kiy+Kiw+Kiu+Kis+Kiq+Kio+Kio+Kmo+Kuo+K2o\ ++K+o+LGo+LKo+LSo+Lao+Lio+Lqo+Lyo+L6o+MCo+MKo+MOo+MWo+Meo+Mmo\ ++Muo+M2o+M+o+NGo+NOo+NSo+Nao+Nio+Nqo+Nyo+N6o+OCo+OKo+OSo+OWo\ ++Oeo+Omo+Ouo+O2o+O+o+PGo+POo+PWo+Pao+Pio9vio9fio8/io8fio7/io\ +7fio6/io6fio5/io5fio5Pio4vio4Pio3vio3Pio2vio2Pio1vio1Pio0/io\ +0fioz/iozfioy/ioyfiox/ioxfiow/iowviowPiovviovPiouviouPiotvio\ +tPiosviosfior/iorfioq/ioqfioqPiqqPisqPiuqPiwqPiyqPi0qPi2qPi3\ +qPi5qPi7qPi9qPi/qPjBqPjDqPjFqPjHqPjIqPjKqPjMqPjOqPjQqPjSqPjU\ +qPjWqPjYqPjZqPjbqPjdqPjfqPjhqPjjqPjlqPjnqPjpqPjqqPjsqPjuqPjw\ +qPjyqPj0qPj2qPj4qPj4qPf4qPX4qPP4qPH4qPD4qO74qOz4qOr4qOj4qOb4\ +qOT4qOL4qOD4qN/4qN34qNv4qNn4qNf4qNX4qNP4qNH4qM/4qM74qMz4qMr4\ +qMj4qMb4qMT4qML4qMD4qL74qLz4qLv4qLn4qLf4qLX4qLP4qLH4qK/4qK34\ +qKv4qKr4sbH4srH4tLH4trH4t7H4ubH4u7H4vLH4vrH4wLH4wbH4w7H4xbH4\ +x7H4yLH4yrH4zLH4zbH4z7H40bH40rH41LH41rH417H42bH427H43LH43rH4\ +4LH44bH447H45bH45rH46LH46rH467H47bH477H48LH48rH49LH49rH497H4\ ++LH2+LH0+LHz+LHx+LHv+LHu+LHs+LHq+LHp+LHn+LHl+LHk+LHi+LHg+LHf\ ++LHd+LHb+LHa+LHY+LHW+LHV+LHT+LHR+LHP+LHO+LHM+LHK+LHJ+LHH+LHF\ ++LHE+LHC+LHA+LG/+LG9+LG7+LG6+LG4+LG2+LG1+LGz+LGx+LGx+LKx+LOx\ ++LWx+Lex+Lmx+Lqx+Lyx+L6x+L+x+MGx+MOx+MSx+Max+Mix+Mmx+Mux+M2x\ ++M6x+NCx+NKx+NOx+NWx+Nex+Nix+Nqx+Nyx+N2x+N+x+OGx+OKx+OSx+Oax\ ++Oix+Omx+Oux+O2x+O6x+PCx+PKx+POx+PWx+Pex+Pix9/ix9fix8/ix8vix\ +8Pix7vix7fix6/ix6fix6Pix5vix5Pix4vix4fix3/ix3fix3Pix2vix2Pix\ +1/ix1fix0/ix0vix0Pixzvixzfixy/ixyfixyPixxvixxPixw/ixwfixv/ix\ +vvixvPixuvixufixt/ixtfixs/ixsvixsfizsfi1sfi2sfi4sfi6sfi7sfi9\ +sfi/sfjAsfjCsfjEsfjFsfjHsfjJsfjKsfjMsfjOsfjPsfjRsfjTsfjVsfjW\ +sfjYsfjasfjbsfjdsfjfsfjgsfjisfjksfjlsfjnsfjpsfjqsfjssfjusfjv\ +sfjxsfjzsfj0sfj2sfj4sfj4sff4sfb4sfT4sfL4sfD4se/4se34sev4ser4\ +sej4seb4seX4seP4seH4seD4sd74sdz4sdv4sdn4sdf4sdb4sdT4sdL4sdH4\ +sc/4sc34scz4scr4scj4scf4scX4scP4scH4scD4sb74sbz4sbv4sbn4sbf4\ +sbb4sbT4sbL4urr4u7r4vbr4vrr4wLr4wbr4wrr4xLr4xbr4x7r4yLr4yrr4\ +y7r4zbr4zrr40Lr40br407r41Lr41rr417r42Lr42rr427r43br43rr44Lr4\ +4br447r45Lr45rr457r46br46rr47Lr47br477r48Lr48br487r49Lr49rr4\ +97r4+Lr2+Lr1+Lrz+Lry+Lrw+Lrv+Lru+Lrs+Lrr+Lrp+Lro+Lrm+Lrl+Lrj\ ++Lri+Lrg+Lrf+Lrd+Lrc+Lra+LrZ+LrY+LrW+LrV+LrT+LrS+LrQ+LrP+LrN\ ++LrM+LrK+LrJ+LrH+LrG+LrE+LrD+LrB+LrA+Lq/+Lq9+Lq8+Lq6+Lq6+Lu6\ ++Ly6+L66+L+6+MC6+MK6+MO6+MW6+Ma6+Mi6+Mm6+Mu6+My6+M66+M+6+NG6\ ++NK6+NS6+NW6+Ne6+Ni6+Nm6+Nu6+Ny6+N66+N+6+OG6+OK6+OS6+OW6+Oe6\ ++Oi6+Oq6+Ou6+O26+O66+PC6+PG6+PK6+PS6+PW6+Pe6+Pi69/i69fi69Pi6\ +8vi68fi68Pi67vi67fi66/i66vi66Pi65/i65fi65Pi64vi64fi63/i63vi6\ +3Pi62/i62fi62Pi61/i61fi61Pi60vi60fi6z/i6zvi6zPi6y/i6yfi6yPi6\ +xvi6xfi6w/i6wvi6wPi6v/i6vvi6vPi6u/i6uvi8uvi9uvi/uvjAuvjBuvjD\ +uvjEuvjGuvjHuvjJuvjKuvjMuvjNuvjPuvjQuvjSuvjTuvjVuvjWuvjYuvjZ\ +uvjauvjcuvjduvjfuvjguvjiuvjjuvjluvjmuvjouvjpuvjruvjsuvjuuvjv\ +uvjwuvjyuvjzuvj1uvj2uvj4uvj4uvf4uvb4uvT4uvP4uvH4uvD4uu/4uu34\ +uuz4uur4uun4uuf4uub4uuT4uuP4uuH4uuD4ut74ut34utv4utr4utj4utf4\ +utb4utT4utP4utH4utD4us74us34usv4usr4usj4usf4usX4usT4usL4usH4\ +usD4ur74ur34urv4w8P4xMP4xcP4xsP4yMP4ycP4ysP4y8P4zcP4zsP4z8P4\ +0MP40sP408P41MP41cP418P42MP42cP428P43MP43cP43sP44MP44cP44sP4\ +48P45cP45sP458P46MP46sP468P47MP47cP478P48MP48cP48sP49MP49cP4\ +9sP498P4+MP3+MP1+MP0+MPz+MPy+MPw+MPv+MPu+MPt+MPr+MPq+MPp+MPo\ ++MPm+MPl+MPk+MPi+MPh+MPg+MPf+MPd+MPc+MPb+MPa+MPY+MPX+MPW+MPV\ ++MPT+MPS+MPR+MPQ+MPO+MPN+MPM+MPL+MPJ+MPI+MPH+MPG+MPE+MPD+MPD\ ++MPD+MXD+MbD+MfD+MjD+MrD+MvD+MzD+M7D+M/D+NDD+NHD+NPD+NTD+NXD\ ++NbD+NjD+NnD+NrD+NvD+N3D+N7D+N/D+ODD+OLD+OPD+OTD+OXD+OfD+OjD\ ++OnD+OrD+OzD+O3D+O7D+PDD+PHD+PLD+PPD+PXD+PbD+PfD+PjD9/jD9vjD\ +9fjD8/jD8vjD8fjD8PjD7vjD7fjD7PjD6vjD6fjD6PjD5/jD5fjD5PjD4/jD\ +4vjD4PjD3/jD3vjD3fjD2/jD2vjD2fjD2PjD1vjD1fjD1PjD0/jD0fjD0PjD\ +z/jDzvjDzPjDy/jDyvjDyPjDx/jDxvjDxfjDw/jDw/jEw/jGw/jHw/jIw/jJ\ +w/jLw/jMw/jNw/jOw/jQw/jRw/jSw/jTw/jVw/jWw/jXw/jYw/jaw/jbw/jc\ +w/jdw/jfw/jgw/jhw/jiw/jkw/jlw/jmw/jow/jpw/jqw/jrw/jtw/juw/jv\ +w/jww/jyw/jzw/j0w/j1w/j3w/j4w/j4w/f4w/b4w/X4w/T4w/L4w/H4w/D4\ +w+/4w+34w+z4w+v4w+r4w+j4w+f4w+b4w+X4w+P4w+L4w+H4w+D4w974w934\ +w9z4w9v4w9n4w9j4w9f4w9X4w9T4w9P4w9L4w9D4w8/4w874w834w8v4w8r4\ +w8n4w8j4w8b4w8X4w8T4zMz4zcz4zsz4z8z40Mz40cz40sz408z41Mz41cz4\ +1sz418z42Mz42cz42sz428z43Mz43cz43sz438z44cz44sz448z45Mz45cz4\ +5sz458z46Mz46cz46sz468z47Mz47cz47sz478z48Mz48cz48sz488z49Mz4\ +9sz498z4+Mz4+Mz3+Mz2+Mz1+Mz0+Mzz+Mzy+Mzx+Mzw+Mzv+Mzt+Mzs+Mzr\ ++Mzq+Mzp+Mzo+Mzn+Mzm+Mzl+Mzk+Mzj+Mzi+Mzh+Mzg+Mzf+Mze+Mzd+Mzc\ ++Mzb+Mza+MzY+MzX+MzW+MzV+MzU+MzT+MzS+MzR+MzQ+MzP+MzO+MzN+MzM\ ++MzM+MzM+M3M+M7M+M/M+NDM+NHM+NPM+NTM+NXM+NbM+NfM+NjM+NnM+NrM\ ++NvM+NzM+N3M+N7M+N/M+ODM+OHM+OLM+OPM+OTM+OXM+ObM+OjM+OnM+OrM\ ++OvM+OzM+O3M+O7M+O/M+PDM+PHM+PLM+PPM+PTM+PXM+PbM+PfM+PjM9/jM\ +9vjM9fjM9PjM8/jM8vjM8fjM8PjM7/jM7vjM7fjM7PjM6/jM6vjM6fjM6PjM\ +5vjM5fjM5PjM4/jM4vjM4fjM4PjM3/jM3vjM3fjM3PjM2/jM2vjM2fjM2PjM\ +1/jM1vjM1fjM1PjM0/jM0fjM0PjMz/jMzvjMzfjMzPjMzPjNzPjOzPjPzPjQ\ +zPjRzPjSzPjTzPjUzPjVzPjWzPjXzPjYzPjazPjbzPjczPjdzPjezPjfzPjg\ +zPjhzPjizPjjzPjkzPjlzPjmzPjnzPjozPjpzPjqzPjrzPjszPjtzPjvzPjw\ +zPjxzPjyzPjzzPj0zPj1zPj2zPj3zPj4zPj4zPj4zPf4zPb4zPT4zPP4zPL4\ +zPH4zPD4zO/4zO74zO34zOz4zOv4zOr4zOn4zOj4zOf4zOb4zOX4zOT4zOP4\ +zOL4zOH4zN/4zN74zN34zNz4zNv4zNr4zNn4zNj4zNf4zNb4zNX4zNT4zNP4\ +zNL4zNH4zND4zM/4zM74zM341dX41dX41tX419X42NX42dX42tX42tX429X4\ +3NX43dX43tX439X439X44NX44dX44tX449X45NX45NX45dX45tX459X46NX4\ +6dX46dX46tX469X47NX47dX47tX479X479X48NX48dX48tX489X49NX49NX4\ +9dX49tX499X4+NX4+NX3+NX2+NX2+NX1+NX0+NXz+NXy+NXx+NXw+NXw+NXv\ ++NXu+NXt+NXs+NXr+NXr+NXq+NXp+NXo+NXn+NXm+NXm+NXl+NXk+NXj+NXi\ ++NXh+NXh+NXg+NXf+NXe+NXd+NXc+NXb+NXb+NXa+NXZ+NXY+NXX+NXW+NXW\ ++NXV+NXV+NXV+NbV+NfV+NjV+NjV+NnV+NrV+NvV+NzV+N3V+N3V+N7V+N/V\ ++ODV+OHV+OLV+OLV+OPV+OTV+OXV+ObV+OfV+OjV+OjV+OnV+OrV+OvV+OzV\ ++O3V+O3V+O7V+O/V+PDV+PHV+PLV+PLV+PPV+PTV+PXV+PbV+PfV+PfV+PjV\ +9/jV9/jV9vjV9fjV9PjV8/jV8vjV8vjV8fjV8PjV7/jV7vjV7fjV7fjV7PjV\ +6/jV6vjV6fjV6PjV6PjV5/jV5vjV5fjV5PjV4/jV4vjV4vjV4fjV4PjV3/jV\ +3vjV3fjV3fjV3PjV2/jV2vjV2fjV2PjV2PjV1/jV1vjV1fjV1fjW1fjW1fjX\ +1fjY1fjZ1fja1fjb1fjb1fjc1fjd1fje1fjf1fjg1fjh1fjh1fji1fjj1fjk\ +1fjl1fjm1fjm1fjn1fjo1fjp1fjq1fjr1fjr1fjs1fjt1fju1fjv1fjw1fjw\ +1fjx1fjy1fjz1fj01fj11fj21fj21fj31fj41fj41fj41ff41fb41fX41fT4\ +1fT41fP41fL41fH41fD41e/41e/41e741e341ez41ev41er41en41en41ej4\ +1ef41eb41eX41eT41eT41eP41eL41eH41eD41d/41d/41d741d341dz41dv4\ +1dr41dr41dn41dj41df41db41dX43d343t34393439344N344d344d344t34\ +4t3449345N345N345d345t345t3459346N346N346d346d346t3469346934\ +7N347d347d347t347t3479348N348N348d348t348t3489349N349N349d34\ +9d349t3499349934+N34+N33+N33+N32+N32+N31+N30+N30+N3z+N3y+N3y\ ++N3x+N3x+N3w+N3v+N3v+N3u+N3t+N3t+N3s+N3s+N3r+N3q+N3q+N3p+N3o\ ++N3o+N3n+N3m+N3m+N3l+N3l+N3k+N3j+N3j+N3i+N3h+N3h+N3g+N3g+N3f\ ++N3e+N3e+N3d+N7d+N/d+N/d+ODd+ODd+OHd+OLd+OLd+OPd+OTd+OTd+OXd\ ++OXd+Obd+Ofd+Ofd+Ojd+Ond+Ond+Ord+Ord+Ovd+Ozd+Ozd+O3d+O7d+O7d\ ++O/d+PDd+PDd+PHd+PHd+PLd+PPd+PPd+PTd+PXd+PXd+Pbd+Pbd+Pfd+Pjd\ ++Pjd+Pjd9/jd9vjd9vjd9fjd9fjd9Pjd8/jd8/jd8vjd8fjd8fjd8Pjd8Pjd\ +7/jd7vjd7vjd7fjd7Pjd7Pjd6/jd6vjd6vjd6fjd6fjd6Pjd5/jd5/jd5vjd\ +5fjd5fjd5Pjd5Pjd4/jd4vjd4vjd4fjd4Pjd4Pjd3/jd3/jd3vje3fje3fjf\ +3fjg3fjg3fjh3fjh3fji3fjj3fjj3fjk3fjl3fjl3fjm3fjm3fjn3fjo3fjo\ +3fjp3fjq3fjq3fjr3fjs3fjs3fjt3fjt3fju3fjv3fjv3fjw3fjx3fjx3fjy\ +3fjy3fjz3fj03fj03fj13fj23fj23fj33fj33fj43fj43fj43ff43ff43fb4\ +3fX43fX43fT43fT43fP43fL43fL43fH43fD43fD43e/43e743e743e343e34\ +3ez43ev43ev43er43en43en43ej43ej43ef43eb43eb43eX43eT43eT43eP4\ +3eL43eL43eH43eH43eD43d/43d/43d745ub45+b45+b46Ob46Ob46eb46eb4\ +6eb46ub46ub46+b46+b46+b47Ob47Ob47eb47eb47ub47ub47ub47+b47+b4\ +8Ob48Ob48Ob48eb48eb48ub48ub48+b48+b48+b49Ob49Ob49eb49eb49ub4\ +9ub49ub49+b49+b4+Ob4+Ob4+Ob4+Ob3+Ob3+Ob3+Ob2+Ob2+Ob1+Ob1+Ob0\ ++Ob0+Ob0+Obz+Obz+Oby+Oby+Obx+Obx+Obx+Obw+Obw+Obv+Obv+Obv+Obu\ ++Obu+Obt+Obt+Obs+Obs+Obs+Obr+Obr+Obq+Obq+Obp+Obp+Obp+Obo+Obo\ ++Obn+Obn+Obn+Obm+Ofm+Ofm+Ojm+Ojm+Ojm+Onm+Onm+Orm+Orm+Orm+Ovm\ ++Ovm+Ozm+Ozm+O3m+O3m+O3m+O7m+O7m+O/m+O/m+PDm+PDm+PDm+PHm+PHm\ ++PLm+PLm+PLm+PPm+PPm+PTm+PTm+PXm+PXm+PXm+Pbm+Pbm+Pfm+Pfm+Pfm\ ++Pjm+Pjm+Pjm9/jm9/jm9/jm9vjm9vjm9fjm9fjm9fjm9Pjm9Pjm8/jm8/jm\ +8vjm8vjm8vjm8fjm8fjm8Pjm8Pjm8Pjm7/jm7/jm7vjm7vjm7fjm7fjm7fjm\ +7Pjm7Pjm6/jm6/jm6vjm6vjm6vjm6fjm6fjm6Pjm6Pjm6Pjm5/jm5/jn5vjn\ +5vjn5vjo5vjo5vjp5vjp5vjp5vjq5vjq5vjr5vjr5vjs5vjs5vjs5vjt5vjt\ +5vju5vju5vjv5vjv5vjv5vjw5vjw5vjx5vjx5vjx5vjy5vjy5vjz5vjz5vj0\ +5vj05vj05vj15vj15vj25vj25vj35vj35vj35vj45vj45vj45vj45vj45vf4\ +5vf45vb45vb45vb45vX45vX45vT45vT45vP45vP45vP45vL45vL45vH45vH4\ +5vD45vD45vD45u/45u/45u745u745u745u345u345uz45uz45uv45uv45uv4\ +5ur45ur45un45un45un45uj45uj45uf45uf47+/48O/48O/48O/48O/48O/4\ +8e/48e/48e/48e/48e/48u/48u/48u/48u/48+/48+/48+/48+/48+/49O/4\ +9O/49O/49O/49O/49e/49e/49e/49e/49e/49u/49u/49u/49u/49+/49+/4\ +9+/49+/49+/4+O/4+O/4+O/4+O/4+O/4+O/4+O/4+O/3+O/3+O/3+O/3+O/3\ ++O/2+O/2+O/2+O/2+O/2+O/1+O/1+O/1+O/1+O/0+O/0+O/0+O/0+O/0+O/z\ ++O/z+O/z+O/z+O/z+O/y+O/y+O/y+O/y+O/y+O/x+O/x+O/x+O/x+O/w+O/w\ ++O/w+O/w+O/w+O/v+O/v+PDv+PDv+PDv+PDv+PDv+PHv+PHv+PHv+PHv+PHv\ ++PLv+PLv+PLv+PLv+PLv+PPv+PPv+PPv+PPv+PTv+PTv+PTv+PTv+PTv+PXv\ ++PXv+PXv+PXv+PXv+Pbv+Pbv+Pbv+Pbv+Pbv+Pfv+Pfv+Pfv+Pfv+Pfv+Pjv\ ++Pjv+Pjv+Pjv+Pjv+Pjv+Pjv9/jv9/jv9/jv9/jv9/jv9vjv9vjv9vjv9vjv\ +9vjv9fjv9fjv9fjv9fjv9fjv9Pjv9Pjv9Pjv9Pjv9Pjv8/jv8/jv8/jv8/jv\ +8vjv8vjv8vjv8vjv8vjv8fjv8fjv8fjv8fjv8fjv8Pjv8Pjv8Pjv8Pjv8Pjv\ +7/jw7/jw7/jw7/jw7/jw7/jx7/jx7/jx7/jx7/jy7/jy7/jy7/jy7/jy7/jz\ +7/jz7/jz7/jz7/jz7/j07/j07/j07/j07/j07/j17/j17/j17/j17/j27/j2\ +7/j27/j27/j27/j37/j37/j37/j37/j37/j47/j47/j47/j47/j47/j47/j4\ +7/j47/j47/f47/f47/f47/f47/f47/b47/b47/b47/b47/X47/X47/X47/X4\ +7/X47/T47/T47/T47/T47/T47/P47/P47/P47/P47/P47/L47/L47/L47/L4\ +7/H47/H47/H47/H47/H47/D47/D47/D47/D47/A="; + + rtext_new(glist, (t_text *)x); tagRoot = rtext_gettag(glist_findrtext(glist,(t_text *)x)); - COLORGRID_SYS_VGUI3("image create photo img%x -file %s\n",x,fname); + //post("%s",tagRoot); + + COLORGRID_SYS_VGUI3("image create photo img%x -data [base64::decode {%s}]\n",x,fdata); COLORGRID_SYS_VGUI6(".x%x.c create image %d %d -image img%x -tags %sS\n", canvas,text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist),x,tagRoot); COLORGRID_SYS_VGUI5(".x%x.c coords %sS %d %d \n", @@ -313,7 +1269,7 @@ static void pdp_colorgrid_hsv2rgb(t_float hue, t_float saturation, t_float value static void pdp_colorgrid_output_current(t_pdp_colorgrid* x) { - t_float ox=0, oy=0, hue, saturation, value, red=0, green=0, blue=0 ; + t_float ox=0, oy=0, hue, saturation, value, red=0, green=0, blue=0; /* These values need to be the same as those that produced the spectrum image:*/ @@ -414,9 +1370,8 @@ static void pdp_colorgrid_save(t_gobj *z, t_binbuf *b) // post( "saving pdp_colorgrid : %s", x->x_name->s_name ); binbuf_addv(b, "ssiissiffiffiffiiff", gensym("#X"),gensym("obj"), - (int)x->x_obj.te_xpix, (int)x->x_obj.te_ypix, - atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)), - x->x_name, x->x_width, x->x_min, + (t_int)x->x_obj.te_xpix, (t_int)x->x_obj.te_ypix, + gensym("pdp_colorgrid"), x->x_name, x->x_width, x->x_min, x->x_max, x->x_height, x->y_min, x->y_max, x->x_pdp_colorgrid, x->x_xstep, @@ -678,7 +1633,7 @@ static void pdp_colorgrid_free(t_pdp_colorgrid *x) void pdp_colorgrid_setup(void) { -#include "pdp_colorgrid.tk2c" + load_tk_procs(); post ( pdp_colorgrid_version ); pdp_colorgrid_class = class_new(gensym("pdp_colorgrid"), (t_newmethod)pdp_colorgrid_new, (t_method)pdp_colorgrid_free, sizeof(t_pdp_colorgrid), 0, A_GIMME, 0); @@ -698,5 +1653,5 @@ void pdp_colorgrid_setup(void) class_setwidget(pdp_colorgrid_class, &pdp_colorgrid_widgetbehavior); class_setpropertiesfn(pdp_colorgrid_class, pdp_colorgrid_properties); class_setsavefn(pdp_colorgrid_class, pdp_colorgrid_save); - + class_sethelpsymbol(pdp_colorgrid_class, gensym("pdp_colorgrid-help.pd")); } diff --git a/modules/pdp_colorgrid.tk b/modules/pdp_colorgrid.tk deleted file mode 100644 index 293885d..0000000 --- a/modules/pdp_colorgrid.tk +++ /dev/null @@ -1,87 +0,0 @@ -############ pdp_colorgrid procedures -- ydegoyon@free.fr ######### - -proc pdp_colorgrid_apply {id} { -# strip "." from the TK id to make a variable name suffix - set vid [string trimleft $id .] -# for each variable, make a local variable to hold its name... - set var_graph_pdp_colorgrid [concat graph_pdp_colorgrid_$vid] - global $var_graph_pdp_colorgrid - set var_graph_xlines [concat graph_xlines_$vid] - global $var_graph_xlines - set var_graph_ylines [concat graph_ylines_$vid] - global $var_graph_ylines - - set cmd [concat $id dialog \ - [eval concat $$var_graph_xlines] \ - [eval concat $$var_graph_ylines] \ - [eval concat $$var_graph_pdp_colorgrid] \ - \;] - #puts stderr $cmd - pd $cmd -} - -proc pdp_colorgrid_cancel {id} { - set cmd [concat $id cancel \;] - #puts stderr $cmd - pd $cmd -} - -proc pdp_colorgrid_ok {id} { - pdp_colorgrid_apply $id - pdp_colorgrid_cancel $id -} - -proc pdtk_pdp_colorgrid_dialog {id xlines ylines pdp_colorgrid} { - set vid [string trimleft $id .] - set var_graph_pdp_colorgrid [concat graph_pdp_colorgrid_$vid] - global $var_graph_pdp_colorgrid - set var_graph_xlines [concat graph_xlines_$vid] - global $var_graph_xlines - set var_graph_ylines [concat graph_ylines_$vid] - global $var_graph_ylines - - set $var_graph_pdp_colorgrid $pdp_colorgrid - set $var_graph_xlines $xlines - set $var_graph_ylines $ylines - - toplevel $id - wm title $id {pdp_colorgrid} - wm protocol $id WM_DELETE_WINDOW [concat pdp_colorgrid_cancel $id] - - label $id.label -text {COLORGRID PROPERTIES} - pack $id.label -side top - - frame $id.buttonframe - pack $id.buttonframe -side bottom -fill x -pady 2m - button $id.buttonframe.cancel -text {Cancel}\ - -command "pdp_colorgrid_cancel $id" - button $id.buttonframe.apply -text {Apply}\ - -command "pdp_colorgrid_apply $id" - button $id.buttonframe.ok -text {OK}\ - -command "pdp_colorgrid_ok $id" - pack $id.buttonframe.cancel -side left -expand 1 - pack $id.buttonframe.apply -side left -expand 1 - pack $id.buttonframe.ok -side left -expand 1 - - frame $id.42rangef - pack $id.42rangef -side top - label $id.42rangef.lxlines -text "X sections :" - entry $id.42rangef.xlines -textvariable $var_graph_xlines -width 7 - pack $id.42rangef.lxlines $id.42rangef.xlines -side left - - frame $id.72rangef - pack $id.72rangef -side top - label $id.72rangef.lylines -text "Y sections :" - entry $id.72rangef.ylines -textvariable $var_graph_ylines -width 7 - pack $id.72rangef.lylines $id.72rangef.ylines -side left - - checkbutton $id.showpdp_colorgrid -text {Show Grid} -variable $var_graph_pdp_colorgrid \ - -anchor w - pack $id.showpdp_colorgrid -side top - - bind $id.42rangef.xlines <KeyPress-Return> [concat pdp_colorgrid_ok $id] - bind $id.72rangef.ylines <KeyPress-Return> [concat pdp_colorgrid_ok $id] - focus $id.42rangef.xlines -} - -############ pdp_colorgrid procedures END -- lluis@artefacte.org ######### diff --git a/modules/pdp_colorgrid.tk2c b/modules/pdp_colorgrid.tk2c deleted file mode 100644 index 1faf937..0000000 --- a/modules/pdp_colorgrid.tk2c +++ /dev/null @@ -1,65 +0,0 @@ -// ########### pdp_colorgrid procedures -- ydegoyon@free.fr ######### -sys_gui("proc pdp_colorgrid_apply {id} {\n"); -// strip "." from the TK id to make a variable name suffix -sys_gui("set vid [string trimleft $id .]\n"); -// for each variable, make a local variable to hold its name... -sys_gui("set var_graph_pdp_colorgrid [concat graph_pdp_colorgrid_$vid]\n"); -sys_gui("global $var_graph_pdp_colorgrid\n"); -sys_gui("set var_graph_xlines [concat graph_xlines_$vid]\n"); -sys_gui("global $var_graph_xlines\n"); -sys_gui("set var_graph_ylines [concat graph_ylines_$vid]\n"); -sys_gui("global $var_graph_ylines\n"); -sys_gui("set cmd [concat $id dialog [eval concat $$var_graph_xlines] [eval concat $$var_graph_ylines] [eval concat $$var_graph_pdp_colorgrid] \\;]\n"); -// puts stderr $cmd -sys_gui("pd $cmd\n"); -sys_gui("}\n"); -sys_gui("proc pdp_colorgrid_cancel {id} {\n"); -sys_gui("set cmd [concat $id cancel \\;]\n"); -// puts stderr $cmd -sys_gui("pd $cmd\n"); -sys_gui("}\n"); -sys_gui("proc pdp_colorgrid_ok {id} {\n"); -sys_gui("pdp_colorgrid_apply $id\n"); -sys_gui("pdp_colorgrid_cancel $id\n"); -sys_gui("}\n"); -sys_gui("proc pdtk_pdp_colorgrid_dialog {id xlines ylines pdp_colorgrid} {\n"); -sys_gui("set vid [string trimleft $id .]\n"); -sys_gui("set var_graph_pdp_colorgrid [concat graph_pdp_colorgrid_$vid]\n"); -sys_gui("global $var_graph_pdp_colorgrid\n"); -sys_gui("set var_graph_xlines [concat graph_xlines_$vid]\n"); -sys_gui("global $var_graph_xlines\n"); -sys_gui("set var_graph_ylines [concat graph_ylines_$vid]\n"); -sys_gui("global $var_graph_ylines\n"); -sys_gui("set $var_graph_pdp_colorgrid $pdp_colorgrid\n"); -sys_gui("set $var_graph_xlines $xlines\n"); -sys_gui("set $var_graph_ylines $ylines\n"); -sys_gui("toplevel $id\n"); -sys_gui("wm title $id {pdp_colorgrid}\n"); -sys_gui("wm protocol $id WM_DELETE_WINDOW [concat pdp_colorgrid_cancel $id]\n"); -sys_gui("label $id.label -text {COLORGRID PROPERTIES}\n"); -sys_gui("pack $id.label -side top\n"); -sys_gui("frame $id.buttonframe\n"); -sys_gui("pack $id.buttonframe -side bottom -fill x -pady 2m\n"); -sys_gui("button $id.buttonframe.cancel -text {Cancel} -command \"pdp_colorgrid_cancel $id\"\n"); -sys_gui("button $id.buttonframe.apply -text {Apply} -command \"pdp_colorgrid_apply $id\"\n"); -sys_gui("button $id.buttonframe.ok -text {OK} -command \"pdp_colorgrid_ok $id\"\n"); -sys_gui("pack $id.buttonframe.cancel -side left -expand 1\n"); -sys_gui("pack $id.buttonframe.apply -side left -expand 1\n"); -sys_gui("pack $id.buttonframe.ok -side left -expand 1\n"); -sys_gui("frame $id.42rangef\n"); -sys_gui("pack $id.42rangef -side top\n"); -sys_gui("label $id.42rangef.lxlines -text \"X sections :\"\n"); -sys_gui("entry $id.42rangef.xlines -textvariable $var_graph_xlines -width 7\n"); -sys_gui("pack $id.42rangef.lxlines $id.42rangef.xlines -side left\n"); -sys_gui("frame $id.72rangef\n"); -sys_gui("pack $id.72rangef -side top\n"); -sys_gui("label $id.72rangef.lylines -text \"Y sections :\"\n"); -sys_gui("entry $id.72rangef.ylines -textvariable $var_graph_ylines -width 7\n"); -sys_gui("pack $id.72rangef.lylines $id.72rangef.ylines -side left\n"); -sys_gui("checkbutton $id.showpdp_colorgrid -text {Show Grid} -variable $var_graph_pdp_colorgrid -anchor w\n"); -sys_gui("pack $id.showpdp_colorgrid -side top\n"); -sys_gui("bind $id.42rangef.xlines <KeyPress-Return> [concat pdp_colorgrid_ok $id]\n"); -sys_gui("bind $id.72rangef.ylines <KeyPress-Return> [concat pdp_colorgrid_ok $id]\n"); -sys_gui("focus $id.42rangef.xlines\n"); -sys_gui("}\n"); -// ########### pdp_colorgrid procedures END -- lluis@artefacte.org ######### |