™Ó-READ ME  (âHG-1-3 COM ÷HG-1-3 DOC/"9ÐSCSIBOOTHEXQ‡'SCSIBOOTROMm ÜÕÿ ÿ This library contains new versions of HGEN and SCSIBOOT. HGEN has been extended to install SCSI controller initialization in the hard drive boot sector. This allows automatic booting from non generic SCSI controllers, such as the Xebec 1410(A) and the DTC 510(A/B), as well as generic SCSI controllers. HGEN V1.3 will not function with the V1.2 SCSI boot EPROM. A bug in the SCSI routines in the boot EPROM that prevented the SETPRAM routine from functioning has been corrected in the V1.3 EPROM. Much of the new material in HGEN was lifted from HINIT. The corrections to the SCSI routines in the boot EPROM were taken from the V3.8 BIOS source. All source listings are copyrighted material of Ampro, Inc., and could not be included in the library for general distribution. They are available on Ampro's BBS at (408)734-2980 in the LBZ80-SOURCE section for licencees of Ampro's source code. These programs have been tested in a Little Board/Plus, using a DTC-510B controller, connected to an IMI 5018 drive. SCSI Generic controllers should experience no problems with these new files, as they do not require specific initialization. The Xebec 1410(A) should work (based on the comments by John Lin in 1410BOOT.TXT), but has not been tested. Files in this library -READ.ME - this file HG-1-3.COM - HGEN 1.3 executable file HG-1.3.DOC - HGEN 1.3 documentation file SBT-1-3.HEX - SCSIBOOT 1.3 Intel HEX format file SBT-1-3.ROM - SCSIBOOT 1.3 binary image file November 3, 1988 Wayne Hortensius 108-1408 Pickering Parkway Pickering Ontario CANADA L1V 3V7 (416)420-3785 Ãê>@Ó!̀̀̀*�>í°@í°°í° í°~!H�N�Í€ÃO þ Ampro Hard Disk Auto-Boot Installer Utility Copyright (C) 1985 AMPRO Computers, Inc. Version 1.3 $ This utility will install your current hard disk configuration on the system tracks of the SCSI hard disk drive located at SCSI ID 0, LUN 0. It will also perform controller initialization for non generic SCSI controller at boot up. Prior to using this program you must use SYSGEN to write the proper size CP/M system to the system tracks of the SCSI hard disk drive from which you will boot. In addition, you must have already used the HINIT and SWAP utilities to customize your system. NOTE: The CP/M system you install on the hard disk must identical to the system you are running now. WARNING!!! As a safety measure, be sure to backup your hard disk before you perform this function or attempt hard disk auto-booting! $ This program requires AMPRO bios version 3.1 or later. $ !€_€í°!_~2]#"^1]Í*!_¯w# x±Â Û)æþÊ,Æ02¸¤Í­Ç:Nþ0 ­Í©Ç:Nþ8þ81]:]· Í~ cÍ8 ÌÍ©Ú!üÍ=ʇþY‡ÍŠ>2Ì!Ì_>Í Âzþ>Êšþ!ÊšÿÍ­Çþ!šë~#fo"*."I.€"_í°Õ!Í"#Ñ@í°ÕÍê ~#fo~þ)ÒîUÍ­ÑÇ*.€P ~#foÑ"+°í°Íå"3 í°áÕ~#fo~Ñ";!_€¯w# x±Â*!_Xí°!‰!í°> 2Ì>!Ì_Í Âz> 2Ì>2Ï!Ì_>Í ÂzªÍ­ÇÍ "ý×Í­Ã !N Í=ÊŠx=2 ¯2 : þ8fS ͱÊŠ! r#sÝ Í±ÊŠ2 ù ͱÊŠ! r#s ͱÊŠ! r#s: þÂû1 ! Í=ÊŠx=2 à  !ÿ Í=ÊŠx=2 : !Ãl#S>!2EÉK! í°Q!Kí°K!Eí°É * "ž: 2 : =2�: _!�~2›¯2 K!”í°Q!š í°É< Little Board ID = , must = 7 to run this utility.$ Do you wish to continue? (Y/N) $YN Valid Boot sector not present on hard disk, do SYSGEN, HINIT, and SWAP, then retry.$ Run HINIT and SWAP to set up your system first. $<<>> Done! You may now boot from hard disk. $ SCSI read/write error, Sense byte = $ Hard disk controller type: -------------------------- Of the following controllers ... 1 - Generic burst-mode SCSI controller (Adaptec ACB4000, Xebec Owl) 2 - Generic byte-mode SCSI controller (Shugart 1610-4) 3 - Xebec 1410 or 1410A 4 - Data Technology 500 Series Which type is at SCSI address 0 (1, 2, 3, or 4)? $1234 For the controller you indicated, the following additional information on the drive at LUN 0 is required: Number of cylinders? $ Number of heads? $Starting cylinder for RWC? $Starting cylinder for WPC? $ Xebec 1410(A) step mode (choose from the following table): 0 - 3ms step 4 - 200us buffered step 5 - 70us buffered step 6 - 30us buffered step 7 - 15us buffered step Which step mode (0, 4, 5, 6, or 7)? $0ÿÿÿ4567 Data Technology 500 Series step mode (choose from the following table): 0 - 3ms step 1 - 200us buffered step 2 - 150us buffered step 3 - 100us buffered step 4 - 50us buffered step Which step mode (0, 1, 2, 3, or 4)? $01234õæÍ# oñõæÍ# gñÉþ ú* ÆÆ0ÉæÍ=Â� ñÉ|ºÀ}»ÉõÅÕå_ÍáÑÁñÉõÅÕåGyÍ� Â¥ áÑÁñÉÍØþʇÉõÅÕå ÍáÑÁñÉ>¯2ÅÕåðØÍô üÍô œÿÍô öÿÍô {Æ0w¯áÑÁÉ>0åë]T< 8ú=áwþ0 :·(6 ¯2#Éõ> Í� > Í� :\·Ä¿ñÉ*Ò<í°> Í2N#|µÈ+í°>ÿ·Éõ~#foñÉÕþ Êiþ$ÊiÃYáëÉÍ€ÍOéõ¯|g}oñÉ·È =Ã�åOþʤ~·Â›=Gä¹Ê¤#Ñx·yáÉ>€>27>$2ßë¯2<Gà~þ Í%> Í� #èþ Í� #æþ Í~ #Üþ$ Í%Éþ "8ë":ëx2<#:[�òÀ*:6$:7·ü,Í-Í*8#~þ (úø>$Í-ÉÉx·Èàͺ É>>2®"¯:]·(?=2]*^~#"^þ (êþ@ !a"^>2]Ùþ, > þ. >þ_(Ͳ*¯͇ð¯2]Í©ͱ Ͳ*¯͇ú‘Ä� õ:®ËGÄñÉ>>24åůO!.Åå!ÍAáÁ(Lþ ÊþÊíGyþÚç*ͺ Ãþ p#Ãþ> Í� ¯¹Êþ>Í� + ÃÁ6!.ÍŠ>ÿ·{õ:4·ÄñÁáÉ$0123456789  $ EÍ8 i!jÍ=ÉPress the RETURN key to continue ...$ ůO~þ08þ:0Ö0G¯�‡‡�‡€#Ãny·ÁÉõÅÕÁ~þ08þ:0Ö0_å! )) )ëá#Ã�ÁñÉþ{ò¾þaú¾æ_Éõ>Ý=ÂÂñ=¿É.RR--!----!----!----!----!----!----!----!----!----!----!----------------------R .OJ OFF HGEN (Version 1) Description Thió utilitù modifieó thå systeí trackó oî youò harä drivå tï perforí disë � controlleò initializatioî anä CP/Í BIOÓ installatioî tï supporô automatiã � bootinç froí thå harä disë drive® Wheî youò systeí bootó (oî poweò-uð oò � reset)¬ á numbeò oæ BIOÓ parameteró musô bå seô prioò tï accesó oæ thå harä � disë drives® Also¬ somå harä disë controlleró requirå initializatioî beforå � use® HGEÎ provideó thå facilitù foò installinç theså routineó oî thå systeí � tracks. HGEÎ provideó controlleò initializatioî oî reseô foò twï typeó oæ harä disë � controllers¬ thå Xebeã 1410(A)¬ anä thå DTà 510(A/B)® Mosô SCSÉ harä disë � controlleró currentlù beinç manufactureä dï noô requirå initialization® Theså � selæ-initializinç controlleró arå referreä tï aó "SCSÉ Generic.¢ Theù � automaticallù initializå themselveó oî poweruð froí parameteró whicè theù writå � tï á reserveä areá oî thå harä disë wheî theù formaô thå drive® Controlleró � knowî tï bå SCSÉ Generiã areº Adaptec¬ Shugart¬ anä Xebeã OWL® HGEÎ provideó á similaò initializatioî mechanisí foò noî SCSÉ Generiã � controllers® Mosô controlleró initializå themselveó tï á specifiã defaulô � drivå type® Foò instance¬ thå DTà 50° serieó defaulô tï aî SÔ-50¶ typå drive¬ � witè ´ headó anä 15³ tracks® Thió defaulô initializatioî ió sufficienô tï � allo÷ readinç iî thå booô sectoò anä systeí trackó froí thå harä disk® Sincå � thå systeí trackó occupù 3² sectors¬ theù wilì bå completelù containeä oî thå � firsô platteò oæ cylindeò 0® Thió meanó thaô iô ió noô necessarù tï movå thå � headó ofæ cylindeò ° iî ordeò tï reaä thå systeí trackó oî anù harä drivå thaô � ió formatteä witè aô leasô 1¶ 51² bytå sectoró peò track® Oncå thå systeí � trackó havå beeî read¬ thå controlleò ió initializeä witè thå correcô numbeò oæ � headó anä cylinderó foò youò harä disk. Before running HGEN, you must have first meet the following requirements: .lm8 .pm6      o youò SCSÉ booô EPROÍ musô bå versioî 1.³ oò higher      o thå Littlå Boarä SCSÉ addresó musô bå seô tï 7      o thå harä drivå SCSÉ controlleò addresó musô bå seô tï 0      o thå harä drivå addresseä aó LUÎ ° oî thió controlleò musô havå beeî �        formatted      o thå systemó trackó oî thå harä drivå musô havå beeî SYSGENeä froí youò �        Harä Drivå Systeí Masteò floppù disk      o HINIÔ musô havå beeî ruî tï initializå thå controller¬ anä aô leasô onå �        CP/Í partitioî musô havå beeî defined      o SWAÐ musô havå beeî ruî tï makå thå firsô harä drivå partitioî drivå A. Š .lm .pm HGEÎ wilì onlù initializå thå harä drivå addresseä aó LUÎ ° oî thå harä drivå � controlleò aô SCSÉ addresó 0® Alì otheò controlleró anä harä driveó shoulä bå � initializeä usinç HINIÔ afteò bootup. Operation Tï invokå HGEN'ó interactivå menõ mode¬ simplù typå thå program'ó namå froí thå � CP/Í commanä line: A0>HGEN HGEÎ wilì prompô yoõ foò alì requireä information® Thå initiaì prompô asks: Are you sure you want to continue (Y/N)? __ Answeò Ù tï thió prompô iæ yoõ wanô tï instalì thå automatiã booô uð changeó oî � thå harä drive. Next¬ yoõ wilì bå prompteä foò thå harä drivå controlleò type® HGEÎ supportó � thå followinç SCSÉ controllers: .lm8 .pm6      o Generiã SCSÉ bursô modå controllers      o Generiã SCSÉ bytå modå controllers      o Xebeã 1410(A)      o DTà 50° series .lm .pm Iæ youò controlleò ió á generiã SCSÉ type¬ HGEÎ wilì gï aheaä anä makå thå � changeó tï thå systeí tracë anä inforí yoõ thaô yoõ caî no÷ booô directlù froí � thå harä drive® Foò thå Xebeã anä DTà controllers¬ yoõ wilì bå prompteä foò � thå drivå characteristicó oæ thå drivå addresseä aó LUÎ 0® Thió informatioî ió � thå samå drivå-relateä informatioî requireä bù HFORMAÔ anä HINIT¬ namelyº � numbeò oæ cylinders¬ numbeò oæ heads¬ RWà cylinder¬ WPà cylinder¬ anä drivå � steð rate. HGEÎ wilì completå thå changeó tï thå systeí tracë momentarily® Oncå iô � finishes¬ parë thå headó oæ thå drive¬ presó RESET¬ anä afteò thå floppù drivå � timeó out¬ youò systeí wilì booô directlù froí thå harä disk. :10800000C32C00C37A81C32C82C36B82C34C82C34E :108010006482C38C81C30282C3DC81C32D830000D0 :10802000000000000000000000000000F3AFD300DB :108030002100001100807E1223137CFE10C2360046 :10804000C3AB805343534920426F6F7420526F6D0E :108050002056657273696F6E20312E33202D2028D3 :10806000432920313938332C313938342C313938DF :10807000352C313938362C31393838202D20414DC6 :1080800050524F20436F6D7075746572732C204988 :108090006E632E202D20416C6C20726967687473AA :1080A0002072657365727665642E2031009021BF61 :1080B000807E3CCAC2803DD340D35023C3B18047A9 :1080C0000DFF21D3807E3CCADA803DD384D38C233C :1080D000C3C580044605EA03C1FFDB29E6073C4728 :1080E000AF371705C2E28032C784FE803E80C204EB :1080F000813E04CDBE823E80D3213DC2FA80D32191 :10810000DB273E0132C884AFD321D322D323D3242B :10811000DB2232D3843EAAD3C247E60F3DC21C8184 :10812000DBC6B8CA2E81C3D3823E0532C384CD7A62 :1081300081CDDC81CD7382C22E813E0532C3843A6B :108140002280FE113E00DA4A813C322A80B717179E :108150001717322B80210090221E803CD3C2CD0203 :1081600082CD73823A2A80C24A813A0090FE21CAA7 :108170000090FE3ECA0090C3D3823E01D300322657 :1081800080CD4C823E08CD5B82C397823A2380FE2D :108190000321D681CA9A8121CB813E0532C3844E08 :1081A000230CC80D3A2B8081322880D3C2E5CD0242 :1081B00082CD7382C2C1812A1E8022C484E1C39A07 :1081C000812AC484221E80E1C3AD8101020304051B :1081D000060708090AFF0102030405FFDBC4DBC729 :1081E0003EC8CD5B82CD9782FEFF322980C8DBC4BA :1081F000DBC72120803EC8CD5B82CD1C827832292E :1082000080C9DBC4DBC72A1E80CD4C823E88CD5B93 :1082100082CD1C8278322980221E80C9DBC4471F90 :10822000D01FD21C82DBC77723C31C823A2A80B7B7 :10823000CA4082CD6B822127803521A700C390825E :108240003E58CD5B82DBC41FDA4582C93ED0D3C025 :108250003E003DC25282DBC4DBC7C9D3C03E133DE2 :10826000C25F82C9221E8022C484C93A2680F610C9 :10827000D300C93A2980E618C8E521C38435E1C096 :108280003AD384A7CAD882AFD300C30000213C41AF :108290002B7CB5C29082C921C6843603DBC41FD0B3 :1082A0001FDAB9822B7CB5C29C8221C68435C29C60 :1082B00082CD4C82AFD3003DC9DBC7C39C8221C6AF :1082C000847721C4A22B7DB4C2C58221C68435C85F :1082D000C3C2823E14CDBE8231009021FF822213A0 :1082E00080AF2100907732CA84221E80CD37833A36 :1082F0000090FE21CA0090FE3ECA0090C38782CD46 :108300003783FEFFCA87822A1E8011000219221EAF :10831000803ACA843CFE20C8FE1032CA84C8C3FF1B :108320008203000000040008000000010022CD8448 :10833000EB22CB84C3408321278322CD84CD898344 :1083400021C3843602CD90833A298032C984FEFF4E :10835000CA8783E602C821C38435CA87832A1E8060 :1083600022D4842ACD8422D68421CF84221E802147 :10837000218322CD84CD90832AD484221E802AD6C4 :108380008422CD84C34583B7C93ACA84322A83C9BB :10839000AFD321D323AFD322DB273AC784D3203EE8 :1083A00001D322DB21E640C2B483DB25E610CAA359 :1083B00083C395833AC78447DB209090FAC283C376 :1083C0009583DB21E620C295833E08D321DB22E69C :1083D000FED322DB21F604D3213AC784473AC8846E :1083E000B0D320DB21F601D3213E05D3210100606B :1083F000DB24E640C209840DC2F08305C2F083AFDE :10840000D3203D322980C30A84AF473E01D321AF38 :10841000D32178B7C03D3229803E06D322DB25E642 :1084200010C22E84DB24E620CA1D84C33884AFD357 :1084300021DB25E60CC28584AFD322DB273E06D3A1 :1084400022DB24E61C1F5F1FD3231600215784194B :108450007E23666F1640E967846D84738479848512 :1084600084858485847F842ACB84C38D842A1E805E :10847000C3AA842ACD84C38D84212980C3AA8421E0 :10848000CF84C3AA84AFD323D322DB27C93E01D331 :1084900021D325DB2547A2CAA1847ED32823C393F9 :1084A0008478E610CA9384C32E84D327DB2547A2A1 :1084B000CABA84DB287723C3AC8478E610CAAC84BC :1084C000C32E840500000000000000000000000032 :0884D0000000000000000000A4 :0000000000 Ã,Ãz�Ã,‚Ãk‚ÃL‚Ãd‚ÃŒ�ÂÃÜ�Ã-ƒó¯Ó!€~#|þÂ6ë€SCSI Boot Rom Version 1.3 - (C) 1983,1984,1985,1986,1988 - AMPRO Computers, Inc. - All rights reserved. 1�!¿€~<Ê€=Ó@ÓP#ñ€G ÿ!Ó€~<ÊÚ€=Ó„ÓŒ#ÃÅ€FêÁÿÛ)æ€Â�>;‚>€Ó!=Âú€Ó!Û'>2È„¯Ó!Ó"Ó#Ó$Û"2Ó„>ªÓÂGæ=Â�ÛÆ¸Ê.�ÃÓ‚>2ÄÍz�ÍÜ�Ís‚Â.�>2Ä:"€þ>ÚJ�<2*€·2+€!�"€<ÓÂÍ‚Ís‚:*€ÂJ�:�þ!Ê�þ>Ê�ÃÓ‚>Ó2&€ÍL‚>Í[‚ׂ:#€þ!Ö�Êš�!Ë�>2ÄN# È :+€�2(€ÓÂåÍ‚Ís‚ÂÁ�*€"Ä„áÚ�*Ä„"€áí� ÿÿÛÄÛÇ>ÈÍ[‚Í—‚þÿ2)€ÈÛÄÛÇ! €>ÈÍ[‚Í‚x2)€ÉÛÄÛÇ*€ÍL‚>ˆÍ[‚Í‚x2)€"€ÉÛÄGÐÒ‚ÛÇw#Â:*€·Ê@‚Ík‚!'€5!§Ã�‚>XÍ[‚ÛÄÚE‚É>ÐÓÀ>=ÂR‚ÛÄÛÇÉÓÀ>=Â_‚É"€"Ä„É:&€öÓÉ:)€æÈå!Ä5áÀ:Ó„§ÊØ‚¯ÓÃ!;‚1�!ÿ‚"€¯!�w2Ê„"€Í7ƒ:�þ!Ê�þ>Ê�Ç‚Í7ƒþÿʇ‚*€"€:Ê„<þ Èþ2Ê„ÈÃÿ‚"Í„ë"Ë„Ã@ƒ!'ƒ"͉̈́ƒ!Ä6Í�ƒ:)€2É„þÿʇƒæÈ!Ä5ʇƒ*€"Ô„*Í„"Ö„!Ï„"€!!ƒ"Í„Í�ƒ*Ô„"€*Ö„"Í„ÃEƒ·É:Ê„2*ƒÉ¯Ó!Ó#¯Ó"Û':Ç„Ó >Ó"Û!æ@´ƒÛ%æÊ£ƒÃ•ƒ:Ç„GÛ ��úƒÕƒÛ!æ •ƒ>Ó!Û"æþÓ"Û!öÓ!:Ç„G:È„°Ó Û!öÓ!>Ó!`Û$æ@ „ ÂðƒÂðƒ¯Ó =2)€Ã „¯G>Ó!¯Ó!x·À=2)€>Ó"Û%æÂ.„Û$æ Ê„Ã8„¯Ó!Û%æ Â…„¯Ó"Û'>Ó"Û$æ_Ó#!W„~#fo@ég„m„s„y„…„…„…„„*Ë„Ã�„*€Ãª„*Í„Ã�„!)€Ãª„!τꄯÓ#Ó"Û'É>Ó!Ó%Û%G¢Ê¡„~Ó(#Ó„xæÊ“„Ã.„Ó'Û%G¢Êº„Û(w#ì„xæʬ„Ã.„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ