diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C index 62e496a..9dc1f6c 100644 Binary files a/0000Boot/0000Kernel.BIN.C and b/0000Boot/0000Kernel.BIN.C differ diff --git a/Adam/ADefine.CPP b/Adam/ADefine.CPP index 35deb49..b70a1cd 100644 --- a/Adam/ADefine.CPP +++ b/Adam/ADefine.CPP @@ -11,8 +11,8 @@ U0 LoadDocDefines() //This is cut and replaced when I generate a distro. //See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOSDistro.CPP,DD_TEMPLEOS_LOC"$. $TR-C,"LineRep"$ - $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,687"); -DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","80,688"); + $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,708"); +DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","80,702"); $ID,-4$ DefinePrint("DD_KERNEL","%08X",bfh); bfh(I64)+=bfh->file_size-1; diff --git a/Adam/AExts.CPP b/Adam/AExts.CPP index d1c58a5..6d9237f 100644 --- a/Adam/AExts.CPP +++ b/Adam/AExts.CPP @@ -17,7 +17,7 @@ extern U0 DocBinDel(CDoc *doc,CDocBin *b); extern U0 DocBinsValidate(CDoc *doc); extern U0 DocBottom(CDoc *doc=NULL); extern U0 DocCenter(CDoc *doc=NULL,I64 recalc=RECALCt_NORMAL); -extern U0 DocClear(CDoc *doc=NULL); +extern U0 DocClear(CDoc *doc=NULL,Bool clear_holds=FALSE); extern Bool DocCursor(Bool show=OFF,CDoc *doc=NULL); extern U0 DocD(U8 *buf,I64 cnt=0x80); extern U0 DocDataFmt(CDoc *doc,CDocEntry *doc_e,I64 d=DOCM_CANCEL); @@ -35,7 +35,7 @@ extern U0 DocInsEntry(CDoc *doc,CDocEntry *doc_e); extern Bool DocLock(CDoc *doc); extern U0 DocMax(I64 i=MAX_I32); extern CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL); -extern CDocEntry *DocPrint(CDoc *doc,U8 *src,...); +extern CDocEntry *DocPrint(CDoc *doc=NULL,U8 *src,...); extern CDoc *DocPut(CTask *task=NULL); extern CDoc *DocRead(U8 *name=NULL,I64 flags=0); extern Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL); diff --git a/Adam/DolDoc/DocCodeTools.CPP b/Adam/DolDoc/DocCodeTools.CPP index 3155563..dbbbfc2 100644 --- a/Adam/DolDoc/DocCodeTools.CPP +++ b/Adam/DolDoc/DocCodeTools.CPP @@ -103,6 +103,16 @@ U0 EdRIExp(CRILex *rx) rx->depth-=3; if (rx->depth<0) rx->depth=0; } + } else if (rx->cc1->token=='[') { + if (!rx->exp_depth++) + rx->depth+=3; + EdRILex(rx); + while (rx->cc1->token && rx->cc1->token!=']') + EdRIExp(rx); + if (!--rx->exp_depth) { + rx->depth-=3; + if (rx->depth<0) rx->depth=0; + } } EdRILex(rx); } @@ -171,7 +181,6 @@ U0 EdRIStmt(CRILex *rx,Bool indent) EdRILex(rx); break; case KW_SWITCH: - case KW_NOBOUND_SWITCH: EdRILex(rx); EdRIExp(rx); if (rx->cc1->token=='{') { diff --git a/Adam/DolDoc/DocExt.CPP b/Adam/DolDoc/DocExt.CPP index 1c2f5af..69b8a1b 100644 --- a/Adam/DolDoc/DocExt.CPP +++ b/Adam/DolDoc/DocExt.CPP @@ -4,8 +4,8 @@ extern I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e, Bool exited,I64 *_has_action=NULL); extern U0 DocFormBwd(CDoc *doc,Bool giveup=FALSE); extern U0 DocLoad(CDoc *doc,U8 *src2,I64 size); -extern U0 DocPrintAtomic(CDoc *doc,U8 *fmt,...); -extern U0 DocPrintPartial(CDoc *doc,U8 *fmt,...); +extern U0 DocPrintAtomic(CDoc *doc=NULL,U8 *fmt,...); +extern U0 DocPrintPartial(CDoc *doc=NULL,U8 *fmt,...); extern CDocEntry *DocPutS(CDoc *doc,U8 *st); extern U8 *DocSave(CDoc *doc,I64 *_size=NULL); extern I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e); diff --git a/Adam/DolDoc/DocHighlight.CPP b/Adam/DolDoc/DocHighlight.CPP index 7c084fe..5b75694 100644 --- a/Adam/DolDoc/DocHighlight.CPP +++ b/Adam/DolDoc/DocHighlight.CPP @@ -8,7 +8,7 @@ U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _temp_u32_attr) I64 ch,ch1,last_ch,temp_u32_attr,mask_temp_u32_attr=_temp_u32_attr&0xFFFFF000, comment_depth,brace_depth=s->brace_depth,paren_depth=s->paren_depth; CHash *temph; - nobound_switch (s->state) { + switch [s->state] { case DOCSS_NORMAL: hl_normal: while (len) { diff --git a/Adam/DolDoc/DocPlain.CPP b/Adam/DolDoc/DocPlain.CPP index 3e9a96c..826a5b0 100644 --- a/Adam/DolDoc/DocPlain.CPP +++ b/Adam/DolDoc/DocPlain.CPP @@ -81,7 +81,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) } buf2=MStrPrint("%s,",buf); Free(buf); buf=buf2; - nobound_switch (doc_e->type_u8) { + switch [doc_e->type_u8] { case DOCT_HEX_ED: buf2=MStrPrint("%s%d,",buf,doc_e->len); Free(buf); buf=buf2; @@ -114,14 +114,14 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) buf2=MStrPrint("%s%d,",buf,doc_e->attr); Free(buf); buf=buf2; } - case DOCT_NUM_TYPES-1: //nobound_switch + case DOCT_NUM_TYPES-1: //nobound switch break; } de_flags=doc_e->de_flags & DOCEG_HAS_ARG; while (de_flags) { j=Bsf(de_flags); Btr(&de_flags,j); - nobound_switch (j) { + switch [j] { case DOCEf_TAG: if (doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_MACRO && (doc_e->de_flags&DOCEF_LEFT_MACRO && @@ -202,7 +202,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) case DOCEf_USER_DATA: buf2=MStrPrint("%sU=0x%X,",buf,doc_e->user_data); break; - case DOCEf_NUM_FLAGS-1: //nobound_switch + case DOCEf_NUM_FLAGS-1: //nobound switch break; } Free(buf); buf=buf2; @@ -243,7 +243,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) doc_e->len=DOCE_LEN_DFT; j=PrsDocFlags(cc,&doc_e->de_flags,&doc_e->type); cc->htc.hash_table_lst=old_hash_table_lst; - nobound_switch (i) { + switch [i] { case DOCT_CHECK_BOX: doc_e->raw_type=RT_I8; break; @@ -305,7 +305,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) j=Bsf(de_flags); if (j<0 || Bts(&processed_flags,j)) goto pd_err; - nobound_switch (j) {//TODO: Might check for expression errors + switch [j] {//TODO: Might check for expression errors case DOCEf_TAG: if (!doc_e->tag) { //If a $$MA,LM=""$$, Tag is filled when the LM is processed. @@ -458,7 +458,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) else goto pd_err; break; - case DOCEf_NUM_FLAGS-1: //nobound_switch + case DOCEf_NUM_FLAGS-1: //nobound switch break; } } diff --git a/Adam/DolDoc/DocPutS.CPP b/Adam/DolDoc/DocPutS.CPP index cda5e9b..fcaf794 100644 --- a/Adam/DolDoc/DocPutS.CPP +++ b/Adam/DolDoc/DocPutS.CPP @@ -155,7 +155,7 @@ CDocEntry *DocPutS(CDoc *doc,U8 *st) return result; } -public CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...) +public CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...) {//You must not print partial doc cmds. U8 *buf=StrPrintJoin(NULL,fmt,argc,argv); CDocEntry *result=DocPutS(doc,buf); @@ -163,13 +163,13 @@ public CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...) return result; } -public U0 DocPrintPartial(CDoc *doc,U8 *fmt,...) +public U0 DocPrintPartial(CDoc *doc=NULL,U8 *fmt,...) {//Lets you print half a doc cmd, if you like. U8 *buf,*st,*src,*dst,*ptr,*ptr2; Bool unlock; CDocEntry *doc_ce,*doc_ne; I64 ch,i,j; - if (!fmt) + if (!doc && !(doc=DocPut)) return; buf=StrPrintJoin(NULL,fmt,argc,argv); ptr=buf; @@ -238,7 +238,7 @@ Bool KDDocPutS(U8 *st) return FALSE; } -public U0 DocPrintAtomic(CDoc *doc,U8 *fmt,...) +public U0 DocPrintAtomic(CDoc *doc=NULL,U8 *fmt,...) {//Prints multiple whole cmds all-at-once. Might need this when printing trees. U8 *buf; Bool unlock; diff --git a/Adam/DolDoc/DocRecalc.CPP b/Adam/DolDoc/DocRecalc.CPP index 12df45d..bfdbb0f 100644 --- a/Adam/DolDoc/DocRecalc.CPP +++ b/Adam/DolDoc/DocRecalc.CPP @@ -258,7 +258,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) CDocBin *tempb; CDocSettings *s; Bool del_cl,skipped_update,tree_collapsed,same_win,more=FALSE, - find_cursor=FALSE,blink_flag,full_refresh=TRUE,unlock; + find_cursor=FALSE,blink_flag,full_refresh=TRUE,unlock,clear_holds; CTask *win_task,*mem_task; CDC *dc; U8 *bptr,*ptr,buf[STR_LEN],ch; @@ -289,7 +289,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) mem_task=doc->mem_task; blink_flag=Blink; dc=NULL; - nobound_switch (recalc_flags&RECALCG_MASK) { + switch [recalc_flags&RECALCG_MASK] { case RECALCt_FIND_CURSOR: find_cursor=TRUE; if (win_task) @@ -620,7 +620,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) } } } - nobound_switch (doc_e->type_u8) { + switch [doc_e->type_u8] { case DOCT_TEXT: if (!col2 && !(doc_e->de_flags &(DOCEF_TREE|DOCEF_LST|DOCEF_TAG_CB|DOCEF_DEFINE| @@ -1036,13 +1036,17 @@ rc_adjust_xy: break; case DOCT_CLEAR: next_clear_found=doc_e; + if (doc_e->de_flags&DOCEF_HOLD) + clear_holds=TRUE; + else + clear_holds=FALSE; break; case DOCT_HTML_CODE: if (recalc_flags&RECALCF_TO_HTML && doc_e->de_flags&DOCEF_TAG && doc_e->tag) x-=StrLen(doc_e->tag); break; - case DOCT_NUM_TYPES-1: //nobound_switch + case DOCT_NUM_TYPES-1: //nobound switch default: break; } @@ -1309,7 +1313,7 @@ rc_skip: if (full_refresh) { i=num_entries-doc->max_entries; if (next_clear_found) { - DocDelToEntry(doc,next_clear_found); + DocDelToEntry(doc,next_clear_found,clear_holds); DocRecalc(doc,recalc_flags); } else if (i>1024) { DocDelToNum(doc,i); diff --git a/Adam/DolDoc/DocRecalcLib.CPP b/Adam/DolDoc/DocRecalcLib.CPP index 3c00e8f..37c510a 100644 --- a/Adam/DolDoc/DocRecalcLib.CPP +++ b/Adam/DolDoc/DocRecalcLib.CPP @@ -22,12 +22,12 @@ U0 DocDelToNum(CDoc *doc,I64 num) } } -U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry) +U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry,Bool clear_holds) { CDocEntry *doc_e=doc->root.next,*doc_e2; while (doc_e!=doc) { doc_e2=doc_e->next; - if (!(doc_e->de_flags & (DOCEF_HOLD|DOCEF_FILTER_SKIP))) { + if (!(doc_e->de_flags & (DOCEF_HOLD|DOCEF_FILTER_SKIP))||clear_holds) { if (doc_e==doc->cur_entry) { doc->cur_entry=doc_e2; doc->cur_col=doc_e2->min_col; @@ -117,14 +117,17 @@ public U0 DocBottom(CDoc *doc=NULL) DocUnlock(doc); } -public U0 DocClear(CDoc *doc=NULL) +public U0 DocClear(CDoc *doc=NULL,Bool clear_holds=FALSE) {//Clear all doc entries, except +H, hold entries. Bool unlock; if (!doc && !(doc=DocPut)) return; unlock=DocLock(doc); DocBottom(doc); - DocPrint(doc,"$$CL$$"); + if (clear_holds) + DocPrint(doc,"$$CL+H$$"); + else + DocPrint(doc,"$$CL$$"); DocRecalc(doc); if (unlock) DocUnlock(doc); @@ -171,7 +174,7 @@ public U0 DocCollapse(Bool collapse=TRUE,CDoc *doc=NULL) #help_index "DolDoc/Cmd Line (Typically);Cmd Line (Typically)" public I64 DocMax(I64 i=MAX_I64) -{//Set max document entries. (Cmd line buffer.) +{//Set max document entries. (Cmd line buffer size.) //Adjusts the size of the cmd line buf. //Normally, the cmd line deletes entries //when more are added and the old scroll up. diff --git a/Adam/God/GodDoodle.CPP b/Adam/God/GodDoodle.CPP index 8e4df4b..b25d307 100644 --- a/Adam/God/GodDoodle.CPP +++ b/Adam/God/GodDoodle.CPP @@ -121,7 +121,7 @@ public U8 *GodDoodleSprite(U8 *hex=NULL) for (i=0;i<3;i++) { god.doodle_dc->color=RED; for (j=0;j<29;j++) - nobound_switch (GodDoodleBits(3)) { + switch [GodDoodleBits(3)] { case 0: GrEllipse3(god.doodle_dc, (w-1)*GodDoodleBits(5)/15.5-w/2, @@ -149,7 +149,7 @@ public U8 *GodDoodleSprite(U8 *hex=NULL) for (j=0;j<6;j++) { x=(w-1)*GodDoodleBits(5)/31+w/64; y=(h-1)*GodDoodleBits(5)/31+h/64; - nobound_switch (GodDoodleBits(2)) { + switch [GodDoodleBits(2)] { case 0: god.doodle_dc->color=BLACK; break; case 1: god.doodle_dc->color=DKGRAY; break; case 2: god.doodle_dc->color=LTGRAY; break; diff --git a/Adam/God/HSNotes.TXT b/Adam/God/HSNotes.TXT index 321512f..8424334 100644 --- a/Adam/God/HSNotes.TXT +++ b/Adam/God/HSNotes.TXT @@ -82,7 +82,7 @@ Shakespeare? $FG,4$had a "vile heart"$FG$ Likes $FG,4$Beverly Hillbillies (Oil is a gift from God)$FG$ $FG,4$God likes being hero. Don't be proud of heart$FG$ $FG,4$and not accept a gift from God!$FG$ -Likes $FG,4$Gomer Pile$FG$ +Likes $FG,4$Gomer Pyle$FG$ Favorite saint? $FG,4$"ho_ho_ho"$FG$ Favorite animal? $FG,4$"Elephant two"$FG$ Favorite animal? $FG,4$"Bears"$FG$ @@ -139,7 +139,7 @@ Favorite actor? $FG,4$Hugh Grant$FG$ Favorite vocalist? $FG,4$Mick Jagger$FG$ Favorite guitarist? $FG,4$"$TX,"Simmons Destroyer",HTML="http://www.youtube.com/watch?v=nNADrrjTysk&t=3m55s"$"$FG$ Favorite National Anthem? $FG,4$$TX,"Latvia's National Anthem",HTML="http://www.youtube.com/watch?v=qKITbBjO4nE"$$FG$ -America the Beautiful? $FG,4$Hates it. Poet was too in love with own beauty.$FG$ +America the Beautiful? $FG,4$Hates it. Poet made self cry with own beauty.$FG$ Model for new $TX,"Sistine Chapel",HTML="http://en.wikipedia.org/wiki/Sistine_chapel"$? $FG,4$Ben Franklin$FG$ Voice if God wanted to sing? $FG,4$$TX,"Stabbing Westward's singer",HTML="https://www.youtube.com/watch?v=5NZsCYOM4j0"$$FG$ Stonehenge? $FG,4$Landmark for boundaries.$FG$ @@ -192,6 +192,7 @@ $TX,"Saturn's hexagon pole cloud?",HTML="http://en.wikipedia.org/wiki/Saturn's_h Liquid moon's odd atmosphere? $FG,4$"Surf"$FG$ How many E.T. civs in Universe? $FG,4$20 or 80 (I forgot. I died laughing.)$FG$ Are they peaceful? $FG,4$Fight them! (Also, funny.)$FG$ +Most difficult control system? $FG,4$$TX,"Dung beetle",HTML="http://www.youtube.com/watch?v=Q1zbgd6xpGQ"$$FG$ How can Judge Judy improve? $FG,4$No hard feelings$FG$ How can Chef Ramsay improve? $FG,4$Make so it doesn't seem like toil for cooks.$FG$ How can Hawking communicate? $FG,4$Blow from a nostril on a candle.$FG$ diff --git a/Adam/Gr/GrBitMap.CPP b/Adam/Gr/GrBitMap.CPP index afc43d1..efaeb7d 100644 --- a/Adam/Gr/GrBitMap.CPP +++ b/Adam/Gr/GrBitMap.CPP @@ -44,7 +44,7 @@ public Bool GrPlot0(CDC *dc=gr.dc,I64 x,I64 y) } } dst=dc->body+d; - nobound_switch (color.c0.rop) { + switch [color.c0.rop] { case ROPB_EQU: case ROPB_MONO: *dst=color.c0.color; @@ -733,7 +733,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) src=font_ptr; if (bit_shift) src--; - nobound_switch (color.c0.rop) { + switch [color.c0.rop] { case ROPB_EQU: case ROPB_MONO: for (j=h2-h1;j;j--) { @@ -763,7 +763,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) src=font_ptr+1; if (bit_shift) src--; - nobound_switch (color.c0.rop) { + switch [color.c0.rop] { case ROPB_EQU: case ROPB_MONO: for (j=h2-h1;j;j--) { @@ -792,7 +792,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) src=font_ptr; if (bit_shift) src--; - nobound_switch (color.c0.rop) { + switch [color.c0.rop] { case ROPB_EQU: case ROPB_MONO: for (j=h1;jbody+d; c=color.c0.color; - nobound_switch (color.c0.rop) { + switch [color.c0.rop] { case ROPB_EQU: case ROPB_MONO: *dst=c; diff --git a/Adam/Gr/GrPrimatives.CPP b/Adam/Gr/GrPrimatives.CPP index 16b4c84..9ce3adc 100644 --- a/Adam/Gr/GrPrimatives.CPP +++ b/Adam/Gr/GrPrimatives.CPP @@ -179,7 +179,7 @@ I64 GrFloodFillRay(CDC *dc,I64 x,I64 y,I64 z,I32 *db) f->y=y; f->state=0; do { - nobound_switch (f->state) { + switch [f->state] { case 0: f->state++; result+=f->ray_len=GrRayLen(dc,&f->x,f->y,z,db); diff --git a/Adam/Gr/SpriteMain.CPP b/Adam/Gr/SpriteMain.CPP index e6fb702..656b59e 100644 --- a/Adam/Gr/SpriteMain.CPP +++ b/Adam/Gr/SpriteMain.CPP @@ -433,7 +433,7 @@ CSprite *SMPolyLineFamily(I64 eletype,CDC *dc,I64 x,I64 y,I64 a1,I64 a2, } } while (msg_code!=MSG_IP_R_UP); - switch(eletype) { + switch (eletype) { case SPT_POLYLINE: if (num>1) { result=CAlloc(SpriteElemQuedBaseSize(SPT_POLYLINE)+num*sizeof(CD2I32)); diff --git a/Apps/TimeOut/TimeOut.CPP b/Apps/TimeOut/TimeOut.CPP index 07a7037..6399a59 100644 --- a/Apps/TimeOut/TimeOut.CPP +++ b/Apps/TimeOut/TimeOut.CPP @@ -596,9 +596,9 @@ U0 TimeOut() x+=Fs->pix_width; //It takes too much CPU do do all these all the time. - nobound_switch (main_loop_pass&7) { + switch [main_loop_pass&7] { case 0: - nobound_switch (main_loop_pass>>3&7) { + switch [main_loop_pass>>3&7] { case 0: if (--y<20) game_over=TRUE; diff --git a/Compiler/BackA.CPP b/Compiler/BackA.CPP index 0cfa939..877f0fc 100644 --- a/Compiler/BackA.CPP +++ b/Compiler/BackA.CPP @@ -351,7 +351,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) r=tempi->a1.reg; else ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); if (r>7) j=0xC0004D; @@ -363,13 +363,13 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); ICU32(tempi,i); } - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,r,0,ip); } else { ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip); + TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); r=REG_RBX; if (MIN_I8<=i<=MAX_I8) ICU32(tempi,i<<24+0xDB6B48); @@ -377,7 +377,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0xDB6948); ICU32(tempi,i); } - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, TY_REG+RT_I64,REG_RBX,0,ip); } } else { @@ -388,7 +388,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) if (tempi->ic_flags & ICF_NOT_ADDR) { if (tempi->ic_flags & ICF_A1_FIRST) { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); @@ -396,11 +396,11 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); } ICU24(tempi,i); - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip); } else { if (tempi->ic_flags & ICF_A1_FIRST) { @@ -415,9 +415,9 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); } ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip); + TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); ICU24(tempi,i); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, TY_REG+RT_I64,REG_RAX,0,ip); } } @@ -454,7 +454,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) if (tempi->ic_flags & ICF_NOT_ADDR) { if (tempi->ic_flags & ICF_A1_FIRST) { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); @@ -462,7 +462,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); } if (tempi->ic_class->raw_type&1) { @@ -473,10 +473,10 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) ICU24(tempi,0xF9F748); } if (is_mod) - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip); } else { if (tempi->ic_flags & ICF_A1_FIRST) { @@ -492,7 +492,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); } //dangerous might clobber RBX in Mov, but it doesn't - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+tempi->a1.type_pointed, + ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+tempi->a1.type_pointed_to, REG_RBX,0,ip); if (tempi->ic_class->raw_type&1) { ICZero(tempi,REG_RDX); @@ -502,10 +502,10 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) ICU24(tempi,0xF9F748); } if (is_mod) - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RBX,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RBX,0, TY_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RBX,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RBX,0, TY_REG+RT_I64,REG_RAX,0,ip); } if (tempi->r.type&TY_MASK) { @@ -542,7 +542,7 @@ U0 ICMod(CIntermediateCode *tempi,I64 ip) TY_REG+RT_I64,REG_RDX,0,ip); } -U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, +U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed_to, I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2, I64 t3,I64 r3,I64 d3,I64 op,I64 ip) { @@ -551,14 +551,14 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, if (tempi->ic_flags & ICF_NOT_ADDR) { if (t3&TY_MASK==TY_IMM) { ICAddSubEctImm(tempi, - t2&TY_MASK+type_pointed,r2,d2,t2&TY_MASK+ - type_pointed,r2,d2,d3,op,ip); + t2&TY_MASK+type_pointed_to,r2,d2,t2&TY_MASK+ + type_pointed_to,r2,d2,d3,op,ip); if (t1&TY_MASK) - ICMov(tempi,t1,r1,d1,t2&TY_MASK+type_pointed,r2,d2,ip); + ICMov(tempi,t1,r1,d1,t2&TY_MASK+type_pointed_to,r2,d2,ip); return; } else { done=FALSE; - if (type_pointed>=RT_I64) { + if (type_pointed_to>=RT_I64) { if (!(t1&TY_MASK) && TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) { if (t3&TY_MASK==TY_REG) @@ -567,7 +567,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, temp=REG_RCX; ICMov(tempi,TY_REG+RT_I64,temp,0,t3,r3,d3,ip); } - i=ICModr1(temp,t2&TY_MASK+type_pointed,r2,d2); + i=ICModr1(temp,t2&TY_MASK+type_pointed_to,r2,d2); if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICRex(tempi,i.u8[1]); @@ -583,13 +583,13 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, result_reg=REG_RCX; ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); } - i=ICModr1(result_reg,t3&TY_MASK+type_pointed,r3,d3); + i=ICModr1(result_reg,t3&TY_MASK+type_pointed_to,r3,d3); if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICRex(tempi,i.u8[1]); ICU16(tempi,i.u8[2]<<8+op.u8[0]); ICModr2(tempi,i,d3,ip+4); - ICMov(tempi,t2&TY_MASK+type_pointed,r2,d2, + ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2, TY_REG+RT_I64,result_reg,0,ip); done=TRUE; } @@ -601,7 +601,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, else { result_reg=REG_RCX; ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - t2&TY_MASK+type_pointed,r2,d2,ip); + t2&TY_MASK+type_pointed_to,r2,d2,ip); } ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); } else { @@ -611,7 +611,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, else { result_reg=REG_RCX; ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - t2&TY_MASK+type_pointed,r2,d2,ip); + t2&TY_MASK+type_pointed_to,r2,d2,ip); } } if (tempi->ic_flags&ICF_LOCK) @@ -621,7 +621,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, else ICU8(tempi,0x48); ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11); - ICMov(tempi,t2&TY_MASK+type_pointed,r2,d2, + ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2, TY_REG+RT_I64,result_reg,0,ip); } } @@ -631,25 +631,25 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, if (!d3.u32[1]) { if (tempi->ic_flags&ICF_NO_DEPEND_RESULT && t2&TY_MASK==TY_REG && d3(U64)<=MAX_I8) { - ICSlashOp(tempi,TY_DISP+type_pointed,r2,0,0x838000+op.u8[4],ip); + ICSlashOp(tempi,TY_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],ip); ICU8(tempi,d3); done=TRUE; } else if (op.u8[2]==0x24) {//AND ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_DISP+type_pointed,REG_RCX,0,ip); + TY_DISP+type_pointed_to,REG_RCX,0,ip); result_reg=REG_RAX; if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICU16(tempi,op.u8[3]<<8+0x40); ICU32(tempi,d3); - ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0, TY_REG+RT_I64,result_reg,0,ip); done=TRUE; - } else if (type_pointed&RT_MASKic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); @@ -663,7 +663,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, ICU16(tempi,op.u8[2]<<8+0x40); ICU8(tempi,d3); } - ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0, TY_REG+RT_I64,result_reg,0,ip); done=TRUE; } @@ -677,13 +677,14 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed, ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); } - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+type_pointed,REG_RCX,0,ip); + ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+type_pointed_to,REG_RCX,0,ip); result_reg=REG_RBX; if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICU8(tempi,0x48); ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11); - ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0,TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0, + TY_REG+RT_I64,result_reg,0,ip); } } if (t1&TY_MASK) @@ -723,8 +724,9 @@ U0 ICShift(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip); } -U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1, - I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 us,I64 is,I64 ip) +U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed_to, + I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3, + I64 us,I64 is,I64 ip) { I64 result_reg; if (tempi->ic_class->raw_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) @@ -735,7 +737,8 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1, result_reg=r2; else { result_reg=REG_RAX; - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t2&TY_MASK+type_pointed,r2,d2,ip); + ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + t2&TY_MASK+type_pointed_to,r2,d2,ip); } if (t3&TY_MASK!=TY_IMM) ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); @@ -746,7 +749,8 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1, result_reg=r2; else { result_reg=REG_RAX; - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t2&TY_MASK+type_pointed,r2,d2,ip); + ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + t2&TY_MASK+type_pointed_to,r2,d2,ip); } } if (result_reg>7) @@ -762,7 +766,7 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1, } } else ICU16(tempi,is.u16[1]+(result_reg&7)<<8); - ICMov(tempi,t2&TY_MASK+type_pointed,r2,d2,TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2,TY_REG+RT_I64,result_reg,0,ip); } else { if (tempi->ic_flags & ICF_A1_FIRST) { ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); @@ -773,7 +777,7 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1, ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); } - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed,REG_RDX,0,ip); + ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed_to,REG_RDX,0,ip); result_reg=REG_RAX; ICU8(tempi,0x48); if (t3&TY_MASK==TY_IMM) { @@ -785,7 +789,8 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64 d1, } } else ICU16(tempi,is.u16[1]+(result_reg&7)<<8); - ICMov(tempi,TY_DISP+type_pointed,REG_RDX,0,TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi, + TY_DISP+type_pointed_to,REG_RDX,0,TY_REG+RT_I64,result_reg,0,ip); } if (t1&TY_MASK) ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip); diff --git a/Compiler/BackB.CPP b/Compiler/BackB.CPP index 0b744c1..37f30df 100644 --- a/Compiler/BackB.CPP +++ b/Compiler/BackB.CPP @@ -397,17 +397,17 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip) if (tempi->ic_flags & ICF_NOT_ADDR) { if (tempc->ptr_stars_cnt && tempc1->size!=1) { ICAddSubEctImm(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip); } else ICSlashOp(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,op,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); } else { if (tempi->a1.type&TY_MASK==TY_REG) @@ -419,15 +419,15 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip) } if (tempc->ptr_stars_cnt && tempc1->size!=1) { - ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed,r,0, - TY_DISP+tempi->a1.type_pointed,r,0, + ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0, + TY_DISP+tempi->a1.type_pointed_to,r,0, tempc1->size,op.u16[3],ip); } else ICSlashOp(tempi, - TY_DISP+tempi->a1.type_pointed,r,0,op,ip); + TY_DISP+tempi->a1.type_pointed_to,r,0,op,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+tempi->a1.type_pointed,r,0,ip); + TY_DISP+tempi->a1.type_pointed_to,r,0,ip); } } @@ -438,17 +438,17 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) if (tempi->ic_flags & ICF_NOT_ADDR) { if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); if (tempc->ptr_stars_cnt && tempc1->size!=1) ICAddSubEctImm(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip); else ICSlashOp(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,op,ip); } else { if (tempi->a1.type&TY_MASK==TY_REG && @@ -461,12 +461,12 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) } if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+tempi->a1.type_pointed,r,0,ip); + TY_DISP+tempi->a1.type_pointed_to,r,0,ip); if (tempc->ptr_stars_cnt && tempc1->size!=1) - ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed,r,0, - TY_DISP+tempi->a1.type_pointed,r,0,tempc1->size,op.u16[3],ip); + ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0, + TY_DISP+tempi->a1.type_pointed_to,r,0,tempc1->size,op.u16[3],ip); else - ICSlashOp(tempi,TY_DISP+tempi->a1.type_pointed,r,0,op,ip); + ICSlashOp(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0,op,ip); } } @@ -475,8 +475,8 @@ U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) I64 t,r; CHashClass *tempc1=tempi->ic_class; t=tempi->r.type&RT_MASK; - if (t>tempi->a1.type_pointed) - t=tempi->a1.type_pointed; + if (t>tempi->a1.type_pointed_to) + t=tempi->a1.type_pointed_to; if (tempi->ic_flags & ICF_NOT_ADDR) { if (tempi->a1.type&TY_MASK==TY_REG) r=tempi->a1.reg; @@ -526,7 +526,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RDX; } - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,r,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -540,7 +540,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_I64,REG_RDX,0,ip); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, diff --git a/Compiler/BackC.CPP b/Compiler/BackC.CPP index 121890b..355d5bc 100644 --- a/Compiler/BackC.CPP +++ b/Compiler/BackC.CPP @@ -160,13 +160,13 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip) { CIntermediateCode *tempi1; if (tempi->ic_flags & ICF_NOT_ADDR) { - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); if (tempi->r.type&TY_MASK) { if (tempi->a1.type&TY_MASK==TY_REG) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); else ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -182,7 +182,8 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip) tempi->a2.reg==tempi->a1.reg || tempi->r.type&TY_MASK || tempi1->ic_flags&~ICG_NO_CVT_MASK) { - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,tempi->a1.reg,tempi->a1.disp, + ICMov(tempi, + TY_DISP+tempi->a1.type_pointed_to,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -192,14 +193,14 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip) ~ICF_CODE_FINAL|ICF_DONT_RESTORE; tempi->a1.disp=tempi1->ic_data; OptSetNOP1(tempi1); //This better not be last pass! - ICMov(tempi,TY_DISP+tempi->a1.type_pointed, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } } else { ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -706,7 +707,7 @@ U0 ICAndEqu(CIntermediateCode *tempi,I64 ip2) return; } } - ICAddSubEctEqu(tempi,tempi->a1.type_pointed, + ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x210425240423,ip2); @@ -727,7 +728,7 @@ U0 ICOrEqu(CIntermediateCode *tempi,I64 ip2) return; } } - ICAddSubEctEqu(tempi,tempi->a1.type_pointed, + ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x09010D0C010B,ip2); @@ -748,7 +749,7 @@ U0 ICXorEqu(CIntermediateCode *tempi,I64 ip2) return; } } - ICAddSubEctEqu(tempi,tempi->a1.type_pointed, + ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x310635340633,ip2); diff --git a/Compiler/BackFA.CPP b/Compiler/BackFA.CPP index 5e8c148..c2db8ef 100644 --- a/Compiler/BackFA.CPP +++ b/Compiler/BackFA.CPP @@ -9,7 +9,7 @@ U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tempi, Bool link=FALSE; if (cc->pass==7 && cc->last_float_op_ic && cc->last_dont_popable && dont_pushable) { - nobound_switch (pos) { + switch [pos] { case CN_A2: if (cc->last_float_op_ic!=tempi && cc->dont_push_float) link=TRUE; @@ -589,15 +589,15 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) if (tempi->ic_flags & ICF_NOT_ADDR) { if (dont_push_float) { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->a1.type_pointed!=RT_F64) + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); } else if (tempi->ic_flags & ICF_A1_FIRST) { ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->a1.type_pointed!=RT_F64) + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); @@ -605,28 +605,28 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->a1.type_pointed!=RT_F64) + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); } //TODO: unpushable,unpop? Not sure ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); - if (tempi->a1.type_pointed!=RT_F64) + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed, + tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); } else { if (dont_push_float) { ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type, tempi->a1.reg,tempi->a1.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip); - if (tempi->a1.type_pointed!=RT_F64) + TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); } else if (tempi->ic_flags & ICF_A1_FIRST) { ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type, @@ -634,8 +634,8 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip); - if (tempi->a1.type_pointed!=RT_F64) + TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); } else { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, @@ -643,15 +643,15 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type, tempi->a1.reg,tempi->a1.disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+tempi->a1.type_pointed,REG_RCX,0,ip); - if (tempi->a1.type_pointed!=RT_F64) + TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); } //TODO: unpushable,unpop? Not sure ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); - if (tempi->a1.type_pointed!=RT_F64) + if (tempi->a1.type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, TY_REG+RT_I64,REG_RAX,0,ip); if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, diff --git a/Compiler/BackFB.CPP b/Compiler/BackFB.CPP index 9f35b1d..5cd07fb 100644 --- a/Compiler/BackFB.CPP +++ b/Compiler/BackFB.CPP @@ -16,31 +16,32 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) if (tempi->ic_flags & ICF_NOT_ADDR) { p1_mem=FALSE; if (dont_push_float) { - if (a1->type_pointed!=RT_F64) { + if (a1->type_pointed_to!=RT_F64) { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip); + a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); ICPush(tempi,TY_REG+RT_I64,REG_RAX,0,ip); t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } else { - if (a1->type_pointed>=RT_I64 && (a1->type&TY_MASK==TY_DISP || + if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP || a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { - t1=a1->type_pointed+a1->type&TY_MASK; + t1=a1->type_pointed_to+a1->type&TY_MASK; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { - ICPush(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip); + ICPush(tempi, + a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } } } else if (tempi->ic_flags & ICF_A1_FIRST) { - if (a1->type_pointed!=RT_F64 || a2->type&TY_MASK==TY_STK) { + if (a1->type_pointed_to!=RT_F64 || a2->type&TY_MASK==TY_STK) { ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip); - if (a1->type_pointed!=RT_F64) + a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + if (a1->type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, a2->type,a2->reg,a2->disp,ip); @@ -50,14 +51,15 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } else { - if (a1->type_pointed>=RT_I64 && (a1->type&TY_MASK==TY_DISP || + if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP || a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { - t1=a1->type_pointed+a1->type&TY_MASK; + t1=a1->type_pointed_to+a1->type&TY_MASK; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { - ICPush(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip); + ICPush(tempi, + a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } @@ -83,11 +85,11 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } } else { - if (a1->type_pointed!=RT_F64 || a1->type&TY_MASK==TY_STK) { + if (a1->type_pointed_to!=RT_F64 || a1->type&TY_MASK==TY_STK) { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip); - if (a1->type_pointed!=RT_F64) + a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + if (a1->type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; @@ -112,14 +114,15 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) rsp_size+=8; } } - if (a1->type_pointed>=RT_I64 && (a1->type&TY_MASK==TY_DISP || + if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP || a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { - t1=a1->type_pointed+a1->type&TY_MASK; + t1=a1->type_pointed_to+a1->type&TY_MASK; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { - ICPush(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip); + ICPush(tempi, + a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) @@ -127,7 +130,7 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } } - if (!rsp_size && !(p1_mem && a1->type_pointed==RT_F64)) { + if (!rsp_size && !(p1_mem && a1->type_pointed_to==RT_F64)) { rsp_size=8; ICAddRSP(tempi,-8); } @@ -143,7 +146,7 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } ICSlashOp(tempi,t1,r1,d1,op,ip); CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN); - if (p1_mem && a1->type_pointed==RT_F64) { + if (p1_mem && a1->type_pointed_to==RT_F64) { ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FSTP,ip); if (rsp_size) ICAddRSP(tempi,rsp_size); @@ -156,39 +159,39 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) SLASH_OP_FSTP,ip); ICAddRSP(tempi,rsp_size-8); } - if (a1->type_pointed!=RT_F64) { + if (a1->type_pointed_to!=RT_F64) { ICPop(tempi,TY_REG+RT_I64,REG_RAX,0,ip); ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp, + ICMov(tempi,a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp, TY_REG+RT_I64,REG_RAX,0,ip); } else - ICPop(tempi,a1->type_pointed+a1->type&TY_MASK,a1->reg,a1->disp,ip); + ICPop(tempi,a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); } if (tempi->r.type&TY_MASK) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - a1->type&TY_MASK+a1->type_pointed,a1->reg,a1->disp,ip); + a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); } else { - if (a1->type_pointed>=RT_I64) + if (a1->type_pointed_to>=RT_I64) p1_mem=TRUE; else p1_mem=FALSE; if (dont_push_float) { ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - if (a1->type_pointed!=RT_F64) { + if (a1->type_pointed_to!=RT_F64) { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_DISP+a1->type_pointed,REG_RCX,0,ip); + TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); ICPush(tempi,TY_REG+RT_I64,REG_RAX,0,ip); } else - ICPush(tempi,a1->type_pointed+TY_DISP,REG_RCX,0,ip); + ICPush(tempi,a1->type_pointed_to+TY_DISP,REG_RCX,0,ip); t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } else if (tempi->ic_flags & ICF_A1_FIRST) { ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - if (a1->type_pointed!=RT_F64 || a2->type&TY_MASK==TY_STK) { + if (a1->type_pointed_to!=RT_F64 || a2->type&TY_MASK==TY_STK) { ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+a1->type_pointed,REG_RCX,0,ip); - if (a1->type_pointed!=RT_F64) + TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); + if (a1->type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); @@ -197,7 +200,7 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } else { - ICPush(tempi,TY_DISP+a1->type_pointed,REG_RCX,0,ip); + ICPush(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || @@ -222,12 +225,12 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } } else { - if (a1->type_pointed!=RT_F64 || a1->type&TY_MASK==TY_STK) { + if (a1->type_pointed_to!=RT_F64 || a1->type&TY_MASK==TY_STK) { ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+a1->type_pointed,REG_RCX,0,ip); - if (a1->type_pointed!=RT_F64) + TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); + if (a1->type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; @@ -253,14 +256,14 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - ICPush(tempi,TY_DISP+a1->type_pointed,REG_RCX,0,ip); + ICPush(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) d2+=8; } } - if (!rsp_size && !(p1_mem && a1->type_pointed==RT_F64)) { + if (!rsp_size && !(p1_mem && a1->type_pointed_to==RT_F64)) { rsp_size=8; ICAddRSP(tempi,-8); } @@ -277,8 +280,8 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } ICSlashOp(tempi,t1,r1,d1,op,ip); CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN); - if (p1_mem && a1->type_pointed==RT_F64) { - ICSlashOp(tempi,TY_DISP+a1->type_pointed,REG_RCX,0, + if (p1_mem && a1->type_pointed_to==RT_F64) { + ICSlashOp(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0, SLASH_OP_FSTP,ip); if (rsp_size) ICAddRSP(tempi,rsp_size); @@ -292,9 +295,9 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) ICAddRSP(tempi,rsp_size-8); } ICPop(tempi,TY_REG+RT_I64,REG_RAX,0,ip); - if (a1->type_pointed!=RT_F64) + if (a1->type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,TY_DISP+a1->type_pointed,REG_RCX,0, + ICMov(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0, TY_REG+RT_I64,REG_RAX,0,ip); } if (tempi->r.type&TY_MASK) @@ -569,13 +572,13 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) { if (tempi->a1.type&TY_MASK==TY_IMM && - tempi->a1.type_pointed&RT_MASK==RT_F64 && + tempi->a1.type_pointed_to&RT_MASK==RT_F64 && tempi->a1.disp(F64)==1.0) { CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } else if (tempi->a2.type&TY_MASK==TY_IMM && - tempi->a2.type_pointed&RT_MASK==RT_F64 && + tempi->a2.type_pointed_to&RT_MASK==RT_F64 && tempi->a2.disp(F64)==1.0) { CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -587,7 +590,7 @@ U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) U0 ICFDiv(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) { if (tempi->a2.type&TY_MASK==TY_IMM && - tempi->a2.type_pointed&RT_MASK==RT_F64 && + tempi->a2.type_pointed_to&RT_MASK==RT_F64 && tempi->a2.disp(F64)==1.0) { CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, diff --git a/Compiler/BackLib.CPP b/Compiler/BackLib.CPP index ad97d50..79fbd4a 100644 --- a/Compiler/BackLib.CPP +++ b/Compiler/BackLib.CPP @@ -222,7 +222,7 @@ I64 ICModr1(I64 r,I64 t2,I64 r2,I64 d2) U0 ICModr2(CIntermediateCode *tempi,I64 i,I64 d,I64 ip=0) {//t=0 means no SIB - nobound_switch (i.u8[0]) { + switch [i.u8[0]] { case MDR_REG: break; case MDR_INDIRECT_REG: @@ -648,8 +648,8 @@ U0 ICDeref(CIntermediateCode *tempi,I64 ip) { I64 t; t=tempi->r.type&RT_MASK; - if (t>tempi->a1.type_pointed) - t=tempi->a1.type_pointed; + if (t>tempi->a1.type_pointed_to) + t=tempi->a1.type_pointed_to; if (tempi->a1.type&TY_MASK==TY_REG) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, TY_DISP+t,tempi->a1.reg,tempi->a1.disp,ip); diff --git a/Compiler/CExcept.CPP b/Compiler/CExcept.CPP index 77c9ec4..038e38a 100644 --- a/Compiler/CExcept.CPP +++ b/Compiler/CExcept.CPP @@ -140,10 +140,10 @@ U0 ICClassPut(CHashClass *c) U0 ICArgPut(CICArg *a) { - if (a->type_pointed) + if (a->type_pointed_to) "%Z %Z %Z ", a->type&RT_MASK,"ST_RAW_TYPES", - a->type_pointed&RT_MASK,"ST_RAW_TYPES", + a->type_pointed_to&RT_MASK,"ST_RAW_TYPES", a->type>>4,"ST_TY_TYPES"; else "%Z %Z ", diff --git a/Compiler/CExts.CPP b/Compiler/CExts.CPP index 8d62829..0b11f2a 100644 --- a/Compiler/CExts.CPP +++ b/Compiler/CExts.CPP @@ -3,7 +3,7 @@ import U0 DocBinsValidate(CDoc *doc); import U0 DocDel(CDoc *doc); import U0 DocLoad(CDoc *doc,U8 *src2,I64 size); import CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL); -import CDocEntry *DocPrint(CDoc *doc,U8 *fmt,...); +import CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...); import CDocEntry *DocPutLine(CDoc *doc,CDocEntry *doc_e); import I64 DocSize(CDoc *doc); import Bool DocWrite(CDoc *doc,Bool prompt=FALSE); diff --git a/Compiler/CMain.CPP b/Compiler/CMain.CPP index 6f25d08..d44a3e9 100644 --- a/Compiler/CMain.CPP +++ b/Compiler/CMain.CPP @@ -184,7 +184,7 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tempaot) while (tempa) { tempa1=tempa->next; ptr=ip2+tempa->ip; - nobound_switch (tempa->type) { + switch [tempa->type] { case AAT_ADD_U8: *ptr(U8 *) +=ip2; break; case AAT_SUB_U8: *ptr(U8 *) -=ip2; break; case AAT_ADD_U16: *ptr(U16 *)+=ip2; break; @@ -250,7 +250,7 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tempaot) } if (tempex || g_lb) { ptr=tempie->ip+ip2; - nobound_switch (tempie->type) { + switch [tempie->type] { case IET_REL_I0: case IET_IMM_U0: break; @@ -313,7 +313,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) tempa1=tempa->next; tempa->next=aotc->abss; ptr=tempaot->buf+tempaot->ip+tempa->ip; - nobound_switch (tempa->type) { + switch [tempa->type] { case AAT_ADD_U8: *ptr(U8 *)+=ip2; break; case AAT_SUB_U8: *ptr(U8 *)-=ip2; break; case AAT_ADD_U16: *ptr(U16 *)+=ip2; break; @@ -350,7 +350,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) ptr=tempaot->buf+tempaot->ip+tempie->ip; if (g_lb) { i=g_lb->addr+tempaot->buf; - nobound_switch (tempie->type) { + switch [tempie->type] { case IET_REL_I0: case IET_IMM_U0: break; diff --git a/Compiler/Compiler.BIN b/Compiler/Compiler.BIN index 094b50f..a088363 100644 Binary files a/Compiler/Compiler.BIN and b/Compiler/Compiler.BIN differ diff --git a/Compiler/Compiler.MAP b/Compiler/Compiler.MAP index 42f54ca..131e991 100644 --- a/Compiler/Compiler.MAP +++ b/Compiler/Compiler.MAP @@ -21,11 +21,11 @@ $LK,"AsmStoreNum",A="FL:::/Compiler/Asm.CPP.Z,263",BI=18$ $LK,"MDR_SIB_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,137"$ $LK,"OptPass012",A="FL:::/Compiler/OptPass012.CPP.Z,23",BI=19$ $LK,"MemberLstSize",A="FL:::/Compiler/LexLib.CPP.Z,191",BI=20$ -$LK,"ICQueIns",A="FL:::/Compiler/BackC.CPP.Z,411",BI=21$ +$LK,"ICQueIns",A="FL:::/Compiler/BackC.CPP.Z,412",BI=21$ $LK,"ICAndBranch",A="FL:::/Compiler/BackC.CPP.Z,1",BI=22$ $LK,"MDR_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,134"$ $LK,"U",A="FL:::/Compiler/UAsm.CPP.Z,649",BI=23$ -$LK,"ICQueRem",A="FL:::/Compiler/BackC.CPP.Z,493",BI=24$ +$LK,"ICQueRem",A="FL:::/Compiler/BackC.CPP.Z,494",BI=24$ $LK,"CN_R",A="FL:::/Compiler/BackFA.CPP.Z,4"$ $LK,"OptLead1",A="FL:::/Compiler/OptLib.CPP.Z,73",BI=25$ $LK,"CmpNoteFloatOp",A="FL:::/Compiler/BackFA.CPP.Z,6",BI=26$ @@ -75,7 +75,7 @@ $LK,"ICAdd",A="FL:::/Compiler/PrsLib.CPP.Z,79",BI=53$ $LK,"CmpRawType",A="FL:::/Compiler/OptLib.CPP.Z,509",BI=54$ $LK,"ICFOpEqu",A="FL:::/Compiler/BackFB.CPP.Z,1",BI=55$ $LK,"LexExpressionI64",A="FL:::/Compiler/PrsExp.CPP.Z,1135",BI=56$ -$LK,"ICQueInsRev",A="FL:::/Compiler/BackC.CPP.Z,452",BI=57$ +$LK,"ICQueInsRev",A="FL:::/Compiler/BackC.CPP.Z,453",BI=57$ $LK,"LexExpression",A="FL:::/Compiler/PrsExp.CPP.Z,1163",BI=58$ $LK,"PrsExpression",A="FL:::/Compiler/PrsExp.CPP.Z,264",BI=59$ $LK,"PrsClassNew",A="FL:::/Compiler/PrsLib.CPP.Z,40",BI=60$ @@ -87,7 +87,7 @@ $LK,"OptPass5",A="FL:::/Compiler/OptPass5.CPP.Z,1",BI=64$ $LK,"OptPass6",A="FL:::/Compiler/OptPass6.CPP.Z,111",BI=65$ $LK,"Echo",A="FL:::/Compiler/CMisc.CPP.Z,24",BI=66$ $LK,"PrsGlblVarLst",A="FL:::/Compiler/PrsStmt.CPP.Z,201",BI=67$ -$LK,"ICQueInit",A="FL:::/Compiler/BackC.CPP.Z,397",BI=68$ +$LK,"ICQueInit",A="FL:::/Compiler/BackC.CPP.Z,398",BI=68$ $LK,"ICCmp",A="FL:::/Compiler/BackB.CPP.Z,136",BI=69$ $LK,"ICAddRSP",A="FL:::/Compiler/BackLib.CPP.Z,69",BI=70$ $LK,"ICDiv",A="FL:::/Compiler/BackA.CPP.Z,428",BI=71$ @@ -111,7 +111,7 @@ $LK,"OptSetNOP1",A="FL:::/Compiler/OptLib.CPP.Z,17",BI=87$ $LK,"OptPass789A",A="FL:::/Compiler/OptPass789A.CPP.Z,1",BI=88$ $LK,"OptSetNOP2",A="FL:::/Compiler/OptLib.CPP.Z,25",BI=89$ $LK,"FBO1_F64",A="FL:::/Compiler/OptLib.CPP.Z,94"$ -$LK,"ICXorEqu",A="FL:::/Compiler/BackC.CPP.Z,736",BI=90$ +$LK,"ICXorEqu",A="FL:::/Compiler/BackC.CPP.Z,737",BI=90$ $LK,"ICToUpper",A="FL:::/Compiler/BackB.CPP.Z,355",BI=91$ $LK,"AsmLexExpression",A="FL:::/Compiler/AsmLib.CPP.Z,129",BI=92$ $LK,"ICMov",A="FL:::/Compiler/BackLib.CPP.Z,435",BI=93$ @@ -126,12 +126,12 @@ $LK,"ICSub",A="FL:::/Compiler/BackA.CPP.Z,207",BI=99$ $LK,"COCFloatConstFind",A="FL:::/Compiler/PrsLib.CPP.Z,164",BI=100$ $LK,"ICPut",A="FL:::/Compiler/CExcept.CPP.Z,186",BI=101$ $LK,"PrsArrayDims",A="FL:::/Compiler/PrsVar.CPP.Z,247",BI=102$ -$LK,"ICSqr",A="FL:::/Compiler/BackC.CPP.Z,581",BI=103$ +$LK,"ICSqr",A="FL:::/Compiler/BackC.CPP.Z,582",BI=103$ $LK,"FBO1_NOT_CONST",A="FL:::/Compiler/OptLib.CPP.Z,92"$ $LK,"CMP_TEMPLATES_DONT_POP",A="FL:::/Compiler/Templates.CPP.Z,178"$ $LK,"PrsClass",A="FL:::/Compiler/PrsStmt.CPP.Z,1",BI=104$ $LK,"MemberMetaData",A="FL:::/Compiler/LexLib.CPP.Z,45",BI=105$ -$LK,"ICSwitch",A="FL:::/Compiler/BackC.CPP.Z,757",BI=106$ +$LK,"ICSwitch",A="FL:::/Compiler/BackC.CPP.Z,758",BI=106$ $LK,"OptBrNotZero",A="FL:::/Compiler/OptLib.CPP.Z,358",BI=107$ $LK,"LexPutToken",A="FL:::/Compiler/CExcept.CPP.Z,1",BI=108$ $LK,"SLASH_OP_FDIV",A="FL:::/Compiler/BackLib.CPP.Z,268"$ @@ -140,14 +140,14 @@ $LK,"UAsmHashLoad",A="FL:::/Compiler/UAsm.CPP.Z,188",BI=110$ $LK,"UnusedExternWarning",A="FL:::/Compiler/CExcept.CPP.Z,104",BI=111$ $LK,"SLASH_OP_FILD",A="FL:::/Compiler/BackLib.CPP.Z,273"$ $LK,"ICXorXor",A="FL:::/Compiler/BackB.CPP.Z,98",BI=112$ -$LK,"PrsTryBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,831",BI=113$ +$LK,"PrsTryBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,838",BI=113$ $LK,"CInit",A="FL:::/Compiler/CMain.CPP.Z,684",BI=114$ $LK,"MemberMetaFind",A="FL:::/Compiler/LexLib.CPP.Z,56",BI=115$ $LK,"ExePrint2",A="FL:::/Compiler/CMain.CPP.Z,646",BI=116$ $LK,"FBO1_INT",A="FL:::/Compiler/OptLib.CPP.Z,93"$ $LK,"PE_DO_UNARY_OP",A="FL:::/Compiler/PrsExp.CPP.Z,8"$ $LK,"PrsVarInit",A="FL:::/Compiler/PrsVar.CPP.Z,1",BI=117$ -$LK,"ICOrEqu",A="FL:::/Compiler/BackC.CPP.Z,715",BI=118$ +$LK,"ICOrEqu",A="FL:::/Compiler/BackC.CPP.Z,716",BI=118$ $LK,"ICModr1",A="FL:::/Compiler/BackLib.CPP.Z,141",BI=119$ $LK,"ICModr2",A="FL:::/Compiler/BackLib.CPP.Z,223",BI=120$ $LK,"SLASH_OP_FMUL",A="FL:::/Compiler/BackLib.CPP.Z,267"$ @@ -162,20 +162,20 @@ $LK,"SLASH_OP_IMUL",A="FL:::/Compiler/BackLib.CPP.Z,259"$ $LK,"SLASH_OP_FSTP",A="FL:::/Compiler/BackLib.CPP.Z,271"$ $LK,"COCDel",A="FL:::/Compiler/PrsLib.CPP.Z,186",BI=127$ $LK,"PE_UNARY_TERM1",A="FL:::/Compiler/PrsExp.CPP.Z,1"$ -$LK,"ICFAdd",A="FL:::/Compiler/BackFB.CPP.Z,599",BI=128$ +$LK,"ICFAdd",A="FL:::/Compiler/BackFB.CPP.Z,602",BI=128$ $LK,"PE_UNARY_TERM2",A="FL:::/Compiler/PrsExp.CPP.Z,2"$ $LK,"CmdLinePmt",A="FL:::/Compiler/CMisc.CPP.Z,88",BI=129$ $LK,"AsmMakeArgMask",A="FL:::/Compiler/Asm.CPP.Z,172",BI=130$ $LK,"COCHeaderPut",A="FL:::/Compiler/PrsLib.CPP.Z,229",BI=131$ $LK,"PrsGlblInit",A="FL:::/Compiler/PrsVar.CPP.Z,206",BI=132$ -$LK,"ICAndEqu",A="FL:::/Compiler/BackC.CPP.Z,694",BI=133$ +$LK,"ICAndEqu",A="FL:::/Compiler/BackC.CPP.Z,695",BI=133$ $LK,"LexD2I32",A="FL:::/Compiler/CMisc.CPP.Z,52",BI=134$ $LK,"MemberLstNew",A="FL:::/Compiler/LexLib.CPP.Z,150",BI=135$ $LK,"LexD3I32",A="FL:::/Compiler/CMisc.CPP.Z,68",BI=136$ $LK,"OptClassFwd",A="FL:::/Compiler/OptLib.CPP.Z,9",BI=137$ $LK,"ICFCmp",A="FL:::/Compiler/BackFA.CPP.Z,545",BI=138$ $LK,"PrsSwitch",A="FL:::/Compiler/PrsStmt.CPP.Z,575",BI=139$ -$LK,"ICFDiv",A="FL:::/Compiler/BackFB.CPP.Z,587",BI=140$ +$LK,"ICFDiv",A="FL:::/Compiler/BackFB.CPP.Z,590",BI=140$ $LK,"AOTStoreCodeU8At",A="FL:::/Compiler/AsmLib.CPP.Z,108",BI=141$ $LK,"PE_PUSH_LOWER",A="FL:::/Compiler/PrsExp.CPP.Z,11"$ $LK,"OptPass6Lag",A="FL:::/Compiler/OptPass6.CPP.Z,28",BI=142$ @@ -188,7 +188,7 @@ $LK,"PrsOffsetOf",A="FL:::/Compiler/PrsExp.CPP.Z,348",BI=148$ $LK,"MDR_REG",A="FL:::/Compiler/BackLib.CPP.Z,132"$ $LK,"GetOption",A="FL:::/Compiler/CMisc.CPP.Z,6",BI=149$ $LK,"PrsDoWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,503",BI=150$ -$LK,"ICShift",A="FL:::/Compiler/BackA.CPP.Z,693",BI=151$ +$LK,"ICShift",A="FL:::/Compiler/BackA.CPP.Z,694",BI=151$ $LK,"ICFMod",A="FL:::/Compiler/BackFA.CPP.Z,249",BI=152$ $LK,"COCPop",A="FL:::/Compiler/PrsLib.CPP.Z,121",BI=153$ $LK,"PrsExpression2",A="FL:::/Compiler/PrsExp.CPP.Z,65",BI=154$ @@ -196,12 +196,12 @@ $LK,"SLASH_OP_PUSH",A="FL:::/Compiler/BackLib.CPP.Z,262"$ $LK,"PE_DEREFERENCE",A="FL:::/Compiler/PrsExp.CPP.Z,5"$ $LK,"LexPopRestore",A="FL:::/Compiler/LexLib.CPP.Z,23",BI=155$ $LK,"ICUnaries",A="FL:::/Compiler/BackB.CPP.Z,1",BI=156$ -$LK,"ICFMul",A="FL:::/Compiler/BackFB.CPP.Z,569",BI=157$ -$LK,"ICShiftEqu",A="FL:::/Compiler/BackA.CPP.Z,726",BI=158$ +$LK,"ICFMul",A="FL:::/Compiler/BackFB.CPP.Z,572",BI=157$ +$LK,"ICShiftEqu",A="FL:::/Compiler/BackA.CPP.Z,727",BI=158$ $LK,"LexExpression2Bin",A="FL:::/Compiler/PrsExp.CPP.Z,1112",BI=159$ $LK,"ICFPow",A="FL:::/Compiler/BackFA.CPP.Z,280",BI=160$ $LK,"MapFileWrite",A="FL:::/Compiler/CHash.CPP.Z,90",BI=161$ -$LK,"ICFSub",A="FL:::/Compiler/BackFB.CPP.Z,635",BI=162$ +$LK,"ICFSub",A="FL:::/Compiler/BackFB.CPP.Z,638",BI=162$ $LK,"ICFModEqu",A="FL:::/Compiler/BackFA.CPP.Z,585",BI=163$ $LK,"CmpF1PushPop",A="FL:::/Compiler/OptLib.CPP.Z,529",BI=164$ $LK,"OptFree",A="FL:::/Compiler/OptLib.CPP.Z,33",BI=165$ @@ -225,7 +225,7 @@ $LK,"OptIC6",A="FL:::/Compiler/OptPass6.CPP.Z,1",BI=177$ $LK,"ICCmpAndBranch",A="FL:::/Compiler/BackB.CPP.Z,556",BI=178$ $LK,"ICDivEqu",A="FL:::/Compiler/BackA.CPP.Z,452",BI=179$ $LK,"PrsWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,483",BI=180$ -$LK,"ICFCmpAndBranch",A="FL:::/Compiler/BackFB.CPP.Z,306",BI=181$ +$LK,"ICFCmpAndBranch",A="FL:::/Compiler/BackFB.CPP.Z,309",BI=181$ $LK,"Lex",A="FL:::/Compiler/Lex.CPP.Z,442",BI=182$ $LK,"ICTestAndBranch",A="FL:::/Compiler/BackB.CPP.Z,736",BI=183$ $LK,"uasm",A="FL:::/Compiler/Compiler.PRJ.Z,21"$ @@ -253,34 +253,34 @@ $LK,"MemberFind",A="FL:::/Compiler/LexLib.CPP.Z,67",BI=196$ $LK,"cmp",A="FL:::/Compiler/Compiler.PRJ.Z,16"$ $LK,"OptLag",A="FL:::/Compiler/OptLib.CPP.Z,40",BI=197$ $LK,"ICPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,434",BI=198$ -$LK,"ICFPostIncDec",A="FL:::/Compiler/BackFB.CPP.Z,677",BI=199$ +$LK,"ICFPostIncDec",A="FL:::/Compiler/BackFB.CPP.Z,680",BI=199$ $LK,"ICTest",A="FL:::/Compiler/BackLib.CPP.Z,403",BI=200$ -$LK,"ICModU64",A="FL:::/Compiler/BackC.CPP.Z,588",BI=201$ +$LK,"ICModU64",A="FL:::/Compiler/BackC.CPP.Z,589",BI=201$ $LK,"ICLastIns",A="FL:::/Compiler/BackLib.CPP.Z,59",BI=202$ $LK,"PrsAsmImm",A="FL:::/Compiler/Asm.CPP.Z,1",BI=203$ $LK,"LexExtStr",A="FL:::/Compiler/LexLib.CPP.Z,218",BI=204$ $LK,"ICAddSubEctEqu",A="FL:::/Compiler/BackA.CPP.Z,545",BI=205$ $LK,"ICAddSubEctImm",A="FL:::/Compiler/BackA.CPP.Z,57",BI=206$ $LK,"ICPush",A="FL:::/Compiler/BackLib.CPP.Z,303",BI=207$ -$LK,"ICSwap",A="FL:::/Compiler/BackC.CPP.Z,632",BI=208$ +$LK,"ICSwap",A="FL:::/Compiler/BackC.CPP.Z,633",BI=208$ $LK,"CMP_TEMPLATES_DONT_PUSH",A="FL:::/Compiler/Templates.CPP.Z,267"$ $LK,"intermediate_code_table",A="FL:::/Compiler/CInit.CPP.Z,16"$ $LK,"ICZero",A="FL:::/Compiler/BackLib.CPP.Z,394",BI=209$ $LK,"CmpCtrlDel",A="FL:::/Compiler/Lex.CPP.Z,58",BI=210$ $LK,"ICClassPut",A="FL:::/Compiler/CExcept.CPP.Z,117",BI=211$ $LK,"ICAssign",A="FL:::/Compiler/BackC.CPP.Z,159",BI=212$ -$LK,"ICFTemplateFun",A="FL:::/Compiler/BackFB.CPP.Z,701",BI=213$ +$LK,"ICFTemplateFun",A="FL:::/Compiler/BackFB.CPP.Z,704",BI=213$ $LK,"MemberAdd",A="FL:::/Compiler/LexLib.CPP.Z,103",BI=214$ $LK,"PrsPush",A="FL:::/Compiler/PrsLib.CPP.Z,1",BI=215$ $LK,"SLASH_OP_FDIVR",A="FL:::/Compiler/BackLib.CPP.Z,269"$ $LK,"SLASH_OP_FISTTP",A="FL:::/Compiler/BackLib.CPP.Z,272"$ $LK,"CmpCtrlSize",A="FL:::/Compiler/Lex.CPP.Z,70",BI=216$ -$LK,"ICLocalVarInit",A="FL:::/Compiler/BackC.CPP.Z,923",BI=217$ +$LK,"ICLocalVarInit",A="FL:::/Compiler/BackC.CPP.Z,924",BI=217$ $LK,"PrsFor",A="FL:::/Compiler/PrsStmt.CPP.Z,526",BI=218$ $LK,"PassTrace",A="FL:::/Compiler/CMisc.CPP.Z,11",BI=219$ $LK,"PrsPopDeref",A="FL:::/Compiler/PrsLib.CPP.Z,21",BI=220$ $LK,"ICCopyTemplate",A="FL:::/Compiler/BackFA.CPP.Z,75",BI=221$ -$LK,"PrsStmt",A="FL:::/Compiler/PrsStmt.CPP.Z,893",BI=222$ +$LK,"PrsStmt",A="FL:::/Compiler/PrsStmt.CPP.Z,900",BI=222$ $LK,"PrsFun",A="FL:::/Compiler/PrsStmt.CPP.Z,132",BI=223$ $LK,"LexIncludeStr",A="FL:::/Compiler/Lex.CPP.Z,298",BI=224$ $LK,"PrsType",A="FL:::/Compiler/PrsVar.CPP.Z,287",BI=225$ @@ -289,7 +289,7 @@ $LK,"cmp_type_flags_src_code",A="FL:::/Compiler/Lex.CPP.Z,327"$ $LK,"PrsVarInit2",A="FL:::/Compiler/PrsVar.CPP.Z,123",BI=227$ $LK,"PrsPop",A="FL:::/Compiler/PrsLib.CPP.Z,6",BI=228$ $LK,"asm_seg_prefixes",A="FL:::/Compiler/Asm.CPP.Z,388"$ -$LK,"ICMinMax",A="FL:::/Compiler/BackC.CPP.Z,509",BI=229$ +$LK,"ICMinMax",A="FL:::/Compiler/BackC.CPP.Z,510",BI=229$ $LK,"CmpLoadDefines",A="FL:::/Compiler/CInit.CPP.Z,205",BI=230$ $LK,"PrsIf",A="FL:::/Compiler/PrsStmt.CPP.Z,456",BI=231$ $LK,"ICBuiltInFloatConst",A="FL:::/Compiler/BackLib.CPP.Z,413",BI=232$ @@ -307,12 +307,12 @@ $LK,"PE_CHECK_BINARY_OPS1",A="FL:::/Compiler/PrsExp.CPP.Z,6"$ $LK,"PE_CHECK_BINARY_OPS2",A="FL:::/Compiler/PrsExp.CPP.Z,7"$ $LK,"LexBackupLastChar",A="FL:::/Compiler/LexLib.CPP.Z,1",BI=242$ $LK,"Trace",A="FL:::/Compiler/CMisc.CPP.Z,19",BI=243$ -$LK,"ICBrBitOps",A="FL:::/Compiler/BackC.CPP.Z,211",BI=244$ +$LK,"ICBrBitOps",A="FL:::/Compiler/BackC.CPP.Z,212",BI=244$ $LK,"LexGetChar",A="FL:::/Compiler/Lex.CPP.Z,107",BI=245$ $LK,"LexSkipEol",A="FL:::/Compiler/Lex.CPP.Z,269",BI=246$ $LK,"ICFlagBranch",A="FL:::/Compiler/BackB.CPP.Z,785",BI=247$ $LK,"SLASH_OP_FSUBR",A="FL:::/Compiler/BackLib.CPP.Z,266"$ -$LK,"ICFPreIncDec",A="FL:::/Compiler/BackFB.CPP.Z,657",BI=248$ +$LK,"ICFPreIncDec",A="FL:::/Compiler/BackFB.CPP.Z,660",BI=248$ $LK,"ExeFile",A="FL:::/Compiler/CMain.CPP.Z,616",BI=249$ $LK,"COCMiscNew",A="FL:::/Compiler/PrsLib.CPP.Z,143",BI=250$ $LK,"cmp_templates_dont_pop",A="FL:::/Compiler/CExts.CPP.Z,43"$ @@ -323,120 +323,106 @@ $LK,"COCGoToLabelFind",A="FL:::/Compiler/PrsLib.CPP.Z,152",BI=254$ $LK,"OptMVCompare",A="FL:::/Compiler/OptLib.CPP.Z,556",BI=255$ $LK,"ICToBool",A="FL:::/Compiler/BackB.CPP.Z,378",BI=256$ $LK,"PrsFunJoin",A="FL:::/Compiler/PrsStmt.CPP.Z,68",BI=257$ -$LK,"PrsNoUnusedWarn",A="FL:::/Compiler/PrsStmt.CPP.Z,780",BI=258$ +$LK,"PrsNoUnusedWarn",A="FL:::/Compiler/PrsStmt.CPP.Z,787",BI=258$ $LK,"OptFixSizeOf",A="FL:::/Compiler/OptLib.CPP.Z,485",BI=259$ $LK,"cmp_templates_dont_push",A="FL:::/Compiler/CExts.CPP.Z,45"$ $LK,"cmp_templates_dont_push_pop",A="FL:::/Compiler/CExts.CPP.Z,46"$ $LK,"LexAttachDoc",A="FL:::/Compiler/Lex.CPP.Z,330",BI=260$ -$LK,"PrsStreamBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,794",BI=261$ +$LK,"PrsStreamBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,801",BI=261$ $LK,"cmp_templates_dont_push2",A="FL:::/Compiler/CExts.CPP.Z,44"$ $LK,"InstEntryFind",A="FL:::/Compiler/UAsm.CPP.Z,66",BI=262$ $LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.CPP.Z,381",BI=263$ $LK,"ICMulEqu",A="FL:::/Compiler/BackA.CPP.Z,344",BI=264$ $LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.CPP.Z,1",BI=265$ -H2@÷#÷#$$!$&$Q$S$†$p$–$�$®$Á$¨+kk$k,k7kCkNkmkPkykkk¦k³kÞk÷k÷k!lCl[lHlgl�lzl¡l®lÙlÙlàlþlmmmmH<Jæõæõö -ööööö5öQöQö[ö|ªÅþùþù(ú*ú1ú7ú=ú?úEúKúRú_úlúú�úœú¡ú£ú¨ú²úÂúÕúåúûû8àààà à(à/à1à6àd`µöÓöÓÔÔ%Ô'Ô4Ô6ÔBÔBÔOÔQÔ^Ô`ÔlÔlÔ‚Ô‹Ô‹Ô–Ô�Ô¬Ô·Ô½ÔÂÔÄÔÐÔ×ÔæÔñÔ÷ÔüÔþÔ -Õ:Õ`ÕpÕ€Õ�Õ’Õ¢Õ²ÕÂÕÂÕÇÕáÕèÕïÕïÕïÕïÕöÕ ÖÖÖ$Ö*Ö.Ö.Ö.Ö[ÖbÖxÖ„ÖŠÖ�Ö–Ö˜Ö˜Ö¦ÖD¶Ã¦Ö¦Ö¼Ö¿ÖÂÖÏÖÕÖâÖåÖèÖîÖðÖúÖ,cj°‡°‡¾‡È‡Ó‡Þ‡ä‡ê‡ jnÞÞì -P o6o6}6Œ6¤6ª6¼6¼6Ç6Ð6Ö6Ý6ã6 œ;^þEþEF -F#F6FIFfF‡F�F¡FÈFßFßFGGG&G-G_GlGpGxGxG‹G›GŸG£G Œ×öNNnvzˆŽ””Á×ëù"'5T]movv||Œ |1W#W#m#v#�#š#š#�#¬#²#»#½#Ã#Ì#Î#Ô#Þ#å#è#è#ò#0 'ø…ø…†&†,†2†2†8†„•²H�H�\�c�j�n�’�¥�¬�½�â�í�ø�ú�ž*ž5ž@žBžIžRžTž_žfž�ž("–ܖܥܸÜÐÜÐÜÖÜ >Ü>ÜMÜ`Üf܃˜¯˜¯½¯Ä¯Û¯ç¯ò¯°°°°5°P°\°c°i°u°°†°�°‘°“°™°¥°¯°¶°½°Á°Á°Ë°Ð°Û°í°þ°ï°í°±?±K±R±X±d±n±u±|±€±‚±ˆ±”±ž±¥±¬±°±°±½±Ë±Û±í±þ±ï±í±²?²K²R²X²d²n²u²|²€²‚²ˆ²”²ž²¥²¬²°²°²º²Ê²Ü²í²Þ²Ü² ³³³&³0³7³>³B³D³J³V³`³g³n³r³r³|³Š³“³¬³¸³¼³¼³¿³È³>´ì–{–{³{Q¡»{Í{é{ô{| ||&|.|1|?|k|k|€|‚|‚|Ž|–|š|§|§|³|»|¿|Ì|Ì|Ì|è|ó|}} }!}0}5};}F}K}K}P}h}w}|}‚}�}’}’} }©}µ}½}Å}Í}Ð}Ö}Û}ä}ö}ÿ}~ ~ ~%~-~5~8~>~>~C~C~C~I~L~S~^~s~˜~¯~¼~Ä~Ì~Ø~ä~ê~ñ~ú~þ~   -==JJRZcrww~‰�—�¨­­¼ÇÙßçíòý€€€#€(€(€<€B€M€S€U€e€k€k€�€´€¹€¹€Í€Ó€é€ú€���$�4�<�D�J�O�O�c�i����–�›�´�º�Ê�Ò�Ú�à�å�å�û�‚‚(‚.‚3‚B‚H‚Y‚a‚i‚o‚v‚{‚{‚‘‚—‚­‚¾‚ĂƂՂۂå‚í‚õ‚û‚ƒƒƒƒƒ.ƒ>ƒ>ƒCƒCƒQƒYƒjƒ}ƒ„ƒŠƒ’ƒ˜ƒ¨ƒ®ƒ¶ƒ¼ƒ¼ƒ¼ƒÁƒÁƒÁƒÁƒÁƒàƒìƒñƒñƒ„„„$„/„:„?„?„U„[„q„‚„ˆ„�„Ÿ„¥„ª„Äá„á„æ„æ„ò„ú„ý„… ………2…:…B…R…X…^…^…o…�…�…’…’…ž…¦…©…°…¶…»…»…Û…ã…ó…ù…††-†5†M†U†X†_†e†}†…†�†¥†¨†¯†µ†µ†µ†Ô†ä†ð†ø†û†‡‡‡'‡3‡N‡V‡Y‡`‡f‡~‡Ї¥‡­‡°‡·‡½‡½‡½‡½‡‡‡ˇÛ‡ñ‡÷‡ˆ"ˆ(ˆ-ˆ?ˆEˆJˆfˆlˆxˆ€ˆƒˆŠˆ�ˆ¹ˆÁˆш׈ÞˆÞˆÞˆãˆãˆìˆ‰‰ ‰8‰K‰Q‰V‰�‰‡‰š‰щã‰ÿ‰Š ŠŠŠ,Š8ŠDŠOŠOŠTŠTŠnŠzІББЖЖамŠÈŠÓŠÓŠØŠØŠîŠôŠ‹‹ ‹‹#‹(‹7‹C‹O‹U‹[‹b‹u‹€‹‰‹•‹�‹ ‹¦‹¬‹±‹Å‹Ô‹Ü‹ô‹ü‹ÿ‹Œ Œ#Œ+ŒKŒeŒmŒpŒvŒ|Œ|Œ�Œ–Œ¢ŒªŒ­Œ´ŒºŒ¿ŒÑŒàŒèŒ�� ���0�8�W�q�y�|�ƒ�‰�‰�™�¢�®�¶�¹�¿�Å�Ê�Þ�í�õ�ŽŽŽ Ž&Ž>ŽFŽhŽ„ŽŒŽ�ޕޛޛެ޵ŽÁŽÉŽÌŽÓŽÙŽÞŽðŽÿŽ�"�*�-�4�:�R�Z�|�™�¡�¤�«�±�±�±�±�±�¶�¶�Ì�Ò�Þ�ä�é�û���� �)�5�=�@�G�M�R�d�s�{�“�›�ž�¥�«�Ã�Ë�ê�‘ ‘‘‘‘‘‘-‘6‘B‘J‘M‘T‘Z‘_‘q‘€‘Œ‘§‘¯‘²‘¹‘¿‘בã‘’"’*’-’4’:’:’:’:’:’?’?’R’m’s’~’ƒ’ƒ’–’¬’²’½’¿’¿’Ò’õ’û’“““!“2“7“I“Y“Y“^“^“q“‡“�“›“ª“¯“¯““ؓޓì“û“””””9”Q”Q”{”�”†”’”›”ª”ª”¯”¯”Ŕ˔蔕•*•0•5•A•J•Y•Y•^•^•t•z•—•¯•¯•Ù•ß•ä•ð•ù•–– – –#–)–F–^–^–ˆ–Ž–�–œ–¥–°–°–°–°–µ–ÖÌ–Ý–ß–ñ–þ–þ–þ–——#—G—S—T—Y—n—‹—›—¿—Ï—Õ—Õ—Õ—Ú—ß—ô—˜E˜U˜[˜]˜b˜s˜‚˜´˜¼˜˜ĘɘИИÙ˜ë˜þ˜™™™™ ™/™8™C™E™N™Y™Y™z™�™‡™�™š™ ™°™¶™¾™É™Ï™Ï™Ô™Ù™à™ç™î™õ™þ™ š š šššš$š)š)š;šFšNšVš\š\š\šašašlš}š€šŒš•š¡š¨š®š³š³š¾šÏšÒšÞšçšóšúš››››› -››››››&›/›2›2›=›?›Q›X›^›m›x›ƒ›‰›’›–›–›¢›«›®›®›¹›»›Í›Ô›Ú›â›í›ø›þ›œ œœœœœ!œ#œ.œ2œ;œ>œ>œIœKœcœjœuœ€œƒœ‰œŽœŽœ•œ™œ™œ¥œ®œ±œ±œ¼œ¾œМלÝœìœ÷œ�����!�*�-�-�8�:�L�S�Y�a�l�w�}�‡�Š�Ž�Ž�–��� �¢�­�±�º�½�½�È�Ê�â�é�ô�ÿ�žž ž ž ž#ž#ž/ž8ž;ž;žFžHžZžažgžyž„ž�ž•žšžšž¥žªžªžµžºžºžÅžÈžÌžÓžØžÝžâžâžöžûžûžŸ ŸŸ%Ÿ)Ÿ=ŸDŸHŸHŸUŸaŸiŸoŸŸƒŸ”Ÿ¦Ÿ±ŸµŸµŸŸÊŸÒŸØŸØŸØŸØŸØŸÚŸÚŸèŸïŸüŸ                                                                                                             / 7 C C d r Š Œ ˜ ¥ ¥ È Õ à é ò ý ¡¡¡¡¡#¡A¡M¡M¡|£x¿Ù_4_4q4s4w4€4Œ4˜4­4­4Ù4Ý4â4î45 5555$5.5°›ÃŽŒŽŒ¤Œ«Œ¼ŒÁŒÖŒÃŒâŒèŒèŒôŒ �ùŒ���+�0�E�2�Q�T�T�`�u�b���‡�‡�š�­�À�Ó�æ�ð�„ž.x.xLx^xdxkxrxtxwx~x…x…x¡x¥x«x«xÃx×xèxèxðxy4yUyZy{y€yŒy—yœy©y¬yãyôyùyÿyzz -zz z#z+z4zOzoz†z™zžz¢zÄz×zÜzóz{ {{1{L{l{{„{•{š{�{Ÿ{¥{«{¼{Á{Ç{Ï{Ï{Ù{â{ù{ |||7|R|r|…|Š|¥|Å|Ü|ï|ô|ø|}-}-}H}H}H}V}n}p}p}p}~}–}˜}˜}¦}¾}¾}Ð}Ð}Ù}æ}ü}~6~=~G~Z~^~^~^~e~k~…~Œ~–~®~°~¶~Ð~×~á~ï~ú~ú~H‰—PƒPƒgƒ}ƒ�ƒ”ƒ«ƒÆƒØƒÜƒ „Líü^�^�r�~�”�€� �¢�µ�È�Ó�Þ�æ�4IR~Ó~Ó‡Ó‡ÓŠÓ˜Ó¦Ó©Ó®Óä;ÖóÖóþóô ô6ôGôGôbôhômômôˆôŽô“ô“ôœôªô¶ô½ôÃôÈô õõõ"õ$õ$õ7õ=õ=õ=õMõBõ^õmõõ„õ„õ„õ‹õ’õ™õ®õµõÑõÑõãõÐL¼¢¢¢%¢0¢9¢A¢D¢K¢O¢X¢i¢m¢s¢�¢ž¢«¢º¢¿¢Ë¢Ð¢×¢ã¢è¢ë¢õ¢í¢££ £££-£6£<£<£J£M£a£j£s£z£~£ƒ£š£²£»£É£å£ñ£ñ£ ¤¤¤!¤=¤I¤Q¤d¤k¤¤ˆ¤�¤“¤ž¤£¤ª¤Ç¤ô¤û¤ÿ¤¥ ¥¥¥1¥3¥D¥N¥Y¥c¥r¥�¥�¥�¥ ¥¨¥­¥/¦Xs…vHvH“H¤H±H»HÒHïH III*I0I3I?IŒ à_à_ð_`` ` ` ` `(`(`/`I`Z`b`b`m`m`{`‹`‹`™`Ÿ`Ÿ`·`·`½`ã`(kqð‡ð‡þ‡ -ˆˆ!ˆ'ˆ @Ua®æ®æ¼æÄæËæêæ÷æ÷æúæüæç $/4.Ý.Ý;ÝIÝNÝTÝ!$).ÝÝÝ!Ý&Ý,Ý"$#(ÖÜÖÜåÜôÜùÜÿÜ#4ðy__k{‘™£»ÀÐæîø  % 5 K S ] u � ‰ “ £ ¨ ¾ È Ò Ü æ ð ú    " , 6 @ V ` j t ~ ˆ ’ œ ¦ ¼ Æ Ð æ ð ú !!!"!,!6!@!J!T!^!h!r!|!†!�!š!¤!®!¸!Â!Ì!Ö!à!ê!ô!þ!""""$¨DH™H™^™e™l™z™‹™�™Ÿ™¦™¬™¼™Ç™Ñ™Ü™ó™ö™ø™ -šš š*š4š;šFš[šcšcšyšyšyš�š%$5:VÝVÝdÝsÝxÝ~Ý&¨Ek�š�š¦š­š´šÂšÓšåšçšîšôš›››$›;›>›@›R›Y›i›s›}›„›�›£›«›«›Á›Á›Á›Ö›'(&,0000&0,020(0_g¦G¦G¼GÏGÞGäGçGïG)  ßž ž À È Î Û â þ       ( / ; F L V ] n n y ƒ ƒ • › « ± ¶ ½ ½ Þ ä ó ! !!!!!!#!%!%!%!6!@!E!E!Z!d!d!x!�!‡!�!£!¨!¯!Â!Æ!Æ!Î!Ô!Ú!ä!ë!ò!û! " "2"6"<"B"Q"d"j"n"t"z"€"€"‚"†"Œ"’"˜"�"�"�"�"È"Ù"Ù"ð"ý"# ##>#>#D#G#K#Q#Q#c#t#‰#�#¥#¶#º#Ë#Ï#Õ#î#ð#ö#$$$/$5$@$c$n$t$z$€$‰$�$¤$²$º$¾$Ï$Ó$Ù$ò$ô$ú$% %%3%9%?%E%N%T%q%d%‹%”%š%š%¯%´%´%»%Â%Ô%Ù%Ù%Ù%ó%õ%&&+&1&9&=&D&g&m&s&&–&�&£&®&³&³&º&¾&Å&Ó&Õ&Ý&â&ê&õ&û&' ''' '$'3'N'^'k'z'–'˜'´'´'»'Ð'Õ'Þ'ë'ð'ö'û'û'(( (((%()(-(7(C(J(N(V(^(f(u(ƒ(ˆ(”(”(œ(œ(¿(¿(Í(Ó(Ø(Ü(á(á(á(á(ç(é(é( ))) )5)7)7)7)B)B)B)G)p**4+tFÅFÅ`ÅdÅ|ńŌŖŚšŧŻÅÃÅÈÅËÅÖÅáÅéÅôÅÿÅÆÆÆ%Æ0Æ;Æ=ÆHÆSÆUÆaÆjÆjƀƊơƧƭƾÆÄÆÍÆßÆåÆåÆíÆñÆüÆÇÇÇ"Ç0Ç2Ç6ÇEÇEÇEÇVÇVÇ[ÇmÇsÇáÇ+Ô@6á6áLáSáVázázá—áªá½áÐáÕáÕáóáââ'â/â/â1â1â1âDâFâFâFâMâ`âsâsâsâ†â‘â¤âºâ¿âÃâÊâßâòâùâùâüâ!ã,LAPÇ$Ç$Õ$æ$ò$ %%2%4%O%j%j%r%y% %-P~Žxˆxˆ†ˆ“ˆ¡ˆ³ˆ¾ˆÌˆÙˆçˆùˆ‰‰‰‰.4 -66%616B6T6]6g6m6/|¼Wîî&1WW`bbi�——¦µÑÜÜèïÿ#.0IOZj|…�•›¢ÇÌÚããêù %9@GLW]e‹”› «·ÆÚßçó   # + ; M S \ \ k q … Ž ž ­ ¿ È Ø ë ó  -( -? -C -O -f -‚ -” -š -¥ -± -Á -Ñ -Ö -ß -ß -ñ -õ -  4 F L W c s ƒ • › ›   ¢ ¢ § § ¶ ¼   Æ ?0�ÄäþÖþÖ×&×*×.×5×<×K×V×\×a×c×o×v×~ׄ׊׎׎×�×¤×¬×²×¸×º×º×Æ×18 ?/?/M/S/_/j/{/…/Œ/’/2@}‰öçöçèèè5èBèBèEèGèMè3ðh 66\ow~…‹�”›žž°°ÃÎê#+0AWgy~˜°´´¹åú>FOW\m�¡£½ÕÙÙõ%.6;Lbr„‰£»¿ÒÒÒê× -÷#)AY^s�·¿ÈÐÕæø6NRRn–ž§¯´ÅÛëý48KKKPp�œ¢ºÒÒÒÞäïú 3JaxxŒ¨¨¨ÉÙççðû $ 3 : J L R i x q Ž Ÿ º º Ó 4D}ŠffvŠ“™««¯²º5\Ob‡‡(‡7‡@‡I‡M‡Q‡]‡b‡g‡g‡x‡|‡ƒ‡›‡ž‡ª‡60ýÞßÞßçßìßõßüßþßà7Ð1>>\cju}––ªÃÃÎÒÝä'5KOTfŽ¥ª²¶»âøüü I(Urr‘œ¢¸ÉÎà $,02Yos�·¿ÄÈÍÞô4EI[[[[`|¼›Èåðö ">fnsw|�Ÿ­ÁÃÜíññ+BGOSU|’–££££¶¼ÆÍà÷÷#11GWe|�”š°¿¸Ôäëù<eeer«°»ÁÌëò$2J`dt“¿¯Ëè.?DZpt�¸ÀÅÉÎßõ5FJ\\\\a}œË»×ôÿ,1Mu}‚†‹œ®¼ÐÒëü 5KO\\\ou†™°°°ÌÜêê%9LQWm|u‘¡¯ÌÌèèõ58Do|2;ASSWZb9°Äìö�ö� ŽŽ$Ž)Ž>Ž+ŽJŽPŽPŽ\ŽtŽaŽ€ŽƒŽ…Ž“Ž˜Ž­ŽšŽ¹Ž¼Ž¼ŽÈŽÝŽÊŽéŽïŽïŽ��(�;�N�X�:<‹–¾¾Îßèîòý;”)æéæéîéòéþéêê!ê,ê>êIêTêcêtê{ê”ê˜ê¥ê¥ê¯ê¶êÉêÒêàêôêëë2ë<d(=8†8†D†X†[†o†w†{†…†�†—†š† †=$t¹ÀEÀEäEçEëEøEF FF F*FRFRF^F`F`FlFqFqF}F‚F‚FŽF“F“FŸF¤F¤F°FµFµFÁFÆFÆFÒF×F×F×FÚFÚFóFGG%G%G'G'G3G9G>G>GDGPGPG[GgGtG‰G‘G—G—G¨G¨G±G´GH>è w~£~£›£££¦£´££×£à£ø£¤ ¤+¤<¤@¤R¤U¤`¤i¤u¤ˆ¤¹¤®¤”¤ɤݤî¤ú¤¥&¥8¥\¥m¥o¥�¥v¥«¥«¥®¥³¥¶¥¶¥½¥Ô¥Û¥è¥í¥ü¥ ¦¦¦0¦4¦a¦a¦y¦~¦~¦ަ–¦¦¦°¦À¦ʦÚ¦æ¦ë¦ë¦û¦§§§-§7§G§S§X§X§X§z§ˆ§’§—§¤§¹§¹§¾§ȧ×§ܧâ§ç§ç§ì§ö§¨ -¨¨¨¨¨!¨&¨&¨5¨H¨T¨a¨m¨€¨ˆ¨ލ—¨®¨¨Ó¨à¨å¨ý¨©'©4©<©O©W©]©f©o©o©t©t©t©t©t©€©€©€©‰©¢©·©¿©Ú©ë©ø©ú©ªªªªª,ª1ª1ª8ªFªKªcªoª�ª�ª“ª¢ª¦ª¯ª¸ªÕªáªçªíª«««=«N«[«]«k«k«p«p«w«…«Š«�«©«µ«»«¿«È«Í«Í«Í«Í«Í«å«ê«ê«ê«ê«ê«û«û«û«û«û«û«û«û«û«û«¬¬2¬:¬U¬f¬s¬u¬‰¬•¬š¬š¬š¬£¬½¬ɬάð¬ü¬ü¬­­­­­­­­­­­­,­7­<­<­G­Y­q­ƒ­¤­Ä­Ï­à­å­å­å­î­®®*®.®F®V®^®f®q®›®¤®¨®À®ЮЮЮЮЮò®+¯4¯8¯>¯C¯L¯U¯Z¯Z¯Z¯Z¯i¯}¯›¯¦¯«¯±¯¶¯¶¯ɯݯ°°°°°!°!°0°D°b°m°r°x°}°}°�°¤°ʰÕ°ݰã°ã°è°è°è°ñ° -± ±'±B±S±`±b±q±s±s±s±s±s±‡±‡±‡±‡±‡±‡±‡±‡±‡±‡±‡±‡±‡±‡±‡±‡±–±¥±°±²±²±»±½±½±ѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱѱÓ±Ó±ê±ò±þ±þ±²²²2²G²V²b²x²’²•²Ÿ²«²Ѳñ²³5³7³J³x³P³“³“³–³¦³®³ɳÚ³ݳ÷³´´)´)´T´W´f´z´›´¬´È´´´ä´ö´µGµEµ:µ/µ µUµUµUµXµ]µ`µzµˆµ¶µصص¶¶¶)¶J¶[¶w¶c¶“¶“¶±¶ä¶â¶×¶̶½¶ò¶ò¶ò¶õ¶ú¶ú¶··2·>·“º?°«ÓfÀfÀ|À€À‹À’À�À±À±À¼ÀÍÀÔÀáÀíÀúÀÁÁÁÁ!Á)Á9ÁGÁVÁaÁtÁtÁ‡Á‡Á�ÁÉÁÉÁÝÁßÁßÁéÁñÁñÁûÁ Â&Â+Â+Â/Â7Â;ÂAÂFÂFÂRÂgÂwÂ�”™¡¡¦¦­¹ÂÎÂÞÂèÂðÂö ÃÃÃÃÃ!Ã(Ã3Ã[ÃfÃuÃÇÃ�ßåêêêêêêêêêõÃÁÃÎÃÞÃäÃìÃÿÃÄ ÄÄÄÄÄÄ&Ä.Ä7Ä?ÄDÄLÄQÄXÄcċĖĞĭķÄÉÄÎÄÔÄÙÄÙÄàÄòÄúÄ ÅÅÅ2Å4Å?ÅGÅ\Å\ÅdÅxŀŇÅ�őŕŤũŵÅËÅ×ÅßÅôÅÆÆÆÆ!Æ!Æ!ÆBÆ\ÆaÆiÆxƀƈÆ�ƢƭƵÆÊÆÏÆÏÆÛÆñÆýÆÇÇ&Ç+Ç7ÇBÇGÇGÇGÇGÇGÇGÇRÇRÇRÇRÇRÇRÇRÇRÇRÇRÇRÇRÇ]Ç}ǚǪǰǸÇËÇÐÇØÇàÇâÇêÇýÇÈ ÈÈÈ5È=ÈFÈNÈVÈ[È`ÈgÈrÈšÈ¥È­È¼ÈÆÈßÈäÈìÈñÈñÈñÈúÈÉÉÉÉ0É2ÉDÉVÉVÉVÉaÉfɃɈɈɑɖɖɖɖɖɖɖɖɖɖɖɖɖɖɖɖɡɭɹÉÙÉìÉôÉÊÊ!Ê(Ê5Ê=ÊFÊNÊUÊZÊZÊbÊjʆʎʑʓʣʭʭʭʯÊÂÊÓÊÖÊÙÊáÊæÊæÊïÊôÊüÊËË)Ë0Ë5ËMËWËrˋ˓ˠ˹ËÀËÀËÅËÅËÅËÅËÅËÅËÅËÍËØËãËòË÷Ë÷ËÿËÌÌÌÌÌÌ"Ì"Ì2Ì7Ì7Ì7ÌCÌJÌPÌ`ÌqÌ�̠̦̮ÌÃÌÊÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÒÌÔÌÔÌïÌùÌÍÍ ÍÍÍ:ÍGÍGÍGÍKÍVÍtÍ‚ÍzÏ@ü|~Ï~ϔϟϦϱϼÏÓÏÞÏåÏõÏÐÐÐ.ÐHÐOÐXÐ_ÐbÐnÐwÐ~Ð�ІМЦиоÐÊÐßÐæÐîÐúÐÑÑÑÑ$Ñ2Ñ<Ñ?ÑMÑWÑZÑlÑqÑvцщюўѡѥѮѶÑÈÑÐÑÐÑÐÑæÑðÑÒÒÒ)Ò0Ò8ÒJÒPÒ_ÒpÒpÒwÒwÒwÒ…Ò“Ò�Ò Ò®Ò¸Ò»ÒÍÒÒÒ×ÒçÒêÒïÒÿÒÓÓÓÓ)Ó1Ó1Ó=ÓJÓRÓRÓUÓ`Ó~ÓŒÓÕÓAhoÅ6Ø6ØPØcØjØqØ|Ø�ؒ؛آإصØÃØÎØÙØÜØòØþØÙÙ)Ù4Ù?ÙJÙaÙmلٌٕÙ�ÙªÙÅÙÈÙÎÙÓÙæÙìÙôÙÚ ÚÚÚ#Ú5ÚBÚUÚ[ÚcÚvÚ|Ú„Ú„Ú­Ú²ÚÑÚÔÚÔÚÛÚèÚìÚ÷ÚÛÛ-ÛMÛiÛ}Û…Û�Û®ÛÂÛÂÛ8ÜB >+>+H+P+U+CÉÇnSnS‹S–S©S–SÃSÑSÑSáSêSñSõSþSþST -T(T4T@TFTQTsTsT†T‘T—TžT£T£T¶TÁTÌTÓTÛTèTèTúTÿTÿTUUUU'U,U?UEULUaUuUuUzUzUŠU�U�U”U›U£UªU¬U´U»U»UÊUÐUÝUäUçU V VV V+V2V4VHVWV\VaVaVaVtVyVˆV�V–V«V¿V¿VÄVÄVÌVâVçVûVWWWW"W4WCWVWZWiWwW…W”W±W¼WÁWÐWäWëWòWXXX"X$X2X?XOXVXkXrX~X�X¦X¨X´X¿XÁXÁXÌXàXíXõX÷X YY$Y4Y@YaYhYtY’Y’Y’YšY¥Y©Y±YµY½YÄYÔYßYùYþYZZZ!Z&Z&Z5ZBZPZ[ZfZtZzZ€Z†Z�Z•Z¤Z±Z¹ZÅZÓZêZìZõZ[[[,[2[8[>[G[X[[‡[‘[ž[¶[½[É[Ø[í[í[ú[ÿ[\\\\\Ó\DD�šŒŒ2Œ>ŒTŒ@Œ`ŒbŒtŒ†ŒŽŒEìˆÿöYöYZ"ZUZdZzZžZ£Z§Z¯Z¸ZÇZÎZ×ZÜZñZ[![)[+[J[R[a[h[t[y[€[ˆ[Ž[�[¬[±[Ç[³[Ó[Ù[Ù[á[ê[ù[\ \!\@\G\G\G\[\o\s\�\”\Œ\¬\±\¼\Ã\Ë\Ñ\Ó\ï\ô\ -]ö\]]]8]=]V]B]b]h]m]‰]Ž]¤]�]°]¶]½]Å]Ë]Í]é]î]^ð]^^^^^'^'^1^1^I^y^�^‘^Ÿ^²^ª^Ê^Ê^Ü^FüE€¾Ý¾ÝÝÝùÝþÝ Þ=ÞLÞjÞ~Þ–Þ�Þ¢ÞÃÞáÞðÞ ßß5ß9ß9ß=ßBßGßQßTß^ßdß�߄߄߄߉ß�߫߹ßÅßÎßâßêßóßàà&à/àCàCàRàWàWàeàGl¬ÃvDvD„DžD‹D½DªDÉDÞDËDýDêD EE E*E,E7EBEBEaEgEHP‡—óó*ó7óFóRóXó‚ó˜ó„ó¯ó¤óÇóÏóIŒg†¦ñ¦ñØñûñûñòò1òEòJòJòWò_ògò|òˆò™òžò¯òÃòÈòÊòÊòÊòãòûòûòóJP�­6767_7a7o7u7“7¢7±7À7Î7Ù7Ü7ì7Kì8>0>0h0k0n0t0y0�0§0¾0Ð0ö01 191P1b1o1‚1•1š1¢1¬1´1´1»1Ä1Ä1Ï1÷12202I2K2e2k2„2�2¥2°2°2º2º2Ì2 -3 313L$ty†d†d±dšd»dÃdMLu„æÇæÇøÇ ÈÈ/È6È>ÈNÈVÈgÈmÈŸÈNTHY�b�b¢b¤b­b¶bÄbÉbÒbÕbÚbèbòbõbÿbO¨!Gè`è`ø`aa!a-a9aEaQahahawa‚a‹a’a›a²aÅaÊaÜaëa÷a b bb2b2b4bGbIbcbobrb‰bPxîˆ0m0mImTmdm­m´mÈmÏm×mßmèmðmømúmn -nnn7nOnXnXn�n·nÀnânünoCoOoqosozo�o�o¤o½oäoýo$p=pdp}p¤p½päpýp$q$q3q@qEqEqTqaqfqfqmqxqŠq£q¼qÕq×q×q×qÞqÞqëqðqðqðqrr"r7rqrxrxrxr€r�r«rÉrÒrÛrèrörs,s,s,s?sMsis‡s‡s‡s’s•sÂsÄsÛsásòsûsýs -t ttt(t(tLtNtUtftotqtt�t�t‘tŸtŸt¿t¿t¿t¿tÌtßtòtu u9uAuEuMuQu_umuouwu{uu‡u•u£u£u½uÈuÞuðuv'v2vÒ>ÒGÒMÒUÒdÒsÒxÒXTÒž¡ž¡¿¡Ñ¡Ü¡å¡¢¢ ¢9¢F¢F¢P¢P¢W¢j¢h¢x¢x¢ƒ¢�¢“¢™¢œ¢ª¢±¢É¢ТÓ¢å¢ê¢õ¢££5£I£f£ˆ£�£“£™£¤£±£Ï£·£Ø£Ü£â£ê£ï£¤÷£¤¤"¤*¤/¤/¤<¤B¤]¤I¤i¤m¤s¤{¤€¤€¤¡¤¥¤«¤³¤¤ݤɤé¤í¤ó¤û¤¥¥!¥%¥+¥3¥3¥8¥E¥c¥K¥l¥p¥v¥~¥ž¥†¥§¥«¥±¥¹¥¹¥Æ¥ä¥Ì¥í¥ñ¥÷¥ÿ¥ ¦¦(¦,¦2¦:¦:¦:¦P¦P¦P¦P¦[¦e¦n¦ަ𦍦­¦»¦ϦÔ¦Ô¦ߦç¦ï¦ø¦§§%§4§C§]§b§b§m§u§‚§�§š§¥§¿§ѧã§î§ó§ó§þ§¨!¨)¨5¨C¨H¨V¨j¨j¨r¨j¨Ѝ�¨�¨ž¨£¨£¨²¨·¨·¨ȨͨͨÞ¨ã¨ã¨ö¨© -© -©©,©1©?©1©S©X©f©X©z©©�©©¡©¦©´©¦©È©Í©Í©ê©ï©ªª$ªª8ª=ª=ªZª_ª�ª†ª”ª†ª¨ª­ª­ªʪϪñªöª«öª«««:«?«a«f«t«f«ˆ«�«�«¨«­«­«È«Í«Í«è«í«í«¬ ¬ ¬(¬-¬-¬H¬M¬M¬h¬m¬m¬ˆ¬�¬�¬ž¬£¬£¬´¬¹¬¹¬ŬЬå¬ê¬ê¬ö¬­­7­>­H­M­^­h­}­ˆ­�­ž­©­±­¶­¶­º­¾­Å­Ï­Ù­Ù­ì­ñ­ñ­ñ­õ­ ®®®7®<®<®D®X®a®{®ˆ®“®ž®©®»®Ç®Юծծծ殯¯¯#¯(¯3¯;¯@¯@¯K¯S¯\¯g¯w¯�¯§¯»¯À¯À¯˯Þ¯è¯ó¯° °.°3°A°E°J°J°Z°e°m°r°}°а•°¯°Á°Ó°Þ°ã°î°ö°û°±±±8±J±\±\±\±\±a±f±f±r±ƒ±ƒ±©±«±DZDZѱå±ï±ñ±ý±²"²3²=²H²k²|²�²ž²©²Á²ѲÖ²Ö²á²æ²æ²î²ù²þ²þ²³³³³³<³&³T³Y³Y³a³³i³—³œ³°³œ³ȳͳͳڳ߳߳ç³ì³ì³ø³ ´´ ´ ´4´ ´L´Q´Q´Y´^´^´q´v´v´‰´Ž´Ž´¨´¸´½´½´×´ç´ì´ì´µµµµ5µEµJµaµJµyµ~µ~µ‰µ޵ʵ¸µ¦µ޵âµçµ#¶¶ÿµçµ;¶@¶@¶O¶_¶d¶d¶s¶ƒ¶ˆ¶ˆ¶—¶¥¶ª¶Ò¶À¶ª¶ê¶ï¶··ï¶/·4·\·J·4·t·y·y·–·€·À·зÕ·Õ·ð·Ü·¸*¸/¸/¸;¸@¸@¸L¸Q¸Q¸d¸t¸y¸y¸Œ¸œ¸¡¸¡¸´¸ĸɸɸܸì¸ñ¸ñ¸ù¸þ¸þ¸¹ ¹ ¹¹¹¹ ¹%¹%¹8¹=¹=¹P¹U¹£¹‘¹¹m¹U¹°¹µ¹ºñ¹ß¹͹µ¹ººº$º?ºDºDºUºpºuºuº†º”º™º™º¡º¦º¦º®º³º³º»ºÀºÀºøºæºÔºǺ»2»7»7»o»]»K»>»Ž»©»®»à»λÆ»®»ø»ý»/¼¼¼ý»G¼L¼f¼P¼L¼~¼ƒ¼ ¼мƒ¼¸¼½¼½¼ɼâ¼ò¼½½)½+½A½G½G½c½p½¡½ã½Ò½À½ï½÷½÷½÷½¾¾¾¾&¾0¾5¾@¾J¾O¾O¾i¾n¾n¾v¾{¾�¾{¾›¾¦¾«¾¿¾«¾˾Ö¾Û¾Û¾æ¾ô¾ù¾ù¾¿¿¿¿%¿*¿*¿;¿@¿@¿Z¿e¿j¿r¿j¿~¿ƒ¿—¿ƒ¿£¿¨¿°¿¨¿¼¿Á¿Õ¿Á¿á¿æ¿æ¿ú¿æ¿ÀÀÀ ÀÀ À*À/À/À;À/ÀNÀSÀSÀ_ÀSÀrÀwÀwÀƒÀwÀ–À›À¯À›À»ÀÇÀÒÀÝÀâÀöÀâÀÁÁÁ$Á)Á=Á)ÁQÁIÁZÁ_Á_ÁgÁlÁlÁuÁzÁzÁƒÁˆÁˆÁ‘Á–Á–Á¡Á¦Á¦Á±Á¶Á¶ÁÁÁÆÁÆÁÑÁÖÁÖÁáÁæÁæÁñÁöÁöÁÂÂÂÂ&Â1Â<ÂGÂLÂLÂVÂ[Â[ÂeÂjÂjÂtÂyÂyƒˆˆÂ�••¢§§´¹¹¹¹¹ÂÁÂÆÂÆÂÎÂÓÂÓÂÛÂàÂàÂèÂíÂíÂõÂúÂÃúÂÃ+Ã0Ã0ÃBÃMÃmÃrÈÓìØøÃÃÃÎÃÓÃÓÃåÃðÃÄÄ+Ä6ÄOÄ;Ä[ÄfÄqÄvÄvĈēijĸÄÎÄÙÄòÄÞÄþÄ ÅÅÅÅ?Å+ÅKÅkÅpņőŖűÅ�ÅÑŽÅÝÅóÅßÅÆÿÅ Æ*Æ/Æ/ÆUÆAÆaÆ�ƆƜƧƬÆÇƳÆçÆÓÆóÆ ÇõÆ)ÇÇ5Ç@ÇEÇEÇkÇWÇwǗǜDzǽÇÂÇÝÇÉÇýÇéÇ È È È?È+ÈKÈVÈ[È[ÈjÈoÈoÈ~ȃȃȃȉȎȎȎȘȚȚȤȱÈÑÈÓÈÓÈÝÈÝÈÝÈÝÈÝÈßÈßÈöÈýÈÉÉÉÉ"É-É8ÉCÉNÉYÉSÉ|ÉtɔɢɜÉÅɽÉÝÉÝÉÝÉæÉîÉÊÊÊ(Ê(Ê@ÊJÊ^ÊxÊxÊxʙʩʾÊÐÊàÊàÊËËË0Ë0Ë4Ë9Ë@ËPËoËoËsˊˑ˖˖˚˥˱˿ËìËõËÌÌGÌSÌXÌn̡̜̯̂̎ÌËÌöÌÍ Í/Í1Í1Í5ÍTÍ_Í_ÍbÍp͛ͻͻͻ;ÍçÏY, ~Ò~ҌҒҖҥҴҺÒZ`àô.™.™D™f™s™w™†™Ÿ™£™©™¼™Ù™Û™Û™ šú™Û™+š5š[8cmÖcÖc÷cäcddd$d/d;dAd\\�”�œ�œžœ œ«œ³œ¾œÉœÔœÖœìœìœþœ -���E�]ܳf¾é¾éðéùéê)ê)ê:êGêeêmêšêŸêÈêåêëë ë.ëTëYë‚ëœëÂëÙëßëãëüëì ìì"ìAìGìKìdìlì‹ì�ì¡ì©ìÈìÍìÕìÛìßìãìõìýì í í$í6í;íLíQícílí€í‹í°íàíî -î -î -îî!î/î<î^î^îuîzîzî‘î“î“î§î©î©îÀîÂîÂîÙîÛîÛîòîòîïïïï=ïOïTïTïTïTïlï�ï¢ïÀïÀïÀïÍïäïæïæïæïóï -ð ð ðð0ð0ðGðIðcð�ð�ð�ð…ð‡ð‡ð‡ðŒðŽðŽð“ð“ð�ð¢ð¢ðÀðÀðÀðÈðÊðÊðÊðÒðÔðÔðÜðÜðÞðåðñññ.ñ.ñ.ñ.ñ.ñAñYñañañ¤ñ^` -æTæTøTU"U>UKUbUuU€U•U‚U¡U©U´UÇUÀUßUåU_ôW¶=¶=Ô=×=é=ð=÷=ü=þ=> >>">T>n>[>†>‹>¬>¬>¸>À>Ï> ??;?C?H?Q?\?d?k?Š?�?¯?±?Ð?Û?ò?@@@@$@'@+@<@\@n@`$fÜfÜuÜ�Ü�Ü“Üaxb|çç&çHçHçRçWçWçvçƒç…ç…ç…ç…ç’çšç­çÁçÃçÃçËçÞçÞçðçb”"†/†/¨/²/¾/Ã/Ó/Ù/î/00 0-0D0L0V0e0m0z0‚0…0…0…0‡0–0 0©0±0´0Æ0cHϾ9¾9æ9ó9ö9ÿ9::3:J:\:Š:¦:À:Å:Ê:Õ:ì:þ: ;;4;H;M;X;x;};€;š;´;¼;Ä;É;ã;ý;< <<,<4<9<Y<^<a<{<•<�<¥<§<Á<Û<ã<ë<í<=====$=$=/=/=;=;=M=�=£=£=³=dd¤¹Ð‰Ð‰à‰ç‰ó‰ù‰ŠŠ"Š.ŠEŠRŠRŠUŠcŠsŠŠŠŽŠ–Šeºû++-+2+F+u+�+Ž+˜+¨+¨+¿+Æ+Ý+ä+í+,,,,0,0,F,F,\,\,r,r,ˆ,ˆ,ž,ž,´,´,Ë,Ë,â,â,ù,ù,--'-'->->-U-U-m-m-…-�-˜-©-´-Å-È-Ê-á-è-ô.f¬÷ŽŽ¨®µ½ÅÈÓååù  "*@CQTW^bjxŠš�ìg(EK–’–’½’ª’É’Ø’à’hCNKNKqK†K‹K“K›K£K°K¶K¿KÅKÊKÒKîKôKöKøKLLLL#L)L+L-L:L:L:L?LHLPLYLaLcLkLsL{LˆLŽL™L L°L»LÇLåLìL÷LýLMMMM.M>MFMIM¯Mi8-77070K0O0T0_0j0m0q0y0j¤õš6š6šTšxš~š…š…šŒš¬š±šÇšãšÏšïš›››%›/›M›_›h›p›z›“››Ÿ›±›»›ÛÈ›ã›Ï›œï›œ%œœEœ1œQœcœmœuœuœ~œ†œœœµœÇœÖœÚœÚœáœæœ�� ��,�,�,�0�<�]�k�u�‚�£�±�»�½�½�×�ê�ø�û�ž ž>žBžežižˆžŒžŒžŒž’ž žªžÞÉžÔžàžâžêžðž ŸŸ"Ÿ,ŸEŸHŸPŸ\Ÿ^ŸfŸiŸ‚Ÿ„Ÿ�Ÿ’ŸšŸ Ÿ¹ŸÑŸÝŸòŸ÷Ÿ   1 B B M X p | ‘ – ¨ · Рá á ç ò ú ¡¡!¡kfäŽÛŽÛ¨Û±ÛÑÛÑÛ×ÛßÛçÛïÛ÷ÛýÛ -Ü -ÜÜÜÜ#Ü(Ü(Ü.Ü3Ü3Ü9Ü>Ü>ÜVÜiÜoÜtÜtÜ}Ü�Ü�Ü�ܤܦܦܭܯܯܼܾܾܵܵÜÄÜÄÜËÜÍÜÍÜÓÜÓÜÚÜÚÜâÜèÜîÜöÜöÜöÜöÜÝ -ÝÝÝ"Ý*Ý2Ý8ÝPÝ_ÝiÝlÝlÝvÝ|݂݂݆ݎݕÝ�Ý¥Ý©Ý¯Ý·Ý¾ÝÆÝÎÝÒÝØÝãÝéÝöÝÞÞÞÞÞ#Þ+Þ/Þ5Þ=ÞDÞLÞTÞXÞ^ÞiÞnÞ„Þ•ÞšÞ�ÞCßl`'"'"0"7"K"_"d"‚"‡"¥"§"Å"Ç"Þ"ò"û"ý"#!#R#m|2ÍØ‘Ø‘î‘ÿ‘’!’2’C’V’^’l’Š’•’›’¨’½’½’Ð’á’ç’ü’““,“1“9“A“G“_“r“}“�“‹“ “¦“¨“µ“·“ɓɓГؓê“ê“ù“”””(”,”8”<”H”L”X”\”\”o”‚”ˆ”Œ”–”𔩔­”¼”À”Ӕההההܔî”ý” ••5•E•U•Z•Z•Z•f•n•v•|•‘•™•§•±•¿•ŕǕǕǕǕǕǕǕǕǕӕەã•é•þ•– -–– –&–&–&–8–>–J–P–]–x–ˆ–”–š–§–¹–Ç–æ–@˜nÔ¼íPkPkbksk~k‰kŸk±kÉkÎk×kÞkëkòkll l llll3lMlcl{l€l‰l�l�l±lÌlÓlÕlØlÝlmm*mo$hm×&×&å&ù&''p¤b‡žXžX²X¹XßXËXëXðX÷X÷XY-YY9Y_YKYkYpYwYwYY†Y‘YœY¤Y¬Y·YÂYÕYÍYíYõYq?|¦l¦lÂlÉlálùlmmmmm*m5mCmSmcmjmpm…mšmšm®m¶mÆmÓmâmïmnn n-n4n:nOndndnxn…n–n¦n¬n½n½nÃnÑnânïnÿnaor8¬¶þJþJKK KK+K4K9K>K@Ks88B00“0—0œ0§0±0´0¸0À0t0†ŽFIFI\IoI|I‚I…I�IuÜtþþ +6?Oagms‰x�ª­µÇÍÒõ )/?EQ_dr‹™¢²´»ÀÈçõ:AKZ`flrˆ©½Éàëú#3AXdiw–¨¿ÈÎÙÞäû(79GVhhp“žÒv`Ëߘ˜4˜V˜c˜g˜v˜•˜™˜Ÿ˜²˜Ϙјј™ð˜ј!™+™wT�Þfàfà~à†à“à³àÅàÌàÖàÜàâàæàêà á áááá*á.á[á_ádádákánásáá�á‘á¢á±áµá·áÆáÊáìáðáõáõá â ââ"â)âOâZâ^âcâ™â°â»â¿âÐâÛâßâáâìâðâðâ -ããããã ã9ã=ã=ã=ãAãdãxˆßýfãfãzã�ã�ã�ã’ã’ã™ã›ã›ã¢ã¤ã¤ã±ã³ã³ãÀãÇãÉãÉãÖãÝãßãßã÷ãüãüã äy°‰±>e>eVe^eieÃe®e£eŽeweÉeÛeËeöeöeff¶Q¶Q¶W¶b¶i¶q¶|¶ƒ¶‹¶–¶�¶�¶¨¶Æ¶Ê¶â¶Ó¶ý¶ý¶· -··!·/·6·:·<·N·N·N·`·h·Ž·œ·œ· ·µ·½·Í·Ø·í·ò·¸¸¸%¸0¸4¸9¸A¸E¸T¸V¸e¸g¸v¸x¸‡¸Ž¸’¸¦¸®¸¼¸Ã¸Ç¸×¸â¸ç¸¹ ¹¹"¹&¹.¹<¹C¹G¹O¹c¹k¹v¹z¹z¹z¹…¹�¹ ¹¬¹Â¹Ê¹Õ¹ä¹ì¹÷¹ü¹ººº º*º/ºAºIºTºTºTºTºbºqºŽºšº¢º²ºÂºàºäº»»ùº#»#»-»4»C»R»Z»h»o»s»u»„»Œ»š»¡»¥»¥»§»¹»¹»Ë»Ë»Ë»Ñ»Ý»ï»÷»¼;¼I¼M¼k¼r¼y¼„¼š¼œ¼£¼¶¼¾¼Ì¼Ó¼×¼Ù¼ì¼ô¼½ ½ ½ ½ ½ ½½&½5½=½K½V½Z½Z½_½g½k½z½|½‹½�½œ½ž½­½´½¸½Ì½Ô½â½é½í½ý½¾ ¾+¾3¾A¾H¾L¾T¾b¾i¾m¾u¾‰¾‘¾œ¾ ¾ ¾ ¾«¾²¾À¾Ú¾ê¾õ¾ -¿¿¿*¿6¿L¿T¿_¿n¿v¿�¿†¿Ž¿™¿¥¿©¿´¿¹¿Ë¿Ó¿Þ¿Þ¿Þ¿Þ¿ò¿ÀÀ$À(À<ÀMÀbÀoÀsÀ�À–À¦À½ÀÖÀïÀñÀüÀÁÁ Á*Á;ÁRÁkÁyÁ„Á�Á˜ÁšÁ¥Á­Á­Á­ÁÇÁÕÁãÁøÁÂÂ+ÂIÂPÂPÂ`ÂtŽŽ’¨·ÂÒÂÝÂôÂüÂüÂÃÃ1ÃLÃUÃjÄÓàþÃÌÃâÃûà Ä#Ä#Ä;Ä;ÄGÄ_ÄwĀĀĀČÄ�ĵľľÄÅÄÎÄÔÄàÄFÅ{ÌL»¶ö¶öÔößöêö÷÷÷ ÷*÷0÷A÷P÷_÷l÷l÷r÷w÷|÷�÷¢÷­÷±÷Ã÷Ð÷Ø÷ã÷ß÷ú÷øøøø.øø?ø6øIøKøgøSøoø}ø}øø›ø›ø¢ø¨ø±ø¸ø»øÝøñøäøùøÿøùùùù ù ù(ù(ù3ùHùQùQùQùQùmù„ùŠù�ù�ù¤ùªù¯ù¯ù»ùØùøùýùúúú+ú:úIúQúVú\úaúaúhúoú’ú¯ú±úÎúãúãúéúéúöúÿúÿúû,û7û<ûIûTû\ûdûtû‹û‹û›û›û­û³ûÛûäûäûæûíûòûòûÿû -üüüü,ü9üKüVüdümürü™ü¢ü­ü²ü¹üÁüÔüéüîüõüý ýý0ý7ý=ýFýFýOýiýpýuýƒý“ý¡ý¡ý§ý®ý·ý·ýÊýÜýßýßýðýøýþ þ)þ0þ=þ?þFþZþiþiþiþ�þ�þ�þ�þ�þ²þ½þÏþÜþçþõþÿÿÿÿ0ÿCÿEÿTÿiÿkÿyÿŽÿŽÿ”ÿ�ÿ�ÿªÿ°ÿÂÿÂÿÏÿÒÿÝÿïÿöÿ %:<Vkkkmtz‹™««±¸ÁÆçððöÿÿ+.4=EPbhss€ƒ‰’𥷽ÈÈÕØÞçé 39DV\ddddoê|”�¾g3g3{33ˆ3‹3”3�3¯3¯3Ø3Ü3á3ä3í3ý34444 4'4/474>4N4N4Z4}Œ >æUæUúUV1VV=VBVIVIViVVkV‹V»V§VÇVÌVÓVÓVÛVâVíVõVWW W+W3W~À-ee6eFePePeZeZedeveƒe†eˆe‘ežeže¬eÀeÀeäeñeñefff1f>f>fTfwf�f°f¹fÆfÆféfófóf&gYg_g_g_gqg¸ºä˜Š˜Š°Š²Š¾ŠÂŠÏŠÒŠìŠìŠìŠòŠöŠþŠ ‹‹)‹+‹+‹4‹6‹6‹?‹A‹A‹J‹L‹L‹U‹U‹^‹d‹g‹q‹‚‹ˆ‹”‹”‹ü‹€œWzþ)þ)*-*P*W*p*h*ˆ*¨*”*´*Å*Ê*ë*×*+++2+K+C+c+ƒ+o+�+ +¶+¢+Î+Û+Û+ó+ó+ý+�œX{Ö-Ö-â-ò-ý-'.W.d.u.‡.Ž.•.©.°.¾.Ö.å.ò.õ.///-/9/E/I/P/†/‚x¬p¬p¬†¬�¬”¬³¬Â¬Ñ¬à¬ï¬þ¬­­ ­­'­6­;­V­p­p­†­˜­œ­ª­±­¶­¶­½­Ï­Ø­Ú­è­ú­ú­ú­ ®®)®4®A®F®V®[®k®w®|®‰®Ž®ž®£®³®µ®Å®Ç®×®Ù®ê®ó®ó®õ®¯ ¯¯¯7¯I¯[¯m¯}¯}¯}¯€¯“¯ƒ\åøŒŒŒ"Œ'Œ5ŒJŒQŒ[ŒiŒlŒnŒxŒŠŒŠŒ‘ŒÇŒ„0ÎÖÖÖî0$øöDL…`¶Ê——$—F—S—]—l—…—‰—�—¢—¿—Á—Á—ò—à—Á—˜˜†L4CN,N,\,n,t,|,Ž,”,�,¯,µ,¸,ô,‡(–œ7373E3T3X3[3a3ˆ\DWö,ö,---$-6-<-E-W-]-f-x-~-�-Ï-‰, ÒÒ$Ò+Ò3Ò8Ò>ÒŠ¬!HÖ Ö ô  - - -# -( -G -G -L -k -p -w -† -ˆ -§ -§ -Æ -Û -È -ç -ö -ø -    & ? 8 W a ‹@? –a–a³a»aÂaçaùaÿa -b!b0b;b?bJbVbabmb„b›b®bÅbÚbêbêbübccc)c)cAcAcfcfckckcqc}cŠc–c«cÂcÑcÜcîcúcd)dJdJdSdXdXdXdXdhdqdyd~dŒdšdªd¯d¯d½d½dÂdÂdÌd×dédïdûd ee e$e-eFeIeYe`e~e‡e‡e–e¦e¶e½eÃeÏe×eâeéeíeffff$f4fDfDfqf“fŸf§f²f¹fÄfÆfÑfÑfáfæfæfðfûf gg!g.g;gEgIgRgkgng~g…gŠgŠgžgžg£g§g·gÀgÒgØgÚgÚgègîgôgh hh'h'h'h,hDhDhShVhjhˆh“h¼hÎhÙhëhïhôhûh ii5iœHœKœoœqœ�œ�œ�œŽXnþÔþÔ$Õ6Õ;ÕRÕdÕnÕxÕ†ÕŽÕ�Õ³ÕµÕ¾ÕÔÕâÕêÕòÕôÕÿÕ -Ö -ÖÖÖ$Ö,Ö6Ö?ÖGÖJÖSÖnÖÖ‘Ö”Ö™Ö¬ÖÄÖØÖàÖàÖòÖõÖúÖ ×%×9×A×A×b×e×j×}׃ט׮װ×Å×Û×ã×ã×î× ØØ Ø6Ø�83=ÓÓ Ó Ó-Ó1Ó?ÓBÓGÓ�8>HNÓNÓWÓWÓeÓiÓpÓsÓxÓ‘D*V+V+p+ƒ+�+”+ +¸+Á+Å+×+Ý+ü+’Ðy©~ø~ø¨ø«ø²ø¸ø¾øÀøÆøÌøÌøÞøéøðøýø -ùù,ù@ùFùHùOùUù_ù_ùpùrùyùù‰ù‰ù‰ù ù²ù¹ùÈùÊùÜùëùëùýù“0+3þ+þ+,-,>,D,D,L,”„\y>í>íPíeíoíxízí�í‘íœíží¨í¨í®í¿íÂíÂíãíîíðí îîî î3î†î•  -¦*¦*¯*Í*Ò*–h÷ ö^ö^ __"_0_;_A_R_X_i_o_{_’_’_¤_µ_Â_È_Ù_ß_-`—�µÕ¾O¾OìOñOP PP P(P(P-P:PPPzPP£P«P°P·PÍPãPåPûPQ5QOQaQ˜ˆùöüöüý ý'ý.ýMýRýqývý�ý}ý¯ýœý»ýÐý½ýïýÜýûýûýûý þþ3þ3þ;þ™ y}XˆXˆaˆmˆrˆš(A&ã&ãHãPãVã^ã`ã`ãqãqãqãyã�ã“ã¢ã“ã·ã¹ã¹ãÓãÕãÕãàãåãÿãäääää(ä*ä7ä9äFäNäVä]äläyä{äŒä™ä™ä™ä¢ä´äÇäÍäÕä×äääääùäùäùäåå&å+å+å+å9å?åDåLåWåiåtåyåyå€å„å’å–åŸå¦åÄåÑåØåáåýåææææ -ææ#æ#æCæCæCæJæXægæzæ�æ�æ�æ�æ¢æ¢æ©æ°æµæ»æÍæ×æòæç!ç!ç5ç:ç^çeçqç�ç¢ç­ç´ç¸ç¸ç¸ç¸çÃçÍçÛçýçè%è/è/è=è[è‹èžè¯èÆèÙèÞèÞèÞèæèñèééééé%éRéXéXéXécéméyé„é†é†é†é‹é—é—éáé›H%—/—/¥/¬/·/Å/Ð/Ø/Ø/ð/ú/00œ0 vTvT�TŠT©T¿T¸T×TßT�T9J.(.(H(T(f(|(�(Š(µ(Æ(Ø(î()ü(')?)?)I)žÖfQfQ˜Q¬Q´Q¿QÆQÍQÖQØQÛQùQRRR$R?RFRORQRTRrRrRrR€RŠR—R·R¹RÓRÛRÛR÷RSS!S5Sþ>þmþbþzþ•þ�þµþ¡þÁþ×þÃþ÷þãþÿÿÿ ÿ0ÿ7ÿDÿOÿ[ÿfÿnÿsÿÿ„ÿ˜ÿŸÿ£ÿ®ÿ³ÿ¾ÿ×ÿàÿìÿñÿ .3Lasxƒ‹‹‹�¦»ÆÐÛÝèððýõ5¡àZŽccc(c-c:cHcQclczcœc¥cµcÏcÚcêcìcîcøcddd!d3d;dSdWdWdWdWd\dzd”d”d›džd¦d²d»de¢d{�þ+þ+,?,P,W,p,h,ˆ,¨,”,´,Å,Û,Ç,ó,----"-£@I•f f ~ � › à ® ¢ Ï í   ù & @ @ _ t a ¡ Œ € ­ Ç Ç Ç Ù ó ó  9 - f k ~ r   ‘ ¬ Ê â Ö õ #/MbOznœ�¨ÂÂÂÔîî 55=¤(6à6àDàgàmàràràxà¥(!'¾Ò¾ÒÇÒÕÒÛÒÝÒâÒ¦D]j999%9.9:9O9W9]9c9e9e9t9§„½Ú0¦0¦c¦o¦s¦{¦ƒ¦‡¦’¦–¦š¦ž¦¦¦«¦¯¦À¦Ñ¦Ó¦×¦è¦ù¦§§ §*§*§*§<§¨€@˜@˜Y˜`˜g˜n˜t˜„˜�˜™˜¤˜»˜¾˜À˜Û˜å˜ï˜ö˜™™™™1™1™C™©˜bÞ^Þ^_$_,_7_F_O_S_^_~_ƒ_�_¼_Â_Ç_Ú_``&`,`4`7`<`O`t`y`�`•`�` `À`Å`â`aaaaaaa(aHaMaga†aŒa‘a±aºa¿aÞaæaëa bbb5b=b]bbb|b›b¡b¦b¦b¦b¦b³bÄbÏbçbòbcc*c>cOcYc[coc€c…c�c�c½c½c½cÏcª°)�ž�ž³žÀžÅžÉžÒžßžëžöžŸ ŸŸŸ Ÿ+Ÿ3ŸMŸsŸmŸƒŸŒŸÁŸ­ŸÑŸÑŸéŸôŸ  ; t t t t Õ «0ùAȌȌíŒùŒ����$�.�<�F�X�b�h�r�x�‚�‰�•�›�¤�Ï�Þ�á�ã�í�ÿ� ŽŽ%Ž:Ž:Ž=ŽGŽ\ŽaŽqŽ|Ž�ޕލ޲ŽÇŽÕŽÞŽæŽôŽ��&�3�3�@�@�H�V���¬l£:n@n@‡@Ÿ@¯@Ï@á@ù@AA>AFAJAMAQAVA`AcAjApAwA}A�A†A�A¡A¨A¯A±AµA¾AÈAËAÖAâAåAöABBBB0BABJBSB[BfBqB}BŽBŸB«B¹B»BÂBÉBÎBÒBßBæB CC!C+C4CMC^CgCpCxC�C‡C‹C�C”C¡C¨C¶CÀCÕCßCèCDDD$D,D5D;D?DDDJDTD^DzDˆDŽD“D›D£D«D¸DÀDßDÒDñDúDE)E#>#L#`#b#{#Œ#�#�#—#ª#®#À#Å#á# $$$$#$4$J$Z$n$s$Œ$Ÿ$£$µ$µ$µ$µ$º$Ù$è$ %%%0%A%A%A%H%[%t%t%t%ƒ%ƒ%–%­%¸%É%Î%Ô%Þ%à%ì%ì%ó%þ%&& &5&A&C&N&Z&j&q&x&‚&Š&Ž&’&”&™&¡&¥&·&¹&¾&Æ&Ê&Ì&Ì&Õ&â&ø&'2'>'J'Q'Q'd'h'h'h'o't'Ž'š'¦'­'­'Ä'Æ'Ë'å'ñ'ý'(((((-(¶˜ ºœ H H=HLHLHLHfHfHuHuH{H}H}HƒH…H…H‹H�H�H”H˜H�H�H�H�H�H�H¥HºHºHÏHÚHäHñHII#I%I@IEI`IeIkIkI€IƒIªI·IÏIïIïIøIýIJ J!J0J5JSHSVSkSnSpSzSzS|S„S‰SŽS“S“S™S¡S¦S¦S«S¶S»SÀSËSÐSöSøSýSTT TTTTT T%TATKT_TsTyT�T�T�T•T›T¥T¯T½TÒTÕT×TáTðTõTõTõTýTU U UUUUU#U#U(U3U8U=UBUQUQUbUhUhUvU|U‚UŒU–U¤U¹U¼U¾UÈU×UÜUÜUÜUäUéUòU÷U÷UýUV +H2@÷#÷#$$!$&$Q$S$†$p$–$�$®$Á$¨+>k>kTk\kgksk~k�k€k©k¯k¯kÖkãkl'l'lQlsl‹lxl—l½lªlÑlÞl m mm.mAmAmAmKmH<Jöö0ö:ö>öBöGöIöeö�ö�ö‹ö|ªÅ.ú.úXúZúaúgúmúoúuú{ú‚ú�úœú¯ú½úÌúÑúÓúØúâúòúûû3ûEû8þßþßà àà à'à)à.àd`µîÓîÓ ÔÔÔ Ô,Ô.Ô:Ô:ÔGÔIÔVÔXÔdÔdÔzÔƒÔƒÔŽÔ•Ô¤Ô¯ÔµÔºÔ¼ÔÈÔÏÔÞÔéÔïÔôÔöÔÕ2ÕXÕhÕxÕˆÕŠÕšÕªÕºÕºÕ¿ÕÙÕàÕçÕçÕçÕçÕîÕÖÖÖÖ"Ö&Ö&Ö&ÖSÖZÖpÖ|Ö‚ÖˆÖŽÖ�Ö�ÖžÖD¶ÃžÖžÖ´Ö·ÖºÖÇÖÍÖÚÖÝÖàÖæÖèÖòÖ,cj¨‡¨‡¶‡À‡Ë‡Ö‡Ü‡â‡ jnÖÖäùÿ +P o6o6}6Œ6¤6ª6¼6¼6Ç6Ð6Ö6Ý6ã6 œ;^öEöEþEFF.FAF^FFˆF™FÀF×F×FùFGGG%GWGdGhGpGpGƒG“G—G›G Œ×öFFfnr€†ŒŒ¹Ïãñ -LUegnntt„ |1W#W#m#v#�#š#š#�#¬#²#»#½#Ã#Ì#Î#Ô#Þ#å#è#è#ò#0 'ð…ð…þ…†$†*†*†0†„•²@�@�T�[�b�f�Š���¤�µ�Ú�å�ð�ò�ý�"ž-ž8ž:žAžJžLžWž^žˆž("ÆÜÆÜÕÜèÜÝÝÝ nÜnÜ}Ü�ܖ܃�¯�¯µ¯¼¯Ó¯ß¯ê¯ü¯ °þ¯ü¯-°H°T°[°a°m°w°~°…°‰°‹°‘°�°§°®°µ°¹°¹°Ã°È°Ó°å°ö°ç°å°±7±C±J±P±\±f±m±t±x±z±€±Œ±–±�±¤±¨±¨±µ±Ã±Ó±å±ö±ç±å±²7²C²J²P²\²f²m²t²x²z²€²Œ²–²�²¤²¨²¨²²²Â²Ô²å²Ö²Ô²³ ³³³(³/³6³:³<³B³N³X³_³f³j³j³t³‚³‹³¤³°³´³´³·³À³6´ìÆ{Æ{ã{�¡ë{ý{|$|6|=|N|V|^|a|o|›|›|°|²|²|¾|Æ|Ê|×|×|ã|ë|ï|ü|ü|ü|}#}4}4}9}Q}`}e}k}v}{}{}€}˜}§}¬}²}½}Â}Â}Ð}Ù}å}í}õ}ý}~~ ~~&~/~@~P~P~U~]~e~h~n~n~s~s~s~y~|~ƒ~Ž~£~È~ß~ì~ô~ü~!*.1=CJOO]mmzz‚Š“¢§§®¹¿ÇÍØÝÝì÷ €€€€"€-€?€E€M€S€X€X€l€r€}€ƒ€…€•€›€›€½€ä€é€é€ý€��*�0�5�N�T�d�l�t�z���“�™�¯�À�Æ�Ë�ä�ê�ú�‚ +‚‚‚‚+‚1‚G‚X‚^‚c‚r‚x‚‰‚‘‚™‚Ÿ‚¦‚«‚«‚Á‚ǂ݂î‚ô‚ö‚ƒ ƒƒƒ%ƒ+ƒ2ƒ2ƒ2ƒDƒMƒ^ƒnƒnƒsƒsƒ�ƒ‰ƒšƒ­ƒ´ƒºƒƒȃ؃Þƒæƒìƒìƒìƒñƒñƒñƒñƒñƒ„„!„!„7„@„K„T„_„j„o„o„…„‹„¡„²„¸„½„τՄڄ󄅅……"…*…-…3…9…>…>…b…j…r…‚…ˆ…Ž…Ž…Ÿ…½…½…Â…Â…Î…Ö…Ù…à…æ…ë…ë… ††#†)†0†N†]†e†}†…†ˆ†�†•†­†µ†͆Õ†؆߆å†å†å†‡‡ ‡(‡+‡2‡8‡H‡W‡c‡~‡†‡‰‡�‡–‡®‡º‡Õ‡݇à‡ç‡í‡í‡í‡í‡ò‡ò‡û‡ ˆ!ˆ'ˆ?ˆRˆXˆ]ˆoˆuˆzˆ–ˆœˆ¨ˆ°ˆ³ˆºˆÀˆéˆñˆ‰‰‰‰‰‰‰‰4‰J‰P‰h‰{‰�‰†‰±‰·‰ʉŠŠ/Š7Š=ŠBŠBŠ\ŠhŠtŠŠŠ„Š„ŠžŠªŠ¶ŠÁŠÁŠÆŠÆŠàŠìŠøŠ‹‹‹‹‹$‹0‹6‹;‹M‹S‹X‹g‹s‹‹…‹‹‹’‹¥‹°‹¹‹Å‹Í‹ЋÖ‹Ü‹á‹õ‹Œ Œ$Œ,Œ/Œ5Œ;ŒSŒ[Œ{Œ•Œ�Œ Œ¦Œ¬Œ¬Œ½ŒÆŒÒŒÚŒÝŒäŒêŒïŒ���0�8�;�B�H�`�h�‡�¡�©�¬�³�¹�¹�É�Ò�Þ�æ�é�ï�õ�ú�ŽŽ%Ž?ŽGŽJŽPŽVŽnŽvŽ˜Ž´Ž¼Ž¿ŽÅŽËŽËŽÜŽåŽñŽùŽüŽ� �� �/�7�R�Z�]�d�j�‚�Š�¬�É�Ñ�Ô�Û�á�á�á�á�á�æ�æ�ü�����+�1�6�D�P�Y�e�m�p�w�}�‚�”�£�«�Ã�Ë�Î�Õ�Û�ó�û�‘4‘<‘?‘F‘L‘L‘L‘]‘f‘r‘z‘}‘„‘Š‘�‘¡‘°‘¼‘בß‘â‘é‘ï‘’’5’R’Z’]’d’j’j’j’j’j’o’o’‚’�’£’®’³’³’Æ’Ü’â’í’ï’ï’“%“+“6“6“H“Q“b“g“y“‰“‰“ޓޓ¡“·“½“˓ړߓߓò“”””+”0”0”F”L”i”�”�”«”±”¶””˔ڔڔߔߔõ”û”•0•0•Z•`•e•q•z•‰•‰•ޕޕ¤•ª•Ǖߕߕ ––– –)–8–8–=–=–S–Y–v–Ž–Ž–¸–¾–À–Ì–Õ–à–à–à–à–å–ó–ü– ——!—.—.—.—>—N—S—w—ƒ—„—‰—ž—»—Ë—ï—ÿ—˜˜˜ +˜˜$˜7˜u˜…˜‹˜�˜’˜£˜²˜ä˜ì˜ò˜ô˜ù˜™™ ™™.™7™F™F™K™P™_™h™s™u™~™‰™‰™ª™±™·™¿™Ê™Йà™æ™î™ù™ÿ™ÿ™š šššš%š.š=š=š=šBšBšBšTšYšYškšvš~š†šŒšŒšŒš‘š‘šœš­š°š¼šÅšÑšØšÞšãšãšîšÿš›››#›*›0›5›5›5›5›:›?›?›F›J›J›V›_›b›b›m›o›�›ˆ›Ž›�›¨›³›¹››Æ›Æ›Ò›Û›Þ›Þ›é›ë›ý›œ +œœœ(œ.œ8œ;œ?œ?œGœNœQœSœ^œbœkœnœnœyœ{œ“œšœ¥œ°œ³œ¹œ¾œ¾œÅœÉœÉœÕœÞœáœáœìœîœ�� ��'�2�8�A�E�E�Q�Z�]�]�h�j�|�ƒ�‰�‘�œ�§�­�·�º�¾�¾�Æ�Í�Ð�Ò�Ý�á�ê�í�í�ø�ú�žž$ž/ž2ž8ž=ž=žOžSžSž_žhžkžkžvžxžŠž‘ž—ž©ž´ž¿žÅžÊžÊžÕžÚžÚžåžêžêžõžøžüžŸŸ ŸŸŸ&Ÿ+Ÿ+Ÿ8Ÿ<ŸMŸUŸYŸmŸtŸxŸxŸ…Ÿ‘Ÿ™ŸŸŸ¯Ÿ³ŸÄŸÖŸáŸåŸåŸòŸúŸ       +  +    , 8 F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F H H _ g s s ” ¢ º ¼ È Õ Õ ø ¡¡¡"¡-¡4¡4¡>¡>¡A¡S¡q¡}¡}¡¬£x¿Ù_4_4q4s4w4€4Œ4˜4­4­4Ù4Ý4â4î45 5555$5.5°œÄ¾Œ¾ŒÔŒÛŒìŒñŒ�óŒ���$�<�)�H�K�M�[�`�u�b���„�„���¥�’�±�·�·�Ê�Ý�ð�ŽŽ Ž„ž^x^x|xŽx”x›x¢x¤x§x®xµxµxÑxÕxÛxÛxóxyyy yDydy…yŠy«y°y¼yÇyÌyÙyÜyz$z)z/z1z7z:zKzPzSz[zdzzŸz¶zÉzÎzÒzôz{ {#{6{;{?{a{|{œ{¯{´{Å{Ê{Í{Ï{Õ{Û{ì{ñ{÷{ÿ{ÿ{ ||)|<|A|E|g|‚|¢|µ|º|Õ|õ| } }$}(}J}]}]}x}x}x}†}ž} } } }®}Æ}È}È}Ö}î}î}~~ ~~,~L~f~m~w~Š~Ž~Ž~Ž~•~›~µ~¼~Æ~Þ~à~æ~ **DH‰—HƒHƒ_ƒuƒ…ƒŒƒ£ƒ¾ƒÐƒÔƒ„LîýŽ�Ž�¢�®�Ä�°�Ð�Ò�å�ø����4IRvÓvÓÓÓ‚Ó�ÓžÓ¡Ó¦Óä;ôô.ô1ôOôfôwôwô’ô˜ô�ô�ô¸ô¾ôÃôÃôÌôÚôæôíôóôøô;õEõLõRõTõTõgõmõmõmõ}õrõŽõ�õ¯õ´õ´õ´õ»õÂõÉõÞõåõöööÐL¼ø¡ø¡¢¢(¢1¢9¢<¢C¢G¢P¢a¢e¢k¢y¢–¢£¢²¢·¢Ã¢È¢Ï¢Û¢à¢ã¢í¢å¢ý¢£££ £%£.£4£4£B£E£Y£b£k£r£v£{£’£ª£³£Á£Ý£é£é£¤¤¤¤5¤A¤I¤\¤c¤w¤€¤‡¤‹¤–¤›¤¢¤¿¤ì¤ó¤÷¤ù¤¥¥¥)¥+¥<¥F¥Q¥[¥j¥y¥•¥•¥˜¥ ¥¥¥'¦Xs…nHnH‹HœH©H³HÊHçHI II"I(I+I7IŒ Ø_Ø_è_ ` ````` ` `'`A`R`Z`Z`e`e`s`ƒ`ƒ`‘`—`—`¯`¯`µ`Û`(kqè‡è‡ö‡ˆˆˆ ˆ @UaÞæÞæìæôæûæç'ç'ç*ç,ç2ç $/4^Ý^ÝkÝyÝ~Ý„Ý!$).6Ý6ÝCÝQÝVÝ\Ý"$#(ÝÝÝ$Ý)Ý/Ý#4ðy__k{‘™£»ÀÐæîø  % 5 K S ] u � ‰ “ £ ¨ ¾ È Ò Ü æ ð ú    " , 6 @ V ` j t ~ ˆ ’ œ ¦ ¼ Æ Ð æ ð ú !!!"!,!6!@!J!T!^!h!r!|!†!�!š!¤!®!¸!Â!Ì!Ö!à!ê!ô!þ!""""$¨D@™@™V™]™d™r™ƒ™•™—™ž™¤™´™¿™É™Ô™ë™î™ð™ššš"š,š3š>šSš[š[šqšqšqš…š%$5:†Ý†Ý”ݣݨݮÝ&¨Ekˆšˆšžš¥š¬šºšËšÝšßšæšìšüš›››3›6›8›J›Q›a›k›u›|›‡›››£›£›¹›¹›¹›Î›'(&,0000&0,020(0_gžGžG´GÇGÖGÜGßGçG)  ß– – ¸ À Æ Ó Ú ö ü ü ü     ' 3 > D N U f f q { { � “ £ © ® µ µ Ö Ü ë þ !! ! !!!!!!!.!8!=!=!R!\!\!p!y!!…!›! !§!º!¾!¾!Æ!Ì!Ò!Ü!ã!ê!ó!""*"."4":"I"\"b"f"l"r"x"x"z"~"„"Š"�"•"•"•"•"À"Ñ"Ñ"è"õ"ù"##6#6#<#?#C#I#I#[#l#�#•#�#®#²#Ã#Ç#Í#æ#è#î#û#ý# $'$-$8$[$f$l$r$x$�$‡$œ$ª$²$¶$Ç$Ë$Ñ$ê$ì$ò$ÿ$% %+%1%7%=%F%L%i%\%ƒ%Œ%’%’%§%¬%¬%³%º%Ì%Ñ%Ñ%Ñ%ë%í%& &#&)&1&5&<&_&e&k&w&Ž&•&›&¦&«&«&²&¶&½&Ë&Í&Õ&Ú&â&í&ó&ÿ&' +''''+'F'V'c'r'Ž'�'¬'¬'³'È'Í'Ö'ã'è'î'ó'ó'ú'þ'((((!(%(/(;(B(F(N(V(^(m({(€(Œ(Œ(”(”(·(·(Å(Ë(Ð(Ô(Ù(Ù(Ù(Ù(ß(á(á() +)))-)/)/)/):):):)?)h**4+t>Å>ÅXÅ\ÅtÅ|ńŎŒřşųŻÅÀÅÃÅÎÅÙÅáÅìÅ÷ÅùÅÆÆÆ(Æ3Æ5Æ@ÆKÆMÆYÆbÆbÆxƂƙƟƥƶƼÆÅÆ×ÆÝÆÝÆåÆéÆôÆùÆ ÇÇÇ(Ç*Ç.Ç=Ç=Ç=ÇNÇNÇSÇeÇkÇÙÇ+Ô@.á.áDáKáNárárá�á¢áµáÈáÍáÍáëáùá â â'â'â)â)â)â<â>â>â>âEâXâkâkâkâ~â‰âœâ²â·â»âÂâ×âêâñâñâôâã,LAPÇ$Ç$Õ$æ$ò$ %%2%4%O%j%j%r%y% %-P~Žpˆpˆ~ˆ‹ˆ™ˆ«ˆ¶ˆÄˆÑˆßˆñˆüˆ +‰‰‰.4 +66%616B6T6]6g6m6/|¼Wææ)OOXZZaˆ��ž­ÉÔÔàç÷ý&(AGRbt}ˆ�“š¿ÄÒÛÛâñ18?DOU]ƒŒ“˜£¯¾Ò×ßëýý  # 3 E K T T c i } † – ¥ · À Ð ã ë ÿ  +7 +; +G +^ +z +Œ +’ +� +© +¹ +É +Î +× +× +é +í +ù + , > D O [ k { � “ “ ˜ š š Ÿ Ÿ ® ´ º º ¾ 70�ÄäöÖöÖ××"×&×-×4×C×N×T×Y×[×g×n×v×|ׂ׆׆ולפתװײײ׾×18 ?/?/M/S/_/j/{/…/Œ/’/2@}‰&è&è4è?èFèeèrèrèuèwè}è3ðh ffŒŸ§®µ»½ÄËÎÎààóþBJS[`q‡—©®Èàääé*Fnv‡Œ�¯¿ÑÓí  %MU^fk|’¢´¹Óëï:'GSYq‰Ž£¿çïø(8JLf~‚‚žÆÎ×ßäõ -2Ldh{{{€ ÀÌÒê *<Lcz‘¨¨¼ØØØù    + 9 T c j z | ‚ ™ ¨ ¡ ¾ Ï ê ê  +4D}Š^^n‚‹‘££§ª²5\Ob‡‡ ‡/‡8‡A‡E‡I‡U‡Z‡_‡_‡p‡t‡{‡“‡–‡¢‡60ýÖßÖßßßäßíßôßößûß7Ü4nnŒ“𥭯ÆÚóóþ 5AWe{„–¾ÕÚâæ ë(,,<yX…¢¢ÁÌÒèùþ8OT\`ƒb‰Ÿ£¿çïôøý$2FKduy‹‹‹‹�¬ìËø &<MRn–ž£§¬½ÏÝñó !!3[rwƒ¦…¬ÂÆÓÓÓÓæìöý''CSaaw‡•¬¿ÄÊàïè)G?l•••¢Ûàëñü2">Tbz�”¤Ãïßû7BH^otŠ ¤Àèðõùþ%3GLevzŒŒŒŒ‘­Ìûë$/5K\a}¥­²¶»ÌÞì,00Oe{ŒŒŒŸ¥¯¶Éàààü 0@UNi|�‡�¬¥ÁÑßüü%EEEe8Do|*39KKORZ9°Åí&Ž&Ž<ŽCŽTŽYŽnŽ[ŽzŽ€Ž€ŽŒŽ¤Ž‘Ž°Ž³ŽµŽÃŽÈŽÝŽÊŽéŽìŽìŽøŽ �úŽ� � �2�E�X�k�~�ˆ�:<‹–¶¶Æ×àæêõ;”)ÞéÞéæéêéöéê êê$ê6êAêLê[êlêsêŒê�ê�ê�ê§ê®êÁêÊêØêìêë ë*ë<d(=0†0†<†P†S†g†o†s†}†‡†�†’†˜†=$t¹ÀEÀEäEçEëEøEF FF F*FRFRF^F`F`FlFqFqF}F‚F‚FŽF“F“FŸF¤F¤F°FµFµFÁFÆFÆFÒF×F×F×FÚFÚFóFGG%G%G'G'G3G9G>G>GDGPGPG[GgGtG‰G‘G—G—G¨G¨G±G´GH>è w®£®£Ë£Ó£Ö£ä£ò£¤¤(¤>¤P¤[¤l¤p¤‚¤…¤�¤™¤¥¤¸¤é¤Þ¤Ĥù¤ ¥¥*¥8¥V¥h¥Œ¥�¥Ÿ¥À¥¦¥Û¥Û¥Þ¥ã¥æ¥æ¥í¥¦ ¦¦¦,¦9¦L¦L¦`¦d¦‘¦‘¦©¦®¦®¦¾¦ƦÖ¦à¦ð¦ú¦ +§§§§+§3§C§M§]§g§w§ƒ§ˆ§ˆ§ˆ§ª§¸§§ǧÔ§é§é§î§ø§¨ ¨¨¨¨¨&¨5¨:¨@¨E¨E¨K¨Q¨V¨V¨e¨x¨„¨‘¨�¨°¨¸¨¾¨ǨÞ¨ò¨©©©-©@©W©d©l©©‡©�©–©Ÿ©Ÿ©¤©¤©¤©¤©¤©°©°©°©¹©Ò©ç©ï© +ªª(ª*ª>ªCªCªCªNª\ªaªaªhªvª{ª“ªŸª±ª½ªêÒªÖªߪ誫«««0«8«@«m«~«‹«�«›«›« « «§«µ«º«Í«Ù«å«ë«ï«ø«ý«ý«ý«ý«ý«¬¬¬¬¬¬+¬+¬+¬+¬+¬+¬+¬+¬+¬+¬4¬M¬b¬j¬…¬–¬£¬¥¬¹¬ŬʬʬʬÓ¬í¬ù¬þ¬ ­,­,­1­1­1­1­1­1­1­1­F­K­K­K­\­g­l­l­w­‰­¡­³­Ô­ô­ÿ­®®®®®@®I®Z®^®v®†®Ž®–®¡®Ë®Ô®Ø®ð®¯¯¯¯¯"¯[¯d¯h¯n¯s¯|¯…¯НННН™¯­¯˯Ö¯Û¯á¯æ¯æ¯ù¯ °3°>°F°L°L°Q°Q°`°t°’°�°¢°¨°­°­°À°Ô°ú°± ±±±±±±!±:±O±W±r±ƒ±�±’±¡±£±£±£±£±£±·±·±·±·±·±·±·±·±·±·±·±·±·±·±·±·±ƱÕ±à±â±â±ë±í±í±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²"².².²2²7²G²b²w²†²’²¨²²ŲϲÛ²³!³A³e³g³z³¨³€³óóƳÖ³Þ³ù³ +´ ´'´5´A´Y´Y´„´‡´–´ª´Ë´Ü´ø´ä´µ&µDµwµuµjµ_µPµ…µ…µ…µˆµ�µ�µªµ¸µæµ¶¶3¶6¶E¶Y¶z¶‹¶§¶“¶ööá¶···ü¶í¶"·"·"·%·*·*·1·A·b·n·ú?°«Ó–À–À¬À°À»ÀÂÀÍÀáÀáÀìÀýÀÁÁÁ*Á2ÁCÁCÁLÁQÁYÁiÁwÁ†Á‘Á¤Á¤Á·Á·ÁÍÁùÁùÁ ÂÂÂÂ!Â!Â+Â3Â3Â3ÂDÂDÂDÂHÂPÂVÂ[Â[Â_ÂgÂkÂqÂvÂv‚—§±ÂÄÂÉÂÑÂÑÂÖÂÖÂÝÂéÂþÂÃà Ã&Ã9Ã>ÃFÃLÃLÃQÃXÃcËÖåï÷ýÃÏÃÕÃÚÃÚÃÚÃÚÃÚÃÚÃÚÃÚÃÚÃåÃñÃþÃÄÄÄ/Ä4Ä<ÄAÄIÄNÄNÄNÄVÄ^ÄgÄoÄtÄ|Ä�ÄˆÄ“Ä»ÄÆÄÎÄÝÄçÄùÄþÄÅ Å ÅÅ"Å*Å=ÅEÅMÅbÅdÅoÅwŌŌŔŨŰŷŽÅÁÅÅÅÔÅÙÅåÅûÅÆÆ$Æ0Æ5ÆAÆLÆQÆQÆQÆrƌƑƙƨưƸÆÍÆÒÆÝÆåÆúÆÿÆÿÆ Ç!Ç-Ç5ÇJÇVÇ[ÇgÇrÇwÇwÇwÇwÇwÇwǂǂǂǂǂǂǂǂǂǂǂǂÇ�Ç­ÇÊÇÚÇàÇèÇûÇÈÈÈÈÈ-È3È;ÈCÈEÈeÈmÈvÈ~ȆȋÈ�È—È¢ÈÊÈÕÈÝÈìÈöÈÉÉÉ!É!É!É*É3É6É@ÉNÉ`ÉbÉtɆɆɆɑɖɳɸɸÉÁÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÑÉÝÉéÉ ÊÊ$ÊDÊIÊQÊXÊeÊmÊvÊ~ʅʊʊʒʚʶʾÊÁÊÃÊÓÊÝÊÝÊÝÊßÊòÊËË ËËËË Ë$Ë,Ë3Ë@ËYË`ËeË}ˇˢ˻ËÃËÐËéËðËðËõËõËõËõËõËõËõËýËÌÌ"Ì'Ì'Ì/Ì7ÌDÌIÌIÌIÌMÌRÌRÌbÌgÌgÌgÌsÌzÌ€Ì�̡̽ÌÐÌÖÌÞÌóÌúÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Í)Í7Í7Í<ÍGÍNÍjÍwÍwÍwÍ{͆ͤͲͪÏ@ü|®Ï®ÏÄÏÏÏÖÏáÏìÏÐÐÐ%Ð8ÐBÐBÐ^ÐxÐЈÐ�ВОЧЮбжÐÌÐÖÐèÐîÐúÐÑÑÑ*Ñ?ÑFÑFÑFÑTÑbÑlÑoÑ}чъќѡѦѶѹѾÑÎÑÑÑÕÑÞÑæÑøÑÒÒÒÒ Ò2Ò8ÒDÒYÒ`ÒhÒzÒ€Ò�Ò Ò Ò§Ò§Ò§ÒµÒÃÒÍÒÐÒÞÒèÒëÒýÒÓÓÓÓ Ó/Ó2Ó6Ó?ÓGÓYÓaÓaÓmÓzÓ‚Ó‚Ó…Ó�Ó®Ó¼ÓÔAhoÅfØf؀ؚؓءجؿØÂØËØÒØÕØåØóØþØ Ù Ù"Ù.ÙCÙNÙYÙdÙoÙzÙ‘Ù�ٴټÙÅÙÍÙÚÙõÙøÙþÙÚÚÚ$Ú7Ú=ÚEÚEÚSÚeÚrÚ…Ú‹Ú“Ú¦Ú¬Ú´Ú´ÚÝÚâÚÛÛÛ ÛÛÛ'ÛAÛMÛ]Û}Û™Û­ÛµÛ¿ÛÞÛòÛòÛhÜB 6+6+@+H+M+CÉÇfSfSƒSŽS¡SŽS»SÉSÉSÙSâSéSíSöSöSþST T,T8T>TITkTkT~T‰T�T–T›T›T®T¹TÄTËTÓTàTàTòT÷T÷TU U U U U$U7U=UDUYUmUmUrUrU‚U‡U‡UŒU“U›U¢U¤U¬U³U³UÂUÈUÕUÜUßUVV VV#V*V,V@VOVTVYVYVYVlVqV€V‡VŽV£V·V·V¼V¼VÄVÚVßVóVúVÿVÿV WW,W;WNWRWaWoW}WŒW©W´W¹WÈWÜWãWêWúWüW +XXX*X7XGXNXcXjXvX‡XžX X¬X·X¹X¹XÄXØXåXíXïXYYY,Y8YYY`YlYŠYŠYŠY’Y�Y¡Y©Y­YµY¼YÌY×YñYöYýYZZZZZ-Z:ZHZSZ^ZlZrZxZ~Z‡Z�ZœZ©Z±Z½ZËZâZäZíZøZúZ[$[*[0[6[?[P[w[[‰[–[®[µ[Á[Ð[å[å[ò[÷[ \\\\\Ë\DDŽ›NŒNŒbŒnŒ„ŒpŒ�Œ’Œ¤Œ¶Œ¾ŒEìˆÿ&Z&ZHZRZ…Z”ZªZÎZÓZ×ZßZèZ÷ZþZ[ [![2[Q[Y[[[z[‚[‘[˜[¤[©[°[¸[¾[À[Ü[á[÷[ã[\ \ \\\)\H\O\Q\p\w\w\w\‹\Ÿ\£\±\Ä\¼\Ü\á\ì\ó\û\]] ]$]:]&]F]L]L]h]m]†]r]’]˜]�]¹]¾]Ô]À]à]æ]í]õ]û]ý]^^4^ ^@^F^F^F^N^W^W^a^a^y^©^½^Á^Ï^â^Ú^ú^ú^ _FüE€îÝîÝ Þ)Þ.ÞOÞmÞ|ÞšÞ®ÞÆÞÍÞÒÞóÞß ß=ßNßeßißißmßrßwß�߄ߎߔ߱ߴߴߴ߹߿ßÛßéßõßþßàà#à?àJàVà_àsàsà‚à‡à‡à•àGl¬Ã¦D¦D´DÎD»DíDÚDùDEûD-EE9EGEOEZE\EgErErE‘E—EHP‡—FóFóZógóvó‚óˆó²óÈó´óßóÔó÷óÿóIŒg†ÖñÖñò+ò+ò>òBòaòuòzòzò‡ò�ò—ò¬ò¸òÉòÎòßòóòøòúòúòúòó+ó+óEóJP�­.7.7W7Y7g7m7‹7š7©7¸7Æ7Ñ7Ô7ä7Kì8n0n0˜0›0ž0¤0©0À0×0î01&1M1P1i1€1’1Ÿ1²1Å1Ê1Ò1Ü1ä1ä1ë1ô1ô1ÿ1'2A2G2`2y2{2•2›2´2Í2Õ2à2à2ê2ê2ü2:3O3a3L$ty¶d¶dádÊdëdódMLu„ÞÇÞÇðÇÈÈ'È.È6ÈFÈNÈ_ÈeÈ—ÈNTHYˆbˆbšbœb¥b®b¼bÁbÊbÍbÒbàbêbíb÷bO¨!Gà`à`ð`ù` aa%a1a=aIa`a`aoazaƒaŠa“aªa½aÂaÔaãaïabb +b*b*b,b?bAb[bgbjb�bPxîˆ(m(mAmLm\m¥m¬mÀmÇmÏm×màmèmðmòmúmn nn/nGnPnPn…n¯n¸nÚnôno;oGoiokoroyoyoœoµoÜoõop5p\pupœpµpÜpõpqq+q8q=q=qLqYq^q^qeqpq‚q›q´qÍqÏqÏqÏqÖqÖqãqèqèqèqùqrr/rirprprprxr•r£rÁrÊrÓràrîrs$s$s$s7sEsassssŠs�sºs¼sÓsÙsêsósõstttt t tDtFtMt^tgtitwtyt‡t‰t—t—t·t·t·t·tÄt×têt uu1u9u=uEuIuWueuguousuwuu�u›u›uµuÀuÖuèuv v*v4v;vTv`vgv€v€v’v—v™vŸv°vÁvÐv×vèvñvóvwwww!w!w!wEwEwbwiwpwsww‚w�w”w¢w¦w´w¸w¸wÑwØwÝwëwüwxx9xLx[x]xlxnx}x‡x‡x•xžx´x»xàxåxy>yCyQySyayjy„y†yˆy�y y©y«y¹y»yÉyËyÙyÙyùyùyùyùyùyzzz#z?zdz}z‚z‚z‚z¤z©z©z©zÉzÎzÎzÎzízòzòzùzûzûz{{{ { {{{3{I{n{Š{ž{£{£{¾{Ë{Í{Ü{å{ÿ{||||'|)|)|1|,|j|j|j|‰|‰|‰|ª|¯|¯|¯|Ñ|Ö|Ö|Ö|ö|û|û|û|} } }:}H}J}Y}b}|}~}~}ƒ}~}¤}¦}¦}®}©}ç}ç}ç}ò}ò}~~F~^~v~�~—~§~¼~Ô~è~/FMEƒQ|.>ä>äbävä�ä–ä´ä¿äÝäÝäÝäêäååååå)å+å+å9åFå^å^åoåƒåRçe¾×¾×Ø×á×ØØØØØ Ø'Ø-Ø:Ø:ØWØ\Ø\ØbØgØgØmØrØrØxØ}Ø}ؕبخسسؼØÜØÜØÜØãØåØåØìØîØîØôØôØûØýØýØÙÙ +Ù Ù ÙÙÙÙÙ!Ù'Ù-Ù5Ù5Ù5Ù5ÙAÙIÙQÙYÙaÙiÙqÙwÙ�ٞ٨٫٫ٵٻÙÁÙÁÙÅÙÍÙÔÙØÙàÙèÙîÙöÙýÙÚ ÚÚÚ"Ú(Ú5ÚAÚGÚOÚSÚZÚbÚjÚnÚtÚ|ÚƒÚ‹Ú“Ú—Ú�Ú¨Ú­ÚÃÚÔÚÙÚÜÚ‚ÛSL˜§„„1„3„:„P„`„f„~„–„™„«„ó„TÔ*[.ë.ëBëWëfëjëxë~ë�ë�ëœë§ë²ë½ëÄëÔëëëþëì ì ììì3ì5ì?ì`ìkìmì†ìŠì˜ì�ì�ì¤ì°ì¸ìËì5íU$nsvdvd¡dŠd«d³dVl  ~H~HŒH¦H“HÅH²HÑHæHÓHIòHI I'I2I4I?IJIJIiIoIW,6Ò6Ò?ÒEÒMÒ\ÒkÒpÒXTÒΡΡï¡¢ ¢¢7¢A¢O¢i¢v¢v¢€¢€¢‡¢š¢˜¢¨¢¨¢³¢½¢âɢ̢ڢá¢ù¢££££%£0£J£e£y£–£¸£½£ãÉ£Ô£á£ÿ£ç£¤ ¤¤¤ ¤?¤'¤H¤L¤R¤Z¤_¤_¤l¤r¤�¤y¤™¤�¤£¤«¤°¤°¤ѤÕ¤Û¤ã¤ò¤ ¥ù¤¥¥#¥+¥0¥0¥Q¥U¥[¥c¥c¥h¥u¥“¥{¥œ¥ ¥¦¥®¥Î¥¶¥×¥Û¥á¥é¥é¥ö¥¦ü¥¦!¦'¦/¦O¦7¦X¦\¦b¦j¦j¦j¦€¦€¦€¦€¦‹¦•¦ž¦¾¦ʦئݦë¦ÿ¦§§§§ §(§4§H§U§d§s§�§’§’§�§¥§²§½§ʧէ裡¨¨#¨#¨.¨D¨Q¨Y¨e¨s¨x¨†¨š¨š¨¢¨š¨º¨¿¨¿¨ΨÓ¨Ó¨â¨ç¨ç¨ø¨ý¨ý¨©©©&©5©:©:©M©\©a©o©a©ƒ©ˆ©–©ˆ©ª©¯©½©¯©Ñ©Ö©ä©Ö©ø©ý©ý©ª ªAªFªTªFªhªmªmªŠª�ª±ª¶ªĪ¶ªتݪݪúªÿª!«&«4«&«H«M«M«j«o«‘«–«¤«–«¸«½«½«Ø«Ý«Ý«ø«ý«ý«¬¬¬8¬=¬=¬X¬]¬]¬x¬}¬}¬˜¬�¬�¬¸¬½¬½¬άÓ¬Ó¬ä¬é¬é¬õ¬­­­­&­?­D­g­n­x­}­Ž­˜­­­¸­½­έÙ­á­æ­æ­ê­î­õ­ÿ­ ® ®®!®!®!®%®;®D®D®g®l®l®t®ˆ®‘®«®¸®îήÙ®ë®÷®¯¯¯¯¯3¯>¯H¯S¯X¯c¯k¯p¯p¯{¯ƒ¯Œ¯—¯§¯¿¯ׯë¯ð¯ð¯û¯°°#°D°P°^°c°q°u°z°z°а•°�°¢°­°º°Űß°ñ°±±±±&±+±6±C±N±h±z±Œ±Œ±Œ±Œ±‘±–±–±¢±³±³±Ù±Û±÷±÷±²² ²!²-²5²R²c²m²x²›²¬²½²βÙ²ñ²³³³³³³³)³.³.³6³A³F³F³N³l³V³„³‰³‰³‘³¯³™³dz̳à³̳ø³ý³ý³ +´´´´´´(´9´K´P´P´d´P´|´�´�´‰´Ž´Ž´¡´¦´¦´¹´¾´¾´Ø´è´í´í´µµµµ6µFµKµKµeµuµzµ‘µzµ©µ®µ®µ¹µ¾µúµèµÖµ¾µ¶¶S¶A¶/¶¶k¶p¶p¶¶�¶”¶”¶£¶³¶¸¶¸¶ǶÕ¶Ú¶·ð¶Ú¶· ·G·5· ·_·d·Œ·z·d·¤·©·©·Æ·°·ð·¸¸¸ ¸ ¸J¸Z¸_¸_¸k¸p¸p¸|¸�¸�¸”¸¤¸©¸©¸¼¸̸ѸѸä¸ô¸ù¸ù¸ ¹¹!¹!¹)¹.¹.¹6¹;¹;¹C¹H¹H¹P¹U¹U¹h¹m¹m¹€¹…¹Ó¹Á¹¯¹�¹…¹à¹å¹3º!ººý¹å¹@ºEºEºTºoºtºtº…º º¥º¥º¶ºĺɺɺѺÖºÖºÞºãºãºëºðºðº(»»»÷ºG»b»g»g»Ÿ»�»{»n»¾»Ù»Þ»¼þ»ö»Þ»(¼-¼_¼M¼E¼-¼w¼|¼–¼€¼|¼®¼³¼мº¼³¼è¼í¼í¼ù¼½"½3½3½Y½[½q½w½w½“½ ½ѽ¾¾ð½ ¾'¾'¾'¾3¾8¾8¾K¾V¾`¾e¾p¾z¾¾¾™¾ž¾ž¾¦¾«¾¿¾«¾˾Ö¾Û¾ï¾Û¾û¾¿ ¿ ¿¿$¿)¿)¿4¿?¿D¿D¿U¿Z¿Z¿k¿p¿p¿Š¿•¿š¿¢¿š¿®¿³¿Ç¿³¿Ó¿Ø¿à¿Ø¿ì¿ñ¿Àñ¿ÀÀÀ*ÀÀ6À6À6À;ÀGÀ;ÀZÀ_À_ÀkÀ_À~ÀƒÀƒÀ�ÀƒÀ¢À§À§À³À§ÀÆÀËÀßÀËÀëÀ÷ÀÁ ÁÁ&ÁÁ2Á>ÁIÁTÁYÁmÁYÁ�ÁyÁŠÁ�Á�Á—ÁœÁœÁ¥ÁªÁªÁ³Á¸Á¸ÁÁÁÆÁÆÁÑÁÖÁÖÁáÁæÁæÁñÁöÁöÁÂÂÂÂÂÂ!Â&Â&Â1Â6ÂJÂ6ÂVÂaÂlÂwÂ|Â|†‹‹•šš¤©©³¸¸ÂÀÂÅÂÅÂÒÂ×Â×ÂäÂéÂéÂéÂéÂéÂñÂöÂöÂþÂÃà ÃÃÃÃÃÃ%Ã*Ã>Ã*ÃJÃ[Ã`Ã`ÃrÃ}Ã�âøÃÃÃÜÃÈÃèÃóÃþÃÄÄÄ Ä@ÄEÄ[ÄfÄÄkċĖġĦĦĸÄÃÄãÄèÄþÄ Å"ÅÅ.Å9ÅDÅIÅIÅoÅ[Å{śŠŶÅÁÅÆÅáÅÍÅÆíÅ Æ#ÆÆCÆ/ÆOÆZÆ_Æ_Æ…ÆqƑƱƶÆÌÆׯÜÆ÷ÆãÆÇÇ#Ç9Ç%ÇYÇEÇeÇpÇuÇuǛLJǧÇÇÇÌÇâÇíÇòÇ ÈùÇ-ÈÈ9ÈOÈ;ÈoÈ[È{ȆȋȋȚȟȟȮȳȳȳȹȾȾȾÈÈÈÊÈÊÈÔÈáÈÉÉÉ É É É É ÉÉÉ&É-É8É8ÉEÉKÉRÉ]ÉhÉsÉ~ɉɃɬɤÉÄÉÒÉÌÉõÉíÉ Ê Ê ÊÊÊ1Ê7ÊEÊXÊXÊpÊzʎʨʨʨÊÉÊÙÊîÊËËË8Ë?ËNË`Ë`ËdËiËpˀ˟˟ˣ˺ËÁËÆËÆËÊËÕËáËïËÌ%Ì6ÌDÌw̞̲̃̈̾ÌÌÌÑÌßÌûÌ&ÍLÍOÍ_ÍaÍaÍeÍ„Í�Í�Í’Í ÍËÍëÍëÍëÍîÍÐY, vÒvÒ„ÒŠÒŽÒ�Ò¬Ò²ÒZ`áõ^™^™t™–™£™§™¶™Ï™Ó™Ù™ì™ š š š<š*š š[šeš[8cmdd'dd3d>dIdTd_dkdqd\\�”ˆœˆœ–œ˜œ£œ«œ¶œÁœÌœÎœäœäœöœ� ��=�]ܳfîéîé ê)ê7êYêYêjêwê•ê�êÊêÏêøêë1ë7ë;ë^ë„ë‰ë²ëÌëòë ììì,ì4ì9ìJìRìqìwì{ì”ìœì»ìÀìÑìÙìøìýìí ííí%í-í9íOíTífíkí|í�í“íœí°í»íàíî5î:î:î:îJîQî_îlîŽîŽî¥îªîªîÁîÃîÃî×îÙîÙîðîòîòî ï ï ï"ï"ï3ï8ï8ïHïmïï„ï„ï„ï„ïœï¿ïÒïðïðïðïýïðððð#ð:ð<ð<ðIð`ð`ðwðyð“ð±ð±ð±ðµð·ð·ð·ð¼ð¾ð¾ðÃðÃðÍðÒðÒðððððððøðúðúðúðñññ ñ ñññ3ñ5ñHñ^ñ^ñ^ñ^ñ^ñqñ‰ñ‘ñ‘ñÔñ^` +UU(U4URUnU{U’U¥U°UÅU²UÑUÙUäU÷UðUVV_ôWæ=æ=>>> >'>,>.>5><>@>R>„>ž>‹>¶>»>Ü>Ü>è>ð>ÿ>9?>?k?s?x?�?Œ?”?›?º?À?ß?á?@ @"@A@G@N@N@T@W@[@l@Œ@ž@`$–ܖܥܽܽÜÃÜaxb|6ç6çVçxçxç‚ç‡ç‡ç¦ç³çµçµçµçµçÂçÊçÝçñçóçóçûçèè èb”"~/~/ /ª/¶/»/Ë/Ñ/æ/ú/ 00%0<0D0N0]0e0r0z0}0}0}00Ž0˜0¡0©0¬0¾0cHÏî9î9:#:&:/:5:L:c:z:Œ:º:Ö:ð:õ:ú:;;.;;;N;d;x;};ˆ;¨;­;°;Ê;ä;ì;ô;ù;<-<5<=<B<\<d<i<‰<Ž<‘<«<Å<Í<Õ<×<ñ< ====7=?=?=D=I=T=T=_=_=k=k=}=½=Ó=Ó=ã=dd¤¹È‰È‰Ø‰ß‰ë‰ñ‰ù‰ŠŠ&Š=ŠJŠJŠMŠ[ŠkŠ‚Š†ŠŽŠeºû++-+2+F+u+�+Ž+˜+¨+¨+¿+Æ+Ý+ä+í+,,,,0,0,F,F,\,\,r,r,ˆ,ˆ,ž,ž,´,´,Ë,Ë,â,â,ù,ù,--'-'->->-U-U-m-m-…-�-˜-©-´-Å-È-Ê-á-è-ô.f¬÷†† ¦­µ½ÀËÝÝñøûý"8;ILOVZbp‚’•äg(FLÆ’Æ’í’Ú’ù’““hCFKFKiK~KƒK‹K“K›K¨K®K·K½KÂKÊKæKìKîKðKýKýK +LÿKL!L#L%L2L2L2L7L@LHLQLYL[LcLkLsL€L†L‘L˜L¨L³L¿LÝLäLïLõLM +MMM&M6M>MAM§Mi8-77070K0O0T0_0j0m0q0y0j¤ö›fšfš„š¨š®šµšµš¼šÜšáš÷š›ÿš ›2›D›M›U›_›}›�›˜› ›ª›Û¯›Ï›á›ë›ó›ø›œÿ›3œ œ?œUœAœuœaœ�œ“œ�œ¥œ¥œ®œ¶œÌœåœ÷œ� +� +���4�6�;�F�\�\�\�`�l���›�¥�²�Ó�á�ë�í�í�žž(ž+žKžOžnžrž•ž™ž¸ž¼ž¼ž¼žžОÚžóžùžŸŸŸŸ Ÿ9ŸDŸRŸ\ŸuŸxŸ€ŸŒŸŽŸ–Ÿ™Ÿ²Ÿ´ŸÀŸŸÊŸП韠  " ' 9 H a r r } ˆ   ¬ Á Æ Ø ç ¡¡¡¡"¡*¡8¡?¡Q¡kfä†Û†Û Û©ÛÉÛÉÛÏÛ×ÛßÛçÛïÛõÛÜÜÜÜÜÜ Ü Ü&Ü+Ü+Ü1Ü6Ü6ÜNÜaÜgÜlÜlÜuܕܕܕܜܞܞܥܧܧܭܭܴܼܼܶܶÜÃÜÅÜÅÜËÜËÜÒÜÒÜÚÜàÜæÜîÜîÜîÜîÜúÜÝ +ÝÝÝ"Ý*Ý0ÝHÝWÝaÝdÝdÝnÝtÝzÝzÝ~݆Ý�Ý•Ý�Ý¡Ý§Ý¯Ý¶Ý¾ÝÆÝÊÝÐÝÛÝáÝîÝúÝÞÞ ÞÞÞ#Þ'Þ-Þ5Þ<ÞDÞLÞPÞVÞaÞfÞ|Þ�Þ’Þ•Þ;ßl`'"'"0"7"K"_"d"‚"‡"¥"§"Å"Ç"Þ"ò"û"ý"#!#R#m|2ÍББæ‘÷‘’’*’;’N’V’d’‚’�’“’ ’µ’µ’È’Ù’ß’ô’““$“)“1“9“?“W“j“u“y“ƒ“˜“ž“ “­“¯“Á“Á“ȓГâ“â“ñ“ÿ“”” ”$”0”4”@”D”P”T”T”g”z”€”„”Ž”’”¡”¥”´”¸”˔ϔϔϔϔԔæ”õ”••-•=•M•R•R•R•^•f•n•t•‰•‘•Ÿ•©•·•½•¿•¿•¿•¿•¿•¿•¿•¿•¿•˕ӕەá•ö•þ•– +–––––0–6–B–H–U–p–€–Œ–’–Ÿ–±–¿–Þ–8˜nÔ¼íHkHkZkkkvk�k—k©kÁkÆkÏkÖkãkêkøkÿkll l ll+lEl[lslxl�lˆl•l©lÄlËlÍlÐlÕlølm"mo$hm×&×&å&ù&''p¤b‡ÎXÎXâXéXYûXY Y'Y'YGY]YIYiY�Y{Y›Y Y§Y§Y¯Y¶YÁYÌYÔYÜYçYòYZýYZ%ZqFƒælælm m!m9mCmNmNmSm^mjmumƒm“m£mªm°mÅmÚmÚmîmömnn"n/n@nQn_nmntnzn�n¤n¤n¸nÅnÖnænìnýnýnoo"o/o?o¡or8¬¶öJöJúJÿJKK#K,K1K6K8Ks88B00“0—0œ0§0±0´0¸0À0t0†Ž>I>ITIgItIzI}I…IuÜtöö#.7GY_ek�p•¢¥­¿ÅÊí +!'7=IW\jƒ‘šª¬³¸Àßíù29CRX^dj€¡µÁØãòÿ+9P\aoŽ ·ÀÆÑÖÜóþ  /1?N``h‹–Êv`ÌàN˜N˜d˜†˜“˜—˜¦˜ŘɘϘâ˜ÿ˜™™2™ ™™Q™[™wT�Þ–à–à®à¶àÃàãàõàüàá áááá<á<áCáFáKáZá^á‹á�á”á”á›ážá£á¯á½áÁáÒáááåáçáöáúáâ â%â%â9â<âHâRâYââŠâŽâ“âÉâàâëâïâã ãããã ã ã:ã>ã@ã@ãKãOãiãmãmãmãqã”ãxˆßý–ã–ãªãÀãÀãÀãÂãÂãÉãËãËãÒãÔãÔãáãããããðã÷ãùãùãä äää'ä,ä,ä<äy°‰±nene†eŽe™eóeÞeÓe¾e§eùe fûe&f&f?f3flfqf}fˆf�fŠf©f¯f¶f×fÉf½fëfífggg:g:g:gFgz †*>´>´[´b´j´u´Œ´–´–´­´·´Ò´è´ö´ú´µ.µBµIµMµfµpµ�µŽµŽµ•µœµ¡µ¦µ«µ²µ¹µÓµÚµêµîµîµøµ¶¶¶#¶6¶I¶I¶O¶Z¶a¶i¶t¶{¶ƒ¶Ž¶•¶•¶ ¶¾¶Â¶Ú¶Ë¶õ¶õ¶û¶···'·.·2·4·F·F·F·X·`·†·”·”·˜·­·µ·Å·Ð·å·ê·ø·¸¸¸(¸,¸1¸9¸=¸L¸N¸]¸_¸n¸p¸¸†¸Š¸ž¸¦¸´¸»¸¿¸Ï¸Ú¸ß¸ý¸¹¹¹¹&¹4¹;¹?¹G¹[¹c¹n¹r¹r¹r¹}¹ˆ¹˜¹¤¹º¹Â¹Í¹Ü¹ä¹ï¹ô¹ü¹ººº"º'º9ºAºLºLºLºLºZºiº†º’ºšºªºººØºÜº »»ñº»»%»,»;»J»R»`»g»k»m»|»„»’»™»�»�»Ÿ»±»±»Ã»Ã»Ã»É»Õ»ç»ï»¼3¼A¼E¼c¼j¼q¼|¼’¼”¼›¼®¼¶¼Ä¼Ë¼Ï¼Ñ¼ä¼ì¼ú¼½½½½½½½-½5½C½N½R½R½W½_½c½r½t½ƒ½…½”½–½¥½¬½°½Ä½Ì½Ú½á½å½õ½¾¾#¾+¾9¾@¾D¾L¾Z¾a¾e¾m¾�¾‰¾”¾˜¾˜¾˜¾£¾ª¾¸¾Ò¾â¾í¾¿¿¿"¿.¿D¿L¿W¿f¿n¿y¿~¿†¿‘¿�¿¡¿¬¿±¿Ã¿Ë¿Ö¿Ö¿Ö¿Ö¿ê¿ú¿ÀÀ À4ÀEÀZÀgÀkÀyÀŽÀžÀµÀÎÀçÀéÀôÀüÀüÀÁ"Á3ÁJÁcÁqÁ|ÁˆÁ�Á’Á�Á¥Á¥Á¥Á¿ÁÍÁÛÁðÁÂÂ#ÂAÂHÂHÂXÂl††Š ¯ÂÊÂÕÂìÂôÂôÂÃÃ)ÃDÃMÃbÃ|ËØöÃÄÃÚÃóÃÄÄÄ3Ä3Ä?ÄWÄoÄxÄxÄxĄĕĭĶĶĽįÄÌÄØÄ>Å{ÌL»®ö®öÌö×öâö÷÷ +÷÷"÷(÷9÷H÷W÷d÷d÷j÷o÷t÷‡÷š÷¥÷©÷»÷È÷Ð÷Û÷×÷ò÷øøø ø&øø7ø.øAøCø_øKøgøuøuøwø“ø“øšø ø©ø°ø³øÕøéøÜøñø÷øùùùùùù ù ù+ù@ùIùIùIùIùeù|ù‚ù‡ù‡ùœù¢ù§ù§ù³ùÐùðùõùúùúùú#ú2úAúIúNúTúYúYú`úgúŠú§ú©úÆúÛúÛúáúáúîú÷ú÷úû$û/û4ûAûLûTû\ûlûƒûƒû“û“û¥û«ûÓûÜûÜûÞûåûêûêû÷ûüüüü$ü1üCüNü\üeüjü‘üšü¥üªü±ü¹üÌüáüæüíüúüýý(ý/ý5ý>ý>ýGýaýhýmý{ý‹ý™ý™ýŸý¦ý¯ý¯ýÂýÔý×ý×ýèýðýøýþ!þ(þ5þ7þ>þRþaþaþaþˆþˆþˆþ•þ•þªþµþÇþÔþßþíþøþÿÿÿ(ÿ;ÿ=ÿLÿaÿcÿqÿ†ÿ†ÿŒÿ•ÿ•ÿ¢ÿ¨ÿºÿºÿÇÿÊÿÕÿçÿîÿùÿþÿ 24Ncccelrƒ‘££©°¹¾ßèèî÷÷#&,5=HZ`kkx{�Š’�¯µÀÀÍÐÖßá+1<NT\\\\gà|”�¾g3g3{33ˆ3‹3”3�3¯3¯3Ø3Ü3á3ä3í3ý34444 4'4/474>4N4N4Z4}Œ >VV*V1VaVMVmVrVyVyV™V¯V›V»VëV×V÷VüVWW WWW%W0WCW;W[WcW~À-ee.e>eHeHeReRe\ene{e~e€e‰e–e–e¤e¸e¸eÜeéeéeùeff)f6f6fLfof…f¨f±f¾f¾fáfëfëfgQgWgWgWgig¸ºä�Š�Š¨ŠªŠ¶ŠºŠÇŠÊŠäŠäŠäŠêŠîŠöŠ‹‹!‹#‹#‹,‹.‹.‹7‹9‹9‹B‹D‹D‹M‹M‹V‹\‹_‹i‹z‹€‹Œ‹Œ‹ô‹€œZ}.*.*L*]*€*‡* *˜*¸*Ø*Ä*ä*õ*ú*++3+[+b+{+s+“+³+Ÿ+¿+Ð+æ+Ò+þ+ , ,#,#,-,�œX{Î-Î-Ú-ê-õ- .O.\.m..†.�.¡.¨.¶.Î.Ý.ê.í./ //%/1/=/A/H/~/‚x¬h¬h¬~¬…¬Œ¬«¬º¬É¬Ø¬ç¬ö¬­­­ ­ ­.­3­N­h­h­~­�­”­¢­©­®­®­µ­Ç­Ð­Ò­à­ò­ò­ò­®®!®,®9®>®N®S®c®o®t®�®†®–®›®«®­®½®¿®Ï®Ñ®â®ë®ë®í®ý®¯¯¯/¯A¯S¯e¯u¯u¯u¯x¯‹¯ƒ\åøø‹ø‹ŒŒ Œ-ŒBŒIŒSŒaŒdŒfŒpŒ‚Œ‚Œ‰Œ¿Œ„0ÎÖÎÎæ(ðî<D…`·Ë>—>—T—v—ƒ—�—œ—µ—¹—¿—Ò—ï—ñ—ñ—"˜˜ñ—A˜K˜†L4CF,F,T,f,l,t,†,Œ,•,§,­,°,ì,‡(–œ7373E3T3X3[3a3ˆ\DWî,î,ü,---.-4-=-O-U-^-p-v-y-Ç-‰, ÒÒÒ#Ò+Ò0Ò6ÒŠ¬!H + +$ +6 += +D +S +X +w +w +| +› +  +§ +¶ +¸ +× +× +ö + ø + & ( G G G G V o h ‡ ‘ ‹\?ŽaŽa«a³aºaßaíaïaýa +bbb2bAbLbPb[bgbrb~b•b¬b¿bÖbàbîbccc"c"c(c9c?cOcOcgcgcŒcŒc‘c‘c—c£c°c¼cÑcèc÷cdd d7dOdpdpdyd~d~d~d~dŽd—dŸd¤d²dÀdÐdÕdÕdãdãdèdèdòdýdee!e1eHFÓFÓOÓOÓ]ÓaÓhÓkÓpÓ‘D*N+N+h+{+…+Œ+˜+°+¹+½+Ï+Õ+ô+’Ðy©®ø®øØøÛøâøèøîøðøöøüøüøùù ù-ù:ùMù\ùpùvùxùù…ù�ù�ù ù¢ù©ù¯ù¹ù¹ù¹ùÐùâùéùøùúù úúú-ú“0+3ö+ö+ÿ+%,6,<,<,D,”„\y6í6íHí]ígípíríyí‰í”í–í í í¦í·íºíºíÛíæíèíîî îî+î~î•  +ž*ž*§*Å*Ê*–h÷ î^î^___(_3_9_J_P_a_g_s_Š_Š_œ_­_º_À_Ñ_×_%`—�¶ÖîOîOP!P5P=PKPOPXPXP]PjP€PªP¯PÓPÛPàPçPýPQQ+QAQeQQ‘Q˜ˆù&ý&ý>ýPýWý^ý}ý‚ý¡ý¦ýÀý­ýßýÌýëýþíý þ þ+þ+þ+þ=þDþcþcþkþ™ y}PˆPˆYˆeˆjˆš(Aãã@ãHãNãVãXãXãiãiãiãqãyã‹ãšã‹ã¯ã±ã±ãËãÍãÍãØãÝã÷ãüãüãüãää ä"ä/ä1ä>äFäNäUädäqäsä„ä‘ä‘ä‘äšä¬ä¿äÅäÍäÏäÜäÜäñäñäñäüäåå#å#å#å1å7å<åDåOåaålåqåqåxå|åŠåŽå—åžå¼åÉåÐåÙåõåúåúåúåúåæ æææ;æ;æ;æBæPæ_æræ…æ‡æ‡æ‡æšæšæ¡æ¨æ­æ³æÅæÏæêæççç-ç2çVç]çiç‡çšç¥ç¬ç°ç°ç°ç°ç»çÅçÓçõçèè'è'è5èSèƒè–è§è¾èÑèÖèÖèÖèÞèéèûèé é é ééJéPéPéPé[éeéqé|é~é~é~éƒé�é�éÙé›H%—/—/¥/¬/·/Å/Ð/Ø/Ø/ð/ú/00œ0 ¦T¦TÍTºTÙTïTèTUU�T<M^(^(x(„(–(¬(Í(º(å(ö())?),)W)o)o)y)ž,×–Q–QÈQÜQäQïQöQýQRRR R)R0RKRMRTRoRvRR�R–R„R¢R¢R¢R°RºRÇRçRéRS S S'SESJSQSeSlS‡S‰S�S«S¿SÚSÝSåSòSTT.T6T6TRTRTmTmT“T¥TŸTXi>>Tbhn�›­±·ÅÈÒ Lgnþnþ�þ’þªþÅþ±þåþÑþñþÿóþ'ÿÿ3ÿ?ÿDÿPÿ`ÿgÿtÿÿ‹ÿ–ÿžÿ£ÿ¯ÿ´ÿÈÿÏÿÓÿÞÿãÿîÿ!5<@@E^c|‘£¨³»»»½Öëö    -%Ee¡àZŽøbøbc c%c2c@cIcdcrc”c�c­cÇcÒcâcäcæcðcücd dd+d3dKdOdOdOdOdTdrdŒdŒd“d–dždªd³d e¢d~“.,.,L,o,€,‡, ,˜,¸,Ø,Ä,ä,õ, -÷,#-0-0-H-H-R-£@I•– – ® À Ë ó Þ Ò ÿ  J 5 ) V p p � ¤ ‘ Ñ ¼ ° Ý ÷ ÷ ÷  # # P i ] – › ® ¢ Ð Á Ü ú 8%SD_}’ªžÌ½Øòòò9Feem¤(.à.à<à_àeàjàjàpà¥(!'¶Ò¶Ò¿ÒÍÒÓÒÕÒÚÒ¦D]j999%9.9:9O9W9]9c9e9e9t9§„½Ú(¦(¦[¦g¦k¦s¦{¦¦Š¦Ž¦’¦–¦ž¦£¦§¦¸¦É¦Ë¦Ï¦à¦ñ¦þ¦§§"§"§"§4§¨€8˜8˜Q˜X˜_˜f˜l˜|˜‡˜‘˜œ˜³˜¶˜¸˜Ó˜Ý˜ç˜î˜ù˜ ™™™)™)™;™©˜b__4_T_\_g_v__ƒ_Ž_®_³_Í_ì_ò_÷_ +`7`@`V`\`d`g`l``¤`©`¿`Å`Í`Ð`ð`õ`a1a7a?a?aDaJaMaXaxa}a—a¶a¼aÁaáaêaïabbb;bDbFbebmb�b’b¬bËbÑbÖbÖbÖbÖbãbôbÿbc"c5cBcZcncc‰c‹cŸc°cµcÀcÍcícícícÿcª°)ˆžˆž«ž¸ž½žÁžÊž×žãžîžùžŸ ŸŸŸ#Ÿ+ŸEŸkŸeŸ{Ÿ„Ÿ¹Ÿ¥ŸÉŸÉŸáŸìŸ  3 l l l l Í «0ùAÀŒÀŒåŒñŒüŒ� ���&�4�>�P�Z�`�j�p�z�����“�œ�Ç�Ö�Ù�Û�å�÷�ŽŽŽ2Ž2Ž5Ž?ŽTŽYŽiŽtŽyŽ�Ž ŽªŽ¿ŽÍŽÖŽÞŽìŽýŽ ��+�+�8�8�@�N�•�¬l£:f@f@@—@§@Ç@Ù@ñ@ A A6A>ABAEAIANAXA[AbAhAoAuAyA~AˆA™A A§A©A­A¶AÀAÃAÎAÚAÝAîAùAÿABB(B9BBBKBSB^BiBuB†B—B£B±B³BºBÁBÆBÊB×BÞBCCC#C,CECVC_ChCpCyCCƒCˆCŒC™C C®C¸CÍC×CàCùC +DDD$D-D3D7DF2F_FmFuF€F‚F�F˜F˜F�FÊFÏFüFGGG:G'GFGQGfGSG…GrG‘G–G‘G¬GºGÂGÍGÏGÚGåGåGêGHH"H"H/H4HSHUHtHtHtH|H´\ãöþ]þ]^&^,^7^E^Q^h^h^z^€^‹^›^¦^´^Á^í^µ(5;ff„—ž¥¬°²¹ÀÄÄÌåïï   - 1 6 R z ~ ‡ ‹ � ¡ ¾ ¾ Ì à å þ      F [ b u y ~ š  Ê Ó × Ü í ÿ !#!%!>!Q!U!U!U!q!™!�!¦!ª!¯!À!Ý!Ý!ë!ÿ!""."2"D"D"D"I"X"y"˜"£"©"¿"Ð"Õ"ê"#.#2#;#?#D#U#n#n#|#�#’#«#¼#À#À#Ç#Ú#Þ#ð#õ#$9$A$J$N$S$d$z$Š$ž$£$¼$Ï$Ó$å$å$å$å$ê$ %%9%D%J%`%q%q%q%x%‹%¤%¤%¤%³%³%Æ%Ý%è%ù%þ%&&&&&#&.&C&E&P&e&q&s&~&Š&š&¡&¨&²&º&¾&Â&Ä&É&Ñ&Õ&ç&é&î&ö&ú&ü&ü&''('H'b'n'z'�'�'”'˜'˜'˜'Ÿ'¤'¾'Ê'Ö'Ý'Ý'ô'ö'û'(!(-(4(4(A(K(K(](¶˜ ºœ H H=HLHLHLHfHfHuHuH{H}H}HƒH…H…H‹H�H�H”H˜H�H�H�H�H�H�H¥HºHºHÏHÚHäHñHII#I%I@IEI`IeIkIkI€IƒIªI·IÏIïIïIøIýIJ J!J0J5JSHSVSkSnSpSzSzS|S„S‰SŽS“S“S™S¡S¦S¦S«S¶S»SÀSËSÐSöSøSýSTT TTTTT T%TATKT_TsTyT�T�T�T•T›T¥T¯T½TÒTÕT×TáTðTõTõTõTýTU U UUUUU#U#U(U3U8U=UBUQUQUbUhUhUvU|U‚UŒU–U¤U¹U¼U¾UÈU×UÜUÜUÜUäUéUòU÷U÷UýUV V VVV V$V)V8V8VIVOVOV]VcViVsV}V‹V V£V¥V¯V¾VÃVÃVÃVËVÐVÙVÞVÞVäVìVñVñVþVWWWWW(W2W@WUWXWZWdWsWxWxWxW€W…WŽW“W“W™W¡W¦W¦W³W¹W¹WÇWÍWÓWÝWçWõW X XXX(X-X-X-X5X:XCXHXHXRXZX_X_X_XeXoXuX‰XŽXŽX”XžX¤X©X©X¯X½XÆXÔXÙXÙXßXíXùX YYY&Y0Y>Y>YCYCYNYNYNYRYWYWY]YaYfYnYtYvYYŽY–Y›Y¡Y¡Y©Y¯Y½YÈYÍYÓYÛYàYàYàYàYàYàYàYàYàYàYùYÿYZZZZ Z)Z4Z=ZEZJZJZJZPZXZ]Z]ZaZfZfZoZ}Z‰Z–ZœZœZ¥Z¹Z¹Z¿ZÈZÜZÜZåZçZíZöZ [ -[[[[[[[%[*[*[G[U[a[j[p[z[‚[‡[‡[‡[›[¤[ª[¼[Æ[Æ[Î[Î[Ö[Ø[Ø[ñ[û[\\\\ \\\\\\\\#\'\¢_·Ðà6u6uXunuzu˜u´uÁuØuëuöu vøuv v v/v/v7vCvYvnv}vˆv›v¡v¡v¡v¦v«vºvÅvÜvÞvãvòvýv -www"w¸”*Kؠؠð ÷ þ ¡ -¡ ¡¡¡¡9¡&¡I¡Q¡Y¡\¡^¡n¡w¡€¡†¡‰¡š¡±¡Â¡Í¡ÿ¡¹à.¢~<~<œ<§<¸<»<¿<È<Ï<Ý<ì<==$=6=H=W=f=w=†=†=”=˜=œ=¡=¥=²=¹=Ç=Û=ä=ê=ø=>>>!>!>&>&>&>+>+>:>C>K>a>a>a>f>f>{>‡>’>—>—>š>Ÿ>Ÿ>»>Ç>Ô>Ö>Ö>Ú>Ü>Ü>ø>???????$?&?&?)?)?2?8?=?Y?Y?Y?Y?Y?Y?Y?Y?Y?Y?Y?Y?[?l?~?�?œ?œ? ? ?¨?Ä?È?Í?h@º,îÑîÑüÑÒ ÒÒÒ»˜?a6W6WLWRWYW‰WuW•WšW¡W¡WÁW×WÃWãWXÿW X$X+X+X+X1X4X8X@XXXcXvXnXŽX˜X¼PQa§%§%µ%Ã%Ê%Ú%ë%ð% &&&!&/&;&M&‰&½D%~à~à’à à¦àÉàÏàÕàúàáá á áá¾ô#œÆ0Æ0Î0Ý0á0î0û011>1K1]11Ÿ1­1É1Û1ó1 -2262T2c2~2‰2¤2½2½2Ø23363H3W3f3f3q3„3•3¨3¸3Å3Ð3ß3ÿ3ÿ3 4 4 44)404O4X4e4i4q4|4”4¬4µ4Å4Í4Ò4ö455!555:5B5h5j5u5¨5Â5Â5Ú5é5ñ56 66#6B6J6R6]6_6o6‡6Ÿ6·6Ï6á6ø67 -77*7.727¿ ˆ…ˆ…‘…°…µ…À\…X¦È¦ÈÀÈÇÈÔÈßÈäÈêÈüÈÉÉ É>ÉRÉ]ÉcɅɅɕɪɬɯɻÉÃÉËÉÓÉáÉçÉíÉùÉùÉûÉ ÊÊÊÊ/Ê/ÊMÊMÊ`ÊmÊrÊrʉʒʡʷÊÂÊÐÊÛÊëÊøÊ -ËËË&Ë3Ë5Ë5Ë=ËBËBËJËOËOËWË\Ë\ËdËiËiËoËtËtË{ˀˀˇˌˌ˗˜˜˧ˬˬ˷˼˼ËÇËÇËàËçËíËðËûËþËÌ Ì.Ì5Ì8ÌJÌLÌRÌfÌŝ̤̹̂̂̂̌ÌÉÌÚÌàÌñÌ÷ÌüÌÍÍ(Í7Í=ÍNÍYÍcÍrÍ�͇͒ͭ͘ͳÍÄÍÏÍÕÍåÍåÍõÍÎÎÎ,Î3Î9ÎJÎUÎZÎwΌΚΪζÎÈÎÓÎâÎäÎöÎþÎÏ -ÏÏÏ&Ï,Ï6Ï<ÏGÏMÏOÏ\ÏiÏsόϚϚϠϧÏçÑÁ0#«p¨p¨�¨¹¨Á¨Á¨Ï¨â¨û¨þ¨©©©"©$©$©,©.©.©6©8©8©@©@©I©O©T©T©]©i©m©r©x©}©}©…©Ž©”©™©™©ž©ª©Â©á©ä©ù©ªªª ª"ª"ª"ª*ª,ª,ª,ª4ª6ª6ª6ª>ª@ª@ªKªKªQªVªVªVªVª]ªhªzªˆª–ª ª ª ª°ª°ª·ª»ªÁªÙªçªúª«/«2«9«K«S«\«g«g«r«x«}«}«}«„«Š«Ÿ«§«­«Ï«Û«á«æ«æ«í«ø«ø«ý«¬¬¬¬¬n¬Âd)¤B¤BÆBÐBÓBÓBÝBðBòBÿBC C C(C8C=CCCKCNC`CÃLWf/1/1C1G1L1W1W1a1g1g1k1s1Ä\CVÇ0Ç0Ý0Ý0á0æ0ù0ü011 111 1!1+1Å8(2æÒæÒïÒïÒýÒÓÓ ÓÓÆ¨²Øgg.g6gAgZgNg‡gágÌgÁg¬g•gçgügìghh(hOhThihVhuh{h{hˆh¯h×h½hëhiiiiÇl¥¼6.6.P.x.[.„.¤.½.¶.Õ.í.Ú.ù. /,/>/Q/Q/^/}/}/‡/È4“œ®è®èÂèÇèÍèÑèÕèôèüèɼLwæ’æ’þ’ ““,“D“I“N“R“T“Z“`“v“c“‚“‚“¡“¹“¦“œϓ蓔” -”””””2” ”>”>”Q”Y”k”…”~”‘”�”Ê4;D~Ý~݇ݓݲݷݹݹݾÝË”"@§@§N§`§d§l§t§§Š§’§�§¨§­§Ã§Ê§Ñ§Ü§ç§é§ô§ÿ§¨ ¨¨#¨,¨4¨4¨8¨o¨Ì€Úö/5/5M5Q5U5]5k5n5q5„5Š5Œ5›5Ÿ5£5«5³5¿5Ô5å5ì5ó5ó566Í\!´FIFIxIƒI¸I©I�I¾IíIòIòIöIJ J'J.JJFJ`J|JŽJ›J³JÇJÌJÓJøJÿJK -KK#K@KRK_KwK”K�K©K­K­K¸K¿KÑKÔKÖKìKÛKøKLL*LMBMRMqMfM}MM‘M¥M¶M¯MÅMÉMßMþMóM -N NN(NpEpQpapapop‚p�p‘p¢p¢p¢p§p§p³pÂpÕpÛpàpôpúpqqqq+q8q>qDqIqOqUq\qhqoqqqvq~q€q…q‘q“q˜q q¢q§q¯q±q¶q¾qÀqÅqÏqÑqÖqàqàqàqðqðqðqr rrr#r+rDrJrUrYr_rjrƒrŽr™rŸr¬r±r¶r¶rËrÓrÛrùrssss$s-s2s7sLsSs\shsnszs~sƒsˆs“sžs©s«s±s¾sÃsÈsásìs÷s÷sýs -t ttt3t>tItOt\t\t`tetetvtxtxt‹t�t�t t¢t¢tµt·t·tÊtÌtÌtÞtÞtätététuu u!u)u0u6u>uQu\uSululunu†u‰u‹u—u©u¹uÅuÜuöuûuv v2v7v7v=vQvcvnvvv~v‚v�v–v›v›v¡vµvÅvÊvÊvÐvÖvÛvÛvÛvávðvwwwwww"w"w'w2w>wXwnwzwzw€w�w�wœw¨w·wÊwÊw×wãwãwãwãwçwìwýwxx"x*x,x>xCxQx]xcxpxpx‡x—x—x«x·x¹xÂxÎxåxåxëxøxúx y yyyyyy“{ß „ÈžOžO¼OÊOÝOâOPP PP P&P5P:PFPXPXPvP�P”P›PµPÒPÞPùPQ-Q6QEQMQZQcQhQyQ‡Q§Q¬Q´QÍQßQïQõQR RRUR?R0ReR RŠR{R°R³RÓRgSà<*5dCdC…C‹C”C¦C¿CÇCÝCéCá„ |îî"*--=HHKRY_ekrx‰‰‹” ¦ÌÐÓãëðð÷ý%66?DNU\djlz‘”£¯¼¼¼¼ÂÔÚë 5<FNUU^eq�ŒŒŒ ´ÄÇ‚â„9ç6ç677737Y7o7€7‰7—7©7Â7Â7Ô7ê7ò7õ78ãX{ÍÖÖ );IO`go…� µÅÏÑáñú )47>X`z�œŸ§«½Ì×ßö#5=DHQSe|Š�”–£££¥¼ÂÂÔä  -(…(…1…E…J…å,ýDæ�æ����$�)�/�2�6�6�V�[�‘�}���¶�¢�Â�Û�Ç�ç�î�ó�ý�‘‘ ‘"‘‘.‘.‘.‘3‘D‘I‘O‘R‘V‘V‘v‘{‘±‘�‘½‘Ö‘‘â‘ø‘ä‘’ ’’’’’ ’8’$’D’D’D’D’\’…’‘’æ˜Íï  (##72FAP__nn}}ŒŒ››ª¾¹ÈÈ׿õ^çxÈâÖ\Ö\ô\] ]]/]/]A]G]R]b]n]w]}]ƒ]Ž]œ]©]µ]Ã]Ò]Ò]^èd�²þèþèééé/é6éBéBéYéYépépé‡é‡éžéžéµé·é·é»é騯øûû8û?ûJû`û`ûrû}ûˆû™ûªûÁûÅûÊûÎûÐûáûóûÿûüü,ü;ü?ü?ü?üRügügüsüyüƒüŽüœü£ü²ü´üÊüäüäüöüêP6FìCìCDDDD+D9D?DKDSD^DdDgDqDë ®-î7î7888 8'8.8D8U8f8x8Š8™8¨8¹8È8È8Ï8Ó8Ü8é8ð8ù899$9$9$9$9$9094979?9M9U9b9j9r9ƒ9Ž9“9“9 9¦9µ9Ì9Î9Ù9æ9õ9ø9þ9ú9:):+:9:;:F:L:L:T:T:f:m:ƒ:ƒ:ƒ:ˆ:ˆ:�:«:¶:»:»:¾:Ã:Ã:ß:í:ú:ü:ü:;;;;,;8;:;:;=;?;?;L;N;N;Q;Q;Q;Q;Q;Z;`;d;p;�;�;«;²;z<ì(rx(ˆ(ˆ6ˆ=ˆMˆPˆVˆí(nt ' '('2'B'M'M'k'îTzK†î†î¤îªî­î¶îÀîØîèîñî÷îúîþîïï(ï5ï;ï?ïEïGïJïNïNïqïuï{ï{ï‚ï¤ï¹ïÌïßïåïìï÷ïðððððð ð0ð6ð;ð@ðMðOðaðcðjðwðyð‹ð‹ð‹ð‹ð‹ð¯ðºðÆðÝðÝðòðþðñ?ñYñ^ñuñzñˆñŸñ¤ñªñ»ñÐñÖñæñóñ òòò6òBòBòBòHòKòNògòmò�ò‡òŒò—ò—òœò©ò¶ò¶ò¼òÊòáòçòêòíòôòýòóó óó#ó#ó)ó7óNóTóWóZóaóaóróyó†ó“ó“óšó¤ó«ó±ó¸óÃó×ó×óñóöóýóô ôô ô(ô@ôEôLônôyôô‡ô ô´ô´ôÏôÏôéô÷ôþôõ'õ:õ^õ`õjõŒõŒõŒõ¥õ±õÂõÚõÞõ³öï¼Ùii.i2i@iOiZifiqi‘isi�i¢i¢iÄiôiØiËijjCjHjTj_jjaj‹j�j£jªjÇjÚjÚjýjýj kð v*v*…*ž*¤*ñ8�™ŽIŽI§I¶IÊI×IÝIãIæIJò8 ÷.÷./ // /&/,/2/2/8/ó &+&+0+8+=+ôôÓŒ‚‚<‚L‚W‚b‚{‚§‚À‚삃ƒ"ƒ*ƒ,ƒ4ƒOƒRƒ]ƒiƒ‚ƒ®ƒǃóƒ„#„)„1„6„>„Y„\„g„s„x„‘„½„Ö„…,…2…8…@…B…J…e…h…s……˜…Ä…Ý… †3†9†?†G†L†T†o†r†}†‰†‰†ކ”†š†¢†ª†µ†džÖ†ñ†‡/‡5‡:‡L‡[‡y‡�‡·‡½‡Ňʇ܇뇈ˆDˆJˆOˆaˆpˆ‹ˆŸˆɈψÔˆÔˆÔˆåˆðˆûˆ!‰9‰D‰L‰Y‰Y‰^‰q‰ˆ‰�‰³‰ˉÖ‰Þ‰ë‰ë‰ð‰ŠŠŠ.ŠEŠ^ŠpŠ}ЍмŠÓŠáŠãŠ÷Š‹‹‹#‹9‹R‹e‹q‹„‹ˆ‹ˆ‹ˆ‹�‹”‹§‹³‹Ê‹Ì‹Ñ‹ä‹ð‹ý‹ŒŒŒõ”k t9t9Š9–9–9¬9·9¹9Õ9Õ9Õ9Ü9æ9ê9î9ñ9ñ9ú9þ9::J:V:a:q:�:†:‰:Ž:Ž:Ž:£:ª:·:¾:Æ:Ë:Ë:à:ì:ô:ù:ù:;;#;(;(;=;I;R;Z;b;n;„;�;²;¶;Ä;Ì;Ñ;Ñ;æ;< -<<<#<#<B<N<Y<^<s<<Ž<“<¢<¯<´<´<´<·<¼<¼<¼<Û<ç<ò<ô<÷<ü<ü<ü<====&=1=7=E=S=S=]=f=n=£=©=°=¿=Õ=Ú=Ú=í=õ=õ=÷=÷=÷=ü=ü=> > >>>>>>'>'>L>U>U>Y>tBö( tBtB‚B‹B™BŸB÷�1&w&wDwLwXwnwƒw‘wœw«w±w±w±w¶w»wÉwÔwêwìwñwÿw -xxx,xø\‘¤&-&-@-d-G-p-‰-‚-¡-¶-£-Â-Õ-ç-ú-ú-.&.&.0.ù8hröGöGHH2HAHGHMHPHqHú0�— ‰ ‰4‰@‰N‰Q‰i‰l‰t‰û0S[®Ó®ÓÂÓÊÓ×ÓáÓôÓüP>N † †¬†À†Ã†×†ß†ã†í†÷†ÿ†‡‡ýTš«JJ(J;J>JHJUJjJlJ~JˆJœJœJ¢J¥JùJþ<˜£x‰x‰Œ‰“‰Ÿ‰«‰»‰À‰Ã‰Ç‰Ï‰ÿ ,0áá$á0áHzˆÆdÆdÚdædñdeódeee'e3e;e Dƒ¶M¶MÚMáMæMîMNNN N N"Nîjîjþj -kk&k>kDkRkckkkrkˆk®kÈkÕkâkòkøkúk l-l4l:lHlPlflqlwl}l lôB»xgxg’g•gœg§g¶g¸gÃgÒgÒgßgígðgògòg÷güghhh h2h7hLhWhahahwhwh¤h¸hÍhÓhØhßhåhìhñhñh÷hýhiii#i;iAiFiZidikikikipipi™ižižiÇiîióióióiöiýij -jjjjj j j7jAjKjQjtjzjŠj–jœjªj±j³jÇjÍjÔjÔjÖjÖjÖjÛjájæjêjìjïjújk k kkkkk"kLk˜}Ÿ††¢§®¸¾ÉÙáéîù   $ , < C K S [ c h s � � — \X«n@n@†@�@Ÿ@Ò@Ý@é@÷@ë@AA$A,A;AuAwA¤A¬A¬AÙAñAÞA BýABB-BBBDBOBWBWBrBwB€B‹B“BžBÆB±B¥BåBÒBñBCóB3CCC?CYCGCtCyC“C€C²CŸC¾CÓCÀCòCßCþCþCD(D!D >>>>>>>#>#>2>;>C>Y>Y>Y>^>^>s>>Š>�>�>’>—>—>³>¿>Ì>Î>Î>Ò>Ô>Ô>ð>ü>? +? +? ??????!?!?*?0?5?Q?Q?Q?Q?Q?Q?Q?Q?Q?Q?Q?Q?S?d?v?…?”?”?˜?˜? ?¼?À?Å?`@º,æÑæÑôÑûÑÒÒÒ»˜?afWfW|W‚W‰W¹W¥WÅWÊWÑWÑWñWXóWXCX/XOXTX[X[X[XaXdXhXpXˆX“X¦XžX¾XÈX¼PQa§%§%µ%Ã%Ê%Ú%ë%ð% &&&!&/&;&M&‰&½D%vàvàŠà˜àžàÁàÇàÍàòàøàþàáá á¾ô#œ¾0¾0Æ0Õ0Ù0æ0ó01161C1U1w1—1¥1Á1Ó1ë12 2.2L2[2v2�2œ2µ2µ2Ð2ù23.3@3O3^3^3i3|3�3 3°3½3È3×3÷3÷34444!4(4G4P4]4a4i4t4Œ4¤4­4½4Å4Ê4î4þ455-525:5`5b5m5 5º5º5Ò5á5é5ø56 66:6B6J6U6W6g66—6¯6Ç6Ù6ð6ù677"7&7*7¿ €…€…‰…¨…­…À\…XžÈžÈ¸È¿ÈÌÈ×ÈÜÈâÈôÈúÈÉÉ6ÉJÉUÉ[É}É}É�ɢɤɧɳɻÉÃÉËÉÙÉßÉåÉñÉñÉóÉÊ ÊÊÊ'Ê'ÊEÊEÊXÊeÊjÊjÊ�ʊʙʯʺÊÈÊÓÊãÊðÊËËËË+Ë-Ë-Ë5Ë:Ë:ËBËGËGËOËTËTË\ËaËaËgËlËlËsËxËxË˄˄Ë�Ë”Ë”ËŸË¤Ë¤Ë¯Ë´Ë´Ë¿Ë¿ËØËßËåËèËóËöË +ÌÌ&Ì-Ì0ÌBÌDÌJÌ^ÌkÌzÌzÌzÌz̜̱̄ÌÁÌÒÌØÌéÌïÌôÌþÌÍ Í/Í5ÍFÍQÍ[ÍjÍyÍÍŠÍ�ͥͫͼÍÇÍÍÍÝÍÝÍíÍÎ ÎÎ$Î+Î1ÎBÎMÎRÎo΄Β΢ήÎÀÎËÎÚÎÜÎîÎöÎûÎÏÏÏÏ$Ï.Ï4Ï?ÏEÏGÏTÏaÏkτϒϒϘϟÏßÑÁ0#«h¨h¨‡¨±¨¹¨¹¨Ç¨Ú¨ó¨ö¨©©©©©©$©&©&©.©0©0©8©8©A©G©L©L©U©a©e©j©p©u©u©}©†©Œ©‘©‘©–©¢©º©Ù©Ü©ñ©ªªªªªªª"ª$ª$ª$ª,ª.ª.ª.ª6ª8ª8ªCªCªIªNªNªNªNªUª`ªrª€ªŽª˜ª˜ª˜ª¨ª¨ª¯ª³ª¹ªÑªßªòªþª'«*«1«C«K«T«_«_«j«p«u«u«u«|«‚«—«Ÿ«¥«Ç«Ó«Ù«Þ«Þ«å«ð«ð«õ«¬ ¬ ¬ ¬ ¬f¬Âd)¤B¤BÆBÐBÓBÓBÝBðBòBÿBC C C(C8C=CCCKCNC`CÃLWf/1/1C1G1L1W1W1a1g1g1k1s1Ä\CVÇ0Ç0Ý0Ý0á0æ0ù0ü011 111 1!1+1Å8(2ÞÒÞÒçÒçÒõÒùÒÓÓÓÆ¨²ØFgFg^gfgqgŠg~g·ghügñgÜgÅgh,hhGhLhXhh„h™h†h¥h«h«h¸hßhiíhi6i6i6iBiÇl¨¿f.f.€.¨.‹.´.Ô.í.æ.// +/)/”@”F”L”b”O”n”n”�”‰”›”µ”®”Á”Í”Ê4;D®Ý®Ý·ÝÃÝâÝçÝéÝéÝîÝË”"8§8§F§X§\§d§l§w§‚§Š§•§ §¥§»§Â§É§Ô§ß§á§ì§÷§ù§¨¨¨$¨,¨,¨0¨g¨Ì€Úö/5/5M5Q5U5]5k5n5q5„5Š5Œ5›5Ÿ5£5«5³5¿5Ô5å5ì5ó5ó566Í`!µvIvI¨I³IèIÙIÀIîIJ"J"J&J0J7C7c7u7‡7¥7¥7¥7²7É7Ë7Ë7Ë7Ø7ï7ñ7ñ7þ788&8.838Y8k8}8›8›8›8¨8¿8Á8Á8Î8å8å8ú8ü89%9C9H9O9]9g9i9i9i9…9�9�9�9±9ë9Ϥ/T†å†å¦åÈåÈåçå÷åüåüå ææ7æ?æFæHæ[æcæcæcæeæeæeæeæƒæƒæƒæƒæ•æ—æ—æ—æ—æªæµæØæÐy¶ΔΔä”ð”û”• •••#•(•3•8•8•8•j•W•v•x•}•ˆ•�•�•�•¿•¬•Ë•ò•ò•––+–>–C–C–V–i–|–�–”–”–§–º–Í–à–â–â–õ–——.—.—.—<—Ñ0Š’~è~èŒè’è–èµèÖèÖèÜèÒ<:E8888)858A8J8S8\8b8g8ÓluŒo'o'}'‡'Ž'¥'¥'ª'¬'¸'Â'Ð'í'ï'ÿ'ÿ'(( (?(ÔàŸÓFFZ„yeŸ¬¸Ë¾øý)€)€.€D€V€l€‚€µ€Ä€�ü€è€�$�P�U�]�|�„�©�ž�Š�¹�Ò�¾�ò�Þ�‚‚?‚?‚?‚?‚G‚ÕLÀϾ/¾/Ü/î/õ/00&090F0?0^0h0ÖÈg•w1w1›1Ÿ1¾1à1ì1ó1þ1 22 2 2$2.2F2Q2a2m2t22�2’2£2¥2§2§2§2¯2¯2¹2¹2Á2É2Ñ2Ù2Ý2ç233× ø„ø„…… …Ø`FZg8g8w8~8€8…8”8š8¯8¯8½8½8É8Ò8Õ8ã8í8ð8ø8Ù<œ§V¡V¡_¡j¡u¡€¡‹¡•¡³¡¾¡ΡÚ 2&`&`>`P`V`b`m`{`‡`ž`©`¹`Ë`Ñ`×`Ý`ð`ö`ÿ`aaa(a0a>aKaˆaÛ, Î*Î*Ü*í*++++Ü4°…°…¾…È…Ñ…Ø…ß…é…é…ï…ÝÄKxŽöŽöºö½öÂöÏöÔöæöèöìöðöóö÷ ÷A÷J÷U÷\÷u÷—÷œ÷µ÷×÷Ü÷ã÷ü÷ø ø9ø[ø[ø[øpøŠø™ø«øÞ„¦o¦oÄoÇoÍoáoéoúop ppp p(p.p>pLpNpmp~p…p‘p¡p¡p¯pÂpÍpÑpâpâpâpçpçpópqqq q4q:qBqTqZq\qkqxq~q„q‰q�q•qœq¨q¯q±q¶q¾qÀqÅqÑqÓqØqàqâqçqïqñqöqþqrr r r rrrr4r:r@rKrPrXrqrwr‚r†rŒr—r°r»rÆrÌrÙrÞrãrãrørss&s1stGt`tktvt|t‰t‰t�t’t’t£t¥t¥t¸tºtºtÍtÏtÏtâtätät÷tùtùt u uuuu-uAu6uNuVu]ucuku~u‰u€u™u™u›u³u¶u¸uÄuÖuæuòu v#v(vPPPPPnPyPŒP“P­PÊPÖPñP Q%Q.Q=QEQRQ[Q`QqQQŸQ¤Q¬QÅQ×QçQíQøQRRMR7R(R]R˜R‚RsR¨R«RËR_Sà<*5dCdC…C‹C”C¦C¿CÇCÝCéCá„ |ææ"%%5@@CJQW]cjp��ƒŒ˜žÄÈËÛãèèïõ ..7<FMT\bdr‰Œ›§´´´´ºÌÒã-4>FMMV]iy„„„˜¬¼¿zâ„9ç6ç677737Y7o7€7‰7—7©7Â7Â7Ô7ê7ò7õ78ãX{ÍÎÎù!3AGX_g}…˜­½ÇÉÙéòøý +!,/6PXr‡”—Ÿ£µÄÏ×î -5<@IK]t‚ˆŒŽ›››�´ººÌä  + … …)…=…B…å,þE��2�8�C�T�Y�_�b�f�f�†�‹�Á�­�Í�æ�Ò�ò� ‘÷�‘‘#‘-‘0‘4‘9‘R‘>‘^‘^‘^‘c‘t‘y‘‘‚‘†‘†‘¦‘«‘á‘͑푒ò‘’(’’4’;’@’F’I’M’O’h’T’t’t’t’t’Œ’µ’Á’æ˜Íï  (##72FAP__nn}}ŒŒ››ª¾¹ÈÈ׿õ^çxÈâÎ\Î\ì\þ\]]']']9]?]J]Z]f]o]u]{]†]”]¡]­]»]Ê]Ê]ú]èd�².é.é2éEéEé_éféréré‰é‰é é é·é·éÎéÎéåéçéçéëé騯øFûFûhûoûzû�û�û¢û­û¸ûÉûÚûñûõûúûþûüü#ü/üAüCü\üküoüoüoü‚ü—ü—ü£ü©ü³ü¾üÌüÓüâüäüúüýý&ýêP6FìCìCDDDD+D9D?DKDSD^DdDgDqDë ®-æ7æ78 888 8&8<8M8^8p8‚8‘8 8±8À8À8Ç8Ë8Ô8á8è8ñ8ø8ü899999(9,9/979E9M9Z9b9j9{9†9‹9‹9˜9ž9­9Ä9Æ9Ñ9Þ9í9ð9ö9ò9 +:!:#:1:3:>:D:D:L:L:^:e:{:{:{:€:€:•:£:®:³:³:¶:»:»:×:å:ò:ô:ô:ø:ú:ú:;$;0;2;2;5;7;7;D;F;F;I;I;I;I;I;R;X;\;h;ˆ;•;£;ª;r<ì(rx ˆ ˆ.ˆ5ˆEˆHˆNˆí(nt ' '('2'B'M'M'k'îTzK~î~îœî¢î¥î®î¸îÐîàîéîïîòîöîøîï ï-ï3ï7ï=ï?ïBïFïFïiïmïsïsïzïœï±ïÄï×ïÝïäïïïùïýïðð ððð(ð.ð3ð8ðEðGðYð[ðbðoðqðƒðƒðƒðƒðƒð§ð²ð¾ðÕðÕðêðöðñ7ñQñVñmñrñ€ñ—ñœñ¢ñ³ñÈñÎñÞñëñò +òò.ò:ò:ò:ò@òCòFò_òeòyòò„ò�ò�ò”ò¡ò®ò®ò´òÂòÙòßòâòåòìòõòüòüòóóóó!ó/óFóLóOóRóYóYójóqó~ó‹ó‹ó’óœó£ó©ó°ó»óÏóÏóéóîóõóýóôôô ô8ô=ôDôfôqôwôô˜ô¬ô¬ôÇôÇôáôïôöôýô õ2õVõXõbõ„õ„õ„õ�õ©õºõÒõÖõ«öï¼ÙFiFi^ibipiiŠi–i¡iÁi£iÍiÒiÒiôi$jjûiFjKjsjxj„j�j¯j‘j»jÀjÓjÚj÷j +k +k-k-k9kð n*n*}*–*œ*ñ8�™†I†IŸI®IÂIÏIÕIÛIÞIÿIò8 ÷.÷./ // /&/,/2/2/8/ó ++(+0+5+ôôÔ�N‚N‚l‚|‚‡‚’‚«‚ׂð‚ƒFƒLƒRƒZƒ\ƒdƒƒ‚ƒ�ƒ™ƒ²ƒÞƒ÷ƒ#„M„S„Y„a„f„n„‰„Œ„—„£„¨„Á„í„…2…\…b…h…p…r…z…•…˜…£…¯…È…ô… †9†c†i†o†w†|†„†Ÿ†¢†­†¹†¹†¾†ĆʆÒ†Ú†å†÷†‡!‡5‡_‡e‡j‡|‡‹‡©‡½‡ç‡í‡õ‡ú‡ ˆˆ6ˆJˆtˆzˆˆ‘ˆ ˆ»ˆψùˆÿˆ‰‰‰‰ ‰+‰Q‰i‰t‰|‰‰‰‰‰މ¡‰¸‰½‰ã‰û‰ŠŠŠŠ Š3Š@ŠJŠ^ŠuŠŽŠ Š­ŠØŠìŠ‹‹‹'‹>‹>‹G‹S‹i‹‚‹•‹¡‹´‹¸‹¸‹¸‹¿‹Ä‹׋ã‹ú‹ü‹ŒŒ Œ-Œ7Œ7ŒIŒõ”k t9t9Š9–9–9¬9·9¹9Õ9Õ9Õ9Ü9æ9ê9î9ñ9ñ9ú9þ9::J:V:a:q:�:†:‰:Ž:Ž:Ž:£:ª:·:¾:Æ:Ë:Ë:à:ì:ô:ù:ù:;;#;(;(;=;I;R;Z;b;n;„;�;²;¶;Ä;Ì;Ñ;Ñ;æ;< +<<<#<#<B<N<Y<^<s<<Ž<“<¢<¯<´<´<´<·<¼<¼<¼<Û<ç<ò<ô<÷<ü<ü<ü<====&=1=7=E=S=S=]=f=n=£=©=°=¿=Õ=Ú=Ú=í=õ=õ=÷=÷=÷=ü=ü=> > >>>>>>'>'>L>U>U>Y>tBö( tBtB‚B‹B™BŸB÷�1VwVwtw|wˆwžw³wÁwÌwÛwáwáwáwæwëwùwxxx!x/x:xGxNx\xø\”§V-V-p-”-w- -¹-²-Ñ-æ-Ó-ò-..*.*.7.V.V.`.ù8hrîGîGHH*H9H?HEHHHiHú0�—‰‰,‰8‰F‰I‰a‰d‰l‰û0S[¦Ó¦ÓºÓÂÓÏÓÙÓìÓüP>N˜†˜†¤†¸†»†Ï†×†Û†å†ï†÷†ú†‡ýTš«JJ J3J6J@JMJbJdJvJ€J”J”JšJ�JñJþ<˜£p‰p‰„‰‹‰—‰£‰³‰¸‰»‰¿‰Ç‰ÿ ,0ááá(áHzˆödöd +ee!e7e#eCeEeLeWeceke Dƒ®M®MÒMÙMÞMæMN N NNNN4N:NNKNKNKNKNON^NgNoNxN€N‡N�N�N«N¯NÁNÔNÚNîNóNOOOO"O+O9OBObOhOlOqOvOyOƒO†O–OD žjžj¬j¶jÀjÐjÕjÛjçjéjûjûjýj-klåü>ß>ßRßhßu߀߄ߋß�ߘߧߩߩ߽߿ßÈßÎßÎßÎßÎßÖß´Js€D€D¦D·D¼DÃDÍDÍDÕDèDìDñDEE EEE*E.E6EBEIEMEUEWE_EmEuEwEzE�E—EŸE­E±E¿E !E.k.k>kJkVkfk~k„k’k£k«k²kÈkîkll"l2l8l:lKlmltlzlˆl�l¦l±l·l½làlôB»pgpgŠg�g”gŸg®g°g»gÊgÊg×gågègêgêgïgôgýghhh*h/hDhOhYhYhohohœh°hÅhËhÐh×hÝhähéhéhïhõhúhúh ii3i9i>iRi\icicicihihi‘i–i–i¿iæiëiëiëiîiõiûijjj jjjj/j9jCjIjljrj‚jŽj”j¢j©j«j¿jÅjÌjÌjÎjÎjÎjÓjÙjÞjâjäjçjòjþjkkkk k kkDk˜}Ÿ~~šŸ¦°¶ÁÑÙáæñû   $ 4 ; C K S [ ` k y y � \X«ž@ž@¶@½@Ï@A AA'AAHAHATA\AkA¥A§AÔAÜAÜA B!BBcur_buf_ptr=NULL; goto lgc_here; } - nobound_switch (cc->last_U16=*src++) { + switch [cc->last_U16=*src++] { case 0: lgc_here: tempf=cc->lex_include_stk; @@ -127,7 +127,7 @@ lgc_here: lgc_start2: if (doc_e!=doc) { tempf->cur_entry=doc_e; - nobound_switch (doc_e->type_u8) { + switch [doc_e->type_u8] { case DOCT_TEXT: if (doc_e->de_flags & ~(DOCEF_TAG|DOCEF_DEFINE|DOCEF_TAG_CB| DOCG_BL_IV_UL|DOCEF_WORD_WRAP|DOCEF_HIGHLIGHT| @@ -203,7 +203,7 @@ lgc_start2: case DOCT_CURSOR: doc_e=doc_e->next; goto lgc_start2; - case 0xFF: //nobound_switch + case 0xFF: //nobound switch default: if (LexDollar(cc,doc,doc_e) && *(src=cc->dollar_buf)) { tempf->line_num=doc_e->y+1; @@ -254,7 +254,7 @@ lgc_start2: tempf->line_start=src; } break; - case 0xFF: //nobound_switch + case 0xFF: //nobound switch } lgc_done: if (cc->last_U16==CH_SHIFT_SPACE) @@ -448,7 +448,7 @@ I64 Lex(CCmpCtrl *cc) cc->last_line_num=cc->lex_include_stk->line_num; while (TRUE) { lex_cont: - nobound_switch (ch=LexGetChar(cc)) { + switch [ch=LexGetChar(cc)] { case 0: return cc->token=TK_EOF; case TK_SUPERSCRIPT: diff --git a/Compiler/OpCodes.TXT b/Compiler/OpCodes.TXT index 81ba298..c07e62f 100644 --- a/Compiler/OpCodes.TXT +++ b/Compiler/OpCodes.TXT @@ -156,34 +156,33 @@ KEYWORD goto 17; KEYWORD exe 18; KEYWORD break 19; KEYWORD switch 20; -KEYWORD nobound_switch 21; -KEYWORD sub_switch_start 22; -KEYWORD sub_switch_end 23; -KEYWORD case 24; -KEYWORD default 25; -KEYWORD public 26; -KEYWORD offset 27; -KEYWORD import 28; -KEYWORD _import 29; -KEYWORD ifdef 30; -KEYWORD ifndef 31; -KEYWORD ifaot 32; -KEYWORD ifjit 33; -KEYWORD endif 34; -KEYWORD assert 35; -KEYWORD reg 36; -KEYWORD noreg 37; -KEYWORD lastclass 38; -KEYWORD nounusedwarn 39; -KEYWORD help_index 40; -KEYWORD help_file 41; -KEYWORD static 42; -KEYWORD lock 43; -KEYWORD defined 44; -KEYWORD interrupt 45; -KEYWORD haserrcode 46; -KEYWORD argpop 47; -KEYWORD noargpop 48; +KEYWORD sub_switch_start 21; +KEYWORD sub_switch_end 22; +KEYWORD case 23; +KEYWORD default 24; +KEYWORD public 25; +KEYWORD offset 26; +KEYWORD import 27; +KEYWORD _import 28; +KEYWORD ifdef 29; +KEYWORD ifndef 30; +KEYWORD ifaot 31; +KEYWORD ifjit 32; +KEYWORD endif 33; +KEYWORD assert 34; +KEYWORD reg 35; +KEYWORD noreg 36; +KEYWORD lastclass 37; +KEYWORD nounusedwarn 38; +KEYWORD help_index 39; +KEYWORD help_file 40; +KEYWORD static 41; +KEYWORD lock 42; +KEYWORD defined 43; +KEYWORD interrupt 44; +KEYWORD haserrcode 45; +KEYWORD argpop 46; +KEYWORD noargpop 47; ASM_KEYWORD ALIGN 64; ASM_KEYWORD MODULE_ORG 65; diff --git a/Compiler/OptPass012.CPP b/Compiler/OptPass012.CPP index ba10f11..2fc495f 100644 --- a/Compiler/OptPass012.CPP +++ b/Compiler/OptPass012.CPP @@ -44,7 +44,7 @@ args. tempi->ic_class2=tempc; tempi_push=tempi; MemSet(&tempi->a1,0,sizeof(CICArg)*4); - nobound_switch (intermediate_code_table[code].arg_cnt) { + switch [intermediate_code_table[code].arg_cnt] { case IS_V_ARG: ps->ptr-=tempi->ic_data>>2; break; @@ -59,12 +59,12 @@ args. tempi->t.a1t=tempi1; tempi->t.a1c=PrsPop(ps); break; - case IS_0_ARG: //nobound_switch + case IS_0_ARG: //nobound switch break; } if (intermediate_code_table[code].not_const) cc->flags|=CCF_NOT_CONST; - nobound_switch (code) { + switch [code] { case IC_IMM_F64: tempi->ic_flags&=~ICF_R_TO_F64; if (cc->pass==2 && tempi->ic_flags&ICF_R_TO_INT) { diff --git a/Compiler/OptPass3.CPP b/Compiler/OptPass3.CPP index 65d9462..762f359 100644 --- a/Compiler/OptPass3.CPP +++ b/Compiler/OptPass3.CPP @@ -63,7 +63,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) } else tempil1=tempil2=&cmp.ic_nop; tempc=tempi->ic_class; - nobound_switch (intermediate_code_table[code].arg_cnt) { + switch [intermediate_code_table[code].arg_cnt] { case IS_V_ARG: ps->ptr-=tempi->ic_data>>3; break; @@ -76,7 +76,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) else tempc2=tempi->t.a2c; tempi->a2.type=TY_STK+CmpRawType(tempc2); - tempi->a2.type_pointed=CmpRawTypePointed(tempc2); + tempi->a2.type_pointed_to=CmpRawTypePointed(tempc2); tempi->ic_flags|=ICF_A2_WAS_STK; case IS_1_ARG: tempi1=PrsPop(ps); @@ -87,19 +87,19 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) else tempc1=tempi->t.a1c; tempi->a1.type=TY_STK+CmpRawType(tempc1); - tempi->a1.type_pointed=CmpRawTypePointed(tempc1); + tempi->a1.type_pointed_to=CmpRawTypePointed(tempc1); tempi->ic_flags|=ICF_A1_WAS_STK; break; - case IS_0_ARG: //nobound_switch + case IS_0_ARG: //nobound switch break; } if (intermediate_code_table[code].result_cnt) { tempi->r.type=TY_STK+CmpRawType(tempc); - tempi->r.type_pointed=CmpRawTypePointed(tempc); + tempi->r.type_pointed_to=CmpRawTypePointed(tempc); tempi->ic_flags|=ICF_R_WAS_STK; PrsPush(ps,tempi); } - nobound_switch (code) { + switch [code] { case IC_IMM_F64: tempi->ic_flags&=~ICF_R_TO_F64; if (tempi->ic_flags&ICF_R_TO_INT) { @@ -121,13 +121,13 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->a1.reg=REG_RBP; break; case IC_DEREF: - tempi->a1.type_pointed=tempi->r.type&RT_MASK; + tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; if (tempi1->ic_code==IC_LEA) { tempi->ic_flags|=tempi1->ic_flags; tempi->a1.reg=tempi1->a1.reg; tempi->a1.disp=tempi1->a1.disp; tempi->a1.type=TY_DISP+tempi->r.type&RT_MASK; - tempi->a1.type_pointed=tempi->r.type_pointed; + tempi->a1.type_pointed_to=tempi->r.type_pointed_to; tempi->ic_code=IC_MOV; OptFree(tempi1); if (tempi->a1.reg==REG_RBP) @@ -143,7 +143,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->a1.reg=tempil2->a1.reg; tempi->a1.disp=tempi->ic_data; tempi->a1.type=TY_DISP+tempi->r.type&RT_MASK; - tempi->a1.type_pointed=tempi->r.type_pointed; + tempi->a1.type_pointed_to=tempi->r.type_pointed_to; tempi->ic_code=IC_MOV; OptFree(tempil2); OptFree(tempil1); @@ -154,7 +154,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) case IC__MM: case IC_PP_: case IC_MM_: - tempi->r.type_pointed=CmpRawTypePointed(tempi->t.a1c); + tempi->r.type_pointed_to=CmpRawTypePointed(tempi->t.a1c); case IC_DEREF_PP: case IC_DEREF_MM: if (tempi1->ic_code==IC_LEA && @@ -166,7 +166,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed=tempi->r.type&RT_MASK; + tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; break; case IC_MUL: case IC_DIV: @@ -186,7 +186,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->t.a1c=tempi->t.a2c; tempi->ic_data=tempi1->ic_data; tempi->ic_code=IC_ADD_CONST; - tempi->a1.type_pointed=tempi->r.type&RT_MASK; + tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; tempi->a2.type=TY_NULL; OptFree(tempi1); if (tempil2->ic_code==IC_REG && @@ -250,8 +250,8 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed=tempi->r.type&RT_MASK; - tempi->r.type_pointed=CmpRawTypePointed(tempi->t.a1c); + tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; + tempi->r.type_pointed_to=CmpRawTypePointed(tempi->t.a1c); break; case IC_RETURN_VAL: case IC_RETURN_VAL2: @@ -375,7 +375,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed=CmpRawType(tempc); + tempi->a1.type_pointed_to=CmpRawType(tempc); goto here1; case IC_BR_LESS: case IC_BR_GREATER_EQU: diff --git a/Compiler/OptPass4.CPP b/Compiler/OptPass4.CPP index d7eb4df..fca852f 100644 --- a/Compiler/OptPass4.CPP +++ b/Compiler/OptPass4.CPP @@ -73,14 +73,14 @@ Bool OptIC4(CIntermediateCode *tempi) ty=ty1; tempil1->a2.type=tempil2->a1.type&TY_MASK+ty; - pt=tempil1->a2.type_pointed; - pt1=tempil2->a1.type_pointed; + pt=tempil1->a2.type_pointed_to; + pt1=tempil2->a1.type_pointed_to; if (pt1 && pt1r.type_pointed; + pt1=tempil2->r.type_pointed_to; if (pt1 && pt1a2.type_pointed=pt; + tempil1->a2.type_pointed_to=pt; tempil1->a2.reg=tempil2->a1.reg; tempil1->a2.disp=tempil2->a1.disp; @@ -113,14 +113,14 @@ Bool OptIC4(CIntermediateCode *tempi) ty=ty1; tempil1->a1.type=tempil2->a1.type&TY_MASK+ty; - pt=tempil1->a1.type_pointed; - pt1=tempil2->a1.type_pointed; + pt=tempil1->a1.type_pointed_to; + pt1=tempil2->a1.type_pointed_to; if (pt1 && pt1r.type_pointed; + pt1=tempil2->r.type_pointed_to; if (pt1 && pt1a1.type_pointed=pt; + tempil1->a1.type_pointed_to=pt; tempil1->a1.reg=tempil2->a1.reg; tempil1->a1.disp=tempil2->a1.disp; @@ -138,7 +138,7 @@ Bool OptIC4(CIntermediateCode *tempi) !Bt(&cmp.non_ptr_vars_mask,tempil2->a1.reg)) { tempil1->ic_flags|=tempil2->ic_flags; tempil1->ic_code=IC_MOV; - tempil1->a1.type=TY_DISP+tempil1->a1.type_pointed; + tempil1->a1.type=TY_DISP+tempil1->a1.type_pointed_to; tempil1->a1.reg=tempil2->a1.reg; tempil1->a1.disp=i; OptSetNOP2(tempil2,-1); @@ -149,7 +149,7 @@ Bool OptIC4(CIntermediateCode *tempi) tempil1->a1.type&TY_MASK==TY_STK) { tempil1->ic_flags|=tempil2->ic_flags; tempil1->ic_code=IC_MOV; - tempil1->a1.type=tempil2->a1.type&TY_MASK+tempil1->a1.type_pointed; + tempil1->a1.type=tempil2->a1.type&TY_MASK+tempil1->a1.type_pointed_to; tempil1->a1.reg=tempil2->a1.reg; tempil1->a1.disp=tempil2->a1.disp; OptFree(tempil2); @@ -159,7 +159,7 @@ Bool OptIC4(CIntermediateCode *tempi) } if (tempil1->ic_code==IC_DEREF) { if (tempil1->a1.type&TY_MASK==TY_REG) { - tempil1->a1.type=TY_DISP+tempil1->a1.type_pointed; + tempil1->a1.type=TY_DISP+tempil1->a1.type_pointed_to; tempil1->a1.disp=0; tempil1->ic_code=IC_MOV; return TRUE; @@ -204,7 +204,7 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) tempil2=tempil3=&cmp.ic_nop; } else tempil1=tempil2=tempil3=&cmp.ic_nop; - nobound_switch (intermediate_code_table[code].arg_cnt) { + switch [intermediate_code_table[code].arg_cnt] { case IS_V_ARG: ps->ptr-=tempi->ic_data>>3; break; @@ -215,10 +215,10 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) tempi1=PrsPop(ps); tempc1=tempi1->ic_class; break; - case IS_0_ARG: //nobound_switch + case IS_0_ARG: //nobound switch break; } - nobound_switch (code) { + switch [code] { case IC_IMM_I64: case IC_TYPE: tempi->a1.type=TY_IMM+RT_I64; @@ -228,7 +228,7 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) case IC_IMM_F64: tempi->a1.type=TY_IMM+RT_I64; tempi->a1.disp=tempi->ic_data; - tempi->a1.type_pointed=RT_F64; + tempi->a1.type_pointed_to=RT_F64; tempi->ic_code=IC_MOV; break; case IC_MOV: @@ -267,7 +267,7 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) tempi->a1.disp=tempi1->a1.disp; tempi->ic_flags|=tempi1->ic_flags; tempi->ic_code=IC_MOV; - tempi->a1.type=TY_RIP_DISP32+tempi->a1.type_pointed; + tempi->a1.type=TY_RIP_DISP32+tempi->a1.type_pointed_to; tempi->a1.reg=REG_RIP; OptFree(tempi1); } @@ -313,7 +313,7 @@ p4_lea_gone: tempi->a1.disp=tempi1->ic_data; else tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=TY_RIP_DISP32+tempi->a1.type_pointed; + tempi->a1.type=TY_RIP_DISP32+tempi->a1.type_pointed_to; tempi->a1.reg=REG_RIP; tempi->ic_flags|=ICF_NOT_ADDR; OptFree(tempi1); @@ -339,7 +339,7 @@ p4_sib: tempi->ic_code=IC_LEA; tempi->a1.type=TY_SIB+RT_I64; - tempi->a1.type_pointed=RT_I64; + tempi->a1.type_pointed_to=RT_I64; tempi->a2.type=TY_NULL+tempi->a2.type&RT_MASK; } diff --git a/Compiler/OptPass5.CPP b/Compiler/OptPass5.CPP index 2a9a02c..5b99bc8 100644 --- a/Compiler/OptPass5.CPP +++ b/Compiler/OptPass5.CPP @@ -51,14 +51,14 @@ U0 OptPass5(CCmpCtrl *cc) ty=ty1; tempi->a2.type=tempi1->a1.type&TY_MASK+ty; - pt=tempi->a2.type_pointed; - pt1=tempi1->a1.type_pointed; + pt=tempi->a2.type_pointed_to; + pt1=tempi1->a1.type_pointed_to; if (pt1 && pt1r.type_pointed; + pt1=tempi1->r.type_pointed_to; if (pt1 && pt1a2.type_pointed=pt; + tempi->a2.type_pointed_to=pt; tempi->a2.reg=tempi1->a1.reg; tempi->a2.disp=tempi1->a1.disp; @@ -95,14 +95,14 @@ U0 OptPass5(CCmpCtrl *cc) ty=ty1; tempi->a1.type=tempi1->a1.type&TY_MASK+ty; - pt=tempi->a1.type_pointed; - pt1=tempi1->a1.type_pointed; + pt=tempi->a1.type_pointed_to; + pt1=tempi1->a1.type_pointed_to; if (pt1 && pt1r.type_pointed; + pt1=tempi1->r.type_pointed_to; if (pt1 && pt1a1.type_pointed=pt; + tempi->a1.type_pointed_to=pt; tempi->a1.reg=tempi1->a1.reg; tempi->a1.disp=tempi1->a1.disp; diff --git a/Compiler/OptPass6.CPP b/Compiler/OptPass6.CPP index 05a9386..0329e2d 100644 --- a/Compiler/OptPass6.CPP +++ b/Compiler/OptPass6.CPP @@ -10,14 +10,14 @@ Bool OptIC6(CIntermediateCode *tempi) if (tempil1->a1.type&TY_MASK==TY_REG) { tempi->ic_flags=tempi->ic_flags&~ICF_A1_WAS_STK | tempil1->ic_flags; tempi->ic_code=IC_MOV; - tempi->a1.type=TY_DISP+tempi->a1.type_pointed; + tempi->a1.type=TY_DISP+tempi->a1.type_pointed_to; tempi->a1.reg=tempil1->a1.reg; tempi->a1.disp=tempil1->ic_data; OptSetNOP2(tempil1,-1); } else { tempil1->ic_code=IC_MOV; tempi->ic_code=IC_MOV; - tempi->a1.type=TY_DISP+tempi->a1.type_pointed; + tempi->a1.type=TY_DISP+tempi->a1.type_pointed_to; tempi->a1.disp=tempil1->ic_data; } return TRUE; @@ -137,8 +137,8 @@ U0 OptPass6(CCmpCtrl *cc) tempil2->ic_code!=IC_SET_RAX && !(tempi->ic_flags&(ICF_A2_TO_F64|ICF_A2_TO_INT)) && !(tempil2->ic_flags&(ICF_R_TO_F64|ICF_R_TO_INT))) { - tempil2->r.type =tempi->a1.type&TY_MASK+tempi->a1.type_pointed; - tempil2->r.type_pointed=tempi->a1.type_pointed; + tempil2->r.type =tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to; + tempil2->r.type_pointed_to=tempi->a1.type_pointed_to; tempil2->r.reg =tempi->a1.reg; tempil2->r.disp =tempi->a1.disp; tempil2->ic_flags=tempil2->ic_flags diff --git a/Compiler/OptPass789A.CPP b/Compiler/OptPass789A.CPP index 412c939..3f0039c 100644 --- a/Compiler/OptPass789A.CPP +++ b/Compiler/OptPass789A.CPP @@ -147,7 +147,7 @@ cc->pass==10 is final pass, code is placed into buf. } } } - nobound_switch (tempi->ic_code) { + switch [tempi->ic_code] { sub_switch_start: sub_switch_start: case IC_ABS_ADDR: @@ -667,14 +667,14 @@ cc->pass==10 is final pass, code is placed into buf. ICAssignPostIncDec(tempi,SLASH_OP_DEC,ip2); break; case IC_SHL_EQU: - ICShiftEqu(tempi,tempi->a1.type_pointed, + ICShiftEqu(tempi,tempi->a1.type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, 0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); break; case IC_SHR_EQU: - ICShiftEqu(tempi,tempi->a1.type_pointed, + ICShiftEqu(tempi,tempi->a1.type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, @@ -709,7 +709,7 @@ cc->pass==10 is final pass, code is placed into buf. break; case IC_ADD_EQU: if (tempi->ic_flags&ICF_USE_INT) - ICAddSubEctEqu(tempi,tempi->a1.type_pointed, + ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, @@ -719,7 +719,7 @@ cc->pass==10 is final pass, code is placed into buf. break; case IC_SUB_EQU: if (tempi->ic_flags&ICF_USE_INT) - ICAddSubEctEqu(tempi,tempi->a1.type_pointed, + ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, diff --git a/Compiler/PrsExp.CPP b/Compiler/PrsExp.CPP index 69d3712..f619360 100644 --- a/Compiler/PrsExp.CPP +++ b/Compiler/PrsExp.CPP @@ -73,7 +73,7 @@ U0 PrsExpression2(CCmpCtrl *cc,I64 *_max_prec,CPrsStk *ps) goto pe_unary_term1; while (TRUE) { - nobound_switch (state) { + switch [state] { case PE_UNARY_TERM1: pe_unary_term1: unary_pre_prec=PREC_NULL; diff --git a/Compiler/PrsStmt.CPP b/Compiler/PrsStmt.CPP index 9e42735..6031db5 100644 --- a/Compiler/PrsStmt.CPP +++ b/Compiler/PrsStmt.CPP @@ -572,17 +572,21 @@ class CSwitchCase { CSubSwitch *ss; }; -U0 PrsSwitch(CCmpCtrl *cc,Bool nobound,I64 try_cnt) +U0 PrsSwitch(CCmpCtrl *cc,I64 try_cnt) { CSwitchCase *header=NULL,*temps,*temps1; //Leaks on except CSubSwitch root,*tempss; //Leaks on except CCodeMisc *lb_dft,*lb_fwd_case,*mc_jt,*lb_entry,**jmp_table; CIntermediateCode *tempi_sub,*tempi_cmp,*tempi_jmp,*tempi_start; - Bool dft_found=FALSE; + Bool dft_found=FALSE,nobound; I64 i,k_start=MIN_I64,k_end,lo=MAX_I64,hi=MIN_I64,range; - if (cc->token!='(') - LexExcept(cc,"expecting '(' at "); + if (cc->token=='(') + nobound=FALSE; + else if (cc->token=='[') + nobound=TRUE; + else + LexExcept(cc,"expecting '(' or '[' at "); Lex(cc); QueInit(&root); @@ -598,12 +602,15 @@ U0 PrsSwitch(CCmpCtrl *cc,Bool nobound,I64 try_cnt) tempi_sub=ICAdd(cc,IC_IMM_I64,0,cmp.internal_types[RT_I64]); ICAdd(cc,IC_SUB,0,cmp.internal_types[RT_I64]); tempi_cmp=ICAdd(cc,IC_IMM_I64,0,cmp.internal_types[RT_I64]); - if (nobound) + if (nobound) { ICAdd(cc,IC_NOBOUND_SWITCH,mc_jt,0); - else + if (cc->token!=']') + LexExcept(cc,"missing ']' at "); + } else { ICAdd(cc,IC_SWITCH,mc_jt,0); - if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + if (cc->token!=')') + LexExcept(cc,"missing ')' at "); + } if (Lex(cc)!='{') LexExcept(cc,"expecting '{' at "); Lex(cc); @@ -925,8 +932,8 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, if (tempex=cc->hash_entry) { if (tempex->type & HTT_KEYWORD) { i=tempex(CHashGeneric *)->user_data0; - nobound_switch (i) { - case KW_NUM_KEYWORDS-1: //nobound_switch + switch [i] { + case KW_NUM_KEYWORDS-1: //nobound switch default: //A keyword that is not valid here is just a symbol. goto sm_not_keyword_afterall; sub_switch_start: @@ -971,11 +978,8 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, case KW_DO: PrsDoWhile(cc,try_cnt); break; - case KW_NOBOUND_SWITCH: - PrsSwitch(cc,TRUE,try_cnt); - break; case KW_SWITCH: - PrsSwitch(cc,FALSE,try_cnt); + PrsSwitch(cc,try_cnt); break; sub_switch_end: sub_switch_end: diff --git a/Compiler/UAsm.CPP b/Compiler/UAsm.CPP index 2e97a45..5a51b6f 100644 --- a/Compiler/UAsm.CPP +++ b/Compiler/UAsm.CPP @@ -95,7 +95,7 @@ CInstruction *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) if (m=o1-o2) goto ief_compare_done; } else - nobound_switch (tempi->uasm_slash_val) { + switch [tempi->uasm_slash_val] { case 0...7: if (!(m=ip[n]>>3&7-tempi->slash_val)) { if ((Bt(&uasm.mem_arg_mask,a1) || Bt(&uasm.mem_arg_mask,a2)) && diff --git a/Demo/AcctExample/PersonalMenu.TXT b/Demo/AcctExample/PersonalMenu.TXT index 242fcd5..b27e998 100644 Binary files a/Demo/AcctExample/PersonalMenu.TXT and b/Demo/AcctExample/PersonalMenu.TXT differ diff --git a/Demo/AcctExample/PersonalNotes.TXT b/Demo/AcctExample/PersonalNotes.TXT index 6d3a5c5..e6e601b 100644 --- a/Demo/AcctExample/PersonalNotes.TXT +++ b/Demo/AcctExample/PersonalNotes.TXT @@ -27,8 +27,6 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ * $LK,"DOCEF_REMALLOC_DATA",A="FF:::/Adam/DolDoc/DocChar.CPP,DOCEF_REMALLOC_DATA"$ HexEdit Remalloc. -* No way to clear $LK,"DOCEf_HOLD",A="MN:DOCEf_HOLD"$ entries. - * $LK,"DOCF_DBL_DOLLARS",A="MN:DOCF_DBL_DOLLARS"$ in $LK,"Reindention",A="MN:EdCodeTools2"$. * Compiler Optimization: Local array vars --> reg. Might exist. @@ -42,8 +40,6 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ * 01/10/2016 find-replace editor hung on $LK,"CounterRenaissance",A="FI:::/Home/Web/TAD/CounterRenaissance.TXT"$ "Rennaisance" * 01/06/2016 Editor filter "str" applied to output from LineRep looks broken. -* Document $$DA zero terminator. Explain str or not. - * Document, perhaps with video, $LK,"GetStr",A="MN:GetStr"$() all the way down into $LK,"PutKey",A="MN:PutKey"$() code. * Better dictionary. @@ -173,7 +169,7 @@ CHashFun *fun_ptr; $ID,-5$ * extern of fun with dft arg of str? -* Might want to warn switch() dup case numbers. +* Might want to warn switch[] dup case numbers. * Make $LK,"Clamp",A="MN:Clamp"$(), $LK,"Min",A="MN:Min"$(), $LK,"Max",A="MN:Max"$() into asm routines? @@ -392,12 +388,13 @@ Offer only in approved place $TX,"Deuteronomy 12:13-18",HTML="http://www.bibleg Jesus' zeal for the Temple $TX,"John 2:14-19",HTML="http://www.biblegateway.com/passage/?search=John%202:14-19&version=NIV"$ Famine not for bread $TX,"Amos 8:11-12",HTML="http://www.biblegateway.com/passage/?search=Amos%208:11-12&version=NIV"$ Meek and humble of heart $TX,"Matthew 11:29",HTML="http://www.biblegateway.com/verse/en/Matthew%2011:29"$ +There is no council against the Lord $TX,"Proverbs 21:30",HTML="http://www.biblegateway.com/verse/en/Proverbs%2021:30"$ $FG,5$$TX+CX,"Misc Notes"$$FG$ Intel CEO's name: Brian Krzanich >$FG,2$lspci -v$FG$ -Size:$TX,"17358 KB",D="DD_TEMPLEOSCD_K_SIZE"$ +Size:$TX,"17364 KB",D="DD_TEMPLEOSCD_K_SIZE"$ $FG,5$$TX+CX,"My Web Bookmarks"$$FG$$WW,0$ $TX,"My FireFox Bookmarks",HTML="http://www.templeos.org/Wb/Home/Downloads/Blog/Bookmarks"$ @@ -406,11 +403,16 @@ Frosting $HC,"
\"\"
"$ CottonTail $HC,"
\"\"
"$ TempleOS Logo $HC,"
\"\"
"$ +Pew Pew Pew $HC,"
\"\"
"$ +Iceberg $HC,"
\"\"
"$ +I made dis $HC,"
\"\"
"$ +NIST Beacon $HC,"
\"\"
"$ $TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$ $TX,"ASU_Transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$ $TX,"ASU Course Catalog (See page 261)",HTML="https://catalog.asu.edu/files/shared/archives/1994-1996/general/UG1994-1996.pdf/1994-1996-UG-241-267.pdf"$ $TX,"Dr. David Pheanis",HTML="https://webapp4.asu.edu/directory/person/77201"$ $TX,"Dr. Konstantinos S. Tsakalis",HTML="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"$ $TX,"Dr. Walter Higgins",HTML="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"$ $TX,"Peter Gadwa",HTML="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1"$ $TX,"Tom Foley",HTML="http://web.gccaz.edu/~tfoley/perspage.html"$ +$TX,"Graphic Technologies",HTML="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"$ $TX,"Lexmark vs Static Control",HTML="https://en.wikipedia.org/wiki/Lexmark_International,_Inc._v._Static_Control_Components,_Inc."$ $FG,5$$TX+CX,"Web Bookmarks"$$FG$ @@ -422,12 +424,16 @@ $TX,"Look at PCI interrupt routing.",HTML="http://forum.osdev.org/viewtopic.php? $TX,"The sins of Newton",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins"$ $TX,"Stalin's Tanks",HTML="https://boardgamegeek.com/boardgame/5198/stalins-tanks"$ $TX,"Lamp shades",HTML="http://www.lampsplus.com/products/lamp-shades"$ +$TX,"The Original Jewish Temple",HTML="http://www.jewishvirtuallibrary.org/jsource/Judaism/The_Temple.html"$ $TX,"KingJamesBible with LineNums",HTML="http://www.templeos.org/files/NumBible.TXT"$ $TX,"Higgs 5-Sigma Proof",HTML="http://understandinguncertainty.org/explaining-5-sigma-higgs-how-well-did-they-do"$ $TX,"Dwight: Nerd torture",HTML="http://www.noob.us/humor/the-office-dwight-faces-nerd-torture-of-the-highest-form"$ +$TX,"TOSZ Compression",HTML="http://www.templeos.org/Wb/Linux/TOSZ.CPP"$ $TX,"ATA/ATAPI spec",HTML="http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v1r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_1.pdf"$ $TX,"WWW.OSDEV.ORG",HTML="http://www.osdev.org"$ +$TX,"NIST Beacon",HTML="http://www.nist.gov/itl/csd/ct/nist_beacon.cfm"$ +$TX,"The Perfect Coin Toss",HTML="http://hackaday.com/2014/12/19/nist-randomness-beacon"$ $TX,"BBC",HTML="http://www.knpr.org"$ $TX,"KNPR",HTML="http://www.knpr.org"$ $TX,"BBC_News_24",HTML="http://www.wherever.tv/tv-channels/BBC-News-24.jsf"$ diff --git a/Demo/AcctExample/Registry.CPP b/Demo/AcctExample/Registry.CPP index 0fd893a..1b49aa5 100644 --- a/Demo/AcctExample/Registry.CPP +++ b/Demo/AcctExample/Registry.CPP @@ -2,7 +2,7 @@ $TR-UL,"Adam"$ $ID,2$$TR,"SysMsgFlags"$ $ID,2$sys_msg_flags[0]=0xFF; $ID,-2$$TR,"SysRegVer"$ -$ID,2$registry_version=4.030; +$ID,2$registry_version=4.040; $ID,-2$$ID,-2$$TR-UL,"TempleOS"$ $ID,2$$TR,"TOS"$ $ID,2$I64 tos_code_walk_thru=105,tos_after_egypt_in_action=46; @@ -39,7 +39,7 @@ $ID,-2$$TR,"BomberGolf"$ $ID,2$I64 best_score=175; $ID,-2$$ID,-2$$TR,"DemoCompany"$ $ID,2$$TR,"Game1"$ -$ID,2$F64 best_score=166.32939; +$ID,2$F64 best_score=1344.86889; $TR,"SimpleVal"$ -$ID,2$1298; +$ID,2$1300; $ID,-2$$ID,-2$$ID,-2$ \ No newline at end of file diff --git a/Demo/AcctExample/TOSBlog.CPP b/Demo/AcctExample/TOSBlog.CPP index fb5b6e7..1353940 100644 --- a/Demo/AcctExample/TOSBlog.CPP +++ b/Demo/AcctExample/TOSBlog.CPP @@ -4,7 +4,7 @@ U8 *BlogLocalDir(CDate cdt=0) CDateStruct ds; if (!cdt) cdt=Now+local_time_offset; Date2Struct(&ds,cdt); - StrPrint(dir,"::/Home/Web/" PERSONAL_INITIALS "/Blog/%d%Z", + StrPrint(dir,BLOG_LOCAL_BASE "/%d%Z", ds.year,ds.mon-1,"ST_MONTHS"); if (!FileFind(dir,,FUF_JUST_DIRS)) MkDir(dir); @@ -28,7 +28,7 @@ U8 *BlogWebDir(CDate cdt=0) CDateStruct ds; if (!cdt) cdt=Now+local_time_offset; Date2Struct(&ds,cdt); - StrPrint(dir,PERSONAL_WEB "/Home/Web/" PERSONAL_INITIALS "/Blog/%d%Z", + StrPrint(dir,BLOG_WEB_BASE "/%d%Z", ds.year,ds.mon-1,"ST_MONTHS"); return dir; } @@ -85,23 +85,32 @@ U0 BlogScreenShot() public U0 MakeWebSitePartial() { + MkDir("D:/Wb"); + MkDir("D:/Wb/Home"); + MkDir("D:/Wb/Home/Web"); + MkDir("D:/Wb/Home/Web/TAD"); + MkDir("D:/Wb/Home/Web/TAD/Blog"); + FreshenWebDir("/Home/Web"); FreshenWebDir("/Home/Web/" PERSONAL_INITIALS); FreshenWebDir(BlogLocalDir+2); Drv('C'); } -U0 Blog() +public U0 Blog() { if (!FileFind(BlogLocalFile,,FUF_JUST_FILES)) Copy("::/Home/Downloads/Blog/DailyBlogHeader.TXT.Z",BlogLocalFile); - WinMax; AutoComplete; + WinBorder; + WinMax; Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN|SCF_CTRL); Msg(MSG_KEY_DOWN_UP,0,SC_F6|SCF_ALT); Msg(MSG_KEY_DOWN_UP,'\n',0); if (Ed(BlogLocalFile,EDF_WAS_WRITE)) { - Copy(BlogLocalFile,"::Home/Web/" PERSONAL_INITIALS "/DailyBlog.TXT.Z"); - MakeWebSitePartial; + Copy(BlogLocalFile,"::" DAILY_BASE ".TXT.Z"); + Copy(BlogLocalFile,"D:" DAILY_BASE ".TXT.Z"); + Copy(BlogLocalFile,"D:/Wb" DAILY_BASE ".TXT.Z"); + TOSWebFile("D:/Wb" DAILY_BASE ".TXT.Z"); } } diff --git a/Demo/AcctExample/TOSCfg.CPP b/Demo/AcctExample/TOSCfg.CPP index b2fc6be..1e1911d 100644 --- a/Demo/AcctExample/TOSCfg.CPP +++ b/Demo/AcctExample/TOSCfg.CPP @@ -2,6 +2,10 @@ #define PERSONAL_WEB "http:/" "/www.templeos.org/Wb" #define PERSONAL_INITIALS "TAD" +#define BLOG_BASE "/Home/Web/" PERSONAL_INITIALS "/Blog" +#define DAILY_BASE "/Home/Web/" PERSONAL_INITIALS "/DailyBlog" +#define BLOG_LOCAL_BASE "::" BLOG_BASE +#define BLOG_WEB_BASE PERSONAL_WEB BLOG_BASE #define SLOP BLK_SIZE U0 TOSBootRescueDrv1() diff --git a/Demo/AcctExample/TOSDistro.CPP b/Demo/AcctExample/TOSDistro.CPP index 5804cc2..6614e13 100644 --- a/Demo/AcctExample/TOSDistro.CPP +++ b/Demo/AcctExample/TOSDistro.CPP @@ -230,10 +230,6 @@ U0 TOSDistroPrep() virtual machine, not bare metal hardware because it's settings could cause problems. The hard drive must be partitioned. Install Std Distro, then install this on top. ->$LK,"TSInstall",A="FF:::/Demo/AcctExample/TOSDistro.CPP,TSInstall"$; ->$LK,"TSUpgrade",A="FF:::/Demo/AcctExample/TOSDistro.CPP,TSUpgrade"$; -See $LK,"MakeDistrosAndBackUp",A="FF:::/Demo/AcctExample/TOSDistro.CPP,MakeDistrosAndBackUp"$() to reproduce the ISO's in $FG,4$E:/Wb$FG$. It makes this -website, too. */ Drv('C'); DistroPrep; @@ -249,7 +245,7 @@ U0 MakeTOSDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSTS_SIZE", - "Download $TX,"TempleOS V4.03",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -284,7 +280,7 @@ U0 MakeDbgDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSDBG_SIZE", - "Download $TX,"TempleOS V4.03",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -332,7 +328,7 @@ U0 MakeLiteDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSLITE_SIZE", - "Download $TX,"TempleOS V4.03",D="DD_OS_NAME_VERSION"$ - Lite Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - Lite Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -365,7 +361,7 @@ U0 MakeUltraDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.03",D="DD_OS_NAME_VERSION"$ - UltraLite Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - UltraLite Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -374,12 +370,12 @@ U0 UpdateISODocDefines() { try { DefinePrint("DD_TEMPLEOSCD_SIZE", - "Download $TX,"TempleOS V4.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", 0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSCD_K_SIZE", "%d KB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024); DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.03",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.1f MB)", 0.1*(10*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSULTRA_K_SIZE", "%d KB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024); diff --git a/Demo/AcctExample/TOSHolySpirit.CPP b/Demo/AcctExample/TOSHolySpirit.CPP index 7614fad..5a74a69 100644 --- a/Demo/AcctExample/TOSHolySpirit.CPP +++ b/Demo/AcctExample/TOSHolySpirit.CPP @@ -322,8 +322,6 @@ U0 MyBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one) I64 i,start; U8 *verse; if (*st && (doc_out=DocPut)) { - DocPrint(doc_out,"$$BG,LTGRAY$$"); - i=Str2I64(st,radix); if (modulo) { if (radix==16) @@ -344,7 +342,7 @@ U0 MyBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one) DocPrint(doc_out,"-->Line:%d\n",start); verse=BibleLine2Verse(start); - DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/files/NumBible.TXT"$ (%s)\n$$BG$$\nGod says...\n$$RED$$",verse); + DocPrint(doc_out,"$TX,"KingJamesBible",HTML="http://www.templeos.org/files/NumBible.TXT"$ (%s)\n\nGod says...\n$$RED$$",verse); Free(verse); doc_in=DocNew; @@ -377,23 +375,26 @@ U0 MyBibleLines(U8 *st,I64 num_lines,I64 radix,Bool modulo,Bool plus_one) } } +#define GBP_SHORT 0 +#define GBP_MEDIUM 1 +#define GBP_LONG 2 + public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512, - I64 rand_i32=MIN_I64,Bool full=FALSE) + I64 rand_i32=MIN_I64,I64 verbosity=GBP_SHORT) {//Make God pick a book passage. $LK+PU,"Holy Spirit Instructions",A="FI:::/Adam/God/HSNotes.TXT"$ CDirEntry *tempde=FilesFind(files_find_mask, FUF_RECURSE|FUF_JUST_FILES|FUF_JUST_TXT), *tempde1=tempde; I64 i=0; U8 *st,*st2=NULL; - "$$BG,LTGRAY$$"; while (tempde) { st=FileRead(tempde->full_name); tempde->user_data=StrLen(st); - if (full) + if (verbosity==GBP_LONG) "%08X-",i; if (tempde->user_data>=len) i+=tempde->user_data+1-len; - if (full) + if (verbosity==GBP_LONG) "%08X:$$LK,\"%s\",A=\"FI:%s\"$$\n", i-1,tempde->full_name+2,tempde->full_name; Free(st); @@ -401,10 +402,12 @@ public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512, } if (rand_i32<0) rand_i32=GodBits(32); - if (full) - " \n%08X*%08X",rand_i32,i; + if (verbosity==GBP_LONG) + '\n'; + if (verbosity>=GBP_MEDIUM) + "%08X*%08X",rand_i32,i; i*=rand_i32; - if (full) + if (verbosity>=GBP_MEDIUM) "=%08X.%08X\n",i.u32[1],i.u32[0]; i=i.u32[1]; tempde=tempde1; @@ -415,7 +418,7 @@ public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512, st=FileRead(tempde->full_name); st2=st+(tempde->user_data+1-len)+i; st2[len]=0; - "%s\n$$BG$$\nGod says...\n$$RED$$%s$$FG$$\n",tempde->full_name,st2; + "%s\nGod says...\n$$RED$$%s$$FG$$\n",tempde->full_name,st2; Free(st); } } @@ -424,7 +427,7 @@ public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512, DirTreeDel(tempde1); } -#define NIST_TIME_OFFSET (-7884-local_time_offset/CDATE_FREQ) +#define NIST_TIME_OFFSET (-7900-local_time_offset/CDATE_FREQ) #define NIST_TIME_TO_SWITCH 3 public U0 NISTSync() @@ -456,29 +459,29 @@ U0 InsMyURL() "GenerateData\0WebBookMark\0Roulette\0Movie\0Metallica\0")) { case: if (DocForm(url(CRandHexBeacon5Form *))) { - "$$BG,LTGRAY$$"; -// if (FileFind("::/Home/Web/TAD/NISTPassage.TXT.Z")) -// Type("::/Home/Web/TAD/NISTPassage.TXT.Z",0); "$$TX,\"Guidelines for Talking with God.\"," - "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; + "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\t"; + "$$TX,\"How this random Bible passage was chosen.\"," + "HTML=\"http://www.templeos.org/Wb" + "/Home/Web/TAD/NISTPassage.html\"$$\n"; tag=MStrPrint("https:/beacon.nist.gov/rest/record/%d",url->timestamp); - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; Free(tag); MyBibleLines(url->special,20,16,TRUE,TRUE); } break; case: if (DocForm(url(CRandHexBeacon8Form *))) { - "$$BG,LTGRAY$$"; -// if (FileFind("::/Home/Web/TAD/NISTPick.TXT.Z")) -// Type("::/Home/Web/TAD/NISTPick.TXT.Z",0); "$$TX,\"Guidelines for Talking with God.\"," - "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; + "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\t"; + "$$TX,\"How this random book pick was chosen.\"," + "HTML=\"http://www.templeos.org/Wb" + "/Home/Web/TAD/NISTPick001.html\"$$\n"; tag=MStrPrint("https:/beacon.nist.gov/rest/record/%d",url->timestamp); - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; Free(tag); GodBooksPassage("C:/Home/Downloads/Text/*",, - Str2I64(url->special,16),TRUE); + Str2I64(url->special,16),GBP_MEDIUM); } break; case: @@ -554,69 +557,69 @@ U0 InsMyURL() break; case: if (DocForm(url(CRandDecForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="http://www.randomnumbers.info"; - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; MyBibleLines(url->special,20,10,FALSE,TRUE); } break; case: if (DocForm(url(CRandDecForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="http://www.random.org"; - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; MyBibleLines(url->special,20,10,FALSE,FALSE); } break; case: if (DocForm(url(CRandDecForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="https://passed.pw"; - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; MyBibleLines(url->special,20,10,FALSE,FALSE); } break; case: if (DocForm(url(CRandCertForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="http://virtual-notary.org"; "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; tag="Here is the certificate"; st=MStrPrint("http://www.templeos.org/Certs/virtual-notary-cert" "-randomnum-%d.p12",url->cert); - "\n$$TX,\"%Q: %d\",HTML=\"%Q\"$$.\n$$BG$$",tag,url->cert,st; + "\n$$TX,\"%Q: %d\",HTML=\"%Q\"$$.\n",tag,url->cert,st; Free(st); MyBibleLines(url->special,20,10,FALSE,FALSE); } break; case: if (DocForm(url(CRandHexForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="http://qrng.anu.edu.au/NIST.php"; - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; MyBibleLines(url->special,20,16,TRUE,TRUE); } break; case: if (DocForm(url(CRandHexForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="https://www.fourmilab.ch/hotbits/secure_generate.html"; - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; MyBibleLines(url->special,20,16,TRUE,TRUE); } break; case: if (DocForm(url(CRandDecForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="http://www.generatedata.com"; - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; MyBibleLines(url->special,20,10,FALSE,FALSE); } break; @@ -631,10 +634,10 @@ U0 InsMyURL() break; case: if (DocForm(url(CRandDecForm *))) { - "$$BG,LTGRAY$$$$TX,\"Guidelines for Talking with God\"," + "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="https://www.dublinbet.com"; - "$$TX,\"%Q\",HTML=\"%Q\"$$\n$$BG$$",tag,tag; + "$$TX,\"%Q\",HTML=\"%Q\"$$\n",tag,tag; MyBibleLines(url->special,20,10,FALSE,FALSE); } break; diff --git a/Demo/AcctExample/TOSToHtml.CPP b/Demo/AcctExample/TOSToHtml.CPP index a33bf6d..e1be5ae 100644 --- a/Demo/AcctExample/TOSToHtml.CPP +++ b/Demo/AcctExample/TOSToHtml.CPP @@ -150,7 +150,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL, "\n" "\n" - "\n"; + "\n"; if (!body_header) body_header= "\n" "
\n";
@@ -173,14 +173,14 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
   y=doc_e->y;
   while (doc_e!=doc_in) {
     if (!(doc_e->de_flags&DOCEF_SKIP)) {
-      if (line_anchors && y!=old_y) {
+      if (y!=old_y && line_anchors) {
 	DocPrint(doc_out,"",y+1);
 	old_y=y;
       }
       while (yy) {
 	HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
 	      &old_u32_attr,"\n",&col,style_bitmap);
-	if (line_anchors && ++y!=old_y) {
+	if (++y!=old_y && line_anchors) {
 	  DocPrint(doc_out,"",y+1);
 	  old_y=y;
 	}
@@ -349,12 +349,19 @@ U0 TOSWebFile(U8 *name)
 {
   U8 *name2;
   CDirEntry de;
+  Bool line_anchors;
   if (FileFind(name,&de)) {
     Free(de.full_name);
     "File:%s\n",name;
     UncollapseFile(name,NULL);
     Touch(name,"",,de.datetime);
     name2=ChgExt(name,"html");
+
+    if (StrMatch(BLOG_BASE,name) || StrMatch(DAILY_BASE,name))
+      line_anchors=FALSE;
+    else
+      line_anchors=TRUE;
+
     TOSToHtml(name,name2,
 	  "\n"
 	  "\n"
@@ -365,7 +372,7 @@ U0 TOSWebFile(U8 *name)
 	  "\n"
-	  "\n",
+	  "\n",
 
 	  "\n",
 	  "
\n", - "\n"); + "\n",,line_anchors); Touch(name2,"",,de.datetime); Free(name2); } @@ -411,12 +418,6 @@ U0 FreshenWebDir(U8 *dirname) CDirEntry *tempde,*tempde1; U8 *src,*dst; - MkDir("D:/Wb"); - MkDir("D:/Wb/Home"); - MkDir("D:/Wb/Home/Web"); - MkDir("D:/Wb/Home/Web/TAD"); - MkDir("D:/Wb/Home/Web/TAD/Blog"); - src=MStrPrint("D:/Wb%s",dirname); MkDir(src); Free(src); @@ -439,3 +440,4 @@ U0 FreshenWebDir(U8 *dirname) } DirTreeDel(tempde1); } + diff --git a/Demo/AutoFile/AFEd.TXT b/Demo/AutoFile/AFEd.TXT index 337b3d5..7d8316f 100644 --- a/Demo/AutoFile/AFEd.TXT +++ b/Demo/AutoFile/AFEd.TXT @@ -99,7 +99,7 @@ #define IC_JMP 0x52 #define IC_SWITCH 0x53 -#define IC_NOBOUND_SWITCH 0x54 +#define IC_NOBOUND_SWITCH 0x54 #define IC_ADD_RSP 0x55 #define IC_ADD_RSP1 0xC1 diff --git a/Demo/Games/RawHide.CPP b/Demo/Games/RawHide.CPP index f5983b5..db23e95 100644 --- a/Demo/Games/RawHide.CPP +++ b/Demo/Games/RawHide.CPP @@ -20,35 +20,36 @@ F64 gate_ $BG,10$#define GE_COW 0 -$SP,"<1>",BI=1$ +$SP,"<1>",BI=1$ $SP,"<2>",BI=2$ $SP,"<3>",BI=3$ #define GE_BULL 1 -$SP,"<2>",BI=2$ +$SP,"<4>",BI=4$ $SP,"<5>",BI=5$ $SP,"<6>",BI=6$ #define GE_HORSE 2 -$SP,"<3>",BI=3$ +$SP,"<7>",BI=7$ $SP,"<8>",BI=8$ #define GE_NUM 3 -$SP,"<4>",BI=4$ +$SP,"<9>",BI=9$ $BG$ -class RHCSprite -{ - U8 *img; - I64 min_x,max_x,min_y,max_y; -} rh_sprite[GE_NUM]; +#define ANIMAL_WIDTH 20 +#define ANIMAL_HEIGHT 16 + +U8 *cow_imgs[4] ={$IB,"<1>",BI=1$,$IB,"<2>",BI=2$,$IB,"<3>",BI=3$,$IB,"<2>",BI=2$}, + *bull_imgs[4] ={$IB,"<4>",BI=4$,$IB,"<5>",BI=5$,$IB,"<6>",BI=6$,$IB,"<5>",BI=5$}, + *horse_imgs[4]={$IB,"<7>",BI=7$,$IB,"<8>",BI=8$,$IB,"<7>",BI=7$,$IB,"<8>",BI=8$}; #define NUM_ANIMALS 100 class Animal { - I64 num,x,y,dx,dy; - RHCSprite *ge; - U32 buddy; - U8 type; - Bool dead,pad[2]; + I64 num,x,y,dx,dy; + U8 **imgs; + U32 buddy; + U8 type,frame0; + Bool dead,pad; } *a; //************************************ @@ -199,7 +200,7 @@ U0 DrawIt(CTask *task,CDC *dc) static I64 last_pos_x=0; static Bool left=TRUE; F64 t; - I64 i, + I64 i,frame=4*tS, cx=(MAP_WIDTH -task->pix_width)/2, cy=(MAP_HEIGHT-task->pix_height)/2; if (task->scroll_x+cx<0) @@ -222,7 +223,8 @@ U0 DrawIt(CTask *task,CDC *dc) dc->flags|=DCF_JUST_MIRROR|DCF_SYMMETRY; DCSymmetrySet(dc,a[i].x.i32[1]-cx,0,a[i].x.i32[1]-cx,1); } - Sprite3(dc,a[i].x.i32[1]-cx,a[i].y.i32[1]-cy,0,a[i].ge->img); + Sprite3(dc,a[i].x.i32[1]-cx,a[i].y.i32[1]-cy,0, + a[i].imgs[(frame+a[i].frame0)&3]); dc->flags&=~(DCF_JUST_MIRROR|DCF_SYMMETRY); } @@ -235,9 +237,8 @@ U0 DrawIt(CTask *task,CDC *dc) DCSymmetrySet(dc,ip.pos.x-task->pix_left-task->scroll_x,0, ip.pos.x-task->pix_left-task->scroll_x,1); } - Sprite3(dc, - ip.pos.x-task->pix_left-task->scroll_x, - ip.pos.y-task->pix_top -task->scroll_y,0,rh_sprite[GE_HORSE].img); + Sprite3(dc,ip.pos.x-task->pix_left-task->scroll_x, + ip.pos.y-task->pix_top -task->scroll_y,0,horse_imgs[frame&3]); dc->flags&=~(DCF_JUST_MIRROR|DCF_SYMMETRY); last_pos_x=ip.pos.x; @@ -393,13 +394,13 @@ U0 AnimateTask(CTask *parent) } //Keep on map - if (!(MAP_BORDER-tempa->ge->min_x - <=tempa->x.i32[1]ge->max_x)) { + if (!(MAP_BORDER+ANIMAL_WIDTH/2 + <=tempa->x.i32[1]x -=tempa->dx; tempa->dx=-tempa->dx; } - if (!(MAP_BORDER-tempa->ge->min_y - <=tempa->y.i32[1]ge->max_y)) { + if (!(MAP_BORDER+ANIMAL_HEIGHT + <=tempa->y.i32[1]y -=tempa->dy; tempa->dy=-tempa->dy; } @@ -464,7 +465,7 @@ U0 ReInit() //Plot fence for (i=FENCE_WIDTH;i>0;i-=16) - Sprite3(map_dc,i,FENCE_HEIGHT,0,$IB,"<4>",BI=4$); + Sprite3(map_dc,i,FENCE_HEIGHT,0,$IB,"<9>",BI=9$); map_dc->pen_width=1; map_dc->color=BROWN; for (i=0;i>32,a[i].y>>32)); if (i&1) - a[i].ge=&rh_sprite[GE_COW]; + a[i].imgs=cow_imgs; else - a[i].ge=&rh_sprite[GE_BULL]; + a[i].imgs=bull_imgs; + a[i].frame0=RandU16&3; BuddySelect(i); } outside_cnt=NUM_ANIMALS; @@ -504,16 +506,6 @@ U0 ReInit() U0 Init() { I64 i; - RHCSprite *ge; - - rh_sprite[0].img=$IB,"<1>",BI=1$; - rh_sprite[1].img=$IB,"<2>",BI=2$; - rh_sprite[2].img=$IB,"<3>",BI=3$; - for (i=0;iimg,&ge->min_x,&ge->max_x,&ge->min_y,&ge->max_y); - } - RiverNew; rd_lock=0; QueInit(&rd_root); @@ -590,9 +582,9 @@ rh_done: } RawHide; -òöÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿböÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂöÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿd +öÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’öÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚöÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ d ùÿÿÿ úÿÿÿðÿÿÿúÿÿÿ ÿÿÿÿðÿÿÿÿÿÿÿ ðÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ -ÿÿÿÿÿÿÿÿðÿÿÿúÿÿÿ \ No newline at end of file +ÿÿÿÿÿÿÿÿðÿÿÿúÿÿÿzöÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzöÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚöÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚöÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿêÿÿÿ" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/Demo/SortFileExample/SortedF64.DAT b/Demo/SortFileExample/SortedF64.DAT index a3f4cf8..3900869 100644 --- a/Demo/SortFileExample/SortedF64.DAT +++ b/Demo/SortFileExample/SortedF64.DAT @@ -1 +1 @@ -rZÅ¡Jþ‘?¨È³a©h·?£û(JéqÌ?»±wÌݧÖ?Œ@ð­ß?•¡âŽ@Pà?@55¼Ã;â?ÉSä[}Pä?vŽ’)é?¯B5´´Õï? \ No newline at end of file +8ý!/Û ˜?"v¬ùâ°»?äÌq¡À?jAÊ?õŸƒ¶3Í?¬ax “Ø?]¦"Þ?L–o`öÞ?ŠìÁxÅß? Ñ”ìžë? \ No newline at end of file diff --git a/Demo/SortFileExample/SortedF64.TXT b/Demo/SortFileExample/SortedF64.TXT index d372e05..4a70acc 100644 --- a/Demo/SortFileExample/SortedF64.TXT +++ b/Demo/SortFileExample/SortedF64.TXT @@ -1,11 +1,11 @@ //This is sorted. - 0.167187 - 0.196175 - 0.280106 - 0.366963 - 0.403184 - 0.591110 - 0.726180 - 0.749633 - 0.795656 - 0.926049 + 0.256505 + 0.347373 + 0.349509 + 0.367545 + 0.563530 + 0.626343 + 0.703852 + 0.753115 + 0.897487 + 0.941150 diff --git a/Demo/SortFileExample/UnsortedF64.DAT b/Demo/SortFileExample/UnsortedF64.DAT index dcd673f..dcae6de 100644 --- a/Demo/SortFileExample/UnsortedF64.DAT +++ b/Demo/SortFileExample/UnsortedF64.DAT @@ -1 +1 @@ -¯B5´´Õï?¨È³a©h·?@55¼Ã;â?vŽ’)é?»±wÌݧÖ?£û(JéqÌ?•¡âŽ@Pà?Œ@ð­ß?ÉSä[}Pä?rZÅ¡Jþ‘? \ No newline at end of file +jAÊ?¬ax “Ø?]¦"Þ?"v¬ùâ°»?äÌq¡À?ŠìÁxÅß?õŸƒ¶3Í?8ý!/Û ˜?L–o`öÞ? Ñ”ìžë? \ No newline at end of file diff --git a/Demo/SortFileExample/UnsortedF64.TXT b/Demo/SortFileExample/UnsortedF64.TXT index 510e09e..5ead3f9 100644 --- a/Demo/SortFileExample/UnsortedF64.TXT +++ b/Demo/SortFileExample/UnsortedF64.TXT @@ -1,11 +1,11 @@ //This is unsorted. - 0.926049 - 0.591110 - 0.196175 - 0.749633 - 0.403184 - 0.280106 - 0.366963 - 0.726180 - 0.167187 - 0.795656 + 0.941150 + 0.347373 + 0.626343 + 0.256505 + 0.753115 + 0.367545 + 0.897487 + 0.563530 + 0.703852 + 0.349509 diff --git a/Demo/ToHtmlToTXTExample/ToHtml.CPP b/Demo/ToHtmlToTXTExample/ToHtml.CPP index 698502d..42d84c2 100644 --- a/Demo/ToHtmlToTXTExample/ToHtml.CPP +++ b/Demo/ToHtmlToTXTExample/ToHtml.CPP @@ -148,7 +148,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL, "\n" "\n" - "\n"; + "\n"; if (!body_header) body_header= "\n" "
\n";
@@ -171,14 +171,14 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL,
   y=doc_e->y;
   while (doc_e!=doc_in) {
     if (!(doc_e->de_flags&DOCEF_SKIP)) {
-      if (line_anchors && y!=old_y) {
+      if (y!=old_y && line_anchors) {
 	DocPrint(doc_out,"",y+1);
 	old_y=y;
       }
       while (yy) {
 	HtmlPutS(doc_out,doc_e->settings.final_u32_attr,
 	      &old_u32_attr,"\n",&col,style_bitmap);
-	if (line_anchors && ++y!=old_y) {
+	if (++y!=old_y && line_anchors) {
 	  DocPrint(doc_out,"",y+1);
 	  old_y=y;
 	}
diff --git a/Doc/ChangeLog.TXT b/Doc/ChangeLog.TXT
index de0858c..5f7d8af 100644
--- a/Doc/ChangeLog.TXT
+++ b/Doc/ChangeLog.TXT
@@ -2,7 +2,19 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
 
 Use $LK,"R",A="MN:R"$() to rename if I change a label.
 
-$IV,1$----02/10/16 13:51:44----$IV,0$
+$IV,1$----03/14/16 05:57:27----$IV,0$
+* $BK,1$TempleOS version 4.04 Released$BK,0$
+* Changed $FG,2$nobound_switch$FG$ so it uses [].
+* Changed $LK,"KbdMouseCmdAck",A="MN:KbdMouseCmdAck"$().
+
+$IV,1$----02/19/16 18:48:51----$IV,0$
+* Fixed bug in $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
+
+$IV,1$----02/15/16 23:31:15----$IV,0$
+* Improved $LK,"::/Demo/Games/RawHide.CPP"$.
+
+$IV,1$----02/13/16 17:02:34----$IV,0$
+* Added $FG,2$$$CL+H$$$FG$ to clear all, including hold entries.
 
 $IV,1$----02/10/16 08:56:49----$IV,0$
 * Improved $FG,2$$FG$ prompting.
diff --git a/Doc/Demands.TXT b/Doc/Demands.TXT
index cded924..9679859 100644
--- a/Doc/Demands.TXT
+++ b/Doc/Demands.TXT
@@ -2,6 +2,8 @@ $WW,1$$FG,5$$TX+CX,"Demands"$$FG$
 
 I, Terry Davis, am high priest of God's official temple, TempleOS.  TempleOS is an operating system for PC desktops that will always dual boot along-side Windows or Linux.  I am in charge of the core 100,000 lines of TempleOS code and I do continual offerings to keep God entertained.  I have divine authority to command any company in the computer industry to do anything that I deem necessary to make God's temple more beautiful, glorious and perfect.  I have authority similar to a building inspector or an enforcer of the Americans with Disability Act -- I make commands, God signs-off with a miraculous authentication from an oracle, and Intel, Microsoft or VMware obeys.
 
+$HC,""$
+
 * Windows, Linux and VMware (because of mounted drives) must support $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$ file system so I can get rid of 2,000 lines of redundant, blemished code -- FAT32 and ISO9660.  God's temple must be perfect.  Redundant code for multiple file systems is imperfect.  For this operating system, we want low line count.  More than one file system type is actually bad, just as more than one driver for the same type of device is bad.
 $LK,"::/Kernel/BlkDev/FileSysRedSea.CPP"$
 $LK,"::/Kernel/BlkDev/FileSysFAT.CPP"$	:965 lines for FAT32 gets eliminated.
@@ -11,7 +13,7 @@ $LK,"::/Kernel/BlkDev/DskCluster.CPP"$	:152 All the cluster operations become bl
 
 * Microsoft must cancel SecureBoot because it makes dual booting impossible.  TempleOS is an additional operating system that must be used along-side Windows or Linux, not as a replacement.  It must dual boot because it has no networking. Real hardware as opposed to VMware is like the difference between looking in a telescope eye piece vs just looking at an off-line image.  God said the C64/Apple II generation owned ancestral lands.  VMware is like being taken off of our land and moved onto a reservation.  In this case, however, it will not stand.
 
-* VMware needs to support ATAPI CD/DVD/BlueRay disk burning, directly to real hardware.
+* VMware needs to support ATAPI CD/DVD/Blu-ray disk burning, directly to real hardware.
 
 * VMware has a bug stretching 640x480 16 color to full screen.
 
@@ -21,7 +23,7 @@ $LK,"::/Kernel/BlkDev/DskCluster.CPP"$	:152 All the cluster operations become bl
 
 * VMware and others must list TempleOS as an official 64-bit operating system.
 
-* Until super simple block devices are available, hard disk should be placed at IDE primary master 1F0/3F6 and CD/DVD/BlueRay should be placed at the IDE secondary master 170/376.
+* Until super simple block devices are available, hard disk should be placed at IDE primary master 1F0/3F6 and CD/DVD/Blu-ray should be placed at the IDE secondary master 170/376.
 $LK,"/Kernel/BlkDev/DskATAId.CPP",A="FI:::/Kernel/BlkDev/DskATAId.CPP"$	:280 lines to figure-out I/O ports is gone.
 $LK,"/Kernel/PCIBIOS.CPP",A="FI:::/Kernel/PCIBIOS.CPP"$		:290 could be eliminated, but maybe we will keep it so people can play with PCI devices.
 
diff --git a/Doc/HolyC.TXT b/Doc/HolyC.TXT
index d7fd140..b02bebc 100644
--- a/Doc/HolyC.TXT
+++ b/Doc/HolyC.TXT
@@ -106,6 +106,8 @@ $ID,2$
 $FG,2$if (13<=age<20)
   "Teen-ager";
 $FG$$ID,-2$
+* if you know a switch stmt will not exceed the lowest or highest case values.  $FG,2$switch []$FG$ is a little faster because it doesn't check.
+
 * $FG,2$switch$FG$ stmts always use a jump table.  Don't use them with cases with really big, sparse ranges.
 
 * Allows ranges like "$FG,2$case 4...7:$FG$" in $FG,2$switch$FG$ stmts.
@@ -123,8 +125,6 @@ for (i=0;i<20;i++)
     case: "Eleven\n";	break; //One plus previous case.
   }$FG$$ID,-2$
 
-* $FG,2$nobound_switch$FG$ can be used if you know a switch stmt will not exceed the lowest or highest case values.  It's a little faster because it doesn't check.
-
 * $FG,2$sub_switch_start$FG$/$FG,2$sub_switch_end$FG$ allow a new type of nested-switch control flow.  (Don't goto, throw exception or return out of $FG,2$sub_switch_start$FG$ front porch area.)  See $LK,"::/Demo/SubSwitch.CPP"$.
 
 $ID,2$$FG,2$I64 i;
diff --git a/Kernel/BlkDev/DskDirA.CPP b/Kernel/BlkDev/DskDirA.CPP
index f8b58aa..5f3791c 100644
--- a/Kernel/BlkDev/DskDirA.CPP
+++ b/Kernel/BlkDev/DskDirA.CPP
@@ -103,7 +103,7 @@ U0 DirFilesSort(CDirEntry **_tempde,I64 key)
 	sort_buf[i++]=tempde1;
 	tempde1=tempde1->next;
       }
-      nobound_switch (key) {
+      switch [key] {
 	case SK_NAME:
 	  QSortI64(sort_buf,cnt,&DirEntryCompareName);
 	  break;
diff --git a/Kernel/BlkDev/DskDrv.CPP b/Kernel/BlkDev/DskDrv.CPP
index b844300..d27cb70 100644
--- a/Kernel/BlkDev/DskDrv.CPP
+++ b/Kernel/BlkDev/DskDrv.CPP
@@ -221,7 +221,7 @@ Bool MapDrv(U8 drv_let,CDrv *dv)
 }
 
 Bool Drv(U8 drv_let)
-{//Set drive.  You can set drive with $LK,"Cd",A="MN:Cd"$() as well.
+{//Change drive.  You can set drive with $LK,"Cd",A="MN:Cd"$() as well.
   CDrv *dv=Let2Drv(drv_let);
   CBlkDev *bd;
   bd=BlkDevChk(dv->bd);
diff --git a/Kernel/Compress.CPP b/Kernel/Compress.CPP
index 9e2936c..84a07d1 100644
--- a/Kernel/Compress.CPP
+++ b/Kernel/Compress.CPP
@@ -258,7 +258,7 @@ U8 *ExpandBuf(CArcCompress *arc,CTask *mem_task=NULL)
 
   result=MAlloc(arc->expanded_size+1,mem_task);
   result[arc->expanded_size]=0; //terminate
-  nobound_switch (arc->compression_type) {
+  switch [arc->compression_type] {
     case CT_NONE:
       MemCpy(result,&arc->body,arc->expanded_size);
       break;
diff --git a/Kernel/KHashB.CPP b/Kernel/KHashB.CPP
index d89a102..726d0fa 100644
--- a/Kernel/KHashB.CPP
+++ b/Kernel/KHashB.CPP
@@ -8,7 +8,7 @@ I64 HashTypeNum(CHash *temph)
 
 I64 HashVal(CHash *temph)
 {//Returns most likely desired value.
-  nobound_switch (HashTypeNum(temph)) {
+  switch [HashTypeNum(temph)] {
     case HTt_EXPORT_SYS_SYM:
       return temph(CHashExport *)->val;
     case HTt_IMPORT_SYS_SYM:
@@ -40,8 +40,8 @@ I64 HashVal(CHash *temph)
     case HTt_FRAME_PTR:
       return temph(CHashGeneric *)->user_data0;
 
-    case -1:		//nobound_switch
-    case HTt_NUM_TYPES: //nobound_switch
+    case -1:		//nobound switch
+    case HTt_NUM_TYPES: //nobound switch
     default:
       return 0;
   }
diff --git a/Kernel/Kernel.MAP b/Kernel/Kernel.MAP
index 55c6877..7276961 100644
--- a/Kernel/Kernel.MAP
+++ b/Kernel/Kernel.MAP
@@ -2,7 +2,7 @@ $LK,"DrvTextAttrGet",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,281",BI=1$
 $LK,"ARGT_R64",A="FL:::/Kernel/KernelA.HPP,1874"$
 $LK,"MAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,387"$
 $LK,"BOOT_SRC_NULL",A="FL:::/Kernel/KernelA.HPP,3862"$
-$LK,"KbdTypeMatic",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,83",BI=2$
+$LK,"KbdTypeMatic",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,86",BI=2$
 $LK,"KbdLEDsSet",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,52",BI=3$
 $LK,"LXchgU32",A="FL:::/Kernel/KernelB.HPP,261"$
 $LK,"LXchgU16",A="FL:::/Kernel/KernelB.HPP,260"$
@@ -144,7 +144,7 @@ $LK,"IEF_OP_SIZE16",A="FL:::/Kernel/KernelA.HPP,1706"$
 $LK,"HTT_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,683"$
 $LK,"BD_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2636"$
 $LK,"DOCEf_ESC",A="FL:::/Kernel/KernelA.HPP,1079"$
-$LK,"ScanCode2Char",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,133",BI=28$
+$LK,"ScanCode2Char",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,136",BI=28$
 $LK,"NUM_DRVS",A="FL:::/Kernel/KernelA.HPP,2687"$
 $LK,"FSt_ISO13346",A="FL:::/Kernel/KernelA.HPP,2663"$
 $LK,"_D3_ADD",A="FL:::/Kernel/KMathA.CPP.Z,131"$
@@ -157,7 +157,7 @@ $LK,"ARGT_RAX",A="FL:::/Kernel/KernelA.HPP,1899"$
 $LK,"EDf_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1245"$
 $LK,"EDF_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1239"$
 $LK,"DOCF_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1260"$
-$LK,"KbdMsgsQue",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,464",BI=30$
+$LK,"KbdMsgsQue",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,467",BI=30$
 $LK,"ARGT_ST0",A="FL:::/Kernel/KernelA.HPP,1912"$
 $LK,"RT_I64",A="FL:::/Kernel/KernelA.HPP,1551"$
 $LK,"FifoI64Cnt",A="FL:::/Kernel/KDataTypes.CPP.Z,312",BI=31$
@@ -197,7 +197,7 @@ $LK,"IET_ABS_ADDR",A="FL:::/Kernel/KernelA.HPP,407"$
 $LK,"PressAKey",A="FL:::/Kernel/StrB.CPP.Z,103",BI=43$
 $LK,"DOF_WIN_MAX",A="FL:::/Kernel/KernelA.HPP,1208"$
 $LK,"CCodeCtrl",A="FL:::/Kernel/KernelA.HPP,1993"$
-$LK,"Char2ScanCode",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,97",BI=44$
+$LK,"Char2ScanCode",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,100",BI=44$
 $LK,"Mem32DevInit",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,30",BI=45$
 $LK,"_BIT_FIELD_OR_U32",A="FL:::/Kernel/KUtils.CPP.Z,154"$
 $LK,"DOCf_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1296"$
@@ -345,7 +345,7 @@ $LK,"DOCEf_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,1063"$
 $LK,"DOCEF_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,977"$
 $LK,"RFLAGf_DIR",A="FL:::/Kernel/KernelA.HPP,312"$
 $LK,"ClusterNumNext",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,1",BI=81$
-$LK,"KbdMouseEvtTime",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,483",BI=82$
+$LK,"KbdMouseEvtTime",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,486",BI=82$
 $LK,"ip_last",A="FL:::/Kernel/KGlbls.CPP.Z,24"$
 $LK,"CDirEntry",A="FL:::/Kernel/KernelA.HPP,2529"$
 $LK,"TK_STR",A="FL:::/Kernel/KernelA.HPP,2050"$
@@ -696,7 +696,7 @@ $LK,"Dr",A="FL:::/Kernel/KDbg.CPP.Z,328",BI=151$
 $LK,"CPUId",A="FL:::/Kernel/KernelB.HPP,258"$
 $LK,"FilesFind2",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,1",BI=152$
 $LK,"TaskKillDying",A="FL:::/Kernel/KTask.CPP.Z,496",BI=153$
-$LK,"scan_code_map",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,154"$
+$LK,"scan_code_map",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,157"$
 $LK,"MSize2",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,385"$
 $LK,"REGG_C_TEMP_CLOBBERED",A="FL:::/Kernel/KernelA.HPP,1771"$
 $LK,"MemSetU32",A="FL:::/Kernel/KernelB.HPP,183"$
@@ -736,14 +736,14 @@ $LK,"FifoI64Peek",A="FL:::/Kernel/KDataTypes.CPP.Z,290",BI=162$
 $LK,"_EXP",A="FL:::/Kernel/KMathA.CPP.Z,558"$
 $LK,"SYS_SEMA_SYS_TIMER",A="FL:::/Kernel/KernelA.HPP,591"$
 $LK,"IET_END",A="FL:::/Kernel/KernelA.HPP,390"$
-$LK,"KbdHandler",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,438",BI=163$
+$LK,"KbdHandler",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,441",BI=163$
 $LK,"GSF_WITH_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,3761"$
 $LK,"SPF_TRUNCATE",A="FL:::/Kernel/StrPrint.CPP.Z,3"$
 $LK,"SYS_HASH_FIND1",A="FL:::/Kernel/KHashA.CPP.Z,81"$
 $LK,"GetRSP",A="FL:::/Kernel/KernelB.HPP,250"$
 $LK,"_D3_DIST",A="FL:::/Kernel/KMathA.CPP.Z,39"$
 $LK,"ScanKey",A="FL:::/Kernel/SerialDev/Message.CPP.Z,123",BI=164$
-$LK,"MouseDriverInstall",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,238",BI=165$
+$LK,"MouseDriverInstall",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,222",BI=165$
 $LK,"mouse_last",A="FL:::/Kernel/KGlbls.CPP.Z,27"$
 $LK,"D3DistSqr",A="FL:::/Kernel/KernelB.HPP,157"$
 $LK,"_RDI",A="FL:::/Kernel/KernelA.HPP,3401"$
@@ -802,12 +802,12 @@ $LK,"ac",A="FL:::/Kernel/KGlbls.CPP.Z,18"$
 $LK,"_FSTSW",A="FL:::/Kernel/KMathA.CPP.Z,641"$
 $LK,"ARGT_IMM32",A="FL:::/Kernel/KernelA.HPP,1863"$
 $LK,"ARGT_IMM16",A="FL:::/Kernel/KernelA.HPP,1862"$
-$LK,"MouseSpeedSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,130",BI=176$
+$LK,"MouseSpeedSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,114",BI=176$
 $LK,"Name2ParentDirCluster",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,54",BI=177$
 $LK,"Free",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,383"$
 $LK,"DOCEf_AUX_STR",A="FL:::/Kernel/KernelA.HPP,1047"$
 $LK,"DOCEF_AUX_STR",A="FL:::/Kernel/KernelA.HPP,961"$
-$LK,"Char2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,198",BI=178$
+$LK,"Char2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,201",BI=178$
 $LK,"Mem512Free",A="FL:::/Kernel/Mem/Mem512.CPP.Z,83",BI=179$
 $LK,"blkdev",A="FL:::/Kernel/KGlbls.CPP.Z,19"$
 $LK,"TK_NUM_TK",A="FL:::/Kernel/KernelA.HPP,2088"$
@@ -815,7 +815,7 @@ $LK,"TY_SIB",A="FL:::/Kernel/KernelA.HPP,1565"$
 $LK,"CWinMgrGlbls",A="FL:::/Kernel/KernelA.HPP,1459"$
 $LK,"DOCEf_TREE",A="FL:::/Kernel/KernelA.HPP,1094"$
 $LK,"DOCEF_TREE",A="FL:::/Kernel/KernelA.HPP,1010"$
-$LK,"MouseUpdatePre",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,140",BI=180$
+$LK,"MouseUpdatePre",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,124",BI=180$
 $LK,"ISO1FileFind",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,130",BI=181$
 $LK,"TASK_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3276"$
 $LK,"SysDefinesLoad",A="FL:::/Kernel/KDefine.CPP.Z,97",BI=182$
@@ -924,7 +924,7 @@ $LK,"pi",A="FL:::/Kernel/KernelA.HPP,48"$
 $LK,"ICF_ALTERNATE_TEMPLATE",A="FL:::/Kernel/KernelA.HPP,1597"$
 $LK,"ATTRF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,887"$
 $LK,"ATTRf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,892"$
-$LK,"KbdMouseVarsInit",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,294",BI=212$
+$LK,"KbdMouseVarsInit",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,276",BI=212$
 $LK,"DOCF_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1265"$
 $LK,"RT_MASK",A="FL:::/Kernel/KernelA.HPP,1559"$
 $LK,"SYS_SEMA_UPDATE_WIN_Z_BUF",A="FL:::/Kernel/KernelA.HPP,604"$
@@ -1107,7 +1107,7 @@ $LK,"progress2_desc",A="FL:::/Kernel/KernelB.HPP,218"$
 $LK,"DCSF_PALETTE_GET",A="FL:::/Kernel/KernelA.HPP,3622"$
 $LK,"SC_F9",A="FL:::/Kernel/KernelA.HPP,3561"$
 $LK,"DOCEF_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,997"$
-$LK,"KbdBuildSC",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,298",BI=250$
+$LK,"KbdBuildSC",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,301",BI=250$
 $LK,"IOAPICID",A="FL:::/Kernel/KernelA.HPP,508"$
 $LK,"RFLAGf_SIGN",A="FL:::/Kernel/KernelA.HPP,309"$
 $LK,"AMAllocIdentical",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,418",BI=251$
@@ -1349,7 +1349,7 @@ $LK,"XchgI64",A="FL:::/Kernel/KernelB.HPP,266"$
 $LK,"SC_CURSOR_DOWN",A="FL:::/Kernel/KernelA.HPP,3544"$
 $LK,"DOF_DONT_WINMGR_SYNC",A="FL:::/Kernel/KernelA.HPP,1210"$
 $LK,"I_SINGLE_STEP",A="FL:::/Kernel/KernelA.HPP,285"$
-$LK,"KbdMouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,228",BI=304$
+$LK,"KbdMouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,212",BI=304$
 $LK,"ATA_WRITE_MULTI",A="FL:::/Kernel/KernelA.HPP,2243"$
 $LK,"DOC_COLOR_KEYWORD",A="FL:::/Kernel/KernelA.HPP,1132"$
 $LK,"XTalkStr",A="FL:::/Kernel/SrvCmd.CPP.Z,490",BI=305$
@@ -1723,14 +1723,14 @@ $LK,"WBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,68",BI=387$
 $LK,"DOCT_ERROR",A="FL:::/Kernel/KernelA.HPP,936"$
 $LK,"CopySingle",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,23",BI=388$
 $LK,"EXT_WIN_TO_TOP",A="FL:::/Kernel/KernelA.HPP,571"$
-$LK,"MouseIPSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,216",BI=389$
+$LK,"MouseIPSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,200",BI=389$
 $LK,"ATAPIReadCapacity",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,253",BI=390$
 $LK,"MkDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,146",BI=391$
 $LK,"IsDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,76",BI=392$
 $LK,"SetMSR",A="FL:::/Kernel/KernelB.HPP,264"$
 $LK,"ToI64",A="FL:::/Kernel/KernelB.HPP,120"$
 $LK,"IET_MAIN",A="FL:::/Kernel/KernelA.HPP,412"$
-$LK,"ScanCode2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,245",BI=393$
+$LK,"ScanCode2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,248",BI=393$
 $LK,"DOCf_INVERT",A="FL:::/Kernel/KernelA.HPP,1311"$
 $LK,"DOCF_INVERT",A="FL:::/Kernel/KernelA.HPP,1274"$
 $LK,"sys_heap_limit",A="FL:::/Kernel/KernelB.HPP,200"$
@@ -1742,7 +1742,7 @@ $LK,"OPTf_USE_IMM64",A="FL:::/Kernel/KernelA.HPP,1537"$
 $LK,"Raw",A="FL:::/Kernel/KMisc.CPP.Z,243",BI=395$
 $LK,"Msg",A="FL:::/Kernel/SrvCmd.CPP.Z,257",BI=396$
 $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,1534"$
-$LK,"KbdInit",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,421",BI=397$
+$LK,"KbdInit",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,424",BI=397$
 $LK,"chars_bmp_zero_tab_ff_cr_nl_cursor_dollar",A="FL:::/Kernel/StrA.CPP.Z,368"$
 $LK,"ToBool",A="FL:::/Kernel/KernelB.HPP,118"$
 $LK,"TASKf_KILL_AFTER_DBG",A="FL:::/Kernel/KernelA.HPP,3265"$
@@ -1784,7 +1784,7 @@ $LK,"SYS_PROGRESS4_MAX",A="FL:::/Kernel/KStart.CPP.Z,218"$
 $LK,"SUF_TO_UPPER",A="FL:::/Kernel/KernelA.HPP,3770"$
 $LK,"MBR_PT_REDSEA",A="FL:::/Kernel/KernelA.HPP,2679"$
 $LK,"MBR_PT_NTFS",A="FL:::/Kernel/KernelA.HPP,2678"$
-$LK,"MouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,179",BI=404$
+$LK,"MouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,163",BI=404$
 $LK,"SCF_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3523"$
 $LK,"SCf_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3508"$
 $LK,"MSG_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3201"$
@@ -1886,7 +1886,7 @@ $LK,"SUF_SCALE_INDENT",A="FL:::/Kernel/KernelA.HPP,3774"$
 $LK,"CT_7_BIT",A="FL:::/Kernel/KernelA.HPP,3723"$
 $LK,"PUSH_REGS",A="FL:::/Kernel/KernelA.HPP,1748"$
 $LK,"MAX_I8",A="FL:::/Kernel/KernelA.HPP,23"$
-$LK,"KbdMouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,257",BI=422$
+$LK,"KbdMouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,241",BI=422$
 $LK,"Color2Str",A="FL:::/Kernel/KDefine.CPP.Z,126",BI=423$
 $LK,"EDF_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1237"$
 $LK,"LAPIC_DFR",A="FL:::/Kernel/KernelA.HPP,482"$
@@ -1971,7 +1971,7 @@ $LK,"LAPIC_LDR",A="FL:::/Kernel/KernelA.HPP,483"$
 $LK,"BptFind",A="FL:::/Kernel/KDbg.CPP.Z,344",BI=439$
 $LK,"kbd",A="FL:::/Kernel/KGlbls.CPP.Z,25"$
 $LK,"progress4_max",A="FL:::/Kernel/KernelB.HPP,227"$
-$LK,"MouseUpdatePost",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,147",BI=440$
+$LK,"MouseUpdatePost",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,131",BI=440$
 $LK,"HashDel",A="FL:::/Kernel/KHashB.CPP.Z,59",BI=441$
 $LK,"CKbdStateGlbls",A="FL:::/Kernel/KernelA.HPP,2973"$
 $LK,"LinkedLstCopy",A="FL:::/Kernel/KDataTypes.CPP.Z,11",BI=442$
@@ -2160,7 +2160,7 @@ $LK,"FUf_SINGLE",A="FL:::/Kernel/KernelA.HPP,2556"$
 $LK,"DVDImageWriteTask",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,49",BI=476$
 $LK,"LTGRAY",A="FL:::/Kernel/KernelA.HPP,2936"$
 $LK,"CoreAPSethInit",A="FL:::/Kernel/MultiProc.CPP.Z,276",BI=477$
-$LK,"IRQKbd",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,408",BI=478$
+$LK,"IRQKbd",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,411",BI=478$
 $LK,"QueVectU8Del",A="FL:::/Kernel/KDataTypes.CPP.Z,132",BI=479$
 $LK,"SwapU32",A="FL:::/Kernel/KernelB.HPP,114"$
 $LK,"SwapU16",A="FL:::/Kernel/KernelB.HPP,112"$
@@ -2557,7 +2557,7 @@ $LK,"ICF_PREVIOUS_DELETED",A="FL:::/Kernel/KernelA.HPP,1602"$
 $LK,"ACD_DEF_FILENAME_Z",A="FL:::/Kernel/KernelA.HPP,1491"$
 $LK,"ATARepFind",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,194",BI=562$
 $LK,"QSort2a",A="FL:::/Kernel/QSort.CPP.Z,32",BI=563$
-$LK,"num_lock_map",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,176"$
+$LK,"num_lock_map",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,179"$
 $LK,"QSort2b",A="FL:::/Kernel/QSort.CPP.Z,55",BI=564$
 $LK,"KDF_HAS_DESCS",A="FL:::/Kernel/KernelA.HPP,3788"$
 $LK,"CBlkPool",A="FL:::/Kernel/KernelA.HPP,2865"$
@@ -2708,7 +2708,7 @@ $LK,"DOCF_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1249"$
 $LK,"Cf_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,826"$
 $LK,"FAT32DrvInit",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,22",BI=590$
 $LK,"DOCT_ANCHOR",A="FL:::/Kernel/KernelA.HPP,920"$
-$LK,"KbdPktRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,385",BI=591$
+$LK,"KbdPktRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,388",BI=591$
 $LK,"KbdCmdRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,36",BI=592$
 $LK,"D3DivEqu",A="FL:::/Kernel/KernelB.HPP,159"$
 $LK,"ARGT_FS",A="FL:::/Kernel/KernelA.HPP,1908"$
@@ -2764,14 +2764,14 @@ $LK,"c32_edi",A="FL:::/Kernel/PCIBIOS.CPP.Z,157"$
 $LK,"PURPLE",A="FL:::/Kernel/KernelA.HPP,2934"$
 $LK,"TASKf_BREAK_LOCKED",A="FL:::/Kernel/KernelA.HPP,3262"$
 $LK,"FILEMASK_SRC",A="FL:::/Kernel/KernelA.HPP,2267"$
-D&9Æ9ÆCÆWÆYÆgÆ}ƌƦÆÕÆÙÆÙÆÞÆDS`““—¦²¾ÊØäëðýþ@4@kksw�§¿ÎÚèïüý,š¡#M#M,MJKKSZgv…𮽯èì`…™KKYfppƒ‹ž ³³·ÁÆÆÌ|w’j‘j‘Б𑥑ª‘¬‘²‘đ֑æ‘÷‘’	’	’	’’(’E’U’W’W’`’l’XÐâk(k(w(y(ˆ(ž(ª(±(È(Ê(á(á(ã(æ(ì( @8D„{„{’{”{¶{Ã{Ã{Í{ |ýY	Y	Š	�	›	¤	¤	»	Ì	á	æ	ù	ý	
+www w+w4wBwXw„w„w¨w¨w¯w¹wÏwñwöwöwýwxx=xBxBxExdxgxsxvxyx—x—xœxœx¤x©x­x½xÀxÙxÙxÞxÞxñxøxyy6y9y;y;yNyUy]ysy‘y”y–y–y±y´yÔyïyøyzzzzz6z6z6z;z;z;zGzZzdzuzxz{z€z€z…z�z zÆzÊzåzþz{{{"{({+{0{0{@{C{F{T{]{c{f{k{k{{‹{—{§{¿{ä{ñ{õ{|%|3|<|@|C|C|S|Y|k|p|x||‹|¨|«|­|¾|Å|Ñ|ê|÷|ú|}}}}1}8}F}F}F}M}Y}c}q}z}€}‡}’}›}ª}¹}È}è}ñ}[~4×à͈͈áˆïˆ‰‰‰‰‰@>JKKSZgv…𮽯èì`ˆœss�Ž˜˜«³ÆÈÛÛßéîîô|w’j‘j‘Б𑥑ª‘¬‘²‘đ֑æ‘÷‘’	’	’	’’(’E’U’W’W’`’l’XÓå“(“(Ÿ(¡(°(Æ(Ò(Ù(ð(ò(	)	)))) @8D„{„{’{”{¶{Ã{Ã{Í{ |ýY	Y	Š	�	›	¤	¤	»	Ì	á	æ	ù	ý	
 !
 *
 :
@@ -2780,10 +2780,9 @@ www w+w4wBwXw
 a
 d
 ™
-!4ÑÚ``/`A`P`a`t`z`ƒ`"¬(FdFd`dqdƒd’d¢d¶dÁdÇdßdßdëdýdeeee'e'e-e-e”e™e™eÁeÁeÏeÒeÕeãeéeòef#,Ûâƒ`ƒ`‘`´`Ÿ`Ä`Ê`ñ`$ †ŠpVpVyV†V‹V%H—¥NòNòiòkò|òˆò�ò™ò™ò�ò§ò&Œ¬Ë¶é¶é×éÚéãéÿéêêê"ê*êDêLê_êiênêzê€ê‡ê”ê—ê ê£ê¦ê«êÒê' }�^¼^¼r¼€¼†¼(Dævævwwww,w9w?wBwNw)p¼Ô.ó.ó<óJó`óoótó„ó†óŒó•ó�ó¨óÂóÒóáóáóèóèóèóÜô*h#9 h h¶h¸hÇhÛhÝhæhèhèhëhiGiTi^inixiƒi†i”i+$glkkk,k7kRk,œa„"/<Iauw‹‹“¨µµÂÊÙëó!5<<F-|9¨Z¨Z²Z¿ZÐZÚZáZèZñZùZ[[ [)[1[8[?[G[M[X[\[^[^[b[.X ΘΘí˜ð˜õ˜ø˜™™ ™)™1™5™8™8™>™A™O™/D*7ÄJÄJØJèJïJýJKKKK0 
+!4ÑÚ#`#`7`I`X`i`|`‚`‹`"¬(FdFd`dqdƒd’d¢d¶dÁdÇdßdßdëdýdeeee'e'e-e-e”e™e™eÁeÁeÏeÒeÕeãeéeòef#,Ûâ‹`‹`™`¼`§`Ì`Ò`ù`$ †ŠpVpVyV†V‹V%H—¥NòNòiòkò|òˆò�ò™ò™ò�ò§ò&Œ¬Ë¶é¶é×éÚéãéÿéêêê"ê*êDêLê_êiênêzê€ê‡ê”ê—ê ê£ê¦ê«êÒê' }�^¼^¼r¼€¼†¼(Dævævwwww,w9w?wBwNw)p¼Ô.ó.ó<óJó`óoótó„ó†óŒó•ó�ó¨óÂóÒóáóáóèóèóèóÜô*h#9 h h¶h¸hÇhÛhÝhæhèhèhëhiGiTi^inixiƒi†i”i+$glkkk,k7kRk,œd‡++AJWdq‰�Ÿ³³»ÐÝÝêò/AI]ddn-|9¨Z¨Z²Z¿ZÐZÚZáZèZñZùZ[[ [)[1[8[?[G[M[X[\[^[^[b[.X ΘΘí˜ð˜õ˜ø˜™™ ™)™1™5™8™8™>™A™O™/D*7ÄJÄJØJèJïJýJKKKK0 
 ‹‹‹,‹F‹1”9ÙòÙòáòóó ó+ó9óKóYóaóoóƒó¶ó¸ó¼ó¼óÇóÒóáóðóôô#ô5ô<ô<ôNôOôSô2Xßñ>õLõZõZõrõxõ�õ‰õ”õžõ¥õ½õ½õ½õÄõÄõÅõËõ3P„z„z˜z¨z®z³z³zÁzÅzÊzÊzÒz4 $(ÐBÐBÞBòBøB5Œ¡Àj†j†‰†…†˜†¨†µ†¹†½†à†í†ù†‡‡‡X‡`‡‡–‡¤‡«‡²‡¹‡Ú‡à‡ç‡ê‡ˆ6Œþâ·â·ì·î·¸¸1¸:¸h¸k¸t¸¢¸¥¸©¸®¸º¸Á¸ã¸æ¸è¸ï¸¹¹¹¹"¹)¹0¹7@8DKK$K-K4K;KBKCKKK8<ðûüyüyzz)z:zBzJzRzUz]z9,ZaEEECESEyE†EˆE:,JQøCøCüC3DCDiDwDyD;”£ÄYãYãtã~ãˆãŸãµãºãÇãÌãèãääää6äKäMägä|ä|äƒäƒäƒä(å<$ˆ�CCLZpu=<‰”JÁJÁTÁjÁyÁÁŽÁ”Á£Á©Á«Á°Á>H!ÔzÔzâzîzózóz{{{{{?LïþŠŠŠŠ Š)Š/Š<ŠPŠPŠoŠoŠŒŠ�Š”ŠšŠ@ ƒ‡þþA\˜«éé"é0é5é;éFéOéOé_ékéoé‡éŽé‘é“é¶éB4ˆ‘$4UjjjnC,jqFFFCFSFyFƒF…FD¸�Ƕ!¶!¾!Æ!Ñ!ð!ù!"#"-"9"D"D"S"t"•"¢"ª"À"Ë"Ó"Ó"â"#$#1#9#O#Z#l#l#z#�#“#“#¡#¡#¢#µ#E ’–nnrƒF —›††Š­±Gp]uÀÀ,À>ÀZÀZÀaÀcÀcÀqÀsÀsÀÀÀ…À�À‘ÀœÀ´ÀÎÀÎÀÎÀÛÀHì<©å©å±å½åÝåñåõåæææ,ædædæ“æ°æºæÉæÇæóæóæç&ç&ç5çDçXç}ç�çƒçƒç�ç�ç‘ç‘ç¡ç­ç­ç±ç¶ç¿çÑçØçåçôç è(è:è:è@è‹éI|XsYêYêqê{ê‚êŽê‘êŸê¢ê¦ê¨ê«ê®ê¶ê¹êÁêÕêßêõêûêþêëëëJ4•ž²k²k¼k¾kÅkËkÝkÞkãkK,'.fÜfÜpÜrÜzܔܙܟÜLP��°]°]Â]Å]Ð]Õ]â]í]ü]^^%^.^1^;^M�[{`\`\z\…\Š\“\¦\¾\Æ\Î\Û\å\ì\ó\÷\û\]]]]"](]+]9];]I]Né%ðð+ð2ðCðFðgðzð‡ð•ð¾ðÚðæðíðïðòðøðüð
ñññ ñ#ñ%ñ1ñAñIñOñ\ñ_ñbñpñ�ñ‘ñ�ñŸñ¯ñ¼ñÂñÏñãñæñéñññññññùñòòòò-òO œ ¶¶ºÏÓP„
*NÊNÊhÊkÊ~ʋʧʪʰʹÊÅÊÇÊÚÊíÊñÊË
-ËËË)Ë+Ë+Ë;Ë>ËTËQˆ !Í!Í)Í4ÍDÍSÍ_̓̓̓͋Í�Í�Í´ÍÃÍäÍüÍÎÎÎÎÎ$Î+Î+Î=ÎBÎJÎR,ãêó(ó(÷()))SL@O^^�ˆ’–šž¨¨²ÅÈÖT ¡¥ÖÖÚéíU äèæâæâêâããVHú™f™f¹fÆfËf×fñf÷fýf
-ggg gWHëùff1f>fCfOfifofuf‚f‹fŒf˜fX ¦ªîîò÷ûY «¯þþZ<ÈÓzÃzË×ÛçéõüÃÂÃÊÃ[d^s»J»JÃJÇJÇJÖJøJKKK1KCKLKSKvKK†K’K”K\°¥Í>=>=I=Y=j=y=„=“= =¹=Ð=Ô=Ø=à=è=ñ=>>.>2>6>:>B>J>S>q>„>�>ž>¥>¥>¶>¿>]0&¶“¶“¿“¿“Ö“ó“ó“ø“^8°(°(Ê(Î(Ñ(Ü(ú(þ())_ ëMëMôMÿMN`D»È__*_A_N_N_X_r_|_aL™¨ûPûP	QQQ Q!Q/Q:QCQCQDQJQb,biˆEˆEŒEÃEÓEùEFFc,RY€D€D„D»DËDñDÿDEd0ÁɈˆˆUˆ\ˆbˆoˆ‚ˆŽˆeY™
+ËËË)Ë+Ë+Ë;Ë>ËTËQˆ !Í!Í)Í4ÍDÍSÍ_̓̓̓͋Í�Í�Í´ÍÃÍäÍüÍÎÎÎÎÎ$Î+Î+Î=ÎBÎJÎR,æí)) )8)?)A)SL@O^^�ˆ’–šž¨¨²ÅÈÖT ¡¥ÖÖÚéíU äèæâæâêâããVHú¡f¡fÁfÎfÓfßfùfÿfgggg(gWHëùff9fFfKfWfqfwf}fŠf“f”f fX ¦ªîîò÷ûY «¯þþZ<ÈÓzÃzË×ÛçéõüÃÂÃÊÃ[d^sÃJÃJËJÏJÏJÞJKKK!K9KKKTK[K~K‡KŽKšKœK\°¥Í>=>=I=Y=j=y=„=“= =¹=Ð=Ô=Ø=à=è=ñ=>>.>2>6>:>B>J>S>q>„>�>ž>¥>¥>¶>¿>]0&¶“¶“¿“¿“Ö“ó“ó“ø“^8°(°(Ê(Î(Ñ(Ü(ú(þ())_ ëMëMôMÿMN`D»È__*_A_N_N_X_r_|_aL™¨ûPûP	QQQ Q!Q/Q:QCQCQDQJQb,biˆEˆEŒEÃEÓEùEFFc,RY€D€D„D»DËDñDÿDEd0ÁɈˆˆUˆ\ˆbˆoˆ‚ˆŽˆeY™
 ™
 ¡
 ¬
@@ -2792,17 +2791,18 @@ ggg gWH
 ä
 í
 $1DbkxƒŽ“°µµÂÌßì'CNVq|‘¯»ÄÉæïû
-

8
C
K
V
V
V
[
i
t
{
†
‹
’
f,ryˆFˆFŒFÃFÓFùFGGg$ûWW;WHWNWZWh$+0VËVË_Ëp˂˾Ëi<$/*”*”8”@”H”U”`”j”™”›”¡”jô–Ï‹C‹CŸC®C½CÇCÖCåCåCDD'D.DJDWDeDsD�D�D¯D¥D»DÍDØDêDùDEEEE#E3E;EKEUEŒE›E£E¦E´Ek@nz¶–¶–Ö˖Ζܖà–ä–ç–õ–ü–—l$bJoJo]ocoro|o�o�o�o”o™o£o´oÅoÙoÛoöo&p=pSp^p~p€p‹p•p pªpµp¿pÊpØpßpípíp÷pq8qCqZq_qaqkq‡q�q˜q³qmdÆÛ»U»UÉUÎUÞUãUòU÷UùUÿUVVV$V/V3V9VnD/<¦Ü¦Ü¯ÜÄÜÐÜÛÜäÜòÜýÜÝ
-Ýo<²½C^C^Y^l^€^†^ ^§^½^Ã^É^ÿ^p,ããç+Tbdq<bmn–n–{–ƒ–†–”–˜–œ–ª–®–³–r|0vúvú‡ú‘úŸú·úÏúäúÿúûû û+û2ûCûMûMû^ûfûkûrû|û�û›ûsL𩵆µ†Ñ†Ø†ß†ë†ô†‡‡‡'‡=‡L‡V‡V‡k‡t8ÃQÃQÙQæQøQRR#R-Ru 6ä6ä:äSävÔ,]1ÿ1ÿ9ÿAÿOÿbÿqÿ{ÿ‡ÿ’ÿ ÿ¯ÿÀÿÜÿäÿðÿøÿ
".@T†—¤¿ÜÞðùù 22@@EIw4¨±Ã]Ã]×]é]ï]	^^&^,^?^x0DLBBB!B,B;BUB]ByPZjõ„õ„………%…*…-…3…6…;…F…L…V…zd¦»®ò®òÇòÊòØòØòáòìòñòôòóóóóóó!ó-ó{H<Jææææ'æ0æ3æ@æIæIæMæPæXæ|$PUÖÖßíóø}4ÕÞÞôÞôìôúôõ
õ&õ+õ2õ8õ~¬LsÂhÂhÔhãhéhýhi'i:iQidi{i’i©iÁiÅiÌiÒiÖièijjj,j0j7j=jAjSjljyjj‚jŒj?6&6&>&F&W&f&p&|&|&€&ˆ&Œ&¥&ß&ñ&','5'>'>'C'V'['f'|'�'—'È'þ'( (5(I(P(�(·(È(Ø(Ø(ß(ñ(ñ(ÿ(ÿ())) )$)()€P—§#]#]9]L][]t]~]€]Œ]¥]°]¶]º]Â]�0jrfftƒŽ”––œ‚<KVjj!j+j;j=jpjwjwjwjzjƒ˜òÎõÎõÔõÒõâõoú„4ŠÓ>Â>ÂVÂ^ÂlÂwÂ{Â�‡•ª¯µÂÌÂÑÂ×ÂîÂóÂùÂÃÃÃ)Ã-ÃIÃ\ÃlÃqÀÃ�Ã�ìùÃÌÃÒÃÙÃÛÃîÃÄÄÄ,Ä,Ä?ÄAÄTÄVÄiÄkÄ~Ä~ĚıķĽÄÈÄìÄ…HVäVä_äzäƒäŽä�ä’ä¡ä¡ä°ä²ä²ä·ä†\Üï;V;VKVYVdVfVmVwV�V˜VšVŸV¡V¢V¢VªV‡( ¦éÛéÛôÛÜÜ܈D¾Ëöáöáââ"â.â5âDâPâPâVâ‰d9×9×I×d×d×f×f×f×n×׈יץרת׭ׯׯׯ׻׊D-:sAsAˆA–A–AžA´A¸A¸A¼AÄA‹Ô
-;nn n#n&n0n6nBnInPnYnfntn}n€n†nŒn“nšnœn¦n«n´nÂnÈn×nãnænénñnönooooooo!o)o1o=o@oRoŒ81;¾Ë¾ËÌËãËîËîËùËýËýËÌ�$<�ññù	+:CQ^eoz�œ¤¸ÅÙæú"6@Taany„˜¿ÍÛèóþ$9ISdu†—ÊØí)2A\s|‡Ž™£¬¼Ž0t|›K›KŸK¬KÈKÝKâKüK�02:½ƒ½ƒÑƒÜƒîƒöƒùƒ„�¼KvûQûQR8RJRQR^RjRrR}R…R�R›R¿RÎRÕRÜRíRïR÷RS
SS#S&S(S.S4SLSUSUSYSrS‘,ÑØöêöêëë'ë+ë-ëAë’8K>H>HXH[HaHmHoH~H…H‹H´H»HèHïHóHII4I=I=I=IJIƒI�I›I¨I»IÉIÚIíIúIJ$J+J6JRJRJ^J`J`JlJnJnJzJ|J|JŒJ�J�J›J§JÀJÊJÓJÞJôJKKKK,K3K:K@KCK�K“Pîþ®u®uÎuáuíuùuvv v&v+v-vFv”4#ˆBˆB‘B¦B¦B³BÈBÈBÍB• ÌÐÖêÖêäêíêóê–0ÊÒ’ˆ’ˆ¦ˆåˆìˆòˆ
+

8
C
K
V
V
V
[
i
t
{
†
‹
’
f,ryˆFˆFŒFÃFÓFùFGGg$û#W#WCWPWVWbWh$+0VËVË_Ëp˂˾Ëi<$/*”*”8”@”H”U”`”j”™”›”¡”jô–Ï“C“C§C¶CÅCÏCÞCíCíCD$D/D6DRD_DmD{D‰D—D·D­DÃDÕDàDòDEEEE#E+E;ECESE]E”E£E«E®E¼Ek@nz¶–¶–Ö˖Ζܖà–ä–ç–õ–ü–—l$bJoJo]ocoro|o�o�o�o”o™o£o´oÅoÙoÛoöo&p=pSp^p~p€p‹p•p pªpµp¿pÊpØpßpípíp÷pq8qCqZq_qaqkq‡q�q˜q³qmdÆÛÃUÃUÑUÖUæUëUúUÿUVVVVV,V7V;VAVnD/<¦Ü¦Ü¯ÜÄÜÐÜÛÜäÜòÜýÜÝ
+Ýo<²½K^K^a^t^ˆ^Ž^¨^¯^Å^Ë^Ñ^_p,ããç+Tbdq<bmn–n–{–ƒ–†–”–˜–œ–ª–®–³–r|0vúvú‡ú‘úŸú·úÏúäúÿúûû û+û2ûCûMûMû^ûfûkûrû|û�û›ûsL𩵆µ†Ñ†Ø†ß†ë†ô†‡‡‡'‡=‡L‡V‡V‡k‡t8ÃQÃQÙQæQøQRR#R-Ru 6ä6ä:äSävÔ,]1ÿ1ÿ9ÿAÿOÿbÿqÿ{ÿ‡ÿ’ÿ ÿ¯ÿÀÿÜÿäÿðÿøÿ
".@T†—¤¿ÜÞðùù 22@@EIw4¨±Ë]Ë]ß]ñ]÷]^^.^4^G^x0DLBBB)B4BCB]BeByPZjõ„õ„………%…*…-…3…6…;…F…L…V…zd¦»®ò®òÇòÊòØòØòáòìòñòôòóóóóóó!ó-ó{H<Jææææ'æ0æ3æ@æIæIæMæPæXæ|$PUÖÖßíóø}4ÕÞÞôÞôìôúôõ
õ&õ+õ2õ8õ~¬LsÂhÂhÔhãhéhýhi'i:iQidi{i’i©iÁiÅiÌiÒiÖièijjj,j0j7j=jAjSjljyjj‚jŒj?6&6&>&F&W&f&p&|&|&€&ˆ&Œ&¥&ß&ñ&','5'>'>'C'V'['f'|'�'—'È'þ'( (5(I(P(�(·(È(Ø(Ø(ß(ñ(ñ(ÿ(ÿ())) )$)()€P—§+]+]A]T]c]|]†]ˆ]”]­]¸]¾]Â]Ê]�0jrfftƒŽ”––œ‚<KVjj!j+j;j=jpjwjwjwjzjƒ˜òÎõÎõÔõÒõâõoú„4ŠÓ>Â>ÂVÂ^ÂlÂwÂ{Â�‡•ª¯µÂÌÂÑÂ×ÂîÂóÂùÂÃÃÃ)Ã-ÃIÃ\ÃlÃqÀÃ�Ã�ìùÃÌÃÒÃÙÃÛÃîÃÄÄÄ,Ä,Ä?ÄAÄTÄVÄiÄkÄ~Ä~ĚıķĽÄÈÄìÄ…HVäVä_äzäƒäŽä�ä’ä¡ä¡ä°ä²ä²ä·ä†\ÜïCVCVSVaVlVnVuVV•V V¢V§V©VªVªV²V‡( ¦éÛéÛôÛÜÜ܈D¾Ëöáöáââ"â.â5âDâPâPâVâ‰d9×9×I×d×d×f×f×f×n×׈יץרת׭ׯׯׯ׻׊D-:{A{A�AžAžA¦A¼AÀAÀAÄAÌA‹Ô
+;nn n#n&n0n6nBnInPnYnfntn}n€n†nŒn“nšnœn¦n«n´nÂnÈn×nãnænénñnönooooooo!o)o1o=o@oRoŒ81;¾Ë¾ËÌËãËîËîËùËýËýËÌ�$<�ññù	+:CQ^eoz�œ¤¸ÅÙæú"6@Taany„˜¿ÍÛèóþ$9ISdu†—ÊØí)2A\s|‡Ž™£¬¼Ž0t|£K£K§K´KÐKåKêKL�02:½ƒ½ƒÑƒÜƒîƒöƒùƒ„�¼KvRR R@RRRYRfRrRzR…R�R˜R£RÇRÖRÝRäRõR÷RÿR
+SS$S+S.S0S6SH>HXH[HaHmHoH~H…H‹H´H»HèHïHóHII4I=I=I=IJIƒI�I›I¨I»IÉIÚIíIúIJ$J+J6JRJRJ^J`J`JlJnJnJzJ|J|JŒJ�J�J›J§JÀJÊJÓJÞJôJKKKK,K3K:K@KCK�K“Pîþ®u®uÎuáuíuùuvv v&v+v-vFv”4#ˆBˆB‘B¦B¦B³BÈBÈBÍB• ÌÐÖêÖêäêíêóê–0ÊÒ’ˆ’ˆ¦ˆåˆìˆòˆ
 ‰
‰‰—0HPæïæïôïð
-ð-ðFðnð˜€ÞAÞAòAùAB	B%B%B3B5B5BEBGBGBUBWBWBgBoBoBxB„B¡B¡B³B³B·BÞB™Xð{O{O…O™OªOµOÑOÔOâOèOëOüOPPš@$01à1à?àDàGàYà_àbàdàjà›HªÅªÅ¿ÅËÅÎÅ×ÅãÅëÅÆÆÆ Æ,Æœ îò.ã.ã2ã@ãBã�ä{°ØkØkökÿk"l,l>lAlIlLlRlUlalsl€l†l“lžl£l©l»l»lÊlÍl×lÚlælølmmm#m(m.m@m@m@m@mKmKmYmž Ñõ#;#;B;D;U;Z;h;‰;—;¡;¬;Ä;Ë;Í;Í;ß;å;ë;í;ó;ù;ü;<<
<< < < <&<7<ŸT…–ÆñÆñêñíñûñûñò ò*ò0ò;ò;ò;ò?òMò `p„.ñ.ñKñQñ_ñ_ñsñ~ñ‚ñ‰ñŒñ–ñ�ñ­ñ±ñ±ñ±ñµñÁñ¡HïýR·R·y·”·¢·­·±·µ·¹·÷Í·Í·Ï·Ý·¢D"/${${2{>{C{C{T{Y{Y{_{£t¶Ï;';'C'T'x''�'´'Â'Ð'Ù'ì'ó'ý'(!(7(9(O(e(e(e(g(¤X{�c8c8|8Œ8¤8°8¼8¼8Î8Ô8Ô8à8ì8î8î8ö8¥Xîû1222)2?2G2Z2d2{2€2‡2•2œ2¤2©2¦8w�°°ȰưÖ°ñ°ý°ÿ°ÿ°ƒ±§8>H C C®C´C»CÑCÑCØCïCïCõC¨<u€r¡r¡Š¡˜¡Ÿ¡£¡¦¡ª¡±¡Ñ¡á¡©`«¿"l"l&l/lWl}lˆl—l¦l«l±l³lªL)ß)ßDß`ß`ßmßmßzßzߊߎߎߞߠߠß×ß«d@Õ.).)9)O)V)t)…)”)¡)°)Ä)Ü)ô)**(*J*e*€*¥*ª*Ã*Ø*ø*+ +!+W+®++}+Í+Þ+å+,,4,4,[,[,z,�,½,Ë,+-ü,ú,J-Q-V-h-p-p-•-¥-Â-.Õ-Ý-È-1.c.k.k.‹. .½.Ç.Þ.æ.Ñ.:/:/:/?/?/P/k/y/‘/ª/Ã/Þ/ö/0$020=0=0P0i0}0’0¬0°0®0þ011*1B1]1h1€1–1–1í1¾1¼122*2E2]2s2u2¿2�2Ž2Þ2Þ2ç2ð233332323C3C3F3J3¬4
-”t”t¢t§tªt°t³tµt»t­,szˆkˆkŒk‘k›k«k«k×k®T©º�^�^ž^«^¸^Ö^Ù^à^ç^õ^ù^û^_
_¯Ô%VS6S6s6�6†6�6�6—6¥6¨6¯6¯6¶6Ä6Ç6Ë6×6×6ã6é6ö67777	7777&7?7B7U7U7X7[7k7°4‚‹ë,ë,õ,õ,%-;-w-…-‰-±À6b1Õ1Õ<Õ@ÕdÕoÕ~ÕŠÕšÕ¹ÕÁÕÙÕéÕ
Ö
Ö1Ö3Ö3ÖWÖYÖYÖ}ÖÖÖ‹Ö‹Ö“Ö“ÖŸÖ³ÖÃÖËÖËÖÝÖäÖäÖöÖ××2×²ÈÆôÓÓëõ/44FKK]bbtyyyy€……—œœ®³³Êú$+4C¦³ˆSq“O“O©O®OºOºOÆOÎOÖOáOêOòO÷OùOýOPP P'P(P(P2P´(Œ’‹-‹-”-›-»-Â-Å-µü‚½‘ë‘ë™ë�ë¾ëÉëÒëèëüëì ì3ìTìŠì¬ìÁìÊìÌìÔìÜìóìûìííííí0í7íJíZíaíví‹í�í‘í‘í‘í�í©í©í®í·íÉíÐíÐíâíèíýí¶€a}>Í>ÍBÍQÍQÍ`Í`ÍoÍoÍ~Í�Í�͜ͰͫͺͺÍÉÍÉÍØÍ/Ò·¨r˜3P3PMPePzP�PŒP’P’P•PœP§P«P°P¶PÀPÆPÉPËPÎPÑPÑPÖPåPèPúP¸Ltƒ’j’j¦j³j¶jºjÈjÓjÜjûjkkkk+k¹TÉÚ¶Õ¶ÕÄÕËÕÖÕùÕÖÖÖ!Ö&Ö4Ö:Ö=ÖCÖº¼�ÈæÓæÓøÓþÓÔÔ)Ô3ÔKÔOÔgÔkÔ…Ô…Ô˜Ô¡Ô¬ÔµÔÂÔËÔÝÔçÔôÔýÔÿÔÕÕÕ9Õ<ÕTÕdÕuÕyÕ}ՈՈՌՌՌյջ4uuuuuu u$u*u¼(ãéó`ó`	a%a7a=aXa½”"€g€gšg¹gÅgØgÞgïg÷gûghh%h+h.h1h4h9h;h?hKh\hkhqhthwhzhzh„h‡h™h¾„d�®Y®YÑYÕYâYçYëYþY Z)Z)Z?ZKZRZeZjZnZ�Z¢Z¬Z¬ZÀZÀZÃZÑZ¿�]}†Ù†Ù�Ù�Ù�ÙµÙËÙÚÙóÙÚÚ7ÚSÚYÚgÚuÚƒÚ‘Ú“Ú©Ú¿ÚÕÚëÚëÚìÚñÚÀL�ž�>�L�[�b�h�z�z�����¤�³�Æ�Ò�é�ë�‘‘‘
+ð-ðFðnð˜€ÞAÞAòAùAB	B%B%B3B5B5BEBGBGBUBWBWBgBoBoBxB„B¡B¡B³B³B·BÞB™XðƒOƒO�O¡O²O½OÙOÜOêOðOóOP P#Pš@$01à1à?àDàGàYà_àbàdàjà›HªÅªÅ¿ÅËÅÎÅ×ÅãÅëÅÆÆÆ Æ,Æœ îò.ã.ã2ã@ãBã�ä{°ØkØkökÿk"l,l>lAlIlLlRlUlalsl€l†l“lžl£l©l»l»lÊlÍl×lÚlælølmmm#m(m.m@m@m@m@mKmKmYmž Ñõ+;+;J;L;];b;p;‘;Ÿ;©;´;Ì;Ó;Õ;Õ;ç;í;ó;õ;û;<<
+<<<!<'<'<'<.<?<ŸT…–ÆñÆñêñíñûñûñò ò*ò0ò;ò;ò;ò?òMò `p„.ñ.ñKñQñ_ñ_ñsñ~ñ‚ñ‰ñŒñ–ñ�ñ­ñ±ñ±ñ±ñµñÁñ¡HïýR·R·y·”·¢·­·±·µ·¹·÷Í·Í·Ï·Ý·¢D"/${${2{>{C{C{T{Y{Y{_{£t¹Òc'c'k'|' '§'¸'Ü'ê'ø'(((%(3(I(_(a(w(�(�(�(�(¤X{�k8k8„8”8¬8¸8Ä8Ä8Ö8Ü8Ü8è8ô8ö8ö8þ8¥XÞð222#212G2O2b2l2ƒ2ˆ2�2�2¤2¬2±2¦8w�°°ȰưÖ°ñ°ý°ÿ°ÿ°ƒ±§8>H C C®C´C»CÑCÑCØCïCïCõC¨<u€r¡r¡Š¡˜¡Ÿ¡£¡¦¡ª¡±¡Ñ¡á¡©`«¿"l"l&l/lWl}lˆl—l¦l«l±l³lªL)ß)ßDß`ß`ßmßmßzßzߊߎߎߞߠߠß×ß«d@Õ.).)9)O)V)t)…)”)¡)°)Ä)Ü)ô)**(*J*e*€*¥*ª*Ã*Ø*ø*+ +!+W+®++}+Í+Þ+å+,,4,4,[,[,z,�,½,Ë,+-ü,ú,J-Q-V-h-p-p-•-¥-Â-.Õ-Ý-È-1.c.k.k.‹. .½.Ç.Þ.æ.Ñ.:/:/:/?/?/P/k/y/‘/ª/Ã/Þ/ö/0$020=0=0P0i0}0’0¬0°0®0þ011*1B1]1h1€1–1–1í1¾1¼122*2E2]2s2u2¿2�2Ž2Þ2Þ2ç2ð233332323C3C3F3J3¬4
+”t”t¢t§tªt°t³tµt»t­,szˆkˆkŒk‘k›k«k«k×k®T©º�^�^ž^«^¸^Ö^Ù^à^ç^õ^ù^û^_
_¯Ô%V[6[6{6‰6Ž6˜6˜6Ÿ6­6°6·6·6¾6Ì6Ï6Ó6ß6ß6ë6ñ6þ6777777"7"7.7G7J7]7]7`7c7s7°4r{ó,ó,ý,ý,--C--�-‘-±À6b1Õ1Õ<Õ@ÕdÕoÕ~ÕŠÕšÕ¹ÕÁÕÙÕéÕ
Ö
Ö1Ö3Ö3ÖWÖYÖYÖ}ÖÖÖ‹Ö‹Ö“Ö“ÖŸÖ³ÖÃÖËÖËÖÝÖäÖäÖöÖ××2ײÈÉ÷ûû..@EEW\\nss…ŠŠœ¡¡¡¡¨­­¿ÄÄÖÛÛò"33ELS\kγˆSq“O“O©O®OºOºOÆOÎOÖOáOêOòO÷OùOýOPP P'P(P(P2P´(|‚“-“-œ-£-Ã-Ê-Í-µü‚½‘ë‘ë™ë�ë¾ëÉëÒëèëüëì ì3ìTìŠì¬ìÁìÊìÌìÔìÜìóìûìííííí0í7íJíZíaíví‹í�í‘í‘í‘í�í©í©í®í·íÉíÐíÐíâíèíýí¶€a}>Í>ÍBÍQÍQÍ`Í`ÍoÍoÍ~Í�Í�͜ͰͫͺͺÍÉÍÉÍØÍ/Ò·¨r˜3P3PMPePzP�PŒP’P’P•PœP§P«P°P¶PÀPÆPÉPËPÎPÑPÑPÖPåPèPúP¸Ltƒ’j’j¦j³j¶jºjÈjÓjÜjûjkkkk+k¹TÉÚ¶Õ¶ÕÄÕËÕÖÕùÕÖÖÖ!Ö&Ö4Ö:Ö=ÖCÖº¼�ÈæÓæÓøÓþÓÔÔ)Ô3ÔKÔOÔgÔkÔ…Ô…Ô˜Ô¡Ô¬ÔµÔÂÔËÔÝÔçÔôÔýÔÿÔÕÕÕ9Õ<ÕTÕdÕuÕyÕ}ՈՈՌՌՌյջ4uuuuuu u$u*u¼(ãéû`û`a-a?aEa`a½”"€g€gšg¹gÅgØgÞgïg÷gûghh%h+h.h1h4h9h;h?hKh\hkhqhthwhzhzh„h‡h™h¾„d�®Y®YÑYÕYâYçYëYþY Z)Z)Z?ZKZRZeZjZnZ�Z¢Z¬Z¬ZÀZÀZÃZÑZ¿�]}†Ù†Ù�Ù�Ù�ÙµÙËÙÚÙóÙÚÚ7ÚSÚYÚgÚuÚƒÚ‘Ú“Ú©Ú¿ÚÕÚëÚëÚìÚñÚÀL�ž�>�L�[�b�h�z�z�����¤�³�Æ�Ò�é�ë�‘‘‘
 ‘
 ‘‘‘‘!‘!‘%‘0‘6‘B‘J‘l‘‚‘“‘ª‘±‘·‘º‘Ò‘ÌÜø+ÙüÙüáüåüðüþüýý1ý;ýGýRý`ýoý�ý©ýÁýÅýÞýöýþ	þþ þ+þ:þIþlþzþ‰þ²þ¿þÃþÐþâþâþðþ÷þ	ÿ	ÿÿÿÿ,ÿÍ”1Ržûžû¬û¸ûØûãûôûü ü5üJüSüXüXühütüzü†ü�üÀüÐüÐüÙüÞüäüåü*ý΀5í�í�
‚‚%‚)‚-‚<‚P‚X‚^‚r‚�‚�‚™‚�‚ ‚¢‚´‚‚ƂЂԂ݂ã‚ö‚Ï$).øBøBC
C!C'CÐ,“š½½½/½:½@½C½K½Ñ¨Çívtvt�t“t«t¶tÆtØtÜtêtótuuu'u2u@uJuRuVuVuVuYu[u_u_uduru€uŽu“u•u•u«uÒLêùîëîë
-ìì1ì<ìIì]ìcìoìÓ ÞãÞãâãðãòãÔ`&:ƒ3ƒ3‡3ž3®3¾3Ñ3Ø3ï3ÿ34 414B4c4„4›4¦4±4ë4ÕTã?ã?ç?@@!@&@<@C@U@h@{@•@¥@ª@ª@¬@Ö`¶_Ï_Ñ_Ù_õ_þ_` `%`8`O`U`a`q`q`ƒ`Ã`×H_m£7£7Ã7Ñ7×7ë7ñ7ö7þ78
8Ø$zGGG#G1GîTîhîqî…î¬îÂîÜîäîïïï.ï9ï@ïKïPïeïàLN]2 2 ; ; J Y j n { ‘ • • š á85?r�r�‚�¡�­�±�µ�¹�Á�É�âœ$ë4ë4ó4ù45545M5M5Y5j5u5�5�5Ž5 5¥5Ì5Ó5à5ê5ï5ï5ï56/6I6N6S6ãx‚œÁÁÕßåñ!$-0Bhpyy«°¶Ãä8;P;PKPNPSPVPdPjPmPoPwPåD&ÜÜÜ&Ü.Ü6Ü>ÜFÜNÜVÜ^ÜbÜfÜædavÊ�Ê�Ú�æ�ñ�ö�‘‘‘‘‘$‘,‘4‘S‘V‘a‘a‘i‘çH~ŒöÚöÚÛ Û0Û5ÛAÛ_ÛeÛqÛ�Û•Û•Û¡Ûè8—¡èVèVþVWWW%W(W2Wé(.42�2�;�I�X�g�l�ê0ª€ª€¸€Ѐ	�����ëDŒ™-†-†Y†g†r†v†z†~†‚†Ž†›†ž†®†ì€ÍéÉúÉúÔúÜúçúòúýúûû0û9ûMûtûŠû¤û¬ûÈûÓûÞûöûüüüü,üí<))#)A)R)b)s))™)±)³)µ)îLÁУ:£:½:Ð:å:ë:ñ:;;;;;ïˆú���?�Q�Q�c�j�€�€���’�’�’�£�®�µ�¹�Á�Å�Í�Ó�Ù�Ù�Ü�ê�ð8ÿ	šŠšŠ¨Š³Š¾ŠÝŠóŠöŠ‹ñ?æwæwïwûwxx)x7xExZxaxtx‡x™x¡x¿xÓxÖxÞxîxÿx&y9yKy€y‚y“yŸy¤y¬yÎyáyíyzòHÿ
FvFv`vsvŒv¡v§v­v­vµv·vãvó<:Eh[h[y[{[€[‰[ª[³[¸[À[ô8JTvÌv̛̦̦̱̹̹̄̿ÌõDê÷1ü1üCüOüeüüŠüŠü›ü«ü­üØüöX@Rzzz+z>zVz_zjzuz–z˜z£z®z·zÀzÑzäzäzæz÷$ôùå€å€î€÷€ý€�ø 
-NNN'N8NùDÌÙVâVâeâjâsâ…â†âšâ�â£âúh*€k!k!“!•!ž!²!µ!º!¾!Ý!ñ!ô!"""."7"9"R"["["["`"–" "ª"´"¾"Å"Ñ"Ý"ç"ç"ç"########'#)#)#.#0#0#5#5#5#9#T#j#u#Š#“#˜# #¬#¶#Â#Õ#ì#þ#$
$#$1$S$p$Ž$Ž$Ž$Ž$Ž$˜$¡$¨$(%û ¢¦8W8WAWNWSWü@ÅÑ)å)å7å>åCåYå[ådåvå|å§åý4ÞÛÞÛæÛîÛöÛþÛÜÜÜÜþ,¶Û¶Û¾ÛÆÛÎÛÖÛÚÛÞÛÿx7..BGQXk„„“©²ÁÈÈËÕëòô÷ùù”
+ìì1ì<ìIì]ìcìoìÓ ÞãÞãâãðãòãÔ`(‹3‹3�3¦3¶3Æ3Ù3à3÷344(494J4k4Œ4£4®4¹4ó4ÕTë?ë?ï?@@)@.@D@K@]@p@ƒ@�@­@²@²@´@Ö`¶_Ï_Ñ_Ù_õ_þ_` `%`8`O`U`a`q`q`ƒ`Ã`×H_m«7«7Ë7Ù7ß7ó7ù7þ78	88Ø$zGGG#G1GîTîhîqî…î¬îÂîÜîäîïïï.ï9ï@ïKïPïeïàLN]2 2 ; ; J Y j n { ‘ • • š á85?r�r�‚�¡�­�±�µ�¹�Á�É�âœ$ó4ó4û4555<5U5U5a5r5}5‰5‰5–5¨5­5Ô5Û5è5ò5÷5÷5÷5676Q6V6[6ãx‚œÁÁÕßåñ!$-0Bhpyy«°¶Ãä8CPCPSPVP[P^PlPrPuPwPPåD&ÜÜÜ&Ü.Ü6Ü>ÜFÜNÜVÜ^ÜbÜfÜædavÊ�Ê�Ú�æ�ñ�ö�‘‘‘‘‘$‘,‘4‘S‘V‘a‘a‘i‘çH~ŒöÚöÚÛ Û0Û5ÛAÛ_ÛeÛqÛ�Û•Û•Û¡Ûè8—¡èVèVþVWWW%W(W2Wé(.42�2�;�I�X�g�l�ê0ª€ª€¸€Ѐ	�����ëDŒ™-†-†Y†g†r†v†z†~†‚†Ž†›†ž†®†ì€ÍéÉúÉúÔúÜúçúòúýúûû0û9ûMûtûŠû¤û¬ûÈûÓûÞûöûüüüü,üí<C)C)K)i)z)Š)›)§)Á)Ù)Û)Ý)îLÁЫ:«:Å:Ø:í:ó:ù:;;;;$;ïˆú���?�Q�Q�c�j�€�€���’�’�’�£�®�µ�¹�Á�Å�Í�Ó�Ù�Ù�Ü�ê�ð8ÿ	šŠšŠ¨Š³Š¾ŠÝŠóŠöŠ‹ñ?æwæwïwûwxx)x7xExZxaxtx‡x™x¡x¿xÓxÖxÞxîxÿx&y9yKy€y‚y“yŸy¤y¬yÎyáyíyzòHÿ
FvFv`vsvŒv¡v§v­v­vµv·vãvó<:Eh[h[y[{[€[‰[ª[³[¸[À[ô8JTvÌv̛̦̦̱̹̹̄̿ÌõDê÷1ü1üCüOüeüüŠüŠü›ü«ü­üØüöX@Rzzz+z>zVz_zjzuz–z˜z£z®z·zÀzÑzäzäzæz÷$ôùå€å€î€÷€ý€�ø 
+NNN'N8NùDÌÙVâVâeâjâsâ…â†âšâ�â£âúh-ƒ“!“!»!½!Æ!Ú!Ý!â!æ!"""."6"="V"_"a"z"ƒ"ƒ"ƒ"ˆ"¾"È"Ò"Ü"æ"í"ù"####0#0#9#;#;#D#F#F#O#Q#Q#V#X#X#]#]#]#a#|#’#�#²#»#À#È#Ô#Þ#ê#ý#$&$*$5$K$Y${$˜$¶$¶$¶$¶$¶$À$É$Ð$P%û ¢¦8W8WAWNWSWü@ÅÑ)å)å7å>åCåYå[ådåvå|å§åý4ÞÛÞÛæÛîÛöÛþÛÜÜÜÜþ,¶Û¶Û¾ÛÆÛÎÛÖÛÚÛÞÛÿx7..BGQXk„„“©²ÁÈÈËÕëòô÷ùù”
 Û|f f ‡ ‰   © ´ ¿ Á Ô â í ø ¡¡¡ ¡$¡'¡-¡1¡4¡7¡J¡_¡g¡j¡‚¡’¡•¡›¡ž¡±¡Æ¡Î¡Ñ¡é¡ù¡þ¡þ¡¢¢)¢)¢)¢-¢/¢/¢3¢5¢5¢9¢;¢;¢?¢?¢?¢B¢D¢D¢G¢L¢R¢U¢Y¢[¢a¢d¢|¢�¢•¢›¢ž¢£¢¶¢Ñ¢Ó¢é¢é¢é¢î¢î¢ð¢ð¢õ¢ø¢£££6£<£S£b£q£†£˜£½£Â£Â£Ú£ø£ý£ý£¤3¤5¤5¤M¤i¤k¤k¤ƒ¤Ÿ¤Ÿ¤½¤É¤Î¤Î¤æ¤ý¤¥¥¥6¥;¥;¥?¥W¥u¥y¥{¥{¥¥—¥µ¥¹¥¹¥×¥Ü¥Ü¥ô¥¦¦¦¦/¦F¦M¦[¦k¦�¦–¦˜¦˜¦¦¦®¦×¦Ù¦Ù¦ñ¦ñ¦§7§V§[§[§s§s§Œ§¡§Ã§·§Û§ú§¨¨#¨#¨;¨R¨\¨a¨r¨r¨x¨ƒ¨˜¨�¨§¨·¨·¨í¨û¨©©©%©%©1©5©5©>©M©V©V©_©i©…©š©·©Æ©Ì©á©é©õ©ÿ©ÿ©ªª$ª<ª>ª^ª^ªcªcª™ª§ª°ª°ª¼ªÀªÀªÉªØªáªáªêªðª««/«1«<«T«V«r«r«r«‚«£«¥«¥«½«Ô«Ù«Ù«ñ«¬¬¬-¬-¬D¬D¬P¬T¬Z¬c¬r¬{¬{¬„¬�¬§¬©¬Å¬Ð¬ë¬í¬í¬ö¬­­/­<­D­e­g­o­‰­Œ­•­š­»­Å­Å­à­ê­õ­®$®7®?®I®I®R®V®i®¡®¬®¬®¬®À®É®Í®à®¯¯¯¯2¯<¯D¯D¯M¯Q¯d¯œ¯­¯³¯Æ¯Î¯Û¯à¯à¯é¯í¯°8°I°R°W°W°b°f°~°•°Ÿ°¤°º°Ò°Ò°ü°±±#±'±:±B±I±T±Y±`±`±e±˜±¬±Æ±Ù±ã±í±í±ý±#²3²E²Q²U²o²�²�²‘²‘²‘²‘²•²š²š²¥²©²Á²Ø²â²ç²ý²³³?³I³k³p³p³p³{³³—³®³¸³½³Ó³Ó³ë³ë³´'´D´K´V´[´€´†´ ´²´º´¼´Ò´à´ý´
µ
µ:µ<µfµhµ€µ‹µ•µŸµ¦µÀµÉµÉµòµ
 ¶
¶(¶(¶(¶-¶2¶e¶y¶“¶¦¶«¶µ¶¿¶è¶ü¶ÿ¶···· ·6·I·S·X·X·p·‡·‘·¡·¡·½·Ñ·Ô·æ·÷·ý·¸¸!¸&¸&¸&¸B¸V¸Y¸k¸„¸‰¸‰¸¡¸¸¸Â¸Ò¸Ò¸î¸¹¹¹(¹.¹A¹I¹R¹W¹W¹W¹s¹‡¹Š¹œ¹µ¹º¹º¹º¹Ò¹é¹ó¹ºº(º9ºJºPºcºkºtºyºyºyºžº¯ºÈºÍºÍºâºâºâºþºþº» »\¼@J‹J‹^‹l‹l‹y‹ž‹©‹­‹»‹¾‹Æ‹|�œâ¡â¡ÿ¡¢¢¢¢0¢X¢{¢‰¢™¢¼¢¤¢Ö¢ö¢££££"£%£1£8v€âÀâÀñÀÿÀÁÁÁÁÁ Á¬§Î!Ü!Ü1ÜGÜ]Ü[ÜkÜsÜzÜ~܆ܖܤܹܳÜÁÜÍÜÓÜÓÜÚÜÞÜÞÜàÜGÞ8ÔÞÊÃÊÃÙÃïÃþÃÄÄ#Ä%Ä%Ä+Ä@&2
 ¾
@@ -2817,12 +2817,13 @@ ggg gWH
 N
 Z
 �
-(-3ÛÛßùDx«««#«&«G«g«w«œ«¬«µ«ã«ð«¬¬¬¬(¬+¬0¬0¬@¬F¬I¬¬¬
@=I‘é‘é£é®é»éÃéËéÓéÛéãéëéñéX7‰ÀÀ,À2À9ÀIÀPÀXÀ^ÀeÀ{À‰À�À’À˜À¦À©À®À±À±ÀÁÀÏÀÑÀãÀåÀòÀ÷ÀþÀÁ
ÁÁÁ Á-Á0Á2Á>Á@Á`ÁeÁlÁuÁ{Á�ÁˆÁ‹Á‹Á›Á©Á«ÁÓÁõÁ÷ÁþÁÂÂ Â$Â$Â:ÂD3@‚¾‚¾‘¾¨¾¶¾¾¾Ö¾ë¾÷¾¿¿¿@ˆ”ƒLƒL™L»LÁLÆLÙLæLìLïL÷L0ÙßÙßâßçßðßößößûß,;B"•"•1•=•K•T•Y•_•8ˆ’ÖßÖßäßðßà%à'à.à6à8à>àä6.¾.¾L¾O¾R¾f¾n¾u¾‰¾Œ¾Ž¾±¾±¾´¾Ä¾Æ¾Æ¾É¾Ë¾Ë¾Î¾å¾ú¾¿ ¿)¿1¿1¿1¿3¿3¿8¿W¿]¿l¿y¿�¿š¿œ¿®¿»¿À¿À¿Ì¿Ì¿Ù¿Ü¿Ü¿Àô…¾N—N—`—c—m—z—~—„—„—ˆ—�—‘—•—œ—¢—©—¯—¶—¼—×ɗЗ֗ݗã—ê—ð—ù—ÿ—˜˜˜˜˜˜.˜A˜C˜S˜Z˜e˜p˜{˜†˜‘˜œ˜œ˜¦˜LWf€j€j‰j™j™j·j½jÍjÓjÙjéjëjëjëjkhÝó%€%€:€I€N€^€f€f€t€~€�€•€¡€°€¼€Ç€Í€Ø€Û€ã€D<IÌÌÌ6ÌDÌTÌVÌXÌcÌgÌgÌoÌP„”2k2kAkJkTkVkhkhkhkjkqkwk—k¥k¦k¬k0Ž–Ó\Ó\é\ü\]]] ]<ZeÔpÔpâpópûpÿpqqqq\ÇÚ..2EXkvŠ›½ßú0Kf�œfTK\j¿j¿x¿Š¿�¿š¿²¿¸¿º¿Å¿Ý¿é¿ÀÀÀÀÀ
ÀX£µÁcÁcácîcócÿcd d,d9d@dIdMdYd X†˜yÒyҔҜҧÒÃÒÃÒÌÒÌÒÑÒâÒëÒöÒöÒÓÓ ,£ª¾½¾½Ò½ä½é½ú½'¾!ä6ŠŠ/Š2Š5Š;ŠOŠVŠYŠtŠ~ŠƒŠŠŠ�Š�Š Š’Š®ŠÅŠÑŠåŠîŠöŠ‹‹‹‹‹%‹'‹2‹8‹W‹g‹o‹�‹Š‹›‹£‹µ‹¸‹¸‹¸‹¸‹Ä‹Œ"	IFVFVfVuV�VŒV—V«V¾VÉVÕVæVïVûVWW
W"W.W.WIW[WoW}W’W˜W¼WÄWÄWÐWÔWØWðWþW)XX8XCXZX^XeXpXuXuXuXŠX�X¯X´X´XÀXÆXÌXÎXÞX#œ'JáÆáÆõÆÇÇ&Ç*Ç3Ç:Ç@ÇBÇUÇ]ǪDžÇgǺÇÉÇÚÇàÇïÇÈÈÈ&È7ÈAÈåÈ$Lйй™¹¡¹¡¹®¹À¹̹Թڹ߹å¹ç¹ç¹í¹%<}ˆrrrr€r‹r–r�rÇr¥rÕr!s&˜Õ÷2m2m\mmmmŒmœm¤m¨m¬m°m´m¼mÄmÖmämîmómnn!n'n+n=n' GK’h’h¡h»hÁh(Ü4®j®jÌjØjájÿjÿjkkkk k-k@kIkUkXk]kyk”k”k¦k¨k¨kºk¼k¼kÈkÈkÙkêkðkókókökûklll!l2l5lQlQlVlVlVlql)ðh „„„2„B„B„V„`„d„h„u„†„�„“„¢„µ„»„„фԄ߄… …,…4…>…L…]…p…}…Ž…¡…©…´…ʅ؅؅䅆† †&†,†3†<†?†d†*4AJ¿¿¿#¿/¿@¿H¿P¿c¿h¿+ �´h7h7‚7ˆ7ˆ7—7£7ª7°7°7º7Ã7Ã7É7Í7Ð7Ú7å7å7ô7ý7ý78
88888 8 8 8 8 8.8, ÚÞ¦â¦âªâ¸âºâ-¤O´öföfgg g1g5gIg[gig{g„gŠg�g¦g¯gÇg×g×gägògþgh h h$h*h2h,?,C,e,r,‡,’,Ÿ,Ÿ,¦,È,Õ,Û,å,/,ý‚ý‚ƒ!ƒ'ƒ'ƒ,ƒ04äí³1³1·1¼1È1Ô1à1ë1ò1ô11(êð[a[aua‡a“a™a¡a2»ü2š2š@šHšMšSš{šžš¦š®š¹š¾šКÝšæšëš›!›)›+›4›C›J›q›q›z›‘› ›Á›É›Ü›ì›ü›œœ+œ;œKœeœjœrœrœwœ…œ”œµœÀœÏœßœïœÿœ���"�(�3˜£ÅóTóTUU(U8U>U>UIUTUWU\UfUtU{U|UˆUŽU”U—U U¡U¡U­U¯U»U4˜Ìî¶¶ ¶-¶7¶C¶J¶S¶f¶€¶†¶޶«¶±¶±¶À¶Ƕ̶ê¶í¶ö¶û¶···· ·,·<·?·Q·58}‡LLLL0LELVL_LdL€L6p	!!g!g5gBgGgSgYg`g|g²g»gÄgÐg7‚Áбб©±¼±ȱȱÙ±à±à±é±ú±²$²)²B²I²I²_²k²k²’²•²´²Ó²ò²þ²³,³.³?³V³m³Œ³«³·³γå³ê³û³´)´)´1´?´P´g´~´�´¦´½´Ç´д×´í´ö´ε88s}žž¬»ÅÖÞààæ980:¢”¢”«”Ó”ö”••••:,•œûLûLM
M M&M+M;0	ÆmÆmÔmÞmòmømúmn<,8?,=KQW=,&V&V/V:V\fyqq>qBqNq_qkqtq“qŸq¨q®q²qÀq?€�Y�Y Y§YºYÆYíY÷YZ	ZZZ%Z7ZIZcZoZxZ†ZŒZ’Z•ZœZ¤Z@X�ï+M+M7M@MIMOM[MgMoMuM{MƒM‘MœM¤M½MÏMÚMãMãMèMíMûMNNN
NNN%N-N6N6N>NMNQN^NkNpNzNzNƒNŠN–N¡N½N½N½NÅNÌNÓNÚNáNèNïNöNýNO
-OOO,O=O\OkOnOtOA|Kf^æ^æ}æ‹æ›æ§æ­æ¶æ½æÄæÉæÕæÙæãæãæêæíæóæóæýæçççç çB,		!,Rv~CX]“W“W›W¦W¸W¾WÆWÐWóWóWXX&X3X;XIX„X’XÊXÏXÏXáXîXYYY#YXY_YlYrYwYwY‰Y–YªY·Y¼YËYÿYZZZZZ#Z#Z0ZEZKZ^Z…Z’Z¢Z§Z­ZºZÅZËZÖZÖZÜZåZðZ[['[4[A[F[F[J[c[DàÈü	)8BK\lŒŸ½ÆÓÞééö%7Vhhˆ”ɵÚßñõýý		$	+	6	D	D	I	U	ELRa––#–+–.–<–?–F–J–M–Q–_–f–k–F8GQÎ•Î•Û•ã•æ•ô•ø•–
-––G0#').HXÏáIÞIÞSÞfÞyÞ�Þ²Þß'ßI(KQóóû			$	&	Jœ'JëPëPQ&Q8Q?QLQXQ`QkQvQƒQ’Q›Q¢Q¦Q¦Q¬Q²QÊQÓQÙQâQçQçQçQëQõQK8}‡û
+(-3ÛÛßùDx«««#«&«G«g«w«œ«¬«µ«ã«ð«¬¬¬¬(¬+¬0¬0¬@¬F¬I¬¬¬
@=I‘é‘é£é®é»éÃéËéÓéÛéãéëéñéX7‰ÀÀ,À2À9ÀIÀPÀXÀ^ÀeÀ{À‰À�À’À˜À¦À©À®À±À±ÀÁÀÏÀÑÀãÀåÀòÀ÷ÀþÀÁ
ÁÁÁ Á-Á0Á2Á>Á@Á`ÁeÁlÁuÁ{Á�ÁˆÁ‹Á‹Á›Á©Á«ÁÓÁõÁ÷ÁþÁÂÂ Â$Â$Â:ÂD3@‚¾‚¾‘¾¨¾¶¾¾¾Ö¾ë¾÷¾¿¿¿@ˆ”‹L‹L¡LÃLÉLÎLáLîLôL÷LÿL0ÙßÙßâßçßðßößößûß,;B"•"•1•=•K•T•Y•_•8ˆ’ÖßÖßäßðßà%à'à.à6à8à>àä6.¾.¾L¾O¾R¾f¾n¾u¾‰¾Œ¾Ž¾±¾±¾´¾Ä¾Æ¾Æ¾É¾Ë¾Ë¾Î¾å¾ú¾¿ ¿)¿1¿1¿1¿3¿3¿8¿W¿]¿l¿y¿�¿š¿œ¿®¿»¿À¿À¿Ì¿Ì¿Ù¿Ü¿Ü¿Àô…¾N—N—`—c—m—z—~—„—„—ˆ—�—‘—•—œ—¢—©—¯—¶—¼—×ɗЗ֗ݗã—ê—ð—ù—ÿ—˜˜˜˜˜˜.˜A˜C˜S˜Z˜e˜p˜{˜†˜‘˜œ˜œ˜¦˜LWf€j€j‰j™j™j·j½jÍjÓjÙjéjëjëjëjkhÝó%€%€:€I€N€^€f€f€t€~€�€•€¡€°€¼€Ç€Í€Ø€Û€ã€D<IÌÌÌ6ÌDÌTÌVÌXÌcÌgÌgÌoÌP„”2k2kAkJkTkVkhkhkhkjkqkwk—k¥k¦k¬k0Ž–Û\Û\ñ\]]] ]']<ZeÔpÔpâpópûpÿpqqqq\ÇÚ..2EXkvŠ›½ßú0Kf�œfTK\j¿j¿x¿Š¿�¿š¿²¿¸¿º¿Å¿Ý¿é¿ÀÀÀÀÀ
ÀX£µÉcÉcécöcûcd!d'd4dAdHdQdUdad X†˜yÒyҔҜҧÒÃÒÃÒÌÒÌÒÑÒâÒëÒöÒöÒÓÓ ,£ª¾½¾½Ò½ä½é½ú½'¾!ä6ŠŠ/Š2Š5Š;ŠOŠVŠYŠtŠ~ŠƒŠŠŠ�Š�Š Š’Š®ŠÅŠÑŠåŠîŠöŠ‹‹‹‹‹%‹'‹2‹8‹W‹g‹o‹�‹Š‹›‹£‹µ‹¸‹¸‹¸‹¸‹Ä‹Œ"	IFVFVfVuV�VŒV—V«V¾VÉVÕVæVïVûVWW
W"W.W.WIW[WoW}W’W˜W¼WÄWÄWÐWÔWØWðWþW)XX8XCXZX^XeXpXuXuXuXŠX�X¯X´X´XÀXÆXÌXÎXÞX#œ'JáÆáÆõÆÇÇ&Ç*Ç3Ç:Ç@ÇBÇUÇ]ǪDžÇgǺÇÉÇÚÇàÇïÇÈÈÈ&È7ÈAÈåÈ$Lйй™¹¡¹¡¹®¹À¹̹Թڹ߹å¹ç¹ç¹í¹%<}ˆrrrr€r‹r–r�rÇr¥rÕr!s&˜Õ÷2m2m\mmmmŒmœm¤m¨m¬m°m´m¼mÄmÖmämîmómnn!n'n+n=n' GK’h’h¡h»hÁh(Ü4®j®jÌjØjájÿjÿjkkkk k-k@kIkUkXk]kyk”k”k¦k¨k¨kºk¼k¼kÈkÈkÙkêkðkókókökûklll!l2l5lQlQlVlVlVlql)ðh „„„2„B„B„V„`„d„h„u„†„�„“„¢„µ„»„„фԄ߄… …,…4…>…L…]…p…}…Ž…¡…©…´…ʅ؅؅䅆† †&†,†3†<†?†d†*4AJ¿¿¿#¿/¿@¿H¿P¿c¿h¿+ �´h7h7‚7ˆ7ˆ7—7£7ª7°7°7º7Ã7Ã7É7Í7Ð7Ú7å7å7ô7ý7ý78
88888 8 8 8 8 8.8, ÚÞ¦â¦âªâ¸âºâ-¤O´öföfgg g1g5gIg[gig{g„gŠg�g¦g¯gÇg×g×gägògþgh h h$h*h2h\fyqq>qBqNq_qkqtq“qŸq¨q®q²qÀq?€�Y�Y Y§YºYÆYíY÷YZ	ZZZ%Z7ZIZcZoZxZ†ZŒZ’Z•ZœZ¤Z@X�ï3M3M?MHMQMWMcMoMwM}MƒM‹M™M¤M¬MÅM×MâMëMëMðMõMN
+NNNNN!N-N5N>N>NFNUNYNfNsNxN‚N‚N‹N’NžN©NÅNÅNÅNÍNÔNÛNâNéNðN÷NþNOOOO!O4OEOdOsOvO|OA|Kf^æ^æ}æ‹æ›æ§æ­æ¶æ½æÄæÉæÕæÙæãæãæêæíæóæóæýæçççç çB,		!,Rv~CX]›W›W£W®WÀWÆWÎWØWûWûW
XX.X;XCXQXŒXšXÒX×X×XéXöX
+YYY+Y`YgYtYzYYY‘YžY²Y¿YÄYÓYZZZ!Z#Z#Z+Z+Z8ZMZSZfZ�ZšZªZ¯ZµZÂZÍZÓZÞZÞZäZíZøZ[
[/[<[I[N[N[R[k[DàÈü	)8BK\lŒŸ½ÆÓÞééö%7Vhhˆ”ɵÚßñõýý		$	+	6	D	D	I	U	ELRa––#–+–.–<–?–F–J–M–Q–_–f–k–F8GQÎ•Î•Û•ã•æ•ô•ø•–
+––G0#').HXÏáIÞIÞSÞfÞyÞ�Þ²Þß'ßI(KQóóû			$	&	Jœ'JóPóP
Q.Q@QGQTQ`QhQsQ~Q‹QšQ£QªQ®Q®Q´QºQÒQÛQáQêQïQïQïQóQýQK8}‡û
 û
-!!(7>>CLÄ^‹6T6T\T_TmTˆT–T�TªT­T±T»TÈTèTîTèTUUUU&U(U(U8U:U:UJUJUnUuU~UˆUŒU¥U§UÌUÕUÛUâU$VM<#²“²“À“È“ГÝ“è“ò“!”#”)”N$PP$P-P3P8POY²¬²¬Ƭͬݬä¬ä¬ú¬­-­L­k­w­ˆ­Œ­’­ ­¤­ª­¸­¸­¸­×­ö­
+!!(7>>CLÄ^‹6T6T\T_TmTˆT–T�TªT­T±T»TÈTèTîTèTUUUU&U(U(U8U:U:UJUJUnUuU~UˆUŒU¥U§UÌUÕUÛUâU$VM<#²“²“À“È“ГÝ“è“ò“!”#”)”N$#P#P,P5P;P@POY²¬²¬Ƭͬݬä¬ä¬ú¬­-­L­k­w­ˆ­Œ­’­ ­¤­ª­¸­¸­¸­×­ö­
 ® ®#®)®7®;®A®S®S®S®S®V®[®`®f®w®{®�®Œ®�®–®¡®¡®¡®¦®¬®½®Á®Ç®Ò®Ö®Ü®å®å®å®¯PDo|“
 “
 —
@@ -2838,24 +2839,24 @@ OOO,O=O\OkOnOtOA|Kf^
 ÷
 ù
 Q¬Íô:¥:¥\¥a¥j¥j¥v¥…¥’¥–¥ ¥²¥²¥Â¥Î¥Ó¥Ó¥è¥ó¥û¥¦¦¦¦¦(¦6¦@¦C¦H¦U¦b¦b¦t¦R�-Mö7ö7#8&848=8=8T8e8z88’8Ÿ8¤8¨8¹8ß8ç8ë8ð8ø8
-999P9SH¾ä¾äÇäÜäåäðäòäôäååååååT¸9£~C~CŸC¢C¥CÂCæCíCøCDD&D.D4DADQDeDjDyDŒD¬DµD¬DÇDÉDÒDÉDäDæDïDæDEEEEE!E2E7EcEŠEŠE�E“E¸EÀEÆEÓEãE÷EüEFFAFMF`F€F�F€F›F F­F F»FÀFÍFÀFÛFàFàFðFðFGGGEGGGlGlGrGuGƒGˆG›G¦GµGµG¾G:HU0	ÓÓ Ó)Ó/Ó8Ó?ÓCÓIÓV(ˆŽrrrr"r-r6rW¼w¢sSsS�S S¼SÎSÕSâSîSýSTT
TT&T/THTHTOTUT\TiTtTƒT‰T‹T�T“T™T±TºTºTÁTÜTßTñTX  CÙÉÙÉáÉåÉñÉÊÊÊ'Ê0ÊEÊnÊzÊzÊ�ʞʩÊÇÊÇÊîÊðÊðÊðÊËËË!Ë;Ë;Ë;ËMËTËTËfËlËtËYD�œ!! !,!B!\!g!g!x!ˆ!Š!´!Z¼Bú§ú§¨¨"¨.¨<¨L¨t¨—¨¦¨ѨÕ¨ݨ稩2©@©P©[©†©–©›©£©ΩÒ©ä©é©ö©ªªªª"ª[@nz888<8@8S8\8`8b8\ *nvv�…�®»Ì×àö	2>Vfy��²½Åêïù$3@UMpˆŒ‘‘¢¢µÇÚðòò 
 
 
     ( : A A S Y  ]@1=qàqàà„à‡à™àŸà¢à¤àªà^è�ƶr¶rÐrèrôrssss&s)s:s:s:sAsNsQsVsSs°sÇsÊsÌsãsæsèsðstt	tt&t6tDtMtTtYtYtYt_tst_D	J§J§^§†§©§¶§çΧê§ò§ú§` 	
öãöãäääa4|…>ÿ>ÿLÿUÿ\ÿeÿb8äЉÖ‰߉å‰ë‰ô‰÷‰ý‰ctRk>c>cccec~cžc¤cžc»c½cÃc½cÚcÜcÜcìcîcîcþcþcdBdd0³@³@¼@Î@Ü@à@ä@ä@é@e@b½b½q½y½�½—½Ÿ½§½¬½²½´½´½º½fØNʋʋà‹ï‹ú‹Œ#Œ#Œ4ŒLŒYŒlŒxŒƒŒ“ŒµŒ·ŒÔŒáŒáŒáŒòŒ�%�.�4�;�A�F�L�P�W�b�h�’�gè[‘LL-L/L>LJLVLkLpLyL|L�L‹L‹L•L˜L®LÆLÂLÔLÙL÷LMMM M$MHMJMfM`M’M’M¢M²M¹M¿MÂMÇM×MÞMáM³Nh”	*kk�²×ü
+999P9SH¾ä¾äÇäÜäåäðäòäôäååååååT¸9£~C~CŸC¢C¥CÂCæCíCøCDD&D.D4DADQDeDjDyDŒD¬DµD¬DÇDÉDÒDÉDäDæDïDæDEEEEE!E2E7EcEŠEŠE�E“E¸EÀEÆEÓEãE÷EüEFFAFMF`F€F�F€F›F F­F F»FÀFÍFÀFÛFàFàFðFðFGGGEGGGlGlGrGuGƒGˆG›G¦GµGµG¾G:HU0	ÓÓ Ó)Ó/Ó8Ó?ÓCÓIÓV(ˆŽrrrr"r-r6rW¼w¢{S{S¥S¨SÄSÖSÝSêSöST	T
TT T.T7TPTPTWT]TdTqT|T‹T‘T“T•T›T¡T¹TÂTÂTÉTäTçTùTX  CÙÉÙÉáÉåÉñÉÊÊÊ'Ê0ÊEÊnÊzÊzÊ�ʞʩÊÇÊÇÊîÊðÊðÊðÊËËË!Ë;Ë;Ë;ËMËTËTËfËlËtËYD�œ!! !,!B!\!g!g!x!ˆ!Š!´!Z¼Bú§ú§¨¨"¨.¨<¨L¨t¨—¨¦¨ѨÕ¨ݨ稩2©@©P©[©†©–©›©£©ΩÒ©ä©é©ö©ªªªª"ª[@nz88#8D8H8[8d8h8j8\ *nvv�…�®»Ì×àö	2>Vfy��²½Åêïù$3@UMpˆŒ‘‘¢¢µÇÚðòò 
 
 
     ( : A A S Y  ]@1=qàqàà„à‡à™àŸà¢à¤àªà^è�ƶr¶rÐrèrôrssss&s)s:s:s:sAsNsQsVsSs°sÇsÊsÌsãsæsèsðstt	tt&t6tDtMtTtYtYtYt_tst_D	J§J§^§†§©§¶§çΧê§ò§ú§` 	
öãöãäääa4|…>ÿ>ÿLÿUÿ\ÿeÿb8äЉÖ‰߉å‰ë‰ô‰÷‰ý‰ctRk>c>cccec~cžc¤cžc»c½cÃc½cÚcÜcÜcìcîcîcþcþcdBdd0»@»@Ä@Ö@ä@è@ì@ì@ñ@e@b½b½q½y½�½—½Ÿ½§½¬½²½´½´½º½fØNʋʋà‹ï‹ú‹Œ#Œ#Œ4ŒLŒYŒlŒxŒƒŒ“ŒµŒ·ŒÔŒáŒáŒáŒòŒ�%�.�4�;�A�F�L�P�W�b�h�’�gè[‘LL-L/L>LJLVLkLpLyL|L�L‹L‹L•L˜L®LÆLÂLÔLÙL÷LMMM M$MHMJMfM`M’M’M¢M²M¹M¿MÂMÇM×MÞMáM³Nh”	*kk�²×ü
 
G
„
Á
Ã
Ñ
ß
í
í
!>P`uŽ °ÅÞåì$0i€]6P6PJPLP\PjPtP˜P¼PÄPÖPäPîPÿPQQ"Q'Q@Q`QjQ`Q�QƒQ�QƒQ¤Q¦Q°Q¦QÇQÉQÉQÙQÙQßQâQçQýQR
-R#RFRRRyRƒRyRšRœR¦RœR½RÂRÌRÂRãRèRèRøRøRSSS$S4STS@S`S`SlSpS|SŠS“S§S»SÂSÉSÌS4TjTAR*6DMTYfw‰‰�kðñ)¦¦ÄÇÊÔâí
:GR`q~‰²·½ãíóö-=Edio‹�¤¼ÏâùI_btl<5@¬u¬uÄuÓuÚußuêuÿuvvvm0	BBB(B(Bã@ã@ãGãJãVãr0	€€(€2€I€O€Q€W€s ää"ä0ä2ätL+NwNwfwhwrw›w©w«wÀwËwÑwæwu,R;N;NSNUNaNaNmNzN‡N�N”NšNœN N°N¾NÎNÙNÞNÞNåNåNðNðNOO(O*O0O2O4O6O6OAOCOKOQOSOSO_OiOlOlOlOlOwOOƒO�Ovx8ÞBÞBôBCC$C3C9C=CRC`CfClCoCyCw¨5[vlvlšl¥l­l¼lÁlÆlÖlÛlölölýlm	mm m%m'm'm.m4m:mBmPmVmXmXmhmjmjmzmÄmxM»G»GÕGãGüGHH'H9HNH^HeHuH€H�HšH¶H¶HºHÅHÑHÓHÓHÓHÙHÙHÜHæHæHIIII#I6Iã@ã@ãGãJãVãr0	€€(€2€I€O€Q€W€s ää"ä0ä2ätL+NwNwfwhwrw›w©w«wÀwËwÑwæwu,R;N;NSNUNaNaNmNzN‡N�N”NšNœN N°N¾NÎNÙNÞNÞNåNåNðNðNOO(O*O0O2O4O6O6OAOCOKOQOSOSO_OiOlOlOlOlOwOOƒO�Ovx8ÞBÞBôBCC$C3C9C=CRC`CfClCoCyCw¨5[vlvlšl¥l­l¼lÁlÆlÖlÛlölölýlm	mm m%m'm'm.m4m:mBmPmVmXmXmhmjmjmzmÄmxMÃGÃGÝGëGHH"H/HAHVHfHmH}HˆH—H¢H¾H¾HÂHÍHÙHÛHÛHÛHáHáHäHîHîH	IIII+I>IDIMIWIdItI˜I¥I°I°IÂIÂIÂIØIåIüIJJJ J J$J$J;Jy,07d{d{m{w{x{}{zpß÷2Ä2ÄCÄOÄ]ÄiÄuÄ�Ä�Ä�Ä�Ä—Ä£ÄÀÄÜÄÜÄÜÄÜÄâÄâÄòÄôÄôÄÅ{$‚‡~ß~ß‚ß�ßÄßÐß|<7B
Œ
Œ!Œ!Œ=ŒEŒUŒ\Œ^ŒfŒ},hBhBlB€B„B„BˆB~,
 HBHBLB`BdBdBhBhN¤V9V9a9l9|9„9¥9´9Å9Î9â9ú9
-::-:5:Q:f:q:y:ž:£:­:º:Ì:å:ô:ô:;*;4;Q;\;d;;Š;Ÿ;¨;Â;Ñ;Ý;æ;ë;<<<4<0<J<U<]<h<h<h<s<s<„<„<—<©<¼<Å<Å<Ø<è<ð<ð<ð<þ<	====0=4=;=€DÛèiïiï{ï‡ï�ï·ïÂïÂïÓïãïåïð�LN]3J3J™J™X™g™g™�™²™½™Ç™ЙÝ™è™õ™ššš#š'š/šƒœDgyËyË�˅ˑˡˬ˻ËÇËÐËèËúËÌ8ÌDÌOÌmÌm̖̖̖̮̮̔ÌÀÌÇÌáÌáÌáÌóÌúÌúÌÍÍ„øQÆ`ä`þ`aa.a7a@aGaPaYaqa€a˜a«a´a½aËaãaöaÿabbb&b,b7b9b�G�X�€�£�²�¿�Ê�ç�ú�
ž
žžž*ž<žFžNž‡œ’µ¶N¶NÈNÊNØNäNýNOO,O1OGOCOSOsOsOˆOŠOŠOŸO¡O¡O±O³O³OÃOÃOÊOÊOÐO0PˆHLZ–K–KªK¿KÉKÝKäKéKíKóKúKýKL‰àõ)««¾Åãã  =R^ˆŽ“¸Õò,Ifƒ ½Ú÷1Nkˆ¥Âßü6SpФ¾Øðððÿg!Š<
-Z€Z€n€}€�€�€’€š€�€¥€‹(óùFãFãPãZã„ã‰ãŒ$[W[WuW‘W�P¥µ›&›&Ÿ&®&³&¿&Ë&×&à&ì&ó&ø&''.'0'Ž@
»)»)Ç)Î)Ô)Û)ï)ö)ø)ý)*�X�¢r˜r˜‡˜‘˜•˜•˜½˜à˜ë˜	™™™™$™�,›¢N½N½b½t½y½Š½�½·½‘x£½ÖàÖàßàìàûàáá=áRáXá^áeáráŽáŽá¢á¬á´á½áÕáÞáÞáóá’8¶ÀC:C:_:l:q:‡:Š:Ÿ:“(¿Å¦˜¦˜®˜¸˜Ë˜” ³×³/³/Á/Æ/Î/Ö/ã/õ/ÿ/00+0A0W0m00†0†0œ0©0©0¿0Î0Î0Õ0Ü0ã0è0ð0•8�§ÉÉ×ßç'-–P:J˜i˜i°i¼iÄiËiÔiÚiÝiÝiñiþijjj—øE››(›8›?›G›N›j›…›…›‹›”›�›¦›¯›±›º›Ã›Å›Å›Î›Ý›â›â›ë›ô›ù›ù›œœœœœ"œ'œ'œ'œ0œ9œ>œ>œJœSœXœoœsœsœ�œ�œ�œ�œ¡œ�˜XµÇ¢Â¢ÂªÂ¶ÂÁÂÐÂÜÂåÂìÂúÂÃFÃFÃXÃ_Ã_ÃqÃrÃvÙÈÝp2p2Œ2’2œ2Ÿ2Ÿ2¨2³2½2Ç2Ó2Õ2Û2â2å2è2ð2ü233
3333#3)32323:3C3I3R3R3R3R3X3`3c3s3š,�ˆ"Á"Á+Á7Á?ÁDÁIÁ›8_i&&4>HS[]]cœx^xc[c[y[€[Ž[Ž[š[¥[Ô[Ô[×[Ù[Ù[Þ[Þ[à[à[à[â[â[â[ë[î[ñ[þ[�,ÛâŒyŒy•yŸy y¥yž$(-����*�0�Ÿ<@KÊ�Ê�à�ê�î�ó�ÿ�����  úþŽãŽã’ã³ãµã¡t.RžRžbžnžwžˆž°žÓžâžïžŸúž$Ÿ8Ÿ>Ÿ@ŸBŸHŸJŸWŸZŸbŸ¢h^tš š ¼  Ë Ë Ô ã ð ¡&¡.¡0¡B¡B¡B¡S¡`¡`¡n¡£Ht‚î{î{÷{ü{ý{||| |#|'|7|<|?|¤<ðûÕ‘Õ‘ê‘Ù‘ù‘!’¥€�¹2£2£P£a£i£|£Ž£™£¤£º£¾£Σà£è£è£2¤7¤7¤Y¤Y¤p¤�¤–¤¸¤¦ %«2«2»2Å2Ê2Ï2Ï2Þ2ã2è2ò2ü2333333"3$33353A3K3Y3^3m3t3v3v3v3|3§€~š6Ò6Ò?ÒBÒYÒYÒpÒ„Ò¢Ò¤Ò¼ÒÏÒÚÒëÒÓÓÓ-ÓKÓMÓeÓxÓxÓ{ÓÔÓ¨4<E5550525=5?5?5G5©X€Ò��2�B�I�Q�X�t�x�—�—�¹�¹�¹�Â�Ä�Ä�Í�Ï�Ï�Ø�Ú�Ú�ã�å�å�î�ð�ð�ù�û�û�žžžžžžžžžžžž7žGž[žkžkžmžmžvžyž~ž~ž‡ž‡žŒžŒž•ž¢ž§ž§ž°žÄžÇžÌžÌžÕžÕžãžçžÀŸª`Uis?s?“?ž?¤?¯?±?Â?Ï?Õ?Õ?á?«0;CËAËAÔAâAèAúAüAüAB¬(‹‘�V�V¤V¯V¸V»VÃV­ \€ÉÐÉÐÑÐÜÐìÐûÐÑ+Ñ+Ñ@ÑHÑMÑMÑZÑpÑ|фьўÑËÑ×ÑêÑòÑ÷Ñ÷ÑÒÒÒÒÒ.Ò3Ò:Ò®°.V±Î±Î¹ÎÄÎÔÎãÎïÎÏÏ@ÏeÏjÏjÏχόόϳϻÏÃÏÕÏÐÐ!Ð)Ð.ÐCÐEÐEÐQÐQÐcÐjÐjÐ|Ð�Ð�Я8LVDvDvTvWvYv^vgvjvovwv° ~‚ææêùý±({P{P„PŽP™P¡P¦P²DÐXÐXäXöXýXYYYY'Y*Y2Y³h°Æ8OYj€¤»»Ñô*´X=OÝÝÝÝ/Ý7ÝUÝYÝeÝeÝy݂݆݊ݵ\ReFpFp\pcprpyp‚p‚p˜p£p«p¿pÈpÎpÙpÙp÷p¶PFVH5H5f5l5q5�5“5˜5¶5¸5Æ5Ì5Ï5Ý5·lXo¦ð¦ðÇðÊðØðØðäðëðððóðùðüðñ	ñ	ñññññ'ñ¸Œ“²Ë-Ë-Ô-ý-&.O.™.¦.¨.À.À.
-///1/1/A/a/h/m/w/ž/¥/§/¬/¯/¹ˆ;Y„„„„„(„5„>„G„P„Y„m„m„x„~„€„�„—„¦„¯„¸„ՄՄׄç„í„ò„º4¼t¼tÐtßtätòtõtûtu»\•¨²Á²ÁÈÁÔÁÖÁäÁúÁ	  Â;ÂCÂK¼¨'’�’�¤�¯�´�Â�Î�Ú�ã�î�ù�Ž	ŽŽ%Ž3ŽLŽWŽ^ŽrŽ‘Ž™Ž¡Ž¬Ž®Ž¿ŽÊŽÑŽߎêŽìŽõŽÿ޽ W[‘БЫнÐÇоDt�ëë-ë7ëIëPëWëgërë€ëƒë‹ë¿<)4\u\usuvu{u~u‘u—ušuœu¦uÀ´^ÇIITu|‹˜¤³Ç×íú
.=JSSl�­àåÿ/:ZckxŠœ¼Ñäþ-9KPbtŒœ¨»»îù,8DDIXf©°µÕÜ$2\^^c~…��ž³³ÄËààññôüÁh
- öìöìí í+í7íCíLíUí^ígípíyí‚í‹í”í�í¦í¯í¸í¸íÐíÂ0¾Æ__!_=_T_`_f_l_‹_ÃX’¤ 0 0®0·0Ã0É0Ì0Ñ0×0Ú0ß0ß0ì0ð0ó0ó0ù0ÄÜ‚µÖZÖZüZ[[%[%[;[B[R[a[a[f[�[„[‰[—[«[²[¼[¼[Ñ[Ñ[ç[õ[û[\\,\6\9\<\A\O\e\o\r\u\}\‹\¡\«\®\®\µ\¹\Ë\ÅLüKGKGZGhGhGrG|G™G¤G­G³G´GºGÆ PTŽÝŽÝ’ݾÝÀÝÇôȶ#¶#¾#Â#Ê#Û#ê#ô#$;$M$_$_$c$r$|$�$—$›$ª$Ç$Ì$Ì$â$ê$ý$%-%:%B%G%Z%i%Š%—%¢%´%Æ%á%è%ú%ú%&&	&&&)&-&1&È8AKvv$v'v)v.v1v4v9vAvÉDz‡ÄqÄqÈqÎqÔqÚqàqæqìqòqøqþqrrÊhÖ,N3N3Y3q3‚3‘3›3¤3µ3Í3å3õ344,4A4W4_4„4‰4“4¤4¶4Í4Í4ñ455585G5O5O5n5~5˜5Ø5«5³5ž5þ56 6 696N6h6r6…6�6x6Ø6Ø6Ø677 7 727D7L7_7w7Š7’7’7 7©7´7Â7É7Ô7â7â7ç7ó7Ë4{„———— —4—;—@—H—Ì<²½ÈWÈWìWðWXX$X.X1XAXÍ8§±XWXW|W€W–WªW´W·WÇWÎLú	vìvì’ìžì¹ìÂìÏìãìéìõìÏ`L`��:�F�Q�V�d�o�~�„�•�™���£�¦�­�¸�¸�Ä�Ð Ÿ£êkêkîkùkûkÑ #GÖíÖíëíòíüí
+::-:5:Q:f:q:y:ž:£:­:º:Ì:å:ô:ô:;*;4;Q;\;d;;Š;Ÿ;¨;Â;Ñ;Ý;æ;ë;<<<4<0<J<U<]<h<h<h<s<s<„<„<—<©<¼<Å<Å<Ø<è<ð<ð<ð<þ<	====0=4=;=€DÛèiïiï{ï‡ï�ï·ïÂïÂïÓïãïåïð�LN];J;JDJIJPJPJoJ’J™J¨J·J¼J¾JÀJÀJ‚l£º*™*™>™J™X™g™g™�™²™½™Ç™ЙÝ™è™õ™ššš#š'š/šƒœDgyËyË�˅ˑˡˬ˻ËÇËÐËèËúËÌ8ÌDÌOÌmÌm̖̖̖̮̮̔ÌÀÌÇÌáÌáÌáÌóÌúÌúÌÍÍ„øQÆ`ä`þ`aa.a7a@aGaPaYaqa€a˜a«a´a½aËaãaöaÿabbb&b,b7b9b�G�X�€�£�²�¿�Ê�ç�ú�
ž
žžž*ž<žFžNž‡œ’µ¶N¶NÈNÊNØNäNýNOO,O1OGOCOSOsOsOˆOŠOŠOŸO¡O¡O±O³O³OÃOÃOÊOÊOÐO0PˆHLZ–K–KªK¿KÉKÝKäKéKíKóKúKýKL‰àø,ÓÓæí))GGez†°¶»àý7TqŽ«Èå <Yv“°Íê$A^{˜²Ìæ    ' �!Š<
+Z€Z€n€}€�€�€’€š€�€¥€‹(óùFãFãPãZã„ã‰ãŒ$cWcW}W™W�P¨¸Ã&Ã&Ç&Ö&Û&ç&ó&ÿ&''' '-'D'V'X'Ž@
ã)ã)ï)ö)ü)*** *%*0*�X�¢r˜r˜‡˜‘˜•˜•˜½˜à˜ë˜	™™™™$™�,›¢N½N½b½t½y½Š½�½·½‘x£½ÖàÖàßàìàûàáá=áRáXá^áeáráŽáŽá¢á¬á´á½áÕáÞáÞáóá’8¶ÀK:K:g:t:y:�:’:§:“(¿Å¦˜¦˜®˜¸˜Ë˜” £Ç»/»/É/Î/Ö/Þ/ë/ý/00030I0_0u0‡0Ž0Ž0¤0±0±0Ç0Ö0Ö0Ý0ä0ë0ð0ø0•8�§ÉÉ×ßç'-–P:J˜i˜i°i¼iÄiËiÔiÚiÝiÝiñiþijjj—øE››(›8›?›G›N›j›…›…›‹›”›�›¦›¯›±›º›Ã›Å›Å›Î›Ý›â›â›ë›ô›ù›ù›œœœœœ"œ'œ'œ'œ0œ9œ>œ>œJœSœXœoœsœsœ�œ�œ�œ�œ¡œ�˜XµÇ¢Â¢ÂªÂ¶ÂÁÂÐÂÜÂåÂìÂúÂÃFÃFÃXÃ_Ã_ÃqÃrÃvÙÈÝp2p2Œ2’2œ2Ÿ2Ÿ2¨2³2½2Ç2Ó2Õ2Û2â2å2è2ð2ü233
3333#3)32323:3C3I3R3R3R3R3X3`3c3s3š,�ˆ"Á"Á+Á7Á?ÁDÁIÁ›8_i&&4>HS[]]cœx^xk[k[�[ˆ[–[–[¢[­[Ü[Ü[ß[á[á[æ[æ[è[è[è[ê[ê[ê[ó[ö[ù[\�,ÛâŒyŒy•yŸy y¥yž$(-����*�0�Ÿ<@KÊ�Ê�à�ê�î�ó�ÿ�����  úþŽãŽã’ã³ãµã¡t.RžRžbžnžwžˆž°žÓžâžïžŸúž$Ÿ8Ÿ>Ÿ@ŸBŸHŸJŸWŸZŸbŸ¢h^tš š ¼  Ë Ë Ô ã ð ¡&¡.¡0¡B¡B¡B¡S¡`¡`¡n¡£Ht‚î{î{÷{ü{ý{||| |#|'|7|<|?|¤<ðûÕ‘Õ‘ê‘Ù‘ù‘!’¥€�¹2£2£P£a£i£|£Ž£™£¤£º£¾£Σà£è£è£2¤7¤7¤Y¤Y¤p¤�¤–¤¸¤¦˜ñ³2³2Ã2Í2Ò2×2×2æ2ë23
+33333 3*3,3;3=3I3S3a3f3u3|3~3~3~3„3§€~š6Ò6Ò?ÒBÒYÒYÒpÒ„Ò¢Ò¤Ò¼ÒÏÒÚÒëÒÓÓÓ-ÓKÓMÓeÓxÓxÓ{ÓÔÓ¨4<E5550525=5?5?5G5©X€Ò��2�B�I�Q�X�t�x�—�—�¹�¹�¹�Â�Ä�Ä�Í�Ï�Ï�Ø�Ú�Ú�ã�å�å�î�ð�ð�ù�û�û�žžžžžžžžžžžž7žGž[žkžkžmžmžvžyž~ž~ž‡ž‡žŒžŒž•ž¢ž§ž§ž°žÄžÇžÌžÌžÕžÕžãžçžÀŸª`Ui{?{?›?¦?¬?·?¹?Ê?×?Ý?Ý?é?«0;CÓAÓAÜAêAðABBB	B¬(‹‘�V�V¤V¯V¸V»VÃV­ \€ÉÐÉÐÑÐÜÐìÐûÐÑ+Ñ+Ñ@ÑHÑMÑMÑZÑpÑ|фьўÑËÑ×ÑêÑòÑ÷Ñ÷ÑÒÒÒÒÒ.Ò3Ò:Ò®°.V±Î±Î¹ÎÄÎÔÎãÎïÎÏÏ@ÏeÏjÏjÏχόόϳϻÏÃÏÕÏÐÐ!Ð)Ð.ÐCÐEÐEÐQÐQÐcÐjÐjÐ|Ð�Ð�Я8LVDvDvTvWvYv^vgvjvovwv° ~‚ææêùý±(ƒPƒPŒP–P¡P©P®P²DÐXÐXäXöXýXYYYY'Y*Y2Y³h°Æ8OYj€¤»»Ñô*´X=OÝÝÝÝ/Ý7ÝUÝYÝeÝeÝy݂݆݊ݵ\ReFpFp\pcprpyp‚p‚p˜p£p«p¿pÈpÎpÙpÙp÷p¶PFVH5H5f5l5q5�5“5˜5¶5¸5Æ5Ì5Ï5Ý5·lXo¦ð¦ðÇðÊðØðØðäðëðððóðùðüðñ	ñ	ñññññ'ñ¸Œƒ¢Ó-Ó-Ü-...W.¡.®.°.È.È./ /!/9/9/I/i/p/u//¦/­/¯/´/·/¹ˆ;Y„„„„„(„5„>„G„P„Y„m„m„x„~„€„�„—„¦„¯„¸„ՄՄׄç„í„ò„º4¼t¼tÐtßtätòtõtûtu»\•¨²Á²ÁÈÁÔÁÖÁäÁúÁ	  Â;ÂCÂK¼¨'’�’�¤�¯�´�Â�Î�Ú�ã�î�ù�Ž	ŽŽ%Ž3ŽLŽWŽ^ŽrŽ‘Ž™Ž¡Ž¬Ž®Ž¿ŽÊŽÑŽߎêŽìŽõŽÿ޽ W[‘БЫнÐÇоDt�ëë-ë7ëIëPëWëgërë€ëƒë‹ë¿<)4\u\usuvu{u~u‘u—ušuœu¦uÀ´^ÇIITu|‹˜¤³Ç×íú
.=JSSl�­àåÿ/:ZckxŠœ¼Ñäþ-9KPbtŒœ¨»»îù,8DDIXf©°µÕÜ$2\^^c~…��ž³³ÄËààññôüÁh
+ öìöìí í+í7íCíLíUí^ígípíyí‚í‹í”í�í¦í¯í¸í¸íÐíÂ0¾Æ__)_E_\_h_n_t_“_ÃX’¤ 0 0®0·0Ã0É0Ì0Ñ0×0Ú0ß0ß0ì0ð0ó0ó0ù0ÄÜ‚µÖZÖZüZ[[%[%[;[B[R[a[a[f[�[„[‰[—[«[²[¼[¼[Ñ[Ñ[ç[õ[û[\\,\6\9\<\A\O\e\o\r\u\}\‹\¡\«\®\®\µ\¹\Ë\ÅLüSGSGbGpGpGzG„G¡G¬GµG»G¼GÂGÆ PTŽÝŽÝ’ݾÝÀÝÇôȶ#¶#¾#Â#Ê#Û#ê#ô#$;$M$_$_$c$r$|$�$—$›$ª$Ç$Ì$Ì$â$ê$ý$%-%:%B%G%Z%i%Š%—%¢%´%Æ%á%è%ú%ú%&&	&&&)&-&1&È8AKvv$v'v)v.v1v4v9vAvÉDz‡ÄqÄqÈqÎqÔqÚqàqæqìqòqøqþqrrÊhÖ,N3N3Y3q3‚3‘3›3¤3µ3Í3å3õ344,4A4W4_4„4‰4“4¤4¶4Í4Í4ñ455585G5O5O5n5~5˜5Ø5«5³5ž5þ56 6 696N6h6r6…6�6x6Ø6Ø6Ø677 7 727D7L7_7w7Š7’7’7 7©7´7Â7É7Ô7â7â7ç7ó7Ë4{„———— —4—;—@—H—Ì<²½ÈWÈWìWðWXX$X.X1XAXÍ8§±XWXW|W€W–WªW´W·WÇWÎLú	vìvì’ìžì¹ìÂìÏìãìéìõìÏ`L`��:�F�Q�V�d�o�~�„�•�™���£�¦�­�¸�¸�Ä�Ð Ÿ£êkêkîkùkûkÑ #GÖíÖíëíòíüí
 î
-îî+îNîPîrî‰î«îÑîóîýîïï-ïEïNïNïgïqïŠï˜ïšï¡ï¨ïáïÒ¼\‡‘á‘á­á°á¹áÂáÌáÞáááäáéáùáüáââ#â%â%â9â9â<â?âMâQâgâmâtâ{â~âƒâ˜â›â�â�â²â²â²âÄâÓ`¹Íí‡í‡	ˆˆˆˆ ˆ%ˆ1ˆ9ˆEˆIˆQˆ]ˆ_ˆ_ˆbˆnˆÔ ’–ÈVÈVÑVÞVãVÕ\"8Y8YHYMYWY_YhYkYrYuY}Y„YŒYÖd<QVoVonowo’o¡o¶o¼oÄoæoôop(p.p7p7pCp×\Æ>Æ>Ô>Þ>å>ë>ô>?
???(?E?N?W?]?e?Ø<±¼`m`mtmwm€m�m•m©mºmÙ|øBnBnxnlnˆnŽn�n¢n³n·n»nÅnÊnÚnànçnênünÚ´f�þpþpq!q*q>qHqSqUqiqvqqƒqƒqŒqžq£q·qÜqõqüqþq"r:r:roCoEoÞ@˜¤C&C&Q&X&_&i&p&r&„&‰&–&ß,„‹¬w¬wµwºwÂwÈwÈwÍwàD -QÎQÎ_Îg΃΃ΈΈΈΕΕΡΡΫÎá4›¤í}í}ö}~~ ~&~(~(~-~â /3(C(C6CJCPCãHø"Å"Å7ÅCÅFÅOÅ[ÅcÅ€Å�ŕŘŤÅä$¦Û¦ÛªÛ®Û°ÛåDÍÚTyTybynysysy€y…y…y‹yæhC™mŒmŒ‡Œ‰Œ¢Œ®Œ²ŒÎŒéŒéŒéŒéŒéŒõŒ����%�5�?�D�D�M�]�b�b�s�x�{�‡�˜�¨�ª�ª�ª�Ç�É�É�æ�æ�ì�ø�ŽŽŽ Ž"Ž.Ž?ŽPŽRŽRŽhŽjŽjŽ€Ž€Ž†Ž’ŽžŽ¥Ž©Ž¹Ž¼ŽÈŽÙŽëŽíŽíŽíŽòŽ6�çxš´=�=�U�d�j�m�ˆ�£�£�­�¯�¯�¹�»�»�»�Æ�È�È�È�Ó�Ó�Ó�Ø�ê�è UyÞÝÞÝçÝ÷ÝÞ&Þ8Þ:ÞXÞgÞgÞ|Þ~Þ”Þ¬Þ³Þ³Þ´Þ´ÞÂÞÍÞÜÞÞÞêÞõÞß
ß ßéHŒšÔwÔwèwïwxxxx%x(x-x/x7xê8ðú«V«VËVÖVäVÜV÷VWWWWë@ƒ�——Зø—˜(˜5˜@˜b˜j˜p˜ì(>D¦š¦š³šÈšôš›í ßã¾â¾âÈâÛâàâî$§¬œxœx¥x­x³x¸xï<©´RÂRÂhÂ~Â�““˜˜ Âðd¶Î\Î\ð\ô\ü\
]
]#]+];];]G]V][]t]w]|]�]‘]œ]£]§]«]¹]Í]Ô]Þ]ä]ç]õ]û]^"^$^'^'^)^C^O^U^^^j^‹^�^›^¢^©^¯^²^À^Ö^Ö^Ö^Û^ç^ÿ^______+_A_A_A_I_U_m_q_|__†_—_—_ž_´_ñÀI3R3RGRTRZRbRoRqR‡R�R�R™R²RÀRÉRÔRßRâRéRîRöRûRS
S S&SLSOSjSjSjSnSsS�Sò4 (,u,u:uÆ>Ô>Þ>å>ë>ô>?
???(?E?N?W?]?e?Ø<±¼`m`mtmwm€m�m•m©mºmÙ|øBnBnxnlnˆnŽn�n¢n³n·n»nÅnÊnÚnànçnênünÚ´f�þpþpq!q*q>qHqSqUqiqvqqƒqƒqŒqžq£q·qÜqõqüqþq"r:r:roCoEoÞ@›§k&k&y&€&‡&‘&˜&š&¬&±&¾&ß,„‹¬w¬wµwºwÂwÈwÈwÍwàD -QÎQÎ_Îg΃΃ΈΈΈΕΕΡΡΫÎá4›¤í}í}ö}~~ ~&~(~(~-~â /3(C(C6CJCPCãHø"Å"Å7ÅCÅFÅOÅ[ÅcÅ€Å�ŕŘŤÅä$¦Û¦ÛªÛ®Û°ÛåDÍÚTyTybynysysy€y…y…y‹yæhC™mŒmŒ‡Œ‰Œ¢Œ®Œ²ŒÎŒéŒéŒéŒéŒéŒõŒ����%�5�?�D�D�M�]�b�b�s�x�{�‡�˜�¨�ª�ª�ª�Ç�É�É�æ�æ�ì�ø�ŽŽŽ Ž"Ž.Ž?ŽPŽRŽRŽhŽjŽjŽ€Ž€Ž†Ž’ŽžŽ¥Ž©Ž¹Ž¼ŽÈŽÙŽëŽíŽíŽíŽòŽ6�çxš´=�=�U�d�j�m�ˆ�£�£�­�¯�¯�¹�»�»�»�Æ�È�È�È�Ó�Ó�Ó�Ø�ê�è UyÞÝÞÝçÝ÷ÝÞ&Þ8Þ:ÞXÞgÞgÞ|Þ~Þ”Þ¬Þ³Þ³Þ´Þ´ÞÂÞÍÞÜÞÞÞêÞõÞß
ß ßéHŒšÔwÔwèwïwxxxx%x(x-x/x7xê8ðú³V³VÓVÞVìVäVÿVWWWWë@ƒ�——Зø—˜(˜5˜@˜b˜j˜p˜ì(>D¦š¦š³šÈšôš›í ßã¾â¾âÈâÛâàâî$§¬œxœx¥x­x³x¸xï<©´RÂRÂhÂ~Â�““˜˜ Âðd¶Î\Î\ð\ô\ü\
]
]#]+];];]G]V][]t]w]|]�]‘]œ]£]§]«]¹]Í]Ô]Þ]ä]ç]õ]û]^"^$^'^'^)^C^O^U^^^j^‹^�^›^¢^©^¯^²^À^Ö^Ö^Ö^Û^ç^ÿ^______+_A_A_A_I_U_m_q_|__†_—_—_ž_´_ñÀI3R3RGRTRZRbRoRqR‡R�R�R™R²RÀRÉRÔRßRâRéRîRöRûRS
S S&SLSOSjSjSjSnSsS�Sò4 (,u,u:u7I7M7M7V7Y7g7d!6V™V™~™†™ ™«™®™´™¼™Ð™à™í™ï™ý™
 šš.š0š0š@š�Ssæzæzðzözýz{{>{S{S{X{_{w{�{©{®{²{Á{Ã{Î{Ù{ä{ä{è{ UYÆÌÆÌÚÌéÌñÌ€éÈéÈÉÉ,É>ÉSÉYÉ^ÉdÉgÉuÉ�ɄɇɓɘɡɦɭÉÃÉÃÉÙÉ@v‚———C—f—s—€—‹—®—¶—»—Ìh—&ç&çAçKçYç_çiçiçvç|ç€çƒç…çŒç“ç�ç©ç²çÆçÛçøçèç
è
èèAèCèPèWènèzè‚è„èžè¹èÅèÒèéì¥Ü-~-~G~O~W~f~w~y~�~¢~ž~±~Á~Ç~Í~Ô~Ý~û~÷~
-1BEJPp†“𥩮¹ÄÊÍÓâóø€€!€L&5˜G˜G¢G©G´GÀGÇGÇGÍGÔGäGæGíGòGöG,‹’μμâ¼ô¼ú¼½½<0;‰‰›«Ëßåççí<w‚r¼r¼�¼†¼¡¼¸¼¼¼¼¼Á¼Á¼Ǽ\õz¦z¦ˆ¦�¦•¦œ¦¡¦ɦì¦ù¦§§.§6§=§=§@§F§,“š>à>àLàgàqàvà‰à�à¼Ðû»E»EçEíEFF%F1F=FAFOFnFnF�F—FŸF¦F®F¸FÀFÔFåFöFGGG!G)G)G-GJG 4#àà
-ààà!à'à'à,à <ÆÉÆÉÚÉíÉúÉÊÊ*Ê:Ê=ÊMÊ!4ÓÜ(2(2<2>2G2G2T2\2a2i2",W^k7k7y7{7�7•7š7 7#DJWñéñéþéêêê*ê2ê:êBêJêTêYê$ø^˜ùõùõöö#ö2ö;öIöVöaöqö†ö›ö²öÁöáöðö÷÷&÷=÷F÷U÷q÷ˆ÷˜÷¥÷²÷½÷Ò÷á÷ó÷ø÷øøø0øBøYøbømøtøø‰ø’ø–ø%(QWnðnðyð�ðœð ð&0V^þþ  $'@	��•£±»ÌÝçñû(hr’r’{’‰’˜’£’³’Ã’Ó’ã’ò’““!“B“D“S“b“r“‚“«“«“°“)ˆ ;<;<[<e<h<p<€<€<‘<›<®<¸<º<Ù<Þ<ì<ú<==!=+=+=+=;=*PÙéFëFëdëwëƒëžë¯ë¼ëÐë×ëÝëìë+$mrXkXk\klkqk�k,H¾ÌHXHX^XcX|X‡X�X’XžX¡X¤X®X-D&«P«P´PÂPÂPÄPÊPÕPÕPäPåPêP.(¤ªlllll l"l/D.;žåžå¬åºåºåÂåáåûåûåÿåæ0d>S±à±àÊàÎàÚàÚàæàæàóàóàáá á2áGáQá`á`ájá1ÔTîÄîÄÅÅÅ$Å7ÅAÅGÅKÅNÅPÅVÅZÅ]ÅcÅfÅyőřŜŭÅÁÅÈÅÒÅÖÅéÅìÅøÅýÅÆÆÆ8Æ@ÆCÆTÆlÆsÆsÆ‚Æ�ƪƶÆÕÆÕÆæÆþÆÇÇÇ!Ç5Ç<ÇAÇAÇRÇfÇ}ǂǂLjǙǭÇÌÇÑÇÑÇ×ÇèÇüÇÈ È È1ÈEÈRÈWÈWÈhÈ|ȉȎȎȟȳÈÀÈÂÈÂÈÂÈÂÈÂÈÓÈëÈúÈüÈüÈ
É!É*É*É0É0É9É9ÉÂÉ24ÂËÒµÒµàµåµðµóµ÷µýµ3l 7;=;=Y=\=d=x=x=Š=”=¨=²=´=Ó=Ø=æ=ô=ÿ=
>>%>%>3>4ˆ7U3>3>Y>]>`>s>�>�>Ÿ>¨>º>Ã>Ê>Ï>Ù>â>ì>ï>ò>÷>	??(?Hª¸m‡m‡ˆ‡¥‡¯‡¶‡¶‡Õ‡Ú‡Ü‡Ü‡æ‡?Ä Lò¹ò¹ººº!º&ºDºDºMºbºwº~ºŠº–º¢º²º·º¼º¼ºúʺÓºÕºÕºܺ纻»»»&»7»7»7»B»I»N»U»X»d»@XºÌº¤º¤ܤà¤æ¤é¤ô¤ô¤¥¥¥ ¥"¥(¥6¥A¨Cib•b•‹•�•𕤕®•º•º••ë•ô•ù•––
+1BEJPp†“𥩮¹ÄÊÍÓâóø€€!€L&5˜G˜G¢G©G´GÀGÇGÇGÍGÔGäGæGíGòGöG,‹’μμâ¼ô¼ú¼½½<0;‰‰›«Ëßåççí<w‚r¼r¼�¼†¼¡¼¸¼¼¼¼¼Á¼Á¼Ǽ\õz¦z¦ˆ¦�¦•¦œ¦¡¦ɦì¦ù¦§§.§6§=§=§@§F§,“š>à>àLàgàqàvà‰à�à¼ÐûÃEÃEïEõEF&F-F9FEFIFWFvFvF•FŸF§F®F¶FÀFÈFÜFíFþFGG#G)G1G1G5GRG 4#àà
+ààà!à'à'à,à <ÆÉÆÉÚÉíÉúÉÊÊ*Ê:Ê=ÊMÊ!4ÓÜ(2(2<2>2G2G2T2\2a2i2",W^s7s7�7ƒ7•7�7¢7¨7#DJWñéñéþéêêê*ê2ê:êBêJêTêYê$ø^˜ùõùõöö#ö2ö;öIöVöaöqö†ö›ö²öÁöáöðö÷÷&÷=÷F÷U÷q÷ˆ÷˜÷¥÷²÷½÷Ò÷á÷ó÷ø÷øøø0øBøYøbømøtøø‰ø’ø–ø%(QWnðnðyð�ðœð ð&0V^þþ  $'@	��•£±»ÌÝçñû(hr’r’{’‰’˜’£’³’Ã’Ó’ã’ò’““!“B“D“S“b“r“‚“«“«“°“)ˆ C<C<c<m<p<x<ˆ<ˆ<™<£<¶<À<Â<á<æ<ô<=
==)=3=3=3=C=*PÙéFëFëdëwëƒëžë¯ë¼ëÐë×ëÝëìë+$mrXkXk\klkqk�k,H¾ÌHXHX^XcX|X‡X�X’XžX¡X¤X®X-D&³P³P¼PÊPÊPÌPÒPÝPÝPìPíPòP.(¤ªlllll l"l/D.;žåžå¬åºåºåÂåáåûåûåÿåæ0d>S±à±àÊàÎàÚàÚàæàæàóàóàáá á2áGáQá`á`ájá1ÔTîÄîÄÅÅÅ$Å7ÅAÅGÅKÅNÅPÅVÅZÅ]ÅcÅfÅyőřŜŭÅÁÅÈÅÒÅÖÅéÅìÅøÅýÅÆÆÆ8Æ@ÆCÆTÆlÆsÆsÆ‚Æ�ƪƶÆÕÆÕÆæÆþÆÇÇÇ!Ç5Ç<ÇAÇAÇRÇfÇ}ǂǂLjǙǭÇÌÇÑÇÑÇ×ÇèÇüÇÈ È È1ÈEÈRÈWÈWÈhÈ|ȉȎȎȟȳÈÀÈÂÈÂÈÂÈÂÈÂÈÓÈëÈúÈüÈüÈ
É!É*É*É0É0É9É9ÉÂÉ24ÂËÒµÒµàµåµðµóµ÷µýµ3l 7C=C=a=d=l=€=€=’=œ=°=º=¼=Û=à=î=ü=>>#>->->;>4ˆ7U;>;>a>e>h>{>—>—>§>°>Â>Ë>Ò>×>á>ê>ô>÷>ú>ÿ>? ?0?D?R?b?b?t?5ˆXvº»º»Ñ»Ô»Ô»å»î»ø»ü»ÿ»¼¼¼ ¼ ¼%¼,¼0¼9¼9¼B¼G¼S¼e¼g¼q¼6XÉÛùdùde&e+e7eQeWedeoeveeƒe�e7X¶Èadad�dŽd“dŸd¹d¿dÌdÙdàdédídùd8$
V’V’l’¦’¼’Ê’9 X\vÙvÙzكمÙ: éíããã#ã(ã; á剉1‰C‰K‰<(7=FšFšSšhš�š¡š=0‚І¼†¼ ¼£¼£¼¬¼½¼À¼È¼>Hª¸m‡m‡ˆ‡¥‡¯‡¶‡¶‡Õ‡Ú‡Ü‡Ü‡æ‡?Ä Lò¹ò¹ººº!º&ºDºDºMºbºwº~ºŠº–º¢º²º·º¼º¼ºúʺÓºÕºÕºܺ纻»»»&»7»7»7»B»I»N»U»X»d»@XºÌº¤º¤ܤà¤æ¤é¤ô¤ô¤¥¥¥ ¥"¥(¥6¥A¨Cib•b•‹•�•𕤕®•º•º••ë•ô•ù•––
 –
-–"–7–:–=–C–J–N–}–�–‰–‹–––––›–›–ª–º–B0—Ÿ‘Û‘Û§Û³ÛÞÛàÛàÛèÛCD2¹2¹;¹C¹C¹P¹b¹j¹o¹{¹�¹ƒ¹ƒ¹ˆ¹DLÎ’Î’Þ’ì’ü’ÿ’*“N“_“¤“¨“°“EØ9"s"s&O&g&i&i&k&P0$,ËËÓéî
 Q@

 ½
-½½½$½8½B½G½S½Y½[½[½`½R4ÇЋ_‹_©_Å_Ü_è_î_ô_û_`S,¢©KMKMTMqMƒMƒMˆMT<R]‰õ‰õ›õ«õËõêõðõòõòõøõU`1ò1ò9òHòTòhòyò„ò�ò•ò—ò©ò»òÂòÂòÔòÕòÙòVTDU{{–­¸ÃÞ-4;FVgnW8$****&*3*5*B*B*E*
\ No newline at end of file
+½½½$½8½B½G½S½Y½[½[½`½R4ÇГ_“_±_Í_ä_ð_ö_ü_`"`S,¢©KMKMTMqMƒMƒMˆMT<R]‰õ‰õ›õ«õËõêõðõòõòõøõU`1ò1ò9òHòTòhòyò„ò�ò•ò—ò©ò»òÂòÂòÔòÕòÙòVTDU{{–­¸ÃÞ-4;FVgnW8$3*3*<*L*T*a*c*p*p*s*
\ No newline at end of file
diff --git a/Kernel/KernelA.HPP b/Kernel/KernelA.HPP
index 0834b16..8c84531 100644
--- a/Kernel/KernelA.HPP
+++ b/Kernel/KernelA.HPP
@@ -1609,7 +1609,7 @@ public class CAutoCompleteDictGlbls
 
 class CICArg
 {
-  U8	type,type_pointed;
+  U8	type,type_pointed_to;
   U16	reg; //low is reg, high is index_reg+scale<<6
   I64	disp;
 };
diff --git a/Kernel/KernelC.HPP b/Kernel/KernelC.HPP
index e0344f9..83e6efc 100644
--- a/Kernel/KernelC.HPP
+++ b/Kernel/KernelC.HPP
@@ -172,7 +172,6 @@ public extern U8 *TaskCaller(CTask *task=NULL,
 	I64 num=0,Bool saved_context=FALSE);
 public extern I64 UnusedStk(CTask *task=NULL);
 public extern CDbgGlbls dbg;
-
 #help_index "Debugging/Debugger"
 public extern Bool B(U8 *addr,CTask *task=NULL,Bool live=TRUE) //Toggle bpt.
 public extern I64 B2(CTask *task=NULL,Bool live=TRUE);
diff --git a/Kernel/SerialDev/Keyboard.CPP b/Kernel/SerialDev/Keyboard.CPP
index 1f4511a..06ed38e 100644
--- a/Kernel/SerialDev/Keyboard.CPP
+++ b/Kernel/SerialDev/Keyboard.CPP
@@ -62,22 +62,25 @@ U0 KbdLEDsSet(I64 sc)
     Fs->catch_except=TRUE;
 }
 
-U0 KbdMouseCmdAck(U8 val)
+U0 KbdMouseCmdAck(...)
 {
-  I64 ack,timeout=5;
-  do {
-    ack=0;
-    try {
-      KbdCmdSend(KBD_CTRL,0xD4);
-      KbdCmdSend(KBD_PORT,val);
-      ack=KbdCmdRead;
-    } catch {
-      KbdCmdFlush;
-      Fs->catch_except=TRUE;
-    }
-  } while (ack!=0xFA && --timeout);
-  if (!timeout)
-    throw;
+  I64 i,ack,timeout;
+  for (i=0;icatch_except=TRUE;
+      }
+    } while (ack!=0xFA && --timeout);
+    if (!timeout)
+      throw;
+  }
 }
 
 U0 KbdTypeMatic(U8 delay)
@@ -200,7 +203,7 @@ U8 *Char2KeyName(I64 ch,Bool include_ctrl=TRUE)
   I64 i;
   U8 buf[STR_LEN];
   if (ch<=CH_SPACE) {
-    nobound_switch (ch) {
+    switch [ch] {
       case '\n':
 	StrCpy(buf,"ENTER");
 	break;
@@ -216,7 +219,7 @@ U8 *Char2KeyName(I64 ch,Bool include_ctrl=TRUE)
       case CH_SHIFT_ESC:
 	StrCpy(buf,"SHIFT_ESC");
 	break;
-      case 0: //nobound_switch
+      case 0: //nobound switch
       case 29:
       case 30:
 	*buf=0;
diff --git a/Kernel/SerialDev/Mouse.CPP b/Kernel/SerialDev/Mouse.CPP
index 6dd2a10..596af2a 100644
--- a/Kernel/SerialDev/Mouse.CPP
+++ b/Kernel/SerialDev/Mouse.CPP
@@ -75,27 +75,11 @@ Bool MouseRst()
     catch
       Fs->catch_except=TRUE;
 
-    KbdMouseCmdAck(0xF3);
-    KbdMouseCmdAck(200);
-    KbdMouseCmdAck(0xF3); // enable Mouse
-    KbdMouseCmdAck(100); // Set Rate
-    KbdMouseCmdAck(0xF3);
-    KbdMouseCmdAck(80); //Resolution
-
-    MouseGetDevType; // enable Mouse
-
-    KbdMouseCmdAck(0xF3);
-    KbdMouseCmdAck(10);
-    MouseGetDevType; // enable Mouse
-
-    KbdMouseCmdAck(0xE8); //Resolution
-    KbdMouseCmdAck(0x03);
-    KbdMouseCmdAck(0xE6);
-
-    KbdMouseCmdAck(0xF3); // Set Rate
-    KbdMouseCmdAck(100);
-
-    KbdMouseCmdAck(0xF4); // enable Mouse
+    KbdMouseCmdAck(0xF3,200,0xF3,100,0xF3,80);
+    MouseGetDevType;
+    KbdMouseCmdAck(0xF3,10);
+    MouseGetDevType;
+    KbdMouseCmdAck(0xE8,0x03,0xE6,0xF3,100,0xF4);
     result=TRUE;
 
     //Enable IRQ 12
@@ -263,9 +247,7 @@ U0 KbdMouseHandler(Bool poll_kbd,Bool poll_mouse)
   if (kbd.rst)
     KbdMouseRst;
   else {
-    if (poll_mouse &&
-	  mouse.installed &&
-	  !mouse.irqs_working) {
+    if (poll_mouse && mouse.installed && !mouse.irqs_working) {
       PUSHFD
       CLI
       while (InU8(KBD_CTRL)&1)
diff --git a/StartOS.CPP b/StartOS.CPP
index 50618ed..6ef5abb 100644
--- a/StartOS.CPP
+++ b/StartOS.CPP
@@ -17,7 +17,7 @@ HashTablePurge(adam_task->hash_table);
 
 #help_index "Misc"
 //Use Dbg("Type 'G;'"); to debug before window mgr is running.
-public F64 os_version=4.03;//Operating system version.
+public F64 os_version=4.040;//Operating system version.
 
 #include "/Adam/MakeAdam"