unit FBoots; interface var //important data FbusArun: array[0..13] of Byte= //($1E, $00, $10, $58, $00, $08, $00, $11, $01, $F0, $02, $00, $01, $40); ($32, $CE, $33, $E9, $74, $A9, $21, $3F, $01, $F0, $02, $00, $01, $40); fbuss60getdrv : array [0..13] of Byte = //($1E, $00, $10, $58, $00, $08, $00, $0D, $02, $1F, $00, $00, $01, $42); ($4C, $E1, $D6, $D5, $09, $26, $97, $64, $02, $1F, $00, $00, $01, $42); FChkPhMode: array[0..13] of Byte = //($1E, $00, $10, $15, $00, $08, $00, $06, $00, $02, $00, $00, $01, $41); ($32, $F3, $CD, $F3, $7A, $70, $97, $F0, $00, $02, $00, $00, $01, $41); FGetS40PhbCouC : array[0..17] of byte = //($1E, $00, $10, $03, $00, $0C, $00, $01, $00, $03, $02, $05, $00, $00, $00, $00, $01, $41); ($E6, $6A, $A6, $7F, $79, $91, $A2, $25, $00, $03, $02, $05, $00, $00, $00, $00, $01, $41); FGetS40PhbRecC : array[0..25] of byte = //($1E, $00, $10, $03, $00, $14, $00, $01, $00, $07, $01, $01, $00, $01, $FE, $05, $00, $00, $00, $00, $00, $01, $00, $00, $01, $41); ($D7, $1A, $B2, $D6, $5F, $7D, $BA, $E9, $00, $07, $01, $01, $00, $01, $FE, $05, $00, $00, $00, $00, $00, $01, $00, $00, $01, $41); FS40PhbRecWr : array[0..25] of byte = //($1E, $00, $10, $03, $00, $00, $00, $01, $00, $0B, $00, $01, $01, $00, $00, $10, $02, $05, $FF, $FF, $00, $00, $00, $00, $00, $00); ($D7, $EC, $49, $54, $BE, $5E, $2E, $E5, $00, $0B, $00, $01, $01, $00, $00, $10, $02, $05, $FF, $FF, $00, $00, $00, $00, $00, $00); FS40PhbRecWrEnd : array[0..17] of byte = //($1E, $00, $10, $03, $00, $0C, $00, $01, $00, $03, $02, $05, $00, $00, $00, $00, $01, $41); ($E6, $6A, $A6, $7F, $79, $91, $A2, $25, $00, $03, $02, $05, $00, $00, $00, $00, $01, $41); Flistdrv1 : array [0..13] of Byte = //($1E, $00, $10, $6D, $00, $08, $00, $0D, $01, $F0, $12, $00, $01, $00); ($6B, $80, $E7, $A7, $F1, $60, $B3, $BA, $01, $F0, $12, $00, $01, $00); schk: array [0..7] of Byte = //($1E, $00, $10, $7F, $00, $00, $00, $00); ($8F, $BC, $CD, $FD, $03, $44, $6C, $C8); //important data end FSx4chst : array [0..13] of Byte = ($1E, $00, $10, $08, $00, $08, $00, $08, $05, $31, $00, $00, $01, $00); FSx41st : array [0..13] of Byte = ($1E, $00, $10, $08, $00, $08, $00, $08, $02, $1F, $00, $00, $01, $00); FSx42st : array [0..11] of Byte = ($1E, $00, $10, $08, $00, $20, $00, $08, $03, $21, $00, $00); FSx43st : array [0..11] of Byte = ($1E, $00, $10, $08, $00, $20, $00, $08, $04, $23, $00, $00); rst1: array[0..13] of Byte = ($1E,$00,$10,$15,$00,$08,$00,$07,$00,$13,$00,$00,$01,$40); //checkmode : array [0..13] of Byte = //($1E,$00,$10,$10,$00,$08,$00,$04,$44,$10,$01,$15,$01,$40); Ask: array [0..7] of byte = ($1E, $00, $10, $7F, $00, $02, $00, $00); Fbs60keybtststart : array [0..13] of byte = ($1E, $00, $10, $58, $00, $08, $00, $10, $03, $5A, $00, $00, $01, $00); Fbs60keybTst2nd : array [0..13] of Byte = ($1E, $00, $10, $58, $00, $08, $00, $10, $04, $00, $0F, $00, $01, $00); Fbs60keybCheck : array [0..13] of Byte = ($1E, $00, $10, $58, $00, $08, $00, $10, $05, $00, $0E, $00, $01, $00); Fbs60keytestfree : array [0..13] of Byte = ($1E, $00, $10, $58, $00, $08, $00, $10, $06, $00, $10, $00, $01, $00); S40KeybSt : array [0..13] of Byte = ($1E, $00, $10, $0C, $00, $08, $00, $10, $01, $15, $00, $00, $01, $00); s40KeyBend : array [0..13] of Byte = ($1E, $00, $10, $0C, $00, $08, $00, $10, $02, $15, $02, $00, $01, $00); s40checkkeys : array [0..13] of byte = ($1E, $00, $10, $0C, $00, $08, $00, $10, $0F, $15, $01, $00, $01, $00); fs40preformat : array [0..13] of Byte = ($1E, $00, $10, $1B, $00, $08, $00, $0E, $32, $15, $0A, $00, $01, $41); fbs60formatcycle : array [0..17] of Byte = ($1E, $00, $10, $58, $00, $0C, $00, $0D, $00, $4C, $4A, $00, $00, $00, $00, $00, $01, $42); fbs60format1st : array [0..17] of Byte = ($1E, $00, $10, $58, $00, $0C, $00, $0D, $D4, $4C, $0F, $00, $00, $00, $00, $00, $01, $41); fpref : array[0..13] of Byte = ($1E, $00, $10, $58, $00, $08, $00, $0D, $01, $5A, $00, $00, $01, $41); rst2 : array[0..13] of Byte= ($1E,$00,$10,$15,$00,$08,$00,$07,$00,$01,$04,$00,$01,$41); rst3 : array [0..13] of byte = ($1E,$00,$10,$10,$00,$08,$00,$04,$A3,$10,$01,$15,$01,$42); rst31 : array[0..13] of Byte = ($1E,$00,$10,$10,$00,$08,$00,$04,$A4,$10,$01,$15,$01,$44); rst32 : array [0..17] of Byte = ($1e,$00,$10,$1b,$00,$0C,$00,$02,$0b,$07,$00,$00,$00,$00,$00,$08,$01,$45); rst33 : array [0..13] of Byte = ($1e,$00,$10,$08,$00,$06,$00,$0b,$a5,$33,$00,$00,$01,$47); rst34 : array [0..13] of Byte = ($1e,$00,$10,$08,$00,$06,$00,$0b,$a6,$35,$00,$00,$01,$40); rst35 : array [0..13] of Byte = ($1e,$00,$10,$10,$00,$06,$00,$04,$a7,$10,$01,$15,$01,$41); rst36 : array [0..13] of Byte = ($1e,$00,$10,$15,$00,$06,$00,$0a,$a8,$02,$00,$00,$01,$42); rst37 : array [0..13] of Byte = ($1e,$00,$10,$15,$00,$06,$00,$11,$a4,$0e,$00,$00,$01,$43); rst38 : array [0..13] of Byte = ($1e,$00,$10,$15,$00,$06,$00,$0a,$a9,$02,$00,$00,$01,$44); rst4 : array [0..13] of Byte = ($1E,$00,$10,$08,$00,$08,$00,$01,$00,$31,$00,$00,$01,$43); intsizeind : array [0..13] of Byte = ($1E,$00,$10,$17,$00,$08,$00,$13,$76,$11,$04,$01,$01,$43); getbbat : array [0..13] of Byte = ($1E,$00,$10,$17,$00,$08,$00,$13,$26,$11,$13,$01,$01,$43); Getbtemp : array [0..13] of Byte= ($1E,$00,$10,$17,$00,$08,$00,$13,$01,$0F,$05,$01,$01,$41); Fercor : array [0..7] of byte= ($1E, $00, $10, $7F, $00, $02, $35, $02); Ftest1st : array [0..13] of byte = ($1E, $00, $10, $35, $00, $08, $00, $10, $00, $04, $03, $00, $01, $40); Ftestst2: array [0..13] of byte = ($1E, $00, $10, $35, $00, $08, $00, $10, $03, $04, $01, $00, $01, $42); Ftestst3: array [0..13] of byte = ($1E, $00, $10, $35, $00, $08, $00, $10, $04, $04, $02, $00, $01, $43); Ftestcol : array [0..13] of byte = ($1E, $00, $10, $35, $00, $08, $00, $10, $05, $06, $03, $00, $01, $41); Faftertest : array [0..13] of Byte = ($1E, $00, $10, $35, $00, $08, $00, $10, $09, $02, $03, $00, $01, $44); newFtest1 : array[0..13] of byte = ($1E, $00, $10, $15, $00, $08, $00, $06, $00, $02, $00, $00, $01, $40); newFtestCol : array[0..13] of byte = ($1E, $00, $10, $35, $00, $08, $00, $08, $01, $06, $03, $00, $01, $41); Ftesting : array [0..21] of byte= ($1E, $00, $10, $35, $00, $10, $00, $10, $00, $00, $00, $01, $00, $08, $01, $00, $00, $00, $00, $00, $01, $40); FSetMode: array[0..13] of Byte = ($1E, $00, $10, $15, $00, $08, $00, $07, $01, $01, $00, $00, $01, $41); FGetBlock: array[0..13] of Byte = ($1E, $00, $10, $23, $00, $08, $00, $0D, $00, $0E, $00, $00, $01, $41); FGetBlockXXXFieldXXX: array[0..17] of Byte = ($1E, $00, $10, $23, $00, $0C, $00, $0D, $00, $0C, $00, $00, $00, $05, $00, $00, $01, $41); FGetBlRecData: array[0..25] of Byte = ($1E, $00, $10, $23, $00, $14, $00, $0D, $01, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $41); FGetBlRecLongData: array[0..25] of Byte = ($1E, $00, $10, $23, $00, $14, $00, $0D, $01, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04, $00, $01, $41); FRdPPItem: array[0..21] of byte = ($1E, $00, $10, $1B, $00, $10, $00, $12, $05, $02, $00, $01, $47, $08, $01, $01, $00, $00, $00, $00, $01, $41); // | Len | |CMD| |Item| FApeVer : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $00, $02, $01, $41); FPhoneName : array[0..13] of Byte = ($1E, $00, $10, $1B, $00, $08, $00, $01, $00, $15, $01, $00, $01, $41); FSowtwareInfo : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $05, $00, $07, $00, $01, $00, $00, $00, $00, $01, $41); FIMEIplain : array[0..15] of Byte = ($1E, $00, $10, $1B, $00, $0A, $00, $06, $00, $00, $41, $00, $00, $00, $01, $41); FApeVarVer : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $00, $04, $01, $41); FAPEAdsp : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $00, $80, $01, $41); FDSPinf : array[0..17] of byte = ($1E, $00, $10, $1B, $00, $0C, $00, $03, $00, $07, $00, $40, $00, $00, $00, $00, $01, $41); FApetest : array [0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $00, $08, $01, $41); FPPMversioninfo : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $03, $00, $07, $01, $00, $00, $00, $00, $00, $01, $41); FCNTinfo : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $0C, $07, $00, $00, $00, $00, $04, $00, $01, $41); FProductionSerialnumber : array[0..13] of Byte = ($1E, $00, $10, $1B, $00, $08, $00, $03, $00, $0B, $00, $01, $01, $41); FProductCode : array[0..13] of Byte = ($1E, $00, $10, $1B, $00, $08, $00, $03, $00, $0B, $00, $02, $01, $41); FBasicProductionCode : array[0..13] of Byte = ($1E, $00, $10, $1B, $00, $08, $00, $03, $00, $0B, $00, $08, $01, $41); FMcode : array[0..13] of Byte = ($1E, $00, $10, $1B, $00, $08, $00, $03, $00, $0B, $00, $04, $01, $41); FLSN : array[0..13] of Byte = ($1E, $00, $10, $1B, $00, $08, $00, $03, $00, $0B, $00, $80, $01, $41); FHWversion : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $03, $00, $07, $00, $02, $00, $00, $00, $00, $01, $41); FRetuVersion : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $00, $10, $01, $41); FTahvoVersion : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $00, $20, $01, $41); FBatvalue : array [0..13] of byte = ($1E, $00, $10, $17, $00, $08, $00, $07, $03, $11, $01, $01, $01, $41); FBtversion : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $03, $00, $07, $02, $00, $00, $00, $00, $00, $01, $41); FApeBt : array [0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $02, $00, $01, $41); FApeHw : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $06, $00, $07, $00, $00, $00, $00, $00, $40, $01, $41); FLCDver: array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $03, $00, $07, $00, $80, $00, $00, $00, $00, $01, $41); FRFic : array[0..17] of Byte = ($1E, $00, $10, $1B, $00, $0C, $00, $03, $00, $07, $00, $20, $00, $00, $00, $00, $01, $41); FGetChek : array[0..13] of Byte = ($1E, $00, $10, $6F, $00, $08, $00, $16, $04, $01, $00, $00, $01, $41); FGetASK : array[0..13] of Byte = ($1E, $00, $10, $08, $00, $08, $00, $01, $05, $1F, $00, $00, $01, $41); FWrPPItem: array[0..21] of byte = ($1E, $00, $10, $1B, $00, $10, $00, $12, $04, $04, $00, $01, $47, $08, $01, $01, $00, $1F, $00, $00, $01, $41); // | Len ||CMD| |Item||Data| FWritePmFieldRec : array[0..19] of byte = ($1E, $00, $10, $23, $00, $10, $00, $0E, $00, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00); // |ComLen | |Com||Cou| | Field | |Record | |DataLength| Synk: array [0..7] of byte = ($55, $55, $55, $55, $55, $55, $55, $55); FbusFullFactory : array[0..17] of Byte = ($1E, $00, $10, $43, $00, $0C ,$00, $08, $02, $01, $78, $00, $00, $00, $00, $01, $01, $41); FbusSoftupgr : array[0..17] of Byte = ($1E, $00, $10, $43, $00, $0C ,$00, $08, $02, $01, $78, $00, $00, $00, $00, $10, $01, $41); FbusServiceCentre : array[0..17] of Byte = ($1E, $00, $10, $43, $00, $0C ,$00, $08, $02, $01, $78, $00, $00, $00, $00, $08, $01, $41); FbusProductTune : array[0..17] of Byte = ($1E, $00, $10, $43, $00, $0C ,$00, $08, $02, $01, $78, $00, $00, $00, $00, $20, $01, $41); FbusUserDataRes : array[0..17] of Byte = ($1E, $00, $10, $43, $00, $0C ,$00, $08, $02, $01, $78, $00, $00, $00, $00, $02, $01, $41); FbusLeavefactoryset : array[0..17] of Byte = ($1E, $00, $10, $43, $00, $0C ,$00, $08, $02, $01, $78, $00, $00, $00, $00, $04, $01, $41); FbusLCDpat : array[0..17] of byte = ($1E, $00, $10, $58, $00, $0C, $00, $0F, $00, $00, $12, $01, $00, $04, $00, $00, $01, $41); fbusgetlock : array [0..10] of Byte = ($1E, $00, $10, $53, $00, $05, $00, $0F, $01, $12, $0D); fbusreslt : array [0..57] of byte = ($1E, $00, $10, $23, $00, $34, $00, $0E, $00, $02, $00, $58, $00, $00, $00, $00, $00, $00, $00, $24, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $46); Flistdrv2 : array [0..13] of Byte = ($1E, $00, $10, $6D, $00, $08, $00, $0D, $02, $76, $00, $00, $01, $00); Flistdrv: array [0..13] of Byte = ($1E, $00, $10, $6D, $00, $08, $00, $0D, $03, $7D, $00, $00, $01, $00); Fs40FormatDrv : array [0..13] of Byte = ($1E, $00, $10, $6D, $00, $08, $00, $0D, $04, $78, $00, $43, $01, $00); Flistdrv60 : array [0..13] of Byte = ($1E, $00, $10, $58, $00, $08, $00, $0D, $01, $5A, $00, $00, $01, $00); FgetS60drv : array [0..13] of byte = ($1E, $00, $10, $58, $00, $08, $00, $0D, $82, $1F, $00, $00, $01, $00); readfinalizeS40 : array [0..17] of Byte = ($1E, $00, $10, $6D, $00, $0C, $00, $12, $10, $66, $00, $00, $00, $00, $00, $00, $01, $00); WD2readcycle : array [0..21] of Byte = ($1E, $00, $10, $58, $00, $10, $00, $11, $0E, $0D, $20, $01, $F0, $08, $20, $00, $00, $00, $00, $00, $01, $40); FGet40ListGal: array[0..11] of Byte = ($1E, $00, $10, $6D, $00, $00, $00, $01, $00, $68, $00, $00); FGet60ListGal: array[0..17] of Byte = ($1E, $00, $10, $58, $00, $00, $00, $12, $0B, $0B, $00, $01, $F5, $00, $00, $0C, $80, $00); FNCKput: array[0..65] of byte = ($1E, $00, $10, $53, $00, $3c, $00, $03, $08, $08, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $41); FWriteSimlockRec : array[0..9] of byte = ($1E, $00, $10, $53, $04, $F0, $00, $08, $5C, $1E); FgetPBcount : array[0..19] of byte = ($1E, $00, $10, $03, $00, $0A, $00, $12, $00, $03, $00, $05, $00, $00, $00, $00, $00, $00, $01, $41); FwriteSLkeys2 : array[0..11] of Byte = ($1E, $00, $10, $53, $00, $00, $00, $17, $5B, $18, $0F, $01); FwriteSimLock : array [0..11] of byte = ($1E, $00, $10, $53, $00, $00, $00, $17, $5A, $18, $10, $00); FwriteSD : array [0..15] of Byte = ($1E, $00, $10, $08, $00, $00, $00, $18, $5C, $17, $28, $32, $00, $00, $00, $60); fstop1 : array [0..11] of Byte = ($1e, $10, $00, $08, $00, $06, $0d, $36, $2a, $34, $00, $00); fstop2 : array [0..11] of Byte = ($1e, $10, $00, $08, $00, $06, $0d, $36, $2b, $36, $00, $00); FWriteProductCode : array[0..25] of Byte = ($1E, $00, $10, $1B, $00, $14, $00, $03, $0B, $0D, $00, $01, $4E, $0C, $00, $08, $30, $30, $30, $30, $30, $30, $30, $00, $00, $00); BLCFG : array [0..81]of Byte = ($02, $00, $86, $00, $48, $00, $CC, $00, $00, $00, $0A, $00, $00, $00, $13, $00, $00, $00, $44, $65, $66, $61, $75, $6C, $74, $5F, $52, $41, $4D, $5F, $42, $6F, $6F, $74, $6C, $6F, $61, $64, $65, $72, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $28, $0A, $03, $00); BLCHK : array [0..13] of Byte = ($02, $00, $82, $00, $04, $00, $00, $10, $0E, $00, $A4, $00, $03, $00); EPPCFGB : array [0..181] of byte = ($02, $00, $01, $08, $AC, $00, $0D, $00, $00, $00, $00, $00, $00, $01, $A8, $0D, $0E, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $04, $03, $00, $30, $04, $03, $00, $11, $11, $91, $14, $11, $11, $91, $14, $00, $00, $FF, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $62, $65, $72, $69, $6E, $67, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $78, $78, $78, $78, $5F, $64, $65, $6C, $74, $61, $25, $30, $35, $64, $2E, $25, $30, $33, $64, $2E, $64, $65, $70, $00, $00, $00, $00, $00, $00, $00, $00, $00, $78, $78, $78, $78, $5F, $65, $65, $70, $25, $30, $33, $64, $2E, $63, $66, $67, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $68, $1F, $03, $00); Get_FlashID : Array[0..11] of Byte = ($02, $00, $84, $00, $02, $00, $00, $00, $86, $00, $03, $00); Get_Info : Array[0..13] of Byte = ( $02, $00, $82, $00, $04, $00, $00, $C2, $01, $00, $49, $01, $03, $00); Get_EEP_Block : Array[0..11] of Byte = ( $02, $00, $03, $08, $02, $00, $10, $00, $15, $08, $03, $00); Dump_Eeprom : Array[0..11] of Byte = ( $02, $00, $03, $08, $02, $00, $00, $08, $0D, $08, $03, $00); Start_Eeprom : Array[0..15] of Byte = ( $02, $00, $02, $08, $06, $00, $00, $08, $40, $00, $00, $00, $50, $08, $03, $00); Send_Cert : Array[0..13] of Byte = ( $02, $00, $82, $00, $04, $00, $00, $C2, $01, $00, $49, $01, $03, $00); Check_Cert : Array[0..11] of Byte = ( $02, $00, $05, $02, $02, $00, $00, $00, $07, $02, $03, $00); SetEGoldAddress : Array[0..15] of Byte =( $02, $00, $02, $08, $06, $00, $00, $80, $7F, $00, $00, $00, $07, $09, $03, $00); end_esession : array [0..13] of byte = ($02, $00, $08, $02, $04, $00, $01, $10, $11, $00, $2E, $02, $03, $00); chhkerase : array [0..11] of Byte = ($02, $00, $06, $08, $02, $00, $00, $00, $08, $08, $03, $00); getscss : array [0..11] of Byte = ($02, $00, $05, $02, $02, $00, $00, $00, $07, $02, $03, $00); read800 : array [0..11] of byte = ($02, $00, $03, $80, $02, $00, $00, $08, $05, $08, $03, $00); implementation end.