From: Ian Jackson Date: Mon, 15 Jun 2009 12:32:07 +0000 (+0100) Subject: Merge branch 'master' of ijackson@chiark:things/ypp-sc-tools X-Git-Tag: 1.9.2~124 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=commitdiff_plain;h=4c375a59891a4161e30bd67709a1ad5d1950a850;hp=5b8cb7299a9e60f7bfeb3fe5f3d7556e2357d485 Merge branch 'master' of ijackson@chiark:things/ypp-sc-tools --- diff --git a/pctb/Makefile b/pctb/Makefile index c008d1e..f798e52 100644 --- a/pctb/Makefile +++ b/pctb/Makefile @@ -35,7 +35,7 @@ TARGETS= ypp-commodities all: $(TARGETS) -CONVERT_OBJS= convert.o ocr.o pages.o structure.o +CONVERT_OBJS= convert.o ocr.o pages.o structure.o common.o rgbimage.o resolve.o ypp-commodities: $(CONVERT_OBJS) -lnetpbm -lXtst -lX11 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) diff --git a/pctb/charset-15.txt b/pctb/charset-15.txt index b87636c..0be3d67 100644 --- a/pctb/charset-15.txt +++ b/pctb/charset-15.txt @@ -215,17 +215,6 @@ ff8 fc0 800 -Lower -In -ff8 -0 -0 -fe0 -40 -20 -20 -fc0 - Lower Iron ff8 diff --git a/pctb/common.c b/pctb/common.c new file mode 100644 index 0000000..3cb4323 --- /dev/null +++ b/pctb/common.c @@ -0,0 +1,95 @@ +/* + * Utility functions + */ +/* + * This is part of ypp-sc-tools, a set of third-party tools for assisting + * players of Yohoho Puzzle Pirates. + * + * Copyright (C) 2009 Ian Jackson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Yohoho and Puzzle Pirates are probably trademarks of Three Rings and + * are used without permission. This program is not endorsed or + * sponsored by Three Rings. + */ + +#include "common.h" + +void *mmalloc(size_t sz) { + void *r; + if (!sz) return 0; + sysassert( r= malloc(sz) ); + return r; +} +void *mrealloc(void *p, size_t sz) { + assert(sz); + void *r; + sysassert( r= realloc(p,sz) ); + return r; +} + + +FILE *dbfile; +static const char *path; + +int dbfile_open(const char *tpath) { + assert(!dbfile); + path= tpath; + dbfile= fopen(path,"r"); + if (dbfile) return 1; + sysassert(errno==ENOENT); + return 0; +} + +#define dbassertgl(x) ((x) ? (void)0 : dbfile_assertfail(file,line,#x)) + +void dbfile_getsline(char *lbuf, size_t lbufsz, const char *file, int line) { + errno=0; + char *s= fgets(lbuf,lbufsz,dbfile); + sysassert(!ferror(dbfile)); + dbassertgl(!feof(dbfile)); + assert(s); + int l= strlen(lbuf); + dbassertgl(l>0); dbassertgl(lbuf[--l]=='\n'); + lbuf[l]= 0; +} + +void dbfile_close(void) { + if (!dbfile) return; + sysassert(!ferror(dbfile)); + sysassert(!fclose(dbfile)); + dbfile= 0; +} + +int dbfile_vscanf(const char *fmt, va_list al) { + int r= vfscanf(dbfile,fmt,al); + sysassert(!ferror(dbfile)); + return r; +} + +int dbfile_scanf(const char *fmt, ...) { + va_list al; + va_start(al,fmt); + int r= dbfile_vscanf(fmt,al); + va_end(al); + return r; +} + +void dbfile_assertfail(const char *file, int line, const char *m) { + fatal("Error in database file %s at byte %ld:\n" + " Requirement not met at %s:%d:\n" + " %s", + path,(long)ftell(dbfile), file,line, m); +} diff --git a/pctb/common.h b/pctb/common.h index 8b66cf5..47f898f 100644 --- a/pctb/common.h +++ b/pctb/common.h @@ -31,7 +31,16 @@ #define _GNU_SOURCE #include - +#include +#include +#include +#include +#include +#include +#include +#include + +#include #include typedef struct { @@ -51,12 +60,16 @@ typedef struct { /* both inclusive */ Point br; } Rect; +#define RECT_W(r) ((r).br.x - (r).tl.x + 1) +#define RECT_H(r) ((r).br.y - (r).tl.y + 1) + #define DEBUG_FLAG_LIST \ DF(findypp) \ DF(pages) \ DF(rect) \ + DF(pixmap) \ DF(struct) \ DF(ocr) \ DF(callout) @@ -82,6 +95,7 @@ void debug_flush(void); const char *get_vardir(void); #define FMT(f,a) __attribute__((format(printf,f,a))) +#define SCANFMT(f,a) __attribute__((format(scanf,f,a))) #define NORET __attribute__((noreturn)) #define DEFINE_VWRAPPERF(decls, funcf, otherattribs) \ @@ -118,4 +132,16 @@ void *mmalloc(size_t sz); void *mrealloc(void *p, size_t sz); +#define dbassert(x) ((x) ? (void)0 : dbfile_assertfail(__FILE__,__LINE__,#x)) +void dbfile_assertfail(const char *file, int line, const char *m) NORET; + +FILE *dbfile; +void dbfile_getsline(char *lbuf, size_t lbufsz, const char *file, int line); +int dbfile_open(const char *tpath); /* 0: ENOENT; 1: worked */ +void dbfile_close(void); /* idempotent */ + +int dbfile_scanf(const char *fmt, ...) SCANFMT(1,2); +int dbfile_vscanf(const char *fmt, va_list al) SCANFMT(1,0); + + #endif /*COMMON_H*/ diff --git a/pctb/convert.c b/pctb/convert.c index 75c7080..dd7f5d1 100644 --- a/pctb/convert.c +++ b/pctb/convert.c @@ -166,6 +166,7 @@ int main(int argc, char **argv) { else read_screenshots(); } if (o_mode & mf_analyse) { + find_islandname(); if (o_outputmode) run_analysis(); else @@ -258,19 +259,6 @@ void sysassert_fail(const char *file, int line, const char *what) { _exit(16); } -void *mmalloc(size_t sz) { - void *r; - if (!sz) return 0; - sysassert( r= malloc(sz) ); - return r; -} -void *mrealloc(void *p, size_t sz) { - assert(sz); - void *r; - sysassert( r= realloc(p,sz) ); - return r; -} - void waitpid_check_exitstatus(pid_t pid, const char *what) { pid_t got; int st; diff --git a/pctb/convert.h b/pctb/convert.h index 8c6efef..b5e9230 100644 --- a/pctb/convert.h +++ b/pctb/convert.h @@ -38,9 +38,30 @@ #include +/*----- from rgbimage.c -----*/ + +#define MAXIMGIDENT 100 + +typedef struct RgbImage { + int w, h; + unsigned char data[]; + /* red = data[ y*w*3 + x*3 + 0 ] = RI_PIXEL(ri,x,y)[0] + * green = data[ y*w*3 + x*3 + 1 ] = RI_PIXEL(ri,x,y)[1] + * blue = data[ y*w*3 + x*3 + 2 ] = RI_PIXEL(ri,x,y)[2] + */ +} RgbImage; + +void identify_rgbimage(const RgbImage *base, Rect portion, + char result[MAXIMGIDENT], const char *what); +RgbImage *alloc_rgb_image(int w, int h); + +#define RI_PIXEL(ri,x,y) ((ri)->data + ((y)*(ri)->w + (x)) * 3) + /*----- from structure.c -----*/ -void find_structure(CanonImage *im, int *max_relevant_y_r); +void find_structure(const CanonImage *im, int *max_relevant_y_r); + +void find_islandname(void); void check_correct_commodities(void); void read_screenshots(void); void read_one_screenshot(void); @@ -73,6 +94,7 @@ void take_one_screenshot(void); #define MAX_PAGES 100 extern CanonImage *page_images[MAX_PAGES]; extern int npages; +RgbImage *page0_rgbimage; extern char *ocean, *pirate; diff --git a/pctb/example b/pctb/example new file mode 100644 index 0000000..b11651d --- /dev/null +++ b/pctb/example @@ -0,0 +1,85 @@ + + + +Version number (3 ascii digits) followed +by LF (i.e. 0x0A). Current version is\ + 005 + + 0000 30 30 35 0a 005. + +# of shops/stalls (in ascii) + LF + 0000 31 0a 1. + +list of shop names in ascii (without the +possessive part and by specifying the \ +shop type in an abbreviated way which is +mentioned below). The shop names are +separated \ by line feeds (0x0A). To +specify the shop type append the "^" +character and then \ one of the +following characters depending upon the +shop type: + Apothecary = A + Distillery = D + Furnisher = F + Iron Monger = I + Shipyard = S + Tailor = T + Weavery = W + + 0000 4f 6c 64 20 49 72 6f 6e 73 69 Ol d Ironsi + 0010 64 65 73 0a des. + +# of buy offers (in binary) + 0010 05 00 + +commodIndex offerCount buy 0/5 + 0010 0a 00 01 00 Grog x 1 +[shopIndex val amt] + 0010 01 00 1d 00 75 00 OI 29 qty 75 + +commodIndex offerCount buy 1/5 + 0020 0b 00 01 00 Fine x 1 +[shopIndex val amt]... (all in binar\ y) + 0020 01 00 33 00 e9 03 OI 51 qty 0x3e9 + +commodIndex offerCount buy 2/5 + 0020 0c 00 01 00 Small shot x 1 +[shopIndex val amt] + 0020 01 00 OI + 0030 0f 00 e9 03 15 qty 0x3e9 + +commodIndex offerCount buy 3/5 + 0030 0d 00 01 00 Medium shot x 1 +[shopIndex val amt] + 0030 01 00 1c 00 e9 03 OI 28 qty 0x3e9 + +commodIndex offerCount buy 4/5 + 0030 0e 00 Large shot + 0040 01 00 x 1 +[shopIndex val amt] + 0040 01 00 26 00 e9 03 OI 38 0x3e9 + + +# of sell offers (in binary) + 0040 04 00 + +commodIndex offerCount sell 0/4 + 0040 09 00 01 00 Swill x 1 +[shopIndex val amt] + 0040 01 00 OI + 0050 17 00 e8 03 23 0x3e8 +commodIndex offerCount sell 1/4 + 0050 0a 00 01 00 Grog x 1 +[shopIndex val amt] + 0050 01 00 1e 00 73 03 OI 30 qty 0x373 +commodIndex offerCount sell 2/4 + 0050 0c 00 Small shot + 0060 01 00 x 1 +[shopIndex val amt] + 0060 01 00 10 00 07 00 OI 16 qty 7 +commodIndex offerCount sell 3/4 + 0060 0d 00 01 00 Medium shot x 1 +[shopIndex val amt] + 0060 01 00 1e 00 OI 30 + 0070 02 00 qty 2 diff --git a/pctb/getislands-history b/pctb/getislands-history new file mode 100644 index 0000000..f829914 --- /dev/null +++ b/pctb/getislands-history @@ -0,0 +1,11 @@ + 1 cd things/ypp-sc-tools-pctb/pctb/ + 2 ll + 3 less example + 4 curl 'http://pctb.ilk.org/islands.php?oceanName=MIDNIGHT' + 5 curl 'http://pctb.ilk.org/islands.php?oceanName=MIDNIGHT'; echo + 6 xmag + 7 history >getislands-history + 8 curl 'http://pctb.ilk.org/islands.php?oceanName=SPONG'; echo + 9 curl 'http://pctb.ilk.org/islands.php?oceanName=MIDNIGHT'; echo + 10 curl 'http://pctb.ilk.org/oceans.php'; echo + 11 history >getislands-history diff --git a/pctb/ocr.c b/pctb/ocr.c index 7854239..927b93a 100644 --- a/pctb/ocr.c +++ b/pctb/ocr.c @@ -75,28 +75,9 @@ struct OcrReader { int aresults, nresults; }; -static FILE *resolver; -static pid_t resolver_pid; -static int resolver_done; - DEBUG_DEFINE_DEBUGF(ocr) -#define dbassert(x) \ - ((x) ? (void)0 : \ - fatal("Error in character set database.\n" \ - " Requirement not met: %s:%d: %s", __FILE__,__LINE__, #x)) - -static void fgetsline(FILE *f, char *lbuf, size_t lbufsz) { - errno=0; - char *s= fgets(lbuf,lbufsz,f); - sysassert(!ferror(f)); - dbassert(!feof(f)); - assert(s); - int l= strlen(lbuf); - dbassert(l>0); dbassert(lbuf[--l]='\n'); - lbuf[l]= 0; -} -#define FGETSLINE(f,buf) (fgetsline(f,buf,sizeof(buf))) +#define FGETSLINE (dbfile_getsline(lbuf,sizeof(lbuf),__FILE__,__LINE__)) static void cleardb_node(DatabaseNode *n) { int i; @@ -110,10 +91,9 @@ static void readdb(OcrReader *rd) { DatabaseNode *current, *additional; char chrs[MAXGLYPHCHRS+1]; Pixcol cv; - int r,j,ctxi; + int j,ctxi; int h, endsword; char lbuf[100]; - FILE *db; for (ctxi=0; ctxicontexts[ctxi]); @@ -122,41 +102,36 @@ static void readdb(OcrReader *rd) { asprintf(&dbfname,"%s/charset-%d.txt",get_vardir(),rd->h); sysassert(dbfname); - db= fopen(dbfname,"r"); - free(dbfname); - if (!db) { - sysassert(errno==ENOENT); - return; - } + if (!dbfile_open(dbfname)) + goto x; - FGETSLINE(db,lbuf); + FGETSLINE; dbassert(!strcmp(lbuf,"# ypp-sc-tools pctb font v1")); - r= fscanf(db, "%d", &h); - dbassert(r==1); + dbassert( dbfile_scanf("%d", &h) == 1); dbassert(h==rd->h); for (;;) { - FGETSLINE(db,lbuf); - if (!lbuf || lbuf[0]=='#') continue; + FGETSLINE; + if (!lbuf[0] || lbuf[0]=='#') continue; if (!strcmp(lbuf,".")) break; for (ctxi=0; ctxi0 && cr<=255); c= cr; } @@ -171,7 +146,7 @@ static void readdb(OcrReader *rd) { current= &rd->contexts[ctxi]; for (;;) { - FGETSLINE(db,lbuf); + FGETSLINE; if (!lbuf[0]) { dbassert(current != &rd->contexts[ctxi]); break; } char *ep; cv= strtoul(lbuf,&ep,16); dbassert(!*ep); @@ -205,11 +180,12 @@ static void readdb(OcrReader *rd) { strcpy(current->s, chrs); current->endsword= endsword; } - sysassert(!ferror(db)); - sysassert(!fclose(db)); + x: + dbfile_close(); + free(dbfname); } -static void cu_pr_ctxmap(unsigned ctxmap) { +static void cu_pr_ctxmap(FILE *resolver, unsigned ctxmap) { fprintf(resolver,"{"); const char *spc=""; int ctxi; @@ -223,46 +199,25 @@ static void cu_pr_ctxmap(unsigned ctxmap) { static void callout_unknown(OcrReader *rd, int w, Pixcol cols[], int unk_l, int unk_r, unsigned unk_ctxmap) { - int jobpipe[2],donepipe[2], c,i, x,y; + int c,i, x,y; const OcrResultGlyph *s; const char *p; - char cb; Pixcol pv; - if (!o_resolver) + FILE *resolver= resolve_start(); + if (!resolver) fatal("OCR failed - unrecognised characters or ligatures.\n" "Character set database needs to be updated or augmented.\n" "See README.charset.\n"); - if (!resolver) { - sysassert(! pipe(jobpipe) ); - sysassert(! pipe(donepipe) ); - resolver_pid= fork(); - sysassert(resolver_pid!=-1); - if (!resolver_pid) { - sysassert( dup2(jobpipe[0],0) ==0 ); - sysassert(! close(jobpipe[1]) ); - sysassert(! close(donepipe[0]) ); - /* we know donepipe[1] is >= 4 and we have dealt with all the others - * so we aren't in any danger of overwriting some other fd 4: */ - sysassert( dup2(donepipe[1],4) ==4 ); - execlp(o_resolver, o_resolver, - DEBUGP(callout) ? "--debug" : "--noop-arg", - "--automatic-1", - (char*)0); - sysassert(!"execlp ocr-resolver failed"); - } - sysassert(! close(jobpipe[0]) ); - sysassert(! close(donepipe[1]) ); - resolver= fdopen(jobpipe[1],"w"); sysassert(resolver); - resolver_done= donepipe[0]; - } - fprintf(resolver,"%d %d ",unk_l,unk_r); - cu_pr_ctxmap(unk_ctxmap); + fprintf(resolver, + "char\n" + "%d %d ",unk_l,unk_r); + cu_pr_ctxmap(resolver,unk_ctxmap); for (i=0, s=rd->results; inresults; i++, s++) { if (!strcmp(s->s," ")) continue; fprintf(resolver," %d %d ",s->l,s->r); - cu_pr_ctxmap(s->ctxmap); + cu_pr_ctxmap(resolver,s->ctxmap); fprintf(resolver," "); for (p=s->s; (c= *p); p++) { if (c=='\\') fprintf(resolver,"\\%c",c); @@ -287,28 +242,8 @@ static void callout_unknown(OcrReader *rd, int w, Pixcol cols[], fputs("\",\n",resolver); } fputs("};\n",resolver); - sysassert(!ferror(resolver)); - sysassert(!fflush(resolver)); - - sysassert(resolver); - - int r; - for (;;) { - r= read(resolver_done,&cb,1); - if (r==-1) { sysassert(errno==EINTR); continue; } - break; - } - - if (r==0) { - waitpid_check_exitstatus(resolver_pid, "character resolver"); - fclose(resolver); - close(resolver_done); - resolver= 0; - } else { - assert(r==1); - sysassert(cb==0); - } + resolve_finish(); readdb(rd); } diff --git a/pctb/ocr.h b/pctb/ocr.h index 69ccbe9..97a5c66 100644 --- a/pctb/ocr.h +++ b/pctb/ocr.h @@ -31,17 +31,6 @@ #include "common.h" -#include -#include -#include -#include -#include -#include -#include -#include - -#include - typedef uint32_t Pixcol; #define PSPIXCOL(priscan) priscan##32 @@ -67,7 +56,11 @@ OcrResultGlyph *ocr(OcrReader *rd, OcrCellType, int w, Pixcol cols[]); * array is valid until next call to ocr() */ + extern const char *o_resolver; +FILE *resolve_start(void); +void resolve_finish(void); + #endif /*OCR_H*/ diff --git a/pctb/pages.c b/pctb/pages.c index 1fba5a6..56fb409 100644 --- a/pctb/pages.c +++ b/pctb/pages.c @@ -43,6 +43,7 @@ CanonImage *page_images[MAX_PAGES]; int npages; +RgbImage *page0_rgbimage; char *ocean, *pirate; @@ -158,6 +159,19 @@ static void send_key(KeySym sym) { XTestFakeKeyEvent(disp, keycode(sym),1, 10); XTestFakeKeyEvent(disp, keycode(sym),0, 10); } +static void mouse_1_updown_here(void) { + check_not_disturbed(); + XTestFakeButtonEvent(disp,1,1, 50); + XTestFakeButtonEvent(disp,1,0, 50); +} +static void mouse_1_updown(int x, int y) { + check_not_disturbed(); + int screen= XScreenNumberOfScreen(attr.screen); + int xpos, ypos; + translate_coords_toroot(x,y, &xpos,&ypos); + XTestFakeMotionEvent(disp, screen, xpos,ypos, 0); + mouse_1_updown_here(); +} static int pgupdown; @@ -365,20 +379,14 @@ static void raise_and_get_details(void) { } } -static void set_focus(void) { +static void set_focus_commodity(void) { int screen= XScreenNumberOfScreen(attr.screen); progress("taking control of YPP client window..."); debugf("PAGING set_focus\n"); - int xpos, ypos; - translate_coords_toroot(160,160, &xpos,&ypos); - XTestFakeMotionEvent(disp,screen, xpos,ypos, 0); - - XTestFakeButtonEvent(disp,1,1, 50); - XTestFakeButtonEvent(disp,1,0, 50); - + mouse_1_updown(160,160); sync_after_input(); delay(0.5); @@ -388,6 +396,7 @@ static void set_focus(void) { FocusChangeMask ) ); + int xpos,ypos; translate_coords_toroot(10,10, &xpos,&ypos); XTestFakeMotionEvent(disp,screen, xpos,ypos, 0); @@ -420,7 +429,7 @@ static void compute_shift_mask(ShMask *sm, unsigned long ximage_mask) { assert(sm->rshift < LONG_BIT); } -static CanonImage *convert_page(Snapshot *sn) { +static CanonImage *convert_page(Snapshot *sn, RgbImage *ri) { ShMask shiftmasks[3]; CanonImage *im; @@ -447,6 +456,8 @@ static CanonImage *convert_page(Snapshot *sn) { rgb |= sample; fputc(sample, screenshot_file); } + if (ri) + CANONIMG_ALSO_STORERGB(ri); }); sysassert(!ferror(screenshot_file)); @@ -455,20 +466,38 @@ static CanonImage *convert_page(Snapshot *sn) { return im; } -void take_screenshots(void) { - Snapshot *current=0, *last=0; +static void prepare_ypp_client(void) { CanonImage *test; - + Snapshot *current=0; + /* find the window and check it's on the right kind of screen */ raise_and_get_details(); wait_for_stability(¤t,0,0, "checking current YPP client screen..."); - test= convert_page(current); + test= convert_page(current, 0); find_structure(test, &max_relevant_y); check_correct_commodities(); free(test); + free_snapshot(¤t); + + progress("requesting status information..."); + mouse_1_updown(250, wheight-10); + mouse_1_updown_here(); + mouse_1_updown_here(); + XSync(disp,False); + check_not_disturbed(); + send_key(XK_slash); + send_key(XK_w); + send_key(XK_Return); + sync_after_input(); +} +void take_screenshots(void) { + Snapshot *current=0, *last=0; + + prepare_ypp_client(); + /* page to the top - keep pressing page up until the image stops changing */ - set_focus(); + set_focus_commodity(); wait_for_stability(¤t,0, send_pgup_many, "paging up to top of commodity list..."); @@ -480,7 +509,7 @@ void take_screenshots(void) { fatal("Paging down seems to generate too many pages - max is %d.", MAX_PAGES); - page_images[npages]= convert_page(current); + page_images[npages]= convert_page(current, 0); free_snapshot(&last); last=current; current=0; debugf("PAGING page %d converted\n",npages); @@ -507,11 +536,11 @@ void take_screenshots(void) { void take_one_screenshot(void) { Snapshot *current=0; - - raise_and_get_details(); - sync_after_input(); + + prepare_ypp_client(); wait_for_stability(¤t,0,0, "taking screenshot..."); - page_images[0]= convert_page(current); + page0_rgbimage= alloc_rgb_image(current->width, current->height); + page_images[0]= convert_page(current, 0); npages= 1; progress_log("collected single screenshot."); } diff --git a/pctb/pixmaps.txt b/pctb/pixmaps.txt new file mode 100644 index 0000000..b5c8166 --- /dev/null +++ b/pctb/pixmaps.txt @@ -0,0 +1,55 @@ +# ypp-sc-tools pctb pixmaps v1 + +Land - Shoppe +P3 +152 47 +255 + 78 116 156 78 116 155 78 116 155 78 116 155 78 116 155 73 109 146 73 109 146 68 101 136 57 84 113 48 71 95 33 56 84 26 38 52 19 28 38 11 17 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 13 18 19 28 38 26 38 52 33 56 84 33 56 84 48 71 95 57 84 113 57 84 113 68 101 136 73 109 146 78 116 155 78 116 155 78 116 155 78 116 156 + 78 116 156 78 116 155 78 116 155 78 116 155 73 109 146 68 101 136 57 84 113 33 56 84 11 17 22 26 22 6 59 55 21 96 93 42 146 137 56 179 166 71 238 220 94 239 220 106 234 211 91 234 211 91 234 211 91 234 211 91 234 211 91 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 234 208 79 238 220 94 242 227 125 65 61 37 132 124 24 155 138 13 174 161 59 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 177 174 98 41 37 17 131 117 9 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 174 161 59 146 137 56 113 109 47 81 77 32 49 45 20 18 14 7 9 13 18 26 38 52 33 56 84 48 71 95 57 84 113 68 101 136 73 109 146 78 116 155 78 116 156 + 78 116 156 78 116 155 78 116 155 73 109 146 57 84 113 26 38 52 34 27 3 87 82 20 191 160 42 233 204 67 231 200 54 228 192 32 231 181 16 229 176 8 229 176 8 229 176 8 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 224 162 1 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 225 168 2 228 192 32 239 220 106 199 184 128 29 26 16 117 105 7 148 130 9 167 151 39 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 160 132 32 169 155 53 169 155 53 105 96 24 59 49 4 150 133 10 156 129 6 158 118 4 158 118 4 158 118 4 158 118 4 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 160 113 2 161 108 0 161 108 0 161 108 0 161 108 0 161 108 0 161 108 0 161 108 0 161 108 0 161 108 0 160 113 2 165 124 10 173 131 16 163 146 29 174 161 59 146 137 56 81 77 32 29 26 16 19 28 38 33 56 84 48 71 95 57 84 113 73 109 146 77 115 154 + 79 117 156 78 116 155 73 109 146 42 64 86 34 27 3 124 113 27 213 184 31 231 181 16 225 168 2 224 162 1 224 162 1 225 168 2 222 180 5 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 222 180 5 226 176 3 226 176 3 226 176 3 226 176 3 225 168 2 233 204 67 243 230 138 149 145 88 70 67 25 117 105 7 130 105 5 142 112 6 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 150 133 10 148 130 9 140 124 9 138 117 8 138 117 8 138 117 8 145 123 8 150 133 10 148 130 9 140 124 9 138 117 8 138 117 8 138 117 8 145 123 8 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 148 130 9 142 112 6 149 132 24 139 129 30 14 10 2 126 112 8 155 131 8 160 113 2 157 124 5 157 124 5 157 124 5 157 124 5 156 129 6 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 131 8 155 135 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 131 8 157 124 5 160 113 2 160 113 2 165 124 10 170 139 22 168 160 66 104 102 60 29 26 16 26 38 52 42 64 86 57 84 113 72 107 144 + 81 118 158 73 109 146 33 56 84 77 65 5 172 147 5 225 168 2 224 162 1 225 168 2 226 176 3 222 180 5 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 185 8 225 188 6 226 176 3 229 176 8 238 220 94 243 230 138 29 26 16 96 86 8 126 112 8 131 91 4 150 133 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 142 22 158 142 22 135 121 9 108 98 7 108 98 7 117 105 7 140 124 9 158 142 22 158 142 22 135 121 9 108 98 7 108 98 7 117 105 7 140 124 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 148 122 5 142 112 6 151 143 32 68 56 4 77 65 5 153 136 10 160 113 2 157 124 5 155 138 13 154 137 11 148 130 9 140 124 9 140 124 9 140 124 9 140 124 9 140 124 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 157 124 5 158 118 4 160 113 2 173 131 16 146 137 56 65 61 37 19 28 38 42 64 86 61 91 122 + 89 125 161 48 71 95 88 74 4 201 166 5 225 168 2 225 168 2 223 184 6 223 185 8 223 184 6 213 177 5 201 166 5 201 166 5 201 166 5 201 166 5 213 177 5 223 184 6 204 174 5 201 166 5 213 177 5 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 185 8 223 185 8 225 188 6 225 188 6 225 168 2 230 195 43 242 227 125 173 163 117 49 45 20 108 98 7 130 105 5 134 112 5 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 186 180 119 186 180 119 146 137 56 105 88 5 131 117 9 158 142 22 169 155 53 185 177 109 186 180 119 150 143 72 126 112 8 140 124 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 150 133 10 142 112 6 149 132 24 124 113 27 43 35 3 150 133 10 157 124 5 160 113 2 154 137 10 158 142 22 158 142 22 135 121 9 108 98 7 108 98 7 108 98 7 108 98 7 108 98 7 135 121 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 158 118 4 165 124 10 164 154 76 84 83 49 19 28 38 48 71 95 + 87 114 142 34 27 3 162 133 4 226 176 3 225 168 2 223 184 6 223 185 8 224 187 16 223 185 8 201 166 5 171 140 4 162 133 4 156 129 6 164 140 6 204 174 5 223 185 8 194 154 4 156 129 6 201 166 5 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 225 188 6 225 188 6 225 188 6 225 188 6 223 184 6 229 176 8 234 208 79 243 230 138 92 93 56 87 82 20 117 105 7 131 91 4 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 181 171 85 185 177 109 186 180 119 175 173 100 87 82 20 117 105 7 158 139 17 179 166 71 186 180 119 175 173 100 131 117 9 135 121 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 142 112 6 149 132 24 151 143 32 34 27 3 105 88 5 150 133 10 160 113 2 155 131 8 154 137 10 167 151 39 174 161 59 177 174 98 171 163 85 171 163 85 171 163 85 164 154 76 115 105 29 108 98 7 131 117 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 136 10 160 113 2 162 130 12 146 137 56 29 26 16 33 50 67 + 60 76 91 88 74 4 201 166 5 224 162 1 222 180 5 223 184 6 224 187 16 228 192 32 184 161 25 92 93 56 18 48 94 55 71 75 68 78 61 131 117 9 213 177 5 202 170 30 55 71 75 105 96 24 194 154 4 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 185 8 223 185 8 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 226 176 3 232 187 12 239 220 106 220 207 130 29 26 16 108 98 7 130 105 5 130 105 5 154 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 163 146 29 174 161 59 186 179 94 185 177 109 186 180 119 164 154 76 117 105 7 158 142 22 185 177 109 183 177 113 132 124 24 140 124 9 150 133 10 150 133 10 143 127 9 140 124 9 140 124 9 140 124 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 145 123 8 142 112 6 151 143 32 87 82 20 68 56 4 150 133 10 158 118 4 158 118 4 154 137 10 154 137 10 167 151 39 181 171 85 182 174 95 186 180 119 171 163 85 181 174 105 186 180 119 186 180 119 113 109 47 108 98 7 140 124 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 11 154 137 11 153 136 10 148 130 9 150 133 10 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 160 113 2 163 146 29 84 83 49 20 29 39 + 21 25 30 148 122 5 209 156 2 225 168 2 223 184 6 223 184 6 228 192 32 231 200 54 91 102 85 33 56 84 127 123 64 72 86 78 18 48 94 115 105 29 226 189 24 91 102 85 18 48 94 105 96 24 194 154 4 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 185 8 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 226 176 3 233 204 67 243 230 138 149 145 88 70 67 25 117 105 7 130 105 5 140 119 3 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 139 17 167 151 39 179 166 71 193 183 105 186 180 119 186 180 119 139 129 30 181 171 85 186 180 119 131 124 45 135 121 9 150 133 10 150 133 10 148 130 9 126 112 8 108 98 7 105 88 5 108 98 7 135 121 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 153 136 10 142 112 6 149 132 24 132 124 24 9 5 1 131 117 9 156 129 6 160 113 2 155 135 9 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 151 143 32 174 161 59 181 171 85 186 180 119 150 143 72 108 98 7 135 121 9 154 137 11 155 138 13 153 136 10 143 127 9 140 124 9 148 130 9 153 136 10 154 137 10 154 137 11 155 138 13 153 136 10 143 127 9 140 124 9 148 130 9 154 137 10 155 138 13 154 137 11 148 130 9 131 117 9 131 117 9 143 127 9 148 130 9 140 124 9 140 124 9 150 133 10 153 136 10 143 127 9 140 124 9 148 130 9 154 137 10 154 137 10 154 137 10 157 124 5 165 124 10 150 143 72 7 10 13 + 0 0 0 171 140 4 204 138 1 222 180 5 223 184 6 223 184 6 230 195 43 234 211 91 18 48 94 55 71 75 194 154 4 231 200 54 65 79 71 139 129 30 230 195 43 182 174 95 18 48 94 105 96 24 194 154 4 201 166 5 201 166 5 213 177 5 223 184 6 223 185 8 223 184 6 213 177 5 201 166 5 201 166 5 213 177 5 223 185 8 223 184 6 213 177 5 201 166 5 201 166 5 201 166 5 201 166 5 213 177 5 223 185 8 223 184 6 213 177 5 201 166 5 201 166 5 201 166 5 204 174 5 213 177 5 225 188 6 225 188 6 225 188 6 213 177 5 204 174 5 204 174 5 213 177 5 222 180 5 231 181 16 238 220 94 243 230 138 29 26 16 96 86 8 117 105 7 131 91 4 150 133 10 154 137 10 154 137 10 154 137 10 154 137 10 153 136 10 153 136 10 158 142 22 167 151 39 179 166 71 183 179 101 186 180 119 186 180 119 186 180 119 150 143 72 126 112 8 148 130 9 158 142 22 158 142 22 169 155 53 181 174 105 183 177 113 171 163 85 105 96 24 105 88 5 135 121 9 153 136 10 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 145 116 12 145 116 12 151 143 32 59 49 4 88 74 4 150 133 10 160 113 2 156 127 7 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 131 124 45 155 138 13 171 163 85 186 180 119 146 137 56 126 112 8 143 127 9 154 137 11 150 133 10 150 133 10 126 112 8 108 98 7 131 117 9 140 124 9 150 133 10 154 137 11 150 133 10 150 133 10 126 112 8 108 98 7 131 117 9 143 127 9 154 137 11 158 139 17 167 151 39 131 124 45 105 88 5 131 117 9 140 124 9 117 105 7 117 105 7 143 127 9 153 136 10 131 117 9 117 105 7 140 124 9 154 137 10 154 137 10 154 137 10 155 135 9 160 113 2 179 166 71 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 228 192 32 234 211 91 48 71 95 18 48 94 96 93 42 201 166 5 201 166 5 194 154 4 226 189 24 181 171 85 18 48 94 115 105 29 171 140 4 156 127 7 156 129 6 194 154 4 213 177 5 223 185 8 223 185 8 201 166 5 162 133 4 162 133 4 194 154 4 213 177 5 223 184 6 201 166 5 183 150 5 172 147 5 156 129 6 162 133 4 201 166 5 222 180 5 223 185 8 201 166 5 171 140 4 172 147 5 156 129 6 164 140 6 201 166 5 213 177 5 225 188 6 225 188 6 204 174 5 164 140 6 164 140 6 183 150 5 204 174 5 226 176 3 230 195 43 242 227 125 199 184 128 41 37 17 108 98 7 130 105 5 134 112 5 154 137 10 154 137 10 153 136 10 153 136 10 154 137 10 154 137 10 154 136 10 158 142 22 167 151 39 181 171 85 185 177 109 186 180 119 181 174 105 105 88 5 131 117 9 158 142 22 169 155 53 179 166 71 183 177 113 167 151 39 174 161 59 186 180 119 175 173 100 108 98 7 131 117 9 154 136 10 154 137 10 153 136 10 153 136 10 154 137 10 154 137 10 154 137 10 148 130 9 130 105 5 151 143 32 115 105 29 53 43 3 150 133 10 157 124 5 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 146 137 56 185 177 109 186 180 119 164 159 94 108 98 7 126 112 8 148 130 9 155 138 13 150 133 10 146 137 56 164 159 94 131 124 45 105 88 5 108 98 7 148 130 9 158 142 22 150 133 10 146 137 56 164 159 94 131 124 45 108 98 7 117 105 7 158 142 22 181 171 85 183 177 113 164 159 94 146 137 56 149 132 24 168 160 66 146 137 56 115 105 29 153 136 10 169 155 53 150 143 72 105 96 24 131 117 9 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 228 192 32 234 208 79 149 145 88 33 56 84 18 48 94 55 71 75 117 105 7 156 129 6 223 185 8 181 171 85 18 48 94 92 93 56 65 79 71 55 71 75 96 93 42 156 127 7 204 174 5 224 187 16 176 151 24 92 93 56 65 79 71 105 96 24 148 122 5 194 154 4 226 189 24 104 102 60 92 93 56 68 78 61 65 79 71 105 96 24 162 133 4 222 180 5 202 170 30 72 86 78 92 93 56 65 79 71 68 78 61 117 105 7 156 129 6 213 177 5 227 193 15 176 151 24 72 86 78 68 78 61 96 93 42 149 131 6 183 150 5 213 177 5 229 176 8 237 216 71 243 230 138 104 102 60 87 82 20 117 105 7 131 91 4 145 123 8 153 136 10 154 137 10 154 136 10 154 136 9 154 136 9 154 136 9 154 137 10 163 146 29 174 161 59 183 179 101 186 180 119 164 159 94 96 86 8 138 117 8 167 151 39 181 171 85 183 177 113 171 163 85 150 143 72 183 177 113 183 177 113 164 154 76 117 105 7 135 121 9 155 135 9 155 135 9 154 136 9 154 136 10 154 136 10 154 136 10 154 136 10 142 112 6 149 132 24 151 143 32 26 22 6 108 98 7 155 135 9 160 113 2 155 135 9 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 169 155 53 185 177 109 186 180 119 183 177 113 131 124 45 108 98 7 153 136 10 167 151 39 186 180 119 177 174 98 185 177 109 186 180 119 183 177 113 96 86 8 143 127 9 169 155 53 183 177 113 181 174 105 185 177 109 186 180 119 183 177 113 115 105 29 153 136 10 182 174 95 186 180 119 171 163 85 150 143 72 167 151 39 186 180 119 186 180 119 108 98 7 158 142 22 181 171 85 183 177 113 108 98 7 131 117 9 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 224 187 16 230 195 43 233 204 67 186 179 94 48 71 95 18 48 94 33 56 84 105 96 24 201 166 5 179 166 71 18 48 94 65 79 71 127 123 64 72 86 78 18 48 94 126 112 8 223 184 6 146 137 56 33 56 84 104 102 60 33 56 84 18 48 94 68 78 61 172 147 5 150 143 72 18 48 94 33 56 84 104 102 60 33 56 84 18 48 94 105 96 24 204 174 5 91 102 85 18 48 94 42 64 86 91 102 85 18 48 94 18 48 94 138 117 8 222 180 5 146 137 56 18 48 94 114 113 72 104 102 60 18 48 94 96 93 42 164 140 6 204 174 5 231 188 2 234 196 15 239 220 106 220 207 130 29 26 16 108 98 7 117 105 7 130 105 5 155 137 10 156 138 9 156 138 9 155 139 10 156 138 9 156 138 9 155 139 10 163 144 17 167 151 39 186 179 94 186 180 119 164 159 94 88 74 4 131 117 9 167 151 39 186 179 94 186 180 119 186 180 119 171 163 85 169 155 53 167 151 39 143 127 9 105 88 5 135 121 9 156 138 9 156 138 9 156 138 9 156 138 9 156 138 9 154 138 10 145 123 8 142 112 6 151 143 32 87 82 20 68 56 4 155 139 10 158 118 4 157 124 5 155 137 10 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 139 129 30 174 161 59 182 174 95 186 180 119 186 180 119 108 98 7 158 142 22 182 174 95 181 174 105 135 121 9 174 161 59 183 179 101 186 180 119 131 124 45 131 117 9 181 171 85 183 177 113 140 124 9 169 155 53 182 174 95 186 180 119 150 143 72 126 112 8 179 166 71 186 180 119 150 143 72 126 112 8 169 155 53 185 177 109 186 180 119 146 137 56 158 139 17 183 177 113 150 143 72 117 105 7 135 121 9 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 223 185 8 224 187 16 226 189 24 231 200 54 215 195 75 91 102 85 18 48 94 68 78 61 171 140 4 179 166 71 18 48 94 132 124 24 230 195 43 164 159 94 18 48 94 115 105 29 230 195 43 91 102 85 92 93 56 201 166 5 215 195 75 48 71 95 33 56 84 171 140 4 233 204 67 18 48 94 104 102 60 223 185 8 215 195 75 33 56 84 55 71 75 201 166 5 181 171 85 18 48 94 149 132 24 230 195 43 164 154 76 18 48 94 96 93 42 227 193 15 72 86 78 72 86 78 131 124 45 55 71 75 18 48 94 92 93 56 173 151 6 204 174 5 227 195 6 231 188 2 233 215 55 243 230 138 164 159 94 70 67 25 117 105 7 130 105 5 140 119 3 156 138 9 156 138 9 155 139 10 156 138 9 156 138 9 157 137 8 163 144 17 167 151 39 181 171 85 186 180 119 164 159 94 88 74 4 131 117 9 167 151 39 190 175 80 185 177 109 186 180 119 139 129 30 126 112 8 151 143 32 183 177 113 124 113 27 140 124 9 157 137 8 157 137 8 157 137 8 156 138 9 156 138 9 155 131 8 142 112 6 158 142 22 132 124 24 9 5 1 143 127 9 155 131 8 160 113 2 154 138 10 155 139 10 155 137 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 124 113 27 154 137 10 179 166 71 181 174 105 186 180 119 131 124 45 174 161 59 183 177 113 181 174 105 105 88 5 155 138 13 181 171 85 183 177 113 164 159 94 150 133 10 185 177 109 186 180 119 115 105 29 148 130 9 181 171 85 183 177 113 183 177 113 117 105 7 179 166 71 186 180 119 146 137 56 126 112 8 158 142 22 181 171 85 183 177 113 181 174 105 168 160 66 183 177 113 126 112 8 131 117 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 224 187 16 213 184 31 158 142 22 183 150 5 230 195 43 215 195 75 18 48 94 55 71 75 171 140 4 179 166 71 18 48 94 115 105 29 224 187 16 181 171 85 18 48 94 124 113 27 233 204 67 18 48 94 55 71 75 156 127 7 230 195 43 149 145 88 18 48 94 124 113 27 233 204 67 18 48 94 84 83 49 172 147 5 233 204 67 91 102 85 33 56 84 171 140 4 179 166 71 18 48 94 115 105 29 213 177 5 234 208 79 33 56 84 84 83 49 231 200 54 18 48 94 18 48 94 42 64 86 146 137 56 213 184 31 212 186 4 164 140 6 204 174 5 229 202 5 227 195 6 231 188 2 238 220 94 243 230 138 29 26 16 96 86 8 126 112 8 130 105 5 155 135 9 158 141 9 158 141 9 156 138 9 158 141 9 158 141 9 167 151 39 174 161 59 182 174 95 186 180 119 181 174 105 124 113 27 140 124 9 167 151 39 179 166 71 186 179 94 185 177 109 186 180 119 186 180 119 186 180 119 167 151 39 131 117 9 149 131 6 158 141 9 158 141 9 158 141 9 158 141 9 158 141 9 142 112 6 155 131 8 151 143 32 53 43 3 88 74 4 155 135 9 160 113 2 157 135 6 155 139 10 155 139 10 155 139 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 115 105 29 117 105 7 167 151 39 183 177 113 186 180 119 117 105 7 174 161 59 185 177 109 186 180 119 146 137 56 117 105 7 158 142 22 183 177 113 146 137 56 167 151 39 183 179 101 186 180 119 150 143 72 117 105 7 158 142 22 181 174 105 164 154 76 135 121 9 179 166 71 186 180 119 146 137 56 105 88 5 126 112 8 174 161 59 193 183 105 186 180 119 186 180 119 150 143 72 126 112 8 140 124 9 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 228 192 32 198 179 67 18 48 94 115 105 29 183 150 5 191 160 42 18 48 94 68 78 61 201 166 5 179 166 71 18 48 94 105 96 24 201 166 5 179 166 71 18 48 94 115 105 29 230 195 43 91 102 85 18 48 94 96 93 42 194 154 4 131 124 45 42 64 86 183 150 5 233 204 67 18 48 94 47 66 78 148 122 5 223 185 8 72 86 78 68 78 61 201 166 5 179 166 71 18 48 94 84 83 49 171 140 4 213 184 31 18 48 94 115 105 29 231 200 54 91 102 85 33 56 84 158 139 17 183 150 5 158 142 22 92 93 56 173 151 6 204 174 5 229 202 5 229 202 5 231 188 2 235 208 26 242 227 125 199 184 128 41 37 17 108 98 7 130 105 5 142 112 6 158 141 9 161 141 8 161 141 8 161 141 8 161 141 8 167 151 39 174 161 59 181 171 85 179 166 71 167 151 39 148 130 9 155 131 8 163 144 17 167 151 39 179 166 71 179 166 71 179 166 71 179 166 71 163 146 29 155 135 9 155 131 8 157 137 8 161 141 8 161 141 8 161 141 8 161 141 8 156 129 6 142 112 6 158 142 22 115 105 29 59 49 4 156 138 9 162 123 4 162 123 4 158 141 9 158 141 9 155 139 10 155 139 10 155 137 10 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 186 180 119 175 173 100 181 174 105 186 180 119 186 180 119 164 154 76 131 117 9 167 151 39 186 179 94 186 180 119 186 180 119 181 174 105 181 174 105 183 177 113 131 117 9 158 142 22 186 179 94 186 180 119 186 180 119 183 177 113 177 174 98 183 177 113 132 124 24 155 138 13 181 171 85 186 180 119 181 174 105 164 154 76 126 112 8 163 146 29 181 171 85 183 177 113 181 174 105 131 117 9 135 121 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 228 192 32 234 211 91 42 64 86 18 48 94 33 56 84 18 48 94 18 48 94 158 142 22 226 189 24 127 126 80 18 48 94 92 93 56 213 177 5 127 126 80 18 48 94 96 93 42 224 187 16 181 171 85 33 56 84 18 48 94 33 56 84 18 48 94 131 124 45 222 180 5 234 208 79 18 48 94 18 48 94 42 64 86 55 71 75 33 56 84 158 139 17 224 187 16 181 171 85 18 48 94 18 48 94 65 79 71 42 64 86 55 71 75 194 154 4 231 200 54 182 174 95 33 56 84 18 48 94 65 79 71 18 48 94 163 146 29 204 174 5 212 186 4 229 202 5 229 202 5 229 202 5 231 188 2 237 216 71 243 230 138 114 113 72 87 82 20 126 112 8 131 91 4 156 129 6 161 141 8 161 141 8 161 141 8 161 141 8 163 144 17 176 151 24 176 151 24 176 151 24 163 144 17 164 140 6 161 141 8 164 140 6 163 144 17 176 151 24 176 151 24 176 151 24 176 151 24 163 144 17 161 141 8 161 141 8 161 141 8 161 141 8 161 141 8 161 141 8 161 141 8 142 112 6 158 142 22 151 143 32 20 15 1 117 105 7 157 137 8 167 118 3 157 137 8 155 139 10 158 141 9 156 138 9 155 139 10 155 139 10 155 137 10 154 137 10 167 151 39 181 171 85 182 174 95 181 171 85 181 171 85 181 171 85 179 166 71 169 155 53 150 133 10 150 133 10 158 142 22 179 166 71 181 171 85 182 174 95 182 174 95 169 155 53 150 133 10 143 127 9 158 142 22 179 166 71 181 171 85 181 171 85 182 174 95 169 155 53 155 138 13 143 127 9 158 142 22 181 171 85 183 179 101 182 174 95 151 143 32 140 124 9 163 146 29 181 171 85 186 180 119 131 124 45 131 117 9 150 133 10 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 223 184 6 223 184 6 223 184 6 228 192 32 234 208 79 150 143 72 174 161 59 127 126 80 131 124 45 201 166 5 213 177 5 230 195 43 149 145 88 127 123 64 131 124 45 226 189 24 149 145 88 127 123 64 131 124 45 213 177 5 233 204 67 234 208 79 150 143 72 127 123 64 208 174 13 213 177 5 226 189 24 234 208 79 18 48 94 72 86 78 113 109 47 146 137 56 208 174 13 213 177 5 228 192 32 181 171 85 18 48 94 104 102 60 127 123 64 167 151 39 225 188 6 213 177 5 228 197 24 234 208 79 211 204 83 150 143 72 146 137 56 184 161 25 212 186 4 218 193 4 227 195 6 229 202 5 229 202 5 229 202 5 233 197 2 234 196 15 239 220 106 243 230 138 29 26 16 108 98 7 126 112 8 147 102 2 164 140 6 161 141 8 164 140 6 164 140 6 164 140 6 163 144 8 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 163 144 8 163 144 8 164 140 6 163 144 8 163 144 8 163 144 8 163 144 8 163 144 8 163 144 8 148 122 5 156 127 7 167 151 39 77 65 5 77 65 5 158 141 9 167 118 3 162 133 4 158 141 9 158 141 9 158 141 9 158 141 9 155 139 10 155 139 10 155 139 10 154 137 10 167 151 39 174 161 59 169 155 53 167 151 39 167 151 39 167 151 39 163 146 29 154 137 11 155 138 13 153 136 10 158 139 17 163 146 29 169 155 53 174 161 59 167 151 39 154 137 11 154 137 11 153 136 10 158 139 17 163 146 29 167 151 39 179 166 71 167 151 39 153 136 10 154 137 11 153 136 10 158 139 17 167 151 39 179 166 71 167 151 39 155 138 13 163 146 29 167 151 39 183 177 113 171 163 85 117 105 7 140 124 9 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 161 108 0 174 161 59 0 0 0 + 0 0 0 171 140 4 204 138 1 222 180 5 223 184 6 223 184 6 224 187 16 230 195 43 228 192 32 230 195 43 230 195 43 224 187 16 223 184 6 223 185 8 230 195 43 231 200 54 228 192 32 222 180 5 226 189 24 231 200 54 228 192 32 222 180 5 223 184 6 226 189 24 230 195 43 230 195 43 226 189 24 223 184 6 223 185 8 228 192 32 233 204 67 18 48 94 92 93 56 171 140 4 213 177 5 223 185 8 224 187 16 228 192 32 179 166 71 18 48 94 132 124 24 194 154 4 213 177 5 227 195 6 225 188 6 227 193 15 228 197 24 231 200 54 232 207 38 229 201 13 227 195 6 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 235 205 2 233 197 2 239 217 40 243 230 138 173 163 117 59 55 21 117 105 7 130 105 5 148 122 5 163 144 8 163 144 8 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 162 133 4 148 113 4 163 146 29 132 124 24 34 27 3 156 138 9 162 133 4 167 118 3 161 141 8 158 141 9 158 141 9 158 141 9 158 141 9 156 138 9 155 139 10 155 139 10 155 137 10 158 142 22 163 146 29 163 146 29 163 146 29 163 146 29 163 146 29 158 142 22 153 136 10 153 136 10 154 137 10 154 137 10 154 137 11 158 142 22 163 146 29 158 142 22 154 137 10 153 136 10 153 136 10 154 137 10 154 137 10 158 142 22 163 146 29 158 142 22 154 137 10 153 136 10 153 136 10 154 137 10 158 142 22 163 146 29 158 142 22 163 146 29 179 166 71 186 180 119 185 177 109 135 121 9 131 117 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 161 108 0 174 161 59 0 0 0 + 0 0 0 179 135 3 204 138 1 209 156 2 224 162 1 225 168 2 225 168 2 222 174 11 231 181 16 226 189 24 226 189 24 224 187 16 223 184 6 223 184 6 224 187 16 226 189 24 226 189 24 223 184 6 224 187 16 226 189 24 226 189 24 223 184 6 223 184 6 223 184 6 224 187 16 226 189 24 224 187 16 223 184 6 226 189 24 230 195 43 149 145 88 18 48 94 33 56 84 172 147 5 201 166 5 223 185 8 228 192 32 231 200 54 91 102 85 18 48 94 68 78 61 183 150 5 204 174 5 225 188 6 227 195 6 227 195 6 227 193 15 228 197 24 228 197 24 229 201 13 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 234 210 4 235 205 2 233 197 2 243 230 87 243 230 138 68 78 61 96 86 8 126 112 8 130 105 5 164 140 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 164 140 6 162 133 4 162 133 4 164 140 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 167 144 6 148 113 4 170 139 22 151 143 32 43 35 3 105 88 5 164 140 6 167 118 3 164 140 6 163 144 8 161 141 8 158 141 9 158 141 9 158 141 9 158 141 9 156 138 9 155 139 10 155 139 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 179 166 71 158 142 22 148 130 9 150 133 10 153 136 10 154 136 10 155 131 8 157 124 5 158 118 4 160 113 2 161 108 0 160 113 2 157 124 5 167 151 39 0 0 0 + 0 0 0 34 27 3 105 88 5 153 111 3 187 143 14 201 166 5 201 166 5 209 156 2 209 156 2 224 162 1 224 162 1 224 162 1 224 162 1 225 168 2 226 176 3 226 176 3 222 180 5 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 226 189 24 231 200 54 233 204 67 233 204 67 224 187 16 201 166 5 213 177 5 225 188 6 228 192 32 233 204 67 233 204 67 231 200 54 227 193 15 204 174 5 212 186 4 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 235 205 2 234 210 4 234 210 4 234 210 4 235 205 2 234 206 16 242 227 125 220 207 130 41 37 17 117 105 7 134 112 5 148 113 4 167 144 6 164 140 6 162 133 4 162 133 4 157 124 5 158 118 4 153 111 3 153 111 3 158 118 4 158 118 4 158 118 4 158 118 4 153 111 3 160 113 2 157 124 5 156 129 6 162 133 4 171 140 4 172 147 5 172 147 5 156 129 6 157 124 5 167 151 39 105 96 24 68 56 4 163 144 8 169 130 4 169 130 4 163 144 8 163 144 8 163 144 8 158 141 9 158 141 9 158 141 9 158 141 9 158 141 9 155 139 10 155 139 10 155 139 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 142 22 163 146 29 163 146 29 158 139 17 157 124 5 158 118 4 160 113 2 161 108 0 160 113 2 158 118 4 157 124 5 156 127 7 148 130 9 148 130 9 131 117 9 77 65 5 0 0 0 + 0 0 0 124 113 27 81 77 32 49 45 20 9 5 1 34 27 3 59 49 4 88 74 4 147 102 2 179 135 3 194 154 4 201 166 5 201 166 5 209 156 2 209 156 2 224 162 1 224 162 1 224 162 1 225 168 2 225 168 2 226 176 3 222 180 5 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 223 184 6 224 187 16 226 189 24 226 189 24 226 189 24 224 187 16 223 185 8 223 184 6 225 188 6 227 193 15 228 197 24 228 197 24 228 197 24 227 193 15 225 188 6 225 188 6 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 235 205 2 234 210 4 234 210 4 234 210 4 234 210 4 235 205 2 240 220 56 243 230 138 127 126 80 87 82 20 126 112 8 147 102 2 153 111 3 160 113 2 158 118 4 162 123 4 156 127 7 156 129 6 162 133 4 162 133 4 162 133 4 157 135 6 162 133 4 162 133 4 162 133 4 156 129 6 157 124 5 158 118 4 153 111 3 153 111 3 153 111 3 158 118 4 160 113 2 176 151 24 151 143 32 14 10 2 131 117 9 171 140 4 171 124 2 167 144 6 163 144 8 163 144 8 163 144 8 161 141 8 158 141 9 158 141 9 158 141 9 158 141 9 156 138 9 155 139 10 155 139 10 155 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 131 8 156 127 7 158 118 4 158 118 4 160 113 2 160 113 2 158 118 4 157 124 5 156 127 7 148 130 9 148 130 9 143 127 9 143 127 9 131 117 9 105 88 5 77 65 5 53 43 3 20 15 1 96 93 42 0 0 0 + 0 0 0 126 120 3 169 155 53 183 179 101 183 179 101 149 145 88 127 123 64 96 93 42 59 55 21 20 15 1 20 15 1 53 43 3 88 74 4 131 91 4 171 124 2 194 154 4 201 166 5 201 166 5 209 156 2 209 156 2 224 162 1 224 162 1 224 162 1 225 168 2 225 168 2 226 176 3 222 180 5 223 184 6 223 184 6 223 184 6 223 185 8 223 185 8 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 235 205 2 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 243 230 87 243 230 138 26 22 6 108 98 7 140 119 3 164 140 6 172 147 5 167 144 6 156 127 7 153 111 3 148 94 1 156 86 11 147 68 5 147 68 5 147 68 5 147 68 5 147 68 5 147 68 5 156 86 11 148 94 1 147 102 2 148 122 5 157 135 6 164 140 6 162 133 4 171 139 13 167 151 39 77 65 5 88 74 4 167 144 6 171 124 2 171 140 4 167 144 6 167 144 6 163 144 8 163 144 8 163 144 8 161 141 8 158 141 9 158 141 9 158 141 9 158 141 9 154 138 10 155 139 10 155 139 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 156 129 6 157 124 5 158 118 4 160 113 2 161 108 0 160 113 2 158 118 4 157 124 5 156 129 6 148 130 9 148 130 9 143 127 9 143 127 9 126 112 8 96 86 8 68 56 4 43 35 3 20 15 1 18 14 7 49 45 20 81 77 32 113 109 47 146 137 56 181 171 85 0 0 0 + 0 0 0 126 112 8 150 133 10 176 139 27 178 152 46 182 155 55 181 171 85 182 174 95 183 179 101 183 179 101 164 159 94 127 126 80 104 102 60 70 67 25 34 27 3 14 10 2 43 35 3 68 56 4 105 88 5 153 111 3 194 154 4 201 166 5 201 166 5 209 156 2 209 156 2 224 162 1 224 162 1 224 162 1 224 162 1 225 168 2 226 176 3 222 180 5 223 184 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 225 188 6 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 235 205 2 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 235 205 2 239 217 40 243 230 138 183 177 113 59 55 21 126 120 3 148 122 5 153 111 3 156 86 11 160 94 16 179 128 28 191 160 42 204 177 50 218 198 56 240 220 56 239 234 68 239 234 68 240 220 56 218 198 56 204 177 50 191 160 42 179 128 28 160 94 16 156 86 11 147 102 2 148 122 5 158 141 9 132 124 24 43 35 3 167 144 6 179 135 3 178 128 2 167 148 8 167 148 8 167 144 6 163 144 8 163 144 8 163 144 8 163 144 8 158 141 9 158 141 9 158 141 9 158 141 9 158 141 9 155 139 10 155 139 10 155 139 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 156 127 7 157 124 5 158 118 4 160 113 2 161 108 0 160 113 2 158 118 4 156 127 7 156 129 6 150 133 10 143 127 9 143 127 9 143 127 9 117 105 7 88 74 4 59 49 4 34 27 3 9 5 1 26 22 6 59 55 21 96 93 42 113 109 47 146 137 56 168 160 66 168 160 66 168 160 66 169 155 53 179 166 71 193 183 105 0 0 0 + 0 0 0 126 112 8 140 119 3 160 113 2 162 130 12 162 130 12 171 124 10 170 139 22 181 142 38 182 155 55 179 166 71 181 171 85 182 174 95 186 179 94 183 179 101 175 173 100 149 145 88 113 109 47 81 77 32 49 45 20 0 0 0 34 27 3 68 56 4 88 74 4 147 102 2 179 135 3 194 154 4 201 166 5 201 166 5 212 168 4 212 168 4 225 168 2 225 168 2 225 168 2 225 168 2 226 176 3 222 180 5 225 188 6 225 188 6 225 188 6 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 235 205 2 234 210 4 243 230 87 243 230 138 114 113 72 149 110 23 156 86 11 176 139 27 204 177 50 227 222 74 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 227 222 74 204 177 50 176 139 27 156 86 11 162 123 4 53 43 3 105 88 5 167 144 6 179 135 3 178 128 2 172 147 5 167 148 8 167 148 8 167 144 6 163 144 8 163 144 8 163 144 8 161 141 8 158 141 9 158 141 9 158 141 9 158 141 9 156 138 9 155 139 10 155 139 10 155 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 136 10 155 131 8 157 124 5 158 118 4 160 113 2 161 108 0 160 113 2 158 118 4 157 124 5 156 127 7 148 130 9 148 130 9 143 127 9 143 127 9 135 121 9 108 98 7 77 65 5 53 43 3 26 22 6 0 0 0 41 37 17 70 67 25 96 93 42 131 124 45 150 143 72 168 160 66 168 160 66 174 161 59 169 155 53 167 151 39 176 139 27 173 131 16 165 124 10 167 118 3 174 161 59 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 155 131 8 157 124 5 158 118 4 158 118 4 167 118 3 171 124 10 173 131 16 176 139 27 178 152 46 174 161 59 181 171 85 182 174 95 182 174 95 183 179 101 183 179 101 149 145 88 127 123 64 96 93 42 59 55 21 18 14 7 20 15 1 53 43 3 88 74 4 131 91 4 171 124 2 194 154 4 201 166 5 201 166 5 212 168 4 212 168 4 225 168 2 226 176 3 225 168 2 226 176 3 222 180 5 223 184 6 225 188 6 227 195 6 227 195 6 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 229 202 5 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 235 205 2 238 216 13 238 216 13 202 170 30 156 86 11 181 142 38 218 198 56 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 239 234 68 218 198 56 181 142 38 156 86 11 147 102 2 157 135 6 167 144 6 178 128 2 171 140 4 172 147 5 167 148 8 167 148 8 167 144 6 163 144 8 163 144 8 163 144 8 161 141 8 158 141 9 158 141 9 158 141 9 158 141 9 155 139 10 155 139 10 155 139 10 154 137 10 155 135 9 156 129 6 157 124 5 158 118 4 160 113 2 161 108 0 160 113 2 158 118 4 157 124 5 155 131 8 150 133 10 148 130 9 143 127 9 143 127 9 126 112 8 96 86 8 68 56 4 43 35 3 20 15 1 14 10 2 49 45 20 81 77 32 113 109 47 131 124 45 168 160 66 168 160 66 168 160 66 174 161 59 167 151 39 163 146 29 170 139 22 173 131 16 167 118 3 160 113 2 160 113 2 158 118 4 157 124 5 155 131 8 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 156 129 6 157 124 5 158 118 4 167 118 3 167 118 3 171 124 10 176 139 27 181 142 38 182 155 55 179 166 71 181 171 85 182 174 95 183 179 101 183 179 101 164 159 94 127 123 64 96 93 42 70 67 25 34 27 3 14 10 2 43 35 3 77 65 5 105 88 5 158 118 4 194 154 4 204 174 5 204 174 5 212 168 4 212 168 4 226 176 3 222 180 5 226 176 3 226 176 3 231 188 2 231 188 2 227 195 6 229 202 5 229 202 5 229 202 5 235 205 2 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 235 205 2 238 216 13 218 193 4 178 128 2 179 128 28 210 190 66 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 210 190 66 179 128 28 148 94 1 148 122 5 162 133 4 171 124 2 171 140 4 172 147 5 167 148 8 167 144 6 163 144 8 163 144 8 163 144 8 163 144 8 158 141 9 158 141 9 158 141 9 157 135 6 156 129 6 157 124 5 158 118 4 160 113 2 160 113 2 158 118 4 157 124 5 156 127 7 155 131 8 150 133 10 148 130 9 143 127 9 143 127 9 117 105 7 88 74 4 59 49 4 34 27 3 14 10 2 26 22 6 59 55 21 87 82 20 113 109 47 146 137 56 168 160 66 168 160 66 174 161 59 169 155 53 167 151 39 176 139 27 173 131 16 171 124 10 167 118 3 158 118 4 158 118 4 157 124 5 156 129 6 155 135 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 138 13 154 137 11 148 130 9 140 124 9 140 124 9 143 127 9 150 133 10 155 131 8 156 127 7 157 124 5 158 118 4 167 118 3 171 124 10 173 131 16 176 139 27 178 152 46 174 161 59 181 171 85 182 174 95 186 179 94 183 179 101 175 173 100 150 143 72 113 109 47 81 77 32 41 37 17 0 0 0 34 27 3 68 56 4 105 88 5 148 113 4 194 154 4 204 174 5 204 174 5 213 177 5 213 177 5 223 184 6 225 188 6 231 188 2 231 188 2 231 188 2 233 197 2 229 202 5 235 205 2 234 210 4 234 210 4 234 210 4 234 210 4 234 210 4 235 205 2 234 210 4 213 177 5 156 86 11 191 160 42 227 222 74 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 227 222 74 191 160 42 156 86 11 148 113 4 162 123 4 171 124 2 172 147 5 172 147 5 167 148 8 167 144 6 163 144 8 164 140 6 169 130 4 162 123 4 167 118 3 161 108 0 160 113 2 162 123 4 157 124 5 155 131 8 150 133 10 148 130 9 143 127 9 143 127 9 140 124 9 108 98 7 77 65 5 59 49 4 26 22 6 0 0 0 41 37 17 70 67 25 96 93 42 131 124 45 150 143 72 168 160 66 168 160 66 174 161 59 178 152 46 176 139 27 170 139 22 173 131 16 167 118 3 167 118 3 158 118 4 157 124 5 156 127 7 155 131 8 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 155 138 13 154 137 11 150 133 10 150 133 10 140 124 9 126 112 8 117 105 7 126 112 8 135 121 9 140 124 9 148 130 9 154 137 10 154 137 10 154 137 10 154 136 10 155 131 8 157 124 5 157 124 5 165 124 10 171 124 10 171 124 10 176 139 27 181 142 38 182 155 55 179 166 71 181 171 85 182 174 95 183 179 101 183 179 101 149 145 88 127 123 64 96 93 42 59 55 21 14 10 2 26 22 6 59 49 4 88 74 4 142 112 6 183 150 5 204 174 5 212 186 4 212 186 4 212 186 4 225 188 6 227 195 6 233 197 2 233 197 2 233 197 2 235 205 2 235 205 2 235 205 2 234 210 4 213 177 5 160 94 16 204 177 50 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 233 229 70 204 177 50 160 94 16 142 112 6 158 118 4 171 124 2 169 130 4 178 128 2 171 124 2 167 118 3 171 124 2 169 130 4 162 133 4 162 133 4 155 139 10 150 133 10 148 130 9 148 130 9 126 112 8 105 88 5 77 65 5 43 35 3 20 15 1 9 5 1 49 45 20 81 77 32 96 93 42 131 124 45 168 160 66 168 160 66 168 160 66 169 155 53 167 151 39 176 139 27 173 131 16 171 124 10 167 118 3 158 118 4 158 118 4 157 124 5 155 131 8 154 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 155 138 13 158 139 17 154 137 11 150 133 10 149 132 24 150 143 72 146 137 56 146 137 56 124 113 27 115 105 29 108 98 7 140 124 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 156 129 6 156 127 7 165 124 10 165 124 10 171 124 10 173 131 16 176 139 27 178 152 46 179 166 71 181 171 85 186 179 94 183 179 101 183 179 101 164 159 94 127 126 80 96 93 42 70 67 25 34 27 3 20 15 1 53 43 3 88 74 4 130 105 5 171 140 4 212 186 4 212 186 4 218 193 4 218 193 4 227 195 6 229 202 5 235 205 2 213 177 5 163 101 23 204 177 50 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 204 177 50 163 101 23 148 113 4 162 123 4 179 135 3 171 140 4 164 140 6 161 141 8 154 136 9 155 131 8 149 131 6 126 112 8 96 86 8 68 56 4 43 35 3 14 10 2 26 22 6 59 55 21 81 77 32 113 109 47 146 137 56 168 160 66 168 160 66 169 155 53 178 152 46 176 139 27 170 139 22 173 131 16 171 124 10 162 123 4 162 123 4 157 124 5 156 129 6 155 135 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 158 142 22 163 146 29 163 146 29 168 160 66 181 174 105 181 174 105 181 171 85 181 174 105 181 174 105 181 174 105 105 96 24 131 117 9 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 135 9 156 127 7 162 130 12 162 130 12 173 131 16 178 128 2 176 139 27 178 152 46 191 160 42 190 172 60 190 175 80 186 179 94 193 183 105 175 173 100 150 143 72 113 109 47 81 77 32 49 45 20 9 5 1 43 35 3 77 65 5 130 105 5 171 140 4 194 154 4 204 174 5 160 94 16 204 177 50 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 204 177 50 160 94 16 148 113 4 157 135 6 126 112 8 117 105 7 88 74 4 59 49 4 34 27 3 9 5 1 34 27 3 70 67 25 96 93 42 131 124 45 150 143 72 168 160 66 168 160 66 178 152 46 178 152 46 176 139 27 165 124 10 160 113 2 153 111 3 158 118 4 157 124 5 156 127 7 155 135 9 153 136 10 143 127 9 140 124 9 148 130 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 138 13 154 137 11 148 130 9 140 124 9 140 124 9 140 124 9 148 113 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 11 167 151 39 169 155 53 179 166 71 181 174 105 164 154 76 158 142 22 169 155 53 174 161 59 181 171 85 181 174 105 131 124 45 131 117 9 153 136 10 154 137 10 154 137 11 154 137 11 153 136 10 150 133 10 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 137 10 155 139 10 155 139 10 158 141 9 158 141 9 157 137 8 162 133 4 171 139 13 171 139 13 179 135 3 187 143 14 176 151 24 191 160 42 190 172 60 190 175 80 195 188 89 195 188 89 193 183 105 164 154 76 127 123 64 96 93 42 59 55 21 59 49 4 147 68 5 191 160 42 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 227 222 74 191 160 42 147 68 5 26 22 6 41 37 17 49 45 20 70 67 25 96 93 42 131 124 45 168 160 66 168 160 66 169 155 53 178 152 46 176 139 27 173 131 16 171 124 10 171 124 10 165 124 10 160 132 32 162 130 12 143 127 9 131 124 45 108 98 7 135 121 9 148 130 9 155 138 13 158 142 22 153 136 10 132 124 24 108 98 7 140 124 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 142 22 158 142 22 149 132 24 139 129 30 124 113 27 108 98 7 142 112 6 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 155 138 13 167 151 39 179 166 71 181 174 105 175 173 100 117 105 7 143 127 9 158 142 22 167 151 39 179 166 71 168 160 66 149 132 24 148 130 9 153 136 10 148 130 9 143 127 9 148 130 9 135 121 9 131 117 9 150 133 10 153 136 10 148 130 9 140 124 9 140 124 9 140 124 9 143 127 9 150 133 10 148 130 9 140 124 9 140 124 9 150 133 10 155 139 10 150 133 10 143 127 9 143 127 9 155 139 10 158 141 9 152 137 8 148 130 9 152 137 8 161 141 8 171 139 13 171 139 13 187 143 14 187 143 14 187 143 14 191 160 42 204 177 50 198 179 67 195 188 89 195 188 89 177 139 60 174 128 42 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 174 128 42 131 91 4 151 143 32 168 160 66 178 152 46 181 142 38 176 139 27 173 131 16 171 124 10 171 124 10 165 124 10 156 127 7 155 131 8 155 135 9 154 137 10 154 137 11 167 151 39 169 155 53 168 160 66 186 180 119 115 105 29 105 88 5 140 124 9 158 142 22 167 151 39 168 160 66 183 177 113 115 105 29 131 117 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 169 155 53 181 171 85 186 180 119 150 143 72 108 98 7 130 105 5 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 158 142 22 167 151 39 181 171 85 181 174 105 146 137 56 108 98 7 135 121 9 153 136 10 158 142 22 167 151 39 163 146 29 153 136 10 158 139 17 158 142 22 135 121 9 132 124 24 126 112 8 131 124 45 108 98 7 135 121 9 153 136 10 131 117 9 124 113 27 124 113 27 105 88 5 117 105 7 150 133 10 149 132 24 124 113 27 108 98 7 143 127 9 158 142 22 151 143 32 124 113 27 108 98 7 148 130 9 163 144 17 151 143 32 124 113 27 131 117 9 152 137 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 173 151 6 187 143 14 187 143 14 190 172 60 182 155 55 163 101 23 210 190 66 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 221 215 78 210 190 66 163 101 23 148 113 4 164 140 6 171 124 10 171 124 10 162 130 12 157 135 6 157 137 8 157 137 8 154 136 9 154 136 9 154 137 10 154 136 9 154 137 10 158 139 17 167 151 39 179 166 71 186 180 119 186 180 119 164 159 94 96 86 8 131 117 9 158 142 22 174 161 59 183 179 101 186 180 119 115 105 29 131 117 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 179 166 71 183 179 101 186 180 119 150 143 72 117 105 7 147 102 2 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 167 151 39 174 161 59 181 171 85 181 174 105 146 137 56 108 98 7 131 117 9 154 137 10 154 137 10 158 139 17 155 138 13 143 127 9 155 138 13 174 161 59 181 171 85 181 174 105 171 163 85 181 174 105 146 137 56 153 136 10 169 155 53 175 173 100 175 173 100 181 174 105 175 173 100 105 96 24 158 139 17 181 174 105 175 173 100 105 88 5 150 133 10 169 155 53 181 174 105 171 163 85 105 88 5 154 138 10 169 155 53 181 174 105 146 137 56 135 121 9 152 137 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 173 151 6 179 135 3 183 150 5 184 161 25 166 113 27 178 152 46 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 178 152 46 131 91 4 148 122 5 157 124 5 160 113 2 157 135 6 157 137 8 157 137 8 157 137 8 154 136 9 154 136 9 154 136 9 154 136 9 154 137 11 163 146 29 169 155 53 181 171 85 186 180 119 183 177 113 186 180 119 105 96 24 108 98 7 154 137 10 179 166 71 183 179 101 186 180 119 115 105 29 131 117 9 140 124 9 140 124 9 140 124 9 148 130 9 155 138 13 154 137 11 148 130 9 140 124 9 140 124 9 140 124 9 143 127 9 150 133 10 148 130 9 140 124 9 140 124 9 148 130 9 150 133 10 148 130 9 148 130 9 163 146 29 186 179 94 186 180 119 124 113 27 131 117 9 148 113 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 167 151 39 179 166 71 182 174 95 181 174 105 146 137 56 96 86 8 131 117 9 148 130 9 155 138 13 158 139 17 154 137 11 135 121 9 135 121 9 181 171 85 181 174 105 181 174 105 146 137 56 163 146 29 163 146 29 169 155 53 181 174 105 168 160 66 158 139 17 168 160 66 181 174 105 171 163 85 167 151 39 182 174 95 181 174 105 124 113 27 150 133 10 181 171 85 181 174 105 181 174 105 105 96 24 153 136 10 181 171 85 175 173 100 126 112 8 140 124 9 158 141 9 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 173 151 6 178 128 2 183 150 5 181 142 38 163 101 23 215 195 75 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 217 211 80 215 195 75 163 101 23 147 102 2 156 129 6 161 108 0 162 133 4 157 135 6 157 137 8 157 137 8 157 137 8 154 136 9 154 136 9 154 136 9 155 138 13 167 151 39 174 161 59 183 177 113 181 171 85 179 166 71 186 180 119 150 143 72 96 86 8 135 121 9 167 151 39 183 179 101 186 180 119 115 105 29 108 98 7 124 113 27 105 88 5 108 98 7 135 121 9 153 136 10 155 138 13 140 124 9 124 113 27 108 98 7 108 98 7 126 112 8 148 130 9 140 124 9 108 98 7 108 98 7 131 117 9 153 136 10 135 121 9 108 98 7 131 117 9 181 171 85 186 180 119 115 105 29 135 121 9 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 167 151 39 179 166 71 186 179 94 181 174 105 171 163 85 88 74 4 108 98 7 135 121 9 148 130 9 158 139 17 158 142 22 150 143 72 132 124 24 179 166 71 182 174 95 181 174 105 105 88 5 150 133 10 169 155 53 182 174 95 181 174 105 164 154 76 181 174 105 177 174 98 168 160 66 149 132 24 163 146 29 182 174 95 181 174 105 150 143 72 148 130 9 181 174 105 179 166 71 181 174 105 150 143 72 154 137 10 181 174 105 146 137 56 131 117 9 148 130 9 163 144 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 179 135 3 179 135 3 184 161 25 166 113 27 181 142 38 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 181 142 38 131 91 4 145 123 8 158 118 4 162 123 4 157 135 6 157 137 8 157 137 8 157 137 8 154 136 9 154 136 9 154 136 9 158 142 22 169 155 53 181 171 85 186 180 119 146 137 56 179 166 71 186 180 119 183 177 113 96 86 8 117 105 7 158 142 22 183 179 101 186 180 119 171 163 85 186 180 119 186 180 119 175 173 100 105 88 5 126 112 8 154 137 11 167 151 39 171 163 85 186 180 119 183 177 113 150 143 72 108 98 7 150 133 10 182 174 95 186 180 119 131 124 45 126 112 8 169 155 53 186 180 119 164 154 76 143 127 9 181 171 85 186 180 119 115 105 29 131 117 9 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 158 142 22 169 155 53 186 179 94 181 174 105 181 174 105 150 143 72 96 86 8 117 105 7 131 117 9 143 127 9 168 160 66 181 174 105 139 129 30 179 166 71 182 174 95 181 174 105 96 86 8 140 124 9 169 155 53 183 179 101 181 174 105 171 163 85 149 132 24 158 142 22 148 130 9 124 113 27 131 117 9 179 166 71 182 174 95 181 174 105 169 155 53 175 173 100 163 146 29 182 174 95 181 174 105 169 155 53 175 173 100 117 105 7 140 124 9 156 138 9 167 148 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 179 135 3 172 147 5 184 161 25 147 68 5 198 179 67 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 211 204 83 198 179 67 147 68 5 142 112 6 162 123 4 167 118 3 157 135 6 157 137 8 157 137 8 157 137 8 154 136 9 154 136 9 156 137 12 163 146 29 174 161 59 185 177 109 183 177 113 124 113 27 167 151 39 182 174 95 186 180 119 146 137 56 96 86 8 154 137 11 183 179 101 186 180 119 164 154 76 169 155 53 182 174 95 186 180 119 146 137 56 131 117 9 163 146 29 185 177 109 171 163 85 179 166 71 185 177 109 186 180 119 150 143 72 140 124 9 182 174 95 186 180 119 150 143 72 126 112 8 179 166 71 186 180 119 124 113 27 153 136 10 186 179 94 186 180 119 88 74 4 131 117 9 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 167 151 39 181 171 85 183 179 101 181 174 105 181 174 105 171 163 85 146 137 56 164 154 76 175 173 100 181 174 105 146 137 56 153 136 10 182 174 95 182 174 95 181 174 105 88 74 4 126 112 8 163 146 29 186 179 94 181 174 105 175 173 100 146 137 56 151 143 32 171 163 85 150 143 72 135 121 9 169 155 53 186 179 94 181 174 105 181 174 105 150 143 72 158 141 9 182 174 95 181 174 105 181 174 105 164 154 76 126 112 8 148 130 9 163 144 8 167 148 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 178 128 2 183 150 5 181 142 38 163 101 23 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 163 101 23 147 102 2 157 124 5 160 113 2 157 135 6 157 135 6 157 137 8 157 137 8 154 136 9 154 136 9 158 142 22 167 151 39 179 166 71 186 180 119 186 180 119 186 180 119 186 180 119 186 180 119 186 180 119 175 173 100 88 74 4 148 130 9 182 174 95 186 180 119 124 113 27 158 142 22 186 179 94 186 180 119 146 137 56 135 121 9 181 171 85 186 180 119 131 124 45 158 142 22 181 171 85 183 177 113 183 177 113 117 105 7 179 166 71 185 177 109 186 180 119 132 124 24 182 174 95 171 163 85 117 105 7 158 142 22 186 179 94 186 180 119 88 74 4 131 117 9 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 158 142 22 167 151 39 179 166 71 186 179 94 182 174 95 181 174 105 181 174 105 181 174 105 181 171 85 151 143 32 140 124 9 163 146 29 186 179 94 181 174 105 181 174 105 146 137 56 126 112 8 158 139 17 181 171 85 186 179 94 181 171 85 181 174 105 177 174 98 168 160 66 135 121 9 143 127 9 167 151 39 182 174 95 182 174 95 181 174 105 132 124 24 163 144 17 190 175 80 182 174 95 181 174 105 149 132 24 143 127 9 155 139 10 163 144 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 173 151 6 178 128 2 184 161 25 174 128 42 174 128 42 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 204 197 86 174 128 42 148 94 1 148 122 5 161 108 0 157 135 6 157 135 6 157 137 8 157 137 8 154 136 9 156 137 12 163 146 29 169 155 53 181 174 105 183 177 113 151 143 32 174 161 59 179 166 71 182 174 95 185 177 109 186 180 119 131 124 45 126 112 8 181 171 85 186 180 119 115 105 29 153 136 10 181 171 85 186 180 119 146 137 56 140 124 9 182 174 95 186 180 119 146 137 56 117 105 7 169 155 53 182 174 95 186 180 119 115 105 29 169 155 53 193 183 105 186 180 119 177 174 98 186 180 119 124 113 27 126 112 8 163 146 29 186 179 94 177 174 98 88 74 4 131 117 9 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 158 142 22 167 151 39 179 166 71 179 166 71 174 161 59 169 155 53 169 155 53 158 142 22 148 130 9 150 133 10 163 146 29 179 166 71 179 166 71 163 146 29 153 136 10 148 130 9 155 138 13 167 151 39 179 166 71 179 166 71 174 161 59 167 151 39 158 139 17 150 133 10 150 133 10 163 146 29 179 166 71 179 166 71 158 142 22 148 130 9 163 146 29 179 166 71 179 166 71 163 144 17 152 137 8 155 139 10 163 144 8 163 144 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 173 151 6 178 128 2 184 161 25 166 113 27 182 155 55 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 182 155 55 156 86 11 148 122 5 161 108 0 157 135 6 157 135 6 157 137 8 157 137 8 154 136 9 158 142 22 167 151 39 179 166 71 186 180 119 164 154 76 108 98 7 148 130 9 167 151 39 179 166 71 183 179 101 186 180 119 175 173 100 108 98 7 179 166 71 186 180 119 113 109 47 126 112 8 179 166 71 186 180 119 150 143 72 126 112 8 179 166 71 186 180 119 183 177 113 146 137 56 151 143 32 181 174 105 164 154 76 117 105 7 158 142 22 186 179 94 185 177 109 186 180 119 164 159 94 117 105 7 140 124 9 167 151 39 186 179 94 181 174 105 105 96 24 126 112 8 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 142 22 163 146 29 163 146 29 163 146 29 163 146 29 163 146 29 158 142 22 153 136 10 153 136 10 158 142 22 163 146 29 163 146 29 158 142 22 158 139 17 153 136 10 153 136 10 158 142 22 163 146 29 163 146 29 163 146 29 163 146 29 158 142 22 153 136 10 153 136 10 158 142 22 163 146 29 163 146 29 158 142 22 155 139 10 163 144 17 167 151 39 167 151 39 163 146 29 158 141 9 161 141 8 163 144 8 163 144 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 173 151 6 178 128 2 191 160 42 160 94 16 179 166 71 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 179 166 71 147 68 5 148 122 5 161 108 0 157 135 6 157 135 6 157 137 8 157 137 8 154 136 9 163 146 29 174 161 59 181 174 105 186 180 119 164 154 76 117 105 7 135 121 9 158 142 22 169 155 53 183 179 101 186 180 119 186 180 119 169 155 53 182 174 95 186 180 119 171 163 85 140 124 9 181 171 85 186 180 119 183 177 113 131 117 9 174 161 59 183 179 101 185 177 109 186 180 119 186 180 119 181 171 85 139 129 30 135 121 9 158 142 22 179 166 71 182 174 95 186 180 119 124 113 27 126 112 8 150 133 10 167 151 39 183 179 101 186 180 119 131 124 45 135 121 9 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 137 10 155 139 10 155 139 10 158 141 9 158 141 9 158 141 9 158 141 9 161 141 8 163 144 8 163 144 8 163 144 8 163 144 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 173 151 6 178 128 2 190 172 60 156 86 11 190 175 80 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 195 188 89 190 175 80 147 68 5 148 122 5 161 108 0 162 133 4 157 135 6 157 137 8 157 137 8 154 136 9 163 146 29 179 166 71 179 166 71 169 155 53 158 139 17 143 127 9 148 130 9 155 138 13 167 151 39 179 166 71 179 166 71 163 146 29 167 151 39 174 161 59 174 161 59 158 142 22 158 139 17 179 166 71 179 166 71 158 142 22 148 130 9 163 146 29 179 166 71 179 166 71 174 161 59 174 161 59 158 142 22 150 133 10 154 137 10 158 142 22 169 155 53 183 177 113 150 143 72 126 112 8 140 124 9 154 137 11 167 151 39 179 166 71 169 155 53 143 127 9 148 130 9 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 137 10 155 139 10 155 139 10 158 141 9 158 141 9 158 141 9 158 141 9 161 141 8 163 144 8 163 144 8 163 144 8 167 148 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 172 147 5 178 128 2 190 172 60 147 68 5 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 147 68 5 148 122 5 161 108 0 156 129 6 157 135 6 157 137 8 157 137 8 154 136 9 158 142 22 163 146 29 163 146 29 163 146 29 158 142 22 153 136 10 153 136 10 154 137 10 158 142 22 163 146 29 163 146 29 158 142 22 163 146 29 163 146 29 163 146 29 158 142 22 158 142 22 163 146 29 163 146 29 158 142 22 153 136 10 158 139 17 163 146 29 163 146 29 163 146 29 163 146 29 158 142 22 158 142 22 163 146 29 169 155 53 185 177 109 177 174 98 135 121 9 135 121 9 148 130 9 154 137 10 158 142 22 163 146 29 158 142 22 153 136 10 153 136 10 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 126 112 8 142 112 6 158 118 4 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 155 137 10 155 139 10 155 139 10 158 141 9 158 141 9 158 141 9 158 141 9 161 141 8 163 144 8 163 144 8 163 144 8 167 148 8 167 148 8 167 148 8 167 148 8 173 151 6 173 151 6 172 147 5 179 135 3 190 172 60 147 68 5 182 174 95 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 182 174 95 147 68 5 145 123 8 160 113 2 156 129 6 157 135 6 157 137 8 157 137 8 154 136 9 154 136 9 154 136 9 154 136 9 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 167 151 39 169 155 53 181 171 85 181 171 85 149 132 24 140 124 9 150 133 10 153 136 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 154 137 10 158 118 4 178 152 46 193 183 105 0 0 0 + 0 0 0 131 117 9 138 117 8 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 153 111 3 153 111 3 153 111 3 153 111 3 153 111 3 153 111 3 158 118 4 158 118 4 158 118 4 162 123 4 162 123 4 158 118 4 162 123 4 173 151 6 147 68 5 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 186 179 94 147 68 5 145 123 8 153 111 3 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 147 102 2 166 113 27 169 132 54 174 128 42 147 102 2 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 148 94 1 155 131 8 181 171 85 0 0 0 + 0 0 0 131 117 9 131 117 9 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 134 112 5 134 112 5 134 112 5 134 112 5 134 112 5 134 112 5 134 112 5 138 117 8 138 117 8 142 112 6 142 112 6 142 112 6 142 112 6 142 112 6 148 113 4 145 123 8 157 135 6 147 68 5 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 177 174 98 147 68 5 138 117 8 140 119 3 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 130 105 5 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 126 112 8 135 121 9 153 136 10 0 0 0 + +. diff --git a/pctb/resolve.c b/pctb/resolve.c new file mode 100644 index 0000000..052ec32 --- /dev/null +++ b/pctb/resolve.c @@ -0,0 +1,89 @@ +/* + * IPC to external resolver program + */ +/* + * This is part of ypp-sc-tools, a set of third-party tools for assisting + * players of Yohoho Puzzle Pirates. + * + * Copyright (C) 2009 Ian Jackson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Yohoho and Puzzle Pirates are probably trademarks of Three Rings and + * are used without permission. This program is not endorsed or + * sponsored by Three Rings. + */ + +#include "ocr.h" + +static FILE *resolver; +static pid_t resolver_pid; +static int resolver_done; + +FILE *resolve_start(void) { + int jobpipe[2],donepipe[2]; + + if (!o_resolver) return 0; + + if (!resolver) { + sysassert(! pipe(jobpipe) ); + sysassert(! pipe(donepipe) ); + resolver_pid= fork(); + sysassert(resolver_pid!=-1); + if (!resolver_pid) { + sysassert( dup2(jobpipe[0],0) ==0 ); + sysassert(! close(jobpipe[1]) ); + sysassert(! close(donepipe[0]) ); + /* we know donepipe[1] is >= 4 and we have dealt with all the others + * so we aren't in any danger of overwriting some other fd 4: */ + sysassert( dup2(donepipe[1],4) ==4 ); + execlp(o_resolver, o_resolver, + DEBUGP(callout) ? "--debug" : "--noop-arg", + "--automatic-1", + (char*)0); + sysassert(!"execlp ocr-resolver failed"); + } + sysassert(! close(jobpipe[0]) ); + sysassert(! close(donepipe[1]) ); + resolver= fdopen(jobpipe[1],"w"); sysassert(resolver); + resolver_done= donepipe[0]; + } + return resolver; +} + +void resolve_finish(void) { + char cb; + + sysassert(!ferror(resolver)); + sysassert(!fflush(resolver)); + + sysassert(resolver); + + int r; + for (;;) { + r= read(resolver_done,&cb,1); + if (r==-1) { sysassert(errno==EINTR); continue; } + break; + } + + if (r==0) { + waitpid_check_exitstatus(resolver_pid, "character resolver"); + fclose(resolver); + close(resolver_done); + resolver= 0; + } else { + assert(r==1); + sysassert(cb==0); + } +} diff --git a/pctb/rgbimage.c b/pctb/rgbimage.c new file mode 100644 index 0000000..798a104 --- /dev/null +++ b/pctb/rgbimage.c @@ -0,0 +1,148 @@ +/* + * Handling of colour (RGB) images + */ +/* + * This is part of ypp-sc-tools, a set of third-party tools for assisting + * players of Yohoho Puzzle Pirates. + * + * Copyright (C) 2009 Ian Jackson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Yohoho and Puzzle Pirates are probably trademarks of Three Rings and + * are used without permission. This program is not endorsed or + * sponsored by Three Rings. + */ + +#include "convert.h" + +/* + * + * + * widgets.txt + * format + * + * + * + * + * + * ppmnoraw depth 8 + * + * + * + * ppmnoraw depth 8 + * . + * + */ + +#include "convert.h" + +static int identify(const RgbImage *base, Rect portion, + char result[MAXIMGIDENT], const char *what) { + sysassert( dbfile_open("pixmaps.txt") ); + +#define FGETSLINE (dbfile_getsline(result,MAXIMGIDENT,__FILE__,__LINE__)) + + FGETSLINE; + dbassert(!strcmp(result,"# ypp-sc-tools pctb pixmaps v1")); + + void *row= 0; + size_t rowa= 0; + + for (;;) { + FGETSLINE; + if (!result[0] || result[0]=='#') continue; + if (!strcmp(result,".")) break; + + char magic[10]; + dbfile_getsline(magic,sizeof(magic),__FILE__,__LINE__); + + dbassert(!strcmp(magic,"P3")); + int w,h,maxval; + dbassert( dbfile_scanf("%d %d %d",&w,&h,&maxval) == 3); + dbassert(w>0); dbassert(h>0); dbassert(maxval==255); + + if (rowa < w) { + rowa= w; + row= mrealloc(row, rowa*3); + } + int diff= w != RECT_W(portion) || h != RECT_H(portion); + + int x,y,i; + for (y=0; y=0 && c<=255); + diff |= (c != RI_PIXEL(base, portion.tl.x + x, portion.tl.y + y)[i]); + } + } + } + if (!diff) { + progress_log("Identified %s image: %s.",what,result); + goto found; + } + } + result[0]= 0; + +found: + dbfile_close(); + return !!result[0]; +} + +static void fwrite_ppm(FILE *f, const RgbImage *base, Rect portion) { + int x,y,i; + fprintf(f,"P3\n%d %d\n255\n", RECT_W(portion), RECT_H(portion)); + for (y=portion.tl.y; y<=portion.br.y; y++) { + for (x=portion.tl.x; x<=portion.br.x; x++) { + putc(' ',f); + for (i=0; i<3; i++) + fprintf(f," %3d", RI_PIXEL(base,x,y)[i]); + } + putc('\n',f); + } + sysassert(!ferror(f)); + sysassert(!fflush(f)); +} + +void identify_rgbimage(const RgbImage *base, Rect portion, + char result[MAXIMGIDENT], const char *what) { + for (;;) { + int ok= identify(base, portion, result, what); + if (ok) return; + + if (DEBUGP(pixmap)) + fwrite_ppm(stderr,base,portion); + + FILE *resolver= resolve_start(); + if (!resolver) + fatal("Image recognition failed - unrecognised island.\n" + "See FIXME.FIXME\n"); + + fprintf(resolver, "pixmap\n" "%s\n", what); + fwrite_ppm(resolver, base, portion); + putc('\n',resolver); + + resolve_finish(); + } +} + +RgbImage *alloc_rgb_image(int w, int h) { + RgbImage *ri; + ri= mmalloc(sizeof(*ri) + w*h*3); + ri->w= w; + ri->h= h; + return ri; +} diff --git a/pctb/setisland-history b/pctb/setisland-history new file mode 100644 index 0000000..4935a94 --- /dev/null +++ b/pctb/setisland-history @@ -0,0 +1,28 @@ + 1 cd things/ypp-sc-tools-pctb/pctb/ + 2 curl 'file:///home/ian/things/ypp-sc-tools-pctb/pctb/upload.php?topisland=560&ocean=2&island=48&action=setisland&forcereload=1244747001&filename=FMa4qY' + 3 curl 'http://pctb.ilk.org/pctb/upload.php?topisland=560&ocean=2&island=48&action=setisland&forcereload=1244747001&filename=FMa4qY' >v.html + 4 less v.html + 5 curl 'http://pctb.ilk.org/upload.php?topisland=560&ocean=2&island=48&action=setisland&forcereload=1244747001&filename=FMa4qY' >v.html + 6 less v.html + 7 curl 'http://pctb.ilk.org/upload.php?topisland=560&ocean=2&island=48&action=setisland&forcereload=1244748679&filename=PFayDW' >v.html + 8 less v.html + 9 less raw.tsv + 10 less v.html + 11 git-status + 12 git-diff + 13 git-branch + 14 git-checkout -b temp.marketdata-examples + 15 git-add raw.tsv u v.html marketdata.gz marketdata-example marketdata-example2 + 16 rm commodmap.php + 17 git-add capture.dat + 18 git-status + 19 git-commit -m 'Various example files' + 20 git-commit -m 'First upload stage' yppsc-commod-processor + 21 git-status + 22 git-checkout master + 23 display \#pages.c# + 24 display \#pages#.ppm + 25 bg + 26 display \#pages-market#.ppm + 27 history |less + 28 history >setisland-history diff --git a/pctb/structure.c b/pctb/structure.c index 0fbfb40..5a21f0c 100644 --- a/pctb/structure.c +++ b/pctb/structure.c @@ -27,7 +27,7 @@ #include "structure.h" -static CanonImage *cim; +static const CanonImage *cim; static inline char get(int x, int y) { return cim->d[y * cim->w + x]; } static inline char get_p(Point p) { return get(p.x,p.y); } @@ -46,10 +46,15 @@ static int colrightx[INTERESTING_COLUMNS]; static int text_h=-1, columns=-1; static OcrReader *rd; +#define OTHERCOORD_x y +#define OTHERCOORD_y x + const CanonColourInfo canoncolourinfos[]= { { 0x475A5E, '*' }, /* edge */ { 0x2C5F7A, '*' }, /* edge just under box heading shadow */ - { 0xC5C7Ae, '*' }, /* blank area of partial commodities list */ + { 0xC5C7AE, '*' }, /* blank area of partial commodities list */ + { 0x6B828C, '*' }, /* background of ship status meter area */ + { 0x934405, '*' }, /* border of ship meter area */ { 0x7D9094, '+' }, /* interbox */ { 0xBDC5BF, ' ' }, /* background - pale Sugar cane, etc. */ @@ -88,7 +93,8 @@ static void mustfail1(const char *file, int line, const char *what) { " Check that your client is logged in has the correct display.\n" " If that isn't the problem, please report this as a fault.\n\n" "Technical details:" - " %s:%d: requirement failed: %s\n", + " %s:%d: requirement failed:\n" + " %s\n", file, line, what); } static void mustfail2(void) NORET; @@ -163,11 +169,39 @@ static void debug_rect(const char *what, int whati, Rect rr) { ); \ }while(0) -void find_structure(CanonImage *im, int *max_relevant_y_r) { +#define ADJUST_BOX(search,insidechrs,want, lim,LIMIT_MUST, TLBR,XY,increm) \ + for (;;) { \ + LIMIT_MUST( (search).tl.XY != (search).br.XY && \ + (search).tl.XY != (lim), \ + MR((search));MSB(#TLBR);MSB(#XY) ); \ + int got=0; \ + Point p=(search).tl; \ + for (p.XY=(search).TLBR.XY; \ + p.OTHERCOORD_##XY <= (search).br.OTHERCOORD_##XY; \ + p.OTHERCOORD_##XY++) \ + got += !!strchr(insidechrs, get_p(p)); \ + if (got >= (want)) \ + break; \ + (search).TLBR.XY += increm; \ + } + +void find_structure(const CanonImage *im, int *max_relevant_y_r) { cim= im; Rect whole = { {0,0}, {cim->w-1,cim->h-1} }; + if (DEBUGP(rect)) { + int xscaleunit, y,x; + for (y=0, xscaleunit=1; y<4; y++, xscaleunit*=10) { + fprintf(debug," "); + for (x=0; x<=cim->w; x++) { + if (x % xscaleunit) fputc(' ',debug); + else fprintf(debug,"%d",(x / xscaleunit)%10); + } + fputc('\n',debug); + } + } + WALK_UNTIL_MUST(mainr.tl, x,-1, whole.tl.x, '*'); WALK_UNTIL_MUST(mainr.tl, y,-1, whole.tl.y, '*'); WALK_UNTIL_MUST(mainr.br, x,+1, whole.br.x, '*'); @@ -209,18 +243,6 @@ void find_structure(CanonImage *im, int *max_relevant_y_r) { down.y++; WALK_UNTIL_MUST(down, y,+1, mainr.br.y, '+'); - if (DEBUGP(rect)) { - int xscaleunit, y,x; - for (y=0, xscaleunit=1; y<4; y++, xscaleunit*=10) { - fprintf(debug," "); - for (x=0; x<=cim->w; x++) { - if (x % xscaleunit) fputc(' ',debug); - else fprintf(debug,"%d",(x / xscaleunit)%10); - } - fputc('\n',debug); - } - } - commbasey= up.y; comminty= down.y - up.y + 2; @@ -261,19 +283,8 @@ void find_structure(CanonImage *im, int *max_relevant_y_r) { void check_correct_commodities(void) { Rect search= { { 50,39 }, { 130,59 } }; -#define SEARCH_UPDOWN(this,increm) \ - for (;;) { \ - MUST( search.tl.y != search.br.y, MR(search);MSB(#this); ); \ - int x, got=0; \ - for (x=search.tl.x; x<=search.br.x; x++) \ - got += (get(x,this.y) == '_'); \ - if (got > 10) \ - break; \ - this.y += increm; \ - } - - SEARCH_UPDOWN(search.tl, +1); - SEARCH_UPDOWN(search.br, -1); + ADJUST_BOX(search,"_",10, cim->h, MUST, tl,y,+1); + ADJUST_BOX(search,"_",10, 0, MUST, br,y,-1); debug_rect("commodselr",1, search); @@ -332,6 +343,7 @@ static void file_read_image_ppm(FILE *f) { struct pam inpam; unsigned char rgb_buf[3]; CanonImage *im; + RgbImage *ri=0; pnm_readpaminit(f, &inpam, sizeof(inpam)); if (!(inpam.maxval == 255 && @@ -339,6 +351,9 @@ static void file_read_image_ppm(FILE *f) { inpam.format == RPPM_FORMAT)) fatal("PNM screenshot(s) file must be 8bpp 1 byte per sample RGB"); + if (!npages) + page0_rgbimage= ri= alloc_rgb_image(inpam.width, inpam.height); + CANONICALISE_IMAGE(im, inpam.width, inpam.height, { int r= fread(&rgb_buf,1,3,f); sysassert(!ferror(f)); @@ -348,6 +363,9 @@ static void file_read_image_ppm(FILE *f) { ((unsigned long)rgb_buf[0]<<16) | ((unsigned long)rgb_buf[1]<<8) | (rgb_buf[2]); + + if (ri) + CANONIMG_ALSO_STORERGB(ri); }); sysassert(!ferror(screenshot_file)); @@ -473,3 +491,63 @@ void analyse(FILE *tsv_output) { } } } + +//static Rect islandnamer; + +void find_islandname(void) { + Rect sunshiner; + char sunshine[MAXIMGIDENT]; + const RgbImage *ri= page0_rgbimage; + + cim= page_images[0]; + + sunshiner.tl.x= cim->w - 1034 + 885; + sunshiner.br.x= cim->w - 1034 + 1020; + sunshiner.tl.y= 227; + sunshiner.br.y= 228; + + ADJUST_BOX(sunshiner,"o*",30, 100,MUST, tl,y,-1); + ADJUST_BOX(sunshiner,"o*",30, 100,MUST, br,y,+1); + debug_rect("sunshiner",0, sunshiner); + + MUST(sunshiner.br.y - sunshiner.tl.y > 20, MR(sunshiner)); + sunshiner.br.y--; + + ADJUST_BOX(sunshiner,"o",20, (cim->w - 1034 + 700), MUST, tl,x,-1); + ADJUST_BOX(sunshiner,"o",20, cim->w, MUST, br,x,+1); + debug_rect("sunshiner",1, sunshiner); + + identify_rgbimage(ri, sunshiner, sunshine, "sunshine widget"); + fprintf(stderr,"sunshine: `%s'",sunshine); + +#if 0 + + + islandnamer.tl.x= cim->w - 1034 + 885; + islandnamer.br.x= cim->w - 1034 + 1020; + islandnamer.tl.y= 128; + islandnamer.br.y= 156; + +#define IR_VSHRINK_MUST(CONDMUST,PRWHY) \ + do{ if (!(CONDMUST)) goto not_in_radar; }while(0) + + ADJUST_BOX(islandnamer,"o",5, IR_VSHRINK_MUST, tl,y,+1); + ADJUST_BOX(islandnamer,"o",5, IR_VSHRINK_MUST, br,y,-1); + + debug_rect("islandnamer",0, islandnamer); + static int larger_islandnamebry= islandname.tl.y + 25; + if (islandnamer.br.y < larger_islandnamebry) + goto not_in_radar; + islandnamer.br.y = larger_islandnamebry; + debug_rect("islandnamer",1, islandnamer); + + debug_ppmrect("islandnamer",2, islandnamer,ri); + + not_in_radar: + + + + abort(); + +#endif +} diff --git a/pctb/structure.h b/pctb/structure.h index e8ea9f9..0ad92a6 100644 --- a/pctb/structure.h +++ b/pctb/structure.h @@ -77,4 +77,13 @@ CanonImage *alloc_canon_image(int w, int h); }while(0) +#define CANONIMG_ALSO_STORERGB(ri) \ + do{ \ + unsigned char *rip= RI_PIXEL((ri),x,y); \ + rip[0]= rgb >> 16; \ + rip[1]= rgb >> 8; \ + rip[2]= rgb; \ + }while(0) + + #endif /*STRUCTURE_H*/ diff --git a/pctb/vessel.ppm b/pctb/vessel.ppm new file mode 100644 index 0000000..9d26d65 --- /dev/null +++ b/pctb/vessel.ppm @@ -0,0 +1,25909 @@ +P3 +# CREATOR: The GIMP's PNM Filter Version 1.0 +157 55 +255 +94 +129 +165 +130 +157 +185 +147 +171 +195 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +135 +161 +188 +89 +125 +162 +91 +126 +163 +76 +112 +151 +104 +136 +170 +143 +167 +192 +83 +120 +159 +94 +129 +165 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +102 +135 +170 +89 +125 +162 +87 +123 +161 +79 +117 +156 +106 +138 +172 +143 +167 +192 +78 +116 +156 +78 +116 +156 +78 +116 +156 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +73 +109 +146 +73 +109 +146 +73 +109 +146 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +68 +101 +136 +73 +109 +146 +73 +109 +146 +73 +109 +146 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +156 +78 +116 +156 +106 +138 +172 +143 +167 +192 +78 +116 +156 +78 +116 +156 +78 +116 +156 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +73 +109 +146 +68 +101 +136 +68 +101 +136 +68 +101 +136 +57 +84 +113 +57 +84 +113 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +48 +71 +95 +57 +84 +113 +57 +84 +113 +68 +101 +136 +68 +101 +136 +73 +109 +146 +73 +109 +146 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +156 +78 +116 +156 +106 +138 +172 +143 +167 +192 +78 +116 +156 +78 +116 +156 +78 +116 +156 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +155 +73 +109 +146 +73 +109 +146 +68 +101 +136 +57 +84 +113 +48 +71 +95 +33 +56 +84 +26 +38 +52 +19 +28 +38 +11 +17 +22 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +9 +13 +18 +19 +28 +38 +26 +38 +52 +33 +56 +84 +33 +56 +84 +48 +71 +95 +57 +84 +113 +57 +84 +113 +68 +101 +136 +73 +109 +146 +78 +116 +155 +78 +116 +155 +78 +116 +155 +78 +116 +156 +78 +116 +156 +106 +138 +172 +143 +167 +192 +78 +116 +156 +78 +116 +156 +78 +116 +156 +78 +116 +155 +78 +116 +155 +78 +116 +155 +73 +109 +146 +68 +101 +136 +57 +84 +113 +33 +56 +84 +11 +17 +22 +26 +22 +6 +59 +55 +21 +96 +93 +42 +146 +137 +56 +179 +166 +71 +238 +220 +94 +239 +220 +106 +234 +211 +91 +234 +211 +91 +234 +211 +91 +234 +211 +91 +234 +211 +91 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +234 +208 +79 +238 +220 +94 +242 +227 +125 +65 +61 +37 +132 +124 +24 +155 +138 +13 +174 +161 +59 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +177 +174 +98 +41 +37 +17 +131 +117 +9 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +174 +161 +59 +146 +137 +56 +113 +109 +47 +81 +77 +32 +49 +45 +20 +18 +14 +7 +9 +13 +18 +26 +38 +52 +33 +56 +84 +48 +71 +95 +57 +84 +113 +68 +101 +136 +73 +109 +146 +78 +116 +155 +78 +116 +156 +78 +116 +156 +106 +138 +172 +143 +167 +192 +78 +116 +156 +78 +116 +156 +78 +116 +156 +78 +116 +155 +78 +116 +155 +73 +109 +146 +57 +84 +113 +26 +38 +52 +34 +27 +3 +87 +82 +20 +191 +160 +42 +233 +204 +67 +231 +200 +54 +228 +192 +32 +231 +181 +16 +229 +176 +8 +229 +176 +8 +229 +176 +8 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +224 +162 +1 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +228 +192 +32 +239 +220 +106 +199 +184 +128 +29 +26 +16 +117 +105 +7 +148 +130 +9 +167 +151 +39 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +160 +132 +32 +169 +155 +53 +169 +155 +53 +105 +96 +24 +59 +49 +4 +150 +133 +10 +156 +129 +6 +158 +118 +4 +158 +118 +4 +158 +118 +4 +158 +118 +4 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +160 +113 +2 +161 +108 +0 +161 +108 +0 +161 +108 +0 +161 +108 +0 +161 +108 +0 +161 +108 +0 +161 +108 +0 +161 +108 +0 +161 +108 +0 +160 +113 +2 +165 +124 +10 +173 +131 +16 +163 +146 +29 +174 +161 +59 +146 +137 +56 +81 +77 +32 +29 +26 +16 +19 +28 +38 +33 +56 +84 +48 +71 +95 +57 +84 +113 +73 +109 +146 +77 +115 +154 +78 +116 +156 +106 +138 +172 +143 +167 +192 +78 +116 +156 +78 +116 +156 +79 +117 +156 +78 +116 +155 +73 +109 +146 +42 +64 +86 +34 +27 +3 +124 +113 +27 +213 +184 +31 +231 +181 +16 +225 +168 +2 +224 +162 +1 +224 +162 +1 +225 +168 +2 +222 +180 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +222 +180 +5 +226 +176 +3 +226 +176 +3 +226 +176 +3 +226 +176 +3 +225 +168 +2 +233 +204 +67 +243 +230 +138 +149 +145 +88 +70 +67 +25 +117 +105 +7 +130 +105 +5 +142 +112 +6 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +150 +133 +10 +148 +130 +9 +140 +124 +9 +138 +117 +8 +138 +117 +8 +138 +117 +8 +145 +123 +8 +150 +133 +10 +148 +130 +9 +140 +124 +9 +138 +117 +8 +138 +117 +8 +138 +117 +8 +145 +123 +8 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +148 +130 +9 +142 +112 +6 +149 +132 +24 +139 +129 +30 +14 +10 +2 +126 +112 +8 +155 +131 +8 +160 +113 +2 +157 +124 +5 +157 +124 +5 +157 +124 +5 +157 +124 +5 +156 +129 +6 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +131 +8 +155 +135 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +131 +8 +157 +124 +5 +160 +113 +2 +160 +113 +2 +165 +124 +10 +170 +139 +22 +168 +160 +66 +104 +102 +60 +29 +26 +16 +26 +38 +52 +42 +64 +86 +57 +84 +113 +72 +107 +144 +77 +115 +155 +106 +138 +172 +143 +167 +192 +78 +116 +156 +79 +117 +156 +81 +118 +158 +73 +109 +146 +33 +56 +84 +77 +65 +5 +172 +147 +5 +225 +168 +2 +224 +162 +1 +225 +168 +2 +226 +176 +3 +222 +180 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +185 +8 +225 +188 +6 +226 +176 +3 +229 +176 +8 +238 +220 +94 +243 +230 +138 +29 +26 +16 +96 +86 +8 +126 +112 +8 +131 +91 +4 +150 +133 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +158 +142 +22 +135 +121 +9 +108 +98 +7 +108 +98 +7 +117 +105 +7 +140 +124 +9 +158 +142 +22 +158 +142 +22 +135 +121 +9 +108 +98 +7 +108 +98 +7 +117 +105 +7 +140 +124 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +148 +122 +5 +142 +112 +6 +151 +143 +32 +68 +56 +4 +77 +65 +5 +153 +136 +10 +160 +113 +2 +157 +124 +5 +155 +138 +13 +154 +137 +11 +148 +130 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +157 +124 +5 +158 +118 +4 +160 +113 +2 +173 +131 +16 +146 +137 +56 +65 +61 +37 +19 +28 +38 +42 +64 +86 +61 +91 +122 +74 +110 +147 +105 +137 +171 +143 +167 +192 +79 +117 +156 +84 +120 +159 +89 +125 +161 +48 +71 +95 +88 +74 +4 +201 +166 +5 +225 +168 +2 +225 +168 +2 +223 +184 +6 +223 +184 +6 +213 +177 +5 +201 +166 +5 +201 +166 +5 +201 +166 +5 +213 +177 +5 +223 +184 +6 +223 +185 +8 +223 +184 +6 +213 +177 +5 +201 +166 +5 +201 +166 +5 +213 +177 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +185 +8 +223 +185 +8 +213 +177 +5 +201 +166 +5 +204 +174 +5 +213 +177 +5 +225 +168 +2 +230 +195 +43 +242 +227 +125 +173 +163 +117 +49 +45 +20 +108 +98 +7 +130 +105 +5 +134 +112 +5 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +186 +180 +119 +186 +180 +119 +146 +137 +56 +105 +88 +5 +131 +117 +9 +158 +142 +22 +169 +155 +53 +185 +177 +109 +186 +180 +119 +150 +143 +72 +126 +112 +8 +140 +124 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +150 +133 +10 +142 +112 +6 +149 +132 +24 +124 +113 +27 +43 +35 +3 +150 +133 +10 +157 +124 +5 +160 +113 +2 +154 +137 +10 +158 +142 +22 +158 +142 +22 +135 +121 +9 +108 +98 +7 +108 +98 +7 +108 +98 +7 +108 +98 +7 +108 +98 +7 +135 +121 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +158 +118 +4 +165 +124 +10 +164 +154 +76 +84 +83 +49 +19 +28 +38 +48 +71 +95 +67 +100 +134 +102 +135 +169 +143 +167 +192 +81 +118 +158 +94 +129 +165 +87 +114 +142 +34 +27 +3 +162 +133 +4 +226 +176 +3 +225 +168 +2 +223 +184 +6 +224 +187 +16 +226 +189 +24 +201 +166 +5 +162 +133 +4 +148 +122 +5 +156 +129 +6 +201 +166 +5 +223 +184 +6 +224 +187 +16 +226 +189 +24 +201 +166 +5 +148 +122 +5 +156 +129 +6 +201 +166 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +185 +8 +224 +187 +16 +223 +185 +8 +201 +166 +5 +162 +133 +4 +172 +147 +5 +201 +166 +5 +223 +184 +6 +229 +176 +8 +234 +208 +79 +243 +230 +138 +92 +93 +56 +87 +82 +20 +117 +105 +7 +131 +91 +4 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +181 +171 +85 +185 +177 +109 +186 +180 +119 +175 +173 +100 +87 +82 +20 +117 +105 +7 +158 +139 +17 +179 +166 +71 +186 +180 +119 +175 +173 +100 +131 +117 +9 +135 +121 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +142 +112 +6 +149 +132 +24 +151 +143 +32 +34 +27 +3 +105 +88 +5 +150 +133 +10 +160 +113 +2 +155 +131 +8 +154 +137 +10 +167 +151 +39 +174 +161 +59 +177 +174 +98 +171 +163 +85 +171 +163 +85 +171 +163 +85 +164 +154 +76 +115 +105 +29 +108 +98 +7 +131 +117 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +136 +10 +160 +113 +2 +162 +130 +12 +146 +137 +56 +29 +26 +16 +33 +50 +67 +58 +86 +116 +95 +130 +166 +143 +167 +192 +87 +123 +161 +109 +140 +173 +60 +76 +91 +88 +74 +4 +201 +166 +5 +224 +162 +1 +222 +180 +5 +223 +184 +6 +228 +192 +32 +231 +200 +54 +33 +56 +84 +18 +48 +94 +33 +56 +84 +134 +112 +5 +194 +154 +4 +223 +185 +8 +226 +189 +24 +190 +172 +60 +18 +48 +94 +18 +48 +94 +115 +105 +29 +194 +154 +4 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +224 +187 +16 +228 +192 +32 +202 +170 +30 +72 +86 +78 +92 +93 +56 +162 +133 +4 +201 +166 +5 +225 +188 +6 +226 +176 +3 +232 +187 +12 +239 +220 +106 +220 +207 +130 +29 +26 +16 +108 +98 +7 +130 +105 +5 +130 +105 +5 +154 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +163 +146 +29 +174 +161 +59 +186 +179 +94 +185 +177 +109 +186 +180 +119 +164 +154 +76 +117 +105 +7 +158 +142 +22 +185 +177 +109 +183 +177 +113 +132 +124 +24 +140 +124 +9 +150 +133 +10 +150 +133 +10 +143 +127 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +145 +123 +8 +142 +112 +6 +151 +143 +32 +87 +82 +20 +68 +56 +4 +150 +133 +10 +158 +118 +4 +158 +118 +4 +154 +137 +10 +154 +137 +10 +167 +151 +39 +181 +171 +85 +182 +174 +95 +186 +180 +119 +171 +163 +85 +181 +174 +105 +186 +180 +119 +186 +180 +119 +113 +109 +47 +108 +98 +7 +140 +124 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +11 +154 +137 +11 +153 +136 +10 +148 +130 +9 +150 +133 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +160 +113 +2 +163 +146 +29 +84 +83 +49 +20 +29 +39 +51 +76 +102 +87 +123 +161 +143 +167 +192 +95 +129 +165 +123 +151 +181 +21 +25 +30 +148 +122 +5 +209 +156 +2 +225 +168 +2 +223 +184 +6 +223 +184 +6 +228 +192 +32 +234 +208 +79 +149 +145 +88 +18 +48 +94 +55 +71 +75 +130 +105 +5 +183 +150 +5 +223 +184 +6 +228 +192 +32 +198 +179 +67 +18 +48 +94 +65 +79 +71 +162 +133 +4 +201 +166 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +228 +192 +32 +231 +200 +54 +91 +102 +85 +18 +48 +94 +92 +93 +56 +162 +133 +4 +201 +166 +5 +225 +188 +6 +225 +188 +6 +226 +176 +3 +233 +204 +67 +243 +230 +138 +149 +145 +88 +70 +67 +25 +117 +105 +7 +130 +105 +5 +140 +119 +3 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +139 +17 +167 +151 +39 +179 +166 +71 +193 +183 +105 +186 +180 +119 +186 +180 +119 +139 +129 +30 +181 +171 +85 +186 +180 +119 +131 +124 +45 +135 +121 +9 +150 +133 +10 +150 +133 +10 +148 +130 +9 +126 +112 +8 +108 +98 +7 +105 +88 +5 +108 +98 +7 +135 +121 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +153 +136 +10 +142 +112 +6 +149 +132 +24 +132 +124 +24 +9 +5 +1 +131 +117 +9 +156 +129 +6 +160 +113 +2 +155 +135 +9 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +151 +143 +32 +174 +161 +59 +181 +171 +85 +186 +180 +119 +150 +143 +72 +108 +98 +7 +135 +121 +9 +154 +137 +11 +155 +138 +13 +153 +136 +10 +143 +127 +9 +140 +124 +9 +148 +130 +9 +153 +136 +10 +154 +137 +10 +154 +137 +11 +155 +138 +13 +153 +136 +10 +143 +127 +9 +140 +124 +9 +148 +130 +9 +154 +137 +10 +155 +138 +13 +154 +137 +11 +148 +130 +9 +131 +117 +9 +131 +117 +9 +143 +127 +9 +148 +130 +9 +140 +124 +9 +140 +124 +9 +150 +133 +10 +153 +136 +10 +143 +127 +9 +140 +124 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +157 +124 +5 +165 +124 +10 +150 +143 +72 +7 +10 +13 +46 +69 +92 +81 +118 +158 +143 +167 +192 +102 +135 +169 +153 +171 +189 +0 +0 +0 +171 +140 +4 +204 +138 +1 +222 +180 +5 +223 +184 +6 +223 +184 +6 +224 +187 +16 +231 +200 +54 +234 +211 +91 +33 +56 +84 +18 +48 +94 +105 +96 +24 +162 +133 +4 +223 +184 +6 +231 +200 +54 +91 +102 +85 +18 +48 +94 +124 +113 +27 +194 +154 +4 +213 +177 +5 +213 +177 +5 +201 +166 +5 +201 +166 +5 +213 +177 +5 +223 +184 +6 +223 +184 +6 +213 +177 +5 +201 +166 +5 +201 +166 +5 +201 +166 +5 +213 +177 +5 +223 +184 +6 +213 +177 +5 +201 +166 +5 +201 +166 +5 +201 +166 +5 +201 +166 +5 +213 +177 +5 +223 +185 +8 +223 +184 +6 +213 +177 +5 +201 +166 +5 +204 +174 +5 +226 +189 +24 +233 +204 +67 +182 +174 +95 +18 +48 +94 +92 +93 +56 +162 +133 +4 +201 +166 +5 +225 +188 +6 +227 +195 +6 +223 +184 +6 +231 +181 +16 +238 +220 +94 +243 +230 +138 +29 +26 +16 +96 +86 +8 +117 +105 +7 +131 +91 +4 +150 +133 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +153 +136 +10 +153 +136 +10 +158 +142 +22 +167 +151 +39 +179 +166 +71 +183 +179 +101 +186 +180 +119 +186 +180 +119 +186 +180 +119 +150 +143 +72 +126 +112 +8 +148 +130 +9 +158 +142 +22 +158 +142 +22 +169 +155 +53 +181 +174 +105 +183 +177 +113 +171 +163 +85 +105 +96 +24 +105 +88 +5 +135 +121 +9 +153 +136 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +145 +116 +12 +145 +116 +12 +151 +143 +32 +59 +49 +4 +88 +74 +4 +150 +133 +10 +160 +113 +2 +156 +127 +7 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +131 +124 +45 +155 +138 +13 +171 +163 +85 +186 +180 +119 +146 +137 +56 +126 +112 +8 +143 +127 +9 +154 +137 +11 +150 +133 +10 +150 +133 +10 +126 +112 +8 +108 +98 +7 +131 +117 +9 +140 +124 +9 +150 +133 +10 +154 +137 +11 +150 +133 +10 +150 +133 +10 +126 +112 +8 +108 +98 +7 +131 +117 +9 +143 +127 +9 +154 +137 +11 +158 +139 +17 +167 +151 +39 +131 +124 +45 +105 +88 +5 +131 +117 +9 +140 +124 +9 +117 +105 +7 +117 +105 +7 +143 +127 +9 +153 +136 +10 +131 +117 +9 +117 +105 +7 +140 +124 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +160 +113 +2 +179 +166 +71 +0 +0 +0 +45 +67 +90 +79 +117 +156 +143 +167 +192 +105 +137 +171 +158 +175 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +228 +192 +32 +234 +208 +79 +127 +126 +80 +18 +48 +94 +68 +78 +61 +148 +122 +5 +223 +184 +6 +215 +195 +75 +33 +56 +84 +47 +66 +78 +171 +140 +4 +204 +174 +5 +213 +177 +5 +194 +154 +4 +156 +129 +6 +162 +133 +4 +194 +154 +4 +213 +177 +5 +223 +184 +6 +201 +166 +5 +172 +147 +5 +156 +127 +7 +156 +129 +6 +201 +166 +5 +223 +184 +6 +204 +174 +5 +172 +147 +5 +162 +133 +4 +156 +129 +6 +172 +147 +5 +201 +166 +5 +222 +180 +5 +213 +177 +5 +194 +154 +4 +156 +129 +6 +162 +133 +4 +201 +166 +5 +228 +192 +32 +181 +171 +85 +18 +48 +94 +92 +93 +56 +162 +133 +4 +201 +166 +5 +225 +188 +6 +227 +195 +6 +227 +195 +6 +222 +180 +5 +230 +195 +43 +242 +227 +125 +199 +184 +128 +41 +37 +17 +108 +98 +7 +130 +105 +5 +134 +112 +5 +154 +137 +10 +154 +137 +10 +153 +136 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +136 +10 +158 +142 +22 +167 +151 +39 +181 +171 +85 +185 +177 +109 +186 +180 +119 +181 +174 +105 +105 +88 +5 +131 +117 +9 +158 +142 +22 +169 +155 +53 +179 +166 +71 +183 +177 +113 +167 +151 +39 +174 +161 +59 +186 +180 +119 +175 +173 +100 +108 +98 +7 +131 +117 +9 +154 +136 +10 +154 +137 +10 +153 +136 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +148 +130 +9 +130 +105 +5 +151 +143 +32 +115 +105 +29 +53 +43 +3 +150 +133 +10 +157 +124 +5 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +146 +137 +56 +185 +177 +109 +186 +180 +119 +164 +159 +94 +108 +98 +7 +126 +112 +8 +148 +130 +9 +155 +138 +13 +150 +133 +10 +146 +137 +56 +164 +159 +94 +131 +124 +45 +105 +88 +5 +108 +98 +7 +148 +130 +9 +158 +142 +22 +150 +133 +10 +146 +137 +56 +164 +159 +94 +131 +124 +45 +108 +98 +7 +117 +105 +7 +158 +142 +22 +181 +171 +85 +183 +177 +113 +164 +159 +94 +146 +137 +56 +149 +132 +24 +168 +160 +66 +146 +137 +56 +115 +105 +29 +153 +136 +10 +169 +155 +53 +150 +143 +72 +105 +96 +24 +131 +117 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +228 +192 +32 +233 +204 +67 +207 +189 +88 +18 +48 +94 +18 +48 +94 +134 +112 +5 +213 +177 +5 +127 +126 +80 +18 +48 +94 +115 +105 +29 +201 +166 +5 +201 +166 +5 +131 +124 +45 +65 +79 +71 +68 +78 +61 +96 +93 +42 +156 +127 +7 +204 +174 +5 +213 +184 +31 +104 +102 +60 +65 +79 +71 +55 +71 +75 +105 +96 +24 +194 +154 +4 +226 +189 +24 +127 +123 +64 +65 +79 +71 +65 +79 +71 +92 +93 +56 +156 +127 +7 +204 +174 +5 +213 +177 +5 +131 +124 +45 +65 +79 +71 +68 +78 +61 +96 +93 +42 +148 +122 +5 +213 +177 +5 +181 +171 +85 +18 +48 +94 +92 +93 +56 +162 +133 +4 +201 +166 +5 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +176 +8 +237 +216 +71 +243 +230 +138 +104 +102 +60 +87 +82 +20 +117 +105 +7 +131 +91 +4 +145 +123 +8 +153 +136 +10 +154 +137 +10 +154 +136 +10 +154 +136 +9 +154 +136 +9 +154 +136 +9 +154 +137 +10 +163 +146 +29 +174 +161 +59 +183 +179 +101 +186 +180 +119 +164 +159 +94 +96 +86 +8 +138 +117 +8 +167 +151 +39 +181 +171 +85 +183 +177 +113 +171 +163 +85 +150 +143 +72 +183 +177 +113 +183 +177 +113 +164 +154 +76 +117 +105 +7 +135 +121 +9 +155 +135 +9 +155 +135 +9 +154 +136 +9 +154 +136 +10 +154 +136 +10 +154 +136 +10 +154 +136 +10 +142 +112 +6 +149 +132 +24 +151 +143 +32 +26 +22 +6 +108 +98 +7 +155 +135 +9 +160 +113 +2 +155 +135 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +169 +155 +53 +185 +177 +109 +186 +180 +119 +183 +177 +113 +131 +124 +45 +108 +98 +7 +153 +136 +10 +167 +151 +39 +186 +180 +119 +177 +174 +98 +185 +177 +109 +186 +180 +119 +183 +177 +113 +96 +86 +8 +143 +127 +9 +169 +155 +53 +183 +177 +113 +181 +174 +105 +185 +177 +109 +186 +180 +119 +183 +177 +113 +115 +105 +29 +153 +136 +10 +182 +174 +95 +186 +180 +119 +171 +163 +85 +150 +143 +72 +167 +151 +39 +186 +180 +119 +186 +180 +119 +108 +98 +7 +158 +142 +22 +181 +171 +85 +183 +177 +113 +108 +98 +7 +131 +117 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +224 +187 +16 +230 +195 +43 +234 +208 +79 +91 +102 +85 +18 +48 +94 +84 +83 +49 +213 +177 +5 +42 +64 +86 +33 +56 +84 +171 +140 +4 +228 +192 +32 +55 +71 +75 +42 +64 +86 +127 +123 +64 +72 +86 +78 +18 +48 +94 +96 +93 +42 +204 +174 +5 +127 +126 +80 +18 +48 +94 +139 +129 +30 +92 +93 +56 +104 +102 +60 +213 +177 +5 +164 +154 +76 +18 +48 +94 +113 +109 +47 +131 +124 +45 +65 +79 +71 +194 +154 +4 +230 +195 +43 +72 +86 +78 +42 +64 +86 +127 +123 +64 +92 +93 +56 +18 +48 +94 +84 +83 +49 +194 +154 +4 +179 +166 +71 +18 +48 +94 +92 +93 +56 +157 +135 +6 +201 +166 +5 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +231 +188 +2 +234 +196 +15 +239 +220 +106 +220 +207 +130 +29 +26 +16 +108 +98 +7 +117 +105 +7 +130 +105 +5 +155 +137 +10 +156 +138 +9 +156 +138 +9 +155 +139 +10 +156 +138 +9 +156 +138 +9 +155 +139 +10 +163 +144 +17 +167 +151 +39 +186 +179 +94 +186 +180 +119 +164 +159 +94 +88 +74 +4 +131 +117 +9 +167 +151 +39 +186 +179 +94 +186 +180 +119 +186 +180 +119 +171 +163 +85 +169 +155 +53 +167 +151 +39 +143 +127 +9 +105 +88 +5 +135 +121 +9 +156 +138 +9 +156 +138 +9 +156 +138 +9 +156 +138 +9 +156 +138 +9 +154 +138 +10 +145 +123 +8 +142 +112 +6 +151 +143 +32 +87 +82 +20 +68 +56 +4 +155 +139 +10 +158 +118 +4 +157 +124 +5 +155 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +139 +129 +30 +174 +161 +59 +182 +174 +95 +186 +180 +119 +186 +180 +119 +108 +98 +7 +158 +142 +22 +182 +174 +95 +181 +174 +105 +135 +121 +9 +174 +161 +59 +183 +179 +101 +186 +180 +119 +131 +124 +45 +131 +117 +9 +181 +171 +85 +183 +177 +113 +140 +124 +9 +169 +155 +53 +182 +174 +95 +186 +180 +119 +150 +143 +72 +126 +112 +8 +179 +166 +71 +186 +180 +119 +150 +143 +72 +126 +112 +8 +169 +155 +53 +185 +177 +109 +186 +180 +119 +146 +137 +56 +158 +139 +17 +183 +177 +113 +150 +143 +72 +117 +105 +7 +135 +121 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +228 +192 +32 +233 +204 +67 +186 +179 +94 +18 +48 +94 +33 +56 +84 +149 +132 +24 +18 +48 +94 +92 +93 +56 +204 +174 +5 +190 +175 +80 +18 +48 +94 +113 +109 +47 +104 +102 +60 +42 +64 +86 +33 +56 +84 +92 +93 +56 +226 +189 +24 +127 +126 +80 +18 +48 +94 +55 +71 +75 +158 +139 +17 +172 +147 +5 +223 +184 +6 +149 +145 +88 +18 +48 +94 +33 +56 +84 +149 +132 +24 +194 +154 +4 +204 +174 +5 +198 +179 +67 +18 +48 +94 +113 +109 +47 +113 +109 +47 +42 +64 +86 +33 +56 +84 +92 +93 +56 +213 +177 +5 +181 +171 +85 +18 +48 +94 +92 +93 +56 +157 +135 +6 +201 +166 +5 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +231 +188 +2 +233 +215 +55 +243 +230 +138 +164 +159 +94 +70 +67 +25 +117 +105 +7 +130 +105 +5 +140 +119 +3 +156 +138 +9 +156 +138 +9 +155 +139 +10 +156 +138 +9 +156 +138 +9 +157 +137 +8 +163 +144 +17 +167 +151 +39 +181 +171 +85 +186 +180 +119 +164 +159 +94 +88 +74 +4 +131 +117 +9 +167 +151 +39 +190 +175 +80 +185 +177 +109 +186 +180 +119 +139 +129 +30 +126 +112 +8 +151 +143 +32 +183 +177 +113 +124 +113 +27 +140 +124 +9 +157 +137 +8 +157 +137 +8 +157 +137 +8 +156 +138 +9 +156 +138 +9 +155 +131 +8 +142 +112 +6 +158 +142 +22 +132 +124 +24 +9 +5 +1 +143 +127 +9 +155 +131 +8 +160 +113 +2 +154 +138 +10 +155 +139 +10 +155 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +124 +113 +27 +154 +137 +10 +179 +166 +71 +181 +174 +105 +186 +180 +119 +131 +124 +45 +174 +161 +59 +183 +177 +113 +181 +174 +105 +105 +88 +5 +155 +138 +13 +181 +171 +85 +183 +177 +113 +164 +159 +94 +150 +133 +10 +185 +177 +109 +186 +180 +119 +115 +105 +29 +148 +130 +9 +181 +171 +85 +183 +177 +113 +183 +177 +113 +117 +105 +7 +179 +166 +71 +186 +180 +119 +146 +137 +56 +126 +112 +8 +158 +142 +22 +181 +171 +85 +183 +177 +113 +181 +174 +105 +168 +160 +66 +183 +177 +113 +126 +112 +8 +131 +117 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +224 +187 +16 +230 +195 +43 +234 +211 +91 +72 +86 +78 +18 +48 +94 +33 +56 +84 +18 +48 +94 +145 +123 +8 +224 +187 +16 +149 +145 +88 +18 +48 +94 +18 +48 +94 +65 +79 +71 +146 +137 +56 +213 +184 +31 +201 +166 +5 +213 +177 +5 +210 +190 +66 +91 +102 +85 +18 +48 +94 +33 +56 +84 +96 +93 +42 +194 +154 +4 +233 +204 +67 +114 +113 +72 +18 +48 +94 +18 +48 +94 +96 +93 +42 +194 +154 +4 +150 +143 +72 +18 +48 +94 +18 +48 +94 +65 +79 +71 +146 +137 +56 +213 +184 +31 +213 +177 +5 +201 +166 +5 +179 +166 +71 +18 +48 +94 +92 +93 +56 +157 +135 +6 +201 +166 +5 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +227 +195 +6 +231 +188 +2 +238 +220 +94 +243 +230 +138 +29 +26 +16 +96 +86 +8 +126 +112 +8 +130 +105 +5 +155 +135 +9 +158 +141 +9 +158 +141 +9 +156 +138 +9 +158 +141 +9 +158 +141 +9 +167 +151 +39 +174 +161 +59 +182 +174 +95 +186 +180 +119 +181 +174 +105 +124 +113 +27 +140 +124 +9 +167 +151 +39 +179 +166 +71 +186 +179 +94 +185 +177 +109 +186 +180 +119 +186 +180 +119 +186 +180 +119 +167 +151 +39 +131 +117 +9 +149 +131 +6 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +142 +112 +6 +155 +131 +8 +151 +143 +32 +53 +43 +3 +88 +74 +4 +155 +135 +9 +160 +113 +2 +157 +135 +6 +155 +139 +10 +155 +139 +10 +155 +139 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +115 +105 +29 +117 +105 +7 +167 +151 +39 +183 +177 +113 +186 +180 +119 +117 +105 +7 +174 +161 +59 +185 +177 +109 +186 +180 +119 +146 +137 +56 +117 +105 +7 +158 +142 +22 +183 +177 +113 +146 +137 +56 +167 +151 +39 +183 +179 +101 +186 +180 +119 +150 +143 +72 +117 +105 +7 +158 +142 +22 +181 +174 +105 +164 +154 +76 +135 +121 +9 +179 +166 +71 +186 +180 +119 +146 +137 +56 +105 +88 +5 +126 +112 +8 +174 +161 +59 +193 +183 +105 +186 +180 +119 +186 +180 +119 +150 +143 +72 +126 +112 +8 +140 +124 +9 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +228 +192 +32 +234 +208 +79 +149 +145 +88 +18 +48 +94 +18 +48 +94 +68 +78 +61 +183 +150 +5 +228 +192 +32 +207 +189 +88 +18 +48 +94 +65 +79 +71 +172 +147 +5 +183 +150 +5 +132 +124 +24 +84 +83 +49 +213 +177 +5 +146 +137 +56 +213 +184 +31 +146 +137 +56 +18 +48 +94 +33 +56 +84 +172 +147 +5 +178 +152 +46 +191 +160 +42 +191 +160 +42 +33 +56 +84 +18 +48 +94 +172 +147 +5 +215 +195 +75 +18 +48 +94 +65 +79 +71 +172 +147 +5 +183 +150 +5 +158 +142 +22 +84 +83 +49 +213 +177 +5 +179 +166 +71 +18 +48 +94 +92 +93 +56 +148 +122 +5 +201 +166 +5 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +231 +188 +2 +235 +208 +26 +242 +227 +125 +199 +184 +128 +41 +37 +17 +108 +98 +7 +130 +105 +5 +142 +112 +6 +158 +141 +9 +161 +141 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +167 +151 +39 +174 +161 +59 +181 +171 +85 +179 +166 +71 +167 +151 +39 +148 +130 +9 +155 +131 +8 +163 +144 +17 +167 +151 +39 +179 +166 +71 +179 +166 +71 +179 +166 +71 +179 +166 +71 +163 +146 +29 +155 +135 +9 +155 +131 +8 +157 +137 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +156 +129 +6 +142 +112 +6 +158 +142 +22 +115 +105 +29 +59 +49 +4 +156 +138 +9 +162 +123 +4 +162 +123 +4 +158 +141 +9 +158 +141 +9 +155 +139 +10 +155 +139 +10 +155 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +186 +180 +119 +175 +173 +100 +181 +174 +105 +186 +180 +119 +186 +180 +119 +164 +154 +76 +131 +117 +9 +167 +151 +39 +186 +179 +94 +186 +180 +119 +186 +180 +119 +181 +174 +105 +181 +174 +105 +183 +177 +113 +131 +117 +9 +158 +142 +22 +186 +179 +94 +186 +180 +119 +186 +180 +119 +183 +177 +113 +177 +174 +98 +183 +177 +113 +132 +124 +24 +155 +138 +13 +181 +171 +85 +186 +180 +119 +181 +174 +105 +164 +154 +76 +126 +112 +8 +163 +146 +29 +181 +171 +85 +183 +177 +113 +181 +174 +105 +131 +117 +9 +135 +121 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +224 +187 +16 +231 +200 +54 +234 +211 +91 +48 +71 +95 +18 +48 +94 +132 +124 +24 +201 +166 +5 +226 +189 +24 +234 +208 +79 +114 +113 +72 +18 +48 +94 +33 +56 +84 +55 +71 +75 +33 +56 +84 +176 +151 +24 +228 +192 +32 +114 +113 +72 +42 +64 +86 +127 +123 +64 +33 +56 +84 +92 +93 +56 +204 +174 +5 +127 +123 +64 +33 +56 +84 +114 +113 +72 +42 +64 +86 +65 +79 +71 +194 +154 +4 +233 +204 +67 +114 +113 +72 +18 +48 +94 +33 +56 +84 +55 +71 +75 +33 +56 +84 +176 +151 +24 +227 +193 +15 +149 +145 +88 +18 +48 +94 +65 +79 +71 +149 +131 +6 +201 +166 +5 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +231 +188 +2 +237 +216 +71 +243 +230 +138 +114 +113 +72 +87 +82 +20 +126 +112 +8 +131 +91 +4 +156 +129 +6 +161 +141 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +163 +144 +17 +176 +151 +24 +176 +151 +24 +176 +151 +24 +163 +144 +17 +164 +140 +6 +161 +141 +8 +164 +140 +6 +163 +144 +17 +176 +151 +24 +176 +151 +24 +176 +151 +24 +176 +151 +24 +163 +144 +17 +161 +141 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +161 +141 +8 +142 +112 +6 +158 +142 +22 +151 +143 +32 +20 +15 +1 +117 +105 +7 +157 +137 +8 +167 +118 +3 +157 +137 +8 +155 +139 +10 +158 +141 +9 +156 +138 +9 +155 +139 +10 +155 +139 +10 +155 +137 +10 +154 +137 +10 +167 +151 +39 +181 +171 +85 +182 +174 +95 +181 +171 +85 +181 +171 +85 +181 +171 +85 +179 +166 +71 +169 +155 +53 +150 +133 +10 +150 +133 +10 +158 +142 +22 +179 +166 +71 +181 +171 +85 +182 +174 +95 +182 +174 +95 +169 +155 +53 +150 +133 +10 +143 +127 +9 +158 +142 +22 +179 +166 +71 +181 +171 +85 +181 +171 +85 +182 +174 +95 +169 +155 +53 +155 +138 +13 +143 +127 +9 +158 +142 +22 +181 +171 +85 +183 +179 +101 +182 +174 +95 +151 +143 +32 +140 +124 +9 +163 +146 +29 +181 +171 +85 +186 +180 +119 +131 +124 +45 +131 +117 +9 +150 +133 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +228 +192 +32 +233 +204 +67 +181 +171 +85 +131 +124 +45 +194 +154 +4 +204 +174 +5 +226 +189 +24 +231 +200 +54 +233 +204 +67 +198 +179 +67 +127 +126 +80 +131 +124 +45 +184 +161 +25 +222 +180 +5 +231 +200 +54 +190 +175 +80 +127 +123 +64 +127 +123 +64 +167 +151 +39 +208 +174 +13 +228 +192 +32 +215 +195 +75 +127 +126 +80 +127 +123 +64 +146 +137 +56 +184 +161 +25 +223 +184 +6 +231 +200 +54 +233 +204 +67 +210 +190 +66 +127 +126 +80 +131 +124 +45 +176 +151 +24 +212 +186 +4 +231 +200 +54 +149 +145 +88 +127 +126 +80 +113 +109 +47 +173 +151 +6 +204 +174 +5 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +233 +197 +2 +234 +196 +15 +239 +220 +106 +243 +230 +138 +29 +26 +16 +108 +98 +7 +126 +112 +8 +147 +102 +2 +164 +140 +6 +161 +141 +8 +164 +140 +6 +164 +140 +6 +164 +140 +6 +163 +144 +8 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +163 +144 +8 +163 +144 +8 +164 +140 +6 +163 +144 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +148 +122 +5 +156 +127 +7 +167 +151 +39 +77 +65 +5 +77 +65 +5 +158 +141 +9 +167 +118 +3 +162 +133 +4 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +155 +139 +10 +155 +139 +10 +155 +139 +10 +154 +137 +10 +167 +151 +39 +174 +161 +59 +169 +155 +53 +167 +151 +39 +167 +151 +39 +167 +151 +39 +163 +146 +29 +154 +137 +11 +155 +138 +13 +153 +136 +10 +158 +139 +17 +163 +146 +29 +169 +155 +53 +174 +161 +59 +167 +151 +39 +154 +137 +11 +154 +137 +11 +153 +136 +10 +158 +139 +17 +163 +146 +29 +167 +151 +39 +179 +166 +71 +167 +151 +39 +153 +136 +10 +154 +137 +11 +153 +136 +10 +158 +139 +17 +167 +151 +39 +179 +166 +71 +167 +151 +39 +155 +138 +13 +163 +146 +29 +167 +151 +39 +183 +177 +113 +171 +163 +85 +117 +105 +7 +140 +124 +9 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +171 +140 +4 +204 +138 +1 +222 +180 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +224 +187 +16 +228 +192 +32 +230 +195 +43 +226 +189 +24 +213 +177 +5 +213 +177 +5 +224 +187 +16 +226 +189 +24 +228 +192 +32 +231 +200 +54 +230 +195 +43 +224 +187 +16 +223 +184 +6 +223 +185 +8 +228 +192 +32 +231 +200 +54 +231 +200 +54 +226 +189 +24 +223 +184 +6 +223 +185 +8 +226 +189 +24 +231 +200 +54 +231 +200 +54 +226 +189 +24 +223 +185 +8 +223 +185 +8 +224 +187 +16 +226 +189 +24 +228 +192 +32 +231 +200 +54 +230 +195 +43 +227 +193 +15 +225 +188 +6 +227 +193 +15 +230 +195 +43 +231 +200 +54 +231 +200 +54 +228 +197 +24 +212 +186 +4 +212 +186 +4 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +235 +205 +2 +233 +197 +2 +239 +217 +40 +243 +230 +138 +173 +163 +117 +59 +55 +21 +117 +105 +7 +130 +105 +5 +148 +122 +5 +163 +144 +8 +163 +144 +8 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +162 +133 +4 +148 +113 +4 +163 +146 +29 +132 +124 +24 +34 +27 +3 +156 +138 +9 +162 +133 +4 +167 +118 +3 +161 +141 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +156 +138 +9 +155 +139 +10 +155 +139 +10 +155 +137 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +163 +146 +29 +163 +146 +29 +163 +146 +29 +158 +142 +22 +153 +136 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +11 +158 +142 +22 +163 +146 +29 +158 +142 +22 +154 +137 +10 +153 +136 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +163 +146 +29 +158 +142 +22 +154 +137 +10 +153 +136 +10 +153 +136 +10 +154 +137 +10 +158 +142 +22 +163 +146 +29 +158 +142 +22 +163 +146 +29 +179 +166 +71 +186 +180 +119 +185 +177 +109 +135 +121 +9 +131 +117 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +161 +108 +0 +174 +161 +59 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +179 +135 +3 +204 +138 +1 +209 +156 +2 +224 +162 +1 +225 +168 +2 +225 +168 +2 +225 +168 +2 +226 +176 +3 +223 +184 +6 +223 +184 +6 +224 +187 +16 +226 +189 +24 +224 +187 +16 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +224 +187 +16 +226 +189 +24 +226 +189 +24 +224 +187 +16 +223 +184 +6 +223 +184 +6 +224 +187 +16 +226 +189 +24 +226 +189 +24 +224 +187 +16 +223 +184 +6 +222 +180 +5 +224 +187 +16 +226 +189 +24 +226 +189 +24 +224 +187 +16 +223 +185 +8 +223 +185 +8 +223 +185 +8 +225 +188 +6 +227 +193 +15 +228 +197 +24 +226 +189 +24 +227 +193 +15 +225 +188 +6 +225 +188 +6 +227 +193 +15 +228 +197 +24 +228 +197 +24 +229 +201 +13 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +234 +210 +4 +235 +205 +2 +233 +197 +2 +243 +230 +87 +243 +230 +138 +68 +78 +61 +96 +86 +8 +126 +112 +8 +130 +105 +5 +164 +140 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +164 +140 +6 +162 +133 +4 +162 +133 +4 +164 +140 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +167 +144 +6 +148 +113 +4 +170 +139 +22 +151 +143 +32 +43 +35 +3 +105 +88 +5 +164 +140 +6 +167 +118 +3 +164 +140 +6 +163 +144 +8 +161 +141 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +156 +138 +9 +155 +139 +10 +155 +139 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +179 +166 +71 +158 +142 +22 +148 +130 +9 +150 +133 +10 +153 +136 +10 +154 +136 +10 +155 +131 +8 +157 +124 +5 +158 +118 +4 +160 +113 +2 +161 +108 +0 +160 +113 +2 +157 +124 +5 +167 +151 +39 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +34 +27 +3 +105 +88 +5 +153 +111 +3 +187 +143 +14 +201 +166 +5 +201 +166 +5 +209 +156 +2 +209 +156 +2 +224 +162 +1 +224 +162 +1 +224 +162 +1 +224 +162 +1 +225 +168 +2 +226 +176 +3 +226 +176 +3 +222 +180 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +185 +8 +223 +185 +8 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +235 +205 +2 +234 +210 +4 +234 +210 +4 +234 +210 +4 +235 +205 +2 +234 +206 +16 +242 +227 +125 +220 +207 +130 +41 +37 +17 +117 +105 +7 +134 +112 +5 +148 +113 +4 +167 +144 +6 +164 +140 +6 +162 +133 +4 +162 +133 +4 +157 +124 +5 +158 +118 +4 +153 +111 +3 +153 +111 +3 +158 +118 +4 +158 +118 +4 +158 +118 +4 +158 +118 +4 +153 +111 +3 +160 +113 +2 +157 +124 +5 +156 +129 +6 +162 +133 +4 +171 +140 +4 +172 +147 +5 +172 +147 +5 +156 +129 +6 +157 +124 +5 +167 +151 +39 +105 +96 +24 +68 +56 +4 +163 +144 +8 +169 +130 +4 +169 +130 +4 +163 +144 +8 +163 +144 +8 +163 +144 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +155 +139 +10 +155 +139 +10 +155 +139 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +158 +139 +17 +157 +124 +5 +158 +118 +4 +160 +113 +2 +161 +108 +0 +160 +113 +2 +158 +118 +4 +157 +124 +5 +156 +127 +7 +148 +130 +9 +148 +130 +9 +131 +117 +9 +77 +65 +5 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +124 +113 +27 +81 +77 +32 +49 +45 +20 +9 +5 +1 +34 +27 +3 +59 +49 +4 +88 +74 +4 +147 +102 +2 +179 +135 +3 +194 +154 +4 +201 +166 +5 +201 +166 +5 +209 +156 +2 +209 +156 +2 +224 +162 +1 +224 +162 +1 +224 +162 +1 +225 +168 +2 +225 +168 +2 +226 +176 +3 +222 +180 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +184 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +235 +205 +2 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +235 +205 +2 +240 +220 +56 +243 +230 +138 +127 +126 +80 +87 +82 +20 +126 +112 +8 +147 +102 +2 +153 +111 +3 +160 +113 +2 +158 +118 +4 +162 +123 +4 +156 +127 +7 +156 +129 +6 +162 +133 +4 +162 +133 +4 +162 +133 +4 +157 +135 +6 +162 +133 +4 +162 +133 +4 +162 +133 +4 +156 +129 +6 +157 +124 +5 +158 +118 +4 +153 +111 +3 +153 +111 +3 +153 +111 +3 +158 +118 +4 +160 +113 +2 +176 +151 +24 +151 +143 +32 +14 +10 +2 +131 +117 +9 +171 +140 +4 +171 +124 +2 +167 +144 +6 +163 +144 +8 +163 +144 +8 +163 +144 +8 +161 +141 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +156 +138 +9 +155 +139 +10 +155 +139 +10 +155 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +131 +8 +156 +127 +7 +158 +118 +4 +158 +118 +4 +160 +113 +2 +160 +113 +2 +158 +118 +4 +157 +124 +5 +156 +127 +7 +148 +130 +9 +148 +130 +9 +143 +127 +9 +143 +127 +9 +131 +117 +9 +105 +88 +5 +77 +65 +5 +53 +43 +3 +20 +15 +1 +96 +93 +42 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +120 +3 +169 +155 +53 +183 +179 +101 +183 +179 +101 +149 +145 +88 +127 +123 +64 +96 +93 +42 +59 +55 +21 +20 +15 +1 +20 +15 +1 +53 +43 +3 +88 +74 +4 +131 +91 +4 +171 +124 +2 +194 +154 +4 +201 +166 +5 +201 +166 +5 +209 +156 +2 +209 +156 +2 +224 +162 +1 +224 +162 +1 +224 +162 +1 +225 +168 +2 +225 +168 +2 +226 +176 +3 +222 +180 +5 +223 +184 +6 +223 +184 +6 +223 +184 +6 +223 +185 +8 +223 +185 +8 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +235 +205 +2 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +243 +230 +87 +243 +230 +138 +26 +22 +6 +108 +98 +7 +140 +119 +3 +164 +140 +6 +172 +147 +5 +167 +144 +6 +156 +127 +7 +153 +111 +3 +148 +94 +1 +156 +86 +11 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +156 +86 +11 +148 +94 +1 +147 +102 +2 +148 +122 +5 +157 +135 +6 +164 +140 +6 +162 +133 +4 +171 +139 +13 +167 +151 +39 +77 +65 +5 +88 +74 +4 +167 +144 +6 +171 +124 +2 +171 +140 +4 +167 +144 +6 +167 +144 +6 +163 +144 +8 +163 +144 +8 +163 +144 +8 +161 +141 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +154 +138 +10 +155 +139 +10 +155 +139 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +156 +129 +6 +157 +124 +5 +158 +118 +4 +160 +113 +2 +161 +108 +0 +160 +113 +2 +158 +118 +4 +157 +124 +5 +156 +129 +6 +148 +130 +9 +148 +130 +9 +143 +127 +9 +143 +127 +9 +126 +112 +8 +96 +86 +8 +68 +56 +4 +43 +35 +3 +20 +15 +1 +18 +14 +7 +49 +45 +20 +81 +77 +32 +113 +109 +47 +146 +137 +56 +181 +171 +85 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +150 +133 +10 +176 +139 +27 +178 +152 +46 +182 +155 +55 +181 +171 +85 +182 +174 +95 +183 +179 +101 +183 +179 +101 +164 +159 +94 +127 +126 +80 +104 +102 +60 +70 +67 +25 +34 +27 +3 +14 +10 +2 +43 +35 +3 +68 +56 +4 +105 +88 +5 +153 +111 +3 +194 +154 +4 +201 +166 +5 +201 +166 +5 +209 +156 +2 +209 +156 +2 +224 +162 +1 +224 +162 +1 +224 +162 +1 +224 +162 +1 +225 +168 +2 +226 +176 +3 +222 +180 +5 +223 +184 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +225 +188 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +235 +205 +2 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +235 +205 +2 +239 +217 +40 +243 +230 +138 +183 +177 +113 +59 +55 +21 +126 +120 +3 +148 +122 +5 +153 +111 +3 +156 +86 +11 +160 +94 +16 +179 +128 +28 +191 +160 +42 +204 +177 +50 +218 +198 +56 +240 +220 +56 +239 +234 +68 +239 +234 +68 +240 +220 +56 +218 +198 +56 +204 +177 +50 +191 +160 +42 +179 +128 +28 +160 +94 +16 +156 +86 +11 +147 +102 +2 +148 +122 +5 +158 +141 +9 +132 +124 +24 +43 +35 +3 +167 +144 +6 +179 +135 +3 +178 +128 +2 +167 +148 +8 +167 +148 +8 +167 +144 +6 +163 +144 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +155 +139 +10 +155 +139 +10 +155 +139 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +156 +127 +7 +157 +124 +5 +158 +118 +4 +160 +113 +2 +161 +108 +0 +160 +113 +2 +158 +118 +4 +156 +127 +7 +156 +129 +6 +150 +133 +10 +143 +127 +9 +143 +127 +9 +143 +127 +9 +117 +105 +7 +88 +74 +4 +59 +49 +4 +34 +27 +3 +9 +5 +1 +26 +22 +6 +59 +55 +21 +96 +93 +42 +113 +109 +47 +146 +137 +56 +168 +160 +66 +168 +160 +66 +168 +160 +66 +169 +155 +53 +179 +166 +71 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +140 +119 +3 +160 +113 +2 +162 +130 +12 +162 +130 +12 +171 +124 +10 +170 +139 +22 +181 +142 +38 +182 +155 +55 +179 +166 +71 +181 +171 +85 +182 +174 +95 +186 +179 +94 +183 +179 +101 +175 +173 +100 +149 +145 +88 +113 +109 +47 +81 +77 +32 +49 +45 +20 +0 +0 +0 +34 +27 +3 +68 +56 +4 +88 +74 +4 +147 +102 +2 +179 +135 +3 +194 +154 +4 +201 +166 +5 +201 +166 +5 +212 +168 +4 +212 +168 +4 +225 +168 +2 +225 +168 +2 +225 +168 +2 +225 +168 +2 +226 +176 +3 +222 +180 +5 +225 +188 +6 +225 +188 +6 +225 +188 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +235 +205 +2 +234 +210 +4 +243 +230 +87 +243 +230 +138 +114 +113 +72 +149 +110 +23 +156 +86 +11 +176 +139 +27 +204 +177 +50 +227 +222 +74 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +227 +222 +74 +204 +177 +50 +176 +139 +27 +156 +86 +11 +162 +123 +4 +53 +43 +3 +105 +88 +5 +167 +144 +6 +179 +135 +3 +178 +128 +2 +172 +147 +5 +167 +148 +8 +167 +148 +8 +167 +144 +6 +163 +144 +8 +163 +144 +8 +163 +144 +8 +161 +141 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +156 +138 +9 +155 +139 +10 +155 +139 +10 +155 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +136 +10 +155 +131 +8 +157 +124 +5 +158 +118 +4 +160 +113 +2 +161 +108 +0 +160 +113 +2 +158 +118 +4 +157 +124 +5 +156 +127 +7 +148 +130 +9 +148 +130 +9 +143 +127 +9 +143 +127 +9 +135 +121 +9 +108 +98 +7 +77 +65 +5 +53 +43 +3 +26 +22 +6 +0 +0 +0 +41 +37 +17 +70 +67 +25 +96 +93 +42 +131 +124 +45 +150 +143 +72 +168 +160 +66 +168 +160 +66 +174 +161 +59 +169 +155 +53 +167 +151 +39 +176 +139 +27 +173 +131 +16 +165 +124 +10 +167 +118 +3 +174 +161 +59 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +155 +131 +8 +157 +124 +5 +158 +118 +4 +158 +118 +4 +167 +118 +3 +171 +124 +10 +173 +131 +16 +176 +139 +27 +178 +152 +46 +174 +161 +59 +181 +171 +85 +182 +174 +95 +182 +174 +95 +183 +179 +101 +183 +179 +101 +149 +145 +88 +127 +123 +64 +96 +93 +42 +59 +55 +21 +18 +14 +7 +20 +15 +1 +53 +43 +3 +88 +74 +4 +131 +91 +4 +171 +124 +2 +194 +154 +4 +201 +166 +5 +201 +166 +5 +212 +168 +4 +212 +168 +4 +225 +168 +2 +226 +176 +3 +225 +168 +2 +226 +176 +3 +222 +180 +5 +223 +184 +6 +225 +188 +6 +227 +195 +6 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +229 +202 +5 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +235 +205 +2 +238 +216 +13 +238 +216 +13 +202 +170 +30 +156 +86 +11 +181 +142 +38 +218 +198 +56 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +239 +234 +68 +218 +198 +56 +181 +142 +38 +156 +86 +11 +147 +102 +2 +157 +135 +6 +167 +144 +6 +178 +128 +2 +171 +140 +4 +172 +147 +5 +167 +148 +8 +167 +148 +8 +167 +144 +6 +163 +144 +8 +163 +144 +8 +163 +144 +8 +161 +141 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +155 +139 +10 +155 +139 +10 +155 +139 +10 +154 +137 +10 +155 +135 +9 +156 +129 +6 +157 +124 +5 +158 +118 +4 +160 +113 +2 +161 +108 +0 +160 +113 +2 +158 +118 +4 +157 +124 +5 +155 +131 +8 +150 +133 +10 +148 +130 +9 +143 +127 +9 +143 +127 +9 +126 +112 +8 +96 +86 +8 +68 +56 +4 +43 +35 +3 +20 +15 +1 +14 +10 +2 +49 +45 +20 +81 +77 +32 +113 +109 +47 +131 +124 +45 +168 +160 +66 +168 +160 +66 +168 +160 +66 +174 +161 +59 +167 +151 +39 +163 +146 +29 +170 +139 +22 +173 +131 +16 +167 +118 +3 +160 +113 +2 +160 +113 +2 +158 +118 +4 +157 +124 +5 +155 +131 +8 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +156 +129 +6 +157 +124 +5 +158 +118 +4 +167 +118 +3 +167 +118 +3 +171 +124 +10 +176 +139 +27 +181 +142 +38 +182 +155 +55 +179 +166 +71 +181 +171 +85 +182 +174 +95 +183 +179 +101 +183 +179 +101 +164 +159 +94 +127 +123 +64 +96 +93 +42 +70 +67 +25 +34 +27 +3 +14 +10 +2 +43 +35 +3 +77 +65 +5 +105 +88 +5 +158 +118 +4 +194 +154 +4 +204 +174 +5 +204 +174 +5 +212 +168 +4 +212 +168 +4 +226 +176 +3 +222 +180 +5 +226 +176 +3 +226 +176 +3 +231 +188 +2 +231 +188 +2 +227 +195 +6 +229 +202 +5 +229 +202 +5 +229 +202 +5 +235 +205 +2 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +235 +205 +2 +238 +216 +13 +218 +193 +4 +178 +128 +2 +179 +128 +28 +210 +190 +66 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +210 +190 +66 +179 +128 +28 +148 +94 +1 +148 +122 +5 +162 +133 +4 +171 +124 +2 +171 +140 +4 +172 +147 +5 +167 +148 +8 +167 +144 +6 +163 +144 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +158 +141 +9 +158 +141 +9 +158 +141 +9 +157 +135 +6 +156 +129 +6 +157 +124 +5 +158 +118 +4 +160 +113 +2 +160 +113 +2 +158 +118 +4 +157 +124 +5 +156 +127 +7 +155 +131 +8 +150 +133 +10 +148 +130 +9 +143 +127 +9 +143 +127 +9 +117 +105 +7 +88 +74 +4 +59 +49 +4 +34 +27 +3 +14 +10 +2 +26 +22 +6 +59 +55 +21 +87 +82 +20 +113 +109 +47 +146 +137 +56 +168 +160 +66 +168 +160 +66 +174 +161 +59 +169 +155 +53 +167 +151 +39 +176 +139 +27 +173 +131 +16 +171 +124 +10 +167 +118 +3 +158 +118 +4 +158 +118 +4 +157 +124 +5 +156 +129 +6 +155 +135 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +138 +13 +154 +137 +11 +148 +130 +9 +140 +124 +9 +140 +124 +9 +143 +127 +9 +150 +133 +10 +155 +131 +8 +156 +127 +7 +157 +124 +5 +158 +118 +4 +167 +118 +3 +171 +124 +10 +173 +131 +16 +176 +139 +27 +178 +152 +46 +174 +161 +59 +181 +171 +85 +182 +174 +95 +186 +179 +94 +183 +179 +101 +175 +173 +100 +150 +143 +72 +113 +109 +47 +81 +77 +32 +41 +37 +17 +0 +0 +0 +34 +27 +3 +68 +56 +4 +105 +88 +5 +148 +113 +4 +194 +154 +4 +204 +174 +5 +204 +174 +5 +213 +177 +5 +213 +177 +5 +223 +184 +6 +225 +188 +6 +231 +188 +2 +231 +188 +2 +231 +188 +2 +233 +197 +2 +229 +202 +5 +235 +205 +2 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +234 +210 +4 +235 +205 +2 +234 +210 +4 +213 +177 +5 +156 +86 +11 +191 +160 +42 +227 +222 +74 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +227 +222 +74 +191 +160 +42 +156 +86 +11 +148 +113 +4 +162 +123 +4 +171 +124 +2 +172 +147 +5 +172 +147 +5 +167 +148 +8 +167 +144 +6 +163 +144 +8 +164 +140 +6 +169 +130 +4 +162 +123 +4 +167 +118 +3 +161 +108 +0 +160 +113 +2 +162 +123 +4 +157 +124 +5 +155 +131 +8 +150 +133 +10 +148 +130 +9 +143 +127 +9 +143 +127 +9 +140 +124 +9 +108 +98 +7 +77 +65 +5 +59 +49 +4 +26 +22 +6 +0 +0 +0 +41 +37 +17 +70 +67 +25 +96 +93 +42 +131 +124 +45 +150 +143 +72 +168 +160 +66 +168 +160 +66 +174 +161 +59 +178 +152 +46 +176 +139 +27 +170 +139 +22 +173 +131 +16 +167 +118 +3 +167 +118 +3 +158 +118 +4 +157 +124 +5 +156 +127 +7 +155 +131 +8 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +138 +13 +154 +137 +11 +150 +133 +10 +150 +133 +10 +140 +124 +9 +126 +112 +8 +117 +105 +7 +126 +112 +8 +135 +121 +9 +140 +124 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +136 +10 +155 +131 +8 +157 +124 +5 +157 +124 +5 +165 +124 +10 +171 +124 +10 +171 +124 +10 +176 +139 +27 +181 +142 +38 +182 +155 +55 +179 +166 +71 +181 +171 +85 +182 +174 +95 +183 +179 +101 +183 +179 +101 +149 +145 +88 +127 +123 +64 +96 +93 +42 +59 +55 +21 +14 +10 +2 +26 +22 +6 +59 +49 +4 +88 +74 +4 +142 +112 +6 +183 +150 +5 +204 +174 +5 +212 +186 +4 +212 +186 +4 +212 +186 +4 +225 +188 +6 +227 +195 +6 +233 +197 +2 +233 +197 +2 +233 +197 +2 +235 +205 +2 +235 +205 +2 +235 +205 +2 +234 +210 +4 +213 +177 +5 +160 +94 +16 +204 +177 +50 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +233 +229 +70 +204 +177 +50 +160 +94 +16 +142 +112 +6 +158 +118 +4 +171 +124 +2 +169 +130 +4 +178 +128 +2 +171 +124 +2 +167 +118 +3 +171 +124 +2 +169 +130 +4 +162 +133 +4 +162 +133 +4 +155 +139 +10 +150 +133 +10 +148 +130 +9 +148 +130 +9 +126 +112 +8 +105 +88 +5 +77 +65 +5 +43 +35 +3 +20 +15 +1 +9 +5 +1 +49 +45 +20 +81 +77 +32 +96 +93 +42 +131 +124 +45 +168 +160 +66 +168 +160 +66 +168 +160 +66 +169 +155 +53 +167 +151 +39 +176 +139 +27 +173 +131 +16 +171 +124 +10 +167 +118 +3 +158 +118 +4 +158 +118 +4 +157 +124 +5 +155 +131 +8 +154 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +138 +13 +158 +139 +17 +154 +137 +11 +150 +133 +10 +149 +132 +24 +150 +143 +72 +146 +137 +56 +146 +137 +56 +124 +113 +27 +115 +105 +29 +108 +98 +7 +140 +124 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +156 +129 +6 +156 +127 +7 +165 +124 +10 +165 +124 +10 +171 +124 +10 +173 +131 +16 +176 +139 +27 +178 +152 +46 +179 +166 +71 +181 +171 +85 +186 +179 +94 +183 +179 +101 +183 +179 +101 +164 +159 +94 +127 +126 +80 +96 +93 +42 +70 +67 +25 +34 +27 +3 +20 +15 +1 +53 +43 +3 +88 +74 +4 +130 +105 +5 +171 +140 +4 +212 +186 +4 +212 +186 +4 +218 +193 +4 +218 +193 +4 +227 +195 +6 +229 +202 +5 +235 +205 +2 +213 +177 +5 +163 +101 +23 +204 +177 +50 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +204 +177 +50 +163 +101 +23 +148 +113 +4 +162 +123 +4 +179 +135 +3 +171 +140 +4 +164 +140 +6 +161 +141 +8 +154 +136 +9 +155 +131 +8 +149 +131 +6 +126 +112 +8 +96 +86 +8 +68 +56 +4 +43 +35 +3 +14 +10 +2 +26 +22 +6 +59 +55 +21 +81 +77 +32 +113 +109 +47 +146 +137 +56 +168 +160 +66 +168 +160 +66 +169 +155 +53 +178 +152 +46 +176 +139 +27 +170 +139 +22 +173 +131 +16 +171 +124 +10 +162 +123 +4 +162 +123 +4 +157 +124 +5 +156 +129 +6 +155 +135 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +168 +160 +66 +181 +174 +105 +181 +174 +105 +181 +171 +85 +181 +174 +105 +181 +174 +105 +181 +174 +105 +105 +96 +24 +131 +117 +9 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +135 +9 +156 +127 +7 +162 +130 +12 +162 +130 +12 +173 +131 +16 +178 +128 +2 +176 +139 +27 +178 +152 +46 +191 +160 +42 +190 +172 +60 +190 +175 +80 +186 +179 +94 +193 +183 +105 +175 +173 +100 +150 +143 +72 +113 +109 +47 +81 +77 +32 +49 +45 +20 +9 +5 +1 +43 +35 +3 +77 +65 +5 +130 +105 +5 +171 +140 +4 +194 +154 +4 +204 +174 +5 +160 +94 +16 +204 +177 +50 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +204 +177 +50 +160 +94 +16 +148 +113 +4 +157 +135 +6 +126 +112 +8 +117 +105 +7 +88 +74 +4 +59 +49 +4 +34 +27 +3 +9 +5 +1 +34 +27 +3 +70 +67 +25 +96 +93 +42 +131 +124 +45 +150 +143 +72 +168 +160 +66 +168 +160 +66 +178 +152 +46 +178 +152 +46 +176 +139 +27 +165 +124 +10 +160 +113 +2 +153 +111 +3 +158 +118 +4 +157 +124 +5 +156 +127 +7 +155 +135 +9 +153 +136 +10 +143 +127 +9 +140 +124 +9 +148 +130 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +138 +13 +154 +137 +11 +148 +130 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +148 +113 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +11 +167 +151 +39 +169 +155 +53 +179 +166 +71 +181 +174 +105 +164 +154 +76 +158 +142 +22 +169 +155 +53 +174 +161 +59 +181 +171 +85 +181 +174 +105 +131 +124 +45 +131 +117 +9 +153 +136 +10 +154 +137 +10 +154 +137 +11 +154 +137 +11 +153 +136 +10 +150 +133 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +137 +10 +155 +139 +10 +155 +139 +10 +158 +141 +9 +158 +141 +9 +157 +137 +8 +162 +133 +4 +171 +139 +13 +171 +139 +13 +179 +135 +3 +187 +143 +14 +176 +151 +24 +191 +160 +42 +190 +172 +60 +190 +175 +80 +195 +188 +89 +195 +188 +89 +193 +183 +105 +164 +154 +76 +127 +123 +64 +96 +93 +42 +59 +55 +21 +59 +49 +4 +147 +68 +5 +191 +160 +42 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +227 +222 +74 +191 +160 +42 +147 +68 +5 +26 +22 +6 +41 +37 +17 +49 +45 +20 +70 +67 +25 +96 +93 +42 +131 +124 +45 +168 +160 +66 +168 +160 +66 +169 +155 +53 +178 +152 +46 +176 +139 +27 +173 +131 +16 +171 +124 +10 +171 +124 +10 +165 +124 +10 +160 +132 +32 +162 +130 +12 +143 +127 +9 +131 +124 +45 +108 +98 +7 +135 +121 +9 +148 +130 +9 +155 +138 +13 +158 +142 +22 +153 +136 +10 +132 +124 +24 +108 +98 +7 +140 +124 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +158 +142 +22 +149 +132 +24 +139 +129 +30 +124 +113 +27 +108 +98 +7 +142 +112 +6 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +155 +138 +13 +167 +151 +39 +179 +166 +71 +181 +174 +105 +175 +173 +100 +117 +105 +7 +143 +127 +9 +158 +142 +22 +167 +151 +39 +179 +166 +71 +168 +160 +66 +149 +132 +24 +148 +130 +9 +153 +136 +10 +148 +130 +9 +143 +127 +9 +148 +130 +9 +135 +121 +9 +131 +117 +9 +150 +133 +10 +153 +136 +10 +148 +130 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +143 +127 +9 +150 +133 +10 +148 +130 +9 +140 +124 +9 +140 +124 +9 +150 +133 +10 +155 +139 +10 +150 +133 +10 +143 +127 +9 +143 +127 +9 +155 +139 +10 +158 +141 +9 +152 +137 +8 +148 +130 +9 +152 +137 +8 +161 +141 +8 +171 +139 +13 +171 +139 +13 +187 +143 +14 +187 +143 +14 +187 +143 +14 +191 +160 +42 +204 +177 +50 +198 +179 +67 +195 +188 +89 +195 +188 +89 +177 +139 +60 +174 +128 +42 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +174 +128 +42 +131 +91 +4 +151 +143 +32 +168 +160 +66 +178 +152 +46 +181 +142 +38 +176 +139 +27 +173 +131 +16 +171 +124 +10 +171 +124 +10 +165 +124 +10 +156 +127 +7 +155 +131 +8 +155 +135 +9 +154 +137 +10 +154 +137 +11 +167 +151 +39 +169 +155 +53 +168 +160 +66 +186 +180 +119 +115 +105 +29 +105 +88 +5 +140 +124 +9 +158 +142 +22 +167 +151 +39 +168 +160 +66 +183 +177 +113 +115 +105 +29 +131 +117 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +169 +155 +53 +181 +171 +85 +186 +180 +119 +150 +143 +72 +108 +98 +7 +130 +105 +5 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +158 +142 +22 +167 +151 +39 +181 +171 +85 +181 +174 +105 +146 +137 +56 +108 +98 +7 +135 +121 +9 +153 +136 +10 +158 +142 +22 +167 +151 +39 +163 +146 +29 +153 +136 +10 +158 +139 +17 +158 +142 +22 +135 +121 +9 +132 +124 +24 +126 +112 +8 +131 +124 +45 +108 +98 +7 +135 +121 +9 +153 +136 +10 +131 +117 +9 +124 +113 +27 +124 +113 +27 +105 +88 +5 +117 +105 +7 +150 +133 +10 +149 +132 +24 +124 +113 +27 +108 +98 +7 +143 +127 +9 +158 +142 +22 +151 +143 +32 +124 +113 +27 +108 +98 +7 +148 +130 +9 +163 +144 +17 +151 +143 +32 +124 +113 +27 +131 +117 +9 +152 +137 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +173 +151 +6 +187 +143 +14 +187 +143 +14 +190 +172 +60 +182 +155 +55 +163 +101 +23 +210 +190 +66 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +221 +215 +78 +210 +190 +66 +163 +101 +23 +148 +113 +4 +164 +140 +6 +171 +124 +10 +171 +124 +10 +162 +130 +12 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +154 +136 +9 +154 +137 +10 +154 +136 +9 +154 +137 +10 +158 +139 +17 +167 +151 +39 +179 +166 +71 +186 +180 +119 +186 +180 +119 +164 +159 +94 +96 +86 +8 +131 +117 +9 +158 +142 +22 +174 +161 +59 +183 +179 +101 +186 +180 +119 +115 +105 +29 +131 +117 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +183 +179 +101 +186 +180 +119 +150 +143 +72 +117 +105 +7 +147 +102 +2 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +167 +151 +39 +174 +161 +59 +181 +171 +85 +181 +174 +105 +146 +137 +56 +108 +98 +7 +131 +117 +9 +154 +137 +10 +154 +137 +10 +158 +139 +17 +155 +138 +13 +143 +127 +9 +155 +138 +13 +174 +161 +59 +181 +171 +85 +181 +174 +105 +171 +163 +85 +181 +174 +105 +146 +137 +56 +153 +136 +10 +169 +155 +53 +175 +173 +100 +175 +173 +100 +181 +174 +105 +175 +173 +100 +105 +96 +24 +158 +139 +17 +181 +174 +105 +175 +173 +100 +105 +88 +5 +150 +133 +10 +169 +155 +53 +181 +174 +105 +171 +163 +85 +105 +88 +5 +154 +138 +10 +169 +155 +53 +181 +174 +105 +146 +137 +56 +135 +121 +9 +152 +137 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +173 +151 +6 +179 +135 +3 +183 +150 +5 +184 +161 +25 +166 +113 +27 +178 +152 +46 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +178 +152 +46 +131 +91 +4 +148 +122 +5 +157 +124 +5 +160 +113 +2 +157 +135 +6 +157 +137 +8 +157 +137 +8 +157 +137 +8 +154 +136 +9 +154 +136 +9 +154 +136 +9 +154 +136 +9 +154 +137 +11 +163 +146 +29 +169 +155 +53 +181 +171 +85 +186 +180 +119 +183 +177 +113 +186 +180 +119 +105 +96 +24 +108 +98 +7 +154 +137 +10 +179 +166 +71 +183 +179 +101 +186 +180 +119 +115 +105 +29 +131 +117 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +148 +130 +9 +155 +138 +13 +154 +137 +11 +148 +130 +9 +140 +124 +9 +140 +124 +9 +140 +124 +9 +143 +127 +9 +150 +133 +10 +148 +130 +9 +140 +124 +9 +140 +124 +9 +148 +130 +9 +150 +133 +10 +148 +130 +9 +148 +130 +9 +163 +146 +29 +186 +179 +94 +186 +180 +119 +124 +113 +27 +131 +117 +9 +148 +113 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +182 +174 +95 +181 +174 +105 +146 +137 +56 +96 +86 +8 +131 +117 +9 +148 +130 +9 +155 +138 +13 +158 +139 +17 +154 +137 +11 +135 +121 +9 +135 +121 +9 +181 +171 +85 +181 +174 +105 +181 +174 +105 +146 +137 +56 +163 +146 +29 +163 +146 +29 +169 +155 +53 +181 +174 +105 +168 +160 +66 +158 +139 +17 +168 +160 +66 +181 +174 +105 +171 +163 +85 +167 +151 +39 +182 +174 +95 +181 +174 +105 +124 +113 +27 +150 +133 +10 +181 +171 +85 +181 +174 +105 +181 +174 +105 +105 +96 +24 +153 +136 +10 +181 +171 +85 +175 +173 +100 +126 +112 +8 +140 +124 +9 +158 +141 +9 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +173 +151 +6 +178 +128 +2 +183 +150 +5 +181 +142 +38 +163 +101 +23 +215 +195 +75 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +217 +211 +80 +215 +195 +75 +163 +101 +23 +147 +102 +2 +156 +129 +6 +161 +108 +0 +162 +133 +4 +157 +135 +6 +157 +137 +8 +157 +137 +8 +157 +137 +8 +154 +136 +9 +154 +136 +9 +154 +136 +9 +155 +138 +13 +167 +151 +39 +174 +161 +59 +183 +177 +113 +181 +171 +85 +179 +166 +71 +186 +180 +119 +150 +143 +72 +96 +86 +8 +135 +121 +9 +167 +151 +39 +183 +179 +101 +186 +180 +119 +115 +105 +29 +108 +98 +7 +124 +113 +27 +105 +88 +5 +108 +98 +7 +135 +121 +9 +153 +136 +10 +155 +138 +13 +140 +124 +9 +124 +113 +27 +108 +98 +7 +108 +98 +7 +126 +112 +8 +148 +130 +9 +140 +124 +9 +108 +98 +7 +108 +98 +7 +131 +117 +9 +153 +136 +10 +135 +121 +9 +108 +98 +7 +131 +117 +9 +181 +171 +85 +186 +180 +119 +115 +105 +29 +135 +121 +9 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +167 +151 +39 +179 +166 +71 +186 +179 +94 +181 +174 +105 +171 +163 +85 +88 +74 +4 +108 +98 +7 +135 +121 +9 +148 +130 +9 +158 +139 +17 +158 +142 +22 +150 +143 +72 +132 +124 +24 +179 +166 +71 +182 +174 +95 +181 +174 +105 +105 +88 +5 +150 +133 +10 +169 +155 +53 +182 +174 +95 +181 +174 +105 +164 +154 +76 +181 +174 +105 +177 +174 +98 +168 +160 +66 +149 +132 +24 +163 +146 +29 +182 +174 +95 +181 +174 +105 +150 +143 +72 +148 +130 +9 +181 +174 +105 +179 +166 +71 +181 +174 +105 +150 +143 +72 +154 +137 +10 +181 +174 +105 +146 +137 +56 +131 +117 +9 +148 +130 +9 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +179 +135 +3 +179 +135 +3 +184 +161 +25 +166 +113 +27 +181 +142 +38 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +181 +142 +38 +131 +91 +4 +145 +123 +8 +158 +118 +4 +162 +123 +4 +157 +135 +6 +157 +137 +8 +157 +137 +8 +157 +137 +8 +154 +136 +9 +154 +136 +9 +154 +136 +9 +158 +142 +22 +169 +155 +53 +181 +171 +85 +186 +180 +119 +146 +137 +56 +179 +166 +71 +186 +180 +119 +183 +177 +113 +96 +86 +8 +117 +105 +7 +158 +142 +22 +183 +179 +101 +186 +180 +119 +171 +163 +85 +186 +180 +119 +186 +180 +119 +175 +173 +100 +105 +88 +5 +126 +112 +8 +154 +137 +11 +167 +151 +39 +171 +163 +85 +186 +180 +119 +183 +177 +113 +150 +143 +72 +108 +98 +7 +150 +133 +10 +182 +174 +95 +186 +180 +119 +131 +124 +45 +126 +112 +8 +169 +155 +53 +186 +180 +119 +164 +154 +76 +143 +127 +9 +181 +171 +85 +186 +180 +119 +115 +105 +29 +131 +117 +9 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +158 +142 +22 +169 +155 +53 +186 +179 +94 +181 +174 +105 +181 +174 +105 +150 +143 +72 +96 +86 +8 +117 +105 +7 +131 +117 +9 +143 +127 +9 +168 +160 +66 +181 +174 +105 +139 +129 +30 +179 +166 +71 +182 +174 +95 +181 +174 +105 +96 +86 +8 +140 +124 +9 +169 +155 +53 +183 +179 +101 +181 +174 +105 +171 +163 +85 +149 +132 +24 +158 +142 +22 +148 +130 +9 +124 +113 +27 +131 +117 +9 +179 +166 +71 +182 +174 +95 +181 +174 +105 +169 +155 +53 +175 +173 +100 +163 +146 +29 +182 +174 +95 +181 +174 +105 +169 +155 +53 +175 +173 +100 +117 +105 +7 +140 +124 +9 +156 +138 +9 +167 +148 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +179 +135 +3 +172 +147 +5 +184 +161 +25 +147 +68 +5 +198 +179 +67 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +211 +204 +83 +198 +179 +67 +147 +68 +5 +142 +112 +6 +162 +123 +4 +167 +118 +3 +157 +135 +6 +157 +137 +8 +157 +137 +8 +157 +137 +8 +154 +136 +9 +154 +136 +9 +156 +137 +12 +163 +146 +29 +174 +161 +59 +185 +177 +109 +183 +177 +113 +124 +113 +27 +167 +151 +39 +182 +174 +95 +186 +180 +119 +146 +137 +56 +96 +86 +8 +154 +137 +11 +183 +179 +101 +186 +180 +119 +164 +154 +76 +169 +155 +53 +182 +174 +95 +186 +180 +119 +146 +137 +56 +131 +117 +9 +163 +146 +29 +185 +177 +109 +171 +163 +85 +179 +166 +71 +185 +177 +109 +186 +180 +119 +150 +143 +72 +140 +124 +9 +182 +174 +95 +186 +180 +119 +150 +143 +72 +126 +112 +8 +179 +166 +71 +186 +180 +119 +124 +113 +27 +153 +136 +10 +186 +179 +94 +186 +180 +119 +88 +74 +4 +131 +117 +9 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +181 +171 +85 +183 +179 +101 +181 +174 +105 +181 +174 +105 +171 +163 +85 +146 +137 +56 +164 +154 +76 +175 +173 +100 +181 +174 +105 +146 +137 +56 +153 +136 +10 +182 +174 +95 +182 +174 +95 +181 +174 +105 +88 +74 +4 +126 +112 +8 +163 +146 +29 +186 +179 +94 +181 +174 +105 +175 +173 +100 +146 +137 +56 +151 +143 +32 +171 +163 +85 +150 +143 +72 +135 +121 +9 +169 +155 +53 +186 +179 +94 +181 +174 +105 +181 +174 +105 +150 +143 +72 +158 +141 +9 +182 +174 +95 +181 +174 +105 +181 +174 +105 +164 +154 +76 +126 +112 +8 +148 +130 +9 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +178 +128 +2 +183 +150 +5 +181 +142 +38 +163 +101 +23 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +163 +101 +23 +147 +102 +2 +157 +124 +5 +160 +113 +2 +157 +135 +6 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +154 +136 +9 +158 +142 +22 +167 +151 +39 +179 +166 +71 +186 +180 +119 +186 +180 +119 +186 +180 +119 +186 +180 +119 +186 +180 +119 +186 +180 +119 +175 +173 +100 +88 +74 +4 +148 +130 +9 +182 +174 +95 +186 +180 +119 +124 +113 +27 +158 +142 +22 +186 +179 +94 +186 +180 +119 +146 +137 +56 +135 +121 +9 +181 +171 +85 +186 +180 +119 +131 +124 +45 +158 +142 +22 +181 +171 +85 +183 +177 +113 +183 +177 +113 +117 +105 +7 +179 +166 +71 +185 +177 +109 +186 +180 +119 +132 +124 +24 +182 +174 +95 +171 +163 +85 +117 +105 +7 +158 +142 +22 +186 +179 +94 +186 +180 +119 +88 +74 +4 +131 +117 +9 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +167 +151 +39 +179 +166 +71 +186 +179 +94 +182 +174 +95 +181 +174 +105 +181 +174 +105 +181 +174 +105 +181 +171 +85 +151 +143 +32 +140 +124 +9 +163 +146 +29 +186 +179 +94 +181 +174 +105 +181 +174 +105 +146 +137 +56 +126 +112 +8 +158 +139 +17 +181 +171 +85 +186 +179 +94 +181 +171 +85 +181 +174 +105 +177 +174 +98 +168 +160 +66 +135 +121 +9 +143 +127 +9 +167 +151 +39 +182 +174 +95 +182 +174 +95 +181 +174 +105 +132 +124 +24 +163 +144 +17 +190 +175 +80 +182 +174 +95 +181 +174 +105 +149 +132 +24 +143 +127 +9 +155 +139 +10 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +173 +151 +6 +178 +128 +2 +184 +161 +25 +174 +128 +42 +174 +128 +42 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +204 +197 +86 +174 +128 +42 +148 +94 +1 +148 +122 +5 +161 +108 +0 +157 +135 +6 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +156 +137 +12 +163 +146 +29 +169 +155 +53 +181 +174 +105 +183 +177 +113 +151 +143 +32 +174 +161 +59 +179 +166 +71 +182 +174 +95 +185 +177 +109 +186 +180 +119 +131 +124 +45 +126 +112 +8 +181 +171 +85 +186 +180 +119 +115 +105 +29 +153 +136 +10 +181 +171 +85 +186 +180 +119 +146 +137 +56 +140 +124 +9 +182 +174 +95 +186 +180 +119 +146 +137 +56 +117 +105 +7 +169 +155 +53 +182 +174 +95 +186 +180 +119 +115 +105 +29 +169 +155 +53 +193 +183 +105 +186 +180 +119 +177 +174 +98 +186 +180 +119 +124 +113 +27 +126 +112 +8 +163 +146 +29 +186 +179 +94 +177 +174 +98 +88 +74 +4 +131 +117 +9 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +167 +151 +39 +179 +166 +71 +179 +166 +71 +174 +161 +59 +169 +155 +53 +169 +155 +53 +158 +142 +22 +148 +130 +9 +150 +133 +10 +163 +146 +29 +179 +166 +71 +179 +166 +71 +163 +146 +29 +153 +136 +10 +148 +130 +9 +155 +138 +13 +167 +151 +39 +179 +166 +71 +179 +166 +71 +174 +161 +59 +167 +151 +39 +158 +139 +17 +150 +133 +10 +150 +133 +10 +163 +146 +29 +179 +166 +71 +179 +166 +71 +158 +142 +22 +148 +130 +9 +163 +146 +29 +179 +166 +71 +179 +166 +71 +163 +144 +17 +152 +137 +8 +155 +139 +10 +163 +144 +8 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +173 +151 +6 +178 +128 +2 +184 +161 +25 +166 +113 +27 +182 +155 +55 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +182 +155 +55 +156 +86 +11 +148 +122 +5 +161 +108 +0 +157 +135 +6 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +158 +142 +22 +167 +151 +39 +179 +166 +71 +186 +180 +119 +164 +154 +76 +108 +98 +7 +148 +130 +9 +167 +151 +39 +179 +166 +71 +183 +179 +101 +186 +180 +119 +175 +173 +100 +108 +98 +7 +179 +166 +71 +186 +180 +119 +113 +109 +47 +126 +112 +8 +179 +166 +71 +186 +180 +119 +150 +143 +72 +126 +112 +8 +179 +166 +71 +186 +180 +119 +183 +177 +113 +146 +137 +56 +151 +143 +32 +181 +174 +105 +164 +154 +76 +117 +105 +7 +158 +142 +22 +186 +179 +94 +185 +177 +109 +186 +180 +119 +164 +159 +94 +117 +105 +7 +140 +124 +9 +167 +151 +39 +186 +179 +94 +181 +174 +105 +105 +96 +24 +126 +112 +8 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +163 +146 +29 +163 +146 +29 +163 +146 +29 +158 +142 +22 +153 +136 +10 +153 +136 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +158 +142 +22 +158 +139 +17 +153 +136 +10 +153 +136 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +163 +146 +29 +163 +146 +29 +158 +142 +22 +153 +136 +10 +153 +136 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +158 +142 +22 +155 +139 +10 +163 +144 +17 +167 +151 +39 +167 +151 +39 +163 +146 +29 +158 +141 +9 +161 +141 +8 +163 +144 +8 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +173 +151 +6 +178 +128 +2 +191 +160 +42 +160 +94 +16 +179 +166 +71 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +179 +166 +71 +147 +68 +5 +148 +122 +5 +161 +108 +0 +157 +135 +6 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +163 +146 +29 +174 +161 +59 +181 +174 +105 +186 +180 +119 +164 +154 +76 +117 +105 +7 +135 +121 +9 +158 +142 +22 +169 +155 +53 +183 +179 +101 +186 +180 +119 +186 +180 +119 +169 +155 +53 +182 +174 +95 +186 +180 +119 +171 +163 +85 +140 +124 +9 +181 +171 +85 +186 +180 +119 +183 +177 +113 +131 +117 +9 +174 +161 +59 +183 +179 +101 +185 +177 +109 +186 +180 +119 +186 +180 +119 +181 +171 +85 +139 +129 +30 +135 +121 +9 +158 +142 +22 +179 +166 +71 +182 +174 +95 +186 +180 +119 +124 +113 +27 +126 +112 +8 +150 +133 +10 +167 +151 +39 +183 +179 +101 +186 +180 +119 +131 +124 +45 +135 +121 +9 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +137 +10 +155 +139 +10 +155 +139 +10 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +161 +141 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +173 +151 +6 +178 +128 +2 +190 +172 +60 +156 +86 +11 +190 +175 +80 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +195 +188 +89 +190 +175 +80 +147 +68 +5 +148 +122 +5 +161 +108 +0 +162 +133 +4 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +163 +146 +29 +179 +166 +71 +179 +166 +71 +169 +155 +53 +158 +139 +17 +143 +127 +9 +148 +130 +9 +155 +138 +13 +167 +151 +39 +179 +166 +71 +179 +166 +71 +163 +146 +29 +167 +151 +39 +174 +161 +59 +174 +161 +59 +158 +142 +22 +158 +139 +17 +179 +166 +71 +179 +166 +71 +158 +142 +22 +148 +130 +9 +163 +146 +29 +179 +166 +71 +179 +166 +71 +174 +161 +59 +174 +161 +59 +158 +142 +22 +150 +133 +10 +154 +137 +10 +158 +142 +22 +169 +155 +53 +183 +177 +113 +150 +143 +72 +126 +112 +8 +140 +124 +9 +154 +137 +11 +167 +151 +39 +179 +166 +71 +169 +155 +53 +143 +127 +9 +148 +130 +9 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +137 +10 +155 +139 +10 +155 +139 +10 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +161 +141 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +172 +147 +5 +178 +128 +2 +190 +172 +60 +147 +68 +5 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +147 +68 +5 +148 +122 +5 +161 +108 +0 +156 +129 +6 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +158 +142 +22 +163 +146 +29 +163 +146 +29 +163 +146 +29 +158 +142 +22 +153 +136 +10 +153 +136 +10 +154 +137 +10 +158 +142 +22 +163 +146 +29 +163 +146 +29 +158 +142 +22 +163 +146 +29 +163 +146 +29 +163 +146 +29 +158 +142 +22 +158 +142 +22 +163 +146 +29 +163 +146 +29 +158 +142 +22 +153 +136 +10 +158 +139 +17 +163 +146 +29 +163 +146 +29 +163 +146 +29 +163 +146 +29 +158 +142 +22 +158 +142 +22 +163 +146 +29 +169 +155 +53 +185 +177 +109 +177 +174 +98 +135 +121 +9 +135 +121 +9 +148 +130 +9 +154 +137 +10 +158 +142 +22 +163 +146 +29 +158 +142 +22 +153 +136 +10 +153 +136 +10 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +126 +112 +8 +142 +112 +6 +158 +118 +4 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +155 +137 +10 +155 +139 +10 +155 +139 +10 +158 +141 +9 +158 +141 +9 +158 +141 +9 +158 +141 +9 +161 +141 +8 +163 +144 +8 +163 +144 +8 +163 +144 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +167 +148 +8 +173 +151 +6 +173 +151 +6 +172 +147 +5 +179 +135 +3 +190 +172 +60 +147 +68 +5 +182 +174 +95 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +182 +174 +95 +147 +68 +5 +145 +123 +8 +160 +113 +2 +156 +129 +6 +157 +135 +6 +157 +137 +8 +157 +137 +8 +154 +136 +9 +154 +136 +9 +154 +136 +9 +154 +136 +9 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +167 +151 +39 +169 +155 +53 +181 +171 +85 +181 +171 +85 +149 +132 +24 +140 +124 +9 +150 +133 +10 +153 +136 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +154 +137 +10 +158 +118 +4 +178 +152 +46 +193 +183 +105 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +131 +117 +9 +138 +117 +8 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +153 +111 +3 +153 +111 +3 +153 +111 +3 +153 +111 +3 +153 +111 +3 +153 +111 +3 +158 +118 +4 +158 +118 +4 +158 +118 +4 +162 +123 +4 +162 +123 +4 +158 +118 +4 +162 +123 +4 +173 +151 +6 +147 +68 +5 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +186 +179 +94 +147 +68 +5 +145 +123 +8 +153 +111 +3 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +147 +102 +2 +166 +113 +27 +169 +132 +54 +174 +128 +42 +147 +102 +2 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +148 +94 +1 +155 +131 +8 +181 +171 +85 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +0 +0 +0 +131 +117 +9 +131 +117 +9 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +134 +112 +5 +134 +112 +5 +134 +112 +5 +134 +112 +5 +134 +112 +5 +134 +112 +5 +134 +112 +5 +138 +117 +8 +138 +117 +8 +142 +112 +6 +142 +112 +6 +142 +112 +6 +142 +112 +6 +142 +112 +6 +148 +113 +4 +145 +123 +8 +157 +135 +6 +147 +68 +5 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +147 +68 +5 +138 +117 +8 +140 +119 +3 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +130 +105 +5 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +126 +112 +8 +135 +121 +9 +153 +136 +10 +0 +0 +0 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +86 +40 +3 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +164 +154 +76 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +164 +154 +76 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +147 +68 +5 +86 +40 +3 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +147 +68 +5 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +177 +174 +98 +147 +68 +5 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +147 +68 +5 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +147 +68 +5 +45 +67 +90 +78 +116 +156 +143 +167 +192 +106 +138 +172 +159 +176 +193 +147 +68 +5 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +175 +173 +100 +147 +68 +5 +45 +67 +90 +78 +116 +156 +143 +167 +192 diff --git a/pctb/yppsc-commod-processor b/pctb/yppsc-commod-processor index 0e1a7d0..01db528 100755 --- a/pctb/yppsc-commod-processor +++ b/pctb/yppsc-commod-processor @@ -26,7 +26,11 @@ use strict (qw(vars)); -use Data::Dumper; +use HTTP::Request; +use IO::File; +use POSIX; +use LWP::UserAgent; +use XML::Parser; # $commod{'Hemp'}{Buy|Sell}{'stall'}{Stall} # $commod{'Hemp'}{Buy|Sell}{'stall'}{Price} @@ -88,8 +92,6 @@ sub bs_p_bestprice ($) { } } -our $arbitrage_only= 0; - sub main__arbitrage () { my @arbs= (); foreach $commod (sort keys %commod) { @@ -182,8 +184,6 @@ sub main__bestprices () { $current= $commod{$commod}; my $buys= bs_p($commod,Buy, -1); my $sells= bs_p($commod,Sell,+1); - if ($arbitrage_only) { - } printf("%-15.15s", $commod) or die $!; bs_p_bestprice($buys); bs_p_bestprice($sells); @@ -216,10 +216,171 @@ sub main__tsv () { } } + +our (%commodmap); +our ($pctb) = 'http://pctb.ilk.org/'; +our ($ua)= LWP::UserAgent->new; + +sub load_commodmap() { + undef %commodmap; + my $c= new IO::File "#commodmap#.tsv"; + if (!$c) { $!==&ENOENT or die $!; return; } + while (<$c>) { + m/^(\S.*\S)\t(\d+)\n$/ or die "$_"; + $commodmap{$1}= $2; + } + $c->error and die $!; + close $c; +} + +sub refresh_commodmap() { + my $resp= $ua->get("$pctb/commodmap.php?version=2"); + die $resp->status_line unless $resp->is_success; + + my $cdata=''; + my $incommodmap=0; + my $intag=''; + my %got; + my $o= new IO::File "#commodmap#.tsv.new",'w' or die $!; + undef %commodmap; + + my $xp= new XML::Parser + (Handlers => + { + Start => sub { + $_=$_[1]; +#print STDERR "START [$_] intag=$intag icm=$incommodmap\n"; + if (m/^commodmap$/i) { + $incommodmap++; + undef %got; + } elsif (m/^(?:name|index)$/i) { + $cdata=''; + $intag=lc($_) if $incommodmap; +#print STDERR "START RECOGNISED $intag icm=$incommodmap\n"; +# } else { +#print STDERR "START UNRECOGNISED\n"; + } + }, + End => sub { + $_=$_[1]; +#print STDERR "END [$_] intag=$intag icm=$incommodmap\n"; + if (m/^commodmap$/i) { + $incommodmap--; + die unless exists $got{'name'}; + die unless exists $got{'index'}; + die unless $got{'index'} =~ m/^\s*([1-9]\d{0,3})\s*$/; + my $index= $1; + $_= $got{'name'}; + s/^\s+//; s/\s+$//; s/\n/ /g; s/\s+/ /; + die "$_ ?" if exists $commodmap{$_}; + $commodmap{$_}= $index; + print $o "$_\t$index\n" or die $!; + } elsif (lc $_ eq $intag) { + $got{$intag}= $cdata; + } + }, + Char => sub { +#print STDERR "CHAR [$_[1]] intag=$intag icm=$incommodmap\n"; + $cdata .= $_[1]; + } + }) or die; + my $content= $resp->content; + +# print STDERR "[[[$content]]]\n"; + $xp->parse($content); + close $o or die $!; + rename "#commodmap#.tsv.new","#commodmap#.tsv" or die $!; +} + +our (%stallmap, @stallmap); + +sub bs_gen_md ($$) { + my ($bs,$sortmul) = @_; + my $count= 0; + my $o= ''; + + foreach $commod (sort { + $commodmap{$a} <=> $commodmap{$b} + } keys %commod) { +#print STDERR "COMMOD $commod\n"; + $current= $commod{$commod}; + my $l= bs_p($commod,$bs,$sortmul); + next unless @$l; +#print STDERR "COMMOD $commod has ".scalar(@$l)."\n"; + $o .= writeint($commodmap{$commod}); + $o .= writeint(scalar @$l); + foreach my $cs (@$l) { + $stall= $cs->{Stall}; + my $stallix= $stallmap{$stall}; + if (!defined $stallix) { + push @stallmap, $stall; + $stallmap{$stall}= $stallix= @stallmap; +#print STDERR "STALL DEF $stallix $stall\n"; + } + my $qty= $cs->{Qty}; + $qty =~ s/^\>\s*//; + $o .= writeint($stallix, $cs->{Price}, $qty+0); + $count++; + } + } +#print STDERR "COMMOD $commod COUNT WAS $count\n"; + return + writeint($count).$o; +} + +sub writeint { return pack 'v*', @_; } + +sub genmarketdata () { + our $version= '005b'; + + load_commodmap(); + my @missing= grep { !exists $commodmap{$_} } keys %commod; + if (@missing) { + refresh_commodmap(); + my $missing=0; + foreach $commod (sort keys %commod) { + next if exists $commodmap{$commod}; + printf STDERR "Unknown commodity \`%s'!\n", $commod; + $missing++; + } + die "$missing unknown commoditi(es). OCR failure?\n" + if $missing; + } + + my $ob=''; + $ob .= bs_gen_md(Buy, -1); + $ob .= bs_gen_md(Sell,+1); + + my $ot= sprintf("$version\n". + "%d\n", + scalar(@stallmap)); + foreach $stall (@stallmap) { $ot .= "$stall\n"; } + return $ot.$ob; +} + +sub main__genmarketdata () { + my $o= genmarketdata(); + print $o or die $!; +} + sub main__upload () { - die "\nUploading not yet implemented, sorry.\n"; + my $o= genmarketdata(); + my $url= "$pctb/upload.php"; + $url= "http://www.chiark.greenend.org.uk/ucgi/~ijackson/check/upload.php"; + my $content= { + 'marketdata' => [ undef, "marketdata.gz", + Content_Type => 'application/gzip', + Content => $o + ] + }; + my $resp= $ua->post("$url", Content => $content, + Content_Type => 'form-data'); + die $resp->status_line unless $resp->is_success; + + print "[[ ",$resp->content," ]]\n"; } + $mode =~ s/\-//; &{"main__$mode"}; close(STDOUT) or die $!; diff --git a/pctb/yppsc-decode-marketdata b/pctb/yppsc-decode-marketdata index e8f0ef0..d798aad 100755 --- a/pctb/yppsc-decode-marketdata +++ b/pctb/yppsc-decode-marketdata @@ -2,9 +2,10 @@ use IO::Handle; +open CM, "#commodmap#.tsv" or die $!; + $debug=1 if @ARGV; -open CM, "commodmap" or die $!; while () { m/^(\S.*\S)\t(\d+)$/ or die; $commodmap[$2]= $1; diff --git a/pctb/yppsc-ocr-resolver b/pctb/yppsc-ocr-resolver index bb55d3d..a733e73 100755 --- a/pctb/yppsc-ocr-resolver +++ b/pctb/yppsc-ocr-resolver @@ -82,8 +82,12 @@ static unsigned char csr_bits[] = { frame .d.mi.csr_0 -bg white -width 1 frame .d.mi.csr_1 -bg white -width 1 + frame .d.pe + frame .d.pe.grid + button .d.pe.ok -text OK + pack .d.pe.grid .d.pe.ok -side left - pack .d.csr .d.mi .d.got .d.ctx -side top + pack .d.mi .d.got .d.ctx -side top pack .d frame .help @@ -101,31 +105,25 @@ proc show_context {maxhv x ctxs} { if {$wh > $maxh} { set maxh $wh } } -proc resize_widgets {} { +proc resize_widgets_core {} { global mulcols mulrows csrh gotsh ctxh glyphsdone global unk_l unk_contexts foreach w {.d.csr .d.got .d.ctx} { $w configure -width $mulcols } - #.d configure -height [expr {$csrh+$mulrows+$gotsh+$ctxh}] - foreach w {0 1} { - .d.mi.csr_$w configure -height $mulrows - } eval destroy [winfo children .d.ctx] - - set maxh 0 - foreach {min max contexts got} $glyphsdone { - show_context maxh $min $contexts - } - show_context maxh $unk_l $unk_contexts - .d.ctx configure -height $maxh } #---------- xpm input processor ---------- +proc must_gets {f lvar} { + upvar 1 $lvar l + if {[gets $f l] < 0} { error "huh?" } +} + proc read_xpm {f} { global glyphsdone mul inter rhsmost_max unk_l unk_r mulcols mulrows global cols rows wordmap @@ -133,7 +131,7 @@ proc read_xpm {f} { set o {} set y -3 while 1 { - if {[gets $f l] < 0} { error "huh? "} + must_gets $f l if {![regexp {^"(.*)",$} $l dummy l]} { append o "$l\n" if {[regexp {^\}\;$} $l]} break @@ -255,7 +253,6 @@ proc startup_cursor {} { set cur_0 $unk_l set cur_1 [expr {$unk_r+1}] - set last_ht {} recursor } @@ -263,6 +260,8 @@ proc startup_cursor {} { #---------- runtime display and keystroke handling ---------- +set last_ht {} + proc helptext {t} { global last_ht if {![string compare $t $last_ht]} return @@ -520,47 +519,137 @@ proc RETURN_RESULT {how what} { proc main/default {} { puts stderr "Do not run this program directly." exit 12 - - global glyphsdone unk_l unk_r unk_contexts - - set glyphsdone { - 7 11 1 M - 13 17 0 a - 19 23 0 n - } - set unk_l 25 - set unk_r 29 - set unk_contexts Test - - set f [open text.xpm] - read_xpm $f - close $f - - read_database - resize_widgets - draw_glyphsdone - startup_cursor } proc done/default {} { } proc required {} { global glyphsdone unk_l unk_r unk_contexts + + fileevent stdin readable {} + fconfigure stdin -blocking yes if {[gets stdin l]<0} { if {[eof stdin]} { fconfigure stdin -blocking yes; exit 0 } return } init_widgets + + required/$l +} + + +proc foreach_pixmap_col {var body} { + global alloptions + upvar 1 $var col + for {set col 0} {$col < [llength $alloptions]/3} {incr col} { + uplevel 1 $body + } +} + +proc pixmap_select {ncol} { + global alloptions + debug "PIX SELECT $ncol [llength $alloptions]" + foreach_pixmap_col col { + if {$col==$ncol} continue + .d.pe.grid.l$col selection clear 0 end + } + pixmap_maybe_ok +} +proc pixmap_maybe_ok {} { + global alloptions pixmap_selcol pixmap_selrow + set nsel 0 + foreach_pixmap_col col { + set cs [.d.pe.grid.l$col curselection] + incr nsel [llength $cs] + set pixmap_selcol $col + set pixmap_selrow [lindex $cs 0] + } + if {$nsel==1} { + .d.pe.ok configure -state normal -command pixmap_ok + } else { + .d.pe.ok configure -state disabled -command {} + } +} +proc pixmap_ok {} { + foreach_pixmap_col col { + .d.pe.grid.l$col configure -state disabled + } + .d.pe.ok configure -state disabled + helptext {{{ Processing }}} +} + +proc required/pixmap {} { + global unk_what ppm mulcols alloptions + must_gets stdin unk_what + debug "GOT pixmap $unk_what" + set ppm {} + while 1 { + must_gets stdin ppml + if {![string length $ppml]} break + append ppm $ppml "\n" + } + set data [exec pnmscale 2 << $ppm] + image create photo image/main -data $data + + set alloptions [exec ./yppsc-resolver-pixoptions $unk_what] + + #read_database_pixmaps + + set mulcols [image width image/main] + set mulrows [image height image/main] + resize_widgets_core + place forget .d.mi.csr_0 + place forget .d.mi.csr_1 + .d.ctx configure -height 0 + pack forget .d.csr + pack .d.pe -side top -before .d.mi -pady 10 + + eval destroy [winfo children .d.pe.grid] + set col 0; foreach {colname coldesc rows} $alloptions { + debug "INIT $col $colname \"$coldesc\"" + label .d.pe.grid.t$col -text $colname + listbox .d.pe.grid.l$col + foreach {rowname rowdesc} $rows { + debug "INIT $col $colname \"$coldesc\" $rowname \"$rowdesc\"" + .d.pe.grid.l$col insert end $rowdesc + } + bind .d.pe.grid.l$col <> [list pixmap_select $col] + grid .d.pe.grid.t$col -column $col -row 0 + grid .d.pe.grid.l$col -column $col -row 1 + incr col + } + pixmap_maybe_ok + + helptext { + {{Indicate the correct parse of this image, and click OK.}} + } +} + +proc required/char {} { + global mulrows + + must_gets stdin l + manyset [lrange $l 0 3] unk_l unk_r unk_contexts set glyphsdone [lrange $l 3 end] debug "GOT $l" - fileevent stdin readable {} - fconfigure stdin -blocking yes - read_xpm stdin - resize_widgets + + resize_widgets_core + foreach w {0 1} { + .d.mi.csr_$w configure -height $mulrows + } + set maxh 0 + foreach {min max contexts got} $glyphsdone { + show_context maxh $min $contexts + } + show_context maxh $unk_l $unk_contexts + .d.ctx configure -height $maxh + pack forget .d.pe + pack .d.csr -side top -before .d.mi + read_database draw_glyphsdone startup_cursor diff --git a/pctb/yppsc-ppmlookup b/pctb/yppsc-ppmlookup new file mode 100755 index 0000000..efb785d --- /dev/null +++ b/pctb/yppsc-ppmlookup @@ -0,0 +1,18 @@ +#!/bin/sh +set -ex + +needle=$(pnmnoraw) + +exec 3 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Yohoho and Puzzle Pirates are probably trademarks of Three Rings and +# are used without permission. This program is not endorsed or +# sponsored by Three Rings. + +use strict (qw(vars)); +use LWP::UserAgent; +use JSON; +#use Data::Dumper; + +@ARGV==1 or die "You probably don't want to run this program directly.\n"; +our ($which) = shift @ARGV; + +$which =~ s/\W//g; + +our ($pctb)= 'http://pctb.ilk.org/'; +our ($ua)= LWP::UserAgent->new; +our $jsonresp; + +sub jparsetable ($$) { + my ($jobj,$wh) = @_; + my $jtab= $jobj->{$wh}; + die "$jsonresp $wh ?" unless defined $jtab; + my $cns= $jtab->{'colNames'}; die "$jsonresp $wh ?" unless defined $cns; + my $ad= $jtab->{'arrayData'}; die "$jsonresp $wh ?" unless defined $ad; + my @o=(); + foreach my $ai (@$ad) { + @$ai == @$cns or die "$jsonresp $wh ".scalar(@o)."?"; + my $v= { }; + for (my $i=0; $i<@$cns; $i++) { + $v->{$cns->[$i]} = $ai->[$i]; + } + push @o, $v; + } + return @o; +} +sub sort_by_name { + sort { + $a->{'name'} cmp $b->{'name'}; + } @_; +} + +sub p ($) { print $_[0] or die $!; } +sub ptcl ($) { + local ($_) = @_; + die "$_ $& ?" if m/[^-+'"# 0-9a-z]/i; + p("{$_[0]}"); +} + +sub main__island () { + my $url= "$pctb/islands.php?oceanName=MIDNIGHT"; + my $resp= $ua->get($url); + die $resp->status_line unless $resp->is_success; + $jsonresp= $resp->content; + my $jobj= jsonToObj($resp->content); + my @arches= jparsetable($jobj, 'arches'); + my @islands= jparsetable($jobj, 'islands'); +# print Dumper(\@arches, \@islands); + my $islands_done=0; + foreach my $arch (sort_by_name(@arches)) { +# print Dumper($arch); + my $aname= $arch->{'name'}; + die "$jsonresp ?" unless defined $aname; + ptcl($aname); p(' '); ptcl($aname); p(" {\n"); + foreach my $island (sort_by_name(@islands)) { + my $iname= $island->{'name'}; + die "$jsonresp $aname ?" unless defined $iname; + next unless $arch->{'id'} == $island->{'arch'}; + p(' '); ptcl($iname); p(' '); ptcl($iname); p("\n"); + $islands_done++; + } + p("}\n"); + } + die "$jsonresp $islands_done ?" unless $islands_done == @islands; +} + +sub main__sunshinewidget () { + print <