home *** CD-ROM | disk | FTP | other *** search
MacBinary | 2000-03-09 | 20.5 KB | [TEXT/CWIE] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| MS-DOS Code Page Info (other/dosCodePage)
| ext
| Unsupported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Thu Mar 9 18:10:13 2000, modified Thu Mar 9 18:10:13 2000, creator 'CWIE', type ASCII, 20307 bytes "LTemporaryFileArray.cp" , at 0x4fd3 410 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [CWIE] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 16 4c 54 65 6d 70 6f | 72 61 72 79 46 69 6c 65 |..LTempo|raryFile|
|00000010| 41 72 72 61 79 2e 63 70 | 00 00 00 00 00 00 00 00 |Array.cp|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 57 49 | 45 00 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 4f 53 00 | 00 01 9a b4 ed df d5 b4 |.....OS.|........|
|00000060| ed df d5 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 a5 26 00 00 |........|.....&..|
|00000080| 2f 2f 20 4c 54 65 6d 70 | 6f 72 61 72 79 46 69 6c |// LTemp|oraryFil|
|00000090| 65 41 72 72 61 79 2e 63 | 70 0d 2f 2f 20 a9 20 47 |eArray.c|p.// . G|
|000000a0| 61 62 72 69 65 6c 65 20 | 64 65 20 53 69 6d 6f 6e |abriele |de Simon|
|000000b0| 65 2c 20 31 39 39 38 2d | 32 30 30 30 0d 2f 2f 0d |e, 1998-|2000.//.|
|000000c0| 2f 2f 20 55 73 61 67 65 | 3a 0d 2f 2f 20 41 6c 6c |// Usage|:.// All|
|000000d0| 6f 63 61 74 65 20 61 6e | 64 20 75 73 65 20 4c 54 |ocate an|d use LT|
|000000e0| 65 6d 70 6f 72 61 72 79 | 46 69 6c 65 41 72 72 61 |emporary|FileArra|
|000000f0| 79 73 20 6c 69 6b 65 20 | 79 6f 75 20 77 6f 75 6c |ys like |you woul|
|00000100| 64 20 64 6f 20 77 69 74 | 68 20 61 6e 79 20 4c 41 |d do wit|h any LA|
|00000110| 72 72 61 79 20 63 6c 61 | 73 73 0d 2f 2f 20 28 77 |rray cla|ss.// (w|
|00000120| 69 74 68 20 74 68 65 20 | 65 78 63 65 70 74 69 6f |ith the |exceptio|
|00000130| 6e 20 6f 66 20 74 65 6d | 70 6c 61 74 65 73 29 2e |n of tem|plates).|
|00000140| 20 54 68 65 20 41 50 49 | 20 62 65 74 77 65 65 6e | The API| between|
|00000150| 20 74 68 65 20 74 77 6f | 20 69 73 20 6d 6f 73 74 | the two| is most|
|00000160| 6c 79 20 69 64 65 6e 74 | 69 63 61 6c 2e 0d 2f 2f |ly ident|ical..//|
|00000170| 20 54 68 65 20 62 69 67 | 67 65 73 74 20 64 69 66 | The big|gest dif|
|00000180| 66 65 72 65 6e 63 65 20 | 69 73 20 74 68 61 74 20 |ference |is that |
|00000190| 69 66 20 79 6f 75 20 73 | 70 65 63 69 66 79 20 7a |if you s|pecify z|
|000001a0| 65 72 6f 20 61 73 20 74 | 68 65 20 73 69 7a 65 20 |ero as t|he size |
|000001b0| 66 6f 72 20 79 6f 75 72 | 20 61 72 72 61 79 0d 2f |for your| array./|
|000001c0| 2f 20 65 6c 65 6d 65 6e | 74 73 2c 20 74 68 65 6e |/ elemen|ts, then|
|000001d0| 20 4c 54 65 6d 70 6f 72 | 61 72 79 46 69 6c 65 41 | LTempor|aryFileA|
|000001e0| 72 72 61 79 20 77 69 6c | 6c 20 61 73 73 75 6d 65 |rray wil|l assume|
|000001f0| 20 74 68 61 74 20 79 6f | 75 20 61 72 65 20 73 74 | that yo|u are st|
|00000200| 6f 72 69 6e 67 20 76 61 | 72 69 61 62 6c 65 0d 2f |oring va|riable./|
|00000210| 2f 20 73 69 7a 65 64 20 | 65 6c 65 6d 65 6e 74 73 |/ sized |elements|
|00000220| 2e 20 41 6e 6f 74 68 65 | 72 20 69 6d 70 6f 72 74 |. Anothe|r import|
|00000230| 61 6e 74 20 64 69 66 66 | 65 72 65 6e 63 65 20 69 |ant diff|erence i|
|00000240| 73 20 74 68 61 74 20 69 | 74 20 69 73 20 6e 6f 74 |s that i|t is not|
|00000250| 20 70 6f 73 73 69 62 6c | 65 20 74 6f 20 6f 62 74 | possibl|e to obt|
|00000260| 61 69 6e 0d 2f 2f 20 61 | 20 64 69 72 65 63 74 20 |ain.// a| direct |
|00000270| 61 64 64 72 65 73 73 20 | 69 6e 20 6d 65 6d 6f 72 |address |in memor|
|00000280| 79 20 66 6f 72 20 61 6e | 79 20 61 72 72 61 79 20 |y for an|y array |
|00000290| 65 6c 65 6d 65 6e 74 3b | 20 74 68 65 20 6c 6f 67 |element;| the log|
|000002a0| 69 63 61 6c 20 72 65 61 | 73 6f 6e 20 69 73 20 74 |ical rea|son is t|
|000002b0| 68 61 74 0d 2f 2f 20 65 | 6c 65 6d 65 6e 74 73 20 |hat.// e|lements |
|000002c0| 69 6e 20 61 20 4c 54 65 | 6d 70 6f 72 61 72 79 46 |in a LTe|mporaryF|
|000002d0| 69 6c 65 41 72 72 61 79 | 20 61 72 65 20 73 74 6f |ileArray| are sto|
|000002e0| 72 65 64 20 6f 6e 20 64 | 69 73 6b 20 75 6e 74 69 |red on d|isk unti|
|000002f0| 6c 20 74 68 65 79 20 61 | 72 65 20 61 63 74 75 61 |l they a|re actua|
|00000300| 6c 6c 79 0d 2f 2f 20 61 | 63 63 65 73 73 65 64 2e |lly.// a|ccessed.|
|00000310| 0d 2f 2f 0d 2f 2f 20 44 | 65 70 65 6e 64 65 6e 63 |.//.// D|ependenc|
|00000320| 69 65 73 3a 0d 2f 2f 20 | 4d 61 6b 65 20 73 75 72 |ies:.// |Make sur|
|00000330| 65 20 74 68 61 74 20 79 | 6f 75 72 20 70 72 6f 6a |e that y|our proj|
|00000340| 65 63 74 20 69 6e 63 6c | 75 64 65 73 20 74 68 65 |ect incl|udes the|
|00000350| 20 4c 54 65 6d 70 6f 72 | 61 72 79 46 69 6c 65 53 | LTempor|aryFileS|
|00000360| 74 72 65 61 6d 20 50 6f | 77 65 72 50 6c 61 6e 74 |tream Po|werPlant|
|00000370| 20 63 6c 61 73 73 2e 0d | 2f 2f 20 54 68 69 73 20 | class..|// This |
|00000380| 69 73 20 70 61 72 74 20 | 6f 66 20 50 6f 77 65 72 |is part |of Power|
|00000390| 50 6c 61 6e 74 20 62 75 | 74 20 6e 6f 74 20 70 61 |Plant bu|t not pa|
|000003a0| 72 74 20 6f 66 20 61 6c | 6c 20 6e 65 77 20 70 72 |rt of al|l new pr|
|000003b0| 6f 6a 65 63 74 73 0d 0d | 0d 23 69 6e 63 6c 75 64 |ojects..|.#includ|
|000003c0| 65 20 22 4c 54 65 6d 70 | 6f 72 61 72 79 46 69 6c |e "LTemp|oraryFil|
|000003d0| 65 41 72 72 61 79 2e 68 | 22 0d 0d 2f 2f 20 50 6f |eArray.h|"..// Po|
|000003e0| 77 65 72 50 6c 61 6e 74 | 0d 23 69 6e 63 6c 75 64 |werPlant|.#includ|
|000003f0| 65 20 3c 55 4d 65 6d 6f | 72 79 4d 67 72 2e 68 3e |e <UMemo|ryMgr.h>|
|00000400| 0d 0d 0d 4c 54 65 6d 70 | 6f 72 61 72 79 46 69 6c |...LTemp|oraryFil|
|00000410| 65 41 72 72 61 79 3a 3a | 4c 54 65 6d 70 6f 72 61 |eArray::|LTempora|
|00000420| 72 79 46 69 6c 65 41 72 | 72 61 79 28 29 0d 7b 09 |ryFileAr|ray().{.|
|00000430| 0d 09 49 6e 69 74 41 72 | 72 61 79 28 73 69 7a 65 |..InitAr|ray(size|
|00000440| 6f 66 28 6c 6f 6e 67 29 | 2c 20 6e 69 6c 2c 20 66 |of(long)|, nil, f|
|00000450| 61 6c 73 65 2c 20 66 61 | 6c 73 65 29 3b 0d 7d 0d |alse, fa|lse);.}.|
|00000460| 0d 4c 54 65 6d 70 6f 72 | 61 72 79 46 69 6c 65 41 |.LTempor|aryFileA|
|00000470| 72 72 61 79 3a 3a 4c 54 | 65 6d 70 6f 72 61 72 79 |rray::LT|emporary|
|00000480| 46 69 6c 65 41 72 72 61 | 79 28 0d 09 41 72 72 61 |FileArra|y(..Arra|
|00000490| 79 49 74 65 6d 53 69 7a | 65 54 20 69 6e 49 74 65 |yItemSiz|eT inIte|
|000004a0| 6d 53 69 7a 65 2c 0d 09 | 4c 43 6f 6d 70 61 72 61 |mSize,..|LCompara|
|000004b0| 74 6f 72 20 2a 69 6e 43 | 6f 6d 70 61 72 61 74 6f |tor *inC|omparato|
|000004c0| 72 2c 0d 09 42 6f 6f 6c | 65 61 6e 20 69 6e 4b 65 |r,..Bool|ean inKe|
|000004d0| 65 70 53 6f 72 74 65 64 | 29 0d 7b 0d 09 49 6e 69 |epSorted|).{..Ini|
|000004e0| 74 41 72 72 61 79 28 69 | 6e 49 74 65 6d 53 69 7a |tArray(i|nItemSiz|
|000004f0| 65 2c 20 69 6e 43 6f 6d | 70 61 72 61 74 6f 72 2c |e, inCom|parator,|
|00000500| 20 74 72 75 65 2c 20 69 | 6e 4b 65 65 70 53 6f 72 | true, i|nKeepSor|
|00000510| 74 65 64 29 3b 0d 7d 0d | 0d 4c 54 65 6d 70 6f 72 |ted);.}.|.LTempor|
|00000520| 61 72 79 46 69 6c 65 41 | 72 72 61 79 3a 3a 7e 4c |aryFileA|rray::~L|
|00000530| 54 65 6d 70 6f 72 61 72 | 79 46 69 6c 65 41 72 72 |Temporar|yFileArr|
|00000540| 61 79 28 29 0d 7b 0d 09 | 69 66 20 28 28 6d 43 6f |ay().{..|if ((mCo|
|00000550| 6d 70 61 72 61 74 6f 72 | 20 21 3d 20 6e 69 6c 29 |mparator| != nil)|
|00000560| 20 61 6e 64 20 6d 4f 77 | 6e 73 43 6f 6d 70 61 72 | and mOw|nsCompar|
|00000570| 61 74 6f 72 29 0d 09 7b | 0d 09 09 64 65 6c 65 74 |ator)..{|...delet|
|00000580| 65 20 28 6d 43 6f 6d 70 | 61 72 61 74 6f 72 29 3b |e (mComp|arator);|
|00000590| 0d 09 7d 0d 7d 0d 0d 23 | 70 72 61 67 6d 61 20 6d |..}.}..#|pragma m|
|000005a0| 61 72 6b 20 2d 0d 0d 41 | 72 72 61 79 49 6e 64 65 |ark -..A|rrayInde|
|000005b0| 78 54 0d 4c 54 65 6d 70 | 6f 72 61 72 79 46 69 6c |xT.LTemp|oraryFil|
|000005c0| 65 41 72 72 61 79 3a 3a | 47 65 74 43 6f 75 6e 74 |eArray::|GetCount|
|000005d0| 28 29 0d 7b 0d 09 72 65 | 74 75 72 6e 20 49 6e 74 |().{..re|turn Int|
|000005e0| 65 72 6e 61 6c 47 65 74 | 43 6f 75 6e 74 28 29 3b |ernalGet|Count();|
|000005f0| 0d 7d 0d 0d 41 72 72 61 | 79 49 74 65 6d 53 69 7a |.}..Arra|yItemSiz|
|00000600| 65 54 0d 4c 54 65 6d 70 | 6f 72 61 72 79 46 69 6c |eT.LTemp|oraryFil|
|00000610| 65 41 72 72 61 79 3a 3a | 47 65 74 49 74 65 6d 53 |eArray::|GetItemS|
|00000620| 69 7a 65 28 0d 09 41 72 | 72 61 79 49 6e 64 65 78 |ize(..Ar|rayIndex|
|00000630| 54 20 69 6e 49 6e 64 65 | 78 29 0d 7b 0d 09 41 72 |T inInde|x).{..Ar|
|00000640| 72 61 79 49 74 65 6d 4f | 66 66 73 65 74 54 09 6f |rayItemO|ffsetT.o|
|00000650| 66 66 73 65 74 20 3d 20 | 30 3b 0d 09 41 72 72 61 |ffset = |0;..Arra|
|00000660| 79 49 74 65 6d 53 69 7a | 65 54 09 09 73 69 7a 65 |yItemSiz|eT..size|
|00000670| 20 3d 20 30 3b 0d 09 0d | 09 69 66 20 28 56 61 6c | = 0;...|.if (Val|
|00000680| 69 64 49 6e 64 65 78 28 | 69 6e 49 6e 64 65 78 29 |idIndex(|inIndex)|
|00000690| 29 0d 09 7b 0d 09 09 49 | 6e 74 65 72 6e 61 6c 47 |)..{...I|nternalG|
|000006a0| 65 74 49 74 65 6d 4f 66 | 66 73 65 74 41 6e 64 53 |etItemOf|fsetAndS|
|000006b0| 69 7a 65 28 69 6e 49 6e | 64 65 78 2c 20 6f 66 66 |ize(inIn|dex, off|
|000006c0| 73 65 74 2c 20 73 69 7a | 65 29 3b 0d 09 7d 0d 09 |set, siz|e);..}..|
|000006d0| 0d 09 72 65 74 75 72 6e | 20 73 69 7a 65 3b 0d 7d |..return| size;.}|
|000006e0| 0d 0d 0d 23 70 72 61 67 | 6d 61 20 6d 61 72 6b 20 |...#prag|ma mark |
|000006f0| 2d 0d 0d 0d 42 6f 6f 6c | 65 61 6e 0d 4c 54 65 6d |-...Bool|ean.LTem|
|00000700| 70 6f 72 61 72 79 46 69 | 6c 65 41 72 72 61 79 3a |poraryFi|leArray:|
|00000710| 3a 56 61 6c 69 64 49 6e | 64 65 78 28 0d 09 41 72 |:ValidIn|dex(..Ar|
|00000720| 72 61 79 49 6e 64 65 78 | 54 20 26 69 6f 49 6e 64 |rayIndex|T &ioInd|
|00000730| 65 78 29 0d 7b 0d 09 41 | 72 72 61 79 49 6e 64 65 |ex).{..A|rrayInde|
|00000740| 78 54 09 09 74 6f 74 61 | 6c 49 74 65 6d 73 20 3d |xT..tota|lItems =|
|00000750| 20 49 6e 74 65 72 6e 61 | 6c 47 65 74 43 6f 75 6e | Interna|lGetCoun|
|00000760| 74 28 29 3b 0d 0d 09 69 | 66 20 28 69 6f 49 6e 64 |t();...i|f (ioInd|
|00000770| 65 78 20 3d 3d 20 69 6e | 64 65 78 5f 4c 61 73 74 |ex == in|dex_Last|
|00000780| 29 0d 09 7b 0d 09 09 69 | 6f 49 6e 64 65 78 20 3d |)..{...i|oIndex =|
|00000790| 20 74 6f 74 61 6c 49 74 | 65 6d 73 3b 0d 09 7d 0d | totalIt|ems;..}.|
|000007a0| 09 0d 09 72 65 74 75 72 | 6e 28 69 6f 49 6e 64 65 |...retur|n(ioInde|
|000007b0| 78 20 3e 20 30 29 20 61 | 6e 64 28 69 6f 49 6e 64 |x > 0) a|nd(ioInd|
|000007c0| 65 78 20 3c 3d 20 74 6f | 74 61 6c 49 74 65 6d 73 |ex <= to|talItems|
|000007d0| 29 3b 0d 7d 0d 0d 42 6f | 6f 6c 65 61 6e 0d 4c 54 |);.}..Bo|olean.LT|
|000007e0| 65 6d 70 6f 72 61 72 79 | 46 69 6c 65 41 72 72 61 |emporary|FileArra|
|000007f0| 79 3a 3a 46 65 74 63 68 | 49 74 65 6d 41 74 28 0d |y::Fetch|ItemAt(.|
|00000800| 09 41 72 72 61 79 49 6e | 64 65 78 54 20 69 6e 49 |.ArrayIn|dexT inI|
|00000810| 6e 64 65 78 2c 20 0d 09 | 76 6f 69 64 20 2a 6f 75 |ndex, ..|void *ou|
|00000820| 74 49 74 65 6d 29 0d 7b | 09 0d 09 41 72 72 61 79 |tItem).{|...Array|
|00000830| 49 74 65 6d 53 69 7a 65 | 54 09 09 75 73 65 49 74 |ItemSize|T..useIt|
|00000840| 65 6d 53 69 7a 65 20 3d | 20 30 3b 0d 0d 09 72 65 |emSize =| 0;...re|
|00000850| 74 75 72 6e 20 49 6e 74 | 65 72 6e 61 6c 46 65 74 |turn Int|ernalFet|
|00000860| 63 68 49 74 65 6d 41 74 | 28 69 6e 49 6e 64 65 78 |chItemAt|(inIndex|
|00000870| 2c 20 6f 75 74 49 74 65 | 6d 2c 20 75 73 65 49 74 |, outIte|m, useIt|
|00000880| 65 6d 53 69 7a 65 29 3b | 0d 7d 09 0d 0d 42 6f 6f |emSize);|.}...Boo|
|00000890| 6c 65 61 6e 20 0d 4c 54 | 65 6d 70 6f 72 61 72 79 |lean .LT|emporary|
|000008a0| 46 69 6c 65 41 72 72 61 | 79 3a 3a 46 65 74 63 68 |FileArra|y::Fetch|
|000008b0| 49 74 65 6d 41 74 28 0d | 09 41 72 72 61 79 49 6e |ItemAt(.|.ArrayIn|
|000008c0| 64 65 78 54 20 69 6e 49 | 6e 64 65 78 2c 0d 09 76 |dexT inI|ndex,..v|
|000008d0| 6f 69 64 2a 20 6f 75 74 | 49 74 65 6d 2c 0d 09 41 |oid* out|Item,..A|
|000008e0| 72 72 61 79 49 74 65 6d | 53 69 7a 65 54 20 26 69 |rrayItem|SizeT &i|
|000008f0| 6f 49 74 65 6d 53 69 7a | 65 29 0d 7b 0d 09 72 65 |oItemSiz|e).{..re|
|00000900| 74 75 72 6e 20 49 6e 74 | 65 72 6e 61 6c 46 65 74 |turn Int|ernalFet|
|00000910| 63 68 49 74 65 6d 41 74 | 28 69 6e 49 6e 64 65 78 |chItemAt|(inIndex|
|00000920| 2c 20 6f 75 74 49 74 65 | 6d 2c 20 69 6f 49 74 65 |, outIte|m, ioIte|
|00000930| 6d 53 69 7a 65 29 3b 0d | 7d 0d 0d 41 72 72 61 79 |mSize);.|}..Array|
|00000940| 49 6e 64 65 78 54 0d 4c | 54 65 6d 70 6f 72 61 72 |IndexT.L|Temporar|
|00000950| 79 46 69 6c 65 41 72 72 | 61 79 3a 3a 46 65 74 63 |yFileArr|ay::Fetc|
|00000960| 68 49 6e 64 65 78 4f 66 | 28 0d 09 63 6f 6e 73 74 |hIndexOf|(..const|
|00000970| 20 76 6f 69 64 20 2a 69 | 6e 49 74 65 6d 2c 0d 09 | void *i|nItem,..|
|00000980| 41 72 72 61 79 49 74 65 | 6d 53 69 7a 65 54 20 69 |ArrayIte|mSizeT i|
|00000990| 6e 49 74 65 6d 53 69 7a | 65 29 0d 7b 0d 09 41 72 |nItemSiz|e).{..Ar|
|000009a0| 72 61 79 49 6e 64 65 78 | 54 09 69 6e 64 65 78 20 |rayIndex|T.index |
|000009b0| 3d 20 69 6e 64 65 78 5f | 42 61 64 3b 0d 09 0d 09 |= index_|Bad;....|
|000009c0| 69 66 20 28 69 6e 49 74 | 65 6d 53 69 7a 65 20 3d |if (inIt|emSize =|
|000009d0| 3d 20 30 29 0d 09 7b 0d | 09 09 69 6e 49 74 65 6d |= 0)..{.|..inItem|
|000009e0| 53 69 7a 65 20 3d 20 6d | 49 74 65 6d 53 69 7a 65 |Size = m|ItemSize|
|000009f0| 3b 0d 09 7d 0d 09 0d 09 | 69 66 20 28 47 65 74 43 |;..}....|if (GetC|
|00000a00| 6f 75 6e 74 28 29 20 3e | 20 30 29 0d 09 7b 0d 09 |ount() >| 0)..{..|
|00000a10| 09 69 66 20 28 6d 49 73 | 53 6f 72 74 65 64 29 0d |.if (mIs|Sorted).|
|00000a20| 09 09 7b 0d 09 09 09 69 | 6e 64 65 78 20 3d 20 42 |..{....i|ndex = B|
|00000a30| 69 6e 61 72 79 53 65 61 | 72 63 68 28 69 6e 49 74 |inarySea|rch(inIt|
|00000a40| 65 6d 2c 20 69 6e 49 74 | 65 6d 53 69 7a 65 29 3b |em, inIt|emSize);|
|00000a50| 0d 09 09 7d 0d 09 09 65 | 6c 73 65 0d 09 09 7b 0d |...}...e|lse...{.|
|00000a60| 09 09 09 69 6e 64 65 78 | 20 3d 20 4c 69 6e 65 61 |...index| = Linea|
|00000a70| 72 53 65 61 72 63 68 28 | 69 6e 49 74 65 6d 2c 20 |rSearch(|inItem, |
|00000a80| 69 6e 49 74 65 6d 53 69 | 7a 65 29 3b 0d 09 09 7d |inItemSi|ze);...}|
|00000a90| 0d 09 7d 0d 09 0d 09 72 | 65 74 75 72 6e 20 69 6e |..}....r|eturn in|
|00000aa0| 64 65 78 3b 0d 7d 0d 0d | 41 72 72 61 79 49 6e 64 |dex;.}..|ArrayInd|
|00000ab0| 65 78 54 0d 4c 54 65 6d | 70 6f 72 61 72 79 46 69 |exT.LTem|poraryFi|
|00000ac0| 6c 65 41 72 72 61 79 3a | 3a 41 64 64 49 74 65 6d |leArray:|:AddItem|
|00000ad0| 28 0d 09 63 6f 6e 73 74 | 20 76 6f 69 64 20 2a 69 |(..const| void *i|
|00000ae0| 6e 49 74 65 6d 2c 0d 09 | 41 72 72 61 79 49 74 65 |nItem,..|ArrayIte|
|00000af0| 6d 53 69 7a 65 54 20 69 | 6e 49 74 65 6d 53 69 7a |mSizeT i|nItemSiz|
|00000b00| 65 29 0d 7b 0d 09 69 66 | 20 28 6d 4b 65 65 70 53 |e).{..if| (mKeepS|
|00000b10| 6f 72 74 65 64 29 0d 09 | 7b 0d 09 09 72 65 74 75 |orted)..|{...retu|
|00000b20| 72 6e 20 49 6e 73 65 72 | 74 49 74 65 6d 73 41 74 |rn Inser|tItemsAt|
|00000b30| 28 31 2c 20 30 2c 20 69 | 6e 49 74 65 6d 2c 20 69 |(1, 0, i|nItem, i|
|00000b40| 6e 49 74 65 6d 53 69 7a | 65 29 3b 0d 09 7d 0d 09 |nItemSiz|e);..}..|
|00000b50| 0d 09 69 66 20 28 69 6e | 49 74 65 6d 53 69 7a 65 |..if (in|ItemSize|
|00000b60| 20 3d 3d 20 30 29 0d 09 | 7b 0d 09 09 69 6e 49 74 | == 0)..|{...inIt|
|00000b70| 65 6d 53 69 7a 65 20 3d | 20 6d 49 74 65 6d 53 69 |emSize =| mItemSi|
|00000b80| 7a 65 3b 0d 09 7d 0d 09 | 09 0d 09 6d 49 73 53 6f |ze;..}..|...mIsSo|
|00000b90| 72 74 65 64 20 3d 20 66 | 61 6c 73 65 3b 0d 09 09 |rted = f|alse;...|
|00000ba0| 0d 09 72 65 74 75 72 6e | 20 49 6e 74 65 72 6e 61 |..return| Interna|
|00000bb0| 6c 49 6e 73 65 72 74 49 | 74 65 6d 73 41 74 28 31 |lInsertI|temsAt(1|
|00000bc0| 2c 20 69 6e 64 65 78 5f | 4c 61 73 74 2c 20 69 6e |, index_|Last, in|
|00000bd0| 49 74 65 6d 2c 20 69 6e | 49 74 65 6d 53 69 7a 65 |Item, in|ItemSize|
|00000be0| 29 3b 0d 7d 0d 0d 41 72 | 72 61 79 49 6e 64 65 78 |);.}..Ar|rayIndex|
|00000bf0| 54 0d 4c 54 65 6d 70 6f | 72 61 72 79 46 69 6c 65 |T.LTempo|raryFile|
|00000c00| 41 72 72 61 79 3a 3a 49 | 6e 73 65 72 74 49 74 65 |Array::I|nsertIte|
|00000c10| 6d 73 41 74 28 0d 09 55 | 49 6e 74 33 32 20 69 6e |msAt(..U|Int32 in|
|00000c20| 43 6f 75 6e 74 2c 0d 09 | 41 72 72 61 79 49 6e 64 |Count,..|ArrayInd|
|00000c30| 65 78 54 20 69 6e 41 74 | 49 6e 64 65 78 2c 0d 09 |exT inAt|Index,..|
|00000c40| 63 6f 6e 73 74 20 76 6f | 69 64 20 2a 69 6e 49 74 |const vo|id *inIt|
|00000c50| 65 6d 2c 0d 09 41 72 72 | 61 79 49 74 65 6d 53 69 |em,..Arr|ayItemSi|
|00000c60| 7a 65 54 20 69 6e 49 74 | 65 6d 53 69 7a 65 29 0d |zeT inIt|emSize).|
|00000c70| 7b 0d 09 69 66 20 28 69 | 6e 43 6f 75 6e 74 20 3c |{..if (i|nCount <|
|00000c80| 20 31 29 0d 09 7b 0d 09 | 09 72 65 74 75 72 6e 20 | 1)..{..|.return |
|00000c90| 69 6e 64 65 78 5f 42 61 | 64 3b 0d 09 7d 0d 09 09 |index_Ba|d;..}...|
|00000ca0| 0d 09 69 66 20 28 6d 4b | 65 65 70 53 6f 72 74 65 |..if (mK|eepSorte|
|00000cb0| 64 20 61 6e 64 28 69 6e | 49 74 65 6d 20 3d 3d 20 |d and(in|Item == |
|00000cc0| 6e 69 6c 29 29 0d 09 7b | 0d 09 09 53 69 67 6e 61 |nil))..{|...Signa|
|00000cd0| 6c 50 53 74 72 5f 28 22 | 5c 70 43 61 6e 27 74 20 |lPStr_("|\pCan't |
|00000ce0| 69 6e 73 65 72 74 20 6e | 69 6c 20 69 74 65 6d 20 |insert n|il item |
|00000cf0| 69 6e 74 6f 20 61 20 73 | 6f 72 74 65 64 20 41 72 |into a s|orted Ar|
|00000d00| 72 61 79 22 29 3b 0d 09 | 09 72 65 74 75 72 6e 20 |ray");..|.return |
|00000d10| 69 6e 64 65 78 5f 42 61 | 64 3b 0d 09 7d 0d 09 0d |index_Ba|d;..}...|
|00000d20| 09 69 66 20 28 69 6e 49 | 74 65 6d 53 69 7a 65 20 |.if (inI|temSize |
|00000d30| 3d 3d 20 30 29 0d 09 7b | 0d 09 09 69 66 20 28 6d |== 0)..{|...if (m|
|00000d40| 49 74 65 6d 53 69 7a 65 | 20 3d 3d 20 30 29 0d 09 |ItemSize| == 0)..|
|00000d50| 09 7b 0d 09 09 09 53 69 | 67 6e 61 6c 50 53 74 72 |.{....Si|gnalPStr|
|00000d60| 5f 28 22 5c 70 43 61 6e | 27 74 20 69 6e 73 65 72 |_("\pCan|'t inser|
|00000d70| 74 20 61 6e 20 69 74 65 | 6d 20 77 69 74 68 20 75 |t an ite|m with u|
|00000d80| 6e 73 70 65 63 69 66 69 | 65 64 20 73 69 7a 65 20 |nspecifi|ed size |
|00000d90| 69 6e 74 6f 20 61 20 76 | 61 72 69 61 62 6c 65 20 |into a v|ariable |
|00000da0| 73 69 7a 65 20 41 72 72 | 61 79 22 29 3b 0d 09 09 |size Arr|ay");...|
|00000db0| 09 72 65 74 75 72 6e 20 | 69 6e 64 65 78 5f 42 61 |.return |index_Ba|
|00000dc0| 64 3b 0d 09 09 7d 0d 09 | 09 65 6c 73 65 0d 09 09 |d;...}..|.else...|
|00000dd0| 7b 0d 09 09 09 69 6e 49 | 74 65 6d 53 69 7a 65 20 |{....inI|temSize |
|00000de0| 3d 20 6d 49 74 65 6d 53 | 69 7a 65 3b 0d 09 09 7d |= mItemS|ize;...}|
|00000df0| 0d 09 7d 0d 09 0d 09 2f | 2f 20 47 75 61 72 61 6e |..}..../|/ Guaran|
|00000e00| 74 65 65 20 74 68 61 74 | 20 41 72 72 61 79 20 69 |tee that| Array i|
|00000e10| 73 20 73 6f 72 74 65 64 | 09 09 09 09 09 09 0d 09 |s sorted|........|
|00000e20| 69 66 20 28 6d 4b 65 65 | 70 53 6f 72 74 65 64 29 |if (mKee|pSorted)|
|00000e30| 0d 09 7b 0d 09 09 69 66 | 20 28 21 6d 49 73 53 6f |..{...if| (!mIsSo|
|00000e40| 72 74 65 64 29 0d 09 09 | 7b 09 09 09 0d 09 09 09 |rted)...|{.......|
|00000e50| 53 6f 72 74 28 29 3b 09 | 0d 09 09 7d 0d 09 09 69 |Sort();.|...}...i|
|00000e60| 6e 41 74 49 6e 64 65 78 | 20 3d 20 46 65 74 63 68 |nAtIndex| = Fetch|
|00000e70| 49 6e 73 65 72 74 49 6e | 64 65 78 4f 66 28 69 6e |InsertIn|dexOf(in|
|00000e80| 49 74 65 6d 2c 20 69 6e | 49 74 65 6d 53 69 7a 65 |Item, in|ItemSize|
|00000e90| 29 3b 0d 09 7d 0d 09 0d | 09 2f 2f 20 43 68 65 63 |);..}...|.// Chec|
|00000ea0| 6b 20 75 70 70 65 72 20 | 61 6e 64 20 6c 6f 77 65 |k upper |and lowe|
|00000eb0| 72 20 62 6f 75 6e 64 0d | 09 41 72 72 61 79 49 6e |r bound.|.ArrayIn|
|00000ec0| 64 65 78 54 09 09 69 74 | 65 6d 43 6f 75 6e 74 20 |dexT..it|emCount |
|00000ed0| 3d 20 47 65 74 43 6f 75 | 6e 74 28 29 3b 0d 09 0d |= GetCou|nt();...|
|00000ee0| 09 69 66 20 28 69 6e 41 | 74 49 6e 64 65 78 20 3e |.if (inA|tIndex >|
|00000ef0| 20 69 74 65 6d 43 6f 75 | 6e 74 29 0d 09 7b 0d 09 | itemCou|nt)..{..|
|00000f00| 09 69 6e 41 74 49 6e 64 | 65 78 20 3d 20 69 74 65 |.inAtInd|ex = ite|
|00000f10| 6d 43 6f 75 6e 74 20 2b | 20 31 3b 0d 09 09 0d 09 |mCount +| 1;.....|
|00000f20| 7d 0d 09 65 6c 73 65 20 | 69 66 20 28 69 6e 41 74 |}..else |if (inAt|
|00000f30| 49 6e 64 65 78 20 3c 20 | 31 29 0d 09 7b 0d 09 09 |Index < |1)..{...|
|00000f40| 69 6e 41 74 49 6e 64 65 | 78 20 3d 20 31 3b 0d 09 |inAtInde|x = 1;..|
|00000f50| 7d 0d 09 0d 09 49 6e 74 | 65 72 6e 61 6c 49 6e 73 |}....Int|ernalIns|
|00000f60| 65 72 74 49 74 65 6d 73 | 41 74 28 69 6e 43 6f 75 |ertItems|At(inCou|
|00000f70| 6e 74 2c 20 69 6e 41 74 | 49 6e 64 65 78 2c 20 69 |nt, inAt|Index, i|
|00000f80| 6e 49 74 65 6d 2c 20 69 | 6e 49 74 65 6d 53 69 7a |nItem, i|nItemSiz|
|00000f90| 65 29 3b 0d 09 09 0d 09 | 6d 49 73 53 6f 72 74 65 |e);.....|mIsSorte|
|00000fa0| 64 20 3d 20 6d 4b 65 65 | 70 53 6f 72 74 65 64 3b |d = mKee|pSorted;|
|00000fb0| 0d 09 0d 09 72 65 74 75 | 72 6e 20 69 6e 41 74 49 |....retu|rn inAtI|
|00000fc0| 6e 64 65 78 3b 0d 7d 0d | 0d 76 6f 69 64 0d 4c 54 |ndex;.}.|.void.LT|
|00000fd0| 65 6d 70 6f 72 61 72 79 | 46 69 6c 65 41 72 72 61 |emporary|FileArra|
|00000fe0| 79 3a 3a 52 65 6d 6f 76 | 65 49 74 65 6d 73 41 74 |y::Remov|eItemsAt|
|00000ff0| 28 0d 09 55 49 6e 74 33 | 32 20 69 6e 43 6f 75 6e |(..UInt3|2 inCoun|
|00001000| 74 2c 0d 09 41 72 72 61 | 79 49 6e 64 65 78 54 20 |t,..Arra|yIndexT |
|00001010| 69 6e 41 74 49 6e 64 65 | 78 29 0d 7b 0d 09 69 66 |inAtInde|x).{..if|
|00001020| 20 28 69 6e 43 6f 75 6e | 74 20 3c 20 31 29 0d 09 | (inCoun|t < 1)..|
|00001030| 7b 0d 09 09 72 65 74 75 | 72 6e 3b 0d 09 7d 0d 0d |{...retu|rn;..}..|
|00001040| 09 69 66 20 28 56 61 6c | 69 64 49 6e 64 65 78 28 |.if (Val|idIndex(|
|00001050| 69 6e 41 74 49 6e 64 65 | 78 29 29 0d 09 7b 0d 09 |inAtInde|x))..{..|
|00001060| 09 69 66 20 28 69 6e 41 | 74 49 6e 64 65 78 20 2b |.if (inA|tIndex +|
|00001070| 20 69 6e 43 6f 75 6e 74 | 20 3e 20 47 65 74 43 6f | inCount| > GetCo|
|00001080| 75 6e 74 28 29 29 0d 09 | 09 7b 0d 09 09 09 69 6e |unt())..|.{....in|
|00001090| 43 6f 75 6e 74 20 3d 20 | 47 65 74 43 6f 75 6e 74 |Count = |GetCount|
|000010a0| 28 29 20 2d 20 69 6e 41 | 74 49 6e 64 65 78 20 2b |() - inA|tIndex +|
|000010b0| 20 31 3b 0d 09 09 7d 0d | 09 09 0d 09 09 66 6f 72 | 1;...}.|.....for|
|000010c0| 20 28 73 68 6f 72 74 20 | 69 20 3d 20 31 3b 20 69 | (short |i = 1; i|
|000010d0| 20 3c 3d 20 69 6e 43 6f | 75 6e 74 3b 20 69 2b 2b | <= inCo|unt; i++|
|000010e0| 29 0d 09 09 7b 0d 09 09 | 09 49 6e 74 65 72 6e 61 |)...{...|.Interna|
|000010f0| 6c 52 65 6d 6f 76 65 49 | 74 65 6d 41 74 28 69 6e |lRemoveI|temAt(in|
|00001100| 41 74 49 6e 64 65 78 29 | 3b 0d 09 09 7d 0d 09 7d |AtIndex)|;...}..}|
|00001110| 0d 7d 0d 0d 76 6f 69 64 | 0d 4c 54 65 6d 70 6f 72 |.}..void|.LTempor|
|00001120| 61 72 79 46 69 6c 65 41 | 72 72 61 79 3a 3a 52 65 |aryFileA|rray::Re|
|00001130| 6d 6f 76 65 41 6c 6c 49 | 74 65 6d 73 41 66 74 65 |moveAllI|temsAfte|
|00001140| 72 28 0d 09 41 72 72 61 | 79 49 6e 64 65 78 54 20 |r(..Arra|yIndexT |
|00001150| 69 6e 41 66 74 65 72 49 | 6e 64 65 78 29 0d 7b 0d |inAfterI|ndex).{.|
|00001160| 09 52 65 6d 6f 76 65 49 | 74 65 6d 73 41 74 28 49 |.RemoveI|temsAt(I|
|00001170| 6e 74 65 72 6e 61 6c 47 | 65 74 43 6f 75 6e 74 28 |nternalG|etCount(|
|00001180| 29 20 2d 20 69 6e 41 66 | 74 65 72 49 6e 64 65 78 |) - inAf|terIndex|
|00001190| 2c 20 69 6e 41 66 74 65 | 72 49 6e 64 65 78 20 2b |, inAfte|rIndex +|
|000011a0| 20 31 29 3b 0d 7d 0d 0d | 41 72 72 61 79 49 6e 64 | 1);.}..|ArrayInd|
|000011b0| 65 78 54 0d 4c 54 65 6d | 70 6f 72 61 72 79 46 69 |exT.LTem|poraryFi|
|000011c0| 6c 65 41 72 72 61 79 3a | 3a 41 73 73 69 67 6e 49 |leArray:|:AssignI|
|000011d0| 74 65 6d 73 41 74 28 0d | 09 55 49 6e 74 33 32 20 |temsAt(.|.UInt32 |
|000011e0| 69 6e 43 6f 75 6e 74 2c | 0d 09 41 72 72 61 79 49 |inCount,|..ArrayI|
|000011f0| 6e 64 65 78 54 20 69 6e | 41 74 49 6e 64 65 78 2c |ndexT in|AtIndex,|
|00001200| 0d 09 63 6f 6e 73 74 20 | 76 6f 69 64 20 2a 69 6e |..const |void *in|
|00001210| 56 61 6c 75 65 2c 0d 09 | 41 72 72 61 79 49 74 65 |Value,..|ArrayIte|
|00001220| 6d 53 69 7a 65 54 20 69 | 6e 49 74 65 6d 53 69 7a |mSizeT i|nItemSiz|
|00001230| 65 29 0d 7b 0d 09 69 66 | 20 28 56 61 6c 69 64 49 |e).{..if| (ValidI|
|00001240| 6e 64 65 78 28 69 6e 41 | 74 49 6e 64 65 78 29 20 |ndex(inA|tIndex) |
|00001250| 61 6e 64 28 69 6e 43 6f | 75 6e 74 20 3e 20 30 29 |and(inCo|unt > 0)|
|00001260| 29 0d 09 7b 0d 09 09 52 | 65 6d 6f 76 65 49 74 65 |)..{...R|emoveIte|
|00001270| 6d 73 41 74 28 69 6e 43 | 6f 75 6e 74 2c 20 69 6e |msAt(inC|ount, in|
|00001280| 41 74 49 6e 64 65 78 29 | 3b 0d 09 09 69 6e 41 74 |AtIndex)|;...inAt|
|00001290| 49 6e 64 65 78 20 3d 20 | 49 6e 73 65 72 74 49 74 |Index = |InsertIt|
|000012a0| 65 6d 73 41 74 28 69 6e | 43 6f 75 6e 74 2c 20 69 |emsAt(in|Count, i|
|000012b0| 6e 41 74 49 6e 64 65 78 | 2c 20 69 6e 56 61 6c 75 |nAtIndex|, inValu|
|000012c0| 65 2c 20 69 6e 49 74 65 | 6d 53 69 7a 65 29 3b 0d |e, inIte|mSize);.|
|000012d0| 09 7d 0d 09 65 6c 73 65 | 0d 09 7b 0d 09 09 69 6e |.}..else|..{...in|
|000012e0| 41 74 49 6e 64 65 78 20 | 3d 20 69 6e 64 65 78 5f |AtIndex |= index_|
|000012f0| 42 61 64 3b 0d 09 7d 0d | 09 0d 09 72 65 74 75 72 |Bad;..}.|...retur|
|00001300| 6e 20 69 6e 41 74 49 6e | 64 65 78 3b 0d 7d 0d 0d |n inAtIn|dex;.}..|
|00001310| 76 6f 69 64 0d 4c 54 65 | 6d 70 6f 72 61 72 79 46 |void.LTe|mporaryF|
|00001320| 69 6c 65 41 72 72 61 79 | 3a 3a 53 77 61 70 49 74 |ileArray|::SwapIt|
|00001330| 65 6d 73 28 0d 09 41 72 | 72 61 79 49 6e 64 65 78 |ems(..Ar|rayIndex|
|00001340| 54 20 69 6e 49 6e 64 65 | 78 41 2c 0d 09 41 72 72 |T inInde|xA,..Arr|
|00001350| 61 79 49 6e 64 65 78 54 | 20 69 6e 49 6e 64 65 78 |ayIndexT| inIndex|
|00001360| 42 29 0d 7b 0d 09 69 66 | 20 28 21 6d 4b 65 65 70 |B).{..if| (!mKeep|
|00001370| 53 6f 72 74 65 64 20 61 | 6e 64 20 56 61 6c 69 64 |Sorted a|nd Valid|
|00001380| 49 6e 64 65 78 28 69 6e | 49 6e 64 65 78 41 29 20 |Index(in|IndexA) |
|00001390| 61 6e 64 20 56 61 6c 69 | 64 49 6e 64 65 78 28 69 |and Vali|dIndex(i|
|000013a0| 6e 49 6e 64 65 78 42 29 | 29 0d 09 7b 0d 09 09 41 |nIndexB)|)..{...A|
|000013b0| 72 72 61 79 49 74 65 6d | 53 69 7a 65 54 09 73 69 |rrayItem|SizeT.si|
|000013c0| 7a 65 41 20 3d 20 47 65 | 74 49 74 65 6d 53 69 7a |zeA = Ge|tItemSiz|
|000013d0| 65 28 69 6e 49 6e 64 65 | 78 41 29 3b 0d 09 09 41 |e(inInde|xA);...A|
|000013e0| 72 72 61 79 49 74 65 6d | 53 69 7a 65 54 09 73 69 |rrayItem|SizeT.si|
|000013f0| 7a 65 42 20 3d 20 47 65 | 74 49 74 65 6d 53 69 7a |zeB = Ge|tItemSiz|
|00001400| 65 28 69 6e 49 6e 64 65 | 78 42 29 3b 0d 09 09 09 |e(inInde|xB);....|
|00001410| 09 0d 09 09 50 74 72 09 | 09 61 50 74 72 20 3d 20 |....Ptr.|.aPtr = |
|00001420| 3a 3a 4e 65 77 50 74 72 | 28 73 69 7a 65 41 29 3b |::NewPtr|(sizeA);|
|00001430| 0d 09 09 54 68 72 6f 77 | 49 66 4d 65 6d 45 72 72 |...Throw|IfMemErr|
|00001440| 6f 72 5f 28 29 3b 0d 09 | 09 46 65 74 63 68 49 74 |or_();..|.FetchIt|
|00001450| 65 6d 41 74 28 69 6e 49 | 6e 64 65 78 41 2c 20 61 |emAt(inI|ndexA, a|
|00001460| 50 74 72 29 3b 09 0d 09 | 09 0d 09 09 50 74 72 09 |Ptr);...|....Ptr.|
|00001470| 09 62 50 74 72 20 3d 20 | 3a 3a 4e 65 77 50 74 72 |.bPtr = |::NewPtr|
|00001480| 28 73 69 7a 65 42 29 3b | 0d 09 09 54 68 72 6f 77 |(sizeB);|...Throw|
|00001490| 49 66 4d 65 6d 45 72 72 | 6f 72 5f 28 29 3b 0d 09 |IfMemErr|or_();..|
|000014a0| 09 46 65 74 63 68 49 74 | 65 6d 41 74 28 69 6e 49 |.FetchIt|emAt(inI|
|000014b0| 6e 64 65 78 42 2c 20 62 | 50 74 72 29 3b 0d 09 09 |ndexB, b|Ptr);...|
|000014c0| 0d 09 09 49 6e 74 65 72 | 6e 61 6c 52 65 6d 6f 76 |...Inter|nalRemov|
|000014d0| 65 49 74 65 6d 41 74 28 | 69 6e 49 6e 64 65 78 41 |eItemAt(|inIndexA|
|000014e0| 29 3b 0d 09 09 49 6e 74 | 65 72 6e 61 6c 49 6e 73 |);...Int|ernalIns|
|000014f0| 65 72 74 49 74 65 6d 73 | 41 74 28 31 2c 20 69 6e |ertItems|At(1, in|
|00001500| 49 6e 64 65 78 41 2c 20 | 62 50 74 72 2c 20 73 69 |IndexA, |bPtr, si|
|00001510| 7a 65 42 29 3b 0d 09 09 | 0d 09 09 49 6e 74 65 72 |zeB);...|...Inter|
|00001520| 6e 61 6c 52 65 6d 6f 76 | 65 49 74 65 6d 41 74 28 |nalRemov|eItemAt(|
|00001530| 69 6e 49 6e 64 65 78 42 | 29 3b 0d 09 09 49 6e 74 |inIndexB|);...Int|
|00001540| 65 72 6e 61 6c 49 6e 73 | 65 72 74 49 74 65 6d 73 |ernalIns|ertItems|
|00001550| 41 74 28 31 2c 20 69 6e | 49 6e 64 65 78 42 2c 20 |At(1, in|IndexB, |
|00001560| 61 50 74 72 2c 20 73 69 | 7a 65 41 29 3b 0d 09 0d |aPtr, si|zeA);...|
|00001570| 09 09 3a 3a 44 69 73 70 | 6f 73 65 50 74 72 28 61 |..::Disp|osePtr(a|
|00001580| 50 74 72 29 3b 0d 09 09 | 3a 3a 44 69 73 70 6f 73 |Ptr);...|::Dispos|
|00001590| 65 50 74 72 28 62 50 74 | 72 29 3b 0d 09 0d 09 09 |ePtr(bPt|r);.....|
|000015a0| 6d 49 73 53 6f 72 74 65 | 64 20 3d 20 66 61 6c 73 |mIsSorte|d = fals|
|000015b0| 65 3b 0d 09 7d 0d 7d 0d | 0d 76 6f 69 64 0d 4c 54 |e;..}.}.|.void.LT|
|000015c0| 65 6d 70 6f 72 61 72 79 | 46 69 6c 65 41 72 72 61 |emporary|FileArra|
|000015d0| 79 3a 3a 4d 6f 76 65 49 | 74 65 6d 28 0d 09 41 72 |y::MoveI|tem(..Ar|
|000015e0| 72 61 79 49 6e 64 65 78 | 54 20 69 6e 46 72 6f 6d |rayIndex|T inFrom|
|000015f0| 49 6e 64 65 78 2c 0d 09 | 41 72 72 61 79 49 6e 64 |Index,..|ArrayInd|
|00001600| 65 78 54 20 69 6e 54 6f | 49 6e 64 65 78 29 0d 7b |exT inTo|Index).{|
|00001610| 0d 09 69 66 20 28 21 6d | 4b 65 65 70 53 6f 72 74 |..if (!m|KeepSort|
|00001620| 65 64 20 61 6e 64 20 56 | 61 6c 69 64 49 6e 64 65 |ed and V|alidInde|
|00001630| 78 28 69 6e 46 72 6f 6d | 49 6e 64 65 78 29 20 61 |x(inFrom|Index) a|
|00001640| 6e 64 20 56 61 6c 69 64 | 49 6e 64 65 78 28 69 6e |nd Valid|Index(in|
|00001650| 54 6f 49 6e 64 65 78 29 | 20 61 6e 64 28 69 6e 46 |ToIndex)| and(inF|
|00001660| 72 6f 6d 49 6e 64 65 78 | 20 21 3d 20 69 6e 54 6f |romIndex| != inTo|
|00001670| 49 6e 64 65 78 29 29 0d | 09 7b 0d 09 09 41 72 72 |Index)).|.{...Arr|
|00001680| 61 79 49 74 65 6d 53 69 | 7a 65 54 09 73 69 7a 65 |ayItemSi|zeT.size|
|00001690| 20 3d 20 47 65 74 49 74 | 65 6d 53 69 7a 65 28 69 | = GetIt|emSize(i|
|000016a0| 6e 46 72 6f 6d 49 6e 64 | 65 78 29 3b 0d 09 09 0d |nFromInd|ex);....|
|000016b0| 09 09 50 74 72 09 09 69 | 74 65 6d 50 74 72 20 3d |..Ptr..i|temPtr =|
|000016c0| 20 3a 3a 4e 65 77 50 74 | 72 28 73 69 7a 65 29 3b | ::NewPt|r(size);|
|000016d0| 0d 09 09 54 68 72 6f 77 | 49 66 4d 65 6d 45 72 72 |...Throw|IfMemErr|
|000016e0| 6f 72 5f 28 29 3b 0d 09 | 09 0d 09 09 46 65 74 63 |or_();..|....Fetc|
|000016f0| 68 49 74 65 6d 41 74 28 | 69 6e 46 72 6f 6d 49 6e |hItemAt(|inFromIn|
|00001700| 64 65 78 2c 20 69 74 65 | 6d 50 74 72 29 3b 0d 09 |dex, ite|mPtr);..|
|00001710| 09 49 6e 74 65 72 6e 61 | 6c 49 6e 73 65 72 74 49 |.Interna|lInsertI|
|00001720| 74 65 6d 73 41 74 28 31 | 2c 20 69 6e 54 6f 49 6e |temsAt(1|, inToIn|
|00001730| 64 65 78 2c 20 69 74 65 | 6d 50 74 72 2c 20 73 69 |dex, ite|mPtr, si|
|00001740| 7a 65 29 3b 0d 09 09 49 | 6e 74 65 72 6e 61 6c 52 |ze);...I|nternalR|
|00001750| 65 6d 6f 76 65 49 74 65 | 6d 41 74 28 69 6e 46 72 |emoveIte|mAt(inFr|
|00001760| 6f 6d 49 6e 64 65 78 29 | 3b 0d 09 09 0d 09 09 3a |omIndex)|;......:|
|00001770| 3a 44 69 73 70 6f 73 65 | 50 74 72 28 69 74 65 6d |:Dispose|Ptr(item|
|00001780| 50 74 72 29 3b 0d 09 0d | 09 09 6d 49 73 53 6f 72 |Ptr);...|..mIsSor|
|00001790| 74 65 64 20 3d 20 66 61 | 6c 73 65 3b 0d 09 7d 0d |ted = fa|lse;..}.|
|000017a0| 7d 0d 0d 76 6f 69 64 0d | 4c 54 65 6d 70 6f 72 61 |}..void.|LTempora|
|000017b0| 72 79 46 69 6c 65 41 72 | 72 61 79 3a 3a 52 65 6d |ryFileAr|ray::Rem|
|000017c0| 6f 76 65 28 0d 09 63 6f | 6e 73 74 20 76 6f 69 64 |ove(..co|nst void|
|000017d0| 20 2a 69 6e 49 74 65 6d | 2c 0d 09 41 72 72 61 79 | *inItem|,..Array|
|000017e0| 49 74 65 6d 53 69 7a 65 | 54 20 69 6e 49 74 65 6d |ItemSize|T inItem|
|000017f0| 53 69 7a 65 29 0d 7b 0d | 09 41 72 72 61 79 49 6e |Size).{.|.ArrayIn|
|00001800| 64 65 78 54 09 69 6e 64 | 65 78 20 3d 20 46 65 74 |dexT.ind|ex = Fet|
|00001810| 63 68 49 6e 64 65 78 4f | 66 28 69 6e 49 74 65 6d |chIndexO|f(inItem|
|00001820| 2c 20 69 6e 49 74 65 6d | 53 69 7a 65 29 3b 0d 09 |, inItem|Size);..|
|00001830| 0d 09 69 66 20 28 69 6e | 64 65 78 20 21 3d 20 69 |..if (in|dex != i|
|00001840| 6e 64 65 78 5f 42 61 64 | 29 0d 09 7b 0d 09 09 49 |ndex_Bad|)..{...I|
|00001850| 6e 74 65 72 6e 61 6c 52 | 65 6d 6f 76 65 49 74 65 |nternalR|emoveIte|
|00001860| 6d 41 74 28 69 6e 64 65 | 78 29 3b 0d 09 7d 0d 7d |mAt(inde|x);..}.}|
|00001870| 0d 0d 23 70 72 61 67 6d | 61 20 6d 61 72 6b 20 2d |..#pragm|a mark -|
|00001880| 0d 0d 76 6f 69 64 0d 4c | 54 65 6d 70 6f 72 61 72 |..void.L|Temporar|
|00001890| 79 46 69 6c 65 41 72 72 | 61 79 3a 3a 53 6f 72 74 |yFileArr|ay::Sort|
|000018a0| 28 29 0d 7b 0d 09 41 72 | 72 61 79 49 6e 64 65 78 |().{..Ar|rayIndex|
|000018b0| 54 09 09 69 74 65 6d 43 | 6f 75 6e 74 20 3d 20 47 |T..itemC|ount = G|
|000018c0| 65 74 43 6f 75 6e 74 28 | 29 3b 0d 0d 09 69 66 20 |etCount(|);...if |
|000018d0| 28 21 6d 49 73 53 6f 72 | 74 65 64 20 61 6e 64 28 |(!mIsSor|ted and(|
|000018e0| 69 74 65 6d 43 6f 75 6e | 74 20 3e 20 31 29 29 0d |itemCoun|t > 1)).|
|000018f0| 09 7b 0d 09 09 2f 2f 20 | 53 68 65 6c 6c 73 6f 72 |.{...// |Shellsor|
|00001900| 74 20 41 6c 67 6f 72 69 | 74 68 6d 0d 09 09 0d 09 |t Algori|thm.....|
|00001910| 09 53 49 6e 74 33 32 09 | 68 68 20 3d 20 31 3b 0d |.SInt32.|hh = 1;.|
|00001920| 09 09 53 49 6e 74 33 32 | 09 73 74 6f 70 48 20 3d |..SInt32|.stopH =|
|00001930| 20 28 53 49 6e 74 33 32 | 29 20 69 74 65 6d 43 6f | (SInt32|) itemCo|
|00001940| 75 6e 74 20 2f 20 39 3b | 0d 09 09 0d 09 09 77 68 |unt / 9;|......wh|
|00001950| 69 6c 65 20 28 68 68 20 | 3c 20 73 74 6f 70 48 29 |ile (hh |< stopH)|
|00001960| 0d 09 09 7b 0d 09 09 09 | 68 68 20 3d 20 33 20 2a |...{....|hh = 3 *|
|00001970| 20 68 68 20 2b 20 31 3b | 0d 09 09 7d 0d 09 09 09 | hh + 1;|...}....|
|00001980| 09 0d 09 09 66 6f 72 20 | 28 20 3b 20 68 68 20 3e |....for |( ; hh >|
|00001990| 20 30 3b 20 68 68 20 2f | 3d 20 33 29 0d 09 09 7b | 0; hh /|= 3)...{|
|000019a0| 09 09 0d 09 09 09 66 6f | 72 20 28 53 49 6e 74 33 |......fo|r (SInt3|
|000019b0| 32 20 73 74 65 70 20 3d | 20 68 68 20 2b 20 31 3b |2 step =| hh + 1;|
|000019c0| 20 73 74 65 70 20 3c 3d | 20 69 74 65 6d 43 6f 75 | step <=| itemCou|
|000019d0| 6e 74 3b 20 73 74 65 70 | 2b 2b 29 0d 09 09 09 7b |nt; step|++)....{|
|000019e0| 0d 09 09 09 09 41 72 72 | 61 79 49 74 65 6d 53 69 |.....Arr|ayItemSi|
|000019f0| 7a 65 54 09 73 74 65 70 | 53 69 7a 65 20 3d 20 47 |zeT.step|Size = G|
|00001a00| 65 74 49 74 65 6d 53 69 | 7a 65 28 73 74 65 70 29 |etItemSi|ze(step)|
|00001a10| 3b 0d 09 09 09 09 50 74 | 72 09 09 09 09 73 74 65 |;.....Pt|r....ste|
|00001a20| 70 42 75 66 66 65 72 20 | 3d 20 3a 3a 4e 65 77 50 |pBuffer |= ::NewP|
|00001a30| 74 72 28 73 74 65 70 53 | 69 7a 65 29 3b 0d 09 09 |tr(stepS|ize);...|
|00001a40| 09 09 54 68 72 6f 77 49 | 66 4d 65 6d 45 72 72 6f |..ThrowI|fMemErro|
|00001a50| 72 5f 28 29 3b 0d 09 09 | 09 0d 09 09 09 09 46 65 |r_();...|......Fe|
|00001a60| 74 63 68 49 74 65 6d 41 | 74 28 73 74 65 70 2c 20 |tchItemA|t(step, |
|00001a70| 73 74 65 70 42 75 66 66 | 65 72 29 3b 0d 09 09 09 |stepBuff|er);....|
|00001a80| 09 0d 09 09 09 09 53 49 | 6e 74 33 32 09 69 3b 0d |......SI|nt32.i;.|
|00001a90| 09 09 09 09 0d 09 09 09 | 09 66 6f 72 20 28 69 20 |........|.for (i |
|00001aa0| 3d 20 73 74 65 70 20 2d | 20 68 68 3b 20 69 20 3e |= step -| hh; i >|
|00001ab0| 20 30 3b 20 69 20 2d 3d | 20 68 68 29 0d 09 09 09 | 0; i -=| hh)....|
|00001ac0| 09 7b 0d 09 09 09 09 09 | 41 72 72 61 79 49 74 65 |.{......|ArrayIte|
|00001ad0| 6d 53 69 7a 65 54 09 69 | 53 69 7a 65 20 3d 20 47 |mSizeT.i|Size = G|
|00001ae0| 65 74 49 74 65 6d 53 69 | 7a 65 28 69 29 3b 0d 09 |etItemSi|ze(i);..|
|00001af0| 09 09 09 09 50 74 72 09 | 09 09 09 69 50 74 72 20 |....Ptr.|...iPtr |
|00001b00| 3d 20 3a 3a 4e 65 77 50 | 74 72 28 69 53 69 7a 65 |= ::NewP|tr(iSize|
|00001b10| 29 3b 0d 09 09 09 09 09 | 54 68 72 6f 77 49 66 4d |);......|ThrowIfM|
|00001b20| 65 6d 45 72 72 6f 72 5f | 28 29 3b 0d 09 09 09 09 |emError_|();.....|
|00001b30| 09 0d 09 09 09 09 09 46 | 65 74 63 68 49 74 65 6d |.......F|etchItem|
|00001b40| 41 74 28 69 2c 20 69 50 | 74 72 29 3b 0d 09 09 09 |At(i, iP|tr);....|
|00001b50| 09 09 0d 09 09 09 09 09 | 69 66 20 28 6d 43 6f 6d |........|if (mCom|
|00001b60| 70 61 72 61 74 6f 72 2d | 3e 43 6f 6d 70 61 72 65 |parator-|>Compare|
|00001b70| 28 73 74 65 70 42 75 66 | 66 65 72 2c 20 69 50 74 |(stepBuf|fer, iPt|
|00001b80| 72 2c 20 73 74 65 70 53 | 69 7a 65 2c 20 69 53 69 |r, stepS|ize, iSi|
|00001b90| 7a 65 29 20 3e 3d 20 30 | 29 0d 09 09 09 09 09 7b |ze) >= 0|)......{|
|00001ba0| 0d 09 09 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |.......b|reak;...|
|00001bb0| 09 09 09 7d 0d 09 09 09 | 09 09 0d 09 09 09 09 09 |...}....|........|
|00001bc0| 49 6e 74 65 72 6e 61 6c | 49 6e 73 65 72 74 49 74 |Internal|InsertIt|
|00001bd0| 65 6d 73 41 74 28 31 2c | 20 69 20 2b 20 68 68 2c |emsAt(1,| i + hh,|
|00001be0| 20 69 50 74 72 2c 20 69 | 53 69 7a 65 29 3b 0d 09 | iPtr, i|Size);..|
|00001bf0| 09 09 09 09 0d 09 09 09 | 09 09 3a 3a 44 69 73 70 |........|..::Disp|
|00001c00| 6f 73 65 50 74 72 28 69 | 50 74 72 29 3b 0d 09 09 |osePtr(i|Ptr);...|
|00001c10| 09 09 7d 0d 09 09 09 09 | 0d 09 09 09 09 49 6e 74 |..}.....|.....Int|
|00001c20| 65 72 6e 61 6c 49 6e 73 | 65 72 74 49 74 65 6d 73 |ernalIns|ertItems|
|00001c30| 41 74 28 31 2c 20 69 20 | 2b 20 68 68 2c 20 73 74 |At(1, i |+ hh, st|
|00001c40| 65 70 42 75 66 66 65 72 | 2c 20 73 74 65 70 53 69 |epBuffer|, stepSi|
|00001c50| 7a 65 29 3b 0d 09 09 09 | 09 0d 09 09 09 09 3a 3a |ze);....|......::|
|00001c60| 44 69 73 70 6f 73 65 50 | 74 72 28 73 74 65 70 42 |DisposeP|tr(stepB|
|00001c70| 75 66 66 65 72 29 3b 0d | 09 09 09 7d 0d 09 09 7d |uffer);.|...}...}|
|00001c80| 0d 09 7d 0d 09 0d 09 6d | 49 73 53 6f 72 74 65 64 |..}....m|IsSorted|
|00001c90| 20 3d 20 74 72 75 65 3b | 0d 7d 0d 0d 76 6f 69 64 | = true;|.}..void|
|00001ca0| 0d 4c 54 65 6d 70 6f 72 | 61 72 79 46 69 6c 65 41 |.LTempor|aryFileA|
|00001cb0| 72 72 61 79 3a 3a 53 65 | 74 4b 65 65 70 53 6f 72 |rray::Se|tKeepSor|
|00001cc0| 74 65 64 28 0d 09 42 6f | 6f 6c 65 61 6e 20 69 6e |ted(..Bo|olean in|
|00001cd0| 4b 65 65 70 53 6f 72 74 | 65 64 29 0d 7b 0d 09 6d |KeepSort|ed).{..m|
|00001ce0| 4b 65 65 70 53 6f 72 74 | 65 64 20 3d 20 69 6e 4b |KeepSort|ed = inK|
|00001cf0| 65 65 70 53 6f 72 74 65 | 64 3b 0d 09 0d 09 69 66 |eepSorte|d;....if|
|00001d00| 20 28 69 6e 4b 65 65 70 | 53 6f 72 74 65 64 29 0d | (inKeep|Sorted).|
|00001d10| 09 7b 0d 09 09 53 6f 72 | 74 28 29 3b 0d 09 7d 0d |.{...Sor|t();..}.|
|00001d20| 7d 0d 0d 76 6f 69 64 0d | 4c 54 65 6d 70 6f 72 61 |}..void.|LTempora|
|00001d30| 72 79 46 69 6c 65 41 72 | 72 61 79 3a 3a 53 65 74 |ryFileAr|ray::Set|
|00001d40| 43 6f 6d 70 61 72 61 74 | 6f 72 28 0d 09 4c 43 6f |Comparat|or(..LCo|
|00001d50| 6d 70 61 72 61 74 6f 72 | 20 2a 69 6e 43 6f 6d 70 |mparator| *inComp|
|00001d60| 61 72 61 74 6f 72 2c 0d | 09 42 6f 6f 6c 65 61 6e |arator,.|.Boolean|
|00001d70| 20 69 6e 54 61 6b 65 4f | 77 6e 65 72 73 68 69 70 | inTakeO|wnership|
|00001d80| 29 0d 7b 0d 09 69 66 20 | 28 69 6e 43 6f 6d 70 61 |).{..if |(inCompa|
|00001d90| 72 61 74 6f 72 20 3d 3d | 20 6e 69 6c 29 0d 09 7b |rator ==| nil)..{|
|00001da0| 0d 09 09 53 69 67 6e 61 | 6c 50 53 74 72 5f 28 22 |...Signa|lPStr_("|
|00001db0| 5c 70 4e 69 6c 20 43 6f | 6d 70 61 72 61 74 6f 72 |\pNil Co|mparator|
|00001dc0| 20 6e 6f 74 20 61 6c 6c | 6f 77 65 64 22 29 3b 0d | not all|owed");.|
|00001dd0| 09 09 72 65 74 75 72 6e | 3b 0d 09 7d 0d 09 0d 09 |..return|;..}....|
|00001de0| 69 66 20 28 6d 4f 77 6e | 73 43 6f 6d 70 61 72 61 |if (mOwn|sCompara|
|00001df0| 74 6f 72 29 0d 09 7b 0d | 09 09 64 65 6c 65 74 65 |tor)..{.|..delete|
|00001e00| 20 6d 43 6f 6d 70 61 72 | 61 74 6f 72 3b 0d 09 7d | mCompar|ator;..}|
|00001e10| 0d 09 0d 09 6d 43 6f 6d | 70 61 72 61 74 6f 72 20 |....mCom|parator |
|00001e20| 3d 20 69 6e 43 6f 6d 70 | 61 72 61 74 6f 72 3b 0d |= inComp|arator;.|
|00001e30| 09 6d 4f 77 6e 73 43 6f | 6d 70 61 72 61 74 6f 72 |.mOwnsCo|mparator|
|00001e40| 20 3d 20 69 6e 54 61 6b | 65 4f 77 6e 65 72 73 68 | = inTak|eOwnersh|
|00001e50| 69 70 3b 0d 09 0d 09 69 | 66 20 28 47 65 74 43 6f |ip;....i|f (GetCo|
|00001e60| 75 6e 74 28 29 20 3e 20 | 31 29 0d 09 7b 0d 09 09 |unt() > |1)..{...|
|00001e70| 6d 49 73 53 6f 72 74 65 | 64 20 3d 20 66 61 6c 73 |mIsSorte|d = fals|
|00001e80| 65 3b 0d 09 7d 0d 09 0d | 09 69 66 20 28 6d 4b 65 |e;..}...|.if (mKe|
|00001e90| 65 70 53 6f 72 74 65 64 | 29 0d 09 7b 0d 09 09 53 |epSorted|)..{...S|
|00001ea0| 6f 72 74 28 29 3b 0d 09 | 7d 0d 7d 0d 0d 41 72 72 |ort();..|}.}..Arr|
|00001eb0| 61 79 49 6e 64 65 78 54 | 0d 4c 54 65 6d 70 6f 72 |ayIndexT|.LTempor|
|00001ec0| 61 72 79 46 69 6c 65 41 | 72 72 61 79 3a 3a 46 65 |aryFileA|rray::Fe|
|00001ed0| 74 63 68 49 6e 64 65 78 | 4f 66 4b 65 79 28 0d 09 |tchIndex|OfKey(..|
|00001ee0| 63 6f 6e 73 74 20 76 6f | 69 64 20 2a 69 6e 4b 65 |const vo|id *inKe|
|00001ef0| 79 29 0d 7b 0d 09 41 72 | 72 61 79 49 6e 64 65 78 |y).{..Ar|rayIndex|
|00001f00| 54 09 69 6e 64 65 78 20 | 3d 20 69 6e 64 65 78 5f |T.index |= index_|
|00001f10| 42 61 64 3b 0d 09 0d 09 | 69 66 20 28 47 65 74 43 |Bad;....|if (GetC|
|00001f20| 6f 75 6e 74 28 29 20 3e | 20 30 29 0d 09 7b 0d 09 |ount() >| 0)..{..|
|00001f30| 09 69 66 20 28 6d 49 73 | 53 6f 72 74 65 64 29 0d |.if (mIs|Sorted).|
|00001f40| 09 09 7b 0d 09 09 09 69 | 6e 64 65 78 20 3d 20 42 |..{....i|ndex = B|
|00001f50| 69 6e 61 72 79 53 65 61 | 72 63 68 42 79 4b 65 79 |inarySea|rchByKey|
|00001f60| 28 69 6e 4b 65 79 29 3b | 0d 09 09 7d 0d 09 09 65 |(inKey);|...}...e|
|00001f70| 6c 73 65 0d 09 09 7b 0d | 09 09 09 69 6e 64 65 78 |lse...{.|...index|
|00001f80| 20 3d 20 4c 69 6e 65 61 | 72 53 65 61 72 63 68 42 | = Linea|rSearchB|
|00001f90| 79 4b 65 79 28 69 6e 4b | 65 79 29 3b 0d 09 09 7d |yKey(inK|ey);...}|
|00001fa0| 0d 09 7d 0d 09 0d 09 72 | 65 74 75 72 6e 20 69 6e |..}....r|eturn in|
|00001fb0| 64 65 78 3b 0d 7d 0d 0d | 41 72 72 61 79 49 6e 64 |dex;.}..|ArrayInd|
|00001fc0| 65 78 54 0d 4c 54 65 6d | 70 6f 72 61 72 79 46 69 |exT.LTem|poraryFi|
|00001fd0| 6c 65 41 72 72 61 79 3a | 3a 46 65 74 63 68 49 6e |leArray:|:FetchIn|
|00001fe0| 73 65 72 74 49 6e 64 65 | 78 4f 66 28 0d 09 63 6f |sertInde|xOf(..co|
|00001ff0| 6e 73 74 20 76 6f 69 64 | 20 2a 69 6e 49 74 65 6d |nst void| *inItem|
|00002000| 2c 0d 09 41 72 72 61 79 | 49 74 65 6d 53 69 7a 65 |,..Array|ItemSize|
|00002010| 54 20 69 6e 49 74 65 6d | 53 69 7a 65 29 0d 7b 0d |T inItem|Size).{.|
|00002020| 09 41 72 72 61 79 49 6e | 64 65 78 54 09 09 63 75 |.ArrayIn|dexT..cu|
|00002030| 72 72 65 6e 74 20 3d 20 | 69 6e 64 65 78 5f 4c 61 |rrent = |index_La|
|00002040| 73 74 3b 0d 09 0d 09 69 | 66 20 28 6d 49 73 53 6f |st;....i|f (mIsSo|
|00002050| 72 74 65 64 20 61 6e 64 | 28 69 6e 49 74 65 6d 20 |rted and|(inItem |
|00002060| 21 3d 20 6e 69 6c 29 29 | 0d 09 7b 0d 09 09 69 66 |!= nil))|..{...if|
|00002070| 20 28 69 6e 49 74 65 6d | 53 69 7a 65 20 3d 3d 20 | (inItem|Size == |
|00002080| 30 29 0d 09 09 7b 0d 09 | 09 09 69 6e 49 74 65 6d |0)...{..|..inItem|
|00002090| 53 69 7a 65 20 3d 20 6d | 49 74 65 6d 53 69 7a 65 |Size = m|ItemSize|
|000020a0| 3b 0d 09 09 7d 0d 09 09 | 0d 09 09 41 72 72 61 79 |;...}...|...Array|
|000020b0| 49 6e 64 65 78 54 09 09 | 6c 65 66 74 20 3d 20 31 |IndexT..|left = 1|
|000020c0| 3b 0d 09 09 41 72 72 61 | 79 49 6e 64 65 78 54 09 |;...Arra|yIndexT.|
|000020d0| 09 72 69 67 68 74 20 3d | 20 47 65 74 43 6f 75 6e |.right =| GetCoun|
|000020e0| 74 28 29 3b 0d 09 09 53 | 49 6e 74 33 32 09 09 09 |t();...S|Int32...|
|000020f0| 63 6f 6d 70 61 72 69 73 | 6f 6e 20 3d 20 30 3b 0d |comparis|on = 0;.|
|00002100| 09 09 0d 09 09 63 75 72 | 72 65 6e 74 20 3d 20 31 |.....cur|rent = 1|
|00002110| 3b 0d 09 09 09 09 0d 09 | 09 77 68 69 6c 65 20 28 |;.......|.while (|
|00002120| 6c 65 66 74 20 3c 3d 20 | 72 69 67 68 74 29 0d 09 |left <= |right)..|
|00002130| 09 7b 0d 09 09 09 63 75 | 72 72 65 6e 74 20 3d 20 |.{....cu|rrent = |
|00002140| 28 6c 65 66 74 20 2b 20 | 72 69 67 68 74 29 20 2f |(left + |right) /|
|00002150| 20 32 3b 0d 09 09 09 0d | 09 09 09 41 72 72 61 79 | 2;.....|...Array|
|00002160| 49 74 65 6d 53 69 7a 65 | 54 09 63 75 72 72 65 6e |ItemSize|T.curren|
|00002170| 74 53 69 7a 65 20 3d 20 | 47 65 74 49 74 65 6d 53 |tSize = |GetItemS|
|00002180| 69 7a 65 28 63 75 72 72 | 65 6e 74 29 3b 0d 09 09 |ize(curr|ent);...|
|00002190| 09 50 74 72 09 09 09 09 | 63 75 72 72 65 6e 74 50 |.Ptr....|currentP|
|000021a0| 74 72 20 3d 20 3a 3a 4e | 65 77 50 74 72 28 63 75 |tr = ::N|ewPtr(cu|
|000021b0| 72 72 65 6e 74 53 69 7a | 65 29 3b 0d 09 09 09 54 |rrentSiz|e);....T|
|000021c0| 68 72 6f 77 49 66 4d 65 | 6d 45 72 72 6f 72 5f 28 |hrowIfMe|mError_(|
|000021d0| 29 3b 0d 09 09 09 0d 09 | 09 09 46 65 74 63 68 49 |);......|..FetchI|
|000021e0| 74 65 6d 41 74 28 63 75 | 72 72 65 6e 74 2c 20 63 |temAt(cu|rrent, c|
|000021f0| 75 72 72 65 6e 74 50 74 | 72 29 3b 0d 09 09 09 0d |urrentPt|r);.....|
|00002200| 09 09 09 63 6f 6d 70 61 | 72 69 73 6f 6e 20 3d 20 |...compa|rison = |
|00002210| 6d 43 6f 6d 70 61 72 61 | 74 6f 72 2d 3e 43 6f 6d |mCompara|tor->Com|
|00002220| 70 61 72 65 28 63 75 72 | 72 65 6e 74 50 74 72 2c |pare(cur|rentPtr,|
|00002230| 20 69 6e 49 74 65 6d 2c | 20 63 75 72 72 65 6e 74 | inItem,| current|
|00002240| 53 69 7a 65 2c 20 69 6e | 49 74 65 6d 53 69 7a 65 |Size, in|ItemSize|
|00002250| 29 3b 0d 09 09 09 0d 09 | 09 09 3a 3a 44 69 73 70 |);......|..::Disp|
|00002260| 6f 73 65 50 74 72 28 63 | 75 72 72 65 6e 74 50 74 |osePtr(c|urrentPt|
|00002270| 72 29 3b 0d 09 09 09 0d | 09 09 09 69 66 20 28 63 |r);.....|...if (c|
|00002280| 6f 6d 70 61 72 69 73 6f | 6e 20 3d 3d 20 30 29 0d |ompariso|n == 0).|
|00002290| 09 09 09 7b 0d 09 09 09 | 09 62 72 65 61 6b 3b 0d |...{....|.break;.|
|000022a0| 09 09 09 7d 0d 09 09 09 | 65 6c 73 65 20 69 66 20 |...}....|else if |
|000022b0| 28 63 6f 6d 70 61 72 69 | 73 6f 6e 20 3e 20 30 29 |(compari|son > 0)|
|000022c0| 0d 09 09 09 7b 0d 09 09 | 09 09 72 69 67 68 74 20 |....{...|..right |
|000022d0| 3d 20 63 75 72 72 65 6e | 74 20 2d 20 31 3b 0d 09 |= curren|t - 1;..|
|000022e0| 09 09 7d 20 0d 09 09 09 | 65 6c 73 65 20 0d 09 09 |..} ....|else ...|
|000022f0| 09 7b 0d 09 09 09 09 6c | 65 66 74 20 3d 20 63 75 |.{.....l|eft = cu|
|00002300| 72 72 65 6e 74 20 2b 20 | 31 3b 0d 09 09 09 7d 0d |rrent + |1;....}.|
|00002310| 09 09 7d 0d 09 09 0d 09 | 09 69 66 20 28 63 6f 6d |..}.....|.if (com|
|00002320| 70 61 72 69 73 6f 6e 20 | 3c 20 30 29 0d 09 09 7b |parison |< 0)...{|
|00002330| 0d 09 09 09 63 75 72 72 | 65 6e 74 20 2b 3d 20 31 |....curr|ent += 1|
|00002340| 3b 0d 09 09 7d 0d 09 7d | 0d 09 0d 09 72 65 74 75 |;...}..}|....retu|
|00002350| 72 6e 20 63 75 72 72 65 | 6e 74 3b 0d 7d 0d 0d 41 |rn curre|nt;.}..A|
|00002360| 72 72 61 79 49 6e 64 65 | 78 54 0d 4c 54 65 6d 70 |rrayInde|xT.LTemp|
|00002370| 6f 72 61 72 79 46 69 6c | 65 41 72 72 61 79 3a 3a |oraryFil|eArray::|
|00002380| 46 65 74 63 68 49 6e 73 | 65 72 74 49 6e 64 65 78 |FetchIns|ertIndex|
|00002390| 4f 66 4b 65 79 28 0d 09 | 63 6f 6e 73 74 20 76 6f |OfKey(..|const vo|
|000023a0| 69 64 20 2a 69 6e 4b 65 | 79 29 0d 7b 0d 09 41 72 |id *inKe|y).{..Ar|
|000023b0| 72 61 79 49 6e 64 65 78 | 54 09 09 63 75 72 72 65 |rayIndex|T..curre|
|000023c0| 6e 74 20 3d 20 69 6e 64 | 65 78 5f 4c 61 73 74 3b |nt = ind|ex_Last;|
|000023d0| 0d 09 0d 09 69 66 20 28 | 6d 49 73 53 6f 72 74 65 |....if (|mIsSorte|
|000023e0| 64 29 0d 09 7b 0d 09 09 | 41 72 72 61 79 49 6e 64 |d)..{...|ArrayInd|
|000023f0| 65 78 54 09 09 6c 65 66 | 74 20 3d 20 31 3b 0d 09 |exT..lef|t = 1;..|
|00002400| 09 41 72 72 61 79 49 6e | 64 65 78 54 09 09 72 69 |.ArrayIn|dexT..ri|
|00002410| 67 68 74 20 3d 20 47 65 | 74 43 6f 75 6e 74 28 29 |ght = Ge|tCount()|
|00002420| 3b 0d 09 09 53 49 6e 74 | 33 32 09 09 09 63 6f 6d |;...SInt|32...com|
|00002430| 70 61 72 69 73 6f 6e 20 | 3d 20 30 3b 0d 09 09 0d |parison |= 0;....|
|00002440| 09 09 63 75 72 72 65 6e | 74 20 3d 20 31 3b 0d 09 |..curren|t = 1;..|
|00002450| 09 0d 09 09 77 68 69 6c | 65 20 28 6c 65 66 74 20 |....whil|e (left |
|00002460| 3c 3d 20 72 69 67 68 74 | 29 0d 09 09 7b 0d 09 09 |<= right|)...{...|
|00002470| 09 63 75 72 72 65 6e 74 | 20 3d 20 28 6c 65 66 74 |.current| = (left|
|00002480| 20 2b 20 72 69 67 68 74 | 29 20 2f 20 32 3b 0d 09 | + right|) / 2;..|
|00002490| 09 09 0d 09 09 09 41 72 | 72 61 79 49 74 65 6d 53 |......Ar|rayItemS|
|000024a0| 69 7a 65 54 09 09 63 75 | 72 72 65 6e 74 53 69 7a |izeT..cu|rrentSiz|
|000024b0| 65 20 3d 20 47 65 74 49 | 74 65 6d 53 69 7a 65 28 |e = GetI|temSize(|
|000024c0| 63 75 72 72 65 6e 74 29 | 3b 0d 09 09 09 50 74 72 |current)|;....Ptr|
|000024d0| 09 09 09 09 09 63 75 72 | 72 65 6e 74 50 74 72 20 |.....cur|rentPtr |
|000024e0| 3d 20 3a 3a 4e 65 77 50 | 74 72 28 63 75 72 72 65 |= ::NewP|tr(curre|
|000024f0| 6e 74 53 69 7a 65 29 3b | 0d 09 09 09 54 68 72 6f |ntSize);|....Thro|
|00002500| 77 49 66 4d 65 6d 45 72 | 72 6f 72 5f 28 29 3b 0d |wIfMemEr|ror_();.|
|00002510| 09 09 09 0d 09 09 09 63 | 6f 6d 70 61 72 69 73 6f |.......c|ompariso|
|00002520| 6e 20 3d 20 6d 43 6f 6d | 70 61 72 61 74 6f 72 2d |n = mCom|parator-|
|00002530| 3e 43 6f 6d 70 61 72 65 | 54 6f 4b 65 79 28 63 75 |>Compare|ToKey(cu|
|00002540| 72 72 65 6e 74 50 74 72 | 2c 20 63 75 72 72 65 6e |rrentPtr|, curren|
|00002550| 74 53 69 7a 65 2c 20 69 | 6e 4b 65 79 29 3b 0d 09 |tSize, i|nKey);..|
|00002560| 09 09 09 09 09 09 09 09 | 09 09 20 20 0d 09 09 09 |........|.. ....|
|00002570| 69 66 20 28 63 6f 6d 70 | 61 72 69 73 6f 6e 20 3d |if (comp|arison =|
|00002580| 3d 20 30 29 0d 09 09 09 | 7b 0d 09 09 09 09 62 72 |= 0)....|{.....br|
|00002590| 65 61 6b 3b 0d 09 09 09 | 7d 20 0d 09 09 09 65 6c |eak;....|} ....el|
|000025a0| 73 65 20 69 66 20 28 63 | 6f 6d 70 61 72 69 73 6f |se if (c|ompariso|
|000025b0| 6e 20 3e 20 30 29 0d 09 | 09 09 7b 0d 09 09 09 09 |n > 0)..|..{.....|
|000025c0| 72 69 67 68 74 20 3d 20 | 63 75 72 72 65 6e 74 20 |right = |current |
|000025d0| 2d 20 31 3b 0d 09 09 09 | 7d 0d 09 09 09 65 6c 73 |- 1;....|}....els|
|000025e0| 65 0d 09 09 09 7b 0d 09 | 09 09 09 6c 65 66 74 20 |e....{..|...left |
|000025f0| 3d 20 63 75 72 72 65 6e | 74 20 2b 20 31 3b 0d 09 |= curren|t + 1;..|
|00002600| 09 09 7d 0d 09 09 7d 0d | 09 09 0d 09 09 69 66 20 |..}...}.|.....if |
|00002610| 28 63 6f 6d 70 61 72 69 | 73 6f 6e 20 3c 20 30 29 |(compari|son < 0)|
|00002620| 0d 09 09 7b 0d 09 09 09 | 63 75 72 72 65 6e 74 20 |...{....|current |
|00002630| 2b 3d 20 31 3b 0d 09 09 | 7d 0d 09 7d 0d 09 0d 09 |+= 1;...|}..}....|
|00002640| 72 65 74 75 72 6e 20 63 | 75 72 72 65 6e 74 3b 0d |return c|urrent;.|
|00002650| 7d 0d 0d 0d 23 70 72 61 | 67 6d 61 20 6d 61 72 6b |}...#pra|gma mark|
|00002660| 20 2d 0d 0d 0d 41 72 72 | 61 79 49 6e 64 65 78 54 | -...Arr|ayIndexT|
|00002670| 0d 4c 54 65 6d 70 6f 72 | 61 72 79 46 69 6c 65 41 |.LTempor|aryFileA|
|00002680| 72 72 61 79 3a 3a 4c 69 | 6e 65 61 72 53 65 61 72 |rray::Li|nearSear|
|00002690| 63 68 28 0d 09 63 6f 6e | 73 74 20 76 6f 69 64 20 |ch(..con|st void |
|000026a0| 2a 69 6e 49 74 65 6d 2c | 0d 09 41 72 72 61 79 49 |*inItem,|..ArrayI|
|000026b0| 74 65 6d 53 69 7a 65 54 | 20 69 6e 49 74 65 6d 53 |temSizeT| inItemS|
|000026c0| 69 7a 65 29 0d 7b 0d 09 | 41 72 72 61 79 49 6e 64 |ize).{..|ArrayInd|
|000026d0| 65 78 54 09 09 66 69 6e | 64 49 6e 64 65 78 20 3d |exT..fin|dIndex =|
|000026e0| 20 30 3b 0d 09 41 72 72 | 61 79 49 6e 64 65 78 54 | 0;..Arr|ayIndexT|
|000026f0| 09 09 69 74 65 6d 43 6f | 75 6e 74 20 3d 20 47 65 |..itemCo|unt = Ge|
|00002700| 74 43 6f 75 6e 74 28 29 | 3b 0d 09 0d 09 77 68 69 |tCount()|;....whi|
|00002710| 6c 65 20 28 2b 2b 66 69 | 6e 64 49 6e 64 65 78 20 |le (++fi|ndIndex |
|00002720| 3c 3d 20 69 74 65 6d 43 | 6f 75 6e 74 29 0d 09 7b |<= itemC|ount)..{|
|00002730| 0d 09 09 41 72 72 61 79 | 49 74 65 6d 53 69 7a 65 |...Array|ItemSize|
|00002740| 54 09 69 74 65 6d 53 69 | 7a 65 20 3d 20 47 65 74 |T.itemSi|ze = Get|
|00002750| 49 74 65 6d 53 69 7a 65 | 28 66 69 6e 64 49 6e 64 |ItemSize|(findInd|
|00002760| 65 78 29 3b 0d 09 09 50 | 74 72 09 09 09 09 69 74 |ex);...P|tr....it|
|00002770| 65 6d 50 74 72 20 3d 20 | 3a 3a 4e 65 77 50 74 72 |emPtr = |::NewPtr|
|00002780| 28 69 74 65 6d 53 69 7a | 65 29 3b 0d 09 09 54 68 |(itemSiz|e);...Th|
|00002790| 72 6f 77 49 66 4d 65 6d | 45 72 72 6f 72 5f 28 29 |rowIfMem|Error_()|
|000027a0| 3b 0d 09 09 0d 09 09 46 | 65 74 63 68 49 74 65 6d |;......F|etchItem|
|000027b0| 41 74 28 66 69 6e 64 49 | 6e 64 65 78 2c 20 69 74 |At(findI|ndex, it|
|000027c0| 65 6d 50 74 72 29 3b 0d | 09 09 0d 09 09 69 66 20 |emPtr);.|.....if |
|000027d0| 28 6d 43 6f 6d 70 61 72 | 61 74 6f 72 2d 3e 49 73 |(mCompar|ator->Is|
|000027e0| 45 71 75 61 6c 54 6f 28 | 69 6e 49 74 65 6d 2c 20 |EqualTo(|inItem, |
|000027f0| 69 74 65 6d 50 74 72 2c | 20 69 6e 49 74 65 6d 53 |itemPtr,| inItemS|
|00002800| 69 7a 65 2c 20 69 74 65 | 6d 53 69 7a 65 29 29 0d |ize, ite|mSize)).|
|00002810| 09 09 7b 0d 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |..{....b|reak;...|
|00002820| 7d 0d 09 09 0d 09 09 3a | 3a 44 69 73 70 6f 73 65 |}......:|:Dispose|
|00002830| 50 74 72 28 69 74 65 6d | 50 74 72 29 3b 0d 09 7d |Ptr(item|Ptr);..}|
|00002840| 0d 09 0d 09 69 66 20 28 | 66 69 6e 64 49 6e 64 65 |....if (|findInde|
|00002850| 78 20 3e 20 69 74 65 6d | 43 6f 75 6e 74 29 0d 09 |x > item|Count)..|
|00002860| 7b 0d 09 09 66 69 6e 64 | 49 6e 64 65 78 20 3d 20 |{...find|Index = |
|00002870| 69 6e 64 65 78 5f 42 61 | 64 3b 0d 09 7d 0d 0d 09 |index_Ba|d;..}...|
|00002880| 72 65 74 75 72 6e 20 66 | 69 6e 64 49 6e 64 65 78 |return f|indIndex|
|00002890| 3b 0d 7d 0d 0d 41 72 72 | 61 79 49 6e 64 65 78 54 |;.}..Arr|ayIndexT|
|000028a0| 0d 4c 54 65 6d 70 6f 72 | 61 72 79 46 69 6c 65 41 |.LTempor|aryFileA|
|000028b0| 72 72 61 79 3a 3a 4c 69 | 6e 65 61 72 53 65 61 72 |rray::Li|nearSear|
|000028c0| 63 68 42 79 4b 65 79 28 | 0d 09 63 6f 6e 73 74 20 |chByKey(|..const |
|000028d0| 76 6f 69 64 20 2a 69 6e | 4b 65 79 29 0d 7b 0d 09 |void *in|Key).{..|
|000028e0| 41 72 72 61 79 49 6e 64 | 65 78 54 09 09 66 69 6e |ArrayInd|exT..fin|
|000028f0| 64 49 6e 64 65 78 20 3d | 20 30 3b 0d 09 41 72 72 |dIndex =| 0;..Arr|
|00002900| 61 79 49 6e 64 65 78 54 | 09 09 69 74 65 6d 43 6f |ayIndexT|..itemCo|
|00002910| 75 6e 74 20 3d 20 47 65 | 74 43 6f 75 6e 74 28 29 |unt = Ge|tCount()|
|00002920| 3b 0d 09 0d 09 77 68 69 | 6c 65 20 28 2b 2b 66 69 |;....whi|le (++fi|
|00002930| 6e 64 49 6e 64 65 78 20 | 3c 3d 20 69 74 65 6d 43 |ndIndex |<= itemC|
|00002940| 6f 75 6e 74 29 0d 09 7b | 0d 09 09 41 72 72 61 79 |ount)..{|...Array|
|00002950| 49 74 65 6d 53 69 7a 65 | 54 09 69 74 65 6d 53 69 |ItemSize|T.itemSi|
|00002960| 7a 65 20 3d 20 47 65 74 | 49 74 65 6d 53 69 7a 65 |ze = Get|ItemSize|
|00002970| 28 66 69 6e 64 49 6e 64 | 65 78 29 3b 0d 09 09 50 |(findInd|ex);...P|
|00002980| 74 72 09 09 09 09 69 74 | 65 6d 50 74 72 20 3d 20 |tr....it|emPtr = |
|00002990| 3a 3a 4e 65 77 50 74 72 | 28 69 74 65 6d 53 69 7a |::NewPtr|(itemSiz|
|000029a0| 65 29 3b 0d 09 09 54 68 | 72 6f 77 49 66 4d 65 6d |e);...Th|rowIfMem|
|000029b0| 45 72 72 6f 72 5f 28 29 | 3b 0d 09 09 0d 09 09 46 |Error_()|;......F|
|000029c0| 65 74 63 68 49 74 65 6d | 41 74 28 66 69 6e 64 49 |etchItem|At(findI|
|000029d0| 6e 64 65 78 2c 20 69 74 | 65 6d 50 74 72 29 3b 0d |ndex, it|emPtr);.|
|000029e0| 09 09 0d 09 09 69 66 20 | 28 6d 43 6f 6d 70 61 72 |.....if |(mCompar|
|000029f0| 61 74 6f 72 2d 3e 49 73 | 45 71 75 61 6c 54 6f 4b |ator->Is|EqualToK|
|00002a00| 65 79 28 69 74 65 6d 50 | 74 72 2c 20 69 74 65 6d |ey(itemP|tr, item|
|00002a10| 53 69 7a 65 2c 20 69 6e | 4b 65 79 29 29 0d 09 09 |Size, in|Key))...|
|00002a20| 7b 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 7d 0d |{....bre|ak;...}.|
|00002a30| 09 09 0d 09 09 3a 3a 44 | 69 73 70 6f 73 65 50 74 |.....::D|isposePt|
|00002a40| 72 28 69 74 65 6d 50 74 | 72 29 3b 0d 09 7d 0d 09 |r(itemPt|r);..}..|
|00002a50| 0d 09 69 66 20 28 66 69 | 6e 64 49 6e 64 65 78 20 |..if (fi|ndIndex |
|00002a60| 3e 20 69 74 65 6d 43 6f | 75 6e 74 29 0d 09 7b 0d |> itemCo|unt)..{.|
|00002a70| 09 09 66 69 6e 64 49 6e | 64 65 78 20 3d 20 69 6e |..findIn|dex = in|
|00002a80| 64 65 78 5f 42 61 64 3b | 0d 09 7d 0d 0d 09 72 65 |dex_Bad;|..}...re|
|00002a90| 74 75 72 6e 20 66 69 6e | 64 49 6e 64 65 78 3b 0d |turn fin|dIndex;.|
|00002aa0| 7d 0d 0d 41 72 72 61 79 | 49 6e 64 65 78 54 20 0d |}..Array|IndexT .|
|00002ab0| 4c 54 65 6d 70 6f 72 61 | 72 79 46 69 6c 65 41 72 |LTempora|ryFileAr|
|00002ac0| 72 61 79 3a 3a 42 69 6e | 61 72 79 53 65 61 72 63 |ray::Bin|arySearc|
|00002ad0| 68 28 0d 09 63 6f 6e 73 | 74 20 76 6f 69 64 20 2a |h(..cons|t void *|
|00002ae0| 69 6e 49 74 65 6d 2c 0d | 09 41 72 72 61 79 49 74 |inItem,.|.ArrayIt|
|00002af0| 65 6d 53 69 7a 65 54 20 | 69 6e 49 74 65 6d 53 69 |emSizeT |inItemSi|
|00002b00| 7a 65 29 0d 7b 0d 09 41 | 72 72 61 79 49 6e 64 65 |ze).{..A|rrayInde|
|00002b10| 78 54 09 09 6c 65 66 74 | 20 3d 20 31 3b 0d 09 41 |xT..left| = 1;..A|
|00002b20| 72 72 61 79 49 6e 64 65 | 78 54 09 09 72 69 67 68 |rrayInde|xT..righ|
|00002b30| 74 20 3d 20 28 41 72 72 | 61 79 49 6e 64 65 78 54 |t = (Arr|ayIndexT|
|00002b40| 29 20 47 65 74 43 6f 75 | 6e 74 28 29 3b 0d 09 41 |) GetCou|nt();..A|
|00002b50| 72 72 61 79 49 6e 64 65 | 78 54 09 09 63 75 72 72 |rrayInde|xT..curr|
|00002b60| 65 6e 74 20 3d 20 31 3b | 0d 09 53 49 6e 74 33 32 |ent = 1;|..SInt32|
|00002b70| 09 09 09 63 6f 6d 70 61 | 72 69 73 6f 6e 20 3d 20 |...compa|rison = |
|00002b80| 30 3b 0d 09 0d 09 77 68 | 69 6c 65 20 28 6c 65 66 |0;....wh|ile (lef|
|00002b90| 74 20 3c 3d 20 72 69 67 | 68 74 29 0d 09 7b 0d 09 |t <= rig|ht)..{..|
|00002ba0| 09 63 75 72 72 65 6e 74 | 20 3d 20 28 6c 65 66 74 |.current| = (left|
|00002bb0| 20 2b 20 72 69 67 68 74 | 29 20 2f 20 32 3b 0d 09 | + right|) / 2;..|
|00002bc0| 09 0d 09 09 41 72 72 61 | 79 49 74 65 6d 53 69 7a |....Arra|yItemSiz|
|00002bd0| 65 54 09 09 63 75 72 72 | 65 6e 74 53 69 7a 65 20 |eT..curr|entSize |
|00002be0| 3d 20 47 65 74 49 74 65 | 6d 53 69 7a 65 28 63 75 |= GetIte|mSize(cu|
|00002bf0| 72 72 65 6e 74 29 3b 0d | 09 09 50 74 72 09 09 09 |rrent);.|..Ptr...|
|00002c00| 09 09 63 75 72 72 65 6e | 74 50 74 72 20 3d 20 3a |..curren|tPtr = :|
|00002c10| 3a 4e 65 77 50 74 72 28 | 63 75 72 72 65 6e 74 53 |:NewPtr(|currentS|
|00002c20| 69 7a 65 29 3b 0d 09 09 | 54 68 72 6f 77 49 66 4d |ize);...|ThrowIfM|
|00002c30| 65 6d 45 72 72 6f 72 5f | 28 29 3b 0d 09 09 0d 09 |emError_|();.....|
|00002c40| 09 46 65 74 63 68 49 74 | 65 6d 41 74 28 63 75 72 |.FetchIt|emAt(cur|
|00002c50| 72 65 6e 74 2c 20 63 75 | 72 72 65 6e 74 50 74 72 |rent, cu|rrentPtr|
|00002c60| 29 3b 0d 09 09 0d 09 09 | 63 6f 6d 70 61 72 69 73 |);......|comparis|
|00002c70| 6f 6e 20 3d 20 6d 43 6f | 6d 70 61 72 61 74 6f 72 |on = mCo|mparator|
|00002c80| 2d 3e 43 6f 6d 70 61 72 | 65 28 63 75 72 72 65 6e |->Compar|e(curren|
|00002c90| 74 50 74 72 2c 20 69 6e | 49 74 65 6d 2c 20 63 75 |tPtr, in|Item, cu|
|00002ca0| 72 72 65 6e 74 53 69 7a | 65 2c 20 69 6e 49 74 65 |rrentSiz|e, inIte|
|00002cb0| 6d 53 69 7a 65 29 3b 0d | 09 09 0d 09 09 3a 3a 44 |mSize);.|.....::D|
|00002cc0| 69 73 70 6f 73 65 50 74 | 72 28 63 75 72 72 65 6e |isposePt|r(curren|
|00002cd0| 74 50 74 72 29 3b 0d 09 | 09 09 09 09 09 09 09 09 |tPtr);..|........|
|00002ce0| 09 20 20 0d 09 09 69 66 | 20 28 63 6f 6d 70 61 72 |. ...if| (compar|
|00002cf0| 69 73 6f 6e 20 3d 3d 20 | 30 29 0d 09 09 7b 0d 09 |ison == |0)...{..|
|00002d00| 09 09 62 72 65 61 6b 3b | 0d 09 09 7d 0d 09 09 65 |..break;|...}...e|
|00002d10| 6c 73 65 20 69 66 20 28 | 63 6f 6d 70 61 72 69 73 |lse if (|comparis|
|00002d20| 6f 6e 20 3e 20 30 29 0d | 09 09 7b 0d 09 09 09 72 |on > 0).|..{....r|
|00002d30| 69 67 68 74 20 3d 20 63 | 75 72 72 65 6e 74 20 2d |ight = c|urrent -|
|00002d40| 20 31 3b 0d 09 09 7d 0d | 09 09 65 6c 73 65 0d 09 | 1;...}.|..else..|
|00002d50| 09 7b 0d 09 09 09 6c 65 | 66 74 20 3d 20 63 75 72 |.{....le|ft = cur|
|00002d60| 72 65 6e 74 20 2b 20 31 | 3b 0d 09 09 7d 0d 09 7d |rent + 1|;...}..}|
|00002d70| 0d 09 0d 09 69 66 20 28 | 63 6f 6d 70 61 72 69 73 |....if (|comparis|
|00002d80| 6f 6e 20 21 3d 20 30 29 | 0d 09 7b 0d 09 09 63 75 |on != 0)|..{...cu|
|00002d90| 72 72 65 6e 74 20 3d 20 | 69 6e 64 65 78 5f 42 61 |rrent = |index_Ba|
|00002da0| 64 3b 0d 09 7d 0d 09 0d | 09 72 65 74 75 72 6e 20 |d;..}...|.return |
|00002db0| 63 75 72 72 65 6e 74 3b | 0d 7d 0d 0d 41 72 72 61 |current;|.}..Arra|
|00002dc0| 79 49 6e 64 65 78 54 0d | 4c 54 65 6d 70 6f 72 61 |yIndexT.|LTempora|
|00002dd0| 72 79 46 69 6c 65 41 72 | 72 61 79 3a 3a 42 69 6e |ryFileAr|ray::Bin|
|00002de0| 61 72 79 53 65 61 72 63 | 68 42 79 4b 65 79 28 0d |arySearc|hByKey(.|
|00002df0| 09 63 6f 6e 73 74 20 76 | 6f 69 64 20 2a 69 6e 4b |.const v|oid *inK|
|00002e00| 65 79 29 0d 7b 0d 09 41 | 72 72 61 79 49 6e 64 65 |ey).{..A|rrayInde|
|00002e10| 78 54 09 09 6c 65 66 74 | 20 3d 20 31 3b 0d 09 41 |xT..left| = 1;..A|
|00002e20| 72 72 61 79 49 6e 64 65 | 78 54 09 09 72 69 67 68 |rrayInde|xT..righ|
|00002e30| 74 20 3d 20 28 41 72 72 | 61 79 49 6e 64 65 78 54 |t = (Arr|ayIndexT|
|00002e40| 29 20 47 65 74 43 6f 75 | 6e 74 28 29 3b 0d 09 41 |) GetCou|nt();..A|
|00002e50| 72 72 61 79 49 6e 64 65 | 78 54 09 09 63 75 72 72 |rrayInde|xT..curr|
|00002e60| 65 6e 74 20 3d 20 31 3b | 0d 09 53 49 6e 74 33 32 |ent = 1;|..SInt32|
|00002e70| 09 09 09 63 6f 6d 70 61 | 72 69 73 6f 6e 20 3d 20 |...compa|rison = |
|00002e80| 30 3b 0d 09 0d 09 77 68 | 69 6c 65 20 28 6c 65 66 |0;....wh|ile (lef|
|00002e90| 74 20 3c 3d 20 72 69 67 | 68 74 29 0d 09 7b 0d 09 |t <= rig|ht)..{..|
|00002ea0| 09 63 75 72 72 65 6e 74 | 20 3d 20 28 6c 65 66 74 |.current| = (left|
|00002eb0| 20 2b 20 72 69 67 68 74 | 29 20 2f 20 32 3b 0d 09 | + right|) / 2;..|
|00002ec0| 09 0d 09 09 41 72 72 61 | 79 49 74 65 6d 53 69 7a |....Arra|yItemSiz|
|00002ed0| 65 54 09 63 75 72 72 65 | 6e 74 53 69 7a 65 20 3d |eT.curre|ntSize =|
|00002ee0| 20 47 65 74 49 74 65 6d | 53 69 7a 65 28 63 75 72 | GetItem|Size(cur|
|00002ef0| 72 65 6e 74 29 3b 0d 09 | 09 50 74 72 09 09 09 09 |rent);..|.Ptr....|
|00002f00| 63 75 72 72 65 6e 74 50 | 74 72 20 3d 20 3a 3a 4e |currentP|tr = ::N|
|00002f10| 65 77 50 74 72 28 63 75 | 72 72 65 6e 74 53 69 7a |ewPtr(cu|rrentSiz|
|00002f20| 65 29 3b 0d 09 09 54 68 | 72 6f 77 49 66 4d 65 6d |e);...Th|rowIfMem|
|00002f30| 45 72 72 6f 72 5f 28 29 | 3b 0d 09 09 0d 09 09 46 |Error_()|;......F|
|00002f40| 65 74 63 68 49 74 65 6d | 41 74 28 63 75 72 72 65 |etchItem|At(curre|
|00002f50| 6e 74 2c 20 63 75 72 72 | 65 6e 74 50 74 72 29 3b |nt, curr|entPtr);|
|00002f60| 0d 09 09 09 0d 09 09 63 | 6f 6d 70 61 72 69 73 6f |.......c|ompariso|
|00002f70| 6e 20 3d 20 6d 43 6f 6d | 70 61 72 61 74 6f 72 2d |n = mCom|parator-|
|00002f80| 3e 43 6f 6d 70 61 72 65 | 54 6f 4b 65 79 28 63 75 |>Compare|ToKey(cu|
|00002f90| 72 72 65 6e 74 50 74 72 | 2c 20 63 75 72 72 65 6e |rrentPtr|, curren|
|00002fa0| 74 53 69 7a 65 2c 20 69 | 6e 4b 65 79 29 3b 0d 09 |tSize, i|nKey);..|
|00002fb0| 09 09 09 09 09 09 09 09 | 09 20 20 0d 09 09 69 66 |........|. ...if|
|00002fc0| 20 28 63 6f 6d 70 61 72 | 69 73 6f 6e 20 3d 3d 20 | (compar|ison == |
|00002fd0| 30 29 0d 09 09 7b 0d 09 | 09 09 62 72 65 61 6b 3b |0)...{..|..break;|
|00002fe0| 0d 09 09 7d 0d 09 09 65 | 6c 73 65 20 69 66 20 28 |...}...e|lse if (|
|00002ff0| 63 6f 6d 70 61 72 69 73 | 6f 6e 20 3e 20 30 29 0d |comparis|on > 0).|
|00003000| 09 09 7b 0d 09 09 09 72 | 69 67 68 74 20 3d 20 63 |..{....r|ight = c|
|00003010| 75 72 72 65 6e 74 20 2d | 20 31 3b 0d 09 09 7d 0d |urrent -| 1;...}.|
|00003020| 09 09 65 6c 73 65 0d 09 | 09 7b 0d 09 09 09 6c 65 |..else..|.{....le|
|00003030| 66 74 20 3d 20 63 75 72 | 72 65 6e 74 20 2b 20 31 |ft = cur|rent + 1|
|00003040| 3b 0d 09 09 7d 0d 09 7d | 0d 09 0d 09 69 66 20 28 |;...}..}|....if (|
|00003050| 63 6f 6d 70 61 72 69 73 | 6f 6e 20 21 3d 20 30 29 |comparis|on != 0)|
|00003060| 0d 09 7b 0d 09 09 63 75 | 72 72 65 6e 74 20 3d 20 |..{...cu|rrent = |
|00003070| 69 6e 64 65 78 5f 42 61 | 64 3b 0d 09 7d 0d 09 0d |index_Ba|d;..}...|
|00003080| 09 72 65 74 75 72 6e 20 | 63 75 72 72 65 6e 74 3b |.return |current;|
|00003090| 0d 7d 0d 0d 0d 23 70 72 | 61 67 6d 61 20 6d 61 72 |.}...#pr|agma mar|
|000030a0| 6b 20 2d 0d 23 70 72 61 | 67 6d 61 20 6d 61 72 6b |k -.#pra|gma mark|
|000030b0| 20 a5 20 49 6e 74 65 72 | 6e 61 6c 20 49 6d 70 6c | . Inter|nal Impl|
|000030c0| 65 6d 65 6e 74 61 74 69 | 6f 6e 73 0d 23 70 72 61 |ementati|ons.#pra|
|000030d0| 67 6d 61 20 6d 61 72 6b | 20 2d 0d 0d 0d 42 6f 6f |gma mark| -...Boo|
|000030e0| 6c 65 61 6e 0d 4c 54 65 | 6d 70 6f 72 61 72 79 46 |lean.LTe|mporaryF|
|000030f0| 69 6c 65 41 72 72 61 79 | 3a 3a 49 6e 74 65 72 6e |ileArray|::Intern|
|00003100| 61 6c 46 65 74 63 68 49 | 74 65 6d 41 74 28 0d 09 |alFetchI|temAt(..|
|00003110| 41 72 72 61 79 49 6e 64 | 65 78 54 20 69 6e 49 6e |ArrayInd|exT inIn|
|00003120| 64 65 78 2c 20 0d 09 76 | 6f 69 64 2a 20 6f 75 74 |dex, ..v|oid* out|
|00003130| 49 74 65 6d 2c 0d 09 53 | 49 6e 74 33 32 20 26 69 |Item,..S|Int32 &i|
|00003140| 6f 49 74 65 6d 53 69 7a | 65 29 0d 7b 0d 09 42 6f |oItemSiz|e).{..Bo|
|00003150| 6f 6c 65 61 6e 09 09 69 | 74 65 6d 45 78 69 73 74 |olean..i|temExist|
|00003160| 73 20 3d 20 56 61 6c 69 | 64 49 6e 64 65 78 28 69 |s = Vali|dIndex(i|
|00003170| 6e 49 6e 64 65 78 29 3b | 0d 09 0d 09 69 66 20 28 |nIndex);|....if (|
|00003180| 69 74 65 6d 45 78 69 73 | 74 73 29 0d 09 7b 0d 09 |itemExis|ts)..{..|
|00003190| 09 41 72 72 61 79 49 74 | 65 6d 4f 66 66 73 65 74 |.ArrayIt|emOffset|
|000031a0| 54 09 6f 66 66 73 65 74 | 3b 0d 09 09 41 72 72 61 |T.offset|;...Arra|
|000031b0| 79 49 74 65 6d 53 69 7a | 65 54 09 09 73 69 7a 65 |yItemSiz|eT..size|
|000031c0| 3b 0d 09 09 0d 09 09 49 | 6e 74 65 72 6e 61 6c 47 |;......I|nternalG|
|000031d0| 65 74 49 74 65 6d 4f 66 | 66 73 65 74 41 6e 64 53 |etItemOf|fsetAndS|
|000031e0| 69 7a 65 28 69 6e 49 6e | 64 65 78 2c 20 6f 66 66 |ize(inIn|dex, off|
|000031f0| 73 65 74 2c 20 73 69 7a | 65 29 3b 09 0d 09 0d 09 |set, siz|e);.....|
|00003200| 09 69 66 20 28 28 69 6f | 49 74 65 6d 53 69 7a 65 |.if ((io|ItemSize|
|00003210| 20 3e 20 73 69 7a 65 29 | 20 6f 72 28 69 6f 49 74 | > size)| or(ioIt|
|00003220| 65 6d 53 69 7a 65 20 3d | 3d 20 30 29 29 0d 09 09 |emSize =|= 0))...|
|00003230| 7b 0d 09 09 09 69 6f 49 | 74 65 6d 53 69 7a 65 20 |{....ioI|temSize |
|00003240| 3d 20 73 69 7a 65 3b 0d | 09 09 7d 0d 0d 09 09 53 |= size;.|..}....S|
|00003250| 65 74 4d 61 72 6b 65 72 | 28 6f 66 66 73 65 74 2c |etMarker|(offset,|
|00003260| 20 73 74 72 65 61 6d 46 | 72 6f 6d 5f 53 74 61 72 | streamF|rom_Star|
|00003270| 74 29 3b 0d 09 09 47 65 | 74 42 79 74 65 73 28 6f |t);...Ge|tBytes(o|
|00003280| 75 74 49 74 65 6d 2c 20 | 69 6f 49 74 65 6d 53 69 |utItem, |ioItemSi|
|00003290| 7a 65 29 3b 0d 09 7d 0d | 09 0d 09 72 65 74 75 72 |ze);..}.|...retur|
|000032a0| 6e 20 69 74 65 6d 45 78 | 69 73 74 73 3b 0d 7d 0d |n itemEx|ists;.}.|
|000032b0| 0d 0d 41 72 72 61 79 49 | 6e 64 65 78 54 0d 4c 54 |..ArrayI|ndexT.LT|
|000032c0| 65 6d 70 6f 72 61 72 79 | 46 69 6c 65 41 72 72 61 |emporary|FileArra|
|000032d0| 79 3a 3a 49 6e 74 65 72 | 6e 61 6c 49 6e 73 65 72 |y::Inter|nalInser|
|000032e0| 74 49 74 65 6d 73 41 74 | 28 0d 09 55 49 6e 74 33 |tItemsAt|(..UInt3|
|000032f0| 32 20 69 6e 43 6f 75 6e | 74 2c 0d 09 41 72 72 61 |2 inCoun|t,..Arra|
|00003300| 79 49 6e 64 65 78 54 20 | 69 6e 49 6e 64 65 78 2c |yIndexT |inIndex,|
|00003310| 0d 09 63 6f 6e 73 74 20 | 76 6f 69 64 2a 20 69 6e |..const |void* in|
|00003320| 49 74 65 6d 2c 0d 09 41 | 72 72 61 79 49 74 65 6d |Item,..A|rrayItem|
|00003330| 53 69 7a 65 54 20 69 6e | 49 74 65 6d 53 69 7a 65 |SizeT in|ItemSize|
|00003340| 29 0d 7b 0d 09 41 72 72 | 61 79 49 6e 64 65 78 54 |).{..Arr|ayIndexT|
|00003350| 09 09 69 74 65 6d 43 6f | 75 6e 74 20 3d 20 47 65 |..itemCo|unt = Ge|
|00003360| 74 43 6f 75 6e 74 28 29 | 3b 0d 0d 09 2f 2f 20 49 |tCount()|;...// I|
|00003370| 6e 73 65 72 74 20 69 74 | 65 6d 20 61 74 20 65 6e |nsert it|em at en|
|00003380| 64 0d 09 69 66 20 28 69 | 6e 49 6e 64 65 78 20 3e |d..if (i|nIndex >|
|00003390| 20 69 74 65 6d 43 6f 75 | 6e 74 29 0d 09 7b 0d 09 | itemCou|nt)..{..|
|000033a0| 09 53 65 74 4d 61 72 6b | 65 72 28 30 2c 20 73 74 |.SetMark|er(0, st|
|000033b0| 72 65 61 6d 46 72 6f 6d | 5f 45 6e 64 29 3b 0d 09 |reamFrom|_End);..|
|000033c0| 09 0d 09 09 66 6f 72 20 | 28 55 49 6e 74 33 32 20 |....for |(UInt32 |
|000033d0| 69 20 3d 20 31 3b 20 69 | 20 3c 3d 20 69 6e 43 6f |i = 1; i| <= inCo|
|000033e0| 75 6e 74 3b 20 69 2b 2b | 29 0d 09 09 7b 0d 09 09 |unt; i++|)...{...|
|000033f0| 09 53 49 6e 74 33 32 09 | 62 79 74 65 73 54 6f 57 |.SInt32.|bytesToW|
|00003400| 72 69 74 65 20 3d 20 73 | 69 7a 65 6f 66 28 41 72 |rite = s|izeof(Ar|
|00003410| 72 61 79 49 74 65 6d 53 | 69 7a 65 54 29 3b 0d 09 |rayItemS|izeT);..|
|00003420| 09 0d 09 09 09 50 75 74 | 42 79 74 65 73 28 26 69 |.....Put|Bytes(&i|
|00003430| 6e 49 74 65 6d 53 69 7a | 65 2c 20 62 79 74 65 73 |nItemSiz|e, bytes|
|00003440| 54 6f 57 72 69 74 65 29 | 3b 0d 09 09 09 50 75 74 |ToWrite)|;....Put|
|00003450| 42 79 74 65 73 28 69 6e | 49 74 65 6d 2c 20 69 6e |Bytes(in|Item, in|
|00003460| 49 74 65 6d 53 69 7a 65 | 29 3b 0d 09 09 7d 0d 09 |ItemSize|);...}..|
|00003470| 09 0d 09 09 69 6e 49 6e | 64 65 78 20 3d 20 69 74 |....inIn|dex = it|
|00003480| 65 6d 43 6f 75 6e 74 20 | 2b 20 31 3b 0d 09 7d 0d |emCount |+ 1;..}.|
|00003490| 09 65 6c 73 65 0d 09 7b | 0d 09 09 69 66 20 28 69 |.else..{|...if (i|
|000034a0| 6e 49 6e 64 65 78 20 3c | 20 31 29 0d 09 09 7b 0d |nIndex <| 1)...{.|
|000034b0| 09 09 09 69 6e 49 6e 64 | 65 78 20 3d 20 31 3b 0d |...inInd|ex = 1;.|
|000034c0| 09 09 7d 0d 09 09 0d 09 | 09 41 72 72 61 79 49 74 |..}.....|.ArrayIt|
|000034d0| 65 6d 4f 66 66 73 65 74 | 54 09 6f 66 66 73 65 74 |emOffset|T.offset|
|000034e0| 3b 0d 09 09 41 72 72 61 | 79 49 74 65 6d 53 69 7a |;...Arra|yItemSiz|
|000034f0| 65 54 09 09 73 69 7a 65 | 3b 0d 0d 09 09 49 6e 74 |eT..size|;....Int|
|00003500| 65 72 6e 61 6c 47 65 74 | 49 74 65 6d 4f 66 66 73 |ernalGet|ItemOffs|
|00003510| 65 74 41 6e 64 53 69 7a | 65 28 69 6e 49 6e 64 65 |etAndSiz|e(inInde|
|00003520| 78 2c 20 6f 66 66 73 65 | 74 2c 20 73 69 7a 65 29 |x, offse|t, size)|
|00003530| 3b 0d 09 09 0d 09 09 53 | 49 6e 74 33 32 09 73 6f |;......S|Int32.so|
|00003540| 75 72 63 65 20 3d 20 6f | 66 66 73 65 74 20 2d 20 |urce = o|ffset - |
|00003550| 73 69 7a 65 6f 66 28 41 | 72 72 61 79 49 74 65 6d |sizeof(A|rrayItem|
|00003560| 53 69 7a 65 54 29 3b 0d | 09 09 53 49 6e 74 33 32 |SizeT);.|..SInt32|
|00003570| 09 64 65 73 74 20 3d 20 | 73 6f 75 72 63 65 20 2b |.dest = |source +|
|00003580| 28 28 69 6e 49 74 65 6d | 53 69 7a 65 20 2b 20 73 |((inItem|Size + s|
|00003590| 69 7a 65 6f 66 28 41 72 | 72 61 79 49 74 65 6d 53 |izeof(Ar|rayItemS|
|000035a0| 69 7a 65 54 29 29 20 2a | 20 69 6e 43 6f 75 6e 74 |izeT)) *| inCount|
|000035b0| 29 3b 0d 09 09 53 49 6e | 74 33 32 09 6c 65 6e 67 |);...SIn|t32.leng|
|000035c0| 74 68 20 3d 20 47 65 74 | 4c 65 6e 67 74 68 28 29 |th = Get|Length()|
|000035d0| 20 2d 20 73 6f 75 72 63 | 65 3b 0d 09 0d 09 09 49 | - sourc|e;.....I|
|000035e0| 6e 74 65 72 6e 61 6c 53 | 68 69 66 74 44 61 74 61 |nternalS|hiftData|
|000035f0| 28 73 6f 75 72 63 65 2c | 20 64 65 73 74 2c 20 6c |(source,| dest, l|
|00003600| 65 6e 67 74 68 29 3b 0d | 09 09 0d 09 09 53 65 74 |ength);.|.....Set|
|00003610| 4d 61 72 6b 65 72 28 73 | 6f 75 72 63 65 2c 20 73 |Marker(s|ource, s|
|00003620| 74 72 65 61 6d 46 72 6f | 6d 5f 53 74 61 72 74 29 |treamFro|m_Start)|
|00003630| 3b 0d 0d 09 09 66 6f 72 | 20 28 55 49 6e 74 33 32 |;....for| (UInt32|
|00003640| 20 69 20 3d 20 31 3b 20 | 69 20 3c 3d 20 69 6e 43 | i = 1; |i <= inC|
|00003650| 6f 75 6e 74 3b 20 69 2b | 2b 29 0d 09 09 7b 0d 09 |ount; i+|+)...{..|
|00003660| 09 09 41 72 72 61 79 49 | 74 65 6d 53 69 7a 65 54 |..ArrayI|temSizeT|
|00003670| 09 09 62 79 74 65 73 54 | 6f 57 72 69 74 65 20 3d |..bytesT|oWrite =|
|00003680| 20 73 69 7a 65 6f 66 28 | 41 72 72 61 79 49 74 65 | sizeof(|ArrayIte|
|00003690| 6d 53 69 7a 65 54 29 3b | 0d 09 09 09 4f 53 53 74 |mSizeT);|....OSSt|
|000036a0| 61 74 75 73 09 09 09 65 | 72 72 3b 0d 09 09 0d 09 |atus...e|rr;.....|
|000036b0| 09 09 65 72 72 20 3d 20 | 50 75 74 42 79 74 65 73 |..err = |PutBytes|
|000036c0| 28 26 69 6e 49 74 65 6d | 53 69 7a 65 2c 20 62 79 |(&inItem|Size, by|
|000036d0| 74 65 73 54 6f 57 72 69 | 74 65 29 3b 0d 09 09 09 |tesToWri|te);....|
|000036e0| 54 68 72 6f 77 49 66 4f | 53 45 72 72 5f 28 65 72 |ThrowIfO|SErr_(er|
|000036f0| 72 29 3b 0d 09 09 09 0d | 09 09 09 65 72 72 20 3d |r);.....|...err =|
|00003700| 20 50 75 74 42 79 74 65 | 73 28 69 6e 49 74 65 6d | PutByte|s(inItem|
|00003710| 2c 20 69 6e 49 74 65 6d | 53 69 7a 65 29 3b 0d 09 |, inItem|Size);..|
|00003720| 09 09 54 68 72 6f 77 49 | 66 4f 53 45 72 72 5f 28 |..ThrowI|fOSErr_(|
|00003730| 65 72 72 29 3b 0d 09 09 | 7d 0d 09 7d 0d 09 09 0d |err);...|}..}....|
|00003740| 09 49 6e 74 65 72 6e 61 | 6c 53 65 74 43 6f 75 6e |.Interna|lSetCoun|
|00003750| 74 28 69 74 65 6d 43 6f | 75 6e 74 20 2b 20 69 6e |t(itemCo|unt + in|
|00003760| 43 6f 75 6e 74 29 3b 0d | 09 0d 09 72 65 74 75 72 |Count);.|...retur|
|00003770| 6e 20 69 6e 49 6e 64 65 | 78 3b 0d 7d 0d 0d 42 6f |n inInde|x;.}..Bo|
|00003780| 6f 6c 65 61 6e 0d 4c 54 | 65 6d 70 6f 72 61 72 79 |olean.LT|emporary|
|00003790| 46 69 6c 65 41 72 72 61 | 79 3a 3a 49 6e 74 65 72 |FileArra|y::Inter|
|000037a0| 6e 61 6c 52 65 6d 6f 76 | 65 49 74 65 6d 41 74 28 |nalRemov|eItemAt(|
|000037b0| 0d 09 41 72 72 61 79 49 | 6e 64 65 78 54 20 69 6e |..ArrayI|ndexT in|
|000037c0| 49 6e 64 65 78 29 0d 7b | 0d 09 42 6f 6f 6c 65 61 |Index).{|..Boolea|
|000037d0| 6e 09 09 69 74 65 6d 45 | 78 69 73 74 73 20 3d 20 |n..itemE|xists = |
|000037e0| 56 61 6c 69 64 49 6e 64 | 65 78 28 69 6e 49 6e 64 |ValidInd|ex(inInd|
|000037f0| 65 78 29 3b 0d 0d 09 69 | 66 20 28 69 74 65 6d 45 |ex);...i|f (itemE|
|00003800| 78 69 73 74 73 29 0d 09 | 7b 0d 09 09 41 72 72 61 |xists)..|{...Arra|
|00003810| 79 49 74 65 6d 4f 66 66 | 73 65 74 54 09 64 65 73 |yItemOff|setT.des|
|00003820| 74 3b 0d 09 09 41 72 72 | 61 79 49 74 65 6d 53 69 |t;...Arr|ayItemSi|
|00003830| 7a 65 54 09 09 73 69 7a | 65 3b 0d 09 09 0d 09 09 |zeT..siz|e;......|
|00003840| 49 6e 74 65 72 6e 61 6c | 47 65 74 49 74 65 6d 4f |Internal|GetItemO|
|00003850| 66 66 73 65 74 41 6e 64 | 53 69 7a 65 28 69 6e 49 |ffsetAnd|Size(inI|
|00003860| 6e 64 65 78 2c 20 64 65 | 73 74 2c 20 73 69 7a 65 |ndex, de|st, size|
|00003870| 29 3b 0d 09 09 0d 09 09 | 49 6e 74 65 72 6e 61 6c |);......|Internal|
|00003880| 53 68 69 66 74 44 61 74 | 61 28 64 65 73 74 20 2b |ShiftDat|a(dest +|
|00003890| 20 73 69 7a 65 2c 20 64 | 65 73 74 20 2d 20 73 69 | size, d|est - si|
|000038a0| 7a 65 6f 66 28 41 72 72 | 61 79 49 74 65 6d 53 69 |zeof(Arr|ayItemSi|
|000038b0| 7a 65 54 29 2c 20 47 65 | 74 4c 65 6e 67 74 68 28 |zeT), Ge|tLength(|
|000038c0| 29 20 2d 28 64 65 73 74 | 20 2b 20 73 69 7a 65 29 |) -(dest| + size)|
|000038d0| 29 3b 0d 09 09 0d 09 09 | 49 6e 74 65 72 6e 61 6c |);......|Internal|
|000038e0| 53 65 74 43 6f 75 6e 74 | 28 49 6e 74 65 72 6e 61 |SetCount|(Interna|
|000038f0| 6c 47 65 74 43 6f 75 6e | 74 28 29 20 2d 20 31 29 |lGetCoun|t() - 1)|
|00003900| 3b 0d 09 7d 0d 09 0d 09 | 72 65 74 75 72 6e 20 69 |;..}....|return i|
|00003910| 74 65 6d 45 78 69 73 74 | 73 3b 0d 7d 0d 0d 76 6f |temExist|s;.}..vo|
|00003920| 69 64 0d 4c 54 65 6d 70 | 6f 72 61 72 79 46 69 6c |id.LTemp|oraryFil|
|00003930| 65 41 72 72 61 79 3a 3a | 49 6e 74 65 72 6e 61 6c |eArray::|Internal|
|00003940| 47 65 74 49 74 65 6d 4f | 66 66 73 65 74 41 6e 64 |GetItemO|ffsetAnd|
|00003950| 53 69 7a 65 28 0d 09 41 | 72 72 61 79 49 6e 64 65 |Size(..A|rrayInde|
|00003960| 78 54 20 69 6e 49 6e 64 | 65 78 2c 0d 09 41 72 72 |xT inInd|ex,..Arr|
|00003970| 61 79 49 74 65 6d 4f 66 | 66 73 65 74 54 20 26 6f |ayItemOf|fsetT &o|
|00003980| 75 74 4f 66 66 73 65 74 | 2c 0d 09 41 72 72 61 79 |utOffset|,..Array|
|00003990| 49 74 65 6d 53 69 7a 65 | 54 20 26 6f 75 74 53 69 |ItemSize|T &outSi|
|000039a0| 7a 65 29 0d 7b 0d 09 69 | 66 20 28 6d 49 74 65 6d |ze).{..i|f (mItem|
|000039b0| 53 69 7a 65 20 21 3d 20 | 30 29 0d 09 7b 0d 09 09 |Size != |0)..{...|
|000039c0| 6f 75 74 53 69 7a 65 20 | 3d 20 6d 49 74 65 6d 53 |outSize |= mItemS|
|000039d0| 69 7a 65 3b 0d 09 09 6f | 75 74 4f 66 66 73 65 74 |ize;...o|utOffset|
|000039e0| 20 3d 20 61 72 72 61 79 | 5f 46 69 72 73 74 49 74 | = array|_FirstIt|
|000039f0| 65 6d 4f 66 66 73 65 74 | 0d 09 09 09 2b 20 28 28 |emOffset|....+ ((|
|00003a00| 6d 49 74 65 6d 53 69 7a | 65 20 2b 20 73 69 7a 65 |mItemSiz|e + size|
|00003a10| 6f 66 28 41 72 72 61 79 | 49 74 65 6d 53 69 7a 65 |of(Array|ItemSize|
|00003a20| 54 29 29 20 2a 20 28 69 | 6e 49 6e 64 65 78 20 2d |T)) * (i|nIndex -|
|00003a30| 20 31 29 29 0d 09 09 09 | 2b 20 73 69 7a 65 6f 66 | 1))....|+ sizeof|
|00003a40| 28 41 72 72 61 79 49 74 | 65 6d 53 69 7a 65 54 29 |(ArrayIt|emSizeT)|
|00003a50| 3b 0d 09 7d 0d 09 65 6c | 73 65 0d 09 7b 0d 09 09 |;..}..el|se..{...|
|00003a60| 6f 75 74 53 69 7a 65 20 | 3d 20 30 3b 0d 09 09 6f |outSize |= 0;...o|
|00003a70| 75 74 4f 66 66 73 65 74 | 20 3d 20 61 72 72 61 79 |utOffset| = array|
|00003a80| 5f 46 69 72 73 74 49 74 | 65 6d 4f 66 66 73 65 74 |_FirstIt|emOffset|
|00003a90| 3b 0d 09 09 0d 09 09 66 | 6f 72 20 28 41 72 72 61 |;......f|or (Arra|
|00003aa0| 79 49 6e 64 65 78 54 20 | 69 20 3d 20 31 3b 20 69 |yIndexT |i = 1; i|
|00003ab0| 20 3c 3d 20 69 6e 49 6e | 64 65 78 3b 20 69 2b 2b | <= inIn|dex; i++|
|00003ac0| 29 0d 09 09 7b 0d 09 09 | 09 53 49 6e 74 33 32 09 |)...{...|.SInt32.|
|00003ad0| 09 62 79 74 65 73 54 6f | 52 65 61 64 20 3d 20 73 |.bytesTo|Read = s|
|00003ae0| 69 7a 65 6f 66 28 41 72 | 72 61 79 49 74 65 6d 53 |izeof(Ar|rayItemS|
|00003af0| 69 7a 65 54 29 3b 0d 09 | 09 09 4f 53 53 74 61 74 |izeT);..|..OSStat|
|00003b00| 75 73 09 65 72 72 3b 0d | 09 09 09 0d 09 09 09 53 |us.err;.|.......S|
|00003b10| 65 74 4d 61 72 6b 65 72 | 28 6f 75 74 4f 66 66 73 |etMarker|(outOffs|
|00003b20| 65 74 2c 20 73 74 72 65 | 61 6d 46 72 6f 6d 5f 53 |et, stre|amFrom_S|
|00003b30| 74 61 72 74 29 3b 0d 09 | 09 09 0d 09 09 09 65 72 |tart);..|......er|
|00003b40| 72 20 3d 20 47 65 74 42 | 79 74 65 73 28 26 6f 75 |r = GetB|ytes(&ou|
|00003b50| 74 53 69 7a 65 2c 20 62 | 79 74 65 73 54 6f 52 65 |tSize, b|ytesToRe|
|00003b60| 61 64 29 3b 0d 09 09 09 | 54 68 72 6f 77 49 66 4f |ad);....|ThrowIfO|
|00003b70| 53 45 72 72 5f 28 65 72 | 72 29 3b 0d 09 09 09 0d |SErr_(er|r);.....|
|00003b80| 09 09 09 6f 75 74 4f 66 | 66 73 65 74 20 2b 3d 20 |...outOf|fset += |
|00003b90| 73 69 7a 65 6f 66 28 41 | 72 72 61 79 49 74 65 6d |sizeof(A|rrayItem|
|00003ba0| 53 69 7a 65 54 29 3b 0d | 09 09 09 69 66 20 28 69 |SizeT);.|...if (i|
|00003bb0| 20 3c 20 69 6e 49 6e 64 | 65 78 29 0d 09 09 09 7b | < inInd|ex)....{|
|00003bc0| 0d 09 09 09 09 6f 75 74 | 4f 66 66 73 65 74 20 2b |.....out|Offset +|
|00003bd0| 3d 20 6f 75 74 53 69 7a | 65 3b 0d 09 09 09 7d 0d |= outSiz|e;....}.|
|00003be0| 09 09 7d 0d 09 7d 0d 7d | 0d 0d 41 72 72 61 79 49 |..}..}.}|..ArrayI|
|00003bf0| 6e 64 65 78 54 0d 4c 54 | 65 6d 70 6f 72 61 72 79 |ndexT.LT|emporary|
|00003c00| 46 69 6c 65 41 72 72 61 | 79 3a 3a 49 6e 74 65 72 |FileArra|y::Inter|
|00003c10| 6e 61 6c 47 65 74 43 6f | 75 6e 74 28 29 0d 7b 0d |nalGetCo|unt().{.|
|00003c20| 09 41 72 72 61 79 49 6e | 64 65 78 54 09 09 69 74 |.ArrayIn|dexT..it|
|00003c30| 65 6d 73 20 3d 20 30 3b | 0d 09 4f 53 53 74 61 74 |ems = 0;|..OSStat|
|00003c40| 75 73 09 09 65 72 72 3b | 0d 09 53 49 6e 74 33 32 |us..err;|..SInt32|
|00003c50| 09 09 09 62 79 74 65 73 | 54 6f 52 65 61 64 20 3d |...bytes|ToRead =|
|00003c60| 20 73 69 7a 65 6f 66 28 | 41 72 72 61 79 49 6e 64 | sizeof(|ArrayInd|
|00003c70| 65 78 54 29 3b 0d 09 0d | 09 69 66 20 28 47 65 74 |exT);...|.if (Get|
|00003c80| 4c 65 6e 67 74 68 28 29 | 20 3e 3d 20 62 79 74 65 |Length()| >= byte|
|00003c90| 73 54 6f 52 65 61 64 29 | 0d 09 7b 0d 09 09 53 65 |sToRead)|..{...Se|
|00003ca0| 74 4d 61 72 6b 65 72 28 | 61 72 72 61 79 5f 49 74 |tMarker(|array_It|
|00003cb0| 65 6d 43 6f 75 6e 74 4f | 66 66 73 65 74 2c 20 73 |emCountO|ffset, s|
|00003cc0| 74 72 65 61 6d 46 72 6f | 6d 5f 53 74 61 72 74 29 |treamFro|m_Start)|
|00003cd0| 3b 0d 09 09 0d 09 09 65 | 72 72 20 3d 20 47 65 74 |;......e|rr = Get|
|00003ce0| 42 79 74 65 73 28 26 69 | 74 65 6d 73 2c 20 62 79 |Bytes(&i|tems, by|
|00003cf0| 74 65 73 54 6f 52 65 61 | 64 29 3b 0d 09 09 54 68 |tesToRea|d);...Th|
|00003d00| 72 6f 77 49 66 4f 53 45 | 72 72 5f 28 65 72 72 29 |rowIfOSE|rr_(err)|
|00003d10| 3b 0d 09 7d 0d 09 0d 09 | 72 65 74 75 72 6e 20 69 |;..}....|return i|
|00003d20| 74 65 6d 73 3b 0d 7d 0d | 09 0d 76 6f 69 64 0d 4c |tems;.}.|..void.L|
|00003d30| 54 65 6d 70 6f 72 61 72 | 79 46 69 6c 65 41 72 72 |Temporar|yFileArr|
|00003d40| 61 79 3a 3a 49 6e 74 65 | 72 6e 61 6c 53 65 74 43 |ay::Inte|rnalSetC|
|00003d50| 6f 75 6e 74 28 0d 09 41 | 72 72 61 79 49 6e 64 65 |ount(..A|rrayInde|
|00003d60| 78 54 20 69 6e 4e 75 6d | 49 74 65 6d 73 29 0d 7b |xT inNum|Items).{|
|00003d70| 0d 09 53 49 6e 74 33 32 | 09 09 62 79 74 65 73 54 |..SInt32|..bytesT|
|00003d80| 6f 57 72 69 74 65 20 3d | 20 73 69 7a 65 6f 66 28 |oWrite =| sizeof(|
|00003d90| 41 72 72 61 79 49 6e 64 | 65 78 54 29 3b 0d 09 4f |ArrayInd|exT);..O|
|00003da0| 53 53 74 61 74 75 73 09 | 65 72 72 3b 0d 09 0d 09 |SStatus.|err;....|
|00003db0| 53 65 74 4d 61 72 6b 65 | 72 28 61 72 72 61 79 5f |SetMarke|r(array_|
|00003dc0| 49 74 65 6d 43 6f 75 6e | 74 4f 66 66 73 65 74 2c |ItemCoun|tOffset,|
|00003dd0| 20 73 74 72 65 61 6d 46 | 72 6f 6d 5f 53 74 61 72 | streamF|rom_Star|
|00003de0| 74 29 3b 0d 09 0d 09 65 | 72 72 20 3d 20 50 75 74 |t);....e|rr = Put|
|00003df0| 42 79 74 65 73 28 26 69 | 6e 4e 75 6d 49 74 65 6d |Bytes(&i|nNumItem|
|00003e00| 73 2c 20 62 79 74 65 73 | 54 6f 57 72 69 74 65 29 |s, bytes|ToWrite)|
|00003e10| 3b 0d 09 54 68 72 6f 77 | 49 66 4f 53 45 72 72 5f |;..Throw|IfOSErr_|
|00003e20| 28 65 72 72 29 3b 0d 7d | 0d 0d 76 6f 69 64 20 0d |(err);.}|..void .|
|00003e30| 4c 54 65 6d 70 6f 72 61 | 72 79 46 69 6c 65 41 72 |LTempora|ryFileAr|
|00003e40| 72 61 79 3a 3a 49 6e 74 | 65 72 6e 61 6c 53 68 69 |ray::Int|ernalShi|
|00003e50| 66 74 44 61 74 61 28 0d | 09 41 72 72 61 79 49 74 |ftData(.|.ArrayIt|
|00003e60| 65 6d 4f 66 66 73 65 74 | 54 20 69 6e 46 72 6f 6d |emOffset|T inFrom|
|00003e70| 4f 66 66 73 65 74 2c 0d | 09 41 72 72 61 79 49 74 |Offset,.|.ArrayIt|
|00003e80| 65 6d 4f 66 66 73 65 74 | 54 20 69 6e 54 6f 4f 66 |emOffset|T inToOf|
|00003e90| 66 73 65 74 2c 0d 09 41 | 72 72 61 79 49 74 65 6d |fset,..A|rrayItem|
|00003ea0| 53 69 7a 65 54 20 69 6e | 53 69 7a 65 29 0d 7b 0d |SizeT in|Size).{.|
|00003eb0| 09 69 66 20 28 69 6e 46 | 72 6f 6d 4f 66 66 73 65 |.if (inF|romOffse|
|00003ec0| 74 20 2b 20 69 6e 53 69 | 7a 65 20 3e 20 47 65 74 |t + inSi|ze > Get|
|00003ed0| 4c 65 6e 67 74 68 28 29 | 29 0d 09 7b 0d 09 09 53 |Length()|)..{...S|
|00003ee0| 69 67 6e 61 6c 50 53 74 | 72 5f 28 22 5c 70 53 68 |ignalPSt|r_("\pSh|
|00003ef0| 69 66 74 69 6e 67 20 64 | 61 74 61 20 66 72 6f 6d |ifting d|ata from|
|00003f00| 20 62 65 79 6f 6e 64 20 | 45 4f 46 21 22 29 3b 0d | beyond |EOF!");.|
|00003f10| 09 09 72 65 74 75 72 6e | 3b 0d 09 7d 0d 09 0d 09 |..return|;..}....|
|00003f20| 69 66 20 28 28 69 6e 46 | 72 6f 6d 4f 66 66 73 65 |if ((inF|romOffse|
|00003f30| 74 20 3c 20 69 6e 54 6f | 4f 66 66 73 65 74 29 20 |t < inTo|Offset) |
|00003f40| 61 6e 64 28 69 6e 54 6f | 4f 66 66 73 65 74 20 2b |and(inTo|Offset +|
|00003f50| 20 69 6e 53 69 7a 65 20 | 3e 20 47 65 74 4c 65 6e | inSize |> GetLen|
|00003f60| 67 74 68 28 29 29 29 0d | 09 7b 0d 09 09 53 65 74 |gth())).|.{...Set|
|00003f70| 4c 65 6e 67 74 68 28 69 | 6e 54 6f 4f 66 66 73 65 |Length(i|nToOffse|
|00003f80| 74 20 2b 20 69 6e 53 69 | 7a 65 29 3b 0d 09 7d 0d |t + inSi|ze);..}.|
|00003f90| 09 0d 09 69 66 20 28 69 | 6e 53 69 7a 65 20 3e 20 |...if (i|nSize > |
|00003fa0| 30 29 0d 09 7b 0d 09 09 | 53 69 7a 65 20 09 09 09 |0)..{...|Size ...|
|00003fb0| 62 75 66 66 65 72 53 69 | 7a 65 20 3d 20 28 69 6e |bufferSi|ze = (in|
|00003fc0| 53 69 7a 65 20 3c 20 3a | 3a 4d 61 78 42 6c 6f 63 |Size < :|:MaxBloc|
|00003fd0| 6b 28 29 29 20 3f 20 69 | 6e 53 69 7a 65 20 3a 20 |k()) ? i|nSize : |
|00003fe0| 3a 3a 4d 61 78 42 6c 6f | 63 6b 28 29 3b 0d 09 09 |::MaxBlo|ck();...|
|00003ff0| 53 74 50 6f 69 6e 74 65 | 72 42 6c 6f 63 6b 09 62 |StPointe|rBlock.b|
|00004000| 75 66 66 65 72 28 62 75 | 66 66 65 72 53 69 7a 65 |uffer(bu|fferSize|
|00004010| 29 3b 0d 09 09 53 49 6e | 74 33 32 09 09 09 73 6f |);...SIn|t32...so|
|00004020| 75 72 63 65 43 6f 75 6e | 74 65 72 20 3d 20 69 6e |urceCoun|ter = in|
|00004030| 46 72 6f 6d 4f 66 66 73 | 65 74 3b 0d 09 09 53 49 |FromOffs|et;...SI|
|00004040| 6e 74 33 32 09 09 09 64 | 65 73 74 43 6f 75 6e 74 |nt32...d|estCount|
|00004050| 65 72 20 3d 20 69 6e 54 | 6f 4f 66 66 73 65 74 3b |er = inT|oOffset;|
|00004060| 0d 09 09 53 49 6e 74 33 | 32 09 09 09 72 65 6d 61 |...SInt3|2...rema|
|00004070| 69 6e 69 6e 67 20 3d 20 | 69 6e 53 69 7a 65 3b 0d |ining = |inSize;.|
|00004080| 09 09 4f 53 53 74 61 74 | 75 73 09 09 65 72 72 3b |..OSStat|us..err;|
|00004090| 0d 09 09 53 49 6e 74 33 | 32 09 09 09 74 6f 42 65 |...SInt3|2...toBe|
|000040a0| 43 6f 70 69 65 64 3b 0d | 09 09 0d 09 09 77 68 69 |Copied;.|.....whi|
|000040b0| 6c 65 20 28 72 65 6d 61 | 69 6e 69 6e 67 20 3e 20 |le (rema|ining > |
|000040c0| 30 29 0d 09 09 7b 0d 09 | 09 09 74 6f 42 65 43 6f |0)...{..|..toBeCo|
|000040d0| 70 69 65 64 20 3d 20 28 | 62 75 66 66 65 72 53 69 |pied = (|bufferSi|
|000040e0| 7a 65 20 3c 20 72 65 6d | 61 69 6e 69 6e 67 29 20 |ze < rem|aining) |
|000040f0| 3f 20 62 75 66 66 65 72 | 53 69 7a 65 20 3a 20 72 |? buffer|Size : r|
|00004100| 65 6d 61 69 6e 69 6e 67 | 3b 0d 09 09 09 0d 09 09 |emaining|;.......|
|00004110| 09 53 65 74 4d 61 72 6b | 65 72 28 73 6f 75 72 63 |.SetMark|er(sourc|
|00004120| 65 43 6f 75 6e 74 65 72 | 2c 20 73 74 72 65 61 6d |eCounter|, stream|
|00004130| 46 72 6f 6d 5f 53 74 61 | 72 74 29 3b 0d 09 09 09 |From_Sta|rt);....|
|00004140| 65 72 72 20 3d 20 47 65 | 74 42 79 74 65 73 28 62 |err = Ge|tBytes(b|
|00004150| 75 66 66 65 72 2c 20 74 | 6f 42 65 43 6f 70 69 65 |uffer, t|oBeCopie|
|00004160| 64 29 3b 0d 09 09 09 54 | 68 72 6f 77 49 66 4f 53 |d);....T|hrowIfOS|
|00004170| 45 72 72 5f 28 65 72 72 | 29 3b 0d 09 09 09 73 6f |Err_(err|);....so|
|00004180| 75 72 63 65 43 6f 75 6e | 74 65 72 20 2b 3d 20 74 |urceCoun|ter += t|
|00004190| 6f 42 65 43 6f 70 69 65 | 64 3b 0d 09 09 09 0d 09 |oBeCopie|d;......|
|000041a0| 09 09 53 65 74 4d 61 72 | 6b 65 72 28 64 65 73 74 |..SetMar|ker(dest|
|000041b0| 43 6f 75 6e 74 65 72 2c | 20 73 74 72 65 61 6d 46 |Counter,| streamF|
|000041c0| 72 6f 6d 5f 53 74 61 72 | 74 29 3b 0d 09 09 09 65 |rom_Star|t);....e|
|000041d0| 72 72 20 3d 20 50 75 74 | 42 79 74 65 73 28 62 75 |rr = Put|Bytes(bu|
|000041e0| 66 66 65 72 2c 20 74 6f | 42 65 43 6f 70 69 65 64 |ffer, to|BeCopied|
|000041f0| 29 3b 0d 09 09 09 54 68 | 72 6f 77 49 66 4f 53 45 |);....Th|rowIfOSE|
|00004200| 72 72 5f 28 65 72 72 29 | 3b 0d 09 09 09 64 65 73 |rr_(err)|;....des|
|00004210| 74 43 6f 75 6e 74 65 72 | 20 2b 3d 20 74 6f 42 65 |tCounter| += toBe|
|00004220| 43 6f 70 69 65 64 3b 0d | 09 09 09 0d 09 09 09 72 |Copied;.|.......r|
|00004230| 65 6d 61 69 6e 69 6e 67 | 20 2d 3d 20 74 6f 42 65 |emaining| -= toBe|
|00004240| 43 6f 70 69 65 64 3b 0d | 09 09 7d 0d 09 7d 0d 09 |Copied;.|..}..}..|
|00004250| 0d 09 69 66 20 28 28 69 | 6e 46 72 6f 6d 4f 66 66 |..if ((i|nFromOff|
|00004260| 73 65 74 20 3e 20 69 6e | 54 6f 4f 66 66 73 65 74 |set > in|ToOffset|
|00004270| 29 20 61 6e 64 28 69 6e | 46 72 6f 6d 4f 66 66 73 |) and(in|FromOffs|
|00004280| 65 74 20 2b 20 69 6e 53 | 69 7a 65 20 3d 3d 20 47 |et + inS|ize == G|
|00004290| 65 74 4c 65 6e 67 74 68 | 28 29 29 29 0d 09 7b 0d |etLength|()))..{.|
|000042a0| 09 09 53 65 74 4c 65 6e | 67 74 68 28 69 6e 54 6f |..SetLen|gth(inTo|
|000042b0| 4f 66 66 73 65 74 20 2b | 20 69 6e 53 69 7a 65 29 |Offset +| inSize)|
|000042c0| 3b 0d 09 7d 0d 7d 0d 0d | 0d 23 70 72 61 67 6d 61 |;..}.}..|.#pragma|
|000042d0| 20 6d 61 72 6b 20 2d 0d | 0d 0d 76 6f 69 64 0d 4c | mark -.|..void.L|
|000042e0| 54 65 6d 70 6f 72 61 72 | 79 46 69 6c 65 41 72 72 |Temporar|yFileArr|
|000042f0| 61 79 3a 3a 49 6e 69 74 | 41 72 72 61 79 28 0d 09 |ay::Init|Array(..|
|00004300| 41 72 72 61 79 49 74 65 | 6d 53 69 7a 65 54 20 69 |ArrayIte|mSizeT i|
|00004310| 6e 49 74 65 6d 53 69 7a | 65 2c 0d 09 4c 43 6f 6d |nItemSiz|e,..LCom|
|00004320| 70 61 72 61 74 6f 72 20 | 2a 69 6e 43 6f 6d 70 61 |parator |*inCompa|
|00004330| 72 61 74 6f 72 2c 0d 09 | 42 6f 6f 6c 65 61 6e 20 |rator,..|Boolean |
|00004340| 69 6e 49 73 53 6f 72 74 | 65 64 2c 20 0d 09 42 6f |inIsSort|ed, ..Bo|
|00004350| 6f 6c 65 61 6e 20 69 6e | 4b 65 65 70 53 6f 72 74 |olean in|KeepSort|
|00004360| 65 64 29 0d 7b 0d 09 6d | 49 74 65 6d 53 69 7a 65 |ed).{..m|ItemSize|
|00004370| 20 3d 20 69 6e 49 74 65 | 6d 53 69 7a 65 3b 0d 09 | = inIte|mSize;..|
|00004380| 6d 43 6f 6d 70 61 72 61 | 74 6f 72 20 3d 20 69 6e |mCompara|tor = in|
|00004390| 43 6f 6d 70 61 72 61 74 | 6f 72 3b 0d 09 6d 4f 77 |Comparat|or;..mOw|
|000043a0| 6e 73 43 6f 6d 70 61 72 | 61 74 6f 72 20 3d 20 74 |nsCompar|ator = t|
|000043b0| 72 75 65 3b 0d 09 6d 49 | 73 53 6f 72 74 65 64 20 |rue;..mI|sSorted |
|000043c0| 3d 20 69 6e 49 73 53 6f | 72 74 65 64 3b 0d 09 6d |= inIsSo|rted;..m|
|000043d0| 4b 65 65 70 53 6f 72 74 | 65 64 20 3d 20 69 6e 4b |KeepSort|ed = inK|
|000043e0| 65 65 70 53 6f 72 74 65 | 64 3b 0d 09 0d 09 69 66 |eepSorte|d;....if|
|000043f0| 20 28 6d 43 6f 6d 70 61 | 72 61 74 6f 72 20 3d 3d | (mCompa|rator ==|
|00004400| 20 6e 69 6c 29 0d 09 7b | 0d 09 09 6d 4f 77 6e 73 | nil)..{|...mOwns|
|00004410| 43 6f 6d 70 61 72 61 74 | 6f 72 20 3d 20 66 61 6c |Comparat|or = fal|
|00004420| 73 65 3b 0d 09 09 0d 09 | 09 69 66 20 28 69 6e 49 |se;.....|.if (inI|
|00004430| 74 65 6d 53 69 7a 65 20 | 3d 3d 20 73 69 7a 65 6f |temSize |== sizeo|
|00004440| 66 28 6c 6f 6e 67 29 29 | 0d 09 09 7b 0d 09 09 09 |f(long))|...{....|
|00004450| 6d 43 6f 6d 70 61 72 61 | 74 6f 72 20 3d 20 4c 4c |mCompara|tor = LL|
|00004460| 6f 6e 67 43 6f 6d 70 61 | 72 61 74 6f 72 3a 3a 47 |ongCompa|rator::G|
|00004470| 65 74 43 6f 6d 70 61 72 | 61 74 6f 72 28 29 3b 0d |etCompar|ator();.|
|00004480| 09 09 7d 0d 09 09 65 6c | 73 65 0d 09 09 7b 0d 09 |..}...el|se...{..|
|00004490| 09 09 6d 43 6f 6d 70 61 | 72 61 74 6f 72 20 3d 20 |..mCompa|rator = |
|000044a0| 4c 43 6f 6d 70 61 72 61 | 74 6f 72 3a 3a 47 65 74 |LCompara|tor::Get|
|000044b0| 43 6f 6d 70 61 72 61 74 | 6f 72 28 29 3b 0d 09 09 |Comparat|or();...|
|000044c0| 7d 0d 09 7d 0d 09 0d 09 | 56 61 6c 69 64 61 74 65 |}..}....|Validate|
|000044d0| 41 72 72 61 79 28 29 3b | 0d 7d 0d 0d 76 6f 69 64 |Array();|.}..void|
|000044e0| 0d 4c 54 65 6d 70 6f 72 | 61 72 79 46 69 6c 65 41 |.LTempor|aryFileA|
|000044f0| 72 72 61 79 3a 3a 44 65 | 73 74 72 6f 79 41 72 72 |rray::De|stroyArr|
|00004500| 61 79 28 29 0d 7b 0d 09 | 41 72 72 61 79 49 6e 64 |ay().{..|ArrayInd|
|00004510| 65 78 54 09 09 69 74 65 | 6d 43 6f 75 6e 74 20 3d |exT..ite|mCount =|
|00004520| 20 30 3b 0d 09 53 49 6e | 74 33 32 09 09 09 77 72 | 0;..SIn|t32...wr|
|00004530| 69 74 74 65 6e 20 3d 20 | 30 3b 0d 09 53 49 6e 74 |itten = |0;..SInt|
|00004540| 33 32 09 09 09 62 79 74 | 65 73 54 6f 57 72 69 74 |32...byt|esToWrit|
|00004550| 65 20 3d 20 73 69 7a 65 | 6f 66 28 41 72 72 61 79 |e = size|of(Array|
|00004560| 49 6e 64 65 78 54 29 3b | 0d 09 0d 09 53 65 74 4d |IndexT);|....SetM|
|00004570| 61 72 6b 65 72 28 61 72 | 72 61 79 5f 49 74 65 6d |arker(ar|ray_Item|
|00004580| 43 6f 75 6e 74 4f 66 66 | 73 65 74 2c 20 73 74 72 |CountOff|set, str|
|00004590| 65 61 6d 46 72 6f 6d 5f | 53 74 61 72 74 29 3b 0d |eamFrom_|Start);.|
|000045a0| 09 50 75 74 42 79 74 65 | 73 28 26 69 74 65 6d 43 |.PutByte|s(&itemC|
|000045b0| 6f 75 6e 74 2c 20 62 79 | 74 65 73 54 6f 57 72 69 |ount, by|tesToWri|
|000045c0| 74 65 29 3b 0d 09 77 72 | 69 74 74 65 6e 20 2b 3d |te);..wr|itten +=|
|000045d0| 20 62 79 74 65 73 54 6f | 57 72 69 74 65 3b 0d 09 | bytesTo|Write;..|
|000045e0| 53 65 74 4c 65 6e 67 74 | 68 28 77 72 69 74 74 65 |SetLengt|h(writte|
|000045f0| 6e 29 3b 0d 7d 0d 0d 76 | 6f 69 64 0d 4c 54 65 6d |n);.}..v|oid.LTem|
|00004600| 70 6f 72 61 72 79 46 69 | 6c 65 41 72 72 61 79 3a |poraryFi|leArray:|
|00004610| 3a 56 61 6c 69 64 61 74 | 65 41 72 72 61 79 28 29 |:Validat|eArray()|
|00004620| 0d 7b 0d 09 69 66 20 28 | 47 65 74 4c 65 6e 67 74 |.{..if (|GetLengt|
|00004630| 68 28 29 20 3d 3d 20 30 | 29 0d 09 7b 0d 09 09 44 |h() == 0|)..{...D|
|00004640| 65 73 74 72 6f 79 41 72 | 72 61 79 28 29 3b 0d 09 |estroyAr|ray();..|
|00004650| 7d 0d 09 65 6c 73 65 0d | 09 7b 0d 09 09 41 72 72 |}..else.|.{...Arr|
|00004660| 61 79 49 74 65 6d 53 69 | 7a 65 54 09 09 73 69 7a |ayItemSi|zeT..siz|
|00004670| 65 3b 0d 09 09 41 72 72 | 61 79 49 74 65 6d 4f 66 |e;...Arr|ayItemOf|
|00004680| 66 73 65 74 54 09 6f 66 | 66 73 65 74 3b 0d 09 09 |fsetT.of|fset;...|
|00004690| 41 72 72 61 79 49 6e 64 | 65 78 54 09 09 09 69 6e |ArrayInd|exT...in|
|000046a0| 64 65 78 20 3d 20 69 6e | 64 65 78 5f 4c 61 73 74 |dex = in|dex_Last|
|000046b0| 3b 0d 09 09 0d 09 09 56 | 61 6c 69 64 49 6e 64 65 |;......V|alidInde|
|000046c0| 78 28 69 6e 64 65 78 29 | 3b 0d 09 09 0d 09 09 49 |x(index)|;......I|
|000046d0| 6e 74 65 72 6e 61 6c 47 | 65 74 49 74 65 6d 4f 66 |nternalG|etItemOf|
|000046e0| 66 73 65 74 41 6e 64 53 | 69 7a 65 28 69 6e 64 65 |fsetAndS|ize(inde|
|000046f0| 78 2c 20 6f 66 66 73 65 | 74 2c 20 73 69 7a 65 29 |x, offse|t, size)|
|00004700| 3b 0d 09 09 0d 09 09 69 | 66 20 28 6f 66 66 73 65 |;......i|f (offse|
|00004710| 74 20 2b 20 73 69 7a 65 | 20 21 3d 20 47 65 74 4c |t + size| != GetL|
|00004720| 65 6e 67 74 68 28 29 29 | 0d 09 09 7b 0d 09 09 09 |ength())|...{....|
|00004730| 44 65 73 74 72 6f 79 41 | 72 72 61 79 28 29 3b 0d |DestroyA|rray();.|
|00004740| 09 09 7d 0d 09 7d 0d 7d | 0d 0d 76 6f 69 64 0d 4c |..}..}.}|..void.L|
|00004750| 54 65 6d 70 6f 72 61 72 | 79 46 69 6c 65 41 72 72 |Temporar|yFileArr|
|00004760| 61 79 3a 3a 49 6d 70 6f | 72 74 41 72 72 61 79 28 |ay::Impo|rtArray(|
|00004770| 0d 09 63 6f 6e 73 74 20 | 46 53 53 70 65 63 20 26 |..const |FSSpec &|
|00004780| 69 6e 46 72 6f 6d 46 69 | 6c 65 29 0d 7b 0d 09 4c |inFromFi|le).{..L|
|00004790| 46 69 6c 65 53 74 72 65 | 61 6d 09 09 2a 73 6f 75 |FileStre|am..*sou|
|000047a0| 72 63 65 20 3d 20 6e 69 | 6c 3b 0d 09 53 49 6e 74 |rce = ni|l;..SInt|
|000047b0| 33 32 09 09 09 73 6f 75 | 72 63 65 53 69 7a 65 20 |32...sou|rceSize |
|000047c0| 3d 20 30 3b 0d 09 0d 09 | 0d 2f 2f 20 50 72 65 70 |= 0;....|.// Prep|
|000047d0| 61 72 65 20 73 6f 75 72 | 63 65 20 66 69 6c 65 0d |are sour|ce file.|
|000047e0| 09 73 6f 75 72 63 65 20 | 3d 20 6e 65 77 20 4c 46 |.source |= new LF|
|000047f0| 69 6c 65 53 74 72 65 61 | 6d 28 69 6e 46 72 6f 6d |ileStrea|m(inFrom|
|00004800| 46 69 6c 65 29 3b 0d 09 | 54 68 72 6f 77 49 66 4e |File);..|ThrowIfN|
|00004810| 69 6c 5f 28 73 6f 75 72 | 63 65 29 3b 0d 09 73 6f |il_(sour|ce);..so|
|00004820| 75 72 63 65 2d 3e 4f 70 | 65 6e 44 61 74 61 46 6f |urce->Op|enDataFo|
|00004830| 72 6b 28 66 73 52 64 50 | 65 72 6d 29 3b 0d 09 73 |rk(fsRdP|erm);..s|
|00004840| 6f 75 72 63 65 53 69 7a | 65 20 3d 20 73 6f 75 72 |ourceSiz|e = sour|
|00004850| 63 65 2d 3e 47 65 74 4c | 65 6e 67 74 68 28 29 3b |ce->GetL|ength();|
|00004860| 0d 0d 2f 2f 20 50 72 65 | 70 61 72 65 20 64 65 73 |..// Pre|pare des|
|00004870| 74 69 6e 61 74 69 6f 6e | 20 66 69 6c 65 0d 09 53 |tination| file..S|
|00004880| 65 74 4c 65 6e 67 74 68 | 28 73 6f 75 72 63 65 53 |etLength|(sourceS|
|00004890| 69 7a 65 29 3b 0d 09 09 | 0d 2f 2f 20 50 72 65 70 |ize);...|.// Prep|
|000048a0| 61 72 65 20 63 6f 70 79 | 20 62 75 66 66 65 72 0d |are copy| buffer.|
|000048b0| 09 53 69 7a 65 09 09 09 | 62 75 66 66 65 72 53 69 |.Size...|bufferSi|
|000048c0| 7a 65 20 3d 20 28 73 6f | 75 72 63 65 53 69 7a 65 |ze = (so|urceSize|
|000048d0| 20 3c 20 3a 3a 4d 61 78 | 42 6c 6f 63 6b 28 29 29 | < ::Max|Block())|
|000048e0| 20 3f 20 73 6f 75 72 63 | 65 53 69 7a 65 20 3a 20 | ? sourc|eSize : |
|000048f0| 3a 3a 4d 61 78 42 6c 6f | 63 6b 28 29 3b 0d 09 53 |::MaxBlo|ck();..S|
|00004900| 74 50 6f 69 6e 74 65 72 | 42 6c 6f 63 6b 09 62 75 |tPointer|Block.bu|
|00004910| 66 66 65 72 28 62 75 66 | 66 65 72 53 69 7a 65 29 |ffer(buf|ferSize)|
|00004920| 3b 0d 09 0d 2f 2f 20 43 | 6f 70 79 0d 09 53 49 6e |;...// C|opy..SIn|
|00004930| 74 33 32 09 09 73 6f 75 | 72 63 65 43 6f 75 6e 74 |t32..sou|rceCount|
|00004940| 65 72 20 3d 20 30 3b 0d | 09 53 49 6e 74 33 32 09 |er = 0;.|.SInt32.|
|00004950| 09 64 65 73 74 43 6f 75 | 6e 74 65 72 20 3d 20 30 |.destCou|nter = 0|
|00004960| 3b 0d 09 53 49 6e 74 33 | 32 09 09 72 65 6d 61 69 |;..SInt3|2..remai|
|00004970| 6e 69 6e 67 20 3d 20 73 | 6f 75 72 63 65 53 69 7a |ning = s|ourceSiz|
|00004980| 65 3b 0d 09 4f 53 53 74 | 61 74 75 73 09 65 72 72 |e;..OSSt|atus.err|
|00004990| 3b 0d 09 0d 09 77 68 69 | 6c 65 20 28 72 65 6d 61 |;....whi|le (rema|
|000049a0| 69 6e 69 6e 67 20 3e 20 | 30 29 0d 09 7b 0d 09 09 |ining > |0)..{...|
|000049b0| 53 49 6e 74 33 32 09 74 | 6f 42 65 43 6f 70 69 65 |SInt32.t|oBeCopie|
|000049c0| 64 20 3d 20 28 62 75 66 | 66 65 72 53 69 7a 65 20 |d = (buf|ferSize |
|000049d0| 3c 20 72 65 6d 61 69 6e | 69 6e 67 29 20 3f 20 62 |< remain|ing) ? b|
|000049e0| 75 66 66 65 72 53 69 7a | 65 20 3a 20 72 65 6d 61 |ufferSiz|e : rema|
|000049f0| 69 6e 69 6e 67 3b 0d 09 | 09 0d 09 09 73 6f 75 72 |ining;..|....sour|
|00004a00| 63 65 2d 3e 53 65 74 4d | 61 72 6b 65 72 28 73 6f |ce->SetM|arker(so|
|00004a10| 75 72 63 65 43 6f 75 6e | 74 65 72 2c 20 73 74 72 |urceCoun|ter, str|
|00004a20| 65 61 6d 46 72 6f 6d 5f | 53 74 61 72 74 29 3b 0d |eamFrom_|Start);.|
|00004a30| 09 09 65 72 72 20 3d 20 | 73 6f 75 72 63 65 2d 3e |..err = |source->|
|00004a40| 47 65 74 42 79 74 65 73 | 28 62 75 66 66 65 72 2c |GetBytes|(buffer,|
|00004a50| 20 74 6f 42 65 43 6f 70 | 69 65 64 29 3b 0d 09 09 | toBeCop|ied);...|
|00004a60| 54 68 72 6f 77 49 66 4f | 53 45 72 72 5f 28 65 72 |ThrowIfO|SErr_(er|
|00004a70| 72 29 3b 0d 09 09 73 6f | 75 72 63 65 43 6f 75 6e |r);...so|urceCoun|
|00004a80| 74 65 72 20 2b 3d 20 74 | 6f 42 65 43 6f 70 69 65 |ter += t|oBeCopie|
|00004a90| 64 3b 0d 09 09 0d 09 09 | 53 65 74 4d 61 72 6b 65 |d;......|SetMarke|
|00004aa0| 72 28 64 65 73 74 43 6f | 75 6e 74 65 72 2c 20 73 |r(destCo|unter, s|
|00004ab0| 74 72 65 61 6d 46 72 6f | 6d 5f 53 74 61 72 74 29 |treamFro|m_Start)|
|00004ac0| 3b 0d 09 09 65 72 72 20 | 3d 20 50 75 74 42 79 74 |;...err |= PutByt|
|00004ad0| 65 73 28 62 75 66 66 65 | 72 2c 20 74 6f 42 65 43 |es(buffe|r, toBeC|
|00004ae0| 6f 70 69 65 64 29 3b 0d | 09 09 54 68 72 6f 77 49 |opied);.|..ThrowI|
|00004af0| 66 4f 53 45 72 72 5f 28 | 65 72 72 29 3b 0d 09 09 |fOSErr_(|err);...|
|00004b00| 64 65 73 74 43 6f 75 6e | 74 65 72 20 2b 3d 20 74 |destCoun|ter += t|
|00004b10| 6f 42 65 43 6f 70 69 65 | 64 3b 0d 09 09 0d 09 09 |oBeCopie|d;......|
|00004b20| 72 65 6d 61 69 6e 69 6e | 67 20 2d 3d 20 74 6f 42 |remainin|g -= toB|
|00004b30| 65 43 6f 70 69 65 64 3b | 0d 09 7d 0d 0d 2f 2f 20 |eCopied;|..}..// |
|00004b40| 43 6c 6f 73 65 20 66 69 | 6c 65 73 09 0d 09 73 6f |Close fi|les...so|
|00004b50| 75 72 63 65 2d 3e 43 6c | 6f 73 65 44 61 74 61 46 |urce->Cl|oseDataF|
|00004b60| 6f 72 6b 28 29 3b 0d 09 | 09 0d 09 69 66 20 28 73 |ork();..|...if (s|
|00004b70| 6f 75 72 63 65 20 21 3d | 20 6e 69 6c 29 0d 09 7b |ource !=| nil)..{|
|00004b80| 0d 09 09 64 65 6c 65 74 | 65 20 73 6f 75 72 63 65 |...delet|e source|
|00004b90| 3b 0d 09 7d 0d 0d 2f 2f | 20 43 68 65 63 6b 20 69 |;..}..//| Check i|
|00004ba0| 6e 74 65 67 72 69 74 79 | 20 6f 66 20 69 6d 70 6f |ntegrity| of impo|
|00004bb0| 72 74 65 64 20 61 72 72 | 61 79 09 0d 09 56 61 6c |rted arr|ay...Val|
|00004bc0| 69 64 61 74 65 41 72 72 | 61 79 28 29 3b 0d 7d 0d |idateArr|ay();.}.|
|00004bd0| 0d 76 6f 69 64 0d 4c 54 | 65 6d 70 6f 72 61 72 79 |.void.LT|emporary|
|00004be0| 46 69 6c 65 41 72 72 61 | 79 3a 3a 45 78 70 6f 72 |FileArra|y::Expor|
|00004bf0| 74 41 72 72 61 79 28 0d | 09 63 6f 6e 73 74 20 46 |tArray(.|.const F|
|00004c00| 53 53 70 65 63 20 26 69 | 6e 54 6f 46 69 6c 65 29 |SSpec &i|nToFile)|
|00004c10| 0d 7b 0d 2f 2f 20 50 72 | 65 70 61 72 65 20 73 6f |.{.// Pr|epare so|
|00004c20| 75 72 63 65 20 66 69 6c | 65 0d 09 53 49 6e 74 33 |urce fil|e..SInt3|
|00004c30| 32 09 09 09 73 6f 75 72 | 63 65 53 69 7a 65 20 3d |2...sour|ceSize =|
|00004c40| 20 47 65 74 4c 65 6e 67 | 74 68 28 29 3b 0d 09 0d | GetLeng|th();...|
|00004c50| 2f 2f 20 50 72 65 70 61 | 72 65 20 64 65 73 74 69 |// Prepa|re desti|
|00004c60| 6e 61 74 69 6f 6e 20 66 | 69 6c 65 0d 09 4c 46 69 |nation f|ile..LFi|
|00004c70| 6c 65 53 74 72 65 61 6d | 09 09 2a 64 65 73 74 20 |leStream|..*dest |
|00004c80| 3d 20 6e 65 77 20 4c 46 | 69 6c 65 53 74 72 65 61 |= new LF|ileStrea|
|00004c90| 6d 28 69 6e 54 6f 46 69 | 6c 65 29 3b 0d 09 54 68 |m(inToFi|le);..Th|
|00004ca0| 72 6f 77 49 66 4e 69 6c | 5f 28 64 65 73 74 29 3b |rowIfNil|_(dest);|
|00004cb0| 0d 09 0d 09 64 65 73 74 | 2d 3e 4f 70 65 6e 44 61 |....dest|->OpenDa|
|00004cc0| 74 61 46 6f 72 6b 28 66 | 73 52 64 57 72 50 65 72 |taFork(f|sRdWrPer|
|00004cd0| 6d 29 3b 0d 09 64 65 73 | 74 2d 3e 53 65 74 4c 65 |m);..des|t->SetLe|
|00004ce0| 6e 67 74 68 28 73 6f 75 | 72 63 65 53 69 7a 65 29 |ngth(sou|rceSize)|
|00004cf0| 3b 0d 0d 2f 2f 20 50 72 | 65 70 61 72 65 20 63 6f |;..// Pr|epare co|
|00004d00| 70 79 20 62 75 66 66 65 | 72 0d 09 53 69 7a 65 09 |py buffe|r..Size.|
|00004d10| 09 09 62 75 66 66 65 72 | 53 69 7a 65 20 3d 20 28 |..buffer|Size = (|
|00004d20| 73 6f 75 72 63 65 53 69 | 7a 65 20 3c 20 3a 3a 4d |sourceSi|ze < ::M|
|00004d30| 61 78 42 6c 6f 63 6b 28 | 29 29 20 3f 20 73 6f 75 |axBlock(|)) ? sou|
|00004d40| 72 63 65 53 69 7a 65 20 | 3a 20 3a 3a 4d 61 78 42 |rceSize |: ::MaxB|
|00004d50| 6c 6f 63 6b 28 29 3b 0d | 09 53 74 50 6f 69 6e 74 |lock();.|.StPoint|
|00004d60| 65 72 42 6c 6f 63 6b 09 | 62 75 66 66 65 72 28 62 |erBlock.|buffer(b|
|00004d70| 75 66 66 65 72 53 69 7a | 65 29 3b 0d 09 0d 2f 2f |ufferSiz|e);...//|
|00004d80| 20 43 6f 70 79 0d 09 53 | 49 6e 74 33 32 09 09 09 | Copy..S|Int32...|
|00004d90| 73 6f 75 72 63 65 43 6f | 75 6e 74 65 72 20 3d 20 |sourceCo|unter = |
|00004da0| 30 3b 0d 09 53 49 6e 74 | 33 32 09 09 09 64 65 73 |0;..SInt|32...des|
|00004db0| 74 43 6f 75 6e 74 65 72 | 20 3d 20 30 3b 0d 09 53 |tCounter| = 0;..S|
|00004dc0| 49 6e 74 33 32 09 09 09 | 72 65 6d 61 69 6e 69 6e |Int32...|remainin|
|00004dd0| 67 20 3d 20 73 6f 75 72 | 63 65 53 69 7a 65 3b 0d |g = sour|ceSize;.|
|00004de0| 09 4f 53 53 74 61 74 75 | 73 09 09 65 72 72 3b 0d |.OSStatu|s..err;.|
|00004df0| 09 0d 09 77 68 69 6c 65 | 20 28 72 65 6d 61 69 6e |...while| (remain|
|00004e00| 69 6e 67 20 3e 20 30 29 | 0d 09 7b 0d 09 09 53 49 |ing > 0)|..{...SI|
|00004e10| 6e 74 33 32 09 74 6f 42 | 65 43 6f 70 69 65 64 20 |nt32.toB|eCopied |
|00004e20| 3d 20 28 62 75 66 66 65 | 72 53 69 7a 65 20 3c 20 |= (buffe|rSize < |
|00004e30| 72 65 6d 61 69 6e 69 6e | 67 29 20 3f 20 62 75 66 |remainin|g) ? buf|
|00004e40| 66 65 72 53 69 7a 65 20 | 3a 20 72 65 6d 61 69 6e |ferSize |: remain|
|00004e50| 69 6e 67 3b 0d 09 09 0d | 09 09 53 65 74 4d 61 72 |ing;....|..SetMar|
|00004e60| 6b 65 72 28 73 6f 75 72 | 63 65 43 6f 75 6e 74 65 |ker(sour|ceCounte|
|00004e70| 72 2c 20 73 74 72 65 61 | 6d 46 72 6f 6d 5f 53 74 |r, strea|mFrom_St|
|00004e80| 61 72 74 29 3b 0d 09 09 | 65 72 72 20 3d 20 47 65 |art);...|err = Ge|
|00004e90| 74 42 79 74 65 73 28 62 | 75 66 66 65 72 2c 20 74 |tBytes(b|uffer, t|
|00004ea0| 6f 42 65 43 6f 70 69 65 | 64 29 3b 0d 09 09 54 68 |oBeCopie|d);...Th|
|00004eb0| 72 6f 77 49 66 4f 53 45 | 72 72 5f 28 65 72 72 29 |rowIfOSE|rr_(err)|
|00004ec0| 3b 0d 09 09 73 6f 75 72 | 63 65 43 6f 75 6e 74 65 |;...sour|ceCounte|
|00004ed0| 72 20 2b 3d 20 74 6f 42 | 65 43 6f 70 69 65 64 3b |r += toB|eCopied;|
|00004ee0| 0d 09 09 0d 09 09 64 65 | 73 74 2d 3e 53 65 74 4d |......de|st->SetM|
|00004ef0| 61 72 6b 65 72 28 64 65 | 73 74 43 6f 75 6e 74 65 |arker(de|stCounte|
|00004f00| 72 2c 20 73 74 72 65 61 | 6d 46 72 6f 6d 5f 53 74 |r, strea|mFrom_St|
|00004f10| 61 72 74 29 3b 0d 09 09 | 65 72 72 20 3d 20 64 65 |art);...|err = de|
|00004f20| 73 74 2d 3e 50 75 74 42 | 79 74 65 73 28 62 75 66 |st->PutB|ytes(buf|
|00004f30| 66 65 72 2c 20 74 6f 42 | 65 43 6f 70 69 65 64 29 |fer, toB|eCopied)|
|00004f40| 3b 0d 09 09 54 68 72 6f | 77 49 66 4f 53 45 72 72 |;...Thro|wIfOSErr|
|00004f50| 5f 28 65 72 72 29 3b 0d | 09 09 64 65 73 74 43 6f |_(err);.|..destCo|
|00004f60| 75 6e 74 65 72 20 2b 3d | 20 74 6f 42 65 43 6f 70 |unter +=| toBeCop|
|00004f70| 69 65 64 3b 0d 09 09 0d | 09 09 72 65 6d 61 69 6e |ied;....|..remain|
|00004f80| 69 6e 67 20 2d 3d 20 74 | 6f 42 65 43 6f 70 69 65 |ing -= t|oBeCopie|
|00004f90| 64 3b 0d 09 7d 0d 0d 2f | 2f 20 43 6c 6f 73 65 20 |d;..}../|/ Close |
|00004fa0| 66 69 6c 65 73 09 0d 09 | 64 65 73 74 2d 3e 43 6c |files...|dest->Cl|
|00004fb0| 6f 73 65 44 61 74 61 46 | 6f 72 6b 28 29 3b 0d 09 |oseDataF|ork();..|
|00004fc0| 09 09 09 0d 09 64 65 6c | 65 74 65 20 64 65 73 74 |.....del|ete dest|
|00004fd0| 3b 0d 7d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |;.}.....|........|
|00004fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005000| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F|
|00005010| 00 0c 85 39 00 00 01 28 | 00 00 00 00 00 00 00 00 |...9...(|........|
|00005020| 44 65 76 69 63 65 5f 4d | 61 6e 61 67 65 72 00 00 |Device_M|anager..|
|00005030| 0d 4c 41 72 72 61 79 46 | 69 6c 65 2e 63 70 64 20 |.LArrayF|ile.cpd |
|00005040| 2d 20 63 68 61 70 31 39 | 20 28 70 72 69 6e 74 29 |- chap19| (print)|
|00005050| 02 4d 54 45 58 54 43 57 | 49 45 01 00 ff ff ff ff |.MTEXTCW|IE......|
|00005060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005070| 00 00 b2 46 94 70 00 00 | 36 f1 00 00 01 9a 4d 61 |...F.p..|6.....Ma|
|00005080| 6e 61 67 65 72 00 00 00 | 00 05 00 00 00 00 50 6f |nager...|......Po|
|00005090| 77 65 72 5f 4d 61 6e 61 | 67 65 72 00 00 00 00 06 |wer_Mana|ger.....|
|000050a0| 00 00 00 00 53 65 72 69 | 61 6c 5f 44 72 69 76 65 |....Seri|al_Drive|
|000050b0| 72 00 00 00 00 08 00 00 | 00 00 4c 69 73 74 69 6e |r.......|..Listin|
|000050c0| 67 5f 31 5f 31 5f 44 00 | 00 00 00 09 00 00 00 00 |g_1_1_D.|........|
|000050d0| 4c 69 73 74 69 6e 67 5f | 31 5f 32 5f 44 00 00 00 |Listing_|1_2_D...|
|000050e0| 00 0a 00 00 00 00 4c 69 | 73 74 69 6e 67 5f 31 5f |......Li|sting_1_|
|000050f0| 33 5f 44 00 00 00 00 0b | 00 00 00 00 4c 69 73 74 |3_D.....|....List|
|00005100| 00 00 00 48 00 0c 43 6f | 75 72 69 65 72 00 00 00 |...H..Co|urier...|
|00005110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005120| 00 00 00 00 00 00 00 07 | 00 04 00 2e 00 0a 02 f5 |........|........|
|00005130| 02 8a 00 2e 00 0a 02 f5 | 02 8a b4 ed a7 95 00 00 |........|........|
|00005140| 03 80 00 00 03 80 00 00 | 03 e1 01 00 00 00 00 04 |........|........|
|00005150| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T|
|00005160| 00 00 00 46 06 f3 c6 84 | 03 2a 00 00 00 1c 00 46 |...F....|.*.....F|
|00005170| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..|
|00005180| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........|
|00005190| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........|
|000051a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000051f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+