From da84afbaf713a68f6efe5b69e751487e84ad8811 Mon Sep 17 00:00:00 2001 From: "Terry A. Davis" Date: Mon, 19 Jun 2017 23:25:51 +0200 Subject: [PATCH] TempleOS V5.03 Nightly (ISO SHA-1 aed1efc) --- 0000Boot/0000Kernel.BIN.C | Bin 192080 -> 189504 bytes Adam/ABlkDev/ADskA.HC | 2 +- Adam/ABlkDev/FileMgr.HC | 46 +- Adam/ADefine.HC | 10 +- Adam/AExts.HC | 5 - Adam/ASnd.HC | 15 +- Adam/AutoComplete/ACTask.HC | 8 +- Adam/DolDoc/DocFile.HC | 15 +- Adam/DolDoc/DocFind.HC | 2 +- Adam/DolDoc/DocForm.HC | 10 +- Adam/DolDoc/DocGr.HC | 18 +- Adam/DolDoc/DocTerm.HC | 22 +- Adam/DolDoc/DocWidgetWiz.HC | 306 +-- Adam/God/GodSong.HC | 8 +- Adam/God/HSNotes.DD | 2 +- Adam/Gr/GrBitMap.HC | 54 + Adam/Gr/GrDC.HC | 6 +- Adam/Gr/MakeGr.HC | 1 + Adam/Gr/SpriteBitMap.HC | 15 +- Adam/MakeAdam.HC | 2 +- Adam/Opt/Boot/BootDVDIns.HC | 3 +- Adam/Opt/Boot/BootHDIns.HC | 2 +- Adam/Opt/Boot/BootMHDIns.HC | 2 +- Adam/Opt/Boot/DskISORedSea.HC | 10 +- Adam/Opt/Utils/FileBMP.HC | 51 +- Adam/Opt/Utils/Find.HC | 14 +- Adam/Opt/Utils/MakeUtils.HC | 1 - Adam/Opt/Utils/MemRep.HC | 4 + Adam/Opt/Utils/StrUtils.HC | 2 +- Adam/Opt/Utils/TOS.HC | 36 +- Adam/Snd/SndFile.HC | 15 +- Adam/Snd/SndMusic.HC | 9 +- Adam/Win.HC | 3 +- Adam/WinMgr.HC | 55 +- Apps/Budget/BgtEntry.HC | 10 +- Apps/Budget/Budget.HC | 8 +- Apps/GrModels/BallGen.HC | 6 +- Apps/GrModels/ManGen.HC | 56 +- Apps/Psalmody/Help.DD | 11 - Apps/Psalmody/JukePuppet.HC | 2 +- Compiler/Asm.HC | 6 +- Compiler/CMain.HC | 10 +- Compiler/CMisc.HC | 15 +- Compiler/Compiler.BIN | Bin 192920 -> 193085 bytes Compiler/Compiler.MAP | 155 +- Compiler/CompilerA.HH | 2 +- Compiler/CompilerB.HH | 1 + Compiler/Lex.HC | 30 +- Compiler/OpCodes.DD | 2 +- Compiler/PrsVar.HC | 40 +- Demo/AcctExample/HomeKeyPlugIns.HC | 92 +- Demo/AcctExample/HomeSys.HC | 2 +- Demo/AcctExample/HomeWrappers.HC | 2 +- Demo/AcctExample/PersonalMenu.DD | Bin 69145 -> 65937 bytes Demo/AcctExample/PersonalNotes.DD | 97 +- Demo/AcctExample/Registry.HC | 14 +- Demo/AcctExample/TOS/MakeTOS.HC | 5 - Demo/AcctExample/TOS/TOSCfg.HC | 12 +- Demo/AcctExample/TOS/TOSDistro.HC | 375 +--- Demo/AcctExample/TOS/TOSExt.HC | 128 +- Demo/AcctExample/TOS/TOSMisc.HC | 179 +- Demo/DolDoc/FileRead.HC | 4 +- Demo/DolDoc/Form.HC | 22 +- Demo/Dsk/DataBase.HC | 6 +- Demo/Games/Stadium/StadiumBG.GR | Bin 4670 -> 4686 bytes Demo/Games/TreeCheckers.HC | 2 +- Demo/Graphics/FontEd.HC | 2 +- Demo/ToHtmlToTXTDemo/DemoInPage.DD | 192 +- Demo/ToHtmlToTXTDemo/HtmlGen.HC | 5 - Demo/WebLogDemo/WebLogRep.HC | 121 +- Demo/WebLogDemo/WebLogScramble.HC | 4 +- Doc/Asm.DD | 2 +- Doc/Boot.DD | Bin 5447 -> 5433 bytes Doc/Charter.DD | 10 +- Doc/Credits.DD | 4 +- Doc/Demands.DD | 4 +- Doc/DolDocOverview.DD | 6 +- Doc/FAQ.DD | 4 +- Doc/Features.DD | 2 +- Doc/FileMgr.DD | 3 - Doc/FileMgrPullDown.DD | 1 - Doc/Glossary.DD | 2 +- Doc/HelpIndex.DD | Bin 7048 -> 7005 bytes Doc/HolyC.DD | 4 +- Doc/Install.DD | 2 +- Doc/MemOverview.DD | 6 +- Doc/Print.DD | 6 +- Doc/RedSea.DD | 4 +- Doc/Requirements.DD | 2 +- Doc/StdTempleOSPC.DD | 4 +- Doc/Tips.DD | 6 +- Doc/Welcome.DD | 2 +- Doc/WhyNotMore.DD | 2 +- Doc/Widget.DD | 2 +- Kernel/BlkDev/DskCDDVD.HC | 16 +- Kernel/BlkDev/DskClus.HC | 6 - Kernel/BlkDev/DskCopy.HC | 11 +- Kernel/BlkDev/DskDirA.HC | 3 - Kernel/BlkDev/DskDirB.HC | 8 +- Kernel/BlkDev/DskDrv.HC | 1 - Kernel/BlkDev/DskFile.HC | 15 +- Kernel/BlkDev/DskFind.HC | 11 - Kernel/BlkDev/DskFmt.HC | 3 - Kernel/BlkDev/DskStrB.HC | 12 +- Kernel/BlkDev/FileSysFAT.HC | 10 +- Kernel/BlkDev/FileSysRedSea.HC | 10 +- Kernel/BlkDev/MakeBlkDev.HC | 1 - Kernel/FunSeg.HC | 54 +- Kernel/KDefine.HC | 2 +- Kernel/KExts.HC | 2 - Kernel/KLoad.HC | 4 +- Kernel/KMain.HC | 7 +- Kernel/KMisc.HC | 2 +- Kernel/KTask.HC | 2 +- Kernel/Kernel.MAP | 3255 ++++++++++++++-------------- Kernel/Kernel.PRJ | 2 +- Kernel/KernelA.HH | 174 +- Kernel/KernelC.HH | 5 +- Kernel/MultiProc.HC | 2 +- Kernel/StrPrint.HC | 4 +- Linux/TOSZ.CPP | 776 ++++++- Misc/DoDistro.HC | 7 +- Misc/Tour/TourB.IN | 3 +- StartOS.HC | 2 +- 124 files changed, 3453 insertions(+), 3407 deletions(-) diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C index 7d9c5c787ab980c49304d07870cbdd6114e7ce0c..ba5aeff7149e85c0039f85224c0a08025bf1048f 100644 GIT binary patch delta 49590 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 delta 51997 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 diff --git a/Adam/ABlkDev/ADskA.HC b/Adam/ABlkDev/ADskA.HC index d2f0048..ef0b454 100644 --- a/Adam/ABlkDev/ADskA.HC +++ b/Adam/ABlkDev/ADskA.HC @@ -226,7 +226,7 @@ U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=I64_MIN) DirNew(dv,cur_dir,&de,FALSE); } } else - PrintErr("File not found.\n"); + PrintErr("File not found: \"%s\".\n",filename); Free(cur_dir); } public U0 Touch(U8 *files_find_mask="*",U8 *attr="+?", diff --git a/Adam/ABlkDev/FileMgr.HC b/Adam/ABlkDev/FileMgr.HC index 715b419..e4b276d 100644 --- a/Adam/ABlkDev/FileMgr.HC +++ b/Adam/ABlkDev/FileMgr.HC @@ -141,6 +141,9 @@ CDirEntry *FMRebuildDocDrv(U8 drv_let,CDoc *doc,CDirEntry **_head,Bool init) return tmpde; } +#define DEF2_PROCESSED 1 +#define DEF2_NOT_INITIALIZED 2 + U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode) { CDrv *dv; @@ -222,7 +225,7 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode) tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE); else { tmpde=FMRebuildDocDrv(Drv2Let(dv),doc,_head,FALSE); - tmpde->flags|=DEF_NOT_INITIALIZED; + tmpde->user_data2|=DEF2_NOT_INITIALIZED; } } else if (dv->fs_type==FSt_REDSEA || dv->fs_type==FSt_FAT32) FMRebuildDocDrv(Drv2Let(dv),doc,_head,TRUE); @@ -388,11 +391,10 @@ U0 FMFmtDrv(CDoc *doc) Free(st); } -U0 FMMakeISO(CDoc *doc,I64 type) +U0 FMMakeISO(CDoc *doc) { CDocEntry *doc_ce=doc->cur_entry; CDirEntry *tmpde; - U8 *st; if (doc_ce->type_u8==DOCT_TREE || doc_ce->type_u8==DOCT_MENU_VAL) tmpde=doc_ce->user_data; else @@ -402,19 +404,7 @@ U0 FMMakeISO(CDoc *doc,I64 type) tmpde=tmpde->parent; if (tmpde && *tmpde->full_name) { Silent; - switch (type) { - case FSt_REDSEA: - RedSeaISO(,tmpde->full_name); - break; - case FSt_ISO9660: - if (tmpde->full_name[StrLen(tmpde->full_name)-1]=='/') - st=MStrPrint("%s*",tmpde->full_name); - else - st=MStrPrint("%s/*",tmpde->full_name); - ISO9660ISO(,st); - Free(st); - break; - } + RedSeaISO(,tmpde->full_name); Silent(OFF); } } @@ -455,18 +445,18 @@ U0 FMCopy(CDoc *doc) while (doc_e!=doc2) { if (doc_e->type_u8==DOCT_MENU_VAL) { tmpde=doc_e->user_data; - tmpde->flags|=DEF_PROCESSED; + tmpde->user_data2|=DEF2_PROCESSED; tmpde2=tmpde->parent; - if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) { + if (!tmpde2 || !(tmpde2->user_data2&DEF2_PROCESSED)) { Silent; Copy(tmpde->full_name,tmpde1->full_name); Silent(OFF); } } else if (doc_e->type_u8==DOCT_TREE) { tmpde=doc_e->user_data; - tmpde->flags|=DEF_PROCESSED; + tmpde->user_data2|=DEF2_PROCESSED; tmpde2=tmpde->parent; - if (!tmpde2 || !(tmpde2->flags&DEF_PROCESSED)) { + if (!tmpde2 || !(tmpde2->user_data2&DEF2_PROCESSED)) { Silent; if (*tmpde1->name) st=MStrPrint("%s/%s",tmpde1->full_name,tmpde->name); @@ -496,9 +486,8 @@ U0 FMCopy(CDoc *doc) #define FMR_MOUNT_REDSEA_ISO_C 9 #define FMR_UNMOUNT 10 #define FMR_MAKE_REDSEA_ISO_C 11 -#define FMR_MAKE_ISO9660 12 -#define FMR_BURN_ISO 13 -#define FMR_HELP 14 +#define FMR_BURN_ISO 12 +#define FMR_HELP 13 I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL) { @@ -518,8 +507,7 @@ I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL) "LE=FMR_MOUNT_REDSEA_ISO_C$$" "$$CM+LX,29,0$$$$BT,\"UNMOUNT \",LE=FMR_UNMOUNT$$" "$$CM+LX,1,3 $$$$BT,\"MAKE ISO.C (CD/DVD) FILE\",LE=FMR_MAKE_REDSEA_ISO_C$$" - "$$CM+LX,29,0$$$$BT,\"MAKE ISO (CD/DVD) FILE \",LE=FMR_MAKE_ISO9660$$" - "$$CM+LX,1,3 $$$$BT,\"BURN ISO (CD/DVD) FILE \",LE=FMR_BURN_ISO$$" + "$$CM+LX,29,0$$$$BT,\"BURN ISO (CD/DVD) FILE \",LE=FMR_BURN_ISO$$" "$$CM+LX,1,3 $$$$BT,\"HELP \",LE=FMR_HELP$$" "$$CM+LX,29,0$$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n"); if (footer) DocPrint(doc,"%s",footer); @@ -567,9 +555,6 @@ U0 FMRightClick() case FMR_MAKE_REDSEA_ISO_C: Msg(MSG_KEY_DOWN,'m',0); break; - case FMR_MAKE_ISO9660: - Msg(MSG_KEY_DOWN,'M',0); - break; case FMR_BURN_ISO: Msg(MSG_KEY_DOWN,'B',0); break; @@ -724,11 +709,8 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) case 'u': FMUnmount(doc); break; - case 'M': - FMMakeISO(doc,FSt_ISO9660); - break; case 'm': - FMMakeISO(doc,FSt_REDSEA); + FMMakeISO(doc); break; case 'B': FMBurnISO(doc); diff --git a/Adam/ADefine.HC b/Adam/ADefine.HC index 75d06f9..2517b47 100644 --- a/Adam/ADefine.HC +++ b/Adam/ADefine.HC @@ -8,19 +8,15 @@ U0 LoadDocDefines() DefinePrint("DD_TEMPLEOS_AGE","%0.1f", (Now-Str2Date("8/1/2003"))/ToF64(1<<32)/CDATE_YEAR_DAYS); - //This is cut and replaced when I generate a distro. - //See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOS/TOSDistro.HC,DD_TEMPLEOS_LOC"$. - DefinePrint("DD_KERNEL","%08X",bfh); bfh(I64)+=bfh->file_size-1; DefinePrint("DD_KERNEL_END","%08X",bfh); //$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$ - $TR-C,"LineRep"$ -$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,860"); -DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,136"); -$ID,-4$ +$TR,"LineRep"$ +$ID,2$DefinePrint("DD_TEMPLEOS_LOC","80,800"); +$ID,-2$ DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR); DefinePrint("DD_MP_VECT_END","%08X", MP_VECT_ADDR+COREAP_16BIT_INIT_END-COREAP_16BIT_INIT-1); diff --git a/Adam/AExts.HC b/Adam/AExts.HC index 5ca2d8e..7e63cf8 100644 --- a/Adam/AExts.HC +++ b/Adam/AExts.HC @@ -5,13 +5,10 @@ extern U0 ACFillIn(I64 n); extern U0 ACMan(I64 n,CTask *parent_task=NULL); extern I64 AdamFile(U8 *filename,Bool warn_ext=TRUE); extern Bool AutoComplete(Bool val=OFF); -extern I64 BMPWrite(U8 *filename,CDC *dc,I64 bits=4); extern U0 ClipDel(); extern CCtrl *CtrlFindUnique(CTask *haystack_task,I64 needle_type); extern Bool CtrlInside(CCtrl *c,I64 x,I64 y); extern U8 *DC2Sprite(CDC *tmpb); -extern U0 DocBMP(CDoc *doc=NULL,U8 *filename, - Bool dither_probability=FALSE,Bool use_ms_paint_palette=FALSE); extern U0 DocBinDel(CDoc *doc,CDocBin *b); extern U0 DocBinsValidate(CDoc *doc); extern U0 DocBottom(CDoc *doc=NULL); @@ -51,8 +48,6 @@ extern I64 ExeDoc(CDoc *doc,I64 ccf_flags=0); extern I64 FindWiz(); extern I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=I64_MIN,I64 hi=I64_MAX); extern Bool GrPlot0(CDC *dc,I64 x,I64 y); -extern I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, - U8 *fu_flags=NULL,U8 *_stage2_filename=NULL); extern CMenuEntry *MenuEntryFind(CMenu *haystack_menu,U8 *needle_full_name); extern CMenu *MenuFilePush(U8 *filename); extern U0 MenuPop(); diff --git a/Adam/ASnd.HC b/Adam/ASnd.HC index 6003517..fa6bf00 100644 --- a/Adam/ASnd.HC +++ b/Adam/ASnd.HC @@ -272,14 +272,17 @@ per second. It defaults to } ona=Note2Ona(note,octave); } else - ona=0; + ona=ONA_REST; if (words && (word=LstSub(i++,words)) && StrCmp(word," ")) "%s",word; - d=JIFFY_FREQ*music.note_len/music.tempo; - on_jiffies =d*music.stacatto_factor; - off_jiffies =d*(1.0-music.stacatto_factor); - + if (tie) { + on_jiffies =d; + off_jiffies =0; + } else { + on_jiffies =d*music.stacatto_factor; + off_jiffies =d*(1.0-music.stacatto_factor); + } timeout_val+=on_jiffies; timeout_val2=timeout_val+off_jiffies; @@ -288,7 +291,7 @@ per second. It defaults to SleepUntil(timeout_val); music.tM_correction+=on_jiffies-ToI64(on_jiffies); - if (!music.mute && !tie) + if (!music.mute) Snd; SleepUntil(timeout_val2); music.tM_correction+=off_jiffies-ToI64(off_jiffies); diff --git a/Adam/AutoComplete/ACTask.HC b/Adam/AutoComplete/ACTask.HC index 1c931eb..2e2a45b 100644 --- a/Adam/AutoComplete/ACTask.HC +++ b/Adam/AutoComplete/ACTask.HC @@ -258,13 +258,13 @@ U0 ACTask(I64) public Bool AutoComplete(Bool val=OFF) {//Turn AutoComplete OFF or ON. - Bool old_autocomplete=FALSE; + Bool old_val=FALSE; while (Bt(&ac.flags,ACf_INIT_IN_PROGRESS)) Sleep(10); if (val) { if (Bt(&sys_run_level,RLf_AUTO_COMPLETE)) { if (TaskValidate(ac.task)) - old_autocomplete=TRUE; + old_val=TRUE; else { ac.task=Spawn(&ACTask,NULL,"AutoComplete"); TaskWait(ac.task); @@ -274,10 +274,10 @@ public Bool AutoComplete(Bool val=OFF) } else { if (TaskValidate(ac.task)) { if (Bt(&sys_run_level,RLf_AUTO_COMPLETE)) - old_autocomplete=TRUE; + old_val=TRUE; Kill(ac.task); DeathWait(&ac.task); } } - return old_autocomplete; + return old_val; } diff --git a/Adam/DolDoc/DocFile.HC b/Adam/DolDoc/DocFile.HC index 9b9ad74..ae5bdc3 100644 --- a/Adam/DolDoc/DocFile.HC +++ b/Adam/DolDoc/DocFile.HC @@ -264,9 +264,9 @@ Bool DocCaptureUndo(CDoc *doc,Bool force=FALSE) doc->undo_cnt++; u->doc_flags=doc->flags; res=TRUE; + if (doc->flags&DOCF_AUTO_SAVE) + DocWrite(doc); } - if (doc->flags&DOCF_AUTO_SAVE) - DocWrite(doc); if (unlock) DocUnlock(doc); } @@ -296,8 +296,7 @@ U0 DocUndoRestore(CDoc *doc) DocUnlock(doc); } -#help_index "Graphics/Windows BMP Files;Graphics/GR Files;"\ - "DolDoc/Output;StdOut/DolDoc" +#help_index "Graphics/GR Files;DolDoc/Output;StdOut/DolDoc" public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) {//Output txt or graphic file to document. Bool res=FALSE; @@ -311,12 +310,6 @@ public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) DocDump(doc2,100000); DocDel(doc2); res=TRUE; - } else if (FilesFindMatch(filename,"*.BMP.Z")) { - DocBMP(doc,filename,,FALSE); - res=TRUE; - } else if (FilesFindMatch(filename,"*.BMP;*.bmp")) { - DocBMP(doc,filename,,TRUE); - res=TRUE; } else if (FilesFindMatch(filename,"*.GR*")) { DocGR(doc,filename); res=TRUE; @@ -326,7 +319,7 @@ public Bool DocType(CDoc *doc=NULL,U8 *filename,I64 trailing_new_lines=1) return res; } -#help_index "Graphics/Windows BMP Files;Graphics/GR Files;"\ +#help_index "Graphics/GR Files;"\ "File/Cmd Line (Typically);DolDoc/Cmd Line (Typically);"\ "StdOut;Cmd Line (Typically)" public Bool Type(U8 *filename,I64 trailing_new_lines=1) diff --git a/Adam/DolDoc/DocFind.HC b/Adam/DolDoc/DocFind.HC index 8a0ccbc..82427c4 100644 --- a/Adam/DolDoc/DocFind.HC +++ b/Adam/DolDoc/DocFind.HC @@ -572,7 +572,7 @@ Bool sel=TRUE,Bool match_case=TRUE,Bool whole_labels=FALSE) class CEdLineGoTo { - I64 line fmtstr "$$DA,A=\"Go to Line:%d\"$$"; + I64 line format "$$DA,A=\"Go to Line:%d\"$$"; }; U0 EdGoToLine(CDoc *doc) diff --git a/Adam/DolDoc/DocForm.HC b/Adam/DolDoc/DocForm.HC index a2efc45..ad15390 100644 --- a/Adam/DolDoc/DocForm.HC +++ b/Adam/DolDoc/DocForm.HC @@ -208,11 +208,11 @@ U0 DocDataScan(CDoc *doc,CDocEntry *doc_e) #help_index "DolDoc/Input;StdIn/DolDoc" public Bool DocForm(U8 *_d,U8 *class_name=lastclass, I64 dof_flags=0,U8 *header=NULL,U8 *footer=NULL) -{//User input. Supply a class name that has fmtstr definitions. +{//User input. Supply a class name that has format definitions. //See $LK,"::/Demo/DolDoc/Form.HC"$ and $LK,"::/Demo/LastClass.HC"$. CMemberLst *ml; CDocEntry *doc_e; - U8 *fmtstr; + U8 *format; CHashClass *tmpc,*tmpc2; CDoc *doc; Bool res=FALSE; @@ -227,8 +227,8 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass, doc->flags|=DOCF_SIZE_MIN; ml=tmpc->member_lst_and_root; while (ml) { - if ((fmtstr=MemberMetaData("fmtstr",ml)) && - (doc_e=DocPrint(doc,"%s",fmtstr))) { + if ((format=MemberMetaData("format",ml)) && + (doc_e=DocPrint(doc,"%s",format))) { tmpc2=ml->member_class; if ((doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_LST || doc_e->type_u8==DOCT_CHECK_BOX) && !tmpc2->ptr_stars_cnt) { @@ -254,7 +254,7 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass, doc_e->data=*doc_e->user_data(U8 **); } else doc_e->data=_d+ml->offset; - doc_e->my_fmt_data=MemberMetaData("fmtdata",ml); + doc_e->my_fmt_data=MemberMetaData("data",ml); DocDataFmt(doc,doc_e); } ml=ml->next; diff --git a/Adam/DolDoc/DocGr.HC b/Adam/DolDoc/DocGr.HC index 4b78d81..13cb46b 100644 --- a/Adam/DolDoc/DocGr.HC +++ b/Adam/DolDoc/DocGr.HC @@ -53,16 +53,16 @@ public I64 PopUpColorLighting(U8 *header=NULL) class CTransformForm { - F64 x_scale fmtstr "$$DA-TRM,A=\"X Scale :%12.6f\"$$\n"; - F64 y_scale fmtstr "$$DA-TRM,A=\"Y Scale :%12.6f\"$$\n"; - F64 z_scale fmtstr "$$DA-TRM,A=\"Z Scale :%12.6f\"$$\n"; - F64 é_z fmtstr "\nAngles are in degrees\n" + F64 x_scale format "$$DA-TRM,A=\"X Scale :%12.6f\"$$\n"; + F64 y_scale format "$$DA-TRM,A=\"Y Scale :%12.6f\"$$\n"; + F64 z_scale format "$$DA-TRM,A=\"Z Scale :%12.6f\"$$\n"; + F64 é_z format "\nAngles are in degrees\n" "$$DA-TRM,A=\"Z-Axis :%12.6f\"$$\n"; - F64 é_y fmtstr "$$DA-TRM,A=\"Y-Axis :%12.6f\"$$\n"; - F64 é_x fmtstr "$$DA-TRM,A=\"X-Axis :%12.6f\"$$\n"; - F64 x_offset fmtstr "\n$$DA-TRM,A=\"X Offset:%12.6f\"$$\n"; - F64 y_offset fmtstr "$$DA-TRM,A=\"Y Offset:%12.6f\"$$\n"; - F64 z_offset fmtstr "$$DA-TRM,A=\"Z Offset:%12.6f\"$$\n"; + F64 é_y format "$$DA-TRM,A=\"Y-Axis :%12.6f\"$$\n"; + F64 é_x format "$$DA-TRM,A=\"X-Axis :%12.6f\"$$\n"; + F64 x_offset format "\n$$DA-TRM,A=\"X Offset:%12.6f\"$$\n"; + F64 y_offset format "$$DA-TRM,A=\"Y Offset:%12.6f\"$$\n"; + F64 z_offset format "$$DA-TRM,A=\"Z Offset:%12.6f\"$$\n"; }; #help_index "Graphics/Input;Graphics/Math/3D Transformation" diff --git a/Adam/DolDoc/DocTerm.HC b/Adam/DolDoc/DocTerm.HC index a575285..dcdd07f 100644 --- a/Adam/DolDoc/DocTerm.HC +++ b/Adam/DolDoc/DocTerm.HC @@ -70,17 +70,17 @@ I64 PopUpTermRight(U8 *header) if (header) DocPrint(doc,"%s",header); DocPrint(doc,"\n\n" "TXT=%s\nDD =%s\nJIT=%s\nGR =%s" - "$$CM+LX,1,3 $$$$BT,\"INCLUDE JIT\",LE=RIGHT_INCLUDE$$" - "$$CM+LX,25,0$$$$BT,\"ADAM_INCLUDE JIT\",LE=RIGHT_AINCLUDE$$" - "$$CM+LX,1,3 $$$$BT,\"COPY \",LE=RIGHT_COPY$$" - "$$CM+LX,25,0$$$$BT,\"MOVE OR RENAME \",LE=RIGHT_MOVE$$" - "$$CM+LX,1,3 $$$$BT,\"DELETE \",LE=RIGHT_DELETE$$" - "$$CM+LX,25,0$$$$BT,\"TYPE TXT;GR\",LE=RIGHT_TYPE$$" - "$$CM+LX,1,3 $$$$BT,\"DOLDOC EDIT DD\",LE=RIGHT_ED$$" - "$$CM+LX,25,0$$$$BT,\"MOUNT ISO.C\",LE=RIGHT_MOUNT$$" - "$$CM+LX,1,3 $$$$BT,\"PLAIN TEXT EDIT TXT\",LE=RIGHT_PLAIN$$" - "$$CM+LX,25,0$$$$BT,\"INFILE IN\",LE=RIGHT_INFILE$$" - "$$CM+LX,1,3 $$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n", + "$$CM+LX,1,3 $$$$BT,\"Include JIT\",LE=RIGHT_INCLUDE$$" + "$$CM+LX,25,0$$$$BT,\"Adam Include JIT\",LE=RIGHT_AINCLUDE$$" + "$$CM+LX,1,3 $$$$BT,\"Copy \",LE=RIGHT_COPY$$" + "$$CM+LX,25,0$$$$BT,\"Move or Rename \",LE=RIGHT_MOVE$$" + "$$CM+LX,1,3 $$$$BT,\"Delete \",LE=RIGHT_DELETE$$" + "$$CM+LX,25,0$$$$BT,\"Type TXT;GR\",LE=RIGHT_TYPE$$" + "$$CM+LX,1,3 $$$$BT,\"DolDoc Edit DD\",LE=RIGHT_ED$$" + "$$CM+LX,25,0$$$$BT,\"Mount ISO.C\",LE=RIGHT_MOUNT$$" + "$$CM+LX,1,3 $$$$BT,\"Plain Text Edit TXT\",LE=RIGHT_PLAIN$$" + "$$CM+LX,25,0$$$$BT,\"Infile IN\",LE=RIGHT_INFILE$$" + "$$CM+LX,1,3 $$$$BT,\"Cancel \",LE=DOCM_CANCEL$$\n", FILEMASK_TXT,FILEMASK_DD,FILEMASK_JIT,FILEMASK_GR); i=PopUpMenu(doc); DocDel(doc); diff --git a/Adam/DolDoc/DocWidgetWiz.HC b/Adam/DolDoc/DocWidgetWiz.HC index b12095e..5976a7e 100644 --- a/Adam/DolDoc/DocWidgetWiz.HC +++ b/Adam/DolDoc/DocWidgetWiz.HC @@ -31,132 +31,132 @@ I64 PopUpLinkType(Bool include_anchor) class CEdFileLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] format "$$DA-P,A=\"File :%s\"$$\n"; I64 book; U8 aux[512]; I64 num; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdFileAnchorLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] format "$$DA-P,A=\"File :%s\"$$\n"; I64 book; - U8 aux[512] fmtstr "$$DA-P,A=\"Anchor Label :%s\"$$\n"; + U8 aux[512] format "$$DA-P,A=\"Anchor Label :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdFileFindLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] format "$$DA-P,A=\"File :%s\"$$\n"; I64 book; - U8 aux[512] fmtstr "$$DA-P,A=\"Str :%s\"$$\n"; - I64 num fmtstr "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 aux[512] format "$$DA-P,A=\"Str :%s\"$$\n"; + I64 num format "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n"; + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdFileLineLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] format "$$DA-P,A=\"File :%s\"$$\n"; I64 book; U8 aux[512]; - I64 num fmtstr "$$DA-TRM,A=\"Line Num :%04d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + I64 num format "$$DA-TRM,A=\"Line Num :%04d\"$$\n"; + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdManPageLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,A=\"Label :%s\"$$\n"; + U8 aux[512] format "$$DA-P,A=\"Label :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdAddrLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,A=\"Addr Exp :%s\"$$\n"; - I64 num fmtstr "$$DA-TRM,A=\"Bin Size :%04d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 aux[512] format "$$DA-P,A=\"Addr Exp :%s\"$$\n"; + I64 num format "$$DA-TRM,A=\"Bin Size :%04d\"$$\n"; + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdPlaceAnchor { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,A=\"Anchor Label :%s\"$$\n"; + U8 aux[512] format "$$DA-P,A=\"Anchor Label :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up, - quote fmtstr "$$CB,\"Quote\"$$\n", - hide fmtstr "$$CB,\"Hide\"$$\n"; + quote format "$$CB,\"Quote\"$$\n", + hide format "$$CB,\"Hide\"$$\n"; }; class CEdBibleLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; - I64 book fmtstr "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n"; - U8 aux[512] fmtstr "$$DA-P,A=\"Chapter Verse :%s\"$$\n"; + I64 book format "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n"; + U8 aux[512] format "$$DA-P,A=\"Chapter Verse :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdDefLink { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,A=\"Word :%s\"$$\n"; - I64 num fmtstr "$$DA-TRM,A=\"Def Num :%4d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 aux[512] format "$$DA-P,A=\"Word :%s\"$$\n"; + I64 num format "$$DA-TRM,A=\"Def Num :%4d\"$$\n"; + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; class CEdProject { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] format "$$DA-P,A=\"File :%s\"$$\n"; I64 book; U8 aux[512]; I64 num; - U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; - Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n", + U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; + Bool pop_up format "$$CB,\"PopUp\"$$\n", + quote format "$$CB,\"Quote\"$$\n", hide; }; @@ -434,14 +434,14 @@ U0 EdInsColor() class CEdPageSetting1 { - U8 val[512] fmtstr "$$DA-P,A=\"Setting Val:%s\"$$\n"; + U8 val[512] format "$$DA-P,A=\"Setting Val:%s\"$$\n"; Bool winrel; }; class CEdPageSetting2 { - U8 val[512] fmtstr "$$DA-P,A=\"Setting Val:%s\"$$\n"; - Bool winrel fmtstr "$$CB,\"Win Relative\"$$\n"; + U8 val[512] format "$$DA-P,A=\"Setting Val:%s\"$$\n"; + Bool winrel format "$$CB,\"Win Relative\"$$\n"; }; U0 EdInsPageSetting() @@ -508,21 +508,21 @@ I64 PopUpWidgetType() class CEdText { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; - Bool left_x fmtstr "$$CB,\"Left X\"$$\n", - center_x fmtstr "$$CB,\"Center X\"$$\n", - right_x fmtstr "$$CB,\"Right X\"$$\n", - margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", - blink fmtstr "$$CB,\"Blink\"$$\n", - invert fmtstr "$$CB,\"Invert\"$$\n", - underline fmtstr "$$CB,\"Underline\"$$\n", - tree fmtstr "$$CB,\"Tree\"$$\n", - collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; - U8 scroll_x [512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", - shift_x [512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n", - shift_y [512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n", - define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n", - html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; + Bool left_x format "$$CB,\"Left X\"$$\n", + center_x format "$$CB,\"Center X\"$$\n", + right_x format "$$CB,\"Right X\"$$\n", + margin_rel format "$$CB,\"Margin Rel X\"$$\n", + blink format "$$CB,\"Blink\"$$\n", + invert format "$$CB,\"Invert\"$$\n", + underline format "$$CB,\"Underline\"$$\n", + tree format "$$CB,\"Tree\"$$\n", + collapsed format "$$CB,\"Collapsed\"$$\n"; + U8 scroll_x [512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", + shift_x [512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n", + shift_y [512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n", + define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n", + html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; }; U0 EdInsText() @@ -566,8 +566,8 @@ U0 EdInsText() class CEdSong { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - song[512] fmtstr "$$DA-P,A=\"Song :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + song[512] format "$$DA-P,A=\"Song :%s\"$$\n"; }; U0 EdInsSong() @@ -580,7 +580,7 @@ U0 EdInsSong() class CEdHtmlCode { - U8 tag[512] fmtstr "$$DA-P,A=\"Html Code:%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Html Code:%s\"$$\n"; }; U0 EdInsHtml() @@ -593,22 +593,22 @@ U0 EdInsHtml() class CEdMacroMenu { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro :%s\"$$\n", - left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression :%s\"$$\n"; - Bool popup fmtstr "$$CB,\"PopUp\"$$\n", - left_is_in_str fmtstr "$$CB,\"Left is InStr\"$$\n", - left_x fmtstr "$$CB,\"Left X \"$$\n", - center_x fmtstr "$$CB,\"Center X \"$$\n", - right_x fmtstr "$$CB,\"Right X \"$$\n", - margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", - blink fmtstr "$$CB,\"Blink\"$$\n", - invert fmtstr "$$CB,\"Invert\"$$\n", - underline fmtstr "$$CB,\"Underline\"$$\n", - escape fmtstr "$$CB,\"Escape\"$$\n"; - U8 scroll_x[512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", - shift_x[512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n", - shift_y[512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + left_macro[512] format "$$DA-P,A=\"Left Click Macro :%s\"$$\n", + left_exp[512] format "$$DA-P,A=\"Left Click Expression :%s\"$$\n"; + Bool popup format "$$CB,\"PopUp\"$$\n", + left_is_in_str format "$$CB,\"Left is InStr\"$$\n", + left_x format "$$CB,\"Left X \"$$\n", + center_x format "$$CB,\"Center X \"$$\n", + right_x format "$$CB,\"Right X \"$$\n", + margin_rel format "$$CB,\"Margin Rel X\"$$\n", + blink format "$$CB,\"Blink\"$$\n", + invert format "$$CB,\"Invert\"$$\n", + underline format "$$CB,\"Underline\"$$\n", + escape format "$$CB,\"Escape\"$$\n"; + U8 scroll_x[512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", + shift_x[512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n", + shift_y[512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n"; }; U0 EdInsMacroMenu(Bool is_macro) @@ -663,17 +663,17 @@ U0 EdInsMacroMenu(Bool is_macro) class CEdBttn { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; - Bool popup fmtstr "$$CB,\"PopUp\"$$\n", - left_x fmtstr "$$CB,\"Left X \"$$\n", - center_x fmtstr "$$CB,\"Center X \"$$\n", - right_x fmtstr "$$CB,\"Right X \"$$\n", - margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", - escape fmtstr "$$CB,\"Escape\"$$\n"; - U8 left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro:%s\"$$\n"; - Bool left_is_in_str fmtstr "$$CB,\"Left is InStr\"$$\n"; - U8 left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression:%s\"$$\n"; - Bool quote fmtstr "$$CB,\"Quote\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; + Bool popup format "$$CB,\"PopUp\"$$\n", + left_x format "$$CB,\"Left X \"$$\n", + center_x format "$$CB,\"Center X \"$$\n", + right_x format "$$CB,\"Right X \"$$\n", + margin_rel format "$$CB,\"Margin Rel X\"$$\n", + escape format "$$CB,\"Escape\"$$\n"; + U8 left_macro[512] format "$$DA-P,A=\"Left Click Macro:%s\"$$\n"; + Bool left_is_in_str format "$$CB,\"Left is InStr\"$$\n"; + U8 left_exp[512] format "$$DA-P,A=\"Left Click Expression:%s\"$$\n"; + Bool quote format "$$CB,\"Quote\"$$\n"; }; U0 EdInsBttn() @@ -723,17 +723,17 @@ U0 EdInsBttn() class CEdCursorMovement { - U8 left_exp[512] fmtstr "$$DA-P,A=\"X Expression (LE):%s\"$$\n", - right_exp[512] fmtstr "$$DA-P,A=\"Y Expression (RE):%s\"$$\n"; - Bool left_x fmtstr "$$CB,\"Left X \"$$\n", - center_x fmtstr "$$CB,\"Center X \"$$\n", - right_x fmtstr "$$CB,\"Right X \"$$\n", - margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", - top_y fmtstr "$$CB,\"Top Y \"$$\n", - center_y fmtstr "$$CB,\"Center Y \"$$\n", - bottom_y fmtstr "$$CB,\"Bottom Y \"$$\n", - page_rel fmtstr "$$CB,\"Page Rel Y\"$$\n", - quote fmtstr "$$CB,\"Quote\"$$\n"; + U8 left_exp[512] format "$$DA-P,A=\"X Expression (LE):%s\"$$\n", + right_exp[512] format "$$DA-P,A=\"Y Expression (RE):%s\"$$\n"; + Bool left_x format "$$CB,\"Left X \"$$\n", + center_x format "$$CB,\"Center X \"$$\n", + right_x format "$$CB,\"Right X \"$$\n", + margin_rel format "$$CB,\"Margin Rel X\"$$\n", + top_y format "$$CB,\"Top Y \"$$\n", + center_y format "$$CB,\"Center Y \"$$\n", + bottom_y format "$$CB,\"Bottom Y \"$$\n", + page_rel format "$$CB,\"Page Rel Y\"$$\n", + quote format "$$CB,\"Quote\"$$\n"; }; U0 EdInsCursorMovement() @@ -768,22 +768,22 @@ U0 EdInsCursorMovement() class CEdDataNum { - U8 fmt_str[512] fmtstr "$$DA-P,A=\"Format Str:%s\"$$\n"; + U8 fmt_str[512] format "$$DA-P,A=\"Format Str:%s\"$$\n"; I64 len; - Bool term fmtstr "$$CB,\"Form Field Terminator\"$$\n", + Bool term format "$$CB,\"Form Field Terminator\"$$\n", remalloc, - refresh fmtstr "$$CB,\"Refresh Data\"$$\n", - update fmtstr "$$CB,\"Update Data\"$$\n"; + refresh format "$$CB,\"Refresh Data\"$$\n", + update format "$$CB,\"Update Data\"$$\n"; }; class CEdDataStr { - U8 fmt_str[512] fmtstr "$$DA-P,A=\"Format Str:%s\"$$\n"; - I64 len fmtstr "$$DA,A=\"Length:%d\"$$\n"; - Bool term fmtstr "$$CB,\"Zero Terminator\"$$\n", - remalloc fmtstr "$$CB,\"Remalloc for Unlimited Length\"$$\n", - refresh fmtstr "$$CB,\"Refresh Data\"$$\n", - update fmtstr "$$CB,\"Update Data\"$$\n"; + U8 fmt_str[512] format "$$DA-P,A=\"Format Str:%s\"$$\n"; + I64 len format "$$DA,A=\"Length:%d\"$$\n"; + Bool term format "$$CB,\"Zero Terminator\"$$\n", + remalloc format "$$CB,\"Remalloc for Unlimited Length\"$$\n", + refresh format "$$CB,\"Refresh Data\"$$\n", + update format "$$CB,\"Update Data\"$$\n"; }; U0 EdInsData() @@ -834,9 +834,9 @@ U0 EdInsData() class CEdCheckBox { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; - Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; - I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; + Bool refresh format "$$CB,\"Refresh Data\"$$\n"; + I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; }; U0 EdInsCheckBox() @@ -861,10 +861,10 @@ U0 EdInsCheckBox() class CEdLst { - U8 tag[512] fmtstr "$$DA-P,A=\"Dft Sel :%s\"$$\n", - define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n"; - Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; - I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Dft Sel :%s\"$$\n", + define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n"; + Bool refresh format "$$CB,\"Refresh Data\"$$\n"; + I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; }; U0 EdInsLst() @@ -897,10 +897,10 @@ U0 EdInsLst() class CEdHexEd { - I64 cnt fmtstr "$$DA,A=\"Count:%d\"$$\n", - cols fmtstr "$$DA,A=\"Columns:%d\"$$\n"; - Bool zero fmtstr "$$CB,\"Zero Based\"$$\n", - refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; + I64 cnt format "$$DA,A=\"Count:%d\"$$\n", + cols format "$$DA,A=\"Columns:%d\"$$\n"; + Bool zero format "$$CB,\"Zero Based\"$$\n", + refresh format "$$CB,\"Refresh Data\"$$\n"; }; U0 EdInsHexEd() @@ -921,11 +921,11 @@ U0 EdInsHexEd() class CEdBin { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; - I64 bin_num fmtstr "$$DA,A=\"Bin Num:%d\"$$\n"; - U8 bin_ptr_link_file[512] fmtstr "$$DA-P,A=\"File:%s\"$$\n"; - I64 bin_ptr_link_bin_num fmtstr "$$DA,A=\"File Bin Num:%d\"$$\n"; - U8 bin_ptr_link_tag[512] fmtstr "$$DA-P,A=\"File Bin Tag:%s\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; + I64 bin_num format "$$DA,A=\"Bin Num:%d\"$$\n"; + U8 bin_ptr_link_file[512] format "$$DA-P,A=\"File:%s\"$$\n"; + I64 bin_ptr_link_bin_num format "$$DA,A=\"File Bin Num:%d\"$$\n"; + U8 bin_ptr_link_tag[512] format "$$DA-P,A=\"File Bin Tag:%s\"$$\n"; }; U0 EdInsBin(I64 bin_num,I64 type) @@ -958,9 +958,9 @@ U0 EdInsBin(I64 bin_num,I64 type) class CEdTree { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; - I64 indent fmtstr "$$DA,A=\"Indention:%d\"$$\n"; - Bool collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; + I64 indent format "$$DA,A=\"Indention:%d\"$$\n"; + Bool collapsed format "$$CB,\"Collapsed\"$$\n"; }; U0 EdInsTree() @@ -1075,18 +1075,18 @@ I64 PopUpSpriteType() class CEdMacroSprite { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - exp[512] fmtstr "$$DA-P,A=\"Macro :%s\"$$\n"; - Bool escape fmtstr "$$CB,\"Escape\"$$\n", - popup fmtstr "$$CB,\"PopUp\"$$\n", - is_in_str fmtstr "$$CB,\"InStr\"$$\n"; + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + exp[512] format "$$DA-P,A=\"Macro :%s\"$$\n"; + Bool escape format "$$CB,\"Escape\"$$\n", + popup format "$$CB,\"PopUp\"$$\n", + is_in_str format "$$CB,\"InStr\"$$\n"; }; class CEdMenuSprite { - U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", - exp[512] fmtstr "$$DA-P,A=\"Expression :%s\"$$\n"; - Bool escape fmtstr "$$CB,\"Escape\"$$\n", + U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", + exp[512] format "$$DA-P,A=\"Expression :%s\"$$\n"; + Bool escape format "$$CB,\"Escape\"$$\n", popup, is_in_str; }; diff --git a/Adam/God/GodSong.HC b/Adam/God/GodSong.HC index e97a040..ebf2524 100644 --- a/Adam/God/GodSong.HC +++ b/Adam/God/GodSong.HC @@ -4,10 +4,10 @@ DefineLstLoad("ST_RHYTHM_COMPLEXITY","Simple\0Normal\0Complex\0"); class CMakeSongSettings { - I64 complexity fmtstr "$$LS,D=\"ST_RHYTHM_COMPLEXITY\"$$\n"; - Bool rests fmtstr "$$CB,\"Rests\"$$\n"; - Bool six_eight fmtstr "$$CB,\"Six Eight\"$$\n"; - I64 octave fmtstr "$$DA-TRM,A=\"Octave:%d\"$$\n"; + I64 complexity format "$$LS,D=\"ST_RHYTHM_COMPLEXITY\"$$\n"; + Bool rests format "$$CB,\"Rests\"$$\n"; + Bool six_eight format "$$CB,\"Six Eight\"$$\n"; + I64 octave format "$$DA-TRM,A=\"Octave:%d\"$$\n"; I64 octave_state; }; diff --git a/Adam/God/HSNotes.DD b/Adam/God/HSNotes.DD index f08a388..9d0dae0 100644 --- a/Adam/God/HSNotes.DD +++ b/Adam/God/HSNotes.DD @@ -8,7 +8,7 @@ There's something obviously different about people in the Bible compared to peop You can't tell if God's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation. $LK,"1 Corinthians,11:27",A="BF:1 Corinthians,11:27"$ When you pick a greeting card for someone, that is love effort. If you expect God to put effort toward you, you must put effort toward Him. God said, "honest measures" applies between your offering of love and His response, like a fair barter. You get out of prayer what you put into it. God wants praise, hymns, or whatever you think He might want. Try and see, like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$, $LK,"Ephesians,5:10",A="BF:Ephesians,5:10"$ God told Cain his offering was not good and told him to try again. Cain really loved God! Can you imagine being so heart-broken? -Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses comics for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart, mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ Solomon wrote a thousand songs. $LK,"1 Kings,4:30-32",A="BF:1 Kings,4:30-32"$ +Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses comics for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart, mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ Solomon wrote a thousand songs. $LK,"1 Kings,4:30-32",A="BF:1 Kings,4:30-32"$ This is funny -- $LK,"Acts,2:1-13",A="BF:Acts,2:1-13"$ -- they didn't bother to record anything the Holy Spirit said. The Holy Spirit is supposed to be a really good gift. $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Just remember, "Boys are made of snakes and snails and puppy-dog tails." diff --git a/Adam/Gr/GrBitMap.HC b/Adam/Gr/GrBitMap.HC index d763127..b43bc5d 100644 --- a/Adam/Gr/GrBitMap.HC +++ b/Adam/Gr/GrBitMap.HC @@ -634,6 +634,60 @@ public CDC *DCExt(CDC *dc=gr.dc,I64 x1,I64 y1,I64 x2,I64 y2, return res; } +public CDC *DCDiff(CDC *base,CDC *update) +{//Trim to win of what has chged. + I64 i,x1=0,y1=0,x2=update->width-1,y2=update->height-1; //inclusive + U32 *ptr_base,*ptr_update; + CDC *res; + ptr_base =base->body; + ptr_update=update->body; + while (y1<=y2) { + i=update->width>>2; + while (i--) + if (*ptr_base++!=*ptr_update++) + goto df_y2; + i=update->width&3; + while (i--) + if (*ptr_base(U8 *)++!=*ptr_update(U8 *)++) + goto df_y2; + y1++; + } + return NULL; +df_y2: + ptr_base =base->body +base->width_internal *base->height; + ptr_update=update->body+update->width_internal*update->height; + while (y1width>>2; + while (i--) + if (*--ptr_base!=*--ptr_update) + goto df_x1; + i=update->width&3; + while (i--) + if (*--ptr_base(U8 *)!=*--ptr_update(U8 *)) + goto df_x1; + y2--; + } +df_x1: + while (x1x0=x1; + res->y0=y1; + return res; +} + #help_index "Graphics/Char;Char/Graphics" public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) diff --git a/Adam/Gr/GrDC.HC b/Adam/Gr/GrDC.HC index b01ba4c..0238d6e 100644 --- a/Adam/Gr/GrDC.HC +++ b/Adam/Gr/GrDC.HC @@ -376,6 +376,10 @@ public CDC *DCLoad(U8 *src,I64 *_size=NULL,CTask *task=NULL) #help_index "Graphics/GR Files" #help_file "::/Doc/GRFiles" #help_index "Graphics/Device Contexts;Graphics/GR Files" + +#define GR_FILE_MAX (offset(CDC.end)-offset(CDC.start)+\ + COLORS_NUM*sizeof(CBGR48)+sizeof(CArcCtrl)+GR_WIDTH*GR_HEIGHT) + public I64 GRWrite(U8 *filename,CDC *dc,I64 dcsf_flags=DCSF_COMPRESSED) {//TempleOS GR File. I64 size; @@ -414,7 +418,7 @@ public CDC *DCScrnCapture(Bool include_zoom=TRUE,CTask *task=NULL) {//Capture scrn to a device context. CDC *dc; U8 *dst; - Refresh(2,TRUE); + Refresh(0,FALSE); if (include_zoom) dc=DCCopy(gr.scrn_image,task); else diff --git a/Adam/Gr/MakeGr.HC b/Adam/Gr/MakeGr.HC index f0008c9..4437052 100644 --- a/Adam/Gr/MakeGr.HC +++ b/Adam/Gr/MakeGr.HC @@ -14,6 +14,7 @@ Cd(__DIR__);; #include "GrBitMap" #include "GrPrimatives" #include "GrComposites" +#include "GrMV" #define SPE_ABORT (-1) #define SPE_EXIT 0 diff --git a/Adam/Gr/SpriteBitMap.HC b/Adam/Gr/SpriteBitMap.HC index 4e8f169..4185842 100644 --- a/Adam/Gr/SpriteBitMap.HC +++ b/Adam/Gr/SpriteBitMap.HC @@ -26,8 +26,7 @@ #define SPBM_ADD_OUTLINE 23 #define SPBM_ETCH 24 #define SPBM_UNDO 25 -#define SPBM_SAVE_BMP 26 -#define SPBM_SAVE_GRA 27 +#define SPBM_SAVE_GR 26 U0 GrInit4() { @@ -36,7 +35,7 @@ U0 GrInit4() "Rect\0Circle\0Text\0Text Box\0Text Diamond\0Flood Fill\0" "Flood Fill Not Color\0PolyLine\0PolyPoint\0Copy\0Delete\0Paste\0" "Paste Transparent\0Find and Replace\0Trim to Extents\0Add Outline\0" - "Etch\0Undo\0Save BMP\0Save GR\0"); + "Etch\0Undo\0Save GR\0"); } GrInit4; @@ -79,8 +78,7 @@ I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width) "$$MU-UL,\"Delete to Clip\",LE=SPBM_DELETE$$\n" "$$MU-UL,\"Paste Clip\",LE=SPBM_PASTE$$\n" "$$MU-UL,\"Paste Transparent Clip\",LE=SPBM_PASTE_TRANSPARENT$$\n" - "\n$$MU-UL,\"Save BMP File\",LE=SPBM_SAVE_BMP$$\n" - "$$MU-UL,\"Save GR File\",LE=SPBM_SAVE_GRA$$\n" + "\n$$MU-UL,\"Save GR File\",LE=SPBM_SAVE_GR$$\n" "\n$$MU-UL,\"Undo\",LE=SPBM_UNDO$$\n" "\n$$PURPLE$$$$MU-UL,\"+] Sprite Main Menu\",LE=SPBM_MAIN_MENU$$$$LTBLUE$$\n" "$$MU-UL,\"Exit Sprite\",LE=SPBM_EXIT$$\n" @@ -293,12 +291,7 @@ bm_menu: GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); } goto bm_menu; - case SPBM_SAVE_BMP: - *filename.name=0; - if (DocForm(&filename) && *filename.name) - BMPWrite(filename.name,img); - goto bm_menu; - case SPBM_SAVE_GRA: + case SPBM_SAVE_GR: *filename.name=0; if (DocForm(&filename) && *filename.name) GRWrite(filename.name,img,DCSF_COMPRESSED|DCSF_PALETTE_GET); diff --git a/Adam/MakeAdam.HC b/Adam/MakeAdam.HC index 8b5c2f7..2d5ca21 100644 --- a/Adam/MakeAdam.HC +++ b/Adam/MakeAdam.HC @@ -6,7 +6,7 @@ Cd(__DIR__);; #include "TaskRep" #include "AMathODE" #include "Gr/MakeGr" -#include "Snd/MakeSnd" +#include "ASnd" #include "ABlkDev/MakeABlkDev" #include "Menu" #include "Win" diff --git a/Adam/Opt/Boot/BootDVDIns.HC b/Adam/Opt/Boot/BootDVDIns.HC index 9666d6d..068e250 100644 --- a/Adam/Opt/Boot/BootDVDIns.HC +++ b/Adam/Opt/Boot/BootDVDIns.HC @@ -1,9 +1,8 @@ -//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. +//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$. //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$ #include "BootDVD" #include "DskISORedSea" -#include "DskISO9660" #help_index "Install" diff --git a/Adam/Opt/Boot/BootHDIns.HC b/Adam/Opt/Boot/BootHDIns.HC index 603ce06..66da06a 100644 --- a/Adam/Opt/Boot/BootHDIns.HC +++ b/Adam/Opt/Boot/BootHDIns.HC @@ -1,4 +1,4 @@ -//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. +//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$. //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$ #include "BootHD" diff --git a/Adam/Opt/Boot/BootMHDIns.HC b/Adam/Opt/Boot/BootMHDIns.HC index d50cdd4..4654557 100644 --- a/Adam/Opt/Boot/BootMHDIns.HC +++ b/Adam/Opt/Boot/BootMHDIns.HC @@ -1,4 +1,4 @@ -//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. +//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$. //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$ #include "BootMHD" diff --git a/Adam/Opt/Boot/DskISORedSea.HC b/Adam/Opt/Boot/DskISORedSea.HC index 0255d60..7355747 100644 --- a/Adam/Opt/Boot/DskISORedSea.HC +++ b/Adam/Opt/Boot/DskISORedSea.HC @@ -48,7 +48,7 @@ U0 RedSeaISO9660Stage1(U8 *iso_filename,U8 *stage2_filename) U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let) { CDrv *dv=Let2Drv(drv_let); - CISO1PriDesc *iso_pri=CAlloc(DVD_BLK_SIZE), + CISOPriDesc *iso_pri=CAlloc(DVD_BLK_SIZE), *iso_boot=CAlloc(DVD_BLK_SIZE), *iso_sup=CAlloc(DVD_BLK_SIZE), *iso_term=CAlloc(DVD_BLK_SIZE); @@ -63,7 +63,7 @@ U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let) for (i=0;ibd->drv_offset;i+=4) FBlkWrite(out_file,zero_buf,i,4); - iso_pri->type=ISO1T_PRI_VOL_DESC; + iso_pri->type=ISOT_PRI_VOL_DESC; StrCpy(iso_pri->id,"CD001"); iso_pri->version=1; FillU16Palindrome(&iso_pri->vol_set_size,1); @@ -75,15 +75,15 @@ U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let) StrCpy(iso_pri->publisher_id,"TempleOS RedSea"); MemCpy(iso_sup,iso_pri,DVD_BLK_SIZE); - iso_sup->type=ISO1T_SUPPLEMENTARY_DESC; + iso_sup->type=ISOT_SUPPLEMENTARY_DESC; - iso_boot->type=ISO1T_BOOT_RECORD; + iso_boot->type=ISOT_BOOT_RECORD; StrCpy(iso_boot->id,"CD001"); iso_boot->version=1; StrCpy(iso_boot(U8 *)+7,"EL TORITO SPECIFICATION"); FBlkWrite(out_file,iso_pri,16<<2,4); - iso_term->type=ISO1T_TERMINATOR; + iso_term->type=ISOT_TERMINATOR; StrCpy(iso_term->id,"CD001"); iso_term->version=1; diff --git a/Adam/Opt/Utils/FileBMP.HC b/Adam/Opt/Utils/FileBMP.HC index f99c306..473c6f5 100644 --- a/Adam/Opt/Utils/FileBMP.HC +++ b/Adam/Opt/Utils/FileBMP.HC @@ -35,13 +35,13 @@ public CFileBMP *BMP4To(CDC *dc) CFileBMP *bmp =CAlloc(size); bmp->type ='BM'; bmp->planes =1; - bmp->file_size =size; + bmp->file_size=size; bmp->data_offset=sizeof(CFileBMP); bmp->header_size=offset(CFileBMP.end)-offset(CFileBMP.header_size); bmp->width =dc->width; bmp->height =dc->height; bmp->bit_cnt =4; - bmp->image_size =dc->width*dc->height>>1; + bmp->image_size=dc->width*dc->height>>1; GrPaletteGet(palette); #assert COLORS_NUM==BMP_COLORS_NUM for (i=0;itype ='BM'; bmp->planes =1; - bmp->file_size =size; + bmp->file_size=size; bmp->data_offset=offset(CFileBMP.end); bmp->header_size=offset(CFileBMP.end)-offset(CFileBMP.header_size); bmp->width =dc->width; bmp->height =dc->height; bmp->bit_cnt =32; - bmp->image_size =dc->width*dc->height<<2; + bmp->image_size=dc->width*dc->height<<2; bgr=bmp(U8 *)+bmp->data_offset; for (y=dc->height-1;y>=0;y--) { @@ -341,3 +341,46 @@ public I64 BMPScrnCapture(U8 *filename,I64 bits=4,Bool include_zoom=TRUE) DCDel(dc); return size; } + +public I64 GR2BMPLst(U8 *files_find_mask,U8 *fu_flags=NULL, + U8 *out_print_fmt="~:/Tmp/VID%05d.BMP.Z",F64 fps=30000.0/1001) +{/*Cvt movie from GR lst to BMP lst +"+d" will delete GRLst files. +*/ + I64 res=0,fuf_flags=0; + CDirEntry *tmpde,*tmpde1; + CDC *dc,*base=DCNew(GR_WIDTH,GR_HEIGHT); + U8 *st,*last_st; + CDate cdt=I64_MIN; + Bool old_silent; + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+f+F"); + ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND); + last_st=MStrPrint(out_print_fmt,0); + progress1_max=LinkedLstCnt(tmpde); + while (tmpde) { + dc=GRRead(tmpde->full_name); + GrBlot(base,dc->x0,dc->y0,dc); + if (cdt==I64_MIN) + cdt=dc->cdt; + while (cdt<=dc->cdt) { + st=MStrPrint(out_print_fmt,res++); + BMPWrite(st,base); + Free(st); + cdt+=CDATE_FREQ/fps; + } + if (fuf_flags&FUF_DEL) { + old_silent=Silent; + Del(tmpde->full_name); + Silent(old_silent); + } + DCDel(dc); + progress1++; + tmpde=tmpde->next; + } + progress1=progress1_max=0; + DirTreeDel(tmpde1); + Free(last_st); + DCDel(base); + return res; +} diff --git a/Adam/Opt/Utils/Find.HC b/Adam/Opt/Utils/Find.HC index 57bc01a..0e5c5ea 100644 --- a/Adam/Opt/Utils/Find.HC +++ b/Adam/Opt/Utils/Find.HC @@ -197,15 +197,15 @@ public I64 FileOcc(U8 *needle_str, class CFind { - U8 find_text[STR_LEN] fmtstr "$$DA-P," + U8 find_text[STR_LEN] format "$$DA-P," "A=\"FIND :%s\"$$\n"; - U8 replace_text[STR_LEN] fmtstr "$$DA-P," + U8 replace_text[STR_LEN] format "$$DA-P," "A=\"REPLACE :%s\"$$\n"; - Bool replace fmtstr "$$CB,\"REPLACE\"$$\n"; - Bool match_case fmtstr "$$CB,\"MATCH CASE\"$$\n"; - Bool whole_labels fmtstr "$$CB,\"WHOLE LABELS\"$$\n"; - U8 filemask[STR_LEN] fmtstr "$$DA-P,A=\"FILE MASK :%s\"$$\n"; - Bool recurse fmtstr "$$CB,\"RECURSE\"$$\n"; + Bool replace format "$$CB,\"REPLACE\"$$\n"; + Bool match_case format "$$CB,\"MATCH CASE\"$$\n"; + Bool whole_labels format "$$CB,\"WHOLE LABELS\"$$\n"; + U8 filemask[STR_LEN] format "$$DA-P,A=\"FILE MASK :%s\"$$\n"; + Bool recurse format "$$CB,\"RECURSE\"$$\n"; }; I64 FindWiz() diff --git a/Adam/Opt/Utils/MakeUtils.HC b/Adam/Opt/Utils/MakeUtils.HC index 15b9e11..27d3a46 100644 --- a/Adam/Opt/Utils/MakeUtils.HC +++ b/Adam/Opt/Utils/MakeUtils.HC @@ -1,6 +1,5 @@ Cd(__DIR__);; #include "Diff" -#include "FileBMP" #include "Find" #include "HeapLog" #include "LineRep" diff --git a/Adam/Opt/Utils/MemRep.HC b/Adam/Opt/Utils/MemRep.HC index 319d4aa..215c70c 100644 --- a/Adam/Opt/Utils/MemRep.HC +++ b/Adam/Opt/Utils/MemRep.HC @@ -136,6 +136,10 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE) if (task==sys_winmgr_task) { "gr.pen_brushes\t:%010X\n",PenBrushesSize; "gr.scrn_zoom_tbles\t:%010X\n",ScrnZoomTablesSize; + "winmgr.scrn_cast_dc\t:%010X\n", + DCSize(winmgr.scrn_cast_dc); + "winmgr.dc2_alias\t:%010X\n", + DCSize(winmgr.dc2_alias); } else if (task==adam_task) { j=0;k=0;m=0;n=0; for (i=0;i$FG,2$TOSRegen;$FG$ to generate\n the " - "distro ISO's and the website image, $FG,2$D:/Wb$FG$ "; + "distro ISO's "; if (YorN) { Once("TOSRegen;"); BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available. @@ -38,35 +32,25 @@ U0 TOSStaffIns() } public U0 TOSStdIns() -{//Completes TOS install from TempleOSCD.ISO +{//Completes TOS install from TOS_Distro.ISO SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ AutoComplete; WinBorder; WinMax; DocClear; - "$$PURPLE$$$$TX+CX,\"Complete TOS install from TempleOSCD.ISO\"$$$$FG$$\n\n\n\n"; + "$$PURPLE$$$$TX+CX,\"Complete TOS install from TOS_Distro.ISO\"$$$$FG$$\n\n\n\n"; InsRereg; - "\nDownload TempleOSSup1.ISO.C\tfrom http://www.templeos.org AppStore.\n" - "Download TempleOSWeb.ISO.C\tfrom http://www.templeos.org AppStore.\n" - "Download TempleOSBooks1.ISO.C\tfrom http://www.templeos.org AppStore.\n" - "Download TempleOSBooks2.ISO.C\tfrom http://www.templeos.org AppStore.\n\n"; + "\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n"; if (PressAKey!=CH_SHIFT_ESC) { if (FileFind("/Demo/AcctExample")) CopyTree("::/Demo/AcctExample","~"); - if (HostChgDsk("/home/tad/Downloads/TempleOSSup1.ISO.C")) + if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental1.ISO.C")) CopyTree("T:/","~/Sup1"); - if (HostChgDsk("/home/tad/Downloads/TempleOSWeb.ISO.C")) - CopyTree("T:/","~/Web"); - if (HostChgDsk("/home/tad/Downloads/TempleOSBooks1.ISO.C")) - CopyTree("T:/","~/Books1"); - if (HostChgDsk("/home/tad/Downloads/TempleOSBooks2.ISO.C")) - CopyTree("T:/","~/Books2"); Once("TOSBootHDIns;"); - "\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the " - "distro ISO's and the website image, $FG,2$D:/Wb$FG$ "; + "\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the distro ISO's "; if (YorN) { Once("TOSRegen;"); BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available. diff --git a/Adam/Snd/SndFile.HC b/Adam/Snd/SndFile.HC index 624ae3e..2824840 100644 --- a/Adam/Snd/SndFile.HC +++ b/Adam/Snd/SndFile.HC @@ -23,7 +23,7 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0, //Averaging should be a num from 0.0 to 0.999. //Vol should be from 0.0 to 1.0. //Set reverb_delay to like 0.3 sec and reverb_intensity to like 0.4. - I64 i,k,cnt,cnt2,level,file_num; + I64 i,i1,k,cnt,cnt2,level,file_num; F64 avg,dt; CFileSND *s; CSndWaveCtrl *swc=SndWaveCtrlNew(SNDFILE_SAMPLE_RATE,16,1); @@ -63,13 +63,16 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0, d=snd.record_head.next; k=0; + i=d->time*SNDFILE_SAMPLE_RATE; while (d->next!=&snd.record_head) { d1=d->next; - dt=d1->time-d->time; - cnt2=dt*SNDFILE_SAMPLE_RATE; - SndWaveAddBuf(swc,&s->body[k],cnt2, - Ona2Freq(d->ona),waveform,normalized_vol); - k+=cnt2; + i1=d1->time*SNDFILE_SAMPLE_RATE; + if (i1-i) { + SndWaveAddBuf(swc,&s->body[k],i1-i, + Ona2Freq(d->ona),waveform,normalized_vol); + k+=i1-i; + i=i1; + } QueRem(d); Free(d); d=d1; diff --git a/Adam/Snd/SndMusic.HC b/Adam/Snd/SndMusic.HC index 1e3d554..a676d31 100644 --- a/Adam/Snd/SndMusic.HC +++ b/Adam/Snd/SndMusic.HC @@ -127,7 +127,7 @@ per second. It defaults to 2.5 and gets faster when bigger. */ U8 *word,*last_st; - I64 note,i=0,ona,timeout_val,timeout_val2; + I64 note,octave,i=0,ona,timeout_val,timeout_val2; Bool tie; F64 d,on_jiffies,off_jiffies; music.play_note_num=0; @@ -151,14 +151,19 @@ per second. It defaults to note=*st++-'A'; if (note<7) { note=music.note_map[note]; + octave=music.octave; if (*st=='b') { note--; + if (note==2) + octave--; st++; } else if (*st=='#') { note++; + if (note==3) + octave++; st++; } - ona=Note2Ona(note,music.octave); + ona=Note2Ona(note,octave); } else ona=ONA_REST; if (words && (word=LstSub(i++,words)) && StrCmp(word," ")) diff --git a/Adam/Win.HC b/Adam/Win.HC index 5d42e96..a89f5ae 100644 --- a/Adam/Win.HC +++ b/Adam/Win.HC @@ -6,7 +6,8 @@ CMsStateGlbls old_ms={{-1000,-1000,0},{-1000,-1000,0},{-1000,-1000,0}, FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE }; -public CWinMgrGlbls winmgr={0,0,0,WINMGR_FPS,tS,NULL,FALSE,FALSE,FALSE}; +public CWinMgrGlbls winmgr={0,0,0,WINMGR_FPS,tS,tS,NULL, + Now,tS,NULL,NULL,NULL,FALSE,FALSE,FALSE,FALSE}; winmgr.t=CAlloc(sizeof(CWinMgrTimingGlbls)); winmgr.t->last_calc_idle_time=tS; diff --git a/Adam/WinMgr.HC b/Adam/WinMgr.HC index c947ffa..5c9cc5f 100644 --- a/Adam/WinMgr.HC +++ b/Adam/WinMgr.HC @@ -2,7 +2,7 @@ public U0 Refresh(I64 cnt=1,Bool force=FALSE) {//Wait for 30fps WinMgr to start & finish scrn refresh. -//0,FALSE Cnt Sync to WinMgr. (not used) + //0,FALSE Cnt Sync to WinMgr. //0,TRUE Pump Msgs. //1 Cnt Wait and Pump Msgs. //2 Cnt Make Sure to do a Full Refresh @@ -31,6 +31,24 @@ public U0 Refresh(I64 cnt=1,Bool force=FALSE) LBEqu(&Fs->task_flags,TASKf_IDLE,old_idle); } +#help_index "Windows;Cmd Line (Typically)" + +public Bool ScrnCast(Bool val=ON,U8 *print_fmt="B:/Tmp/%X.GR") +{//WinMgr saves GR files to a dir. + Bool old_val; + if (val) { + if (!(old_val=LBtr(&winmgr.scrn_cast,0))) { + Free(winmgr.scrn_cast_print_fmt); + winmgr.scrn_cast_print_fmt=AStrNew(print_fmt); + winmgr.scrn_cast_now=Now; + winmgr.scrn_cast_tS=tS; + LBts(&winmgr.scrn_cast,0); + } + } else + old_val=LBtr(&winmgr.scrn_cast,0); + return old_val; +} + #help_index "Windows" I64 WinQueIPMsgs(Bool que) @@ -223,8 +241,11 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE) CCtrl *c; Bool que; F64 t,t_delta; + U8 *st; + CDC *diff; + CDate cdt; - TimeStampFreqCal; + TimeCal; if ((t_delta=(t=tS)-winmgr.last_refresh_tS)>0.01) winmgr.fps=Max(1.0/t_delta,1); else @@ -260,11 +281,36 @@ I64 WinMgrSleep(Bool flush_msgs=FALSE) WinMsUpdate; if (!LBtr(&sys_semas[SEMA_JUST_PUMP_MSGS],0)) { - timeout_val=cnts.jiffies+JIFFY_FREQ/WINMGR_FPS; + t=tS+WINMGR_PERIOD/8; + while (winmgr.ideal_refresh_tScdt=cdt; + st=MStrPrint(winmgr.scrn_cast_print_fmt,cdt); + GRWrite(st,winmgr.scrn_cast_dc); + Free(st); + } else if (MemCmp(winmgr.scrn_cast_dc->body, + winmgr.dc2_alias->body,MSize(winmgr.dc2_alias->body))) { + diff=DCDiff(winmgr.scrn_cast_dc,winmgr.dc2_alias); + diff->cdt=cdt; + st=MStrPrint(winmgr.scrn_cast_print_fmt,cdt); + GRWrite(st,diff); + Free(st); + DCDel(diff); + Free(winmgr.scrn_cast_dc->body); + winmgr.scrn_cast_dc->body=MAllocIdent(winmgr.dc2_alias->body); + } + } else if (winmgr.scrn_cast_dc) { + DCDel(winmgr.scrn_cast_dc); //TODO: $LK,"MemRep",A="MN:MemRep"$ can crash. + winmgr.scrn_cast_dc=NULL; + } if (sys_focus_task && !Bt(&sys_focus_task->task_flags,TASKf_HAS_SONG)) { Free(music.cur_song); music.cur_song=NULL; @@ -404,6 +450,7 @@ U0 WinMgrTask(I64) gr.dc->win_task=Fs; Fs->win_inhibit&=~WIF_SELF_CTRLS; GrSetUpTables; + winmgr.dc2_alias=DCAlias(gr.dc2); WinZBufUpdate; LBts(&sys_run_level,RLf_WINMGR); while (TRUE) { diff --git a/Apps/Budget/BgtEntry.HC b/Apps/Budget/BgtEntry.HC index 98ef62c..e86f1da 100644 --- a/Apps/Budget/BgtEntry.HC +++ b/Apps/Budget/BgtEntry.HC @@ -35,11 +35,11 @@ U0 BgtIns(CBgtEntry *tmpb) class CBgtEntryForm { - U8 date[512] fmtstr "$$DA-P,A=\"Date :%s\"$$\n"; - F64 amount fmtstr "Amount $$$$$$DA,A=\"%10.2f\"$$\n"; - U8 credit[512] fmtstr "$$DA-P,A=\"Credit (from) Acct:%s\"$$\n"; - U8 debit [512] fmtstr "$$DA-P,A=\"Debit (to) Acct:%s\"$$\n"; - U8 desc [512] fmtstr "$$DA-P,A=\"Desc :%s\"$$\n"; + U8 date[512] format "$$DA-P,A=\"Date :%s\"$$\n"; + F64 amount format "Amount $$$$$$DA,A=\"%10.2f\"$$\n"; + U8 credit[512] format "$$DA-P,A=\"Credit (from) Acct:%s\"$$\n"; + U8 debit [512] format "$$DA-P,A=\"Debit (to) Acct:%s\"$$\n"; + U8 desc [512] format "$$DA-P,A=\"Desc :%s\"$$\n"; }; CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL) diff --git a/Apps/Budget/Budget.HC b/Apps/Budget/Budget.HC index 27ca2b0..75458ac 100644 --- a/Apps/Budget/Budget.HC +++ b/Apps/Budget/Budget.HC @@ -42,11 +42,11 @@ class CBgtTemplate CBgtTemplate *next,*last; U0 start; - U16 type fmtstr "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n"; + U16 type format "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n"; U16 flags; - U8 start_date[16] fmtstr "$$DA-P,A=\"Start Date:%s\"$$\n"; - U8 end_date[16] fmtstr "$$DA-P,A=\"End Date :%s\"$$\n"; - F64 period fmtstr "$$DA,A=\"Period :%8.2f\"$$\n"; + U8 start_date[16] format "$$DA-P,A=\"Start Date:%s\"$$\n"; + U8 end_date[16] format "$$DA-P,A=\"End Date :%s\"$$\n"; + F64 period format "$$DA,A=\"Period :%8.2f\"$$\n"; U0 end; CBgtEntry b; diff --git a/Apps/GrModels/BallGen.HC b/Apps/GrModels/BallGen.HC index 7fe4cc1..299565c 100644 --- a/Apps/GrModels/BallGen.HC +++ b/Apps/GrModels/BallGen.HC @@ -13,9 +13,9 @@ class Ball class BallDefineStruct { - F64 radius fmtstr "$$DA-TRM,A=\"Radius :%8.3f\"$$\n"; - I64 n_longitude fmtstr "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n"; - I64 n_lattitude fmtstr "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n"; + F64 radius format "$$DA-TRM,A=\"Radius :%8.3f\"$$\n"; + I64 n_longitude format "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n"; + I64 n_lattitude format "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n"; }; U0 BDInit(BallDefineStruct *bd) diff --git a/Apps/GrModels/ManGen.HC b/Apps/GrModels/ManGen.HC index 471f244..fae3fa9 100644 --- a/Apps/GrModels/ManGen.HC +++ b/Apps/GrModels/ManGen.HC @@ -13,66 +13,66 @@ class Man class ManDefineStruct { - F64 head_rad fmtstr + F64 head_rad format "$$DA-TRM,A=\"Head Radius :%8.3f\"$$\n"; - F64 torso_len fmtstr + F64 torso_len format "$$DA-TRM,A=\"Torso Length :%8.3f\"$$\n"; - F64 arm_len fmtstr + F64 arm_len format "$$DA-TRM,A=\"Arm Length :%8.3f\"$$\n"; - F64 hand_len fmtstr + F64 hand_len format "$$DA-TRM,A=\"Hand Length :%8.3f\"$$\n"; - F64 leg_len fmtstr + F64 leg_len format "$$DA-TRM,A=\"Leg Length :%8.3f\"$$\n"; - F64 foot_len fmtstr + F64 foot_len format "$$DA-TRM,A=\"Foot Length :%8.3f\"$$\n"; - F64 torso_width fmtstr + F64 torso_width format "$$DA-TRM,A=\"Torso Width :%8.3f\"$$\n"; - F64 torso_depth fmtstr + F64 torso_depth format "$$DA-TRM,A=\"Torso Depth :%8.3f\"$$\n"; - F64 arm_rad fmtstr + F64 arm_rad format "$$DA-TRM,A=\"Arm Radius :%8.3f\"$$\n"; - F64 hand_rad fmtstr + F64 hand_rad format "$$DA-TRM,A=\"Hand Radius :%8.3f\"$$\n"; - F64 leg_rad fmtstr + F64 leg_rad format "$$DA-TRM,A=\"Leg Radius :%8.3f\"$$\n"; - F64 foot_rad fmtstr + F64 foot_rad format "$$DA-TRM,A=\"Foot Radius :%8.3f\"$$\n\n"; - F64 r_shoulder_a1 fmtstr + F64 r_shoulder_a1 format "$$DA-TRM,A=\"R.Shoulder Front/Back Angle:%8.3f\"$$\n"; - F64 l_shoulder_a1 fmtstr + F64 l_shoulder_a1 format "$$DA-TRM,A=\"L.Shoulder Front/Back Angle:%8.3f\"$$\n"; - F64 r_hip_a1 fmtstr + F64 r_hip_a1 format "$$DA-TRM,A=\"R.Hip Front/Back Angle :%8.3f\"$$\n"; - F64 l_hip_a1 fmtstr + F64 l_hip_a1 format "$$DA-TRM,A=\"L.Hip Front/Back Angle :%8.3f\"$$\n"; - F64 r_shoulder_a2 fmtstr + F64 r_shoulder_a2 format "$$DA-TRM,A=\"R.Shoulder Side Angle :%8.3f\"$$\n"; - F64 l_shoulder_a2 fmtstr + F64 l_shoulder_a2 format "$$DA-TRM,A=\"L.Shoulder Side Angle :%8.3f\"$$\n"; - F64 r_hip_a2 fmtstr + F64 r_hip_a2 format "$$DA-TRM,A=\"R.Hip Side Angle :%8.3f\"$$\n"; - F64 l_hip_a2 fmtstr + F64 l_hip_a2 format "$$DA-TRM,A=\"L.Hip Side Angle :%8.3f\"$$\n"; - F64 r_elbow_a fmtstr + F64 r_elbow_a format "$$DA-TRM,A=\"R.Elbow Angle :%8.3f\"$$\n"; - F64 l_elbow_a fmtstr + F64 l_elbow_a format "$$DA-TRM,A=\"L.Elbow Angle :%8.3f\"$$\n"; - F64 r_knee_a fmtstr + F64 r_knee_a format "$$DA-TRM,A=\"R.Knee Angle :%8.3f\"$$\n"; - F64 l_knee_a fmtstr + F64 l_knee_a format "$$DA-TRM,A=\"L.Knee Angle :%8.3f\"$$\n"; - F64 r_wrist_a fmtstr + F64 r_wrist_a format "$$DA-TRM,A=\"R.Wrist Angle :%8.3f\"$$\n"; - F64 l_wrist_a fmtstr + F64 l_wrist_a format "$$DA-TRM,A=\"L.Wrist Angle :%8.3f\"$$\n"; - F64 r_ankle_a fmtstr + F64 r_ankle_a format "$$DA-TRM,A=\"R.Ankle Angle :%8.3f\"$$\n"; - F64 l_ankle_a fmtstr + F64 l_ankle_a format "$$DA-TRM,A=\"L.Ankle Angle :%8.3f\"$$\n"; }; diff --git a/Apps/Psalmody/Help.DD b/Apps/Psalmody/Help.DD index 9e90edb..a79f735 100644 --- a/Apps/Psalmody/Help.DD +++ b/Apps/Psalmody/Help.DD @@ -11,14 +11,3 @@ $WW,1$$FG,5$$TX+CX,"Psalmody Help"$$FG$ * You can take the $LK,"Play",A="MN:Play"$() stmts out of a song file and place them in your programs. You can also add a song to a document with $FG,2$$FG$, but you should do it after pressing $FG,2$$FG$ because the clip-insert in $FG,2$$FG$ is screwy. See this $SO,"",A="4qG5EC4BeGG5qCeFD4sB5G4B5G4qG5EC4BeGG5qCeFD4sB5G4B5GqEeEFqE4BeG5FetC4A5GqFCEeEFqE4BeG5FetC4A5GqFC"$ after pressing $FG,2$$FG$, now. * You can call $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.HC,JukeBox"$("~/Psalmody"); to play your songs. - -* To create a $FG,2$.SND$FG$ file which can be exported and played under Windows, set the $FG,2$Bool$FG$ $LK,"snd.record",A="MN:CSndGlbls"$ to $FG,2$TRUE$FG$, play music, and set it to $FG,2$FALSE$FG$. Then, call $LK,"SndFileCreate",A="MN:SndFileCreate"$(). You might wish to make a $FG,2$$FG$ to toggle this system level recording feat. See $LK,"Snd",A="MN:Snd"$(). Add this code to your $LK,"~/HomeKeyPlugIns.HC"$ file. - -$FG,5$U0 CtrlAltR(I64) -{ - snd.record=!snd.record; -} -CtrlAltCBSet('R',&CtrlAltR,"Cmd /Toggle snd.record");$FG$ - -* When calling $LK,"SndFileCreate",A="MN:SndFileCreate"$() you can set a waveform. The PC speaker is $LK,"WF_SQUARE",A="MN:WF_SQUARE"$. You can sel reverb and averaging, also. - diff --git a/Apps/Psalmody/JukePuppet.HC b/Apps/Psalmody/JukePuppet.HC index 342621c..8f6ccb1 100644 --- a/Apps/Psalmody/JukePuppet.HC +++ b/Apps/Psalmody/JukePuppet.HC @@ -71,7 +71,7 @@ U0 JukeSongPuppet(CTask *juke_task,I64 passes,I64 song_num,U8 *name) } public U0 JukeSongsPuppet(U8 *dirname="~/Psalmody",I64 passes=2, - I64 start_song=0,I64 end_song=I64_MAX) + I64 start_song=0,I64 end_song=I64_MAX) {//Help make music video by puppeting JukeBox task. I64 i; CDirEntry *tmpde,*tmpde1; diff --git a/Compiler/Asm.HC b/Compiler/Asm.HC index 5f4b719..cde59de 100644 --- a/Compiler/Asm.HC +++ b/Compiler/Asm.HC @@ -945,14 +945,14 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) LexExcept(cc,"Missing ';' at"); Lex(cc); //skip ';'; break; - case AKW_MODULE_ORG: + case AKW_ORG: if (cc->htc.local_var_lst) LexExcept(cc,"ORG not allowed in fun asm blk "); - if (aotc->module_org!=INVALID_PTR) + if (aotc->org!=INVALID_PTR) LexExcept(cc,"Just one org allowed "); if (aotc->rip) LexExcept(cc,"ORG must be at beginning "); - aotc->module_org=AsmLexExpression(cc); + aotc->org=AsmLexExpression(cc); break; case AKW_ALIGN: if (cc->htc.local_var_lst) diff --git a/Compiler/CMain.HC b/Compiler/CMain.HC index 1d7dc86..bd00f7c 100644 --- a/Compiler/CMain.HC +++ b/Compiler/CMain.HC @@ -55,7 +55,7 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0) aotc->bin=CAlloc(sizeof(CAOTBinBlk)); aotc->max_align_bits=0; - aotc->module_org=INVALID_PTR; + aotc->org=INVALID_PTR; MemCpy(htc,&cc->htc,sizeof(CLexHashTableContext)); if (cc->htc.fun) @@ -120,10 +120,10 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0) if (cc->flags&CCF_AOT_COMPILE) res->buf=MAlloc(aotc->num_bin_U8s); else { - if (aotc->module_org==INVALID_PTR) + if (aotc->org==INVALID_PTR) res->buf=MAlloc(aotc->num_bin_U8s,Fs->code_heap); else - res->buf=aotc->module_org; + res->buf=aotc->org; } res->aot_U8s=aotc->num_bin_U8s; tmpbin=aotc->bin; @@ -143,7 +143,7 @@ CAOT *CmpJoin(CCmpCtrl *cc,I64 cmp_flags,U8 *map_name=NULL,U8 mapfile_drv_let=0) res->abss=aotc->abss; res->heap_glbls=aotc->heap_glbls; res->max_align_bits=aotc->max_align_bits; - res->module_org=aotc->module_org; + res->org=aotc->org; } cc->aot=parent; MemCpy(&cc->htc,htc,sizeof(CLexHashTableContext)); @@ -541,7 +541,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0) #assert sizeof(CBinFile)-2<=I8_MAX bfh->reserved=0; bfh->bin_signature=BIN_SIGNATURE_VAL; - bfh->module_org=tmpaot->module_org; + bfh->org=tmpaot->org; bfh->module_align_bits=tmpaot->max_align_bits; bfh->patch_table_offset=sizeof(CBinFile)+aot_U8s; bfh->file_size=size; diff --git a/Compiler/CMisc.HC b/Compiler/CMisc.HC index bef963a..6517670 100644 --- a/Compiler/CMisc.HC +++ b/Compiler/CMisc.HC @@ -129,10 +129,15 @@ U8 *CmdLinePmt() I64 i; U8 *res,*st; if (Fs->new_answer) { - if (Fs->answer_type==RT_F64) - "%8.6fs ansf=%15.7g\n",Fs->answer_time,Fs->answer; - else - "%8.6fs ans=0x%08X=%d\n",Fs->answer_time,Fs->answer,Fs->answer; + if (Fs->answer_type&~1!=RT_I0) { + if (Fs->answer_type==RT_F64) + "%8.6fs ansf=%15.7g\n",Fs->answer_time,Fs->answer; + else + "%8.6fs ans=0x%08X=%d\n",Fs->answer_time,Fs->answer,Fs->answer; + } else { + "%8.6fs\n",Fs->answer_time; + Fs->answer=0; + } Fs->new_answer=FALSE; } if (st=DirCur) { @@ -142,7 +147,7 @@ U8 *CmdLinePmt() '>'; if (IsDbgMode&&IsRaw) RawDr; - + LBts(&Fs->task_flags,TASKf_CMD_LINE_PMT); st=GetStr(,,GSF_SHIFT_ESC_EXIT); LBtr(&Fs->task_flags,TASKf_CMD_LINE_PMT); diff --git a/Compiler/Compiler.BIN b/Compiler/Compiler.BIN index 4dde8ab2394fd47fe1dae4beff920ae400b63460..fdfb941553f0367d1a91b117d6978683d268356b 100644 GIT binary patch delta 30446 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 delta 30174 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×ý×ýñýûýÿýþþ -þ"þ:þ:þDþp©Áçç &(.4J]lqsx‚—­Àå÷(åå2åSåWåWå_å8îäîä÷äüäåååååd`µÖØÖØôØøØÙÙÙÙ"Ù"Ù/Ù1Ù>Ù@ÙLÙLÙgÙuÙuـهٖ١٧٬ٮٺÙÁÙÐÙÛÙáÙæÙèÙôÙ$ÚJÚZÚjÚzÚ|ڌڜڬڬڱÚÄÚËÚÒÚÒÚÒÚÒÚÙÚïÚûÚÛÛ ÛÛÛÛ>ÛEÛ[ÛgÛmÛsÛyÛ{Û{Û‰ÛD¶ÃŽÛŽÛ¤Û§ÛªÛ·Û½ÛÊÛÍÛÐÛÖÛØÛâÛ ,cjàŠàŠîŠøŠ‹‹‹‹ - osžž¬ÁÇ P ‚7‚7�7Ÿ7»7Á7Ó7Ó7Þ7ç7í7ô7ú7 ”;\?L?LGLKLdL~L›L¼LÅLÖLúLMM0M?MHMUM\MŽMŸM£M«M«M¾MÎMÒMÖM Œ×ö6>BPV\\ˆž²À×Ýéîü ! 1 3 : : @ @ P |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"# -###!#$#$#.#0 '(‰(‰6‰V‰\‰b‰b‰h‰„“°È¡È¡Ü¡ã¡ê¡î¡¢%¢,¢=¢b¢m¢x¢z¢…¢ª¢µ¢À¢Â¢É¢Ò¢Ô¢ß¢æ¢£("ÿàÿàá%á@á@áFá ŸàŸà®àÄàÊà ˆP´P´u´|´“´Ÿ´ª´¼´Í´¾´¼´í´µµµ!µ-µ7µ>µEµIµKµQµ]µgµnµuµyµyµƒµˆµ“µ¥µ¶µ§µ¥µÖµ÷µ¶ -¶¶¶&¶-¶4¶8¶:¶@¶L¶V¶]¶d¶h¶h¶u¶ƒ¶“¶¥¶¶¶§¶¥¶Ö¶÷¶· -···&·-·4·8·:·@·L·V·]·d·h·h·r·‚·”·¥·–·”·Å·Ì·Ò·Þ·è·ï·ö·ú·ü·¸¸¸ ¸&¸*¸*¸4¸B¸K¸d¸p¸t¸t¸w¸€¸ö¸Ô·ƒ·ƒÔƒ¢©܃냄„+„2„C„K„O„R„`„d„�„�„¥„§„§„³„»„¿„̄̄؄à„ä„ñ„ñ„ñ„ ……)…)….…F…U…Z…`…k…p…p…u…�…œ…¡…§…²…·…·…Å…Î…Ú…â…ê…ò…õ…û…† ††$†5†E†E†J†R†Z†]†c†c†h†h†h†n†q†x†ƒ†˜†½†Ô†á†é†ñ†ý† ‡‡‡ ‡#‡&‡2‡8‡?‡D‡D‡R‡b‡b‡o‡o‡w‡‡ˆ‡—‡œ‡œ‡£‡®‡´‡¼‡‡͇Ò‡Ò‡á‡ì‡þ‡ˆ ˆˆˆ"ˆ4ˆ:ˆBˆHˆMˆMˆaˆgˆrˆxˆzˆŠˆ�ˆ�ˆµˆ܈áˆáˆõˆûˆ‰"‰(‰-‰F‰L‰\‰d‰l‰r‰w‰w‰‹‰‘‰§‰¸‰¾‰É܉â‰ò‰ú‰ŠŠ Š Š#Š)Š?ŠPŠVŠ[ŠjŠpŠ�Š‰Š‘Š—ŠžŠ£Š£Š¹Š¿ŠÕŠæŠìŠîŠýŠ‹ ‹‹‹#‹*‹*‹*‹<‹E‹V‹f‹f‹k‹k‹y‹�‹’‹¥‹¬‹²‹º‹À‹ЋÖ‹Þ‹ä‹ä‹ä‹é‹é‹é‹é‹é‹ŒŒŒŒ(Œ1Œ<ŒEŒPŒ[Œ`Œ`ŒvŒ|Œ’Œ£Œ©Œ®ŒÀŒÆŒËŒäŒ�������$�*�/�/�S�[�c�s�y�����®�®�³�³�¿�Ç�Ê�Ñ�×�Ü�Ü�ü�ŽŽŽ!Ž?ŽNŽVŽnŽvŽyŽ€Ž†ŽžŽ¦Ž¾ŽÆŽÉŽÐŽÖŽÖŽÖŽõŽ����#�)�9�H�T�o�w�z���‡�Ÿ�«�Æ�Î�Ñ�Ø�Þ�Þ�Þ�Þ�ã�ã�ì�ü���0�C�I�N�`�f�k�‡���™�¡�¤�«�±�Ú�â�ò�ø�ÿ�ÿ�ÿ�‘‘ ‘%‘;‘A‘Y‘l‘r‘w‘¢‘¨‘»‘ò‘’!’)’/’4’4’N’Z’f’q’q’v’v’�’œ’¨’³’³’¸’¸’Ò’Þ’ê’õ’õ’ú’ú’““"“(“-“?“E“J“Y“e“q“w“}“„“—“¢“«“·“¿““È“ΓÓ“ç“ö“þ“””!”'”-”E”M”m”‡”�”’”˜”ž”ž”¯”¸”Ĕ̔ϔ֔ܔá”ó”• -•"•*•-•4•:•R•Z•y•“•›•ž•¥•«•«•»•Ä•ЕØ•Û•á•ç•ì•–––1–9–<–B–H–`–h–Š–¦–®–±–·–½–½–Ζ×–ã–ë–î–õ–û–——!—)—D—L—O—V—\—t—|—ž—»—ׯ—͗ӗӗӗӗӗؗؗî—ô—˜˜ ˜˜#˜(˜6˜B˜K˜W˜_˜b˜i˜o˜t˜†˜•˜�˜µ˜½˜À˜ǘ͘å˜í˜ ™&™.™1™8™>™>™>™O™X™d™l™o™v™|™“™¢™®™É™Ñ™Ô™Û™á™ù™š'šDšLšOšVš\š\š\š\š\šašaštš�š•š š¥š¥š¸šΚÔšßšášášôš››(›(›:›C›T›Y›k›{›{›€›€›“›©›¯›½›Ì›Ñ›Ñ›ä›ú›œœœ"œ"œ8œ>œ[œsœsœ�œ£œ¨œ´œ½œÌœÌœÑœÑœçœíœ -�"�"�L�R�W�c�l�{�{�€�€�–�œ�¹�Ñ�Ñ�û�žžžž*ž*ž/ž/žEžKžhž€ž€žªž°ž²ž¾žÇžÒžÒžÒžÒžמåžîžÿžŸŸ Ÿ Ÿ Ÿ0Ÿ@ŸEŸiŸuŸvŸ{Ÿ�Ÿ­Ÿ½ŸáŸñŸ÷Ÿ÷Ÿ÷ŸüŸ  ) g w }  „ • ¤ Ö Þ ä æ ë ò ò û  ¡ ¡)¡8¡8¡=¡B¡Q¡Z¡e¡g¡p¡{¡{¡œ¡£¡©¡±¡¼¡¡Ò¡Ø¡à¡ë¡ñ¡ñ¡ö¡û¡¢ ¢¢¢ ¢/¢/¢/¢4¢4¢4¢F¢K¢K¢]¢h¢p¢x¢~¢~¢~¢ƒ¢ƒ¢Ž¢Ÿ¢¢¢®¢·¢âÊ¢ТÕ¢Õ¢à¢ñ¢ô¢£ £££"£'£'£'£'£,£1£1£<£@£@£L£U£X£X£c£e£{£‚£ˆ£—£¢£­£³£¿£ããϣأۣۣæ£è£þ£¤ ¤¤¤)¤/¤9¤<¤@¤@¤H¤O¤R¤T¤_¤c¤l¤o¤o¤z¤|¤š¤¡¤¬¤·¤º¤À¤ŤŤФÔ¤Ô¤à¤é¤ì¤ì¤÷¤ù¤¥¥¥+¥6¥A¥G¥S¥W¥W¥c¥l¥o¥o¥z¥|¥’¥™¥Ÿ¥§¥²¥½¥Ã¥Í¥Ð¥Ô¥Ô¥Ü¥ã¥æ¥è¥ó¥÷¥¦¦¦¦¦.¦5¦@¦K¦N¦T¦Y¦Y¦k¦o¦o¦{¦„¦‡¦‡¦’¦”¦ª¦±¦·¦ɦÔ¦ߦå¦ê¦ê¦õ¦ú¦ú¦§ -§ -§§§§#§(§-§2§2§F§K§K§X§\§m§u§y§�§”§˜§˜§¥§±§¹§¿§ϧÓ§ä§ö§¨¨¨¨¨"¨(¨(¨(¨(¨(¨*¨*¨8¨?¨L¨X¨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¨¨‡¨“¨“¨´¨èÛ¨ݨé¨ö¨ö¨©&©1©:©C©N©U©U©_©_©b©t©’©ž©ž©É«xÝ÷Z5Z5l5n5r5{5‡5“5¨5¨5×5Û5à5ì5ÿ5 6 666"6,6lby¯|¯|Å|Ô|Ù|î|Û|ý|}} }"}}1}7}P}i}‚}›}´}¾}„žïlïl mmm"m)m+m.m5mý3ýOý_ýqývývývý}ý„ý‹ý ý§ýÃýÃýÕýÌM¼ˆ¦ˆ¦¢¦­¦¸¦Á¦É¦Ì¦Ó¦×¦à¦ó¦÷¦ý¦ §(§5§D§I§U§Z§a§m§r§u§§w§�§˜§©§§§Ÿ§·§À§Æ§Æ§Ô§×§ë§ô§ý§¨¨ ¨$¨<¨E¨S¨o¨{¨{¨“¨¤¨¤¨«¨Ä¨Ð¨Ø¨ë¨ò¨©©©©%©*©1©N©{©‚©†©ˆ©“©Ÿ©£©¸©º©Ë©Õ©à©ê©ù©ª!ª!ª$ª,ª1ª³ªPw‡×N×NóNOO.OKOfOlOuOƒO‰OŒO˜OŒ xbxbˆb¬b¬bºbºbºbºbÃbÃbÊbåbúbcc c cc+c+c9c?c?cWcWc]cƒc (kq ‹ ‹.‹:‹J‹Q‹W‹ @^jëë�ë•ëœë»ëÈëÈëËëÍëÓë!$/4§á§á´áÉáÎáÔá"$).wáwá„á™ážá¤á#$#(GáGáVáláqáwá$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤CÈ�È�Þ�å�ú� žž ž&ž,ž<žGžQž\žsžvžxžŠž�ž žªž´ž»žÆžÛžãžãžùžùžùž Ÿ&$5:×á×áåáúáÿáâ'¤DiŸŸ&Ÿ-Ÿ4ŸBŸSŸeŸgŸnŸtŸ„Ÿ�Ÿ™Ÿ¤Ÿ»Ÿ¾ŸÀŸÒŸÙŸéŸóŸýŸ  # + + A A A V ((&,ú/ú/000 0%0)0]e×M×MíMNNNN N*ø Úv%v%˜% %¦%³%º%Ö%Ü%Ü%ç%ñ%ñ%þ%&&!&'&1&7&H&H&S&]&]&o&u&…&‹&�&—&—&¸&¾&Ð&ã&é&ì&ò&ò&ô&ú&''''''"'"'7'A'A'U'^'d'j'€'…'�'£'§'§'¯'µ'»'Å'Ì'Ó'Ü'î'î'(((#(5(H(N(R(X(^(d(d(f(j(p(v(|(�(�(�(�(¬(½(½(Ô(á(å(í(ÿ( ) )%)(),)2)2)D)U)j)~)†)—)›)¡)®)°)¼)Ú)à)ë)** *%*+*4*:*L*]*e*i*o*|*~*Š*¨*®*´*º*Ã*É*æ*Ù*+ +++$+)+)+0+:+O+T+T+T+q+s+�+’+¯+µ+½+Á+È+ë+ñ+÷+,,!,',2,7,7,>,B,L,Z,\,d,i,q,|,‚,‘,–,œ,¡,©,®,½,Ô,ä,ñ,ü,--6-6-=-R-W-`-m-r-x-}-}-„-ˆ-’- -¢-ª-®-²-½-Ç-Ç-Ñ-Ý-ä-è-ð-ø-.. .%.1.1.9.9.\.\.j.p.u.y.~.~.~.~.„.†.†.©.¯.µ.¼.Ò.Ô.Ô.Ô.ß.ß.ß.ä. 0+4.w6Ê6ÊPÊTÊlÊtÊ|Ê†ÊŠÊ‘Ê—Ê«Ê³Ê¸Ê»ÊÆÊÑÊÙÊäÊïÊñÊËËË Ë+Ë-Ë8ËCËEËQËZËZËpË{˓˙ˢ˳˹ËÂËÔËÚËÚËâËæËñËöËÌÌÌ%Ì'Ì+Ì:Ì:Ì:ÌKÌKÌPÌbÌhÌÖÌ,Ô@fæfæ|æƒæ†æªæªæÇæÚæíæççç#ç1çDçWç_ç_çaçaçaçtçvçvçvç}ç�ç£ç£ç£ç¶çÁçÔçêçïçóçúçè"è)è)è,èQè-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~ލ‹¨‹¶‹Ã‹Ñ‹ã‹î‹ü‹ ŒŒ)Œ4ŒBŒHŒNŒ/4 -"7"707<7M7_7h7v7|70€À\ž ž À Ç Õ à       D K K Z i … � � � ¥ ¶ ¿ Ý è ê    $ 6 ? J O U \ „ ‰ —     § ¶ Í Í Ü å ù  %KT[`kw†šŸ§³ÅÅáèð!!06JO_s…Šš­µÉçþ%ASYdp€�–ŸŸ±µÁØô #3CU[[`bbggv|‚‚†ÿ1ŒÄãæÛæÛÜÜÜÜÜ$Ü3Ü>ÜDÜIÜKÜWÜ^ÜfÜlÜrÜvÜv܅܌ܔܚܠܢܢܮÜ28 2/2/@/F/R/]/n/x//…/3@‡“ßìßìíìøìÿìí+í+í.í0í6í4ÜSgg� §®µ»½ÄËÎÎààòý  " * / 5 K [ p u Ž ¦ ª ª ¯ ¸  Ö Þ ç ï ô û  - -2 -4 -M -e -i -i -} -… -Ž -– +H2@2#2#;#A#\#a#Œ#Ž#Ã#­#Ó#Ú#ë#þ#¨­Ó‡a‡a�a¥a°a¼aÜa¾aëañañab"bMb[b[bˆbªbÂb¯bÑbýbêbccFcFcMcqc‡c‡c‡c‘cH>Lwþwþ‘þ›þŸþ£þ¨þªþÂþÚþÚþäþp©Á‡‡±³ºÀÆÈÎÔêý "7M`…—(®å®åÂåãåçåçåïå8~å~å‡åŒå—å å§å©å®åd`µfÙfلوٕٗ٤٦ٲٲٿÙÁÙÎÙÐÙÜÙÜÙ÷ÙÚÚÚÚ&Ú1Ú7Ú<Ú>ÚJÚQÚ`ÚkÚqÚvÚxÚ„Ú´ÚÚÚêÚúÚ +Û ÛÛ,Û<Û<ÛAÛTÛ[ÛbÛbÛbÛbÛiÛÛ‹Û‘Û—Û�Û¡Û¡Û¡ÛÎÛÕÛëÛ÷ÛýÛÜ Ü Ü ÜÜD¶ÃÜÜ4Ü7Ü:ÜGÜMÜZÜ]Ü`ÜfÜhÜrÜ ,cjp‹p‹~‹ˆ‹“‹ž‹¤‹ª‹ + os..<QW P ‚7‚7�7Ÿ7»7Á7Ó7Ó7Þ7ç7í7ô7ú7 ”;\ßLßLçLëLMM;M\MeMvMšM±M±MÐMßMèMõMüM.N?NCNKNKN^NnNrNvN Œ×ö¦¦ÆÎÒàæìì . B P g m y ~ Œ ¨ ± Á à Ê Ê Ð Ð à |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"# +###!#$#$#.#0 '¸‰¸‰Æ‰æ‰ì‰ò‰ò‰ø‰„“°X¢X¢l¢s¢z¢~¢¢¢µ¢¼¢Í¢ò¢ý¢£ +££:£E£P£R£Y£b£d£o£v£ £("ŸáŸá®áÅáàáàáæá ?á?áNádájá ˆà´à´µ µ#µ/µ:µLµ]µNµLµ}µ˜µ¤µ«µ±µ½µÇµÎµÕµÙµÛµáµíµ÷µþµ¶ ¶ ¶¶¶#¶5¶F¶7¶5¶f¶‡¶“¶š¶ ¶¬¶¶¶½¶Ä¶È¶Ê¶Ð¶Ü¶æ¶í¶ô¶ø¶ø¶··#·5·F·7·5·f·‡·“·š· ·¬·¶·½·Ä·È·Ê·Ð·Ü·æ·í·ô·ø·ø·¸¸$¸5¸&¸$¸U¸\¸b¸n¸x¸¸†¸Š¸Œ¸’¸ž¸¨¸¯¸¶¸º¸º¸Ä¸Ò¸Û¸ô¸¹¹¹¹¹†¹ÔW„W„t„Bª|„‹„®„¹„˄҄ã„ë„ï„ò„……0…0…E…G…G…S…[…_…l…l…x…€…„…‘…‘…‘…­…¸…É…É…Î…æ…õ…ú…† ††††-†<†A†G†R†W†W†e†n†z†‚†І’†•†›† †©†»†ĆÕ†å†å†ê†ò†ú†ý†‡‡‡‡‡‡‡‡#‡8‡]‡t‡�‡‰‡‘‡�‡©‡¯‡¶‡¿‡ÇƇÒ‡؇߇ä‡ä‡ò‡ˆˆˆˆˆ ˆ(ˆ7ˆ<ˆ<ˆCˆNˆTˆ\ˆbˆmˆrˆrˆ�ˆŒˆžˆ¤ˆ¬ˆ²ˆ·ˆˆÔˆÚˆâˆèˆíˆíˆ‰‰‰‰‰*‰0‰0‰U‰|‰�‰�‰•‰›‰±‰‰ȉ͉æ‰ì‰ü‰Š ŠŠŠŠ+Š1ŠGŠXŠ^ŠcŠ|Š‚Š’ŠšŠ¢Š¨Š­Š­ŠÊÉŠߊðŠöŠûŠ +‹‹!‹)‹1‹7‹>‹C‹C‹Y‹_‹u‹†‹Œ‹Ž‹�‹£‹­‹µ‹½‹Ëʋʋʋ܋å‹ö‹ŒŒ Œ ŒŒ!Œ2ŒEŒLŒRŒZŒ`ŒpŒvŒ~Œ„Œ„Œ„Œ‰Œ‰Œ‰Œ‰Œ‰Œ¨Œ´Œ¹Œ¹ŒÈŒÑŒÜŒåŒðŒûŒ����2�C�I�N�`�f�k�„�¢�¢�§�§�³�»�¾�Ä�Ê�Ï�Ï�ó�û�ŽŽŽ Ž Ž0ŽNŽNŽSŽSŽ_ŽgŽjŽqŽwŽ|Ž|ŽœŽ¤Ž´ŽºŽÁŽߎîŽöŽ��� �&�>�F�^�f�i�p�v�v�v�•�¥�±�¹�¼�Ã�É�Ù�è�ô����!�'�?�K�f�n�q�x�~�~�~�~�ƒ�ƒ�Œ�œ�²�¸�Ð�ã�é�î�‘‘ ‘'‘-‘9‘A‘D‘K‘Q‘z‘‚‘’‘˜‘Ÿ‘Ÿ‘Ÿ‘¤‘¤‘­‘őۑá‘ù‘ ’’’B’H’[’’’¤’Á’É’Ï’Ô’Ô’î’ú’“““““0“<“H“S“S“X“X“r“~“Š“•“•“š“š“°“¶““ȓ͓ߓå“ê“ù“””””$”7”B”K”W”_”b”h”n”s”‡”–”ž”¶”¾”Á”ǔ͔å”í” •'•/•2•8•>•>•O•X•d•l•o•v•|•�•“•¢•ª••ʕ͕ԕڕò•ú•–3–;–>–E–K–K–[–d–p–x–{–�–‡–Œ– –¯–·–Ñ–Ù–Ü–â–è–——*—F—N—Q—W—]—]—n—w—ƒ—‹—Ž—•—›— —²—Á—É—ä—ì—ï—ö—ü—˜˜>˜[˜c˜f˜m˜s˜s˜s˜s˜s˜x˜x˜Ž˜”˜ ˜¦˜«˜½˜ØȘÖ˜â˜ë˜÷˜ÿ˜™ ™™™&™5™=™U™]™`™g™m™…™�™¬™Æ™ΙÑ™Ø™Þ™Þ™Þ™ï™ø™š šššš3šBšNšišqštš{š�š™š¥šÇšäšìšïšöšüšüšüšüšüš›››/›5›@›E›E›X›n›t››�›�›”›·›½›È›È›Ú›ã›ô›ù› œœœ œ œ3œIœOœ]œlœqœqœ„œšœ œ®œ½œœœØœÞœûœ��=�C�H�T�]�l�l�q�q�‡���ª�Â�Â�ì�ò�÷�ž žžž ž ž6ž<žYžqžqž›ž¡ž¦ž²ž»žÊžÊžÏžÏžåžëžŸ Ÿ ŸJŸPŸRŸ^ŸgŸrŸrŸrŸrŸwŸ…ŸŽŸŸŸ¡Ÿ³ŸÀŸÀŸÀŸПàŸåŸ     0 M ] � ‘ — — — œ ¡ ¶ É ¡¡¡ ¡$¡5¡D¡v¡~¡„¡†¡‹¡’¡’¡›¡­¡À¡É¡Ø¡Ø¡Ý¡â¡ñ¡ú¡¢¢¢¢¢<¢C¢I¢Q¢\¢b¢r¢x¢€¢‹¢‘¢‘¢–¢›¢¢¢©¢°¢·¢À¢Ï¢Ï¢Ï¢Ô¢Ô¢Ô¢æ¢ë¢ë¢ý¢££££££#£#£.£?£B£N£W£c£j£p£u£u£€£‘£”£ £©£µ£¼££Ç£Ç£Ç£Ç£Ì£Ñ£Ñ£Ü£à£à£ì£õ£ø£ø£¤¤¤"¤(¤7¤B¤M¤S¤_¤c¤c¤o¤x¤{¤{¤†¤ˆ¤ž¤¥¤«¤³¤¾¤ɤϤÙ¤ܤà¤à¤è¤ï¤ò¤ô¤ÿ¤¥ ¥¥¥¥¥:¥A¥L¥W¥Z¥`¥e¥e¥p¥t¥t¥€¥‰¥Œ¥Œ¥—¥™¥¯¥¶¥¼¥Ë¥Ö¥á¥ç¥ó¥÷¥÷¥¦ ¦¦¦¦¦2¦9¦?¦G¦R¦]¦c¦m¦p¦t¦t¦|¦ƒ¦†¦ˆ¦“¦—¦ ¦£¦£¦®¦°¦ΦÕ¦à¦ë¦î¦ô¦ù¦ù¦ §§§§$§'§'§2§4§J§Q§W§i§t§§…§ЧЧ•§š§š§¥§ª§ª§µ§¸§¼§çȧͧÒ§Ò§æ§ë§ë§ø§ü§ ¨¨¨-¨4¨8¨8¨E¨Q¨Y¨_¨o¨s¨„¨–¨¡¨¥¨¥¨²¨º¨¨ȨȨȨȨȨʨʨبߨì¨ø¨©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© ©'©3©3©T©c©{©}©‰©–©–©¹©Æ©Ñ©Ú©ã©î©õ©õ©ÿ©ÿ©ªª2ª>ª>ªi¬xÝ÷Z5Z5l5n5r5{5‡5“5¨5¨5×5Û5à5ì5ÿ5 6 666"6,6lbyO}O}e}t}y}Ž}{}�} } }­}Â}¯}Ñ}×}ð} ~"~;~T~^~„ž�m�m­mµm»mÂmÉmËmÎmÕmÜmÜmímñm÷m÷m nnnn7nZn{n€n¡n¦n²n½nÂnÒnÕnénïnônúnünoo oooo$o4oWoeo}o‚o†o«o¾oÃoÑoéoîoòop'pJp]pbphpmppprpxp~p„p‰p�p—p—p¡pªp¸pÐpÕpÙpþpq1qDqIqYq|qŠq¢q§q«qÐqãqãqþqþqþq r$r&r&r&r4rLrNrNr\rtrtr…r…rŽr›r±rÑrërórþrsssss"sâDâ#$#(çáçáöá âââ$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤CXžXžnžužŠž›ž­ž¯ž¶ž¼žÌž×žážìžŸŸŸŸ Ÿ0Ÿ:ŸDŸKŸVŸkŸsŸsŸ‰Ÿ‰Ÿ‰Ÿ�Ÿ&$5:wâwâ…âšâŸâ¥â'¤Di Ÿ Ÿ¶Ÿ½ŸÄŸÒŸãŸõŸ÷ŸþŸ    ) 4 K N P b i y ƒ � ” Ÿ ³ » » Ñ Ñ Ñ æ ((&,ú/ú/000 0%0)0]ewNwN�N N¯NµN¸NÀN*ø˜Ò¾%¾%à%è%î%û%&&$&$&/&9&9&F&O&^&i&o&y&&�&�&›&¥&¥&·&½&Í&Ó&Ø&ß&ß&'''+'1'4':':'<'B'H'J'J'J'['e'j'j''‰'‰'�'¦'¬'²'È'Í'Õ'ë'ï'ï'÷'ý'( ((($(6(6([(_(e(k(}(�(–(š( (¦(¬(¬(®(²(¸(¾(Ä(É(É(É(É(ô()))))-)5)G)g)g)m)p)t)z)z)Œ)�)²)Æ)Î)ß)ã)é)ö)ø)*"*(*3*V*a*g*m*s*|*‚*”*¥*­*±*·*Ä*Æ*Ò*ð*ö*ü*+ ++.+!+H+Q+W+W+l+q+q+x+‚+—+œ+œ+œ+¹+»+Ø+Ú+÷+ý+, ,,3,9,?,K,b,i,o,z,,,†,Š,”,¢,¤,¬,±,¹,Ä,Ê,Ù,Þ,ä,é,ñ,ö,--,-9-D-`-b-~-~-…-š-Ÿ-¨-µ-º-À-Å-Å-Ì-Ð-Ú-è-ê-ò-ö-ú-....%.,.0.8.@.H.Z.h.m.y.y.�.�.¤.¤.².¸.½.Á.Æ.Æ.Æ.Æ.Ì.Î.Î.ñ.÷.ý./////'/'/'/,/U0+4.wÆÊÆÊàÊäÊüÊË ËËË!Ë'Ë;ËCËHËKËVËaËiËtËË�˗˞˥˰˻˽ËÈËÓËÕËáËêËêËÌ Ì#Ì)Ì2ÌCÌIÌRÌdÌjÌjÌrÌvÌ�̵̷̧̘̣̻̆ÌÊÌÊÌÊÌÛÌÛÌàÌòÌøÌfÍ,Ô@öæöæ ççç:ç:çWçjç}ç�ç•ç•ç³çÁçÔçççïçïçñçñçñçèèèè è è3è3è3èFèQèdèzèèƒèŠèŸè²è¹è¹è¼èáè-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~Ž8Œ8ŒFŒSŒaŒsŒ~ŒŒŒ™Œ§Œ¹ŒÄŒÒŒØŒÞŒ/4 +"7"707<7M7_7h7v7|70€À\. . P W e p – – Ÿ ¡ ¡ ¨ Ô Û Û ê ù    - 5 F O m x z “ ™ ¤ ´ Æ Ï Ú ß å ì '007F]]lu‰�—œ§­µÛäëðû*/7CUUqx€�¢¨±±ÀÆÚßï*=EYwŽ’žµÑãéô &//AEQh„–œ§³ÃÓåëëðòò÷÷ �1ŒÄãvÜvܒܞܢܦܭܴÜÃÜÎÜÔÜÙÜÛÜçÜîÜöÜüÜÝÝÝÝÝ$Ý*Ý0Ý2Ý2Ý>Ý28 2/2/@/F/R/]/n/x//…/3@‡“íí�í˜íŸí¾íËíËíÎíÐíÖí4ÜS  - @ G N U [ ] d k n n € € ’ � ± ¹  Ê Ï Õ ë û  + +. +F +J +J +O +X +b +v +~ +‡ +� +” › -¡ -· -Ç -Ü -á -ú -  ) ) ) ; . ] P r } ƒ › ³ ¸ à × ß è ð ò ø  -  / 1 J b f f z ‚ ‹ “ ˜ Ÿ µ Å Ú ß ø   ' ' ' 9 , [ N p { � ™ ± ± ± ½ à Í Ø ê ú (?VVi„„„¥µÃÃÌÖãý %'FUNm}——°5D‚�&&6JSYkkorz6\Ob8Š8ŠXŠgŠpŠyŠ}Š�Š�ВЗЗЍЬдŠÌŠÏŠÛŠ70üÆäÆäÏäÔäÝäääæäëä8�á''IPWbxxŠ££®²½êÑÄù!59>Skpx|Ž�­ÁÅÅÊèÛ# -ý2P[au�’¦®·¿ÄËÝí6::Ogltx‡z¦º¾ÍÍÍÍàæð÷ -%%AQ__s��¤·¼Ûêã*PAvx¤¤¤¼¯íòý0J7Yp�œ°´¹×Êùì!0NY_s‹�¤¬µ½ÂÉÛë4888Zs‡‹ššš­³½Ä×òòò,,@Ng\z�’±À¹Øèù99@cccƒ9Dt�ÎÎÞòû":lz‘¿}¿}Õ}ä}é}þ}ë} ~~~~2~ ~A~G~`~y~’~«~Ä~Î~;<�›~~ŽŸ¨®²½<¨.ïïï"ï.ï?ïAïQï\ïnïyï„ï“ï¤ï«ïÄïÈïÙïÙïãïêïýïð ð(ð7ðNðNðjðoð›ð=d(=h‰h‰t‰ˆ‰‹‰Ÿ‰§‰«‰µ‰¿‰Ç‰Ê‰Ð‰>4o¸GG.G1G5GBGKGVGfGnGxG G G°GµGµGÅGÊGÊGÚGßGßGïGôGôGH H HHHH.H3H3HCHHHHHXH]H]H]H`HiH‚H�H§HºH¼HÂHÄHÇHØHÝHÝHãHóHóHþHII3I;IAIAIUIUI^IaI!J?Ä nϫϫì«ô«÷«¬¬(¬1¬L¬e¬w¬‚¬“¬—¬©¬¬¬·¬À¬̬߬­­ë¬ ­7­K­W­e­†­›­¿­Ó­Õ­ö­Ü­®®®®®#®9®@®M®R®a®n®�®�®™®�®Ê®Ê®â®ç®ç®÷®û® ¯¯'¯1¯D¯I¯I¯Y¯]¯n¯x¯‰¯“¯¦¯²¯·¯·¯·¯Ù¯ê¯ï¯ü¯°°° °/°4°:°?°?°D°N°]°b°h°m°m°s°y°~°~°†°™°¥°²°¾°Ͱ×°ݰæ°ý°±"±/±4±L±_±v±ƒ±‹±š±¤±ª±³±¼±¼±Á±Á±Á±Á±Á±ѱѱѱé±ÿ±²"²3²@²B²O²T²T²T²_²m²r²r²y²‡²Œ²¤²°²²βÔ²ܲâ²ë²³³#³)³8³@³H³u³†³“³•³£³£³¨³¨³¯³½³³Õ³á³í³ó³ù³´´´´´´ ´$´$´$´$´$´5´5´5´5´5´5´5´5´5´5´M´c´k´†´—´¤´¦´³´ôÈ´È´È´Ñ´ë´÷´ü´µ*µ*µ/µ/µ/µ/µ/µ/µ/µ/µDµIµIµIµZµaµfµfµqµƒµ›µ°µѵòµýµ¶¶¶¶¶B¶K¶\¶b¶ƒ¶œ¶¤¶¬¶º¶ä¶í¶ó¶·-·-·-·-·-·O·ˆ·‘·—·�·¢·«·´·¹·¹·¹·¹·È·Ü·ú· -¸¸¸¸(¸<¸b¸u¸{¸{¸€¸€¸�¸£¸Á¸Ѹ׸ܸܸ︹)¹<¹B¹B¹G¹G¹G¹_¹u¹}¹˜¹©¹¶¹¸¹ǹɹɹɹɹɹݹݹݹݹݹݹݹݹݹݹݹݹݹݹݹݹì¹û¹ºººººº'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º)º)º@ºHºTºTºXº]ºmº‰º¡º°º¼ºÒºìºïºùº»+»K»k»�»‘»¤»Ò»ª»í»í»ð»¼¼#¼4¼7¼Q¼_¼k¼ƒ¼ƒ¼®¼±¼À¼Ô¼õ¼ ½%½½A½V½t½©½§½œ½‘½‚½·½·½·½º½¿½½ܽê½¾:¾:¾e¾h¾w¾‹¾¬¾À¾ܾȾø¾ø¾¿K¿I¿>¿3¿$¿Y¿Y¿Y¿\¿a¿a¿h¿x¿™¿¥¿öÂ@Ä…²wÇwÇ�ǑǜǣǮÇÂÇÂÇÍÇÞÇåÇòÇþÇ ÈÈ È È)È.È6ÈFÈTÈcÈnÈ�È�șșȴÈàÈàÈôÈöÈöÈÉÉÉÉÉÉÉ+É+É+É1É9É?ÉDÉDÉJÉRÉVÉ\ÉaÉaÉwɇɑɠɥɭɭɲɲɹÉÏÉßÉéÉñÉ÷ÉÊ ÊÊÊÊÊ%Ê0ÊdÊsÊ}ʅʋʠʦʫʫʫʫʫʫʫʫʫʶÊÄÊÔÊÚÊâÊñÊöÊË ËËËËË!Ë*Ë7Ë?ËKËVˊ˒ˡ˫ËÅËËËÐËÐË×ËêËòËÌÌÌ,Ì.Ì9ÌAÌVÌVÌ^ÌoÌwÌ~̗̜̄̊̎ÌÀÌÌÌÔÌéÌõÌúÌÍÍÍÍÍ,ÍIÍNÍVÍgÍoÍw͌͑ͤ͜͹;;ÍâÍîÍöÍ ÎÎÎ(Î3Î8Î8Î8Î8Î8Î8ÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎNÎ]Î`ÎnÎ~΄ΌΛΠΨΰβκÎÉÎÏÎ×ÎßÎáÎéÎÏÏÏ Ï&Ï:ÏCÏLÏTÏ^ÏhÏpÏ~σψϚÏÎÏÖÏåÏïÏ ÐÐÐÐÐ Ð(Ð+Ð5ÐCÐUÐWÐiÐ{Ð{Ð{Ð†Ð‹Ð¨Ð­Ð­Ð¶Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»ÐÆÐÒÐêÐýÐÑÑÑ!Ñ(Ñ5Ñ>ÑGÑOÑVÑ[Ñ[ÑcÑkщёєіѦѰѰѰѲÑÇÑØÑÛÑÞÑæÑëÑëÑôÑùÑÒÒÒ*Ò1ÒBÒNÒkÒ„Ò™Ò®ÒµÒµÒºÒºÒºÒºÒºÒºÒºÒÂÒÍÒÙÒèÒíÒíÒõÒýÒ -ÓÓÓÓÓÓÓ(Ó-Ó-Ó-Ó9Ó@ÓFÓPÓUÓlÓ{ӃӔӜӿÓÅÓÌÓÎÓÔÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÝÓÝÓøÓÔÔÔÔ Ô'ÔCÔPÔPÔPÔTÔ_Ô}Ô‹ÔÖAx[ÖÖ•ÖœÖ£Ö®ÖµÖÆÖÐÖ×ÖáÖôÖüÖüÖ×1×7×@×G×J×U×^×e×h×m×xׂהךװ׷׿×Õ×Ü×Ü×Ü×êרØ"Ø4Ø<Ø<Ø<ØGØQØcØiØØ†ØŽØ•تػػØÂØÂØÂØÐØ÷ØÙ ÙÙ'Ù/Ù/Ù/Ù=ÙEÙEÙHÙSÙmÙyÙ¾ÙBx`ºÏÜÏÜçÜ÷ÜþÜÝÝ#Ý&Ý.Ý5Ý8ÝHÝVÝaÝlÝoÝzÝ�ݛݦݱݼÝÃÝÖÝâÝÿÝÞÞ0Þ3Þ9Þ>ÞMÞSÞ[ÞjÞpÞxÞxÞ„Þ’Þ¡Þ©Þ¸ÞÀÞãÞéÞïÞñÞ÷ÞýÞýÞýÞ"ß'ßDßGßGßNß[ß_ßjß„ß�ß ß³ßÏßäßìßößà)à)à�àC ?C/1/191A1F1DôÑʯZ¯ZÐZÛZìZÛZ[[[$[-[4[8[A[A[I[M[m[{[‡[�[˜[¼[¼[Í[Ø[Þ[å[ê[ê[ý[\\$\/\6\@\M\M\_\d\d\r\w\w\ˆ\ˆ\›\ \±\·\À\Õ\é\é\î\î\ü\]]] ]]]]&]-]-]<]B]O]V]^]‚]‚]Š]™]¤]«]­]Á]Ð]Õ]Ú]Ú]Ú]í]ò]^^^&^:^:^?^?^G^]^b^v^}^‚^‚^Ž^�^¯^¾^Ù^ä^þ^_"_1_P_[_`_o_ƒ_Š_‘_¤_¦_´_Ç_É_×_å_õ_ü_``&`3`3`>`R`_`g`i`}`�`–`§`µ`×`Þ`ê`aaaaa a'a+a3a:aJaUasaxa�aŒa•a�a¢a¢a±a¾aÌa×aâaðaöaüab bb b8b8bIbTbVbbb€b†bŒb’b›b¬bÓbÛbåbób ccc-cBcBcOcTcfclclclclcvdEDTa/|/|C|P|f|R|u|w|�|§|¯|FœfɯR¯RÑRÛRSSS6S;S?SGSPS_SfSoStS‰SšS¹SÁSÃSâSêSùST TTT T&T(T9T>TTT@TcTiTiTqTzT‰T¨T¯T±TÐT×T×T×TîT÷TUUU+U UCUHUYU^UtU`UƒU‰U�U˜UžU U±U¶UÌU¸UÛUáUáUéUòUòUüUüUVDVMVYV]VkV�VvV™V™V«VG ;zââ&â/â2âDâZâ\âeâjâ‹â©â¸âÖâêâã ã/ãMã\ãyãŠã¡ã¥ã¥ã©ã®ã³ã½ãÀãÊãÏãèãëãëãëãëãðãöãä ä,ä5äIäQäZävä�ä�ä–äªäªä¹ä¾ä¾äÌäHPcs‡@‡@¨@•@Ê@·@Ù@è@ð@û@ý@AAA5A;AIPµÅûûû û/û/û6ûcûyûeû–ûˆû®û¶ûJŒ•´‡ù‡ùºùæùæùùùýù ú/ú4ú4ú;úCúKú`úlú}ú‚ú“ú§ú¬ú®ú®ú®úÊúèúèúûKP�­g=g=�=’= =¦=Á=Ð=ß=î=ü=> ->>Lè7?/?/j/m/p/v/{/’/©/À/ä/00"0<0N0[0q0‚0‡0’0š0š0¤0¤0¯0´0É0Ï0î0 11$1*1I1h1p1{1{1…1…1—1Õ1í1ÿ1M$ WZWZ‚ZkZŒZ”ZNLx‡ÖÌÖÌèÌýÌÍ Í&Í.Í>ÍIÍZÍ`Í’ÍOTHY0e0eBeDeMeVedeiereuezeˆe’e•eŸeP¨!Gˆcˆc˜c¡c´cÁcÍcÙcåcñcddd"d+d2d;dRdidnd€d�d›d­d­d¶dÙdÙdÛdîdðd -eee0eQlõŒ p p9pDpTp�p¤p¸p¿pÇpÏpØpàpèpêpòpúpqq'q?qHqHq}q§q°qÒqìq r3r?rarcrjrqrqr”r°r×rórs6s]sys s¼sãsÿs&t&t5tBtGtGtVtcththtotztŒt¤t¼tÔtÖtÖtÖtÝtÝtêtïtïtïtuu!u6uruyuyuyu�užu¬uÊuÓuÜuéu÷uv-v-v-v?vMviv‡v‡v‡v’v•vÄvÆvÝvãvôvývÿv wwww*w*wNwPwWwhwqwsw�wƒw‘w“w¡w¡wÁwÁwÁwÁwáwx;xCxGxOxSxaxoxqxyx}x�x‰x—x¥x¥x¿xÊxàxôxy-y8yByIybynyuyŽyŽy y¥y§y­y¾yÏyÞyåyöyÿyzzz z!z/z/z/zSzSzrzyz€zƒz�z’z z¤z²z¶zÄzÈzÈzázèzízûz{{0{P{c{r{t{ƒ{…{”{ž{ž{¬{µ{Ë{Ò{÷{ü{%|U|Z|h|j|x|�|›|�|Ÿ|¦|·|À|Â|Ð|Ò|à|â|ð|ð|}}}}}/}/}/}:}V}{}”}™}™}™}»}À}À}À}à}å}å}å}~ ~ ~~~~~~~#~#~&~+~J~`~…~¡~µ~º~º~Õ~â~ä~ó~ü~>@@HCƒƒƒ¢¢¢ÃÈÈÈêïï€€3€8€8€S€a€c€r€{€•€—€—€œ€—€½€¿€¿€Ç€Â€��� � �7�7�a�y�‘�œ�²�Æ�ß�÷�‚-‚/‚@‚]‚t‚{‚s†R„7wèwè•è£è¹èÓèáèÿè -é&é&é&é3éNéPéPéPé]éxézézéˆé•é°é°éÕéÙéíéÿéSæd®Ü®ÜÈÜÑÜñÜñÜ÷ÜÿÜÝÝÝÝ*Ý*ÝDÝIÝIÝOÝTÝTÝZÝ_Ý_ÝeÝjÝj݂ݕݛݠݠݩÝÉÝÉÝÉÝÐÝÒÝÒÝÙÝÛÝÛÝáÝáÝèÝêÝêÝðÝðÝ÷ÝùÝùÝÿÝÿÝÞÞÞÞÞ"Þ"Þ"Þ"Þ.Þ6Þ>ÞFÞNÞVÞ^ÞdÞ|Þ‹Þ•Þ˜Þ˜Þ¢Þ¨Þ®Þ®Þ²ÞºÞÁÞÅÞÍÞÕÞÛÞãÞêÞòÞúÞþÞßßß"ß.ß4ß<ß@ßGßOßWß[ßaßißpßx߀߄ߊߕߚ߰ßÁ߯ßÉßnàTLœ«H‡H‡a‡c‡j‡€‡�‡–‡®‡Æ‡É‡Û‡#ˆUÔ/`žðžð²ðÇðÖðÚðèðñðññññ%ñ0ñ7ñGñ^ñuñ{ñ€ñ„ñ—ñ—ñ­ñ¯ñ¹ñÝñèñêñòòòòò!ò0ò8òKòµòV$ZZBZ+ZLZTZWP©¹¯C¯CÐC½CòCßCDDD#D%D0D;D;D]DcDX,>×>×G×M×U×^×g×l×Y�¿Ž¿ŽàŽõŽ��C�P�b�‚�’�’�Ÿ�Ÿ�¦�¹�·�Ç�Ç�Ò�Ü�â�è�ë�ù��� �"�7�<�G�R�l�†�—���£�ª�Á�°�Ñ�×�Ý�å�‘í�‘‘‘"‘"‘)‘@‘/‘P‘V‘\‘d‘„‘l‘�‘“‘™‘¡‘¡‘¡‘·‘·‘·‘·‘‘̑Ցõ‘’’’(’<’A’A’L’T’_’h’t’ˆ’˜’­’Â’ß’ä’ä’ï’÷’““ “.“K“`“u“€“…“…“�“¦“»“Ǔؓݓ” ””%”*”*”9”>”>”M”R”R”c”h”h”y”~”~”‘” ”¥”¥”¸”ǔ̔ڔ̔î”ó”•ó”••(••<•A•O•A•c•h•h•…•Š•¬•±•¿•±•ӕؕؕõ•ú•–!–/–!–C–H–H–e–j–Œ–‘–Ÿ–‘–³–¸–¸–Õ–Ú–ü–———#—(—(—C—H—H—c—h—h—ƒ—ˆ—ˆ—£—¨—¨—×È—È—ã—è—è—˜˜˜#˜(˜(˜9˜>˜>˜O˜T˜T˜`˜k˜€˜…˜…˜‘˜ª˜¯˜Õ˜ܘæ˜ë˜ü˜™™&™+™<™G™O™T™T™X™\™c™m™w™w™Š™�™�™�™“™¬™µ™µ™Û™à™à™è™ü™š š,š7šBšMš_škštšyšyšyšŠš§š²š¼šÇšÌšךßšäšäšïš÷š› ››3›K›_›d›d›o›‚›Œ›—›¸›Ä›Õ›Ú›ë›ï›ô›ô›œœœœ'œ7œFœcœxœ�œ˜œ�œ¨œ°œµœÀœМßœüœ�&�&�&�&�+�0�0�<�M�M�r�t�‘�‘�›�¯�¹�»�Ç�Ï�ì�ý�žž5žFžWžhžsž‹ž›ž ž ž«ž°ž°ž¸žÞȞȞОÛžàžàžèž Ÿòžðž!Ÿ&Ÿ&Ÿ.ŸOŸ8Ÿ6ŸgŸlŸ€ŸlŸ˜Ÿ�Ÿ�ŸªŸ¯Ÿ¯Ÿ·Ÿ¼Ÿ¼ŸΟàŸåŸåŸùŸåŸ    # # 6 ; ; N S S m } ‚ ‚ œ ¬ ± ± Ë Û à à ú  -¡¡&¡¡>¡C¡C¡N¡S¡�¡}¡k¡S¡§¡¬¡è¡Ö¡Ä¡¬¡¢¢¢¢$¢)¢)¢8¢H¢M¢M¢\¢j¢o¢—¢…¢o¢¯¢´¢Ü¢Ê¢´¢ô¢ù¢!££ù¢9£>£>£[£E£…£•£š£š£µ£¡£ߣï£ô£ô£¤¤¤¤¤¤)¤9¤>¤>¤Q¤a¤f¤f¤y¤‰¤ޤޤ¡¤±¤¶¤¶¤¾¤ääˤФФؤݤݤå¤ê¤ê¤ý¤¥¥¥¥h¥V¥D¥2¥¥u¥z¥È¥¶¥¤¥’¥z¥Õ¥Ú¥Ú¥é¥¦ ¦ ¦¦5¦:¦:¦K¦Y¦^¦^¦f¦k¦k¦s¦x¦x¦€¦…¦…¦½¦«¦™¦Œ¦ܦ÷¦ü¦ü¦4§"§§§S§n§s§¨§–§‹§s§À§ŧú§è§ݧŧ¨¨1¨¨¨I¨N¨k¨U¨N¨ƒ¨ˆ¨ˆ¨”¨­¨½¨ΨΨó¨õ¨ ©©©.©;©l©�©‹©À©È©È©È©Ô©Ù©Ù©ì©÷©ªªªª ª ª:ª?ª?ªGªLª`ªLªoªzªª“ªª¢ª­ª²ª²ª½ªΪÓªÓªÞªéªîªîªÿª«««)«.«9«.«H«M«a«M«p«u«€«u«�«”«¨«”«·«¼«¼«Ы¼«ß«ß«ß«ä«ð«ä«¬¬¬¬¬'¬,¬,¬8¬,¬K¬P¬P¬\¬P¬o¬t¬ˆ¬t¬—¬£¬®¬¹¬¾¬Ò¬¾¬á¬í¬ø¬­­­­3­+­<­A­A­I­N­N­W­\­\­e­j­j­s­x­x­ƒ­ˆ­ˆ­“­˜­˜­£­¨­¨­³­¸­¸­íȭȭӭححã­è­ü­è­ ®®!®,®1®1®;®@®@®J®O®O®Y®^®^®h®m®m®u®z®z®‡®Œ®Œ®™®ž®ž®ž®ž®ž®¦®«®«®³®¸®¸®À®Å®Å®Í®Ò®Ò®Ú®ß®ó®ß®¯¯¯¯ ¯*¯J¯O¯e¯p¯‰¯u¯˜¯£¯®¯³¯³¯º¯ůå¯ê¯° °$°°3°>°I°N°N°U°`°€°…°›°¦°¿°«°ΰÙ°ä°é°é°±ð°±3±8±N±Y±r±^±•±�±¤±¯±´±´±ϱ»±Þ±þ±²²$²=²)²`²L²o²z²²²š²†²©²ɲβä²ï²³ô²+³³:³E³J³J³Y³^³^³m³r³r³r³x³}³}³}³‡³‰³‰³“³š³½³¿³¿³ɳɳɳɳɳ˳˳â³é³ô³ô³ÿ³´ ´´"´-´'´H´e´Z´}´}´‹´…´±´¦´É´É´É´Ò´Ù´ì´ñ´ÿ´µµ1µ<µSµsµsµsµ”µ¤µ¹µ˵ÛµÛµ¶¶¶(¶(¶,¶1¶8¶H¶g¶g¶k¶‚¶‰¶޶޶’¶�¶©¶·¶ä¶í¶þ¶ ·?·K·P·f·~·Š·›· ·±·зþ·'¸*¸:¸<¸<¸@¸_¸j¸j¸m¸~¸¯¸Ò¸Ò¸Õ¸úºZ, n×n×|ׂ׆×�טמ×[`EYφφå†ó†ú†þ† ‡&‡*‡0‡F‡c‡e‡e‡–‡„‡e‡µ‡¿‡\8 -§Y§YÈYµY×YâYíYøYZZZ]\’¡¡¡ ¡+¡3¡>¡I¡T¡V¡l¡l¡~¡Š¡“¡–¡Å¡^l½”§î§îÌîÑîÞî -ï -ïï"ï@ïHïuïzï£ïÃïßïåïéï ð2ð7ð`ð}ð£ðºðÀðÄðÝðåðêðûðñ"ñ(ñ,ñEñMñlñqñ‚ñŠñ©ñ®ñ¶ñ¼ñÀñÄñÖñÞñãñòòòòò%ò=òLòYòyòyò�ò•ò•ò¬ò®ò®òÂòÄòÄòÛòÝòÝòôòöòöò ó ó ó$ó$ó3ó3óló…ó…ó˜ó�ó�ó�ó�óÀóÜóøóøóøóôôôô ôôôôôôFôHôhôˆôˆôˆôˆôˆô¢ô¥ôºôÁôÃôÌôßôáôíôíôõôõõõ&õ=õGõoõ�õ�õ½õÞõöõö;öJöhö�ö¥ö´öËöçöìöìö ÷%÷%÷8÷8÷D÷V÷[÷[÷s÷’÷¸÷Ç÷å÷ -ø*ø9øgøzø„ø¦ø¨ø¨ø¨ø´ø´ø´øÒøùùùùùùùùùù/ù4ùGù†ù_\ -÷N÷N O O;OHO_OtOO”O�O£O«O¶OÌOÂOäOêO`à7:7:U:X:_:f:m:q:s:z:�:…:‰:œ:Ä:ß:Ì:÷:ü: ; ;,;4;C;};‚;¯;·;¼;Å;Ñ;Ù;à;<<*<,<N<m<Z<|<‚<‰<‰<�<’<–<§<§<Ê<Ü<a$ÏàÏàÞàùàùàÿàb|k†×ë×ëñëìì<ìLìNìNìNìNìUì]ìxì‘ì“ì“ì“ì›ì¶ì¸ì¸ìÂìÂìÚìc”"§5§5É5Ó5ß5ä5ô5ú56#636A6O6f6n6x6‡6�6œ6¤6§6§6§6©6¸6Â6Ë6Ó6Ö6è6dô¦ß'7'7P7]7`7i7o7†7�7´7¿7õ788 8*8D8V8c8y8‹8¢8§8¹8¾8Á8á89 99969V9^9f9h9ˆ9�9•9š9¥9¥9°9°9¼9¼9Î9:':':7:ed¤¹����#�)�1�?�R�^�x�…�…�ˆ�–�¦�À�Ä�Ì�f(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+ -++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-æ.g¬÷V V p v } … � � › ­ ­ Ä Ë Î Ð Ü í í ð ø    " % , 0 8 F X k n ½ h(ÈÎÿ€ÿ€&��5�G�O�i=ÏQÏQòQR RRR$R1R7R@RFRKRjRƒRˆRŽR�R’RŸRŸR¤R­RµR¾RÆRÈRÐRØRàRíRóRþRSS S/SPSWSbSkS|S€SˆSˆSœS¬S´S·STj8-7*0*0>0B0G0R0]0`0d0l0kˆZø¿‡¿‡Ù‡ô‡ú‡ˆˆˆ-ˆ2ˆ=ˆ[ˆEˆjˆ}ˆ�ˆ˜ˆ ˆªˆȈÚˆãˆëˆõˆ‰úˆ ‰1‰;‰C‰[‰E‰€‰j‰�‰¡‰«‰³‰³‰¼‰ĉÚ‰ó‰ŠŠŠŠ Š$ŠBŠDŠIŠTŠjŠjŠjŠnŠzЛХНЏŠÙŠãŠíŠïŠïŠ ‹‹(‹+‹D‹H‹c‹g‹†‹Š‹¥‹©‹©‹©‹¯‹½‹Ç‹à‹æ‹ñ‹ý‹ÿ‹Œ Œ&Œ1Œ?ŒIŒbŒeŒmŒyŒ{ŒƒŒ†ŒŸŒ¡Œ­Œ¯Œ·Œ½ŒÖŒîŒúŒ��)�9�R�c�c�n�y�‘���²�·�Ì�Ü�õ�ŽŽ ŽŽ Ž-Ž4ŽFŽleãnànàˆà‘à±à±à·à¿àÇàÏà×àÝàêàêàøàýàýàááááááááá6áIáOáTáTá]á}á}á}á„á†á†á�á�á�á•á•áœážážá¤á¤á«á­á­á³á³áºáºáÂáÈáÎáÖáÖáÖáÖáâáêáòáúáâ -âââ0â?âIâLâLâVâ\âbâbâfânâuâ}â…â‰â�â—âžâ¦â®â²â¸âÃâÉâÖâââèâðâôâûâã ãããã$ã,ã4ã8ã>ãIãNãdãuãzã}ã"äm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Ò8•8•N•_•p•�•’•£•¶•¾•Ì•ê•õ•û•–––0–A–G–\–w–w–ƒ–‹–“–™–®–¶–º––Ж֖ۖۖ𖗠———"—E—X—d—h—r—‹—‘—“— —¢—´—´—»—×՗՗˜˜'˜+˜5˜9˜E˜I˜U˜Y˜e˜i˜i˜˜’˜˜˜œ˜¦˜ª˜¹˜½˜Ì˜Ð˜ã˜ç˜ç˜ç˜ç˜þ˜ ™™!™8™H™V™a™w™„™“™›™¨™Ã™Ó™ã™è™è™è™è™õ™š šš'š6šKš\šlšršršrš„šŠš–šœš©šÄšÔšàšæšóš››5›¿œoÔÃô0n0nBnSn^nin‚n”n¬n±nÀnÇnÔnÛnénðnònõnúnünoo6oLodoioxooŒo£oÁoÈoÊoÍoÒoõop pp$hm&& &4&;&U&qxKe¿Q¿QçQÓQöQRýQ R%R,R4R;RFRQRYRaRlRwR�R‚R¥R­RrJ‡·t·tÓtÚtòt -uu u u$u/u;uFuTudutu{u�u–u«u«u¿uÇu×uäuóuvv"v0v>vEvKv`vuvuv‰v–v§v·vÀvÑvÑv×våvövwwuws8³½QQƒQˆQ�QžQ¬QµQºQ¿QÁQt88Br0r0†0Š0�0š0¤0§0«0³0u0ˆ�ŸOŸOµOÈOÕOÛOÞOæOvÜt¾¾àëöÿ!'-3I8]jmu‡�’µÈÌÒéïÿ $2KYbrt{€ˆ§µÁÛú  &,2Hi}‰ «ºÈ×äô%*8Tf}†Œ—œ¢¹ÄÑØØæõ÷&&.Q\�w`0DÏ…Ï…å…÷…þ…††0†4†:†P†m†o†o† †ކo†¿†ɆxDˆÕÏäÏäáäéäôäúäååå4å4å;å>åCåUåYå€å„å‰å‰å�å“å˜å¤åµå¹åÊåÜåàåâåôåøåææææ1æ4æBæLæSæyæ„æˆæ�æÃæÜæçæëæüæç ç çççç0ç4ç6ç6çAçEçYç]ç]ç]çaçƒçy¼Ö‡ç‡ç›ç±ç±ç±ç¶ç¶ç½çÂçÂçÉçÎçÎçÛçàçàçíçôçöçöçè -è è è(è(è(è+è-è-è-è1è3è3è7è7è7èSèXèXèqèz°0X[[ ['[2[–[|[q[W[@[œ[®[ž[Î[Î[å[Ù[\\(\=\*\L\R\Y\}\l\`\”\–\²\²\¹\ã\ã\ã\ï\{ÈQ¿FüFüdüoüzü ü ü¢ü¯üºüÀüÑüàüïüüüüüýý ý"ý5ý@ýDýVýcýkývýrý�ý›ý›ý›ý¦ýÁý¬ýÉýÜýÞýúýæýþþþþ.þ.þ5þ;þDþKþNþpþ„þwþŒþ’þ›þ›þ›þ®þ³þ³þ»þ»þÆþÛþäþäþäþäþÿÿÿ"ÿ"ÿ7ÿ=ÿBÿBÿNÿkÿ‹ÿ�ÿ•ÿ•ÿ¡ÿ¾ÿÍÿÜÿäÿéÿïÿôÿôÿûÿ%BDLavv||‰’’°ÆÑÖãî÷ÿ&&66HN}††ˆ�””¡¬²»»ÎÛíø>GRW^fyŽ“š§®ÀÕÜâëëô(8FFLS\\o�„„•�¥±ÎÕâäëÿ888EEZew„��¨·¾¾×êìû 55;DDQWiivy„–�¨­µ¼ÇÌáãý!2@RRX_hm‘šš ©©ÈÈÕØáêòý  -09BJUgmxx…ˆ‘šœ¾Ñæì÷ "› |t·ÐR4R4d4m4p4y4‚4”4”4À4Ä4É4Ì4Õ4ä4ê4í4õ4ø4ý45}`2ïOïOPP&PKP7PZP_PfPnPuP€PˆP“P©PžPÁPÉP~À-¸g¸gÖgægðgðgúgúghh#h&h(h1h>h>hLh`h`h„h‘h‘h¡h®h®hÑhÞhÞhóhi*iLiUibibi…i�i�iÂiõiûiûiûi jt�¶Z3Z3n3�3¡3µ3¼3È3â3ë3ñ34 4 4!4!4$4'4<4B4D4D4L4€¸ºäÐ�Ð�è�ê�ö�ú�Ž -Ž$Ž$Ž$Ž*Ž.Ž6ŽAŽUŽaŽcŽcŽlŽnŽnŽwŽyŽyނބބŽ�Ž�Ž–ŽœŽŸŽ©ŽºŽÀŽÌŽÌŽ4��œ&ï(ï( ))6)=)Y)N)q)‘)}) )±)¶)×)Ã)ï) **/*$*G*g*S*v*‡*�*‰*µ*Â*Â*Ú*Ú*ä*‚¨¥Ç3Ç3Ó3ã3î34H4Y4j4|4ƒ4Š4ž4¥4¥4´4Â4Ñ4é4ø455!5$5)5@5P5`5d5k5¡5ƒx± (±(±>±E±L±k±z±‰±˜±§±¶±À±À±Å±Ì±ß±î±ó±²(²(²>²P²T²b²i²n²n²u²‡²�²’² ²²²²²²²Ä²Ï²á²ì²ù²þ²³³#³/³4³A³F³V³[³k³m³}³³�³‘³¢³«³«³­³½³Ä³Ô³Ô³ï³´´%´5´5´5´8´K´„\åø8�8�S�Z�_�m�‚�‰�“�¡�¤�¦�°�Â�Â�É�ÿ�…0ÎÖžž¶öêÀ¾ -†`/ττå„÷„þ„……0…4…:…P…m…o…o… …Ž…o…¿…É…‡L[j?2?2M2_2e2m22…2Ž2 2¦2©2å2ˆ(–œ*3*383G3K3N3T3‰\k~ç2ç2õ23 33'3-363H3N3W3i3o3r3À3Š, ××$×+×3×8×>׋„$··Õçîõ ++0RgTv…‡©©©¸ÔÊìöŒ`B?i?i\idiki�iži i®i»iÁiÌiãiòiýij jj j+jBjYjljƒj�j›j­j¯j½jÏjÏjØjéjïjÿjÿjkkH.Ø.Ø7Ø7ØEØIØPØSØXØ’DDQG1G1a1t1~1…1‘1©1²1¶1È1Î1í1“Ä{¨©¬³¸¾ÀÅËËÝäú "$+1;;OQX^hhh‘˜§©¿ÒÒä”0RZï1ï1ø12/25252=2•„a~¶ò¶òÈòÝòçòðòòòùò óóó ó ó)ó:ó=ó=óaólónó‡óŽó’ó¡ó´óô–  ->0>0G0d0i0—hú—f—f­f¸fÃfÑfÜfåföfÿfgg"g9g9gKg\gigrgƒg‰g×g˜„=Z—J—JÇJÍJÖJâJêJñJõJþJþJK -K"KLKQKuK}KK—K¯KÓKòKL™lò §§¿ÑØß%:'\Ikk}„¦¦®š y}ˆ‹ˆ‹‘‹�‹¢‹›(AVèVèxè€è†èŽè�è�è¡è¡è¡è©è±èÃèÒèÃèçèéèéèééééé0é5é5é5éJéLéYé[éhéjéwéé‡éŽé¢é¯é±éÂéÏéÏéÏéØéêéýéê ê êêê/ê/ê/ê:êDê\êaêaêaêoêuêzê‚ê�êŸêªê¯ê¯ê¶êºêÈêÌêÕêÜêúêëëë3ë8ë8ë8ë8ë@ëKëYëYëyëyëyë€ëŽë�ë°ëÃëÅëÅëÅëØëØëßëæëëëñëì ì)ìSìYìYìmìrì–ì�ì©ìÇìÚìåìììðìðìðìðìûìíí5í@í]ígígíuí“íÃíÖíçíþíîîîîî)î;îFîKîKîKî]î‡î�î�î�î˜î¢î®î¹î»î»î»îÀîÌîÌîïœH%Š/Š/˜/Ÿ/ª/·/Â/Ê/Ê/â/ì/ò/ø/�0 NN¦N“NµNÑNÇNéNñNžLè÷?'?'Y'n'„'¥'’'½'Â'í'(û'&(>(>(H(Ÿð[“LL>C\az�¡¦±¹¹¹»Ôéôþ  .#Ff¢àZŽ e eºeÈeÍeÚeèeñe ff?fHfXfsf~fŽf�f’fœf¨f¬f¹fÅf×fßf÷fûfûfûfûfgg8g8g?gBgJgVg_gµg£d'<ç*ç*++.+5+Q+F+i+‰+u+˜+©+¿+«+×+ä+ä+ü+ü+,¤ü%`÷÷!,Y?3h‰ž‹Ó¹­âÿÿÿ..czn¬±Ä¸ìÚû4!OCwe†£££µÒÒóú$¥(fåfåtå—å�å¢å¢å¨å¦(!'ž×ž×§×µ×»×½×Â×§D]j : :::A:J:V:k:s:y::�:�:‘:¨„½Ú¸ª¸ªëª÷ªûª« ««««"«&«.«3«7«H«Y«[«_«p«�«�«£«««¶«¶«¶«È«©€ÀœÀœÙœàœçœîœôœ���$�;�>�@�[�e�o�v���“�›�›�±�±�Ã�ª Ê ¯V¯VÕVòVúVWWW"W=WSWlWrWzW}W’W—W©WËWÑWÙWÞWäWçWýWXX*X2XGXLX[X}XƒXˆXˆXˆX•X¦X±X¾XÊXÝXêX÷XY#Y-Y/YFYVY[YfYmY�Y�Y�Y¢Y«<ÑÜ +­ +½ +Ò +Ô +í +    % . 6 ; A W g | � š ² ¶ É É É Û Î ý ð   # ; S X c w  ˆ � ’ ˜ ª º Ï Ñ ê     " + 3 8 ? U e z  ˜ ° ´ Ç Ç Ç Ù Ì û î !9QQQ]cmxŠš±Èßöö $$$EUcclvƒ�«²ÅÇæõî 77P5D‚�¶¶ÆÚãéûûÿ +6\ObÈŠÈŠèŠ÷Š‹ ‹ ‹‹‹"‹'‹'‹8‹<‹D‹\‹_‹k‹70üVåVå_ådåmåtåvå{å8�áÇÇéð÷*CCNR]Šqd™°ÁÕÙÞó .!Maeejˆ{ê�Òðû-2FNW_dk}�£¥¾ÖÚÚï 'FZ^mmmm€†�—ªÅÅáñÿÿ!/DW\{Šƒ¢²¹ÊðáDDD\O�’�£®Ðê×ù!<PTYwj™ŒÁ®Ðîùÿ+0DLU]bi{‹¡£¼ÔØØØú'+:::MS]dw’’’®¾ÌÌàîü-2Q`Yxˆ™··ÙÙà   # 9Dt�^^n‚‹‘££§ª²:lz‘_~_~u~„~‰~ž~‹~­~°~°~½~Ò~¿~á~ç~2Kdn;<�›/8>BM<¨.¦ï¦ï®ï²ï¾ïÏïÑïáïìïþï ðð#ð4ð;ðTðXðiðiðsðzð�ð–ð�ð¸ðÇðÞðÞðúðÿð+ñ=d(=ø‰ø‰ŠŠŠ/Š7Š;ŠEŠOŠWŠZŠ`Š>4o¸GG.G1G5GBGKGVGfGnGxG G G°GµGµGÅGÊGÊGÚGßGßGïGôGôGH H HHHH.H3H3HCHHHHHXH]H]H]H`HiH‚H�H§HºH¼HÂHÄHÇHØHÝHÝHãHóHóHþHII3I;IAIAIUIUI^IaI!J?Ä no¬o¬Œ¬”¬—¬¥¬³¬ȬѬ쬭­"­3­7­I­L­W­`­l­­°­¥­‹­À­×­ë­÷­®&®;®_®s®u®–®|®±®´®¹®¼®¼®îÙ®à®í®ò®¯¯!¯!¯9¯=¯j¯j¯‚¯‡¯‡¯—¯›¯¬¯¶¯ǯѯä¯é¯é¯ù¯ý¯°°)°3°F°R°W°W°W°y°а�°œ°±°±°¶°À°ϰÔ°Ú°ß°ß°ä°î°ý°±± ± ±±±±±&±9±E±R±^±m±w±}±†±�±±±±ϱÔ±ì±ÿ±²#²+²:²D²J²S²\²\²a²a²a²a²a²q²q²q²‰²Ÿ²§²²Ó²à²â²ï²ô²ô²ô²ÿ² ³³³³'³,³D³P³b³n³t³|³‚³‹³±³½³óɳسà³è³´&´3´5´C´C´H´H´O´]´b´u´�´�´“´™´¢´§´§´§´§´§´¿´Ä´Ä´Ä´Ä´Ä´Õ´Õ´Õ´Õ´Õ´Õ´Õ´Õ´Õ´Õ´í´µ µ&µ7µDµFµSµcµhµhµhµqµ‹µ—µœµ¾µʵʵϵϵϵϵϵϵϵϵäµéµéµéµúµ¶¶¶¶#¶;¶P¶q¶’¶�¶®¶³¶³¶³¶¼¶â¶ë¶ü¶·#·<·D·L·Z·„·�·“·´·Í·Í·Í·Í·Í·ï·(¸1¸7¸=¸B¸K¸T¸Y¸Y¸Y¸Y¸h¸|¸š¸ª¸°¸µ¸µ¸ȸܸ¹¹¹¹ ¹ ¹/¹C¹a¹q¹w¹|¹|¹�¹£¹ɹܹâ¹â¹ç¹ç¹ç¹ÿ¹ºº8ºIºVºXºgºiºiºiºiºiº}º}º}º}º}º}º}º}º}º}º}º}º}º}º}º}ºŒº›º¦º¨º¨º±º³º³ºǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺǺɺɺàºèºôºôºøºýº »)»A»P»\»r»Œ»�»™»¥»Ë»ë» ¼/¼1¼D¼r¼J¼�¼�¼�¼ ¼¨¼üÔ¼×¼ñ¼ÿ¼ ½#½#½N½Q½`½t½•½©½Ž±½á½ö½¾I¾G¾<¾1¾"¾W¾W¾W¾Z¾_¾b¾|¾о¸¾Ú¾Ú¾¿¿¿+¿L¿`¿|¿h¿˜¿˜¿¶¿ë¿é¿Þ¿Ó¿Ä¿ù¿ù¿ù¿ü¿ÀÀÀÀ9ÀEÀ–Ã@Ä…²ÈÈ-È1È<ÈCÈNÈbÈbÈmÈ~ȅȒȞȫȯÈÀÈÀÈÉÈÎÈÖÈæÈôÈÉÉ!É!É9É9ÉTɀɀɔɖɖɠɨɨɲɺɺɺÉËÉËÉËÉÑÉÙÉßÉäÉäÉêÉòÉöÉüÉÊÊÊ'Ê1Ê@ÊEÊMÊMÊRÊRÊYÊoÊʉʑʗʦʫʳʹʹʾÊÅÊÐÊËËË%Ë+Ë@ËFËKËKËKËKËKËKËKËKËKËVËdËtËz˂ˑ˖ˣ˫˰˰˰˸ËÁËÊË×ËßËëËöË*Ì2ÌAÌKÌeÌkÌpÌpÌẘ̷̧̯̒ÌÌÌÎÌÙÌáÌöÌöÌþÌÍÍÍ$Í*Í.Í7Í<Í`ÍlÍt͉͕͚ͦͱͶͶͶÍÌÍéÍîÍöÍÎÎÎ,Î1Î<ÎDÎYÎ^Î^΂ΎΖΫημÎÈÎÓÎØÎØÎØÎØÎØÎØÎãÎãÎãÎãÎãÎãÎãÎãÎãÎãÎãÎãÎîÎýÎÏÏÏ$Ï,Ï;Ï@ÏHÏPÏRÏZÏiÏoÏwÏÏ�Ï‰Ï¦Ï¯Ï·Ï¿ÏÆÏÚÏãÏìÏôÏþÏÐÐÐ#Ð(Ð:ÐnÐvÐ…Ð�ЩбжжжпÐÈÐËÐÕÐãÐõÐ÷Ð ÑÑÑÑ&Ñ+ÑHÑMÑMÑVÑ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[Ñ[ÑfÑrÑŠÑ�ѥѴѹÑÁÑÈÑÕÑÞÑçÑïÑöÑûÑûÑÒ Ò)Ò1Ò4Ò6ÒFÒPÒPÒPÒRÒgÒxÒ{Ò~Ò†Ò‹Ò‹Ò”Ò™Ò¡Ò¨ÒµÒÊÒÑÒâÒîÒ Ó$Ó9ÓNÓUÓUÓZÓZÓZÓZÓZÓZÓZÓbÓmÓyÓˆÓ�Ó�Ó•Ó�ÓªÓ¯Ó¯Ó¯Ó³Ó¸Ó¸ÓÈÓÍÓÍÓÍÓÙÓàÓæÓðÓõÓ ÔÔ#Ô4Ô<Ô_ÔeÔlÔnÔtÔ{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô{Ô}Ô}Ô˜Ô¢Ô°Ô°ÔµÔÀÔÇÔãÔðÔðÔðÔôÔÿÔÕ+Õ ×Ax[ × ×5×<×C×N×U×f×p×w×�הלל׷×Ñ×××à×ç×ê×õ×þ×ØØ ØØ"Ø4Ø:ØPØWØ_ØuØ|Ø|Ø|؊رغØÂØÔØÜØÜØÜØçØñØÙ Ù Ù&Ù.Ù5ÙJÙ[Ù[ÙbÙbÙbÙpٗ٤٭ٵÙÇÙÏÙÏÙÏÙÝÙåÙåÙèÙóÙ ÚÚ^ÚBx`ºoÝo݇ݗݞݥݰÝÃÝÆÝÎÝÕÝØÝèÝöÝÞ ÞÞÞ0Þ;ÞFÞQÞ\ÞcÞvÞ‚ÞŸÞ¨Þ°ÞÐÞÓÞÙÞÞÞíÞóÞûÞ +ßßßß$ß2ßAßIßXß`߃߉ß�ߑߗß�ß�ß�ßÂßÇßäßçßçßîßûßÿß +à$à0à@àSàoà„àŒà–àµàÉàÉà=áC ?Cw1w1�1‰1Ž1DôÑÊO[O[p[{[Œ[{[¦[´[´[Ä[Í[Ô[Ø[á[á[é[í[ \\'\-\8\\\\\m\x\~\…\Š\Š\�\¨\¹\Ä\Ï\Ö\à\í\í\ÿ\]]]]](](];]@]Q]W]`]u]‰]‰]Ž]Ž]œ]¡]¡]¦]­]µ]¼]¾]Æ]Í]Í]Ü]â]ï]ö]þ]"^"^*^9^D^K^M^a^p^u^z^z^z^�^’^¡^¨^±^Æ^Ú^Ú^ß^ß^ç^ý^___"_"_._=_O_^_y_„_ž_°_Â_Ñ_ð_û_``#`*`1`D`F`T`g`i`w`…`•`œ`³`º`Æ`Ó`Ó`Þ`ò`ÿ`a aa/a6aGaUawa~aŠa¨a¨a¨a°a»a¿aÇaËaÓaÚaêaõabb!b,b5b=bBbBbQb^blbwb‚b�b–bœb¢b«b±bÀbØbØbébôböbc c&c,c2c;cLcsc{c…c“c«c²c¾cÍcâcâcïcôcd d d d deEDTaÏ|Ï|ã|ð|}ò|}}/}G}O}FœfÉOSOSqS{S£S²S½SÖSÛSßSçSðSÿSTTT)T:TYTaTcT‚TŠT™T T¬T±T¸TÀTÆTÈTÙTÞTôTàTU U UUU)UHUOUQUpUwUwUwUŽU—U£U§UµUËUÀUãUèUùUþUVV#V)V0V8V>V@VQVVVlVXV{V�V�V‰V’V’VœVœV´VäVíVùVýV W!WW9W9WKWG ;z§â§âÆâÏâÒâäâúâüâã +ã+ãIãXãvãŠã¢ã©ãÏãíãüãä*äAäEäEäIäNäSä]ä`äjäoäˆä‹ä‹ä‹ä‹ä�ä–ä²äÀäÌäÕäéäñäúäå!å-å6åJåJåYå^å^ålåHPcs'A'AHA5AjAWAyAˆA�A›A�A¨A³A³AÕAÛAIPµÅ§û§û»ûÀûÏûÏûÖûüüü6ü(üNüVüJŒ•´'ú'úZú†ú†ú™ú�ú¿úÏúÔúÔúÛúãúëúû ûû"û3ûGûLûNûNûNûjûˆûˆû¥ûKP�­>>0>2>@>F>a>p>>Ž>œ>§>ª>º>Lè7ß/ß/ +0 000020I0`0„0 0£0Â0Ü0î0û01"1'121:1:1D1D1O1T1i1o1Ž1­1¯1Ä1Ê1é12222%2%272u2�2Ÿ2M$ ÷Z÷Z"[ [,[4[NLx‡fÍfÍxÍ�ͯ͞Ͷ;ÍÎÍÙÍêÍðÍ"ÎOTHYÀeÀeÒeÔeÝeæeôeùeff +ff"f%f/fP¨!Gdd(d1dDdQd]didud�d˜d˜d§d²d»dÂdËdâdùdþde e+e=e=eFeieieke~e€eše¦e©eÀeQlõŒ°p°pÉpÔpäp-q4qHqOqWq_qhqpqxqzq‚qŠq‘q˜q·qÏqØqØq r7r@rbr|r™rÃrÏrñrórúrss$s@sgsƒsªsÆsís t0tLtst�t¶t¶tÅtÒt×t×tætótøtøtÿt +uu4uLudufufufumumuzuuuu�užu±uÆuv v v vv.vÝ>ÝXÝaÝ�Ý�݇Ý�ݗݟݧݭݺݺÝÔÝÙÝÙÝßÝäÝäÝêÝïÝïÝõÝúÝúÝÞ%Þ+Þ0Þ0Þ9ÞYÞYÞYÞ`ÞbÞbÞiÞkÞkÞqÞqÞxÞzÞzÞ€Þ€Þ‡Þ‰Þ‰Þ�Þ�Þ–Þ–ÞžÞ¤ÞªÞ²Þ²Þ²Þ²Þ¾ÞÆÞÎÞÖÞÞÞæÞîÞôÞ ßß%ß(ß(ß2ß8ß>ß>ßBßJßQßUß]ßeßkßsßz߂ߊߎߔߟߥ߲߾ßÄßÌßÐß×ßßßçßëßñßùßààààà%à*à@àQàVàYàþàTLœ«؇؇ñ‡ó‡ú‡ˆ ˆ&ˆ>ˆVˆYˆkˆ³ˆUÔ/`.ñ.ñBñWñfñjñxñ�ñ�ñ�ñŸñªñµñÀñÇñ×ñîñò òòò'ò'ò=ò?òIòmòxòzò“ò—ò¥òªòªò±òÀòÈòÛòEóV$·Z·ZâZËZìZôZWP©¹ODODpD]D’DD¡D°D¸DÃDÅDÐDÛDÛDýDEX,Î×Î×××Ý×å×î×÷×ü×Y�_�_�€�•�£�°�ã�ð��"�2�2�?�?�F�Y�W�g�g�r�|�‚�ˆ�‹�™� �¸�¿�Â�×�Ü�ç�ò� ‘&‘7‘=‘C‘J‘a‘P‘q‘w‘}‘…‘¥‘�‘®‘´‘º‘‘‘É‘à‘Ï‘ð‘ö‘ü‘’$’ ’-’3’9’A’A’A’W’W’W’W’b’l’u’•’¡’²’·’È’Ü’á’á’ì’ô’ÿ’““(“8“M“b““„“„“�“—“¤“¯“¿“Γë“”” ”%”%”0”F”[”g”x”}”Ž”¢”¢”­”¢”Ŕʔʔٔޔޔí”ò”ò”••••••1•@•E•E•X•g•l•z•l•Ž•“•¡•“•µ•º•È•º•Ü•á•ï•á•–––%–*–L–Q–_–Q–s–x–x–•–š–¼–Á–Ï–Á–ã–è–è–— +—,—1—?—1—S—X—X—u—z—œ—¡—¯—¡—×È—È—ã—è—è—˜˜˜#˜(˜(˜C˜H˜H˜c˜h˜h˜ƒ˜ˆ˜ˆ˜£˜¨˜¨˜ØȘȘÙ˜Þ˜Þ˜ï˜ô˜ô˜™ ™ ™%™%™1™J™O™u™|™†™‹™œ™¦™»™Æ™Ë™Ü™ç™ï™ô™ô™ø™ü™š ššš*š/š/š/š3šLšUšUš{š€š€šˆšœš¥š¿šÌšךâšíšÿš ›››››*›G›R›\›g›l›w››„›„›�›—› ›«›»›Ó›ë›ÿ›œœœ"œ,œ7œXœdœuœzœ‹œ�œ”œ”œ¤œ¯œ·œ¼œÇœלæœ��-�8�=�H�P�U�`�p��œ�±�Æ�Æ�Æ�Æ�Ë�Ð�Ð�Ü�í�í�žž1ž1ž;žOžYž[žgžožŒž�ž§ž²žÕžæž÷žŸŸ+Ÿ;Ÿ@Ÿ@ŸKŸPŸPŸXŸcŸhŸhŸpŸ{Ÿ€Ÿ€ŸˆŸ©Ÿ’Ÿ�ŸÁŸÆŸÆŸΟïŸØŸÖŸ       8 = = J O O W \ \ n € … … ™ … ± ¶ ¶ ¾ ààÖ Û Û î ó ó  ¡¡"¡"¡<¡L¡Q¡Q¡k¡{¡€¡€¡š¡ª¡¯¡Æ¡¯¡Þ¡ã¡ã¡î¡ó¡/¢¢ ¢ó¡G¢L¢ˆ¢v¢d¢L¢ ¢¥¢¥¢´¢Ä¢É¢É¢Ø¢è¢í¢í¢ü¢ +££7£%££O£T£|£j£T£”£™£Á£¯£™£Ù£Þ£Þ£û£å£%¤5¤:¤:¤U¤A¤¤�¤”¤”¤ ¤¥¤¥¤±¤¶¤¶¤ɤÙ¤Þ¤Þ¤ñ¤¥¥¥¥)¥.¥.¥A¥Q¥V¥V¥^¥c¥c¥k¥p¥p¥x¥}¥}¥…¥Š¥Š¥�¥¢¥¢¥µ¥º¥¦ö¥ä¥Ò¥º¥¦¦h¦V¦D¦2¦¦u¦z¦z¦‰¦¤¦©¦©¦º¦Õ¦Ú¦Ú¦ë¦ù¦þ¦þ¦§ § §§§§ §%§%§]§K§9§,§|§—§œ§œ§Ô§§°§£§ó§¨¨H¨6¨+¨¨`¨e¨š¨ˆ¨}¨e¨²¨·¨Ѩ»¨·¨é¨î¨ ©õ¨î¨#©(©(©4©M©]©n©n©“©•©«©±©±©ΩÛ© ª=ª+ª`ªhªhªhªtªyªyªŒª—ª¡ª¦ª±ª»ªÀªÀªÚªߪߪçªìª«ìª«« «3« «B«M«R«R«]«n«s«s«~«‰«Ž«Ž«Ÿ«¤«¤«¾«É«ΫÙ«Ϋè«í«¬í«¬¬ ¬¬/¬4¬H¬4¬W¬\¬\¬p¬\¬¬¬¬„¬�¬„¬£¬¨¬¨¬´¬¨¬Ǭ̬̬ج̬ë¬ð¬ð¬ü¬ð¬­­(­­7­C­N­Y­^­r­^­�­�­˜­£­¨­¼­¨­Ó­Ë­Ü­á­á­é­î­î­÷­ü­ü­® +® +®®®®#®(®(®3®8®8®C®H®H®S®X®X®c®h®h®s®x®x®ƒ®ˆ®œ®ˆ®«®¶®Á®Ì®Ñ®Ñ®Û®à®à®ê®ï®ï®ù®þ®þ®¯ ¯ ¯¯¯¯'¯,¯,¯9¯>¯>¯>¯>¯>¯F¯K¯K¯S¯X¯X¯`¯e¯e¯m¯r¯r¯z¯¯“¯¯¢¯³¯¸¯¸¯¿¯ʯê¯ï¯°°)°°8°C°N°S°S°Z°e°…°а °«°İ°°Ó°Þ°é°î°î°õ°± ±%±;±F±_±K±n±y±„±‰±‰±¤±�±³±Ó±رî±ù±²þ±5²!²D²O²T²T²o²[²~²ž²£²¹²IJݲɲ³ì²³³ ³ ³:³&³I³i³n³„³�³¨³”³˳·³Ú³å³ê³ê³ù³þ³þ³ ´´´´´´´´'´)´)´3´:´]´_´_´i´i´i´i´i´k´k´‚´‰´”´”´Ÿ´¥´¬´·´´Í´Ç´è´µú´µµ+µ%µQµFµiµiµiµrµyµŒµ‘µŸµ²µ²µѵܵóµ¶¶¶4¶D¶Y¶k¶{¶{¶ ¶§¶¶¶ȶȶ̶Ѷضè¶·· ·"·)·.·.·2·=·I·W·„·�·ž·¬·ß·ë·ð·¸¸*¸;¸@¸Q¸p¸ž¸ǸʸÚ¸ܸܸà¸ÿ¸ +¹ +¹ ¹¹O¹r¹r¹u¹š»Z, þ×þ× ØØØ Ø(Ø.Ø[`EYo‡o‡…‡“‡š‡ž‡­‡ƇʇЇæ‡ˆˆˆ6ˆ$ˆˆUˆ_ˆ\8 +GZGZhZUZwZ‚Z�Z˜Z£Z¯ZµZ]\’ ¡ ¡®¡°¡»¡Ã¡Î¡Ù¡ä¡æ¡ü¡ü¡¢¢#¢&¢U¢^l½”GïGïlïqï~ïªïªïµïÂïàïèïððCðcðð…ð‰ð¬ðÒð×ðññCñZñ`ñdñ}ñ…ñŠñ›ñ£ñÂñÈñÌñåñíñ òò"ò*òIòNòVò\ò`òdòvò~òƒò¡ò¦ò³ò¸ò¸òÅòÝòìòùòóó0ó5ó5óLóNóNóbódódó{ó}ó}ó”ó–ó–ó­ó­ó¿óÄóÄóÓóÓó ô%ô%ô8ô=ô=ô=ô=ô`ô|ô˜ô˜ô˜ô ô¥ô¥ô¥ô­ô²ô²ôºôºô¼ôæôèôõ(õ(õ(õ(õ(õBõEõZõaõcõlõõ�õ�õ�õ•õ§õ§õ³õÆõÝõçõö!ö=ö]ö~ö–öµöÛöêö÷-÷E÷T÷k÷‡÷Œ÷Œ÷À÷Å÷Å÷Ø÷Ø÷ä÷ö÷û÷û÷ø2øXøgø…øªøÊøÙøùù$ùFùHùHùHùTùTùTùrù¢ù¤ù¤ù³ù³ù¸ù¸ù¸ù¸ù¸ùÏùÔùçù&ú_\ +—O—O©O¿OÛOèOÿOP P4P!PCPKPVPlPbP„PŠP`à×:×:õ:ø:ÿ:; ;;;;!;%;);<;d;;l;—;œ;À;À;Ì;Ô;ã;<"<O<W<\<e<q<y<€<¢<¨<Ê<Ì<î< =ú<="=)=)=/=2=6=G=G=j=|=a$oáoá~á™á™áŸáb|k†wìwì‘ì½ì½ìÜìììîìîìîìîìõìýìí1í3í3í3í;íVíXíXíbíbízíc”"G6G6i6s66„6”6š6¯6Ã6Ó6á6ï6777'7/7<7D7G7G7G7I7X7b7k7s7v7ˆ7dô¦ßÇ7Ç7ð7ý78 88&8=8T8_8•8µ8º8¿8Ê8ä8ö899+9B9G9Y9^9a9�9¡9©9±9¶9Ö9ö9þ9::(:0:5:::E:E:P:P:\:\:n:®:Ç:Ç:×:ed¤¹���� �§�³�¹�Á�Ï�â�î�ŽŽŽŽ&Ž6ŽPŽTŽ\Žf(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+ +++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-æ.g¤÷æ æ ø   ! % 0 B B ] ` b n   ‹ ’ ™ ™ § ¯ ² ´ · ¼ ¿ à Ë Ý ð ð ;!h(ÈΟ�Ÿ�Æ�³�Õ�ç�ï�i=oRoR’R§R¬R´R¼RÄRÑR×RàRæRëR +S#S(S.S0S2S?S?SDSMSUS^SfShSpSxS€S�S“SžS¥SµSÀSÏSðS÷ST TT T(T(T0B0G0R0]0`0d0l0kˆZø_ˆ_ˆyˆ”ˆšˆ¡ˆ¡ˆ¨ˆ͈Òˆ݈ûˆåˆ +‰‰/‰8‰@‰J‰h‰z‰ƒ‰‹‰•‰°‰š‰¿‰щÛ‰ã‰û‰å‰ Š +Š/ŠAŠKŠSŠSŠ\ŠdŠzŠ“Š¥Š´Š¸Š¸Š¿ŠÄŠâŠäŠéŠôŠ +‹ +‹ +‹‹‹;‹E‹O‹X‹y‹ƒ‹�‹�‹�‹¬‹º‹È‹Ë‹ä‹è‹ŒŒ&Œ*ŒEŒIŒIŒIŒOŒ]ŒgŒ€Œ†Œ‘Œ�ŒŸŒ§Œ­ŒÆŒÑŒߌéŒ�� ���#�&�?�A�M�O�W�]�v�Ž�š�¯�´�É�Ù�ò�ŽŽŽŽ1Ž=ŽRŽWŽlŽ|Ž•Ž¦Ž¦Ž¬Ž·Ž¿ŽÍŽÔŽæŽleãþàþàá!áAáAáGáOáWá_ágámázázáˆá�á�á“á˜á˜ážá£á£á©á®á®áÆáÙáßáäáäáíá â â âââââ â â%â%â,â.â.â4â4â;â=â=âCâCâJâJâRâXâ^âfâfâfâfârâzâ‚âŠâ’âšâ¢â¨âÀâÏâÙâÜâÜâæâìâòâòâöâþâã ããã ã'ã.ã6ã>ãBãHãSãYãfãrãxã€ã„ã‹ã“ã›ãŸã¥ã­ã´ã¼ãÄãÈãÎãÙãÞãôãä +ä ä²äm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Òȕȕޕ–"–3–F–N–\–z–…–‹–˜–­–­–À–Ñ–×–ì–————#—)—>—F—J—R—`—f—k—k—€—•—œ—¤—¬—²—Õ—è—ô—ø—˜˜!˜#˜0˜2˜D˜D˜K˜S˜e˜e˜–˜¤˜·˜»˜Å˜É˜Õ˜Ù˜å˜é˜õ˜ù˜ù˜™"™(™,™6™:™I™M™\™`™s™w™w™w™w™Ž™œ™©™±™È™Ø™æ™ñ™šš#š+š8šSšcšsšxšxšxšxš…š”šœš¢š·šÆšÛšìšüš›››››&›,›9›T›d›p›v›ƒ›•›£›Å›O�oÔÃôÀnÀnÒnãnînùno$oRLRURZR_RaRt88Br0r0†0Š0�0š0¤0§0«0³0u0ˆ�?P?PUPhPuP{P~P†PvÜtNNp{†�Ÿ±·½ÃÙÈíúý"EX\by�•¡¯´ÂÛéò 7EQkŠ‘›ª°¶¼ÂØù 0;JXgt„’©µºÈäö ',2ITahhv…‡•¤¶¶¾áì w`0Do†o†…†—†ž†¢†±†ІÔ†Ú†ð† ‡‡‡@‡.‡‡_‡i‡xDˆÕoåoå�å‰å”åšå å¤å¨åÔåÔåÛåÞåãåõåùå æ$æ)æ)æ0æ3æ8æDæUæYæjæ|æ€æ‚æ”æ˜æ´æ¸æ½æ½æÑæÔæâæìæóæç$ç(ç-çcç|ç‡ç‹çœç§ç«ç­ç¸ç¼ç¼çÐçÔçÖçÖçáçåçùçýçýçýçè#èy¼Ö'è'è;èQèQèQèVèVè]èbèbèiènènè{è€è€è�è”è–è–è£èªè¬è¬èÈèÈèÈèËèÍèÍèÍèÑèÓèÓè×è×è×èóèøèøèéz°0X§[§[¿[Ç[Ò[6\\\÷[à[<\N\>\n\n\…\y\·\¼\È\Ý\Ê\ì\ò\ù\] ]]4]6]R]R]Y]ƒ]ƒ]ƒ]�]{ÈQ¿ÖüÖüôüÿü +ý0ý0ý2ý?ýJýPýaýpýýŒýŒý’ý—ýœý²ýÅýÐýÔýæýóýûýþþþ+þ+þ+þ6þQþ<þYþlþnþŠþvþ’þ þ þ¢þ¾þ¾þÅþËþÔþÛþÞþÿÿÿÿ"ÿ+ÿ+ÿ+ÿ>ÿCÿCÿKÿKÿVÿkÿtÿtÿtÿtÿ�ÿ§ÿ­ÿ²ÿ²ÿÇÿÍÿÒÿÒÿÞÿûÿ %%1N]lty„„‹’µÒÔÜñ  ""@Vafs~‡�Ÿ¶¶ÆÆØÞ  $$1<BKK^k}ˆ–Ÿ¤Î×âçîö #*7>Pelr{{„ž¥ª¸ÈÖÖÜãììÿ%-5A^ert{�žžžÈÈÈÕÕêõ -8GNNgz|‹ ¢°ÅÅËÔÔáçùù &-8=ELW\qs�¢¢¢¤«±ÂÐââèïøý!**099XXehqz‚�Ÿ¥°°½ÀÉÒÚå÷ý!*,Nav|‡™Ÿ§§§§²+ |t·ÐR4R4d4m4p4y4‚4”4”4À4Ä4É4Ì4Õ4ä4ê4í4õ4ø4ý45}`2�P�P·P£PÆPëP×PúPÿPQQQ Q(Q3QIQ>QaQiQ~À-HhHhfhvh€h€hŠhŠh”h¦h³h¶h¸hÁhÎhÎhÜhðhðhi!i!i1i>i>iaininiƒi¥iºiÜiåiòiòij j jRj…j‹j‹j‹j�jt�¶Z3Z3n3�3¡3µ3¼3È3â3ë3ñ34 4 4!4!4$4'4<4B4D4D4L4€¸ºä`Ž`ŽxŽzŽ†ŽŠŽ—ŽšŽ´Ž´Ž´ŽºŽ¾ŽÆŽÑŽåŽñŽóŽóŽüŽþŽþŽ� � ������&�,�/�9�J�P�\�\�Ä��œ&�)�)­)¾)Ö)Ý)ù)î)*1**@*Q*V*w*c*�*¬*³*Ï*Ä*ç*+ó*+'+=+)+U+b+b+z+z+„+‚¼ª444/4L4W4�4±4³4Í4á4ò4555#575>5>5M5[5j5‚5‘5ž5¡5º5½5Â5Ù5é5ù5ý56B6ƒx± ¸±¸±Î±Õ±Ü±û± +²²(²7²F²P²P²U²\²o²~²ƒ²ž²¸²¸²Î²à²ä²ò²ù²þ²þ²³³ ³"³0³B³B³B³T³_³q³|³‰³Ž³ž³£³³³¿³Ä³Ñ³Ö³æ³ë³û³ý³ ´´ ´!´2´;´;´=´M´T´d´d´´‘´£´µ´Å´Å´Å´È´Û´„\åøÈ�È�ã�ê�ï�ý���#�1�4�6�@�R�R�Y���…0ÎÖ..F†zPNš¢†`/o…o………—…ž…¨…·…Ð…Ô…Ú…ð… †††@†.††_†i†‡L[j‡2‡2•2§2­2µ2Ç2Í2Ö2è2î2ñ2-3ˆ(–œ*3*383G3K3N3T3‰\k~/3/3=3O3U3]3o3u3~3�3–3Ÿ3±3·3º34Š, ¦×¦×´×»×Ã×È×Î׋„$WWu‡Ž•¤©ËËÐòô%'IIIXtjŒ–Œ`Bßißiüij j0j>j@jNj[jajljƒj’j�j¡j¬j¸j¿jËjâjùj k#k-k;kMkOk]kokokxk‰k�kŸkŸk·k·kÜkÜkákákêkökll$l;lJlUlglslŠl¢lÃlÃlÌlÑlÑlÑlÑlálêlòl÷lmm#m(m(m6m6m;m;mEmPmbmhmtm„m�m™m�m¦m¿mÂmÒmÙm÷mnnn n/n6nH¾Ø¾ØÇØÇØÕØÙØàØãØèØ’DDQ�1�1©1¼1Æ1Í1Ù1ñ1ú1þ12252“Ä{¨  ILSX^`ekk}„š­¼ÂÄËÑÛÛïñøþ 18GI_rr„”0RZ7272@2f2w2}2}2…2•„a~FóFóXómówó€ó‚ó‰ó™ó¤ó¦ó°ó°ó¹óÊóÍóÍóñóüóþóôô"ô1ôDô—ô–  +†0†0�0¬0±0—hú7g7gMgXgcgqg|g…g–gŸg°g¶gÂgÙgÙgëgüg hh#h)hwh˜„=Z7K7KgKmKvK‚KŠK‘K•KžKžK£KªKÂKìKñKLL L7LOLsL’L¤L™lò GG_qx¡£ÅÚÇüé  $FFNš y}ŒŒ!Œ-Œ2Œ›(Aæèæèéééé é é1é1é1é9éAéSébéSéwéyéyé“é•é•é é¦éÀéÅéÅéÅéÚéÜéééëéøéúéêêêê2ê?êAêRê_ê_ê_êhêzê�ê“ê›ê�êªêªê¿ê¿ê¿êÊêÔêìêñêñêñêÿêë +ëëë/ë:ë?ë?ëFëJëXë\ëeëlëŠë—ëžë§ëÃëÈëÈëÈëÈëÐëÛëéëéë ì ì ììì-ì@ìSìUìUìUìhìhìoìvì{ì�ì“ì�ì¹ìãìéìéìýìí&í-í9íWíjíuí|í€í€í€í€í‹í•í£íÅíÐííí÷í÷íî#îSîfîwîŽî¡î¦î¦î¦î®î¹îËîÖîÛîÛîÛîíîïïïï(ï2ï>ïIïKïKïKïPï\ï\ï¦ïœH%Š/Š/˜/Ÿ/ª/·/Â/Ê/Ê/â/ì/ò/ø/�0 O OFO3OUOqOgO‰O‘OžLè÷ß'ß'ù'($(E(2(](b(�(®(›(Æ(Þ(Þ(è(Ÿð[“§L§LÜLåLñLùLM#M#M-M/MJM2MYMYMgMqMxM˜MšM´M»M»M×M×MþMN"N;NXN[NcNjNŠNŒN¦N­N­NÉNÉNæNæN O O T]n––¬¹¿ÅÖäò )¡0 +ROO~sŸ‹Â®ÑÝâîþ)4<AMRfmq|�Œ¥®º¿ÓÚÞÞãü/AFQYYY[t‰”ž©«¶¾¾ÎÃæ ¢àZŽ0f0fJfXf]fjfxf�fœfªfÏfØfèfggg g"g,g8g+sYM‚ŸŸŸ±ÎÎLQdXŒz›¼ÔÁïã&CCCUrr“š¼¼Ä¥(öåöåæ'æ-æ2æ2æ8æ¦(!'.Ø.Ø7ØEØKØMØRاD]j : :::A:J:V:k:s:y::�:�:‘:¨„½ÚH«H«{«‡«‹«“«›«Ÿ«ª«®«²«¶«¾«Ã«Ç«Ø«é«ë«ï«¬¬ ¬3¬;¬F¬F¬F¬X¬©€P�P�i�p�w�~�„�”�Ÿ�©�´�Ë�Î�Ð�ë�õ�ÿ�žž#ž+ž+žAžAžSžª Ê OWOWuW’WšW¥WµW¾WÂWÝWóW XXXX2X7XIXkXqXyX~X„X‡X�X¦X¨XÊXÒXçXìXûXY#Y(Y(Y(Y5YFYQY^YjY}YŠY—Y®YÃYÍYÏYæYöYûYZ Z0Z0Z0ZBZ«<ÑÜ 5 -555$5,545<5C5S5S5X5¬´*££3£@£E£I£R£a£m£x£ƒ£‹£–£ž£¡£­£µ£Ï£õ£ï£¤¤C¤/¤S¤S¤k¤v¤’¤™¤½¤Ä¤ö¤ö¤ö¤ö¤W¥­˜‹-þ¸þ¸¹"¹*¹5¹L¹V¹V¹m¹w¹’¹¨¹¶¹º¹Ú¹î¹º º º&º0ºAºNºNºUº\ºaºfºkºrºyº“ºšºªº®º®º¸ºÎºÒºÒºãºöº » »»»!»)»4»;»C»N»U»U»`»~»‚»š»‹»µ»µ»»»Â»Ñ»Û»é»ð»ô»ö»¼¼¼¼"¼H¼V¼V¼Z¼o¼w¼‡¼’¼§¼¬¼º¼É¼Ó¼á¼ì¼ð¼õ¼ý¼½½½!½#½2½4½C½J½N½b½l½z½�½…½•½ ½¥½Ã½Í½Û½â½æ½ð½þ½¾ ¾¾'¾/¾:¾>¾>¾>¾I¾T¾d¾p¾†¾Ž¾™¾¨¾°¾»¾À¾È¾Ó¾ß¾ã¾î¾ó¾¿¿¿¿¿¿7¿T¿`¿h¿x¿ˆ¿¦¿ª¿Ù¿Î¿¿¿é¿é¿ó¿ú¿ ÀÀ"À0À7À;À=ÀLÀVÀdÀkÀoÀoÀqÀƒÀƒÀ•À•À•À›À§À¹ÀÁÀÙÀÁÁÁ5Á<ÁCÁNÁdÁiÁpÁƒÁ�Á›Á¢Á¦Á¨Á»ÁÅÁÓÁÚÁÞÁÞÁÞÁÞÁìÁ÷ÁÂÂÂ)Â-Â-Â2Â:Â>ÂMÂOÂ^Â`ÂoÂq€‡‹Ÿ©·¾ÂÂÂÒÂÝÂâÂà -Ãà Ã#Ã-Ã;ÃBÃFÃPÃdÃlÃwÃ{Ã{Ã{ÆÃ�ÛõÃÅÃÐÃåÃêÃõÃÄÄ'Ä/Ä:ÄIÄQÄ\ÄaÄiÄtĀĄÄ�ĔĨİĻĻĻĻÄÏÄßÄôÄÅÅÅ*Å?ÅLÅPÅ^ÅsŃŚųÅÌÅÎÅÙÅáÅáÅêÅÆÆ/ÆHÆVÆaÆmÆuÆwƂƊƊƊƧƵÆÃÆÚÆñÆÇ Ç-Ç4Ç4ÇDÇXÇrÇrÇvnjǛǶÇÁÇØÇàÇàÇÈÈÈ3È<ÈSÈmÈ|ȉȩȷÈÍÈéÈùÈÉÉ)É)É5ÉPÉhÉqÉqÉqÉ}ɎɦɯɯɶɿÉÅÉÑÉ0Ê®<ùD��%�1�<�F�L�V�\�f�t�~���š� �ª�°�º�Á�Í�Ó�Ü�‘‘‘‘%‘7‘A‘S‘]‘r‘r‘u‘‘”‘™‘©‘´‘¹‘͑ϑà‘’’ ’"’0’9’A’O’`’p’�’Ž’Ž’›’›’£’±’ø’¯$› _P_PsP{P†PŒP°l£:§F§FÀFØFèFGG2GMGMGwGGƒG†GŠG�G™GœG£G©G°G¶GºG¿GÉGÚGáGèGêGîG÷GHHHHH/H:H@HGHPHiHzHƒHŒH”HŸHªH¶HÇHØHäHòHôHûHII II IBIPIZIdImI†I—I I©I±IºIÀIÄIÉIÍIÚIáIïIùIJJ!J:JKJTJ]JeJnJtJxJ}JƒJ�J—J¶JÄJÊJÏJ×JßJçJôJüJKK0K9KTKhK{K‚K‹K”K›K¤K­K¶KÏK¿KßKãK=L±  €ˆ€ˆŽˆ°ˆ¶ˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(ž(ž(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´„÷Â÷ ÃÃÃÃ$Ã0Ã0ÃFÃ\ÃnÃuÃyÉéûÃÁÃÐÃÙÃÝÃãÃìÃÄÄ#ÄAÄSÄYÄhÄzĆĈĔĜĠĦįįįÄÁÄÌÄÒÄèÄïÄ÷Ä ÅÅÅÅ"ÅIÅRÅZÅlÅtÅ}ňŎŤūųźÅÏÅàÅàÅçÅçÅçÅõÅÆ)Æ2Æ:ÆLÆTÆ]Æ]ÆhÆoÆ}Æ�Æ�ƥƭƳÆÂÆËÆÏÆׯàÆàÆîÆöÆüÆÇ"Ç*Ç0Ç6Ç6Ç6Ç=ÇDÇSÇ[ÇaÇgÇgÇiÇsǵx¿Ù¿ÙÍÙâÙéÙôÙ -Ú4ÚPÚWÚoÚuÚ„Ú�Ú•Ú�ÚŸÚ¥Ú«ÚºÚÂÚÈÚÊÚÐÚ¶¼Ô÷b÷bc"c2c:c^cucyc�c‰c�c˜c¤c¬c¬c´cäc#dþcFdKdSdcdzded“d™d¢d©d±d¹dÅdÍdÕdèdðdõdÿd e&e(e2eAeaehejeŠe‘e‘e‘eše¡eºeÀeÈeÈeÍeÑeÝeæeïeûefAf,fZf]fyf†fšf°f´fÓfáfgífg!g8g#gQgTgTgpg}g‘g§g¯g³g¾gÆgÖgígØgh hh!h8h#hQhWhWhahahlh�h¥h¥h¥h¥h®hºhÐhéhühiiii)i-i-i-i4i9iLiSi_ififi€i‚i‡iši¡i­i´i´iÁiËiËiÐióióij·àt¨?A?ATArA_A§A�A�A¶AÅAÍAØAÚAåAðAðAõA*B/BdB|BiBžB‹B²B­BÎBÝBåBðBòBýBCC C.C0CQCQCXC]CC�C£C£C£C«C¸\æù§e§e½eÏeÕeàeîeúeff#f)f4fDfOf]fjf–f¹$â燇¥¸¿ÆÍÑÓÚáååí   $ / = N R W k o x | � ‡ ¤ ¤ ² É Î ç ø ü ü ü     0 4 9 M U ^ b d k } � ¤ ¦ ¿ Ò Ö Ö Ö ê î ÷ û !!#!#!1!H!M!f!w!{!�!�!�!’!¡!£!Å!Å!ç!ò!ø!" "$"/"C"G"P"T"V"\"u"u"ƒ"š"œ"µ"Æ"Ê"Ê"Ñ"ä"è"ú"ÿ"##$#(#-#4#J#Z#q#v#�#¢#¦#¸#¸#¸#¸#Ê#½#ß#î#ð#$$#$9$J$J$J$Q$d$}$}$}$Œ$Œ$Ÿ$¶$Á$Ò$×$Ý$ç$é$õ$õ$ü$%%%)%>%J%L%W%c%s%z%�%‹%“%—%›%�%¢%ª%®%À%Â%Ç%Ï%Ó%Õ%Õ%Þ%ë%&!&;&I&U&\&\&o&s&s&s&z&&™&§&³&º&º&Ô&Ö&Û&õ&''''#'-'-'?'º¤ ¹ž(J(JEJTJTJTJqJqJ‚J‚JˆJŠJŠJ�J’J’J˜JšJšJ¡J¥JªJªJªJªJªJªJ²JÊJÊJßJêJôJKKK:KL,LDLSLXL_LhL{LƒL‹L�L�L�L™L²L¸L¸LÑLßLüLMM M%M-M2M2M8M8MAMRMTMiMkMsMyM�M†M†M†M†M”M«M­MÁMÁMÉMÏM×MÜMåMíMöMüMNNNN N NN1N5N7NCNEN`NfNnNsN|N‡N‹N‘N•NžN¡N¡N¯NÀNÂNêNO OOO#O(O(O-O/O7O7OROdOiOuO{O~O•O—OšOªO®OµO¾OÍOÛOáOéOîOöOûOûOPPP4P9PCPkPvP�PŒP—P¢P­P¸PÃPÎPÎPÎPÖPßPøPQ#QQDQFQIQTQVQVQ\QbQbQjQsQyQ…Q…QŒQ�Q®Q¹QÁQÉQÎQÎQÕQÙQÞQðQõQÿQ R RR=R=RFRTReRqRxR†R•R«R±R¶R¶R»RÑRÝRåRõRÿRSSS S(S(S2S@SLScSyS�S–S˜S¯S´S´SÔSÔSæSìSõSûSTTTT.T4T6TATSTiTiT}T�TŸT¤T°T¶T¹TÐTÒTÕTåTïTòTòTUU*U/U;UAUDU[U]U`UpUtU|UŠU�U”U”UšU¢U§U§U­U­U»UÁUÇUÑUÛUéUþUVV V VVVV!V&V&V,V4V9V9V>VIVNVSV^VcV‰V‹V�V•VšVŸV¤V©V®V®V³V¸VÔVÞVòVW WWW"W(W.W8WBWPWeWhWjWtWƒWˆWˆWˆW�W•WžWžW£W£W©W±W¶W¶W»WÆWËWÐWÕWäWäWõWûWûW XXX X)X7XLXOXQX[XjXoXoXoXwX|X…XŠXŠX�X˜X�X�X¢X­X²X·X¼XËXËXÜXâXâXðXöXüXYYY3Y6Y8YBYQYVYVYVY^YcYlYqYqYwYY„Y„Y‘Y—Y—Y¥Y«Y±Y»YÅYÓYèYëYíY÷YZ Z Z ZZZ!Z&Z&Z,Z4Z9Z9ZFZLZLZZZ`ZfZpZzZˆZ�Z Z¢Z¬Z»ZÀZÀZÀZÈZÍZÖZÛZÛZåZíZòZòZòZøZ[[[![!['[1[7[<[<[E[S[\[j[o[o[x[†[’[£[°[·[¿[É[×[×[Ü[Ü[ç[ç[ç[ë[ð[ð[÷[û[\\\\\(\0\5\;\;\C\L\Z\e\j\p\x\}\}\}\}\}\}\}\}\}\}\–\œ\¥\«\³\¸\½\Æ\Ñ\Ú\â\ç\ç\ç\í\õ\ú\ú\þ\]] ]]&]/]5]5]>]T]T]Z]c]y]y]‚]„]Š]“]©]©]²]²]²]»]À]À]È]Í]Í]ê]ø]^ ^^^!^&^&^&^:^C^I^[^e^e^m^m^u^w^w^�^š^£^¥^¥^¥^«^¯^±^±^±^±^¶^¼^Â^Æ^=b»Ì€¯jj)j4jJjfjsjŠjŸjªjÀj¬jÏj×j×jæjæjîjújk%k4k?kRkXkXkXk]kbkqk|k–k˜k�k¬k·kÄkÎkÎkÜk¼”+LX¥X¥p¥w¥~¥�¥Š¥�¥�¥”¥™¥»¥¨¥Ë¥Ó¥Û¥Þ¥à¥ð¥ù¥¦¦ ¦¦:¦K¦V¦ˆ¦½à.¢·B·BÕBàBñBôBøBCCC%C;CLC]CoC�C�CŸC°C¿C¿CÍCÑCÕCÚCÞCëCòCDDD#D1DJDLDPDZDZD_D_D_DdDdDsD|D„DšDšDšDŸDŸD·DÃDÎDÓDÓDÖDÛDÛDúDEEEEEEE:EFERETETEWEYEYEfEhEhEkEkEtEzEE›E›E›E›E›E›E›E›E›E›E›E›E�E®EÀEÏEÞEÞEâEâEêEFF F§F¾,îÖîÖüÖ× ××׿l3JÏPÏPåPÿPëPQ3Q QBQGQNQNQTQWQ[QcQ{Q†QœQ‘Q´Q¾QÀPQaâ$â$ð$þ$%%&%+%H%N%U%\%j%v%ˆ%Ä%ÁD+®å®åÂåÐåÖåùåÿåæ*æ0æ6æ<æ<æDæÂô#œï6ï6÷67 -77$787G7d7q7ƒ7¥7Í7Û7÷7 8!888C8d8‚8‘8¬8·8Ò8ë8ë89/9I9d9v9…9”9”9Ÿ9²9Ã9Ö9æ9ó9ÿ9:+:+:3:3:3:D:Q:X:w:€:‘:•:�:¨:À:Ø:á:ñ:ù:þ:";2;B;M;a;f;n;”;–;¡;Ô;î;î;<<<,<5<=<O<q<y<�<Œ<Ž<ž<¶<Î<æ<þ<='=0=9=K=Y=]=a=à ¸ˆ¸ˆÁˆàˆåˆÄ\ˆ[–͖ͰͷÍÄÍÏÍÔÍÚÍìÍòÍ -ÎÎ.ÎDÎOÎUÎwÎw·ΜΞΡέενÎÅÎÓÎÙÎâÎîÎîÎðÎÏÏ Ï Ï$Ï$ÏBÏBÏUÏbÏgÏgÏ~χϖϬϷÏÅÏÐÏàÏíÏÿÏÐÐÐ(Ð*Ð*Ð2Ð7Ð7Ð?ÐDÐDÐLÐQÐQÐYÐ^Ð^ÐdÐiÐiÐpÐuÐuÐ|Ð�Ð�ЌББМССЬббммÐ×ÐÞÐäÐçÐòÐõÐ ÑÑ%Ñ,Ñ/ÑAÑCÑIÑ]ÑjÑyÑyÑyÑyуÑ�ѲÑÄÑÕÑÞÑïÑõÑúÑÒÒ(Ò7Ò=ÒNÒYÒcÒsÒ‚ÒˆÒ“Ò™Ò®Ò´ÒÅÒÐÒÖÒæÒæÒöÒ ÓÓÓ-Ó4Ó:ÓKÓVÓ[ÓxÓ�Ó›Ó«Ó·ÓÉÓÔÓãÓåÓ÷ÓÿÓÔ ÔÔÔ'Ô-Ô7Ô=ÔHÔNÔPÔ]ÔjÔtÔ�Ô›Ô›Ô¡Ô¨ÔìÖÅD#°ø¬ø¬­9­A­A­O­b­|­­ˆ­¤­¤­¤­¬­®­®­¶­¸­¸­À­Â­Â­Ê­Ê­Ó­Ù­Þ­Þ­ç­ö­ú­ÿ­® -® -® -® -®®®!®&®&®+®8®Q®p®s®‰®¨®¨®¨®°®²®²®²®º®¼®¼®¼®Ä®Æ®Æ®Æ®Î®Ð®Ð®Û®Û®á®æ®æ®æ®æ®í®ø® -¯¯&¯0¯0¯0¯@¯@¯G¯K¯Q¯i¯w¯Š¯—¯À¯Ã¯Ì¯Ó¯ç¯ï¯ø¯°°°°°°° °&°;°C°I°T°k°‚°Ž°”°™°™° °«°«°°°Â°È°È°È°È°$±Æd$àCàCD DDDD,D.D;D=DHD\DdDtDyDD‡DŠDœDÇLWf"1"161:1?1J1J1T1Z1Z1^1f1È\CVº0º0Ð0Ð0Ô0Ù0ì0ï0ô0ô0þ011111É8(2Æ×Æ×Ï×Ï×Ý×á×è×ë×ð×ʨYï\ï\]]]-]!]_]Ã]©]ž]„]m]É]Þ]Î]þ]^ ^%^:^'^I^O^O^V^€^«^Ž^Â^à^à^à^ì^ËlQh'-'-A-j-L-y-™-µ-«-Í-å-Ò-ô- .-.?.X.X._.�.�.‹.Ì4�¦—í—í«í°í¶íºí¾íÝíåíÍxÏéO�O�z�g�‰�“�š�°�µ�º�¾�À�Æ�Ì�â�Ï�ñ� -‚‚$‚G‚=‚V‚b‚Δ"ȫȫ֫è«ì«ô«ü«¬¬¬%¬0¬5¬K¬R¬Y¬d¬o¬q¬|¬‡¬‰¬•¬ ¬«¬´¬¼¬¼¬À¬÷¬Ï€ø2626P6T6X6`6n6q6t6Š6�6’6¤6¨6¬6´6¼6È6Ý6î6õ6ü6ü6 77к<gDgD—D¢DÇD©DáDEEE E)EAEPEREZE|E�E¯E¼E×EçEìEFFFF.FUFgFtF�F«F¡FÅFËFËFÔFôFGGG G -G/G/GAGAGOGYG„GzGžGžG£G¦G¼GÈGÝGH HH!HIH8HXHZHlH€H”HŠH©H¯H¾HæHÕHõH÷H II'I1I:IQI[I]IqI{I{IšI I I I©IÉIñIàIJJJ JJJ@J_J_J_J…J…J—JÑÄ8¥ÿ1ÿ162=2E2N2Y2`2x2}2€2ƒ2Œ2š2¤2©2Ñ2Ö2ã233!3A3F3U3�3‰3Ž3£3Ï3×3Ü3Ü3ï3444;4K4P4P4|4|4|4|4|4�4¨4­4°4³4³4à4å4å4ò4ö45,5:5E5a5a5a5n5…5‡5‡5‡5”5«5­5­5º5Ñ5Ñ5á5æ5 6,64696U6u6ƒ6‘6›6�6�6�6¹6Á6Ã6Ã6ë6!7Ò¤8]ÿéÿéêEêEêdêtêyêyêˆêšê´ê¼êÃêÈêãêëêëêëêíêíêíêíê ë ë ë ë ë"ë"ë"ë"ë=ëHë}ëÓÐêg‚g‚}‚‰‚Ž‚Ž‚š‚Ÿ‚¤‚¯‚´‚´‚´‚é‚Ö‚ø‚ ƒ ƒ8ƒQƒjƒƒƒˆƒˆƒ¡ƒºƒÓƒìƒñƒñƒ -„#„<„U„W„W„p„‰„¢„»„»„»„Í„Ô0”œ7í7íEíKíOíní�í�í•íÕ<:E"9"9+969D9P9\9e9n9w9}9‚9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ý& '('*':':'?'A'H'z'×ПÏ7s7sKsusjsVs•sÇs­s sòs÷stt t.t6tSt¬tŸt”t€t²t½tétîtötuuBu7u#uUunuZu‘u}u¨u¯uÛuÛuÛuÛuãuØLix�.�.­.¿.Æ.è.è.ú.// ///9/Ù$qv§N§N»NÃNÎNÔNÚÈg•j1j1Ž1’1±1Ó1ß1æ1ñ1ÿ1 2222$2<2G2W2c2j2u2†2ˆ2™2›2�2�2�2¥2¥2¯2¯2·2¿2Ç2Ï2Ó2Þ2*3Û (ˆ(ˆ6ˆMˆSˆÜ`FZ‚9‚9’9™9›9 9¯9µ9Ê9Ê9Ø9Ø9ä9í9ð9þ9: ::Ý<ùGŽGŽPŽ[ŽfŽqŽ|Ž†Ž¤Ž¯Ž¿ŽÞ 5×g×gïghhhh,h8hOhZhjh|h‚hˆhŽh¡h§h°h¶hÈhÎhÙháhïhüh9iß,29¿0¿0Í0Þ0÷0 111à4èˆèˆöˆ‰ ‰‰‰!‰!‰'‰áÄMzGþGþsþvþ{þˆþ�þŸþ¡þ¥þ©þ¬þ¿þØþþþÿÿÿ2ÿXÿ]ÿvÿœÿ¡ÿ¨ÿÁÿçÿéÿ(((@Zi{â ˆÇwwww•w˜wžw²wºwËwØwÞwãwãwðwùwÿwxx x>xRxYxexuxuxƒx–x¡x¥x¶x¶x¶x»x»xÇxÖxéxïxôxyyy(y.y0y?yLyRyXy]ycyiypy|yƒy…yŠy’y”y™y¥y§y¬y´y¶y»yÃyÅyÊyÒyÔyÙyáyáyáyñyñyñyzzz z$z=zCzNzVz`zdzjzƒzŽz™zŸz¬z±z¶z¶zËzÓzÝzåzíz{{${0{*{9{B{G{L{a{h{q{}{ƒ{�{“{˜{�{¨{³{¾{À{Æ{Ó{Ø{Ý{ö{| | || |!|&|/|H|S|^|d|q|q|u|z|z|‹|�|�| |¢|¢|µ|·|·|Ê|Ì|Ì|ß|á|á|ó|ó|ù|þ|þ|})}}6}>}E}K}S}f}q}h}�}�}ƒ}›}ž} }¯}Á}Ñ}Ý}ô}~~'~7~J~O~O~X~l~~~‰~‘~™~�~«~±~¶~¶~¼~Ð~à~å~å~ë~ñ~ö~ö~ö~ü~ +/448==BMYs‰••›¨ª·ÃÒååòþþþþ€€€*€5€=€E€G€Y€^€l€{€�€Ž€Ž€¥€µ€µ€É€Õ€×€à€ì€�� ���*�*�5�5�5�5�5�±ƒã ŒÐ×V×VõVWW WDWJWOWUWcWjWyW~WŠWœWœWºWÅWØWßWùWX"X=XUXqXzX‰X‘XžX§X¬X¼XÊXêXïX÷XY"Y2Y8YCYLYRY˜Y‚YsY¨YãYÍY¾YóYöYZªZä<%0 D DÁDÇDÐDâDûDEE)Eå„ |¾ ¾ à ë ò ú ý ý  !!!!"!)!/!5!;!B!H!Y!Y![!d!p!v!›!Ÿ!¢!²!º!¿!¿!Æ!Ï!à!æ!ï!ú! " """#"*"1"9"?"A"O"f"i"x"…"’"’"’"’"˜"ª"³"Ä"å"ö"## #'#.#.#7#>#J#Z#e#e#e#y#�#�# #[$æ„9ú7ú78%8,808F8s8‰8š8£8±8Ã8Ü8Ü8î8999 9çX{Í––ÁËÞéû  '/EM`u…�‘¡±ºÀÅÌÒØÞéô÷þ :O\_gk}Œ“›¶Ó×àçù )@NTXZgggi€††˜è  -XˆXˆaˆuˆzˆé¤¢Çggƒ‰› ¦©­­ÐÕ€î€*€€9€O€;€^€f€k€q€t€x€z€“€€¢€¢€¢€½€ì€ø€ê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxËåwdwd•d§d­d¹dÐdÐdâdèdódeeee$e/e=eJeVedesese£eìd§¼çíçíëíþíþíî î+î+îBîBîYîYîpîpî‡î‡îžî î î¤îíÌÂñ÷÷ +AAS^rv{�‡™¥º¼Õäèèèû",7EL[]v��¢îP1A0E0EFEREZE^EoE}EƒE�E—E¢E¨E«EµEï ®- > >9>D>H>Q>X>_>u>†>—>©>»>Ê>Ù>ê>ù>ù>?? ??!?*?1?5?U?U?U?U?U?a?e?h?p?~?†?“?›?£?´?¿?Ä?Ä?Ñ?×?æ?ý?ÿ? -@@"@%@+@'@?@V@X@f@h@s@y@y@�@�@“@š@°@°@°@µ@µ@Í@Û@æ@ë@ë@î@ó@ó@A A-A/A/A3A5A5ATAbAnApApAsAuAuA‚A„A„A‡A‡A‡A‡A‡A�A–AšA¦AÆAÓAáAèA°Bð(rxX‹X‹f‹m‹}‹€‹†‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTPôô,ô2ô5ô>ôHô`ôpôyôô‚ô†ôˆô ô°ô½ôÃôÇôÍôÏôÒôÖôÖôùôýôõõ -õ1õFõYõlõrõyõ„õŽõ’õ•õœõ¢õ¦õ¬õ½õÃõÈõÍõÚõÜõîõðõ÷õööööööö<öGöSöjöjöö‹ö¨öÌöæöëö÷÷÷,÷1÷7÷H÷]÷c÷s÷€÷”÷›÷§÷¿÷Ë÷Ë÷Ë÷Ñ÷Ô÷×÷ð÷ö÷ -øøø ø ø%ø2ø?ø?øEøSøjøpøsøvø}ø†ø�ø�ø’øŸø¬ø¬ø²øÀø×øÝøàøãøêøêøûøùùùù#ù-ù4ù:ùAùLù`ù`ùzùù†ùŽù•ù¥ù©ù²ùÊùÏùÖùøùú úú*ú>ú>úYúYúsú�úˆú�ú±úÄúèúêúôúûûû/û;ûLûkûoûDüóÀ€¬ï^ï^_ __ _*_6_W_8_f_k_k_�_Á_¤_—_ä_é_``#`D`%`S`X`q`x`›`±`±`×`×`ã`ô 00060<0õ4‘šçOçOÿO"P/P5P;P>P^Pö8 ê.ê.ø.ÿ. -/// /%/%/+/÷ :>11!1)1.1øÐSçuçuvv v6vSvbv†v´vºvÀvÈvÊvÒvçvêvõvww4wCwgw•w›w¡w©w®w¶wËwÎwÙwåwêwðwöwþwxxx6xDxrxxx}x…x•x—x»xéxïxôxôxyyy8yPy\ydyryrywyŠy¡y£yÀyØyäyìyúyúyÿyz z)z@zYzrz„z‘z³zÊzãzñzóz -{ { {){5{K{d{w{‚{•{™{™{™{ {¥{¸{Ã{Ý{ß{ä{÷{||||+|ù€k˜:˜:®:º:º:Ð:Û:Ý:ý:ý:ý:;;;;;;";&;<;<;r;~;�; ;·;¼;¿;Ä;Ä;Ä;à;ç;ô;û;<<<$<0<8<=<=<Y<e<n<v<~<Š< <«<Î<Ò<à<è<í<í< =#=-=9=A=F=F=e=q=ƒ=ˆ=¤=°=¿=Ä=Ó=à=å=å=å=å=è=í=í=í= >>*>,>/>4>4>4>>>F>M>U>^>i>o>|>Š>Š>”>�>¥>Ú>à>ç>ö>???(?0?0?2?2?7?7?>?D?H?O?S?S?S?S?b?b?‡?�?�?”?¯Cú(°C°C¾CÇCÕCÛCû�°Ðßkßkýkll'lNЉЉ܉ð‰ó‰ŠŠŠŠ'Š/Š2Š8ŠT¡²�P�P©P¼P¿PÉPÖPëPíPÿP QQQ#Q&QzQ<˜£¨Œ¨Œ¼ŒÃŒÏŒÛŒëŒðŒóŒ÷ŒÿŒ 26FæFæTæ`æH!/—Z—Z«Z·ZÍZ¹ZÜZÞZåZðZüZ[D>‹ T TATLTQTYTsTzT|T|T˜TžT T«T²T²T¶TÅTÎTÖTßTçTîTõTùTUUUUU2U6ULU_UeUyU~U‹U‹UŸUªU±UºUÈUÑUôUúUþUVV VVV&V/VCVJV\VpVwVwV~V�VÓVläû&ä&ä:äPä^äiämätäxä�ä�ä’ä’ä¦ä¨ä±ä·ä·ä·ä·ä¿ä´EnÀEÀEæE÷EüEF F FF(F,F1FFFHFKFOFVFjFnFvF‚F‰F�F•F—FŸF­FµF·FºFÓFÛFãFñFõFG %I÷r÷rss s/sGsMs[slsts{s”sÁsÛsèsõst t tt@tGtMt[tctyt„tŠt�t³t BÂjj*j-j4j?jNjPj[jjjjjwj…jˆjŠjŠj�j”j�j¨j®j·jÊjÏjäjïjùjùjkk>>Q>i>V>Š>x>™>Ÿ>®>Ã>Å>Ð>Ø>Ø>ù>þ>???9?&?n?T?H?}?š?…?º?Ò?¿?ô?á?@@$@6@,@M@M@M@T@v@v@‚@ Ð1ø’ø’ “ “2“2“R“V“[“[“[“g“l“|“�“�“�“†“†“Ÿ“¦“µ“Ó̓ܓå“ç“ç“ç“ç“î“õ“ü“” -””” ” ”!”!”'”,”3• D$_r_rmrwr�r‘r–rŸr«r­r¿r¿rÁrñr \ No newline at end of file +555$5,545<5C5S5S5X5¬´* £ £Ã£Ð£Õ£Ù£â£ñ£ý£¤¤¤&¤.¤1¤=¤E¤_¤…¤¤•¤ž¤Ó¤¿¤ã¤ã¤û¤¥"¥)¥M¥T¥†¥†¥†¥†¥ç¥­˜‹-޹޹«¹²¹º¹Å¹Ü¹æ¹æ¹ý¹º"º8ºFºJºjº~º’º™º�º¶ºÀºÑºÞºÞºåºìºñºöºûº» »#»*»:»>»>»H»^»b»b»s»†»™»™»Ÿ»ª»±»¹»Ä»Ë»Ó»Þ»å»å»ð»¼¼*¼¼E¼E¼K¼R¼a¼k¼y¼€¼„¼†¼˜¼˜¼˜¼ª¼²¼Ø¼æ¼æ¼ê¼ÿ¼½½"½7½<½J½Y½c½q½|½€½…½�½‘½ ½¢½±½³½Â½Ä½Ó½Ú½Þ½ò½ü½ +¾¾¾%¾0¾5¾S¾]¾k¾r¾v¾€¾Ž¾•¾™¾£¾·¾¿¾Ê¾Î¾Î¾Î¾Ù¾ä¾ô¾¿¿¿)¿8¿@¿K¿P¿X¿c¿o¿s¿~¿ƒ¿—¿Ÿ¿ª¿ª¿ª¿ª¿Ç¿ä¿ð¿ø¿ÀÀ6À:ÀiÀ^ÀOÀyÀyÀƒÀŠÀ™À¨À²ÀÀÀÇÀËÀÍÀÜÀæÀôÀûÀÿÀÿÀÁÁÁ%Á%Á%Á+Á7ÁIÁQÁiÁ•Á£Á§ÁÅÁÌÁÓÁÞÁôÁùÁÂÂÂ+Â2Â6Â8ÂKÂUÂcÂjÂnÂnÂnÂnÂ|‡– ®¹½½ÂÂÂÊÂÎÂÝÂßÂîÂðÂÿÂÃÃÃÃ/Ã9ÃGÃNÃRÃbÃmÃrÃ�ÚèïóýÃËÃÒÃÖÃàÃôÃüÃÄ Ä Ä ÄÄÄ+ÄEÄUÄ`ÄuÄząĕġķĿÄÊÄÙÄáÄìÄñÄùÄÅÅÅ Å$Å8Å@ÅKÅKÅKÅKÅ_ÅońőŕũźÅÏÅÜÅàÅîÅÆÆ*ÆCÆ\Æ^ÆiÆqÆqÆzÆ—Æ¨Æ¿ÆØÆæÆñÆýÆÇÇÇÇÇÇ7ÇEÇSÇjÇ�Ç�Ç�ǽÇÄÇÄÇÔÇèÇÈÈÈÈ+ÈFÈQÈhÈpÈpȕȕȨÈÃÈÌÈãÈýÈ ÉÉ9ÉGÉ]ÉyɉɡɡɹɹÉÅÉàÉøÉÊÊÊ ÊÊ6Ê?Ê?ÊFÊOÊUÊaÊÀÊ®<ùD����µ�Á�Ì�Ö�Ü�æ�ì�ö�‘‘ ‘*‘0‘:‘@‘J‘Q‘]‘c‘l‘—‘¦‘©‘«‘µ‘Ǒёã‘í‘’’’’$’)’9’D’I’]’_’p’“’“’�’²’À’É’Ñ’ß’ð’““““+“+“3“A“ˆ“¯$› ÿPÿPQQ&Q,Q°l£:GGGG`GxGˆG¨GºGÒGíGíGH H#H&H*H/H9HC+CRCMCnC}C…C�C’C�C¨C¨C­CÎCÐCñCñCøCýC D!DCDCDCDKD¸\æùGfGf]fofuf€fŽfšf±f±fÃfÉfÔfäfïfýf +g6g¹$âç' ' E X _ f m q s z � … … � ¦ ° ° Ä Ï Ý î ò ÷     ! ' D D R i n ‡ ˜ œ œ œ ¡ ¬ ¶ ½ Ð Ô Ù í õ þ !! !!-!D!F!_!r!v!v!v!Š!Ž!—!›! !¦!Ã!Ã!Ñ!è!í!"""-"-"-"2"A"C"e"e"‡"’"˜"®"¿"Ä"Ï"ã"ç"ð"ô"ö"ü"####:#<#U#f#j#j#q#„#ˆ#š#Ÿ#³#»#Ä#È#Í#Ô#ê#ú#$$/$B$F$X$X$X$X$j$]$$Ž$�$²$½$Ã$Ù$ê$ê$ê$ñ$%%%%,%,%?%V%a%r%w%}%‡%‰%•%•%œ%§%¼%¾%É%Þ%ê%ì%÷%&&&!&+&3&7&;&=&B&J&N&`&b&g&o&s&u&u&~&‹&¡&Á&Û&é&õ&ü&ü&''''' '9'G'S'Z'Z't'v'{'•'£'¯'¶'¶'Ã'Í'Í'ß'ºÜ ¹¬(J(JEJTJTJTJqJqJ‚J‚JˆJŠJŠJ�J’J’J˜JšJšJ¡J¥JªJªJªJªJªJªJ²JÊJÊJßJêJôJKKK:KL,LDLSLXL_LhL{LƒL‹L�L�L�L™L²L¸L¸LÑLßLüLMM M%M-M2M2M8M8MAMRMTMiMkMsMyM�M†M†M†M†M”M«M­MÁMÁMÉMÏM×MÜMåMíMöMüMNNNN N NN1N5N7NCNEN`NfNnNsN|N‡N‹N‘N•NžN¡N¡N¯NÀNÂNêNO OOO#O(O(O-O/O7O7OROdOiOuO{O~O•O—OšOªO®OµO¾OÍOÛOáOéOîOöOûOûOPPP4P9PCPkPvP�PŒP—P¢P­P¸PÃPÎPÎPÎPÖPåPþP Q)QBQDQJQLQPQ[Q]Q]QcQiQiQqQzQ€QŒQŒQ“Q–QµQÀQÈQÐQÕQÕQÜQàQåQ÷QüQRRRRDRDRMR[RlRxRR�RœR²R¸R½R½RÂRØRäRìRüRSSS$S&S/S2S2SV>VLVRVXVbVlVzV�V’V”VžVžV V¨V­V²V·V·V½VÅVÊVÊVÏVÚVßVäVïVôVWW!W&W+W0W5W:W?W?WDWIWeWoWƒW—W�W¥W¥W³W¹W¿WÉWÓWáWöWùWûWXXXXX!X&X/X/X4X4X:XBXGXGXLXWX\XaXfXuXuX†XŒXŒXšX X¦X°XºXÈXÝXàXâXìXûXYYYY YYYY!Y)Y.Y.Y3Y>YCYHYMY\Y\YmYsYsY�Y‡Y�Y—Y¡Y¯YÄYÇYÉYÓYâYçYçYçYïYôYýYZZZZZZ"Z(Z(Z6Zæ>æRæ`æfæ‰æ�æ•æºæÀæÆæÌæÌæÔæÂô#œ�7�7—7¦7ª7·7Ä7Ø7ç788#8E8m8{8—8©8Á8Ø8ã89"919L9W9r9‹9‹9¦9Ï9é9::%:4:4:?:R:c:v:†:“:Ÿ:®:Ë:Ë:Ó:Ó:Ó:ä:ñ:ø:; ;1;5;=;H;`;x;�;‘;™;ž;Â;Ò;â;í;<<<4<6<A<t<Ž<Ž<¦<µ<½<Ì<Õ<Ý<ï<==!=,=.=>=V=n=†=ž=°=Ç=Ð=Ù=ë=ù=ý=>à H‰H‰Q‰p‰u‰Ä\ˆ[&Î&Î@ÎGÎTÎ_ÎdÎjÎ|΂ΚΠξÎÔÎßÎåÎÏÏÏ,Ï.Ï1Ï=ÏEÏMÏUÏcÏiÏrÏ~Ï~πϒϘÏ�Ï�Ï´Ï´ÏÒÏÒÏåÏòÏ÷Ï÷ÏÐÐ&Ð<ÐGÐUÐ`ÐpÐ}Ð�ЕПЫиккÐÂÐÇÐÇÐÏÐÔÐÔÐÜÐáÐáÐéÐîÐîÐôÐùÐùÐÑÑÑ ÑÑÑÑ!Ñ!Ñ,Ñ1Ñ1Ñ<ÑAÑAÑLÑLÑgÑnÑtÑwтхљѦѵѼѿÑÑÑÓÑÙÑíÑúÑ Ò Ò Ò ÒÒ-ÒBÒTÒeÒnÒÒ…ÒŠÒ•Ò§Ò¸ÒÇÒÍÒÞÒéÒóÒÓÓÓ#Ó)Ó>ÓDÓUÓ`ÓfÓvÓvÓ†Ó™Ó¥Ó­Ó½ÓÄÓÊÓÛÓæÓëÓÔÔ+Ô;ÔGÔYÔdÔsÔuÔ‡Ô�Ô”Ô›ÔŸÔ­Ô·Ô½ÔÇÔÍÔØÔÞÔàÔíÔúÔÕÕ+Õ+Õ1Õ8Õ|×ÅD#°ˆ­ˆ­§­É­Ñ­Ñ­ß­ò­ ®®®4®4®4®<®>®>®F®H®H®P®R®R®Z®Z®c®i®n®n®w®†®Š®�®•®š®š®š®š®¢®«®±®¶®¶®»®È®á®¯¯¯8¯8¯8¯@¯B¯B¯B¯J¯L¯L¯L¯T¯V¯V¯V¯^¯`¯`¯k¯k¯q¯v¯v¯v¯v¯}¯ˆ¯š¯¨¯¶¯À¯À¯À¯Ð¯Ð¯×¯Û¯á¯ù¯°°'°P°S°\°c°w°°ˆ°“°“°ž°¤°©°©°©°°°¶°Ë°Ó°Ù°ä°û°±±$±)±)±0±;±;±@±R±X±X±X±X±´±Æd$àCàCD DDDD,D.D;D=DHD\DdDtDyDD‡DŠDœDÇLWf"1"161:1?1J1J1T1Z1Z1^1f1È\CVº0º0Ð0Ð0Ô0Ù0ì0ï0ô0ô0þ011111É8(2VØVØ_Ø_ØmØqØxØ{Ø€ØÊ¨Y�]�]§]¯]º]Í]Á]ÿ]c^I^>^$^ ^i^~^n^ž^£^À^Å^Ú^Ç^é^ï^ï^ö^ _K_._b_€_€_€_Œ_ËlQhÇ-Ç-á- +.ì-.9.U.K.m.….r.”.­.Í.ß.ø.ø.ÿ.!/!/+/Ì4�¦7î7îKîPîVîZî^î}î…îÍxÏéï�ï�‚‚)‚3‚:‚P‚U‚Z‚^‚`‚f‚l‚‚‚o‚‘‚ª‚²‚Ä‚ç‚Ý‚ö‚ƒΔ"X¬X¬f¬x¬|¬„¬Œ¬—¬¢¬ª¬µ¬À¬Å¬Û¬â¬é¬ô¬ÿ¬­ ­­­%­0­;­D­L­L­P­‡­Ï€ø2626P6T6X6`6n6q6t6Š6�6’6¤6¨6¬6´6¼6È6Ý6î6õ6ü6ü6 77к<EE7EBEgEIE�E·E¼E¼E¿EÉEáEðEòEúEF=FOF\FwF‡FŒF¦F°F²F·FÎFõFGG/GKGAGeGkGkGtG”G G£G¥GÀGªGÏGÏGáGáGïGùG$HH>H>HCHFH\HhH}H¡H«H±HÁHéHØHøHúH I I4I*IIIOI^I†IuI•I—I©I³IÇIÑIÚIñIûIýIJJJ:J@J@J@JIJiJ‘J€J J¥J·J¿JêJàJÿJÿJÿJ%K%K7KÑÄ8¥Ÿ2Ÿ2Ö2Ý2å2î2ù2333 3#3,3:3D3I3q3v3ƒ3¯3´3Á3á3æ3õ3!4)4.4C4o4w4|4|4�4¢4µ4¹4Û4ë4ð4ð45555505H5M5P5S5S5€5…5…5’5–5±5Ì5Ú5å56666%6'6'6'646K6M6M6Z6q6q6�6†6©6Ì6Ô6Ù6õ67#717;7=7=7=7Y7a7c7c7‹7Á7Ò¤8]ŸêŸê¹êåêåêëëëë(ë:ëTë\ëcëhëƒë‹ë‹ë‹ë�ë�ë�ë�ë©ë©ë©ë©ëÀëÂëÂëÂëÂëÝëèëìÓÐꃃƒ)ƒ.ƒ.ƒ:ƒ?ƒDƒOƒTƒTƒTƒ‰ƒvƒ˜ƒ¿ƒ¿ƒ؃ñƒ +„#„(„(„A„Z„s„Œ„‘„‘„ª„ÄÜ„õ„÷„÷„…)…B…[…[…[…m…Ô0”œ×í×íåíëíïíî/î/î5îÕ<:E"9"9+969D9P9\9e9n9w9}9‚9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ý& '('*':':'?'A'H'z'×ПÏ×s×sëst +tös5tgtMt@t’t—t¢t°t¿tÎtÖtótLu?u4u uRu]u‰uŽu–uµu½uâu×uÃuõuvúu1vvHvOv{v{v{v{vƒvØLix////M/_/f/ˆ/ˆ/š/§/·/­/Ï/Ù/Ù$qvGOGO[OcOnOtOÚÈg•j1j1Ž1’1±1Ó1ß1æ1ñ1ÿ1 2222$2<2G2W2c2j2u2†2ˆ2™2›2�2�2�2¥2¥2¯2¯2·2¿2Ç2Ï2Ó2Þ2*3Û ¸ˆ¸ˆÆˆÝˆãˆÜ`FZ‚9‚9’9™9›9 9¯9µ9Ê9Ê9Ø9Ø9ä9í9ð9þ9: ::Ý<ùçŽçŽðŽûŽ���&�D�O�_�Þ 5whwh�h¡h§h³h¾hÌhØhïhúh +ii"i(i.iAiGiPiVihiniyi�i�iœiÙiß,29111&1?1S1V1\1à4x‰x‰†‰�‰™‰ ‰§‰±‰±‰·‰áÄMzçþçþÿÿÿ(ÿ-ÿ?ÿAÿEÿIÿLÿ_ÿxÿžÿ§ÿ²ÿ¹ÿÒÿøÿýÿ<AHa‡‰¢ÈÈÈàú â ˆÇxx5x8x>xRxZxkxxx~xƒxƒx�x™xŸx¯x½x¿xÞxòxùxyyy#y6yAyEyVyVyVy[y[ygyvy‰y�y”y¨y®y¶yÈyÎyÐyßyìyòyøyýyz zzz#z%z*z2z4z9zEzGzLzTzVz[zczezjzrztzyz�z�z�z‘z‘z‘z¨z®z´z¿zÄzÝzãzîzöz{{ +{#{.{9{?{L{Q{V{V{k{s{}{…{�{®{¹{Ä{Ð{Ê{Ù{â{ç{ì{||||#|/|3|8|=|H|S|^|`|f|s|x|}|–|¡|¬|¬|²|¿|Á|Æ|Ï|è|ó|þ|}}}}}}+}-}-}@}B}B}U}W}W}j}l}l}}�}�}“}“}™}ž}ž}µ}É}¾}Ö}Þ}å}ë}ó}~~~!~!~#~;~>~@~O~a~q~}~”~®~³~Ç~×~ê~ï~ï~ø~ )19=KQVV\p€……‹‘–––œ«¾ËÏÔÔØÝÝâíù€)€5€5€;€H€J€W€c€r€…€…€’€ž€ž€ž€ž€¢€§€¸€Ê€Õ€Ý€å€ç€ù€þ€ ��!�.�.�E�U�U�i�u�w�€�Œ�£�£�©�¶�¸�Ê�Ê�Õ�Õ�Õ�Õ�Õ�Q„ã ŒÐwWwW•W£WºW¿WäWêWïWõWX +XXX*XYGYLY\YjYŠY�Y—Y°YÂYÒYØYãYìYòY8Z"ZZHZƒZmZ^Z“Z–Z»ZJ[ä<%0 D DÁDÇDÐDâDûDEE)Eålt>!>!`!k!n!v!y!y!‰!”!”!—!ž!¥!«!±!·!¾!Ä!Õ!Õ!×!à!ì!ò!"""&"."3"3":"C"T"Z"c"n"""ˆ"�"—"ž"¥"­"³"µ"Ã"Ú"Ý"ì"ù"#### ##'#8#Y#j#x#�#ˆ#”#¤#¯#¯#¯#Ã#×#ç#ê#¥$æ„9ú7ú78%8,808F8s8‰8š8£8±8Ã8Ü8Ü8î8999 9çX{Í&&Q[ny‹™Ÿ°·¿ÕÝð !1AJPU\bhny„‡Ž¨°Êßìï÷û #+Fcgpw‰‘˜œ¥§¹ÐÞäèê÷÷÷ù(è  +èˆèˆñˆ‰ +‰é¤¢Ç€€#€)€;€@€F€I€M€M€p€u€¢€Ž€±€Ê€¶€Ù€ï€Û€þ€� �����3� �B�B�B�]�Œ�˜�ê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxËåee5eGeMeYepepe‚eˆe“e£e¯e¸e¾eÄeÏeÝeêeöefffCfìd§¼‡î‡î‹îžîžî¸î¿îËîËîâîâîùîùîïï'ï'ï>ï@ï@ïDïíÌÂñ——¹ÀËááóþ !'9EZ\u„ˆˆˆ›°°¼ÂÌ×åìûý00BîP1A0E0EFEREZE^EoE}EƒE�E—E¢E¨E«EµEï ®-¿>¿>Ù>ä>è>ñ>ø>ÿ>?&?7?I?[?j?y?Š?™?™? ?¤?­?º?Á?Ê?Ñ?Õ?õ?õ?õ?õ?õ?@@@@@&@3@;@C@T@_@d@d@q@w@†@�@Ÿ@ª@·@Â@Å@Ë@Ç@ß@ö@ø@AAAAA!A!A3A:APAPAPAUAUAmA{A†A‹A‹AŽA“A“A²AÀAÍAÏAÏAÓAÕAÕAôABBBBBBB"B$B$B'B'B'B'B'B0B6B:BFBfBsB�BˆBPCð(rxè‹è‹ö‹ý‹ ŒŒŒñ(ntZ&Z&c&m&~&‰&‰&§&òTPžôžô¼ôÂôÅôÎôØôðôõ õõõõõ0õ@õMõSõWõ]õ_õbõfõfõ‰õ�õ“õ“õšõÁõÖõéõüõö ööö"ö%ö,ö2ö6ö<öMöSöXö]öjölö~ö€ö‡ö”ö–ö¨ö¨ö¨ö¨ö¨öÌö×öãöúöúö÷÷8÷\÷v÷{÷’÷—÷¥÷¼÷Á÷Ç÷Ø÷í÷ó÷øø$ø+ø7øOø[ø[ø[øaødøgø€ø†øšø ø¥ø°ø°øµøÂøÏøÏøÕøãøúøùùù ùùùù"ù/ù<ù<ùBùPùgùmùpùsùzùzù‹ù’ùŸù¬ù¬ù³ù½ùÄùÊùÑùÜùðùðù +úúúú%ú5ú9úBúZú_úfúˆú“ú™ú¡úºúÎúÎúéúéúûûû ûAûTûxûzû„û¦û¦û¦û¿ûËûÜûûûÿûÔüóÀ€¬�_�_§_«_°_¿_Ê_Ö_÷_Ø_` ` `0`a`D`7`„`‰`²`·`Ã`ä`Å`ó`ø`aa;aQaQawawaƒaô V0V0e0~0„0õ4‘š‡P‡PŸPÂPÏPÕPÛPÞPþPö8 ê.ê.ø.ÿ. +/// /%/%/+/÷ :>_1_1i1q1v1øÐS‡v‡v¥vµvÀvÖvóvw&wTwZw`whwjwrw‡wŠw•w¡w·wÔwãwx5x;xAxIxNxVxkxnxyx…xŠx�x–xžx¦x®x¾xÖxäxyyy%y5y7y[y‰y�y”y”y¥y°y»yØyðyüyzzzz*zAzCz`zxz„zŒzšzšzŸz²z¿zÉzàzùz{${1{S{j{ƒ{‘{“{ª{À{À{É{Õ{ë{||"|5|9|9|9|@|E|X|c|}||„|—|¢|¯|¹|¹|Ë|ù€k˜:˜:®:º:º:Ð:Û:Ý:ý:ý:ý:;;;;;;";&;<;<;r;~;�; ;·;¼;¿;Ä;Ä;Ä;à;ç;ô;û;<<<$<0<8<=<=<Y<e<n<v<~<Š< <«<Î<Ò<à<è<í<í< =#=-=9=A=F=F=e=q=ƒ=ˆ=¤=°=¿=Ä=Ó=à=å=å=å=å=è=í=í=í= >>*>,>/>4>4>4>>>F>M>U>^>i>o>|>Š>Š>”>�>¥>Ú>à>ç>ö>???(?0?0?2?2?7?7?>?D?H?O?S?S?S?S?b?b?‡?�?�?”?¯Cú(°C°C¾CÇCÕCÛCû�°Ðll�l¥l±lÇlÜlêlõlm +m +m +mmm"m-mFmHmMm[mfmsmzmˆmü\=P§,§,Á,æ,È,õ,--)->-+-M-f-x-‘-‘-˜-º-º-Ä-ý8fpÇNÇNßNîNOOOO O@Oþ0�—àŒàŒôŒ���)�,�4�ÿ0S[ÙÙ2Ù:ÙGÙQÙdÙP>N`Š`ŠlŠ€ŠƒŠ—ŠŸŠ£Š­Š·Š¿ŠÂŠÈŠT¡²/Q/QIQ\Q_QiQvQ‹Q�QŸQ©Q½Q½QÃQÆQR<˜£8�8�L�S�_�k�{�€�ƒ�‡��� 26ÖæÖæäæðæH!/7[7[K[W[m[Y[|[~[…[�[œ[¤[D>‹¿T¿TáTìTñTùTUUUU8U>U@UKURURUVUeUnUvUU‡UŽU•U™U U¨U®U³U»UÒUÖUìUÿUVVV+V+V?VJVQVZVhVqV”VšVžV£V¨V«VµVºVÆVÏVãVêVüVWWWW!WsWläû¶ä¶äÊäàäîäùäýäååå å"å"å6å8åAåGåGåGåGåOå´EnÀEÀEæE÷EüEF F FF(F,F1FFFHFKFOFVFjFnFvF‚F‰F�F•F—FŸF­FµF·FºFÓFÛFãFñFõFG %I—s—s§s³s¿sÏsçsísûs ttt4tat{tˆt•t¥t«t­t¾tàtçtítûtuu$u*u0uSu B j jºj½jÄjÏjÞjàjëjújújkkkkk k$k-k8k>kGkZk_ktkk‰k‰kŸkŸkÌkÖkàk÷kýkl lllll!l'l,l,l?lMl[lelklplzl„lŽl•l•l¤l²lÍlÓlØlØlmmm3mZm_m_m_mbmimomvm{m{m�m‡mŒmŒm£m­m·m½mËmàmæmömnnnn n)n3n9n@n@nBnBnBnGnMnRnVnXn[nfnunxnzn~n~nƒnƒn‘n»n +˜u—¦$¦$Â$Ç$Î$Ø$Þ$é$ù$% %%%#%)%4%D%L%\%c%k%s%{%ƒ%ˆ%“%¡%¡%·% $b==—=ž=±=Ù=ä=ñ=ÿ=ó=(>(>4><>K>…>‡>´>¼>¼>ñ> ?ö>*??9???N?c?e?p?x?x?™?ž?§?³?»?Ù?Æ?@ô?è?@:@%@Z@r@_@”@�@µ@£@Ä@Ö@Ì@í@í@í@ô@AA"A Ð1ˆ“ˆ“œ“œ“Â“Â“â“æ“ë“ë“ë“÷“ü“ ””””””/”6”E”S”\”l”u”w”w”w”w”~”…”Œ”“”𔡔¨”¯”¯”±”±”·”¼”Õ D$ÿrÿr ss!s1s6s?sKsMs_s_sas‘s \ No newline at end of file diff --git a/Compiler/CompilerA.HH b/Compiler/CompilerA.HH index e13a7e4..bfc9c48 100644 --- a/Compiler/CompilerA.HH +++ b/Compiler/CompilerA.HH @@ -286,7 +286,7 @@ class CIntermediateStruct #define KW_NOARGPOP 47 #define AKW_ALIGN 64 -#define AKW_MODULE_ORG 65 +#define AKW_ORG 65 #define AKW_I0 66 #define AKW_I8 67 #define AKW_I16 68 diff --git a/Compiler/CompilerB.HH b/Compiler/CompilerB.HH index 67409e3..989e1f4 100644 --- a/Compiler/CompilerB.HH +++ b/Compiler/CompilerB.HH @@ -21,6 +21,7 @@ extern U0 StreamDir(); public extern I64 StreamExePrint(U8 *fmt,...); public extern U0 StreamPrint(U8 *fmt,...); public extern Bool Trace(Bool val=ON); + #help_index "Compiler/Lex" #help_file "::/Doc/Lex" extern U0 ClassMemberLstDel(CHashClass *c); diff --git a/Compiler/Lex.HC b/Compiler/Lex.HC index ab96a65..0213dc8 100644 --- a/Compiler/Lex.HC +++ b/Compiler/Lex.HC @@ -442,7 +442,7 @@ I64 Lex(CCmpCtrl *cc) {//Fetch next token. I64 i,j,k,l,ch; CHash *tmph; - Bool str_done,neg_e; + Bool str_done,in_str,neg_e; U8 *fbuf,*buf2,*buf3,buf[STR_LEN]; cc->last_line_num=cc->lex_include_stk->line_num; while (TRUE) { @@ -722,6 +722,7 @@ lex_float_start: i=j=0; buf2=NULL; if (ch) { + in_str=FALSE; do { if (ch=='\\') { if (ch=LexGetChar(cc)) { @@ -734,14 +735,16 @@ lex_float_start: buf[j++]='\\'; break; } - } else if (ch!='\n') + } else if (ch!='\n') { + if (ch=='\"') + in_str=!in_str; buf[j++]=ch; - else + } else break; while (ch=LexGetChar(cc)) { if (ch=='/') { ch=LexGetChar(cc); - if (ch=='/') { + if (ch=='/' && !in_str) { do ch=LexGetChar(cc); while (Bt(char_bmp_non_eol,ch)); break; @@ -749,11 +752,22 @@ lex_float_start: buf[j++]='/'; cc->flags|=CCF_USE_LAST_U16; } - } else if (ch=='\\') - break; - else if (Bt(char_bmp_non_eol,ch)) + } else if (ch=='\\') { + if (ch=LexGetChar(cc)) { + if (ch=='\"') { + buf[j++]='\\'; + buf[j++]=ch; + } else { + cc->flags|=CCF_USE_LAST_U16; + ch='\\'; + break; + } + } + } else if (Bt(char_bmp_non_eol,ch)) { + if (ch=='\"') + in_str=!in_str; buf[j++]=ch; - else + } else break; if (j>=STR_LEN-4) {//Spot for ['\'][ch],[ch],[0] buf[j++]=0; diff --git a/Compiler/OpCodes.DD b/Compiler/OpCodes.DD index d44120e..20babe6 100644 --- a/Compiler/OpCodes.DD +++ b/Compiler/OpCodes.DD @@ -187,7 +187,7 @@ KEYWORD argpop 46; KEYWORD noargpop 47; ASM_KEYWORD ALIGN 64; -ASM_KEYWORD MODULE_ORG 65; +ASM_KEYWORD ORG 65; ASM_KEYWORD I0 66; ASM_KEYWORD I8 67; ASM_KEYWORD I16 68; diff --git a/Compiler/PrsVar.HC b/Compiler/PrsVar.HC index c565c1f..7f51c8d 100644 --- a/Compiler/PrsVar.HC +++ b/Compiler/PrsVar.HC @@ -244,12 +244,10 @@ U0 PrsStaticInit(CCmpCtrl *cc,CMemberLst *tmpm,I64 pass) } } -Bool PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim) -{//Returns false on empty [] -//dim->next!=0 for array +U0 PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim) +{//dim->next!=0 for array CArrayDim *tmpad,*tmpad1; I64 j; - Bool res=TRUE; dim->next=NULL; dim->cnt=0; dim->total_cnt=1; @@ -258,30 +256,30 @@ Bool PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim) if (mode.u8[1]==PRS1B_FUN_ARG) LexExcept(cc,"No arrays in fun args at "); do { - if (Lex(cc)==']' && !dim->next) { - j=-1; - res=FALSE; - } else { + if (Lex(cc)==']' && !dim->next) + j=0; + else { if ((j=LexExpressionI64(cc))<0) LexExcept(cc,"Invalid array size at "); } - tmpad1=&dim->next; - while (tmpad1->next) { - tmpad1->next->total_cnt*=j; - tmpad1=tmpad1->next; - } tmpad=MAlloc(sizeof(CArrayDim)); - tmpad1->next=tmpad; - tmpad1=tmpad; tmpad->next=NULL; + tmpad1=&dim; + do { + tmpad1->total_cnt*=j; + if (!tmpad1->next) { + tmpad1->next=tmpad; + break; + } + tmpad1=tmpad1->next; + } while (tmpad1); + tmpad1=tmpad; tmpad->cnt=j; tmpad->total_cnt=1; - dim->total_cnt*=j; if (cc->token!=']') LexExcept(cc,"Missing ']' at "); } while (Lex(cc)=='['); } - return res; } CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1, @@ -292,7 +290,6 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1, CHashClass *tmpc1=*_tmpc1,*tmpc2; CHashFun *fun_ptr=NULL; CHashExport *tmpex=NULL; - CArrayDim *tmpad2; pt_start: if (!tmpc1 || !(tmpc1->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) @@ -358,12 +355,7 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tmpc1, fun_ptr=PrsFunJoin(cc,tmpc1,NULL,fsp_flags)+ptr_stars_cnt; tmpc1=cmp.internal_types[RT_PTR]+ptr_stars_cnt; } - if (!PrsArrayDims(cc,mode,tmpad) && cc->token!='=') { - tmpc1++; - tmpad2=tmpad->next->next; - Free(tmpad->next); - tmpad->next=tmpad2; - } + PrsArrayDims(cc,mode,tmpad); tmpc2=OptClassFwd(tmpc1); if (tmpc2->ptr_stars_cnt) { diff --git a/Demo/AcctExample/HomeKeyPlugIns.HC b/Demo/AcctExample/HomeKeyPlugIns.HC index c52900a..ddc25d6 100644 --- a/Demo/AcctExample/HomeKeyPlugIns.HC +++ b/Demo/AcctExample/HomeKeyPlugIns.HC @@ -126,38 +126,6 @@ Bool MyPutKey(I64 ch,I64 sc) "$$BLUE$$"; } return TRUE; - case SC_F5: - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /GodOffer"); - else - GodOffer; - return TRUE; - case SC_F6: - if (sc&SCF_SHIFT) { - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /TOSIns"); - else - TOSIns; - } else { - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /TimeIns"); - else - TimeIns; - } - return TRUE; - case SC_F7: - if (sc&SCF_SHIFT) { - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /NISTGodIns2"); - else - NISTGodIns2; - } else { - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /GodIns"); - else - GodIns; - } - return TRUE; case SC_F8: if (sc&SCF_SHIFT) { if (sc&SCF_KEY_DESC) @@ -185,6 +153,22 @@ Bool MyPutKey(I64 ch,I64 sc) else AutoComplete; return TRUE; + case 'f': //With sync + if (sc&SCF_KEY_DESC) + KeyDescSet("Cmd /FrameGrabber Sync"); + else if (fg_on) + FrameGrabberToggle(FALSE,FALSE,FALSE); + else + FrameGrabberToggle(TRUE,FALSE,FALSE); + return TRUE; + case 'F': //With sync and intro TOS theme + if (sc&SCF_KEY_DESC) + KeyDescSet("Cmd /FrameGrabber Intro"); + else if (fg_on) + FrameGrabberToggle(FALSE,FALSE,TRUE); + else + FrameGrabberToggle(TRUE,TRUE,FALSE); + return TRUE; case 'h': if (sc&SCF_KEY_DESC) KeyDescSet("Cmd /WinTileHorz"); @@ -211,12 +195,6 @@ Bool MyPutKey(I64 ch,I64 sc) else WinTileVert; return TRUE; - case 'V': - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /FrameGrabberToggle"); - else - FrameGrabberToggle; - return TRUE; case 'l': if (sc&SCF_KEY_DESC) KeyDescSet("Edit/Put Link to Cur Pos on Clip"); @@ -246,6 +224,20 @@ Bool MyPutKey(I64 ch,I64 sc) "$$AN,\"\",A=\"ANC%d\"$$",i; } return TRUE; + case 'p': + if (sc&SCF_KEY_DESC) + KeyDescSet("Cmd /JukeBox"); + else + PopUp("#include \"::/Apps/Psalmody/Load\";" + "JukeBox(\"::/Home/Sup1/Sup1Hymns\");"); + return TRUE; + case 'P': + if (sc&SCF_KEY_DESC) + KeyDescSet("Cmd /Psalmody"); + else + PopUp("#include \"::/Apps/Psalmody/Load\";" + "Psalmody(\"~/Sup1/Sup1Hymns\");"); + return TRUE; //Ins your own ALT-key plug-ins case '1': @@ -284,30 +276,6 @@ Bool MyPutKey(I64 ch,I64 sc) else "$$ID,-5$$"; return TRUE; - case 'b': - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /Jump to Bad Code"); - else //$LK,"::/Adam/God/HSNotes.DD"$ - GodCodeJmp; - return TRUE; - case 'g': - if (sc&SCF_KEY_DESC) - KeyDescSet("Edit/BlogScrnShot"); - else - BlogScrnShot; - return TRUE; - case 'p': - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /JukeBox(Home/Sup1Hymns)"); - else - JukeBox("~/Sup1/Sup1Hymns"); - return TRUE; - case 'P': - if (sc&SCF_KEY_DESC) - KeyDescSet("Cmd /JukeBox(Home/Sup1Songs)"); - else - JukeBox("~/Sup1/Sup1Songs"); - return TRUE; } } return FALSE; diff --git a/Demo/AcctExample/HomeSys.HC b/Demo/AcctExample/HomeSys.HC index 01fcf83..703179f 100644 --- a/Demo/AcctExample/HomeSys.HC +++ b/Demo/AcctExample/HomeSys.HC @@ -9,7 +9,7 @@ U0 UserStartUp() WinToTop; WinZBufUpdate; Dir; - "$TX,"81,223",D="DD_TEMPLEOS_LOC_OFFICIAL"$LOC:"; + "$TX,"82,150",D="DD_TEMPLEOS_LOC"$LOC:"; CPURep; } diff --git a/Demo/AcctExample/HomeWrappers.HC b/Demo/AcctExample/HomeWrappers.HC index 0ce474e..4f190a9 100644 --- a/Demo/AcctExample/HomeWrappers.HC +++ b/Demo/AcctExample/HomeWrappers.HC @@ -2,7 +2,7 @@ #define FILEMASK_OFF_LIMITS "!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;"\ "!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Bin/*;"\ - "!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*" + "!*/God/Vocab.DD*" public I64 F(U8 *needle_str,U8 *fu_flags=NULL) {//Find text in all text files. diff --git a/Demo/AcctExample/PersonalMenu.DD b/Demo/AcctExample/PersonalMenu.DD index f73e3b7099e212d740f133ad39d3458aa8ce48b8..4362e7c2dbb55e44d4b6188a5a12e56269411d55 100644 GIT binary patch delta 181 zcmbO^hh<_j%Y=@JTQw(k=uW)%Zu3`04aUiutooBfm|rq-O@7ImI5~pVY_b=d?&LmJ z{mDz%5+?6pHJe<{rm^`QcMT&W*W`s<#*;7bSxjEcn>N{&&v-H?pULEWUK3XL#N5>4 z$&3Oblbr-SCOh)K*xV(smT7XPupnn}a#3DzMt({0WHAvVMy|;oB3hG+Mb=I}D%!QV nRO&7JWFuuqfe=R*eW%it^wg3VB~5E3mC5l+m7BYi`(FV7O1wX; delta 2886 zcmbQ(%rbKh%Y=@J8+9jkXimKMPDRDnQAf$eN?P@kuK{*%)eED-v@Ha#D*Y%kxR8K^5u41Tj>*WEPiz?c)Wp zit?cfCckGgnViRBHu)lp{^V3v!^uJ{F_V|D=uY0vB{F#xtH|WvEUEQeDn8!Y5jslF z8R7YPyv{iERw6e0&cgauIhY0JrxF|uwE&!|uqzn{xARgHBV2?TFfDC}ifp`cx z*A(~s6nL1sLc`o6zdkor-#tG?&&37gXizwUjdD%#%P&bSh6X%Xxs?@4(Cdfz2ZPn1 zYX#Zsl34`R3XWZf#_-f6{SZeNeW(JEeJ+{xMF=+rBo>uqCgwnOx)r4sXQbwVR3nr) z=clBGC+1{BlMa*@l2KHOP!r-G9Fmcmn+j0_<00h3GE-9Xi=n|ZS%ptj6(Rz05X3#8 zbfg=h9T2LcfgzXx zs|A?^jxV?o!TEXV2qWt88Ua=dH$q1V%=gTL21|&4FjN5HBd~yfX$joNFad-TP_FUJ zgL=ANDa1b*B7&;IzqABl4M>51X$eAwZ(??8cxn<<1$z8|f=ovVB(DHZXQ;6c@{>zu zk#$Uc9yoM#ltLU`K#HLzqN)a^6}S$V2FHSe;FA0zXxyS{fJtKL0>uu<9!U5&r%VoD zmtzGbEO4fk0r5G9*7)(~=)zSoUia|WRkcbei zm>7`Tz!;XAKne^EvK2t8!CH$A4YDV%zNWz5h zQi4)b>Vs1giL%HUmsLT*SS<_9fn{)zWuZAGMOf{r2f324kHGq|+f#zBzctIu4L(vcE`OHw-dwzwpvBU=F}K%Gj9 z@`CGerMfT|&)mfH)bOIrl2i@#5Op2o6sL(Os==n9#6fTgC}APR08XQvli%D}dSrpvnf;R?xs((Id4LCYy@62tgaQ`c9=O>8T~4EV%iv*pycQ>Xd3l diff --git a/Demo/AcctExample/PersonalNotes.DD b/Demo/AcctExample/PersonalNotes.DD index f5c0768..ab89b5f 100644 --- a/Demo/AcctExample/PersonalNotes.DD +++ b/Demo/AcctExample/PersonalNotes.DD @@ -1,5 +1,11 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ +* Make MV files combine disjoint rects for same frame. + +* God said to reconsider switch start/end, perhaps preface portion? + +* 170605 Alec Murphy said MountFile() of a red sea supplemental1 ISO failed. + * Does entire tool chain support super/sub script? * $LK,"::/Apps/X-Caliber/X-Caliber.HC"$ @@ -13,9 +19,9 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ * Helicopters. * Anti-Aircraft. -* $MA-X+PU,"64-Bit Device Memory",LM="F(\"mem64_ptr\");View;"$ is not implemented. +* Fix $LK,"::/Home/Sup1/Sup1Graphics/ICOFile.HC"$ -* Cursor in $LK,"~/TOS/TOSToHtml.HC"$. +* $MA-X+PU,"64-Bit Device Memory",LM="F(\"mem64_ptr\");View;"$ is not implemented. * Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$. @@ -192,8 +198,6 @@ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$ * $LK,"StrPrintJoin",A="MN:StrPrintJoin"$(,st); With st="\n\\"; (Forgot what this is talking about.) -* $LK,"BMPRLE4To",A="MN:BMPRLE4To"$() has files_size too big by 108. Fixed? - $FG,5$$TX+CX,"TODO? Not really, just angst."$$FG$ * Should these be moved into $LK,"CHashClass",A="MN:CHashClass"$ from $LK,"CMemberLst",A="MN:CMemberLst"$ and $LK,"CHashGlblVar",A="MN:CHashGlblVar"$? @@ -273,8 +277,6 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$ * Import Intel datasheets so we can use links in $LK,"Code",A="FI:::/Kernel/Mem/PageTables.HC"$ for documentation. I tried a PDF-to-text convertor and it wasn't acceptible. -* Why are BMP file $LK,"CBGR24",A="MN:CBGR24"$'s wrong? $LK,"::/Adam/Opt/Utils/FileBMP.HC"$. - * Switch stmt with sparse cases? Maybe, ban sparse switch stmts. * Compiler Optimization: Postpone LocalVar init until last possible moment in case of return. @@ -441,84 +443,13 @@ Thousand songs of Solomon $TX,"1 Kings 4:32",HTML="http://www.biblegateway.com/ Not rich, nor poor, but my portion $TX,"Proverbs 30:8",HTML="http://www.biblegateway.com/verse/en/Proverbs%2030:8"$ Be hot or cold. Lukewarm I spit you out $TX,"Revelation 3:16",HTML="http://www.biblegateway.com/verse/en/Revelation%203:16"$ -$FG,5$$TX+CX,"Misc Notes"$$FG$ -Erik van der Karbargenbok: $LK,"TempleBot",A="PI:~/Sup1/Sup1Bin/TempleBot"$. -Intel CEO's name: Brian Krzanich ->$FG,2$lspci -v$FG$ -Size:$TX,"17400KB",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/Sup1/Sup1Blog/Bookmarks"$ -Machine $HC,"

\"\"
"$ -Frosting $HC,"
\"\"
"$ -Soap Carvings $HC,"
\"\"
"$ -CottonTail $HC,"
\"\"
"$ -TempleOS Logo $HC,"
\"\"
"$ -T-Shirts & Mug $HC,"\"\""$ -Pew Pew Pew $HC,"
\"\"
"$ -Iceberg $HC,"
\"\"
"$ -I made dis $HC,"
\"\"
"$ -NIST Beacon $HC,"
\"\"
"$ -Purple Frog $HC,"
\"\"
"$ -Sombrero $HC,"
\"\"
"$ -Zinger $HC,"
\"\"
"$ -Dianna Throne $HC,"
\"\"
"$ -170310 Terry $HC,"
\"\"
"$ - $TX,"Linus Torvalds (Dec 28, 1969)",HTML="https://en.wikipedia.org/wiki/Linus_Torvalds"$ $TX,"John Carmack (Aug 20, 1970)",HTML="https://en.wikipedia.org/wiki/John_Carmack"$ $TX,"Terry A. Davis (Dec 15, 1969)",HTML="https://motherboard.vice.com/en_us/article/gods-lonely-programmer"$ - -$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,"Ticketmaster",HTML="http://www.nytimes.com/1994/11/06/business/ticketmaster-s-mr-tough-guy.html?pagewanted=a"$ +$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,"Ticketmaster",HTML="http://www.nytimes.com/1994/11/06/business/ticketmaster-s-mr-tough-guy.html?pagewanted=a"$ $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."$ - - - -$TX,"Stephen Davis",HTML="https://photos.google.com/share/AF1QipM4HI3mb_9qe8wDQ--nRfjIzOKyGG8heqWH-tbGBIIoxChWe4GeBegNzgHRy4Z1Qw?key=eGR0R0tyZG5tenRWd0tDN2RHRFRNTmI4NXdhc25B"$ - -3qEeEGCAsBABAqFDBeE2G33qEeEGCAsBABAqFDBeE2G33qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF3qCsBDBDq2G3s2G3F2G3FqAet2G32G3AEDAqF -qFeDAsBDeDqCeF2G3sGGeF2sG3C2G3CBCeF - -$FG,5$$TX+CX,"Web Bookmarks"$$FG$ -Cop tying shoe $HC,"
\"\"
"$ -$TX,"Unikernels",HTML="https://ma.ttias.be/what-is-a-unikernel"$ -$TX,"Handford school",HTML="https:/pinterest.com/pin/255368241346360278"$ -$TX,"Look at PCI interrupt routing.",HTML="http://forum.osdev.org/viewtopic.php?f=1&t=29558"$ -$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,"Wisdom for the Way",HTML="https://www.amazon.com/Wisdom-Way-Wise-Words-People/dp/1404113258#reader_1404113258"$ -$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,"Top 1000 Movies",HTML="http://www.theyshootpictures.com/gf1000_all1000films.htm"$ -$TX,"KingJamesBible with LineNums",HTML="http://www.templeos.org/Wb/Home/Sup1/Sup1Blog/NumBible.TXT"$ -$TX,"Higgs 5-Sigma Proof",HTML="http://understandinguncertainty.org/explaining-5-sigma-higgs-how-well-did-they-do"$ -$TX,"The Number Bleem",HTML="http://www.strangehorizons.com/2000/20001120/secret_number.shtml"$ -$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,"Patton Prayer",HTML="http://www.pattonhq.com/prayer.html"$ -$TX,"Streaming Terry A. Davis",HTML="https://www.youtube.com/channel/UCdX4uJUwSFwiY3XBvu-F_-Q/live"$ -$TX,"Bleem",HTML="http://strangehorizons.com/fiction/the-secret-number/"$ - -$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"$ -$TX,"BBC_Five_Live",HTML="http://www.bbc.co.uk/radio/player/bbc_radio_five_live"$ -$TX,"CBS News",HTML="http://www.cbsnews.com/live/?ftag= NM14632fc"$ - -$TX,"C64 Users Guide",HTML="http://www.commodore.ca/manuals/c64_users_guide/c64-users_guide.htm"$ -$TX,"Mapping the Commodore 64",HTML="http://unusedino.de/ec64/technical/project64/mapping_c64.html"$ -$TX,"C64 Programmers Reference Guide",HTML="http://www.commodore.ca/manuals/c64_programmers_reference/c64-programmers_reference.htm"$ - -$TX,"8-Bit Pixel Art",HTML="http://8bitdecals.com/8-bit-image-gallery"$ -$TX,"8-Bit Japanese Pixel Art",HTML="http://designmadeinjapan.com/magazine/illustration-icon/tumblr-gifs-of-japanese-life"$ - - -sha256sum +$TX,"Graphic Technologies",HTML="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"$ diff --git a/Demo/AcctExample/Registry.HC b/Demo/AcctExample/Registry.HC index 956a45f..d7c7314 100644 --- a/Demo/AcctExample/Registry.HC +++ b/Demo/AcctExample/Registry.HC @@ -8,7 +8,7 @@ $ID,2$#help_index "Registry/Install Registration" MemSet(&ins_reg,0,sizeof(CInsReg)); ins_reg.registered=1; ins_reg.host_os=2; -ins_reg.host_vm=2; +ins_reg.host_vm=3; #define INS_REG_PERSONAL_INITIALS "TAD" StrCpy(ins_reg.initials,"TAD"); @@ -28,8 +28,6 @@ $ID,-2$$TR,"DiningStars"$ $ID,2$F64 best_score=9999.0000; $ID,-2$$TR,"CircleTrace"$ $ID,2$F64 best_score=4.9425; -$ID,-2$$TR,"TOSNIST"$ -$ID,2$I64 tos_nist_offset=-8049; $ID,-2$$TR,"BlackDiamond"$ $ID,2$I64 best_score=2; $ID,-2$$TR,"DunGen"$ @@ -50,7 +48,7 @@ $ID,-2$$TR,"Wenceslas"$ $ID,2$F64 best_score=43.9944; $ID,-2$$TR,"OSTestSuite"$ $ID,2$progress1_tf=0.000;progress2_tf=0.000; -progress3_tf=0.000;progress4_tf=227.554; +progress3_tf=0.000;progress4_tf=223.150; $ID,-2$$TR,"XCaliber"$ $ID,2$I64 best_score=90; I64 msg_flags=2; @@ -62,15 +60,13 @@ $ID,-2$$TR,"Titanium"$ $ID,2$I64 best_score=16469; $ID,-2$$TR,"TOSRegen"$ $ID,2$progress1_tf=0.000;progress2_tf=0.000; -progress3_tf=0.000;progress4_tf=188.144; -$ID,-2$$TR,"TempleTetris"$ -$ID,2$I64 hiscore=1000; +progress3_tf=0.000;progress4_tf=279.384; $ID,-2$$ID,-2$$TR,"Once"$ $ID,2$$TR,"Adam"$ $ID,2$$ID,-2$$TR,"User"$ $ID,2$$ID,-2$$ID,-2$$TR,"DemoCompany"$ $ID,2$$TR,"Game1"$ -$ID,2$F64 best_score=202.07117; +$ID,2$F64 best_score=187.05180; $TR,"SimpleVal"$ -$ID,2$1239; +$ID,2$1245; $ID,-2$$ID,-2$$ID,-2$ \ No newline at end of file diff --git a/Demo/AcctExample/TOS/MakeTOS.HC b/Demo/AcctExample/TOS/MakeTOS.HC index 676eaf6..4f48b01 100644 --- a/Demo/AcctExample/TOS/MakeTOS.HC +++ b/Demo/AcctExample/TOS/MakeTOS.HC @@ -3,11 +3,6 @@ Cd(__DIR__);; #include "TOSExt" #include "TOSCfg" #include "TOSMisc" -#include "TOSToHtml" #include "TOSDistro" -#include "TOSBlog" -#include "TOSNIST" -#include "TOSHolySpirit" -#include "TOSIns" Cd("..");; diff --git a/Demo/AcctExample/TOS/TOSCfg.HC b/Demo/AcctExample/TOS/TOSCfg.HC index 3606f60..19d1996 100644 --- a/Demo/AcctExample/TOS/TOSCfg.HC +++ b/Demo/AcctExample/TOS/TOSCfg.HC @@ -1,14 +1,7 @@ #help_index "Misc/TOS/Cfg" -#define PERSONAL_WEB "http:/" "/www.templeos.org/Wb" -#define BLOG_BASE "/Home/Web/"\ - INS_REG_PERSONAL_INITIALS "/BlogDir" -#define DAILY_BASE "/Home/Web/"\ - INS_REG_PERSONAL_INITIALS "/DailyBlog" -#define BLOG_LOCAL_BASE "::" BLOG_BASE -#define BLOG_WEB_BASE PERSONAL_WEB BLOG_BASE - #define SLOP BLK_SIZE + U0 TOSDbgDistro1() { CBinFile *bfh=mem_boot_base-sizeof(CBinFile); @@ -51,8 +44,7 @@ U0 TOSInit() } } TOSInit; -#define TOS_ISO_NAME "B:/TempleOSCD.ISO" -#define TOS_ISO_C_NAME "B:/TempleOSCD.ISO.C" +#define TOS_ISO_NAME "B:/TOS_Distro.ISO.C" #define TOS_DISTRO_DIR "B:/Distro" #define CFG_OPTS "StaffMode\nMountIDEAuto\nCT\n" #define CFG_DBG_OPTS "StaffMode\nMountIDEAuto\nCT"\ diff --git a/Demo/AcctExample/TOS/TOSDistro.HC b/Demo/AcctExample/TOS/TOSDistro.HC index 1beb4b9..c180b5d 100644 --- a/Demo/AcctExample/TOS/TOSDistro.HC +++ b/Demo/AcctExample/TOS/TOSDistro.HC @@ -2,17 +2,8 @@ #help_index "Misc/TOS/Distro" -#define MAKE_STD 1 -#define MAKE_STD_RS 0 -#define MAKE_ULTRA 1 -#define MAKE_ULTRA_RS 0 -#define MAKE_SUP1 1 -#define MAKE_WEB 1 -#define MAKE_BOOKS1 0 -#define MAKE_BOOKS2 0 #define MAKE_DBG 0 #define MAKE_STAFF 1 -#define PROFANITY_CHK 0 public U8 TOSGetDrv() {//Pmt for drv let. @@ -59,25 +50,6 @@ public U0 TOSPmtAndCopyDrv() TOSCopyDrv(src,dst); } -U0 DistroSongsPrep(U8 threshold='7') -{ - CDoc *doc; - CDocEntry *doc_e; - CDirEntry *tmpde=FilesFind("/Home/Sup1/Sup1Hymns/*.HC*", - FUF_CLUS_ORDER),*tmpde1=tmpde; - DelTree("/Apps/Psalmody/Examples"); - DirMk("/Apps/Psalmody/Examples"); - while (tmpde) { - doc=DocRead(tmpde->full_name); - doc_e=doc->head.next; - if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[2]>=threshold) - Copy(tmpde->full_name,"/Apps/Psalmody/Examples"); - DocDel(doc); - tmpde=tmpde->next; - } - DirTreeDel(tmpde1); -} - U0 DistroPrep() { AOnceFlush; //Don't want in Registry @@ -85,8 +57,6 @@ U0 DistroPrep() Del("/Home/Demo*"); DelTree("/Home/*Tmp.DD.Z"); - if (FileFind("/Home/Sup1/Sup1Hymns")) - DistroSongsPrep; DelTree("/Tmp"); DirMk("/Tmp"); @@ -97,22 +67,12 @@ U0 DistroPrep() DelTree("/Demo/AcctExample"); CopyTree("/Home","/Demo/AcctExample"); - DelTree("/Demo/AcctExample/Private"); + DelTree("/Demo/AcctExample/TAD"); DelTree("/Demo/AcctExample/Sup1"); - DelTree("/Demo/AcctExample/Books1"); - DelTree("/Demo/AcctExample/Books2"); - DelTree("/Demo/AcctExample/Web"); Del("/Demo/AcctExample/Test*"); - Copy("/Home/Web/index.DD.Z", - "/Demo/ToHtmlToTXTDemo/DemoInPage.DD.Z"); if (FileFind("~/Sup1/Sup1Utils/SortHeaders.HC.Z")) ExeFile("~/Sup1/Sup1Utils/SortHeaders.HC.Z"); - if (FileFind("~/Sup1/Sup1Blog/YouTube.DD.Z")) - Sort("~/Sup1/Sup1Blog/YouTube.DD.Z",,2); - - //Once in a while, do ~/Sup1/Sup1Utils/DblSpaceScan.HC. - CursorRem("/*"); DelTree("/Demo/*.BI*"); S2T("/*","+r+S"); @@ -155,81 +115,6 @@ U0 DbgDistroFilePrep() bd->RAM_dsk,(bd->max_blk+1)<hash_table); - Who; - if (doc=DocPut) { - st=StrNew(doc->filename.name); - StrCpy(doc->filename.name,"D:/Wb/Home/Web/SymsAlpha.DD.Z"); - DocWrite(doc); - StrCpy(doc->filename.name,st); - Free(st); - } - DocClear; - DocMax; - Who("+m"); - if (doc=DocPut) { - st=StrNew(doc->filename.name); - StrCpy(doc->filename.name,"D:/Wb/Home/Web/SymsAddress.DD.Z"); - DocWrite(doc); - StrCpy(doc->filename.name,st); - Free(st); - } - DocClear; -} - -I64 MakeLineRepFile() -{ - U8 *st; - CDoc *doc; - I64 res,official; - - DocClear; - Drv('C'); - DistroPrep; - - Cd("C:/"); - DelTree("B:/TOS/TOS"); - CopyTree("C:/Home","B:/TOS/TOS"); - DelTree("C:/Home"); - - DocMax; - DocClear; - res=LineRep; - if (doc=DocPut) { - st=StrNew(doc->filename.name); - StrCpy(doc->filename.name,"B:/TOS/TOS/Web/LineRep.DD.Z"); - DocWrite(doc); - StrCpy(doc->filename.name,st); - Free(st); - } - DocClear; - official=LineRep("C:/*","-r")+ - LineRep("C:/Adam/*")+ - LineRep("C:/Compiler/*","-S+$$")+ - LineRep("C:/Kernel/*"); - DocClear; - CopyTree("B:/TOS/TOS","C:/Home"); - DelTree("B:/TOS/TOS"); - - DocTreeFWrite("C:/Adam/ADefine.HC.Z","LineRep", - "DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",res); - DocTreeFAppend("C:/Adam/ADefine.HC.Z","LineRep", - "DefinePrint(\"DD_TEMPLEOS_LOC_OFFICIAL\",\"%,d\");\n",official); - - DefinePrint("DD_TEMPLEOS_LOC","%,d",res); - DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","%,d",official); - - "Total LOC:%12,d\n\n",res; - return res; -} - U0 StaffDistroPrep() { Drv('C'); @@ -240,15 +125,12 @@ U0 StaffDistroPrep() DelTree(TOS_DISTRO_DIR); CopyTree("C:/",TOS_DISTRO_DIR "/"); DelTree(TOS_DISTRO_DIR "/Home/Sup1"); - DelTree(TOS_DISTRO_DIR "/Home/Books1"); - DelTree(TOS_DISTRO_DIR "/Home/Books2"); Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); } U0 MakeStaffDistro() { StaffDistroPrep; - ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, - TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); + RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOS_STAFF_SIZE", "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); @@ -274,8 +156,7 @@ U0 DbgDistroPrep() U0 MakeDbgDistro() { DbgDistroPrep; - ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, - TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); + RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOS_DBG_SIZE", "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); @@ -300,96 +181,49 @@ U0 StdDistroPrep() U0 MakeStdDistro() { StdDistroPrep; - ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, - TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); + RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSCD_SIZE", "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } -U0 MakeStdRedSeaDistro() -{ - StdDistroPrep; - RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); - DefinePrint("DD_TEMPLEOSCD_RS_SIZE", - "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)", - 0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); - Drv('C'); -} -U0 UltraDistroPrep() +I64 UpdateLineCnts() { - StdDistroPrep; - DelTree(TOS_DISTRO_DIR "/Linux"); - Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); - Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACDefs.DATA*"); - Del(TOS_DISTRO_DIR "/Misc/PCIDevices.DD.Z"); - Del(TOS_DISTRO_DIR "/Misc/Bible.TXT.Z"); + I64 res; - DelTree(TOS_DISTRO_DIR "/Apps"); - DirMk(TOS_DISTRO_DIR "/Apps"); - DelTree(TOS_DISTRO_DIR "/Demo"); - DelTree(TOS_DISTRO_DIR "/Misc/Tour"); - Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); - Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACWords.DATA*"); - Del(TOS_DISTRO_DIR "/Adam/God/Vocab.DD.Z"); - Del(TOS_DISTRO_DIR "/Misc/OSTestSuite.HC.Z"); - Copy("C:/Home/Sup1/Sup1Distro/UltraMenu.DD.Z", - TOS_DISTRO_DIR "/PersonalMenu.DD.Z"); - Copy("C:/Demo/Games/Talons.HC.Z", - TOS_DISTRO_DIR "/Misc"); -} -U0 MakeUltraDistro() -{ - UltraDistroPrep; - ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, - TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); - DefinePrint("DD_TEMPLEOS_ULTRA_SIZE", - "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)", - 0.01*(100*Size(TOS_ISO_NAME,"+s")/1024/1024)); - Drv('C'); -} -U0 MakeUltraRedSeaDistro() -{ - UltraDistroPrep; - RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); - DefinePrint("DD_TEMPLEOS_ULTRA_RS_SIZE", - "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)", - 0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); + DocClear; Drv('C'); + DistroPrep; + + Cd("C:/"); + DelTree("B:/TOS/TOS"); + CopyTree("C:/Home","B:/TOS/TOS"); + DelTree("C:/Home"); + + DocMax; + DocClear; + res=LineRep("C:/*","-r")+LineRep("C:/Adam/*")+ + LineRep("C:/Compiler/*","-S+$$")+LineRep("C:/Kernel/*"); + CopyTree("B:/TOS/TOS","C:/Home"); + DelTree("B:/TOS/TOS"); + + DocTreeFWrite("C:/Adam/ADefine.HC.Z","LineRep", + "DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",res); + DefinePrint("DD_TEMPLEOS_LOC","%,d",res); + + "Total LOC:%12,d\n\n",res; + return res; } U0 UpdateISODocDefines() { try { -#if MAKE_STD DefinePrint("DD_TEMPLEOSCD_SIZE", "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)", - 0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024)); + 0.1*(10*Size("D:/TOS_Distro.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSCD_K_SIZE", - "%dKB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024); -#endif -#if MAKE_STD_RS - DefinePrint("DD_TEMPLEOSCD_RS_SIZE", - "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1fMB)", - 0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024)); - DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE", - "%dKB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024); -#endif -#if MAKE_ULTRA - DefinePrint("DD_TEMPLEOS_ULTRA_SIZE", - "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2fMB)", - 0.01*(100*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024)); - DefinePrint("DD_TEMPLEOS_ULTRA_K_SIZE", - "%dKB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024); -#endif -#if MAKE_ULTRA_RS - DefinePrint("DD_TEMPLEOS_ULTRA_RS_SIZE", - "Download $TX,"TempleOS V5.03",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2fMB)", - 0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024)); - DefinePrint("DD_TEMPLEOS_ULTRA_RS_K_SIZE", - "%dKB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024); -#endif + "%dKB",Size("D:/TOS_Distro.ISO","+s")/1024); } catch Fs->catch_except=TRUE; } @@ -405,8 +239,7 @@ U0 TOSProgress(U8 *st) progress4=tos_progress; progress3_max=1; *progress4_desc=0; - progress4_max=13+MAKE_STD+MAKE_STD_RS+MAKE_ULTRA+MAKE_ULTRA_RS+MAKE_SUP1+ - MAKE_WEB+MAKE_BOOKS1+MAKE_BOOKS2+MAKE_DBG+MAKE_STAFF+PROFANITY_CHK; + progress4_max=8+MAKE_DBG+MAKE_STAFF; progress4_t0=tos_progress_t0; StrPrint(buf,"%d. %s",++progress4,st); "$$PURPLE$$$$TX+CX,\"%s\"$$$$FG$$\n",buf; @@ -414,31 +247,7 @@ U0 TOSProgress(U8 *st) tos_progress=progress4; } -I64 TOSProfanity() -{ - I64 res; - if (res=Profanity(,"D:/Wb/*;" - "!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;" - "!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Blog/Profanity.DD*;" - "!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*")) { - while (PressAKey!=CH_SHIFT_ESC) { - ProgressBarsRst; - if (Profanity(,"C:/Home/*;" - "!*/Misc/PCIDevices.DD*;!*/Misc/Bible.TXT*;" - "!*/Books?/*;!*/Sup1/Sup1Words/*;!*/Sup1/Sup1Blog/Profanity.DD*;" - "!*/Sup1/Sup1Blog/NumBible.TXT*;!*/God/Vocab.DD*")) { - "\n\nEdit profanity and press $FG,2$ESC$FG$.\n"; - if (!View) - break; - DocBottom; - } else - break; - } - } - return res; -} - -U0 TOSRegen3() +U0 TOSRegen2() { I64 slash_home=0; SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ @@ -452,71 +261,31 @@ U0 TOSRegen3() WinMax; DskChkAll; - TOSProgress("Make LineRep"); - MakeLineRepFile; + TOSProgress("Update Line Cnts"); + UpdateLineCnts; TOSProgress("Copy C to D"); TOSCopyDrv('C','D'); - TOSProgress("Del D:/Wb"); - DelTree ("D:/Wb"); - - TOSProgress("Copy C to D:/Wb"); - CopyTree("C:/","D:/Wb"); - DocClear; - -#if MAKE_STD TOSProgress("Make Standard Distro ISO"); MakeStdDistro; DocClear; - Move(TOS_ISO_NAME,"D:/Wb/TempleOSCD.ISO"); -#endif -#if MAKE_STD_RS - TOSProgress("Make Standard RedSea Distro ISO"); - MakeStdRedSeaDistro; - DocClear; - Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSCDRS.ISO"); -#endif -#if MAKE_ULTRA - TOSProgress("Make Ultra Distro ISO"); - MakeUltraDistro; - DocClear; - Move(TOS_ISO_NAME,"D:/Wb/TempleOSUltra.ISO"); -#endif -#if MAKE_ULTRA_RS - TOSProgress("Make Ultra RedSea Distro ISO"); - MakeUltraRedSeaDistro; - DocClear; - Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSUltraRS.ISO"); -#endif + Move(TOS_ISO_NAME,"D:/TOS_Distro.ISO"); + + TOSProgress("Make Supplemental1 ISO"); + RedSeaISO("D:/TOS_Supplemental1","C:/Home/Sup1"); + #if MAKE_DBG TOSProgress("Make Dbg Distro ISO"); MakeDbgDistro; DocClear; - Move(TOS_ISO_NAME,"D:/Wb/TempleOSDbg.ISO"); + Move(TOS_ISO_NAME,"D:/TOS_Dbg.ISO"); #endif #if MAKE_STAFF TOSProgress("Make Staff Distro ISO"); MakeStaffDistro; DocClear; - Move(TOS_ISO_NAME,"D:/Wb/TempleOSStaff.ISO"); -#endif - -#if MAKE_SUP1 - TOSProgress("Make Supplemental #1 ISO"); - RedSeaISO("D:/Wb/TempleOSSup1","C:/Home/Sup1"); -#endif -#if MAKE_WEB - TOSProgress("Make www.templeos.org ISO"); - RedSeaISO("D:/Wb/TempleOSWeb","C:/Home/Web"); -#endif -#if MAKE_BOOKS1 - TOSProgress("Make Books #1 ISO"); - RedSeaISO("D:/Wb/TempleOSBooks1","C:/Home/Books1"); -#endif -#if MAKE_BOOKS2 - TOSProgress("Make Books #2 ISO"); - RedSeaISO("D:/Wb/TempleOSBooks2","C:/Home/Books2"); + Move(TOS_ISO_NAME,"D:/TOS_Staff.ISO"); #endif UpdateISODocDefines; @@ -532,21 +301,6 @@ U0 TOSRegen3() if (LinkChk) throw; - DocClear; - TOSProgress("Make Symbol Files"); - MakeSymFiles; - - DocClear; - TOSProgress("Freshen WebSite"); - FreshenSite; - -#if PROFANITY_CHK - DocClear; - TOSProgress("Check WebSite for Profanity"); - if (TOSProfanity) - throw; -#endif - TOSProgress("Find /Home"); slash_home=F2("/Home","-i+la"); @@ -563,53 +317,18 @@ U0 TOSRegen3() public U0 TOSPreRegen() {//Copy bookmarks and bins from D:/Home/Sup1 to C:/Home/Sup1 - Copy("D:/Home/Private/*","C:/Home/Private"); - Copy("D:/Home/Sup1/Sup1Blog/Bookmarks.html","C:/Home/Sup1/Sup1Blog"); - Del("C:/Home/Sup1/Sup1Bin/*"); - Copy("D:/Home/Sup1/Sup1Bin/*","C:/Home/Sup1/Sup1Bin"); + Copy("D:/Home/" INS_REG_PERSONAL_INITIALS "/*", + "C:/Home/" INS_REG_PERSONAL_INITIALS); + DelTree("C:/Home/Sup1/Sup1Bin"); + CopyTree("D:/Home/Sup1/Sup1Bin","C:/Home/Sup1/Sup1Bin"); Copy("D:/Home/Sup1/Sup1CodeScraps/Comm/TOSSocket*", "C:/Home/Sup1/Sup1CodeScraps/Comm"); - Copy("D:/Home/Sup1/Sup1Bin/God*","C:/Linux"); -} - -public U0 TOSHomeIn() -{//Copy D:/Home to C:/Home - DelTree("C:/Home"); - CopyTree("D:/Home","C:/Home"); -} - -public U0 TOSHomeOut() -{//Copy C:/Home to D:/Home - DelTree("D:/Home"); - CopyTree("C:/Home","D:/Home"); -} - -public U0 TOSSongsIn() -{//Copy songs from D:/Home/Sup1 to C:/Home/Sup1 - Del("C:/Home/Sup1/Sup1Hymns/*"); - Del("C:/Home/Sup1/Sup1Songs/*"); - Copy("D:/Home/Sup1/Sup1Hymns/*","C:/Home/Sup1/Sup1Hymns"); - Copy("D:/Home/Sup1/Sup1Songs/*","C:/Home/Sup1/Sup1Songs"); -} - -public U0 TOSSongsOut() -{//Copy songs from C:/Home/Sup1 to D:/Home/Sup1 - Del("D:/Home/Sup1/Sup1Hymns/*"); - Del("D:/Home/Sup1/Sup1Songs/*"); - Copy("C:/Home/Sup1/Sup1Hymns/*","D:/Home/Sup1/Sup1Hymns"); - Copy("C:/Home/Sup1/Sup1Songs/*","D:/Home/Sup1/Sup1Songs"); -} - -U0 TOSRegen2() -{ - TOSChgLog; //$LK,"::/Doc/ChgLog.DD"$ datetime matches Kernel $LK,"sys_compile_time",A="MN:sys_compile_time"$. - TOSBootHDIns('C'); - Once("TOSRegen3;"); - BootRAM("C:/Kernel/" KERNEL_BIN_C); //Boot new Kernel and Compiler. + DelTree("C:/Linux"); + CopyTree("D:/Linux","C:/Linux"); } public U0 TOSRegen() -{//Generate distro ISO's and website image, D:/Wb. +{//Generate distro ISO's TOSBootHDIns('C'); Once("TOSRegen2;"); BootRAM("C:/Kernel/" KERNEL_BIN_C); //Boot to load $LK,"TOS_CFG",A="PF:::/Demo/AcctExample/TOS/TOSCfg.HC,TOS_CFG"$. diff --git a/Demo/AcctExample/TOS/TOSExt.HC b/Demo/AcctExample/TOS/TOSExt.HC index 203ce36..d509031 100644 --- a/Demo/AcctExample/TOS/TOSExt.HC +++ b/Demo/AcctExample/TOS/TOSExt.HC @@ -21,7 +21,7 @@ class CRandExtDec5Form { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P,A=\"5 Decimal Digits from Hex:%s\"$$\n"; + U8 rnd0[512] format "$$DA-P,A=\"5 Decimal Digits from Hex:%s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; U8 rnd3[512]; @@ -39,43 +39,43 @@ class CRandExtDec5Form class CHexWordForm { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n"; - U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; - U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; - U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; - U8 rnd4[512] fmtstr "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n"; - U8 rnd5[512] fmtstr "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n"; - U8 rnd6[512] fmtstr "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n"; - U8 rnd7[512] fmtstr "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n"; - U8 rnd8[512] fmtstr "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n"; - U8 rnd9[512] fmtstr "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n"; - U8 rndA[512] fmtstr "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n"; - U8 rndB[512] fmtstr "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n"; + U8 rnd0[512] format "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n"; + U8 rnd1[512] format "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; + U8 rnd2[512] format "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; + U8 rnd3[512] format "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; + U8 rnd4[512] format "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n"; + U8 rnd5[512] format "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n"; + U8 rnd6[512] format "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n"; + U8 rnd7[512] format "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n"; + U8 rnd8[512] format "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n"; + U8 rnd9[512] format "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n"; + U8 rndA[512] format "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n"; + U8 rndB[512] format "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n"; I64 cert; }; class CNISTBeaconHexWordForm { - I64 timestamp fmtstr "$$DA,A=\"TimeStamp:%d\"$$\n"; - U8 rnd0[512] fmtstr "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n"; - U8 rnd1[512] fmtstr "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; - U8 rnd2[512] fmtstr "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; - U8 rnd3[512] fmtstr "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; - U8 rnd4[512] fmtstr "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n"; - U8 rnd5[512] fmtstr "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n"; - U8 rnd6[512] fmtstr "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n"; - U8 rnd7[512] fmtstr "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n"; - U8 rnd8[512] fmtstr "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n"; - U8 rnd9[512] fmtstr "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n"; - U8 rndA[512] fmtstr "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n"; - U8 rndB[512] fmtstr "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n"; + I64 timestamp format "$$DA,A=\"TimeStamp:%d\"$$\n"; + U8 rnd0[512] format "$$DA-P,A=\"Hex Word Indices#0:%s\"$$\n"; + U8 rnd1[512] format "$$DA-P,A=\"Hex Word Indices#1:%s\"$$\n"; + U8 rnd2[512] format "$$DA-P,A=\"Hex Word Indices#2:%s\"$$\n"; + U8 rnd3[512] format "$$DA-P,A=\"Hex Word Indices#3:%s\"$$\n"; + U8 rnd4[512] format "$$DA-P,A=\"Hex Word Indices#4:%s\"$$\n"; + U8 rnd5[512] format "$$DA-P,A=\"Hex Word Indices#5:%s\"$$\n"; + U8 rnd6[512] format "$$DA-P,A=\"Hex Word Indices#6:%s\"$$\n"; + U8 rnd7[512] format "$$DA-P,A=\"Hex Word Indices#7:%s\"$$\n"; + U8 rnd8[512] format "$$DA-P,A=\"Hex Word Indices#8:%s\"$$\n"; + U8 rnd9[512] format "$$DA-P,A=\"Hex Word Indices#9:%s\"$$\n"; + U8 rndA[512] format "$$DA-P,A=\"Hex Word Indices#A:%s\"$$\n"; + U8 rndB[512] format "$$DA-P,A=\"Hex Word Indices#B:%s\"$$\n"; I64 cert; }; class CRandHex5Form { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P-TRM,LEN=5," + U8 rnd0[512] format "$$DA-P-TRM,LEN=5," "A=\"Line (5-Digit Hex):%5s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; @@ -94,7 +94,7 @@ class CRandHex5Form class CRandHex8Form { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P-TRM,LEN=8," + U8 rnd0[512] format "$$DA-P-TRM,LEN=8," "A=\"Line (8-Digit Hex):%8s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; @@ -113,7 +113,7 @@ class CRandHex8Form class CMoviesForm { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P," + U8 rnd0[512] format "$$DA-P," "A=\"Movie #1-100 (2 Decimal Digits from Hex):%s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; @@ -132,7 +132,7 @@ class CMoviesForm class CPaintings100Form { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P," + U8 rnd0[512] format "$$DA-P," "A=\"Painting #00-99 (2 Decimal Digits from Hex):%s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; @@ -151,7 +151,7 @@ class CPaintings100Form class CPaintings1000Form { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P," + U8 rnd0[512] format "$$DA-P," "A=\"Painting #000-999 (3 Decimal Digits from Hex):%s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; @@ -170,7 +170,7 @@ class CPaintings1000Form class CPoems100Form { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P," + U8 rnd0[512] format "$$DA-P," "A=\"Poems #00-99 (2 Decimal Digits from Hex):%s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; @@ -189,7 +189,7 @@ class CPoems100Form class CMetallicaForm { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P," + U8 rnd0[512] format "$$DA-P," "A=\"Song #1-99 (2 Decimal Digits from Hex):%s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; @@ -208,7 +208,7 @@ class CMetallicaForm class CCertRandDec5Form { I64 timestamp; - U8 rnd0[512] fmtstr "$$DA-P,A=\"Line (Dec):%s\"$$\n"; + U8 rnd0[512] format "$$DA-P,A=\"Line (Dec):%s\"$$\n"; U8 rnd1[512]; U8 rnd2[512]; U8 rnd3[512]; @@ -220,57 +220,83 @@ class CCertRandDec5Form U8 rnd9[512]; U8 rndA[512]; U8 rndB[512]; - I64 cert fmtstr "$$DA,A=\"Certificate:%d\"$$\n"; + I64 cert format "$$DA,A=\"Certificate:%d\"$$\n"; }; class CGodVideoForm { - U8 title[STR_LEN] fmtstr "$$DA-P,A=\"Title:%s\"$$\n"; - U8 serial[STR_LEN] fmtstr "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n"; - I64 min fmtstr "$$DA,A=\"Minutes:%d\"$$\n"; - I64 sec fmtstr "$$DA,A=\"Seconds:%d\"$$\n"; + U8 title[STR_LEN] format "$$DA-P,A=\"Title:%s\"$$\n"; + U8 serial[STR_LEN] format "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n"; + I64 min format "$$DA,A=\"Minutes:%d\"$$\n"; + I64 sec format "$$DA,A=\"Seconds:%d\"$$\n"; }; class CWebBibleForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; - U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Bible Passage:%s\"$$\n"; + U8 tag[STR_LEN] format "$$DA-P,A=\"Tag Text:%s\"$$\n"; + U8 special[STR_LEN] format "$$DA-P,A=\"Bible Passage:%s\"$$\n"; I64 min; I64 sec; }; class CYouTubeForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Title:%s\"$$\n"; - U8 special[STR_LEN] fmtstr "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n"; - I64 min fmtstr "$$DA,A=\"Minutes:%d\"$$\n"; - I64 sec fmtstr "$$DA,A=\"Seconds:%d\"$$\n"; + U8 tag[STR_LEN] format "$$DA-P,A=\"Title:%s\"$$\n"; + U8 special[STR_LEN] format "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n"; + I64 min format "$$DA,A=\"Minutes:%d\"$$\n"; + I64 sec format "$$DA,A=\"Seconds:%d\"$$\n"; }; class CImgurForm { U8 tag[STR_LEN]; - U8 special[STR_LEN] fmtstr "$$DA-P,A=\"SerialNum:%s\"$$\n"; - I64 min fmtstr "$$DA,A=\"Width :%d\"$$\n"; - I64 sec fmtstr "$$DA,A=\"Height :%d\"$$\n"; + U8 special[STR_LEN] format "$$DA-P,A=\"SerialNum:%s\"$$\n"; + I64 min format "$$DA,A=\"Width :%d\"$$\n"; + I64 sec format "$$DA,A=\"Height :%d\"$$\n"; }; class CWikipediaForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; - U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Index :%s\"$$\n"; + U8 tag[STR_LEN] format "$$DA-P,A=\"Tag Text:%s\"$$\n"; + U8 special[STR_LEN] format "$$DA-P,A=\"Index :%s\"$$\n"; I64 min; I64 sec; }; class CWebBookMarkForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; + U8 tag[STR_LEN] format "$$DA-P,A=\"Tag Text:%s\"$$\n"; U8 special[STR_LEN]; I64 min; I64 sec; }; +DefineLstLoad("ST_FAMLY_PHOTOS","Family1_58-78\0Family2_78-86\0" + "Family3_86-99\0Family4_99\0"); + +class CFamilyPhotoForm +{ + I64 volume format "$$LS,D=\"ST_FAMLY_PHOTOS\"$$\n"; + I64 part format "$$DA,A=\"Part :%d\"$$\n"; + U8 picture[STR_LEN] format "$$DA-P,A=\"Picture:%s\"$$\n"; + I64 width format "$$GREEN$$640x427 or 640x960$$FG$$\n" + "$$DA,A=\"Width :%d\"$$\n"; + I64 height format "$$DA,A=\"Height :%d\"$$\n"; +}; + +class CBlogImgForm +{ + U8 picture[STR_LEN] format "$$DA-P,A=\"Picture:%s\"$$\n"; + I64 width format "$$DA,A=\"Width :%d\"$$\n"; + I64 height format "$$DA,A=\"Height :%d\"$$\n"; +}; + +class CBlogVideoForm +{ + U8 video[STR_LEN] format "$$DA-P,A=\"Video:%s\"$$\n"; + Bool big format "$$CB,\"Big\"$$\n"; +}; + extern U0 FreshenBlog(); extern U0 GodBooksPassageU32(U32 rand_u32,U8 *files_find_mask, U8 *file_mask="*",I64 len=512,I64 verbosity=GBP_MEDIUM); diff --git a/Demo/AcctExample/TOS/TOSMisc.HC b/Demo/AcctExample/TOS/TOSMisc.HC index 2f43202..56804a2 100644 --- a/Demo/AcctExample/TOS/TOSMisc.HC +++ b/Demo/AcctExample/TOS/TOSMisc.HC @@ -1,64 +1,41 @@ #help_index "Misc/TOS" -#define VIDEO_FRAME_RATE 29.97 - -#define FG_JUST_AUDIO 0 -#define FG_BOOT_DRV 1 -#define FG_RAM_DRV 2 -I64 fg_mode=FG_RAM_DRV; Bool fg_on =FALSE; -U0 FrameGrabberTask(I64) -{//#!/bin/bash -//for f in ./ScrnShots/*.Z; do ./Bin/TOSZ $$f; done - //ffmpeg -r 8 -i VID%05d.BMP -y Movie.avi - I64 frame_num=0; - U8 buf[STR_LEN],buf2[STR_LEN],*st_dir; - F64 end_time=tS; - Silent; //no output to scrn - if (fg_mode==FG_RAM_DRV) - st_dir="B:/Tmp/ScrnShots"; - else - st_dir="::/Tmp/ScrnShots"; - DirMk(st_dir); - while (fg_on) { - StrPrint(buf,"%s/VID%05d.BMP.Z",st_dir,frame_num++); - StrCpy(buf2,buf); - BMPScrnCapture(buf); - while (TRUE) { - end_time+=1.0/VIDEO_FRAME_RATE; - if (end_time3.0) { last_time=tS; @@ -66,34 +43,42 @@ public U0 FrameGrabberToggle() fg_on=FALSE; Snd; wall->record=snd.record=FALSE; - Sleep(1000); - User("CopyVideo;Exit;\n"); + ScrnCast(OFF); + User("CopyVideo(%d);Exit;\n",reverb); } else { + DelScrnShots; fg_on=TRUE; - if (fg_mode!=FG_JUST_AUDIO) - Spawn(&FrameGrabberTask,NULL,"Frame Grabber"); + if (!just_audio) + ScrnCast(ON); wall->record=snd.record=TRUE; Snd; + if (sync_tone) {Beep;} + if (tos_theme) {User("ExeFile(\"~/TOS/TOSTheme\");Exit;\n");} } } } -public U0 JukeSong(I64 num) +public U0 JukeSong(I64 num,I64 passes=2) {//Make movie of one song. if (!fg_on) - FrameGrabberToggle; - JukeSongsPuppet("~/Sup1/Sup1Hymns",,num,num+1); + FrameGrabberToggle(FALSE,FALSE,FALSE); + JukeSongsPuppet("~/Sup1/Sup1Hymns",passes,num,num+1); if (fg_on) - FrameGrabberToggle; + FrameGrabberToggle(FALSE,FALSE,TRUE); } public U0 JukeLines(I64 start_line,I64 end_line) -{//Make movie of many lines of songs. +{//Make movie of many lines of songs, starting at 0. if (!fg_on) - FrameGrabberToggle; + FrameGrabberToggle(FALSE,FALSE,FALSE); JukeSongsPuppet("~/Sup1/Sup1Hymns",,start_line*5,end_line*5); if (fg_on) - FrameGrabberToggle; + FrameGrabberToggle(FALSE,FALSE,TRUE); +} + +public U0 TADHymn(I64 num) +{//Make 2-lines of songs movie starting at 1. + JukeLines((num-1)*2,num*2); } public U0 DskChkAll() @@ -150,41 +135,6 @@ public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL) return doc; } -public U0 BMP2Doc(U8 *_in_name,U8 *_out_name=NULL) -{//Use OCR to make a text DolDoc from BMP file. - U8 *in_name,*out_name; - I64 dx,dy,score,best_score=I64_MAX; - CDC *dc; - CDoc *doc; - in_name=ExtDft(_in_name,"BMP"); - if (_out_name) - out_name=ExtDft(_out_name,"DD.Z"); - else - out_name=ExtChg(_in_name,"DD.Z"); - if (dc=BMPRead(in_name)) { - for (dy=-3;dy<=4;dy++) - for (dx=-3;dx<=4;dx++) { - doc=DC2Doc(dc,dx,dy,&score); - if (scorefilename.name,out_name); - DocWrite(doc); - } - DocDel(doc); - } - } - Free(in_name); - Free(out_name); -} - -U0 TOSTheme() -{ - if (!fg_on) - PopUp("Sleep(50);FrameGrabberToggle;"); - ExeFile("~/Sup1/Sup1Graphics/TOS/TOSTheme.HC"); - DocClear; -} - #define MEM_TEST_SIZE 1024*1024 U0 MemTest() { @@ -202,38 +152,3 @@ U0 MemTest() Yield; } } - -public I64 Profanity( - U8 *needle_filename="~/Sup1/Sup1Blog/Profanity.DD.Z", - U8 *files_find_mask="/*",U8 *fu_flags=NULL) -{//Scan for profanity. - CCmpCtrl *cc; - I64 res=0; - if (FileFind(needle_filename)) { - cc=CmpCtrlNew(MStrPrint("#include \"%s\"",needle_filename)); - while (Lex(cc)) - if (cc->token==TK_IDENT) - res+=Find(cc->cur_str,files_find_mask,fu_flags); - CmpCtrlDel(cc); - } - return res; -} - -U0 TOSChgLog2() -{ - InStr("\"Ed(\\\"::/Doc/ChgLog.DD.Z\\\");\n\"; - Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_UP|SCF_CTRL); - Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); - Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); - Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); - Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN); - Msg(MSG_KEY_DOWN_UP,CH_CTRLY,0); - Msg(MSG_KEY_DOWN_UP,0,SC_F6|SCF_ALT); - Msg(MSG_KEY_DOWN_UP,CH_ESC,0);" - "\"Exit;\n\";"); -} - -public U0 TOSChgLog() -{//Opdate ChgLog file. - User("TOSChgLog2;\n"); -} diff --git a/Demo/DolDoc/FileRead.HC b/Demo/DolDoc/FileRead.HC index 2424a3f..31f4e3c 100644 --- a/Demo/DolDoc/FileRead.HC +++ b/Demo/DolDoc/FileRead.HC @@ -76,5 +76,5 @@ The flag arrays $LK,"doldoc.type_flags_form",A="MN:CDolDocGlbls"$, etc are useful. */ -DocProfile("::/Doc/ChgLog.DD",0); -DocProfile("::/Doc/ChgLog.DD",DOCF_PLAIN_TEXT); +DocProfile("::/Doc/Welcome.DD",0); +DocProfile("::/Doc/Welcome.DD",DOCF_PLAIN_TEXT); diff --git a/Demo/DolDoc/Form.HC b/Demo/DolDoc/Form.HC index d1fd770..bbaa46f 100644 --- a/Demo/DolDoc/Form.HC +++ b/Demo/DolDoc/Form.HC @@ -1,16 +1,16 @@ class FDStruct {//Use and sel "Data", "List" or "Check Box" -//to generate the fmtstrs. - F64 num1 fmtstr "$$DA-TRM,A=\"Float 1:%12.8f\"$$\n"; - F64 num2 fmtstr "$$DA-TRM,A=\"Float 2:%12e\"$$\n"; - I64 num3 fmtstr "$$DA-TRM,A=\"Int 1:0x%016X\"$$\n"; - I64 num4 fmtstr "$$DA-TRM,A=\"Int 2:%12d\"$$\n"; - I64 type fmtstr "$$LS,D=\"ST_PERSON_TYPE\"$$\n"; - U8 name[32] fmtstr "$$DA-P,A=\"Name :%s\"$$\n"; - U8 *address1 fmtstr "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *. - U8 *address2 fmtstr "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *. - CDate datetime fmtstr "$$DA-TRM,A=\"Date :%8D\"$$\n"; - Bool check fmtstr "$$CB,\"Check\"$$\n"; +//to generate the formats. + F64 num1 format "$$DA-TRM,A=\"Float 1:%12.8f\"$$\n"; + F64 num2 format "$$DA-TRM,A=\"Float 2:%12e\"$$\n"; + I64 num3 format "$$DA-TRM,A=\"Int 1:0x%016X\"$$\n"; + I64 num4 format "$$DA-TRM,A=\"Int 2:%12d\"$$\n"; + I64 type format "$$LS,D=\"ST_PERSON_TYPE\"$$\n"; + U8 name[32] format "$$DA-P,A=\"Name :%s\"$$\n"; + U8 *address1 format "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *. + U8 *address2 format "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *. + CDate datetime format "$$DA-TRM,A=\"Date :%8D\"$$\n"; + Bool check format "$$CB,\"Check\"$$\n"; }; U0 FormDemo() diff --git a/Demo/Dsk/DataBase.HC b/Demo/Dsk/DataBase.HC index b8d4763..9d1bd50 100644 --- a/Demo/Dsk/DataBase.HC +++ b/Demo/Dsk/DataBase.HC @@ -3,9 +3,9 @@ #define DB_ACCT_BLKS 1 class Acct -{//Use to help generate fmtstrs. - U8 name[32] fmtstr "$$DA-P,LEN=32,A=\"Name:%s\"$$\n"; - U8 addr[64] fmtstr "$$DA-P,LEN=64,A=\"Addr:%s\"$$\n"; +{//Use to help generate formats. + U8 name[32] format "$$DA-P,LEN=32,A=\"Name:%s\"$$\n"; + U8 addr[64] format "$$DA-P,LEN=64,A=\"Addr:%s\"$$\n"; U8 pad[DB_ACCT_BLKS*BLK_SIZE-64-32]; }; diff --git a/Demo/Games/Stadium/StadiumBG.GR b/Demo/Games/Stadium/StadiumBG.GR index 2fb5a9c4d60112b94c055006b503c520d08ad2ff..794fa4b50993431d7d32527c4fa595389bda6ed2 100644 GIT binary patch delta 24 Scmdm|a!y5n0S#=h69ND&ssiNz delta 8 PcmX@7vQK5BfSnKk5FP^N diff --git a/Demo/Games/TreeCheckers.HC b/Demo/Games/TreeCheckers.HC index 06e424a..ba92765 100644 --- a/Demo/Games/TreeCheckers.HC +++ b/Demo/Games/TreeCheckers.HC @@ -262,7 +262,7 @@ ti_restart: for (j=0;j"$ -The IRA beat Sherlock Holmes with the grace of God. Ghandi was a faggot. God said boys should be taught military things. - -$HC,""$ -God said he wanted to "compact" the Jews. God said Jews were guilty because they did not warn their brother sinners, so suffered their sin. Reputation is worth more than gold. Niggers have a reputation -- no fathers. Irish have a reputation. Germans have a reputation. Attacker has the advantage. Jews have a reputation. God said the French once stood for character. ($TX,"Code of Chivalry",HTML="http://www.lordsandladies.org/knights-code-of-chivalry.htm"$) Ironic. I guess Jews did, too. Woah! God is boss. Too bad the Jews were cowards and didn't assassinate NAZI's. - -CIA must surrender to the IRA. They started a war on God. You die, CIA niggers. - -The CIA picked a fight with the IRA and God, a War on Terror to humiliate the Irish and attack the concept of God as represented by pathetic loser sand niggers. Surrender, silly CIA niggers. Yer fucked. You started a war with God. He talks. - -Saying the word, "pedophile", is an attack on Catholics and God, by those who hate children. - -We're not stupid. You are. God exists. Yer fucked, CIA niggers. - -Saying the word, "homophobe", is an attack on God. - -No police state. Nothing is different from 1990 except we don't have any enemies. The World has gadgets to amuse itself. Eliminate fat-ass government jobs. Eliminate CIA, NSA and TSA. Don't fucken touch my computer, CIA nigger. Githib is to register and control dangerous people and code. No cloud. - -Intel must do a Superbowl commercial for Xeon 64 core desktop computers. CIA doesn't want the public to know powerful computers exist. Shareholders of Intel must sue. CIA is killing Intel on purpose. They are coming for our guns, want us to have impotent computers. - -God went through the A.I. singularity a billion years ago. God laughed at us doing A.I. God said A.I. was needed for Mars. God said to start planting. He is not in suspense on question of life. On the topic of endanger species on Earth, God said, "Enough stars?" Talk with God. - -The CIA ruthlessly clinches the status quo with an iron fist and wants a world of harmless dumb impotent nigger cattle that sit, shit, do nothing but stand there. "Look at all these nigger cattle! We're rich. What a herd of nigger cattle! Yippee ki-yay!", says Zuckerberg and Gates. - -Iran had a theocratic revolution. God talks. CIA are like NAZI SS to be executed. They, literally, started a War on God. God will finish it. - -God said sports are "homo" and to tackle a horse. Sunday is for God. Busywork is terrible. The purpose of man is to entertain God. As a matter of fact, if you offer no entertainment for God, you should not exist. Jesus said the chaff will be burned and the trees with no fruit, uprooted. - -God said pets are, "homo". He is disgusted with how tame and dependent they are, not like how He created them. Africa should be wild and glorify God. A tame, pathetic Africa is reason for grief and anguish at how awful, not glory for God. I asked what happened when humans met Neanderthals? "Count. Pets." Why isn't the Pope outraged at the injustice of Africa importing 60% of its food? Pope Francis wants to be the pope of the niggers. I'll be the pope of the whites. - -Desolation is a 20-year-old guy who is stuck with a video game he got sick-of 5 years ago. That is how God is punishing the wicked, today. - -Humility equals how exalted you become. $TX,"This is terrifying humility.",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins/"$ Work in a patent office or change a diaper. God said homos excel because of self-loathing. Confession makes sense. - -I asked God if the World was perfectly just. He asked if I was calling Him lazy. Good and bad balance in life. The rich are retards. God likes Beverly Hillbillies. On the Arab/Jew conflict, He said, "Oil funny, hopefully." He purposely causes envy for the wicked who covet and must do justice by turning the World on its head. Martin Luther was a nigger. There is nothing wrong with sale of indulgences. - -God said blue eyes come from Neanderthals. My God! This German guy is a hilarious Neanderthal -- $TX,"Friedrich_Nietzsche",HTML="http://en.wikipedia.org/wiki/Friedrich_Nietzsche"$. In war, the attacker has the advantage. The scales fell from my eyes! - -There are pendulums that swing to keep from desolation. I am the Father of the Counter Renaissance. Rationalism is the worst strategy in a World of perfect justice. Machievelli was a nigger and followers get what they deserved. CIA is worse than useless. - -The priest must serve God, not the people. The Church must immediately make the priest face God, not the people. Jesus over-turned tables in His cherished temple. The Catholic church has become a charity with only love of neighbor and not a church with only love of God. Sorry, any human that doesn't entertain God has no purpose. I saw an uncontacted tribe in the Amazon and said, "How precious." God said, "Heathen." If you would not slaughter heathens for the glory of God, you don't really believe you have the true faith. The Pope apologized for conquest of the New World. If you love God, He loves you. He doesn't love everyone. "Do I know you, nigger? Who the fuck are you?", is what God will say. Better talk with Him! - -TempleOS is a trading post with a space alien. Your offering equals His response. Solomon wrote 1005 hymns. Hymns are currency. $LK,"I wrote 120 Hymns",A="FI:::/Home/Web/TAD/HymnVideos.DD"$. - -$LK,"::/Doc/Demands.DD"$ - -$LK,"::/Doc/StdTempleOSPC.DD"$ - -God said we are the Roman Empire and Muslims are the Barbarians. Change C.E./B.C.E. back to A.D./B.C. Fuck the retard atheist Marxist-nigger Orientals who don't have an alphabet and never accepted Christianity, like white people. - -$WW,1$$FG,5$$TX+CX,"Counter-Renaissance",HTML="http://www.templeos.org/Wb/Home/Web/TAD/TAD.html"$$FG$ - -I, Terry A. Davis, am the Father of the Counter-Renaissance. I am not interested in backward technology, but a society that places the same importance and spends the same GDP on God as 1200 A.D., with rejection of rationalism replaced with trust in perfect divine justice on Earth, with rejection of proud-of-heart liberalism replaced with colonialism, with rejection of love of neighbor replaced with love of God, with rejection of charity replaced with prayer and offerings to God, with the priest facing God instead of the people, and not rejecting such ideas as divine right of kings and class. - -A Renaissance, rational, modern man like Richard Dawkins, or any confused Chinaman Marxist nigger might very proudly and earnestly, state this five-year-old logic: "Goliath kills David unless David is clever." I, however, believe the better man wins in fights because God, in an oracle, told me the World is perfectly just. Or, you can turn the other cheek and perfect justice will still be done. - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$TX,"The sins of Newton",HTML="https://www.brainpickings.org/2012/01/04/isaac-newton-list-of-sins"$. $LK,"God's world has perfect justice.",A="FI:::/Home/Web/TAD/Justice.DD"$ - -Work in a patent office or change a diaper and you at least have a remote chance of going farther then the most honored MIT physicist. He has zero chance. To kiss the sky, you must horribly kneel. - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -God's favorite national anthem. God hates America the Beautiful. He said they made themselves cry. -$HC,""$ - -Armor makes your body horribly inferior. God said the military should not use helmets. -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -$HC,""$ - -TempleOS is a trading post with a space alien. What do you have to trade? Entertainment? God's favorite thing on TV is soap operas. God mocked German music. - -God's favorite movie. -$HC,""$ - -God's favorite band is Beatles. -$HC,""$ - -$HC,""$ - -God said this makes a mockery of classical music. Germans are cows who cannot hear the music. Blue eyes come from Neanderthals. -$HC,""$ - -$WW,1$================================================================================ -i cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it dseno’t mtaetr in waht oerdr the ltteres in a wrod are, the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghi t pclae. The rset can be a taotl mses and you can sitll raed it whotuit a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Azanmig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt! if you can raed tihs forwrad it. -================================================================================ - -Grammar is for vain arrogant niggers, full of redundancy. Secretaries are niggers. Don't be vain. Getting humiliated by "potatoe" adds grace. - -$HC,""$ - -America is special because of God and we have been exceptional since the Pilgrims, with manifest destiny. Japan and China are inferior, nigger cultures. We will force them to use an alphabet. We will put the English King James TempleOS into every Intel chip in a factory ROM, with 8-bit ASCII only. We will pay the national debt with $LK,"The TempleOS Standard PC",A="FI:::/Doc/StdTempleOSPC.DD"$. - -I saw a program on Amazon uncontacted tribes. I said, "How precious!" God said, "Heathens." We are a superior culture. There is a YouTube video which says capitalism doesn't work in China because it only works in Christian cultures. God said we are the Roman Empire and Muslims are the barbarians. English is the new Latin. We will force the world to use A.D./B.C. instead of C.E./B.C.E. - -$HC,""$ - -A Counter-Renaissance man knows what "humble of heart" means. Jesus said, "I am meek and humble of heart." What does "humble of head" mean? It means you look around and decide you are not the smartest. A person who is humble of heart looks around and decides he is not the most compassionate. A proud of heart *person believes he is more compassionate than others and says, "You are mean, selfish people and do not love the poor as much as Judas and I love the poor!" I say that Africa imports 60% of its food and they need white-owned farms. - -$HC,""$ - -$HC,""$ - -Animals have pecking order. If two big niggers walk on the sidewalk toward me, I go in the gutter. It is okay for men to hurt feelings, like one high school football team making another very sad by beating them. Jews did animal sacrifices. e.g. I'm sorry, cow, I like meat so you must die. Thanks, Jesus, for dying so I can sin. Grace, not works, is humble of heart. Fuck-it. I didn't ask Jesus to die, He just did it. Thanks. - -A Renaissance proud-of-heart man, like Pope Francis, loves neighbor, not God. He focuses on rational acts, such as charity instead of irrational acts, such as prayer. A Counter-Renaissance man believes that if the World is perfectly just, there is nothing wrong with niggers living in teepees and shitting in buckets. After all, monks take vows of poverty, for God's sake! Read $TX,"Numbers 11",HTML="http://www.biblegateway.com/passage/?search=Numbers%2011&version=NIV"$. The odds of a rich man going to Heaven are like a $LK,"camel going through a needle",A="BF:Matthew,19:24"$. Sale of indulgences is perfectly reasonable, since God is perfectly just and if a rich man gives-up something, he is compensated. God purposely antagonizes those who envy. God said of Arabs and Jews, "Oil funny, hopefully!" God likes the Beverly Hillbillies. The original German Martin Luthur was a low class nigger who seethed with anger at the church getting money. As a matter of fact, God purposely burns money in front of the greedy to punish them. Martin Luther was nothing but a run-of-the-mill populist Marxist nigger who had problems accepting lawful authority. - -A Renaissance man attempts to use philosophy to prove God exists. A Counter-Renaissance man knows that belief in God comes not philosophy, but from the occult. A Counter-Renaissance man enquires of the Lord at oracles, like $LK,"King Solomon's Oracle",A="BF:1 Kings,6:21"$, providing he has made an offering like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$. - -I am not in favor of ignorance, although, Galileo means nothing when you are not an atheist. People believe the Dark Age Church created ignorance on purpose. Good an evil, light and dark are clear. Today, the CIA, the liberal elites, and scheming wicked Jew-niggers create ignorance. I am shocked when people speak of code obfuscation. That is the most wicked thing, and paywall barriers. Obfuscation is code that is more complicated than necessary. I try to make my code the opposite of obsfucated -- more simple than necessary. Bill Gates said a company is a castle -- build walls or fight everybody who comes along. God said, "You ate your children in the siege." - -God said Creationists brought shame with their stupidity. However, evolution loses all it's significance when you are not an atheist. By the way, God said the IQ obsessed people are, "vain", as though they look in the mirror frequently during the day and say to themselves, "You know? I really am smart. I should reproduce and help the gene pool. Damn-it! Those niggers really really should not reproduce. We need more abortions and birth control." That's what they are obsessed with 16 hours a day, instead of something more healthy and less ugly, like God. - -$HC,""$ - -TempleOS is a free, public domain, open source, $FG,4$$TX,"x86_64",HTML="http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, non-preemptive multi-tasking, multi-cored, $FG,4$$TX,"ring-0-only",HTML="http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$, single-address-map ($FG,4$$TX,"identity-mapped",HTML="http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$), non-networked, PC operating system. Paging is, basically, not used. - -The CIA encourages code obsfucation. They make it more complicated than necessary. TempleOS is, literally, more simple than necessary. It is obnoxiously simple... to the point it hurts. - -This $TX,"\"Hello World\" joke",HTML="http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html"$, the $TX,"BMP file format",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$ and the $TX,"WAV file format",HTML="http://en.wikipedia.org/wiki/WAV"$ show that the industry is really screwed-up! That's what TempleOS fixes. I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity. It is currently $TX,"82,152",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of unblemished code. Backward compatibility is not promised. - -Normally, failure is not an option, but since TempleOS accompanies Windows or Linux, we exclude certain uses. There is no reason to duplicate browsing, multimedia, desktop publishing, etc. Linux wants to be a secure, multi-user mainframe. That's why it has file permissions. The vision for TempleOS, however, is a modern, 64-bit Commodore 64. The C64 was a non-networked, home computer mostly used for games. It trained my generation how to program because it was wide open, completely hackable. The games were not multimedia works of art, but generated by non-artist. - -A troll might ask, "Why not just use $FG,4$$TX,"DOS",HTML="http://en.wikipedia.org/wiki/DOS"$$FG$? It was ring-0-only and single-address-map." $FG,4$$TX,"DOS",HTML="http://en.wikipedia.org/wiki/DOS"$$FG$ was 16-bit, with segmentation -- awful! TempleOS is 64-bit, flat, non-segmented and multi-cored. It has a C64-like shell with $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$, a dialect of C/C++, instead of BASIC. It was written from scratch, and not even ASCII was sacred -- it has 8-bit unsigned char source code to support European languages. Also, the source code supports binary sprite graphics. - -A troll might say, "It can crash!" We used $FG,4$$TX,"DOS",HTML="http://en.wikipedia.org/wiki/DOS"$$FG$ for years and loved it. Computers even had a reset switch! Just think of the power of ring-0, muhahaha! Think of the speed and simplicity of $FG,4$$TX,"ring-0-only",HTML="http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and $FG,4$$TX,"identity-mapping",HTML="http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. It can change tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory. - -It's fun having access to everything. When I was a teenager, I had a book, $FG,4$$TX,"Mapping the Commodore 64",HTML="http://unusedino.de/ec64/technical/project64/mapping_c64.html"$$FG$, that told what every location in memory did. I liked copying the ROM to RAM and poking around at the ROM BASIC's variables. Everybody directly poked the hardware ports. - -TempleOS is simpler than Linux and you can have hours of fun tinkering because all memory and ports are accessible. Memory is $FG,4$$TX,"identity-mapped",HTML="http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$ at all times, so you can modify any task's memory from any other task. You can access all disk blocks, too. I had a blast using a C64 disk block editor to modify directories to un-delete files, when I was a kid. Maybe, you want to play with a raw-block database, or make your own file system? - -$HC,""$ - -$HC,""$ - -I wrote all $LK,"120,834",A="FF:~/Web/LineRep.DD,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.6",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS. - -$FG,8$ -* "Commodore 64" is a trademark owned by Polabe Holding NV. -* "Linux" is a trademark owned by Linus Torvalds. -* "Windows" and "DOS" are trademarks owned by MicroSoft Corp. +I, Terry Davis, wrote all $TX,"81,281",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"13.9",D="DD_TEMPLEOS_AGE"$ years, including the 64-bit compiler. I have been a professional operating system developer since 1990 when I worked on Ticketmaster's VAX OS. diff --git a/Demo/ToHtmlToTXTDemo/HtmlGen.HC b/Demo/ToHtmlToTXTDemo/HtmlGen.HC index 868ebe5..b347570 100644 --- a/Demo/ToHtmlToTXTDemo/HtmlGen.HC +++ b/Demo/ToHtmlToTXTDemo/HtmlGen.HC @@ -12,11 +12,6 @@ http://www.templeos.org if you want file that come on the TempleOS distribution. You can pass html meta data as args to $LK,"ToHtml",A="FF:::/Demo/ToHtmlToTXTDemo/ToHtml.HC,ToHtml"$(). - -If you want to blog like I do, see these files... -$LK,"::/Demo/AcctExample/TOS/TOSToHtml.HC"$ -$LK,"::/Demo/AcctExample/HomeKeyPlugIns.HC"$ -$LK,"::/Demo/AcctExample/TOS/TOSHolySpirit.HC"$ */ Cd(__DIR__);; diff --git a/Demo/WebLogDemo/WebLogRep.HC b/Demo/WebLogDemo/WebLogRep.HC index 6cd394d..87951b2 100644 --- a/Demo/WebLogDemo/WebLogRep.HC +++ b/Demo/WebLogDemo/WebLogRep.HC @@ -1,11 +1,5 @@ -#define DOWNLOAD_FILE1 "TempleOSCD.ISO" -#define DOWNLOAD_FILE1_SIZE 17000000 -#define DOWNLOAD_FILE2 "TempleOSUltra.ISO" -#define DOWNLOAD_FILE2_SIZE 1900000 -#define DOWNLOAD_FILE3 "TempleOSCDRS.ISO" -#define DOWNLOAD_FILE3_SIZE 16000000 -#define DOWNLOAD_FILE4 "TempleOSUltraRS.ISO" -#define DOWNLOAD_FILE4_SIZE 1600000 +#define DOWNLOAD_FILE1 "TOS_Distro.ISO" +#define DOWNLOAD_FILE1_SIZE 16000000 #define HOURS_MAX (24*3) @@ -39,7 +33,7 @@ U0 LogStructDel(LogStruct *tmplg) Free(tmplg); } -U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end) +U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_dstart,CDate *_dend) { CDoc *doc=DocRead(name, DOCF_PLAIN_TEXT_TABS|DOCF_DBL_DOLLARS|DOCF_NO_CURSOR); @@ -84,9 +78,10 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end) if (*src++!=CH_SPACE) throw; i=Str2I64(src,10,&src); tmplg->datetime-=(i/100+i%100/60.0)*CDATE_FREQ*60*60; - - if (tmplg->datetime<*_start) *_start=tmplg->datetime; - if (tmplg->datetime>*_end) *_end =tmplg->datetime; + if (!(Str2Date("1/1/2017")<=tmplg->datetimedatetime<*_dstart) *_dstart=tmplg->datetime; + if (tmplg->datetime>*_dend) *_dend =tmplg->datetime; do if (!*src) throw; while (*src++!=']'); @@ -133,13 +128,13 @@ U0 PrsSingleLogFile(LogStruct *head,U8 *name,CDate *_start,CDate *_end) DocDel(doc); } -LogStruct *PrsLogFiles(U8 *files_find_mask,CDate *_start,CDate *_end) +LogStruct *PrsLogFiles(U8 *files_find_mask,CDate *_dstart,CDate *_dend) { LogStruct *head=CAlloc(sizeof(LogStruct)); CDirEntry *tmpde=FilesFind(files_find_mask),*tmpde1=tmpde; QueInit(head); while (tmpde) { - PrsSingleLogFile(head,tmpde->full_name,_start,_end); + PrsSingleLogFile(head,tmpde->full_name,_dstart,_dend); tmpde=tmpde->next; } DirTreeDel(tmpde1); @@ -181,13 +176,7 @@ U0 BlockIPNuip(LogStruct *head) QueInit(&blocked_head); - BlockedStructAdd(&blocked_head,70<<24+173<<16+110<<8+214); - BlockedStructAdd(&blocked_head,68<<24+224<<16+130<<8+96); - BlockedStructAdd(&blocked_head,68<<24+96<<16+100<<8+126); - BlockedStructAdd(&blocked_head,68<<24+96<<16+110<<8+213); - BlockedStructAdd(&blocked_head,68<<24+96<<16+242<<8+108); - BlockedStructAdd(&blocked_head,68<<24+227<<16+61<<8+11); - BlockedStructAdd(&blocked_head,68<<24+227<<16+61<<8+139); + BlockedStructAdd(&blocked_head,68<<24+227<<16+61<<8+6); //pass 1: collect robot lst while (tmplg!=head) { @@ -214,13 +203,7 @@ U0 BlockIPNuip(LogStruct *head) Bool IsDownLoad(LogStruct *tmplg) { if (StrMatch(DOWNLOAD_FILE1,tmplg->file)&&tmplg->size>= - DOWNLOAD_FILE1_SIZE || - StrMatch(DOWNLOAD_FILE2,tmplg->file)&&tmplg->size>= - DOWNLOAD_FILE2_SIZE || - StrMatch(DOWNLOAD_FILE3,tmplg->file)&&tmplg->size>= - DOWNLOAD_FILE3_SIZE || - StrMatch(DOWNLOAD_FILE4,tmplg->file)&&tmplg->size>= - DOWNLOAD_FILE4_SIZE) + DOWNLOAD_FILE1_SIZE) return TRUE; else return FALSE; @@ -228,9 +211,15 @@ Bool IsDownLoad(LogStruct *tmplg) Bool IsIndex(LogStruct *tmplg) { - if (!StrCmp(tmplg->file,"/index.html") || - !StrNCmp(tmplg->file+StrLen(tmplg->file)-14,"/TempleOS.html",14) || - !StrCmp(tmplg->file,"/")) + if (!StrCmp(tmplg->file,"/index.html") || !StrCmp(tmplg->file,"/")) + return TRUE; + else + return FALSE; +} + +Bool IsKeeper(LogStruct *tmplg,CDate dstart,CDate dend) +{ + if (dstart<=tmplg->datetime<=dend && !StrOcc(tmplg->file,'?')) return TRUE; else return FALSE; @@ -340,7 +329,7 @@ U0 FileTreeTraverse(LinkStruct *root) } } -U0 DownLoadRep(LogStruct *head,CDate start,CDate end) +U0 DownLoadRep(LogStruct *head,CDate dstart,CDate dend) { I64 i,j,cnt,dups, hours_start,hours_end,*hour_cnts,*dup_cnts, @@ -349,11 +338,11 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end) LinkStruct *link_root=NULL; CDateStruct ds; - i=start*24;hours_start=i.u32[1]; - i=end *24;hours_end =i.u32[1]; + i=dstart*24;hours_start=i.u32[1]; + i=dend *24;hours_end =i.u32[1]; - days_start=(start+local_time_offset)>>32; - days_end =(end+local_time_offset)>>32; + days_start=(dstart+local_time_offset)>>32; + days_end =(dend+local_time_offset)>>32; hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64)); dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64)); @@ -361,7 +350,7 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end) day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64)); dups=cnt=0; while (tmplg!=head) { - if (start<=tmplg->datetime<=end && IsDownLoad(tmplg)) { + if (IsKeeper(tmplg,dstart,dend) && IsDownLoad(tmplg)) { i=tmplg->datetime*24; hour_cnts[i.u32[1]-hours_start]++; day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++; @@ -376,15 +365,15 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end) tmplg=tmplg->next; } - "\n\nDownloads of /TempleOSCD.ISO\n"; - for (i=start;i<=end;i+=1<<32) + "\n\nDownloads of /TOS_Distro.ISO\n"; + for (i=dstart;i<=dend;i+=1<<32) "%D Dups:%5d Total:%5d Uniques:%5d\n",i, day_dup_cnts[(i+local_time_offset)>>32-days_start], day_cnts[(i+local_time_offset)>>32-days_start], day_cnts[(i+local_time_offset)>>32-days_start]- day_dup_cnts[(i+local_time_offset)>>32-days_start]; - "\n\nDownloads of /TempleOSCD.ISO\n" + "\n\nDownloads of /TOS_Distro.ISO\n" "'-' is a dup. '+' is not a dup.\n"; if (hours_end-hours_start>=HOURS_MAX) i=hours_end-HOURS_MAX+1; @@ -401,7 +390,7 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end) } "Total:%d Dups:%d Uniques:%d\n",cnt,dups,cnt-dups; - "\n\nDownloads of /TempleOSCD.ISO\n"; + "\n\nDownloads of /TOS_Distro.ISO\n"; LinkTreeTraverse(link_root); '\n'; @@ -412,12 +401,12 @@ U0 DownLoadRep(LogStruct *head,CDate start,CDate end) Free(day_dup_cnts); } -U0 FileRep(LogStruct *head,CDate start,CDate end) +U0 FileRep(LogStruct *head,CDate dstart,CDate dend) { LogStruct *tmplg=head->next; LinkStruct *file_root=NULL; while (tmplg!=head) { - if (start<=tmplg->datetime<=end) + if (IsKeeper(tmplg,dstart,dend)) FileTreeAdd(&file_root,tmplg); tmplg=tmplg->next; } @@ -427,7 +416,7 @@ U0 FileRep(LogStruct *head,CDate start,CDate end) FileTreeDel(file_root); } -U0 IndexRep(LogStruct *head,CDate start,CDate end) +U0 IndexRep(LogStruct *head,CDate dstart,CDate dend) { I64 i,j,cnt,dups, hours_start,hours_end,*hour_cnts,*dup_cnts, @@ -436,11 +425,11 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end) LinkStruct *link_root=NULL; CDateStruct ds; - i=start*24;hours_start=i.u32[1]; - i=end *24;hours_end =i.u32[1]; + i=dstart*24;hours_start=i.u32[1]; + i=dend *24;hours_end =i.u32[1]; - days_start=(start+local_time_offset)>>32; - days_end =(end+local_time_offset)>>32; + days_start=(dstart+local_time_offset)>>32; + days_end =(dend+local_time_offset)>>32; hour_cnts=CAlloc((hours_end-hours_start+1)*sizeof(I64)); dup_cnts =CAlloc((hours_end-hours_start+1)*sizeof(I64)); @@ -448,7 +437,7 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end) day_dup_cnts=CAlloc((days_end-days_start+1)*sizeof(I64)); dups=cnt=0; while (tmplg!=head) { - if (start<=tmplg->datetime<=end && IsIndex(tmplg)) { + if (IsKeeper(tmplg,dstart,dend) && IsIndex(tmplg)) { i=tmplg->datetime*24; hour_cnts[i.u32[1]-hours_start]++; day_cnts[(tmplg->datetime+local_time_offset)>>32-days_start]++; @@ -465,7 +454,7 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end) "\n\nHits on /index.html\n" "'-' is a dup. '+' is not a dup.\n"; - for (i=start;i<=end;i+=1<<32) + for (i=dstart;i<=dend;i+=1<<32) "%D Dups:%5d Total:%5d Uniques:%5d\n",i, day_dup_cnts[(i+local_time_offset)>>32-days_start], day_cnts[(i+local_time_offset)>>32-days_start], @@ -502,29 +491,33 @@ U0 IndexRep(LogStruct *head,CDate start,CDate end) U0 WebLogRep(U8 *mask,U8 *output_filename) { LogStruct *head; - CDate start=I64_MAX,end=I64_MIN; + CDate dstart=I64_MAX,dend=I64_MIN; DocMax; - head=PrsLogFiles(mask,&start,&end); - start=GetDate("Start(%D):",start); - end =GetDate("End (%D):",end); - BlockIPNuip(head); + head=PrsLogFiles(mask,&dstart,&dend); + if (dstart>dend) + PrintErr("No Data.\n"); + else { + dstart=GetDate("Start(%D):",dstart); + dend =GetDate("End (%D):",dend); + BlockIPNuip(head); - DocClear; - "$$WW,0$$"; - IndexRep(head,start,end); - FileRep(head,start,end); - DownLoadRep(head,start,end); + DocClear; + "$$WW,0$$"; + IndexRep(head,dstart,dend); + FileRep(head,dstart,dend); + DownLoadRep(head,dstart,dend); - StrCpy(DocPut->filename.name,output_filename); - DocWrite(DocPut,TRUE); + StrCpy(DocPut->filename.name,output_filename); + DocWrite(DocPut,TRUE); - "$$WW,1$$"; + "$$WW,1$$"; + } LogLstDel(head); } #if __CMD_LINE__ Cd(__DIR__);; -WebLogRep("*.LOG*","~/DemoWebLog.DD.Z"); +WebLogRep("*.log*","~/DemoWebLog.DD.Z"); #endif diff --git a/Demo/WebLogDemo/WebLogScramble.HC b/Demo/WebLogDemo/WebLogScramble.HC index 2bfc058..7d119b1 100644 --- a/Demo/WebLogDemo/WebLogScramble.HC +++ b/Demo/WebLogDemo/WebLogScramble.HC @@ -60,10 +60,10 @@ U0 LogScrambleDemo() U8 *dirname; Cd(__DIR__); dirname=DirCur; - ST_WARN_ST "This will scramble all .LOG files in '%s'.\n\n",dirname; + ST_WARN_ST "This will scramble all .log files in '%s'.\n\n",dirname; Free(dirname); if (AreYouSure) - WebLogScramble("*.LOG*"); + WebLogScramble("*.log*"); } LogScrambleDemo; diff --git a/Doc/Asm.DD b/Doc/Asm.DD index 2f63962..f9e52bc 100644 --- a/Doc/Asm.DD +++ b/Doc/Asm.DD @@ -39,7 +39,7 @@ $FG,2$LIST$FG$, $FG,2$NOLIST$FG$ $FG,2$ALIGN$FG$ $FG,4$num$FG$, $FG,4$fill_byte$FG$ Align to $FG,4$num$FG$ boundary and fill with $FG,4$fill_byte$FG$. -$FG,2$MODULE_ORG$FG$ $FG,4$num$FG$ +$FG,2$ORG$FG$ $FG,4$num$FG$ Set code addr for JIT or set module $LK,"Load",A="MN:Load"$() addr -- has 16-byte $LK,"CBinFile",A="MN:CBinFile"$ header and patch table trailing. $FG,2$BINFILE$FG,4$ "FileName.BIN"$FG$; diff --git a/Doc/Boot.DD b/Doc/Boot.DD index f0c650800e3b9e787461f649aa22cb85e6f60a16..f3b3d8a6718b9c3945a40d00490150fa768fd204 100644 GIT binary patch delta 58 zcmX@EwNq