2023-04-15 17:27:31 +00:00

12 lines
34 KiB
Go

//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
package mscfb ;import (_cb "bytes";_db "encoding/binary";_gb "fmt";_f "github.com/richardlehane/msoleps/types";_bc "github.com/unidoc/unioffice/internal/mscfb/rw";_d "io";_a "os";_b "strconv";_bf "time";_g "unicode";_e "unicode/utf16";);func (_gcfg *Reader )setMiniStream ()error {if _gcfg ._ggf [0]._cab ==_dacb ||_gcfg ._dcfa ._ceb ==_dacb ||_gcfg ._dcfa ._gdb ==0{return nil ;};_bgb :=int (_gcfg ._dcfa ._gdb );_gcfg ._dcfa ._ggad =make ([]uint32 ,_bgb );_gcfg ._dcfa ._ggad [0]=_gcfg ._dcfa ._ceb ;for _cfe :=1;_cfe < _bgb ;_cfe ++{_caf ,_aed :=_gcfg .findNext (_gcfg ._dcfa ._ggad [_cfe -1],false );if _aed !=nil {return Error {ErrFormat ,"s\u0065\u0074\u0074\u0069ng\u0020m\u0069\u006e\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0028"+_aed .Error ()+"\u0029",int64 (_gcfg ._dcfa ._ggad [_cfe -1])};};_gcfg ._dcfa ._ggad [_cfe ]=_caf ;};_bgb =int (_gcfg ._egg /4*_gcfg ._dcfa ._gdb );_gcfg ._dcfa ._acf =make ([]uint32 ,0,_bgb );_ceca :=_gcfg ._ggf [0]._cab ;var _deaf error ;for _ceca !=_dacb {_gcfg ._dcfa ._acf =append (_gcfg ._dcfa ._acf ,_ceca );_ceca ,_deaf =_gcfg .findNext (_ceca ,false );if _deaf !=nil {return Error {ErrFormat ,"s\u0065\u0074\u0074\u0069ng\u0020m\u0069\u006e\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u0028"+_deaf .Error ()+"\u0029",int64 (_ceca )};};};return nil ;};func (_ffa *Reader )setHeader ()error {_bbg ,_edaa :=_ffa .readAt (0,_bbb );if _edaa !=nil {return _edaa ;};_ffa ._dcfa =&header {headerFields :_bgd (_bbg )};if _ffa ._dcfa ._gga !=_gce {return Error {ErrFormat ,"\u0062\u0061\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065",int64 (_ffa ._dcfa ._gga )};};if _ffa ._dcfa ._bad ==0x0009||_ffa ._dcfa ._bad ==0x000c{_ffa ._egg =uint32 (1<<_ffa ._dcfa ._bad );}else {return Error {ErrFormat ,"\u0069\u006c\u006c\u0065ga\u006c\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0073\u0069\u007a\u0065",int64 (_ffa ._dcfa ._bad )};};if _ffa ._dcfa ._gcae > 0{_bfc :=(_ffa ._egg /4)-1;if int (_ffa ._dcfa ._gcae *_bfc +109)< 0{return Error {ErrFormat ,"\u0044I\u0046A\u0054\u0020\u0069\u006e\u0074 \u006f\u0076e\u0072\u0066\u006c\u006f\u0077",int64 (_ffa ._dcfa ._gcae )};};if _ffa ._dcfa ._gcae *_bfc +109> _ffa ._dcfa ._agg +_bfc {return Error {ErrFormat ,"\u006e\u0075\u006d\u0020\u0044\u0049\u0046\u0041\u0054\u0073 \u0065\u0078\u0063\u0065\u0065\u0064\u0073 \u0046\u0041\u0054\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0073",int64 (_ffa ._dcfa ._gcae )};};};if _ffa ._dcfa ._gdb > 0{if int (_ffa ._egg /4*_ffa ._dcfa ._gdb )< 0{return Error {ErrFormat ,"m\u0069\u006e\u0069\u0020FA\u0054 \u0069\u006e\u0074\u0020\u006fv\u0065\u0072\u0066\u006c\u006f\u0077",int64 (_ffa ._dcfa ._gdb )};};if _ffa ._dcfa ._gdb > _ffa ._dcfa ._agg *(_ffa ._egg /_ggdc ){return Error {ErrFormat ,"\u006e\u0075\u006d\u0020\u006d\u0069n\u0069\u0020\u0046\u0041\u0054\u0073\u0020\u0065\u0078\u0063\u0065\u0065\u0064s\u0020\u0046\u0041\u0054\u0020\u0073\u0065c\u0074\u006f\u0072\u0073",int64 (_ffa ._dcfa ._agg )};};};return nil ;};type slicer interface{Slice (_afbb int64 ,_dfda int )([]byte ,error );};func (_agd *File )FileInfo ()_a .FileInfo {return fileInfo {_agd }};func New (ra _d .ReaderAt )(*Reader ,error ){_bcfa :=&Reader {_ccg :ra };if _ ,_cadc :=ra .(slicer );_cadc {_bcfa ._bebd =true ;}else {_bcfa ._deda =make ([]byte ,_bbb );};if _agad :=_bcfa .setHeader ();_agad !=nil {return nil ,_agad ;};if !_bcfa ._bebd &&int (_bcfa ._egg )> len (_bcfa ._deda ){_bcfa ._deda =make ([]byte ,_bcfa ._egg );};if _gdg :=_bcfa .setDifats ();_gdg !=nil {return nil ,_gdg ;};if _dbfb :=_bcfa .setDirEntries ();_dbfb !=nil {return nil ,_dbfb ;};if _fgfe :=_bcfa .setMiniStream ();_fgfe !=nil {return nil ,_fgfe ;};if _cdb :=_bcfa .traverse ();_cdb !=nil {return nil ,_cdb ;};return _bcfa ,nil ;};func (_bgbc *Reader )GetEntry (entryName string )(*File ,error ){for _gba ,_adfb :=_bgbc .Next ();_adfb ==nil ;_gba ,_adfb =_bgbc .Next (){if _gba .Name ==entryName {return _gba ,nil ;};};return nil ,Error {ErrTraverse ,"\u004e\u006f\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u0066o\u0075\u006e\u0064\u0020\u0066\u006f\u0072 \u0067\u0069\u0076\u0065\u006e\u0020\u006e\u0061\u006d\u0065\u002e",0};};func (_dffb *Reader )exportFAT (_dacbd *_bc .Writer ,_aefb []uint32 )error {if _dffb ._dcfa ._agg ==0{return nil ;};_badg :=_cb .NewBuffer ([]byte {});if _fgfeb :=_db .Write (_badg ,_db .LittleEndian ,_efb );_fgfeb !=nil {return _fgfeb ;};for _cbcc :=0;_cbcc < len (_aefb )-1;_cbcc ++{for _gac :=_aefb [_cbcc ];_gac < _aefb [_cbcc +1]-1;_gac ++{if _bbd :=_db .Write (_badg ,_db .LittleEndian ,_gac );_bbd !=nil {return _bbd ;};};if _ebde :=_db .Write (_badg ,_db .LittleEndian ,_dacb );_ebde !=nil {return _ebde ;};};_ead :=512;for _ ,_gddg :=range _badg .Bytes (){if _cdbg :=_dacbd .WriteByteAt (_gddg ,_ead );_cdbg !=nil {return _cdbg ;};_ead ++;};return nil ;};func (_bag *File )ReadAt (p []byte ,off int64 )(_edfc int ,_cea error ){_age ,_dab ,_fbe :=_bag ._ga ,_bag ._gbb ,_bag ._ge ;_ ,_cea =_bag .Seek (off ,0);if _cea ==nil {_edfc ,_cea =_bag .Read (p );};_bag ._ga ,_bag ._gbb ,_bag ._ge =_age ,_dab ,_fbe ;return _edfc ,_cea ;};type directoryEntryFields struct{_bed [32]uint16 ;_bfa uint16 ;_ff uint8 ;_gc uint8 ;_ed uint32 ;_ca uint32 ;_cbf uint32 ;_bb _f .Guid ;_eb [4]byte ;_gg _f .FileTime ;_ggd _f .FileTime ;_cab uint32 ;_ce [8]byte ;};func (_aec *File )changeSize (_gef int64 )error {if _gef ==_aec .Size {return nil ;};var _ace *File ;for _ ,_gcb :=range _aec ._ac ._ggf {if _gcb .Name ==_aec .Name {_ace =_gcb ;break ;};};if _ace ==nil {return _gb .Errorf ("\u004e\u006f\u0020\u0064\u0069\u0072e\u0063\u0074\u006f\u0072\u0079\u0020\u0065\u006e\u0074\u0072\u0079\u0020\u0066o\u0072\u0020\u0061\u0020\u0066\u0069\u006ce\u003a\u0020\u0025\u0073",_aec .Name );};_bdf :=_cb .NewBuffer ([]byte {});if _dea :=_db .Write (_bdf ,_db .LittleEndian ,_gef );_dea !=nil {return _dea ;};for _egc ,_bcb :=range _bdf .Bytes (){_ace ._ce [_egc ]=_bcb ;};var _fgf int64 ;var _faf bool ;if _aec .Size < _gcbb {_faf =true ;_fgf =int64 (_ggdc );}else {_fgf =int64 (_aec ._ac ._egg );};_dde :=int ((_aec .Size -1)/_fgf )+1;_dcc :=int ((_gef -1)/_fgf )+1;if _dde < _dcc {_gbf ,_gca :=_aec .findLast (_faf );if _gca !=nil {return _gca ;};_cgb ,_gca :=_aec ._ac .findNextFreeSector (_faf );if _gca !=nil {return _gca ;};for _eae :=_dcc -_dde ;_eae > 0;_eae --{if _bbc :=_aec ._ac .saveToFatLocs (_gbf ,_cgb ,_faf );_bbc !=nil {return _bbc ;};if _eae > 1{_gbf =_cgb ;_cgb ++;}else if _cad :=_aec ._ac .saveToFatLocs (_cgb ,_dacb ,_faf );_cad !=nil {return _cad ;};};}else if _dde > _dcc {_febg :=_aec ._cab ;var _bfe error ;for _dff :=0;_dff < _dcc -1;_dff ++{_febg ,_bfe =_aec ._ac .findNext (_febg ,_faf );if _bfe !=nil {return _bfe ;};};if _ede :=_aec ._ac .saveToFatLocs (_febg ,_dacb ,_faf );_ede !=nil {return _ede ;};};_aec .Size =_gef ;return nil ;};const (_dc uint8 =0x0;_cbg uint8 =0x1;_ad uint8 =0x2;_be uint8 =0x5;);type Reader struct{_bebd bool ;_egg uint32 ;_deda []byte ;_dcfa *header ;File []*File ;_ggf []*File ;_bcbg int ;_ccg _d .ReaderAt ;_ccd _d .WriterAt ;};func (_aaf *Reader )Read (b []byte )(_gbbaa int ,_eafd error ){if _aaf ._bcbg >=len (_aaf .File ){return 0,_d .EOF ;};return _aaf .File [_aaf ._bcbg ].Read (b );};func (_eda *File )ensureWriterAt ()error {if _eda ._ac ._ccd ==nil {_bda ,_bcfe :=_eda ._ac ._ccg .(_d .WriterAt );if !_bcfe {return Error {ErrWrite ,"\u006d\u0073\u0063\u0066\u0062\u002e\u004ee\u0077\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0067\u0069\u0076\u0065n\u0020R\u0065\u0061\u0064\u0065\u0072\u0041t\u0020\u0063\u006f\u006e\u0076\u0065\u0072t\u0069\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0020\u0069\u006f\u002e\u0057\u0072\u0069\u0074\u0065\u0072\u0041\u0074\u0020\u0069n\u0020\u006f\u0072\u0064\u0065\u0072\u0020\u0074\u006f\u0020\u0077\u0072\u0069t\u0065",0};};_eda ._ac ._ccd =_bda ;};return nil ;};func _dg (_dbc []byte )*directoryEntryFields {_gcc :=&directoryEntryFields {};for _dbg :=range _gcc ._bed {_gcc ._bed [_dbg ]=_db .LittleEndian .Uint16 (_dbc [_dbg *2:_dbg *2+2]);};_gcc ._bfa =_db .LittleEndian .Uint16 (_dbc [64:66]);_gcc ._ff =uint8 (_dbc [66]);_gcc ._gc =uint8 (_dbc [67]);_gcc ._ed =_db .LittleEndian .Uint32 (_dbc [68:72]);_gcc ._ca =_db .LittleEndian .Uint32 (_dbc [72:76]);_gcc ._cbf =_db .LittleEndian .Uint32 (_dbc [76:80]);_gcc ._bb =_f .MustGuid (_dbc [80:96]);copy (_gcc ._eb [:],_dbc [96:100]);_gcc ._gg =_f .MustFileTime (_dbc [100:108]);_gcc ._ggd =_f .MustFileTime (_dbc [108:116]);_gcc ._cab =_db .LittleEndian .Uint32 (_dbc [116:120]);copy (_gcc ._ce [:],_dbc [120:128]);return _gcc ;};func (_gfc *Reader )getOffset (_cee uint32 ,_bge bool )(int64 ,error ){if _bge {_bebf :=_gfc ._egg /64;_def :=int (_cee /_bebf );if _def >=len (_gfc ._dcfa ._acf ){return 0,Error {ErrRead ,"\u006di\u006e\u0069s\u0065\u0063\u0074o\u0072\u0020\u006e\u0075\u006d\u0062\u0065r\u0020\u0069\u0073\u0020\u006f\u0075t\u0073\u0069\u0064\u0065\u0020\u006d\u0069\u006e\u0069\u0073\u0065c\u0074\u006f\u0072\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_def )};};_gdd :=_cee %_bebf ;return int64 ((_gfc ._dcfa ._acf [_def ]+1)*_gfc ._egg +_gdd *64),nil ;};return _gbe (_gfc ._egg ,_cee ),nil ;};func (_dfcb *File )SetEntryContent (b []byte )error {if _ged :=_dfcb .ensureWriterAt ();_ged !=nil {return _ged ;};_dfcb .reset ();if _gad :=_dfcb .changeSize (int64 (len (b )));_gad !=nil {return _gad ;};_ ,_cc :=_dfcb .Write (b );return _cc ;};func (_dbf fileInfo )Mode ()_a .FileMode {return _dbf .File .mode ()};func (_aag *Reader )ID ()string {return _aag .File [0].ID ()};func (_eec *File )WriteAt (p []byte ,off int64 )(_cde int ,_ccf error ){_ebg ,_aga ,_bff :=_eec ._ga ,_eec ._gbb ,_eec ._ge ;_ ,_ccf =_eec .Seek (off ,0);if _ccf ==nil {_cde ,_ccf =_eec .Write (p );};_eec ._ga ,_eec ._gbb ,_eec ._ge =_ebg ,_aga ,_bff ;return _cde ,_ccf ;};func (_bab *File )Seek (offset int64 ,whence int )(int64 ,error ){var _cf int64 ;switch whence {default:return 0,Error {ErrSeek ,"\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0077h\u0065\u006e\u0063\u0065",int64 (whence )};case 0:_cf =offset ;case 1:_cf =_bab ._ga +offset ;case 2:_cf =_bab .Size -offset ;};switch {case _cf < 0:return _bab ._ga ,Error {ErrSeek ,"\u0063\u0061\u006e'\u0074\u0020\u0073\u0065e\u006b\u0020\u0062\u0065\u0066\u006f\u0072e\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u006f\u0066\u0020\u0046\u0069\u006c\u0065",_cf };case _cf >=_bab .Size :return _bab ._ga ,Error {ErrSeek ,"c\u0061\u006e\u0027\u0074\u0020\u0073e\u0065\u006b\u0020\u0070\u0061\u0073\u0074\u0020\u0046i\u006c\u0065\u0020l\u0065n\u0067\u0074\u0068",_cf };case _cf ==_bab ._ga :return _cf ,nil ;case _cf > _bab ._ga :_acg :=_bab ._ga ;_bab ._ga =_cf ;return _bab ._ga ,_bab .seek (_cf -_acg );};if _bab ._gbb >=_bab ._ga -_cf {_bab ._gbb =_bab ._gbb -(_bab ._ga -_cf );_bab ._ga =_cf ;return _bab ._ga ,nil ;};_bab ._gbb =0;_bab ._ge =_bab ._cab ;_bab ._ga =_cf ;return _bab ._ga ,_bab .seek (_cf );};func (_bfd *File )findLast (_edf bool )(uint32 ,error ){_acef :=_bfd ._cab ;for {_aa ,_bec :=_bfd ._ac .findNext (_acef ,_edf );if _bec !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_bec .Error ()+"\u0029",0};};if _aa ==_dacb {break ;};_acef =_aa ;};return _acef ,nil ;};func (_eeb *File )Created ()_bf .Time {return _eeb ._gg .Time ()};const (ErrFormat =iota ;ErrRead ;ErrSeek ;ErrWrite ;ErrTraverse ;);func _dcfb (_cbc *directoryEntryFields )(*_cb .Buffer ,error ){_fee :=_cb .NewBuffer ([]byte {});for _ ,_ecb :=range _cbc ._bed {if _dcg :=_db .Write (_fee ,_db .LittleEndian ,&_ecb );_dcg !=nil {return nil ,_dcg ;};};if _eed :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._bfa );_eed !=nil {return nil ,_eed ;};if _bdd :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._ff );_bdd !=nil {return nil ,_bdd ;};if _feba :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._gc );_feba !=nil {return nil ,_feba ;};if _dfd :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._ed );_dfd !=nil {return nil ,_dfd ;};if _dcd :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._ca );_dcd !=nil {return nil ,_dcd ;};if _fgb :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._cbf );_fgb !=nil {return nil ,_fgb ;};if _aaaf :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._bb .DataA );_aaaf !=nil {return nil ,_aaaf ;};if _gd :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._bb .DataB );_gd !=nil {return nil ,_gd ;};if _fbdba :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._bb .DataC );_fbdba !=nil {return nil ,_fbdba ;};if _ ,_gbg :=_fee .Write (_cbc ._bb .DataD [:]);_gbg !=nil {return nil ,_gbg ;};if _ ,_bfdf :=_fee .Write (_cbc ._eb [:]);_bfdf !=nil {return nil ,_bfdf ;};if _cdeg :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._gg .Low );_cdeg !=nil {return nil ,_cdeg ;};if _afa :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._gg .High );_afa !=nil {return nil ,_afa ;};if _cbcf :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._ggd .Low );_cbcf !=nil {return nil ,_cbcf ;};if _cec :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._ggd .High );_cec !=nil {return nil ,_cec ;};if _dac :=_db .Write (_fee ,_db .LittleEndian ,&_cbc ._cab );_dac !=nil {return nil ,_dac ;};if _ ,_aef :=_fee .Write (_cbc ._ce [:]);_aef !=nil {return nil ,_aef ;};return _fee ,nil ;};func _eg (_ea uint16 ,_ebb *File ){_af (_ebb );if _ebb ._ff !=_ad {return ;};if _ea > 3{_ebb .Size =int64 (_db .LittleEndian .Uint64 (_ebb ._ce [:]));}else {_ebb .Size =int64 (_db .LittleEndian .Uint32 (_ebb ._ce [:4]));};};func (_bac *Reader )exportHeader (_dbd *_bc .Writer )error {if _edgb :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._gga );_edgb !=nil {return _edgb ;};if _fae :=_dbd .Skip (16);_fae !=nil {return _fae ;};if _bfdfb :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._gaa );_bfdfb !=nil {return _bfdfb ;};if _cgd :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._adg );_cgd !=nil {return _cgd ;};if _aac :=_db .Write (_dbd ,_db .LittleEndian ,uint16 (0xfffe));_aac !=nil {return _aac ;};if _fedg :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._bad );_fedg !=nil {return _fedg ;};if _faga :=_db .Write (_dbd ,_db .LittleEndian ,uint16 (0x0006));_faga !=nil {return _faga ;};if _bcge :=_dbd .Skip (6);_bcge !=nil {return _bcge ;};if _gbae :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._aefd );_gbae !=nil {return _gbae ;};if _ebeg :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._agg );_ebeg !=nil {return _ebeg ;};if _cae :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._cbd );_cae !=nil {return _cae ;};if _cgad :=_dbd .Skip (4);_cgad !=nil {return _cgad ;};if _dfa :=_db .Write (_dbd ,_db .LittleEndian ,uint32 (0x00001000));_dfa !=nil {return _dfa ;};if _cbda :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._ceb );_cbda !=nil {return _cbda ;};if _fga :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._gdb );_fga !=nil {return _fga ;};if _deg :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._bfeg );_deg !=nil {return _deg ;};if _fedf :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._gcae );_fedf !=nil {return _fedf ;};for _afbc :=0;_afbc < 109;_afbc ++{if _gbcf :=_db .Write (_dbd ,_db .LittleEndian ,&_bac ._dcfa ._fcea [_afbc ]);_gbcf !=nil {return _gbcf ;};};return nil ;};func (_gcf *File )Write (b []byte )(int ,error ){if _gcf .Size < 1||_gcf ._ga >=_gcf .Size {return 0,_d .EOF ;};if _ba :=_gcf .ensureWriterAt ();_ba !=nil {return 0,_ba ;};_ae :=len (b );if int64 (_ae )> _gcf .Size -_gcf ._ga {_ae =int (_gcf .Size -_gcf ._ga );};_fg ,_bfb :=_gcf .stream (_ae );if _bfb !=nil {return 0,_bfb ;};var _fag ,_feb int ;for _ ,_cd :=range _fg {_ded :=_fag +int (_cd [1]);if _ded < _fag ||_ded > _ae {return 0,Error {ErrWrite ,"\u0062\u0061d\u0020\u0077\u0072i\u0074\u0065\u0020\u006c\u0065\u006e\u0067\u0074\u0068",int64 (_ded )};};_dcac ,_fce :=_gcf ._ac ._ccd .WriteAt (b [_fag :_ded ],_cd [0]);_feb =_feb +_dcac ;if _fce !=nil {_gcf ._ga +=int64 (_feb );return _feb ,Error {ErrWrite ,"\u0075n\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0077\u0072i\u0074\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0020\u0028"+_fce .Error ()+"\u0029",int64 (_fag )};};_fag =_ded ;};_gcf ._ga +=int64 (_feb );if _feb !=_ae {_bfb =Error {ErrWrite ,"\u0062\u0079t\u0065\u0073\u0020\u0077\u0072\u0069\u0074\u0074\u0065\u006e\u0020\u0064\u006f\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0077\u0072\u0069\u0074\u0065\u0020\u0073\u0069\u007a\u0065",int64 (_feb )};}else if _feb < len (b ){_bfb =_d .EOF ;};return _feb ,_bfb ;};func _gbe (_dec ,_deaa uint32 )int64 {return int64 ((_deaa +1)*_dec )};func (_adfg *File )ID ()string {return _adfg ._bb .String ()};func (_gbba fileInfo )ModTime ()_bf .Time {return _gbba .Modified ()};func (_dfc *Reader )traverse ()error {_dfc .File =make ([]*File ,0,len (_dfc ._ggf ));var (_bcg func (int ,[]string );_ddf error ;_ef int ;);_bcg =func (_dag int ,_cegc []string ){_ef ++;if _ef > len (_dfc ._ggf ){_ddf =Error {ErrTraverse ,"\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c\u0020\u0063o\u0075\u006e\u0074\u0065\u0072\u0020\u006f\u0076\u0065\u0072f\u006c\u006f\u0077",int64 (_dag )};return ;};if _dag < 0||_dag >=len (_dfc ._ggf ){_ddf =Error {ErrTraverse ,"\u0069\u006c\u006ceg\u0061\u006c\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c\u0020\u0069\u006e\u0064\u0065\u0078",int64 (_dag )};return ;};_dbe :=_dfc ._ggf [_dag ];if _dbe ._ed !=_fgd {_bcg (int (_dbe ._ed ),_cegc );};_dfc .File =append (_dfc .File ,_dbe );_dbe .Path =_cegc ;if _dbe ._cbf !=_fgd {if _dag > 0{_bcg (int (_dbe ._cbf ),append (_cegc ,_dbe .Name ));}else {_bcg (int (_dbe ._cbf ),_cegc );};};if _dbe ._ca !=_fgd {_bcg (int (_dbe ._ca ),_cegc );};return ;};_bcg (0,[]string {});return _ddf ;};func (_fbed *Reader )findNext (_cabc uint32 ,_ecf bool )(uint32 ,error ){_eab :=_fbed ._egg /4;_bgf :=int (_cabc /_eab );var _ece uint32 ;if _ecf {if _bgf < 0||_bgf >=len (_fbed ._dcfa ._ggad ){return 0,Error {ErrRead ,"\u006d\u0069\u006e\u0069\u0073e\u0063\u0074\u006f\u0072\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0069\u0073 \u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u006d\u0069\u006e\u0069\u0046\u0041\u0054\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_bgf )};};_ece =_fbed ._dcfa ._ggad [_bgf ];}else {if _bgf < 0||_bgf >=len (_fbed ._dcfa ._eea ){return 0,Error {ErrRead ,"\u0046\u0041\u0054\u0020\u0069\u006e\u0064\u0065\u0078\u0020\u0069\u0073\u0020\u006f\u0075t\u0073i\u0064\u0065\u0020\u0044\u0049\u0046\u0041\u0054\u0020\u0072\u0061\u006e\u0067\u0065",int64 (_bgf )};};_ece =_fbed ._dcfa ._eea [_bgf ];};_dcfe :=_cabc %_eab ;_dacc :=_gbe (_fbed ._egg ,_ece )+int64 (_dcfe *4);_fef ,_ffd :=_fbed .readAt (_dacc ,4);if _ffd !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_ffd .Error ()+"\u0029",_dacc };};_cdab :=_db .LittleEndian .Uint32 (_fef );return _cdab ,nil ;};const (_da uint8 =0x0;_fc uint8 =0x1;);func (_bfg *File )reset (){_bfg ._ga =0;_bfg ._gbb =0;_bfg ._ge =_bfg ._cab };func (_adb *Reader )Created ()_bf .Time {return _adb .File [0].Created ()};func (_bdb *Reader )Next ()(*File ,error ){_bdb ._bcbg ++;if _bdb ._bcbg >=len (_bdb .File ){return nil ,_d .EOF ;};return _bdb .File [_bdb ._bcbg ],nil ;};const (_gce uint64 =0xE11AB1A1E011CFD0;_ggdc uint32 =64;_gcbb int64 =4096;_cccc uint32 =128;);type headerFields struct{_gga uint64 ;_ [16]byte ;_gaa uint16 ;_adg uint16 ;_ [2]byte ;_bad uint16 ;_ [2]byte ;_ [6]byte ;_aefd uint32 ;_agg uint32 ;_cbd uint32 ;_ [4]byte ;_ [4]byte ;_ceb uint32 ;_gdb uint32 ;_bfeg uint32 ;_gcae uint32 ;_fcea [109]uint32 ;};func _af (_dcf *File ){if _dcf ._bfa < 4||_dcf ._bfa > 64{return ;};_bg :=int (_dcf ._bfa /2-1);_dcf .Initial =_dcf ._bed [0];var _fb int ;if !_g .IsPrint (rune (_dcf .Initial )){_fb =1;};_dcf .Name =string (_e .Decode (_dcf ._bed [_fb :_bg ]));};type header struct{*headerFields ;_eea []uint32 ;_ggad []uint32 ;_acf []uint32 ;};const _cbb int =64+4*4+16+4+8*2+4+8;func (_afg *Reader )Debug ()map[string ][]uint32 {_cac :=map[string ][]uint32 {"s\u0065\u0063\u0074\u006f\u0072\u0020\u0073\u0069\u007a\u0065":[]uint32 {_afg ._egg },"\u006d\u0069\u006e\u0069\u0020\u0066\u0061\u0074\u0020\u006c\u006f\u0063\u0073":_afg ._dcfa ._ggad ,"\u006d\u0069n\u0069\u0020\u0073t\u0072\u0065\u0061\u006d\u0020\u006c\u006f\u0063\u0073":_afg ._dcfa ._acf ,"\u0064\u0069r\u0065\u0063\u0074o\u0072\u0079\u0020\u0073\u0065\u0063\u0074\u006f\u0072":[]uint32 {_afg ._dcfa ._cbd },"\u006d\u0069\u006e\u0069 s\u0074\u0072\u0065\u0061\u006d\u0020\u0073\u0074\u0061\u0072\u0074\u002f\u0073\u0069z\u0065":[]uint32 {_afg .File [0]._cab ,_db .LittleEndian .Uint32 (_afg .File [0]._ce [:])}};for _gfd ,_bee :=_afg .Next ();_bee ==nil ;_gfd ,_bee =_afg .Next (){_cac [_gfd .Name +" \u0073\u0074\u0061\u0072\u0074\u002f\u0073\u0069\u007a\u0065"]=[]uint32 {_gfd ._cab ,_db .LittleEndian .Uint32 (_gfd ._ce [:])};};return _cac ;};func (_fbg *Reader )readAt (_add int64 ,_ebed int )([]byte ,error ){if _fbg ._bebd {_fec ,_gde :=_fbg ._ccg .(slicer ).Slice (_add ,_ebed );if _gde !=nil {return nil ,Error {ErrRead ,"\u0073\u006c\u0069\u0063er\u0020\u0072\u0065\u0061\u0064\u0020\u0065\u0072\u0072\u006f\u0072\u0020\u0028"+_gde .Error ()+"\u0029",_add };};return _fec ,nil ;};if _ebed > len (_fbg ._deda ){return nil ,Error {ErrRead ,"\u0072\u0065ad\u0020\u006c\u0065n\u0067\u0074\u0068\u0020gre\u0061te\u0072\u0020\u0074\u0068\u0061\u006e\u0020re\u0061\u0064\u0020\u0062\u0075\u0066\u0066e\u0072",int64 (_ebed )};};if _ ,_bbac :=_fbg ._ccg .ReadAt (_fbg ._deda [:_ebed ],_add );_bbac !=nil {return nil ,Error {ErrRead ,_bbac .Error (),_add };};return _fbg ._deda [:_ebed ],nil ;};func (_beb *Reader )exportDirEntries (_egb *_bc .Writer )error {if int64 (_egb .Len ())!=_gbe (_beb ._egg ,_beb ._dcfa ._cbd ){return Error {ErrWrite ,_gb .Sprintf ("I\u006e\u0063\u006f\u0072\u0072\u0065c\u0074\u0020\u0077\u0072\u0069\u0074\u0065\u0072\u0020l\u0065\u006e\u0067t\u0068:\u0020\u0025\u0076",_egb .Len ()),0};};for _ ,_bfdb :=range _beb ._ggf {_afc ,_egbd :=_dcfb (_bfdb .directoryEntryFields );if _egbd !=nil {return _egbd ;};if _ ,_aabf :=_d .Copy (_egb ,_afc );_aabf !=nil {return _aabf ;};};return nil ;};func (_dbca *Reader )findFatLocsOffset (_aaad bool )int64 {var _bbcf uint32 ;if _aaad {_bbcf =_dbca ._dcfa ._ggad [0];}else {_bbcf =_dbca ._dcfa ._eea [0];};return _gbe (_dbca ._egg ,_bbcf );};func (_ab *Reader )saveToFatLocs (_dcbe uint32 ,_gada interface{},_fcgc bool )error {_aedb :=_cb .NewBuffer ([]byte {});if _gaf :=_db .Write (_aedb ,_db .LittleEndian ,_gada );_gaf !=nil {return _gaf ;};_bbeg :=_ab .findFatLocsOffset (_fcgc )+int64 (_dcbe *4);_ ,_dfe :=_ab ._ccd .WriteAt (_aedb .Bytes (),_bbeg );return _dfe ;};const _bbb int =8+16+10+6+12+8+16+109*4;func (_ddd *File )stream (_dcaa int )([][2]int64 ,error ){var _bdag bool ;var _bef int ;var _ec int64 ;if _ddd .Size < _gcbb {_bdag =true ;_bef =_dcaa /int (_ggdc )+2;_ec =int64 (_ggdc );}else {_bef =_dcaa /int (_ddd ._ac ._egg )+2;_ec =int64 (_ddd ._ac ._egg );};_afd :=make ([][2]int64 ,0,_bef );var _dcb ,_eba int ;if _ddd ._gbb > 0{_gbc ,_gfg :=_ddd ._ac .getOffset (_ddd ._ge ,_bdag );if _gfg !=nil {return nil ,_gfg ;};if _ec -_ddd ._gbb >=int64 (_dcaa ){_afd =append (_afd ,[2]int64 {_gbc +_ddd ._gbb ,int64 (_dcaa )});}else {_afd =append (_afd ,[2]int64 {_gbc +_ddd ._gbb ,_ec -_ddd ._gbb });};if _ec -_ddd ._gbb <=int64 (_dcaa ){_ddd ._ge ,_gfg =_ddd ._ac .findNext (_ddd ._ge ,_bdag );if _gfg !=nil {return nil ,_gfg ;};_eba +=int (_ec -_ddd ._gbb );_ddd ._gbb =0;}else {_ddd ._gbb +=int64 (_dcaa );};if _afd [0][1]==int64 (_dcaa ){return _afd ,nil ;};if _ddd ._ge ==_dacb {return nil ,Error {ErrRead ,"\u0075\u006ee\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0061\u0072\u006c\u0079\u0020\u0065\u006e\u0064\u0020\u006f\u0066\u0020\u0063ha\u0069\u006e",int64 (_ddd ._ge )};};_dcb ++;};for {if _dcb >=cap (_afd ){return nil ,Error {ErrRead ,"\u0069\u006e\u0064\u0065x\u0020\u006f\u0076\u0065\u0072\u0072\u0075\u006e\u0073\u0020s\u0065c\u0074\u006f\u0072\u0020\u006c\u0065\u006eg\u0074\u0068",int64 (_dcb )};};_bbf ,_aaa :=_ddd ._ac .getOffset (_ddd ._ge ,_bdag );if _aaa !=nil {return nil ,_aaa ;};if _dcaa -_eba < int (_ec ){_afd =append (_afd ,[2]int64 {_bbf ,int64 (_dcaa -_eba )});_ddd ._gbb =int64 (_dcaa -_eba );return _dedb (_afd ),nil ;}else {_afd =append (_afd ,[2]int64 {_bbf ,_ec });_eba +=int (_ec );_ddd ._ge ,_aaa =_ddd ._ac .findNext (_ddd ._ge ,_bdag );if _aaa !=nil {return nil ,_aaa ;};if _eba ==_dcaa {return _dedb (_afd ),nil ;};};_dcb ++;};};const (_fdd uint32 =0xFFFFFFFA;_aff uint32 =0xFFFFFFFC;_efb uint32 =0xFFFFFFFD;_dacb uint32 =0xFFFFFFFE;_ecbg uint32 =0xFFFFFFFF;_gbd byte =0xFF;_afb uint32 =0xFFFFFFFA;_fgd uint32 =0xFFFFFFFF;);func (_baf *Reader )exportDifats (_fedc *_bc .Writer )error {if _baf ._dcfa ._gcae ==0{return nil ;};return nil ;};func (_dabf *Reader )GetHeader ()*header {return _dabf ._dcfa };func (_dca fileInfo )IsDir ()bool {return _dca .mode ().IsDir ()};func (_ddb Error )Error ()string {return "\u006ds\u0063\u0066\u0062\u003a\u0020"+_ddb ._dcaab +"\u003b\u0020"+_b .FormatInt (_ddb ._afcg ,10);};func _dedb (_fbdb [][2]int64 )[][2]int64 {_bba :=len (_fbdb );for _eaed ,_afe :=0,0;_eaed < _bba &&_afe +1< len (_fbdb );_eaed ++{if _fbdb [_afe ][0]+_fbdb [_afe ][1]==_fbdb [_afe +1][0]{_fbdb [_afe ][1]=_fbdb [_afe ][1]+_fbdb [_afe +1][1];for _cegb :=range _fbdb [_afe +1:len (_fbdb )-1]{_fbdb [_afe +1+_cegb ]=_fbdb [_cegb +_afe +2];};_fbdb =_fbdb [:len (_fbdb )-1];}else {_afe +=1;};};return _fbdb ;};func (_efa *File )mode ()_a .FileMode {if _efa ._ff !=_ad {return _a .ModeDir |0777;};return 0666;};func (_de fileInfo )Sys ()interface{}{return nil };func (_cdac Error )Typ ()int {return _cdac ._fgfc };func (_ag *Reader )setDirEntries ()error {_cg :=20;if _ag ._dcfa ._aefd > 0{_cg =int (_ag ._dcfa ._aefd );};_df :=make ([]*File ,0,_cg );_ee :=make (map[uint32 ]bool );_dd :=int (_ag ._egg /_cccc );_ceg :=_ag ._dcfa ._cbd ;for _ceg !=_dacb {_ggg ,_dge :=_ag .readAt (_gbe (_ag ._egg ,_ceg ),int (_ag ._egg ));if _dge !=nil {return Error {ErrRead ,"\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020e\u006e\u0074\u0072\u0069\u0065\u0073\u0020r\u0065\u0061\u0064\u0020\u0065\u0072\u0072\u006f\u0072\u0020\u0028"+_dge .Error ()+"\u0029",_gbe (_ag ._egg ,_ceg )};};for _gf :=0;_gf < _dd ;_gf ++{_adf :=&File {_ac :_ag };_adf .directoryEntryFields =_dg (_ggg [_gf *int (_cccc ):]);_eg (_ag ._dcfa ._adg ,_adf );_adf ._ge =_adf ._cab ;_df =append (_df ,_adf );};_gcd ,_dge :=_ag .findNext (_ceg ,false );if _dge !=nil {return Error {ErrRead ,"d\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020\u0065\u006e\u0074\u0072\u0069\u0065\u0073\u0020\u0065r\u0072\u006f\u0072\u0020\u0066\u0069\u006e\u0064\u0069\u006eg \u0073\u0065\u0063t\u006fr\u0020\u0028"+_dge .Error ()+"\u0029",int64 (_gcd )};};if _gcd <=_ceg {if _gcd ==_ceg ||_ee [_gcd ]{return Error {ErrRead ,"\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020e\u006e\u0074\u0072\u0069\u0065\u0073\u0020s\u0065\u0063\u0074\u006f\u0072\u0020\u0063\u0079\u0063\u006c\u0065",int64 (_gcd )};};_ee [_gcd ]=true ;};_ceg =_gcd ;};_ag ._ggf =_df ;return nil ;};func (_bbce *Reader )Export ()([]byte ,error ){_bfdg :=_bc .NewWriter ();if _ffga :=_bbce .exportHeader (_bfdg );_ffga !=nil {return nil ,_ffga ;};if _efdf :=_bfdg .FillWithByte (512,_gbd );_efdf !=nil {return nil ,_efdf ;};_bfag :=[]uint32 {};if _cff :=_bbce .exportDifats (_bfdg );_cff !=nil {return nil ,_cff ;};_fff ,_cdabe ,_ddbg :=_bbce .exportMiniStream ();if _ddbg !=nil {return nil ,_ddbg ;};_bfag =append (_bfag ,uint32 (_bfdg .Len ())/_bbce ._egg );if _ege :=_bbce .exportDirEntries (_bfdg );_ege !=nil {return nil ,_ege ;};_bfag =append (_bfag ,uint32 (_bfdg .Len ())/_bbce ._egg );if _ ,_eaae :=_fff .WriteTo (_bfdg );_eaae !=nil {return nil ,_eaae ;};_bfag =append (_bfag ,uint32 (_bfdg .Len ())/_bbce ._egg );if _ ,_gfbb :=_cdabe .WriteTo (_bfdg );_gfbb !=nil {return nil ,_gfbb ;};_bfag =append (_bfag ,uint32 (_bfdg .Len ())/_bbce ._egg );if _gcca :=_bbce .exportFAT (_bfdg ,_bfag );_gcca !=nil {return nil ,_gcca ;};return _bfdg .Bytes (),nil ;};func (_cga *File )Read (b []byte )(int ,error ){if _cga .Size < 1||_cga ._ga >=_cga .Size {return 0,_d .EOF ;};_fbd :=len (b );if int64 (_fbd )> _cga .Size -_cga ._ga {_fbd =int (_cga .Size -_cga ._ga );};_ebbb ,_fe :=_cga .stream (_fbd );if _fe !=nil {return 0,_fe ;};var _fa ,_efd int ;for _ ,_edg :=range _ebbb {_dgee :=_fa +int (_edg [1]);if _dgee < _fa ||_dgee > _fbd {return 0,Error {ErrRead ,"\u0062a\u0064 \u0072\u0065\u0061\u0064\u0020\u006c\u0065\u006e\u0067\u0074\u0068",int64 (_dgee )};};_bd ,_eebe :=_cga ._ac ._ccg .ReadAt (b [_fa :_dgee ],_edg [0]);_efd =_efd +_bd ;if _eebe !=nil {_cga ._ga +=int64 (_efd );return _efd ,Error {ErrRead ,"\u0075n\u0064\u0065\u0072\u006c\u0079\u0069\u006e\u0067\u0020\u0072\u0065a\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0020\u0028"+_eebe .Error ()+"\u0029",int64 (_fa )};};_fa =_dgee ;};_cga ._ga +=int64 (_efd );if _efd !=_fbd {_fe =Error {ErrRead ,"\u0062\u0079\u0074e\u0073\u0020\u0072\u0065\u0061\u0064\u0020\u0064\u006f\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020r\u0065\u0061\u0064\u0020\u0073\u0069\u007a\u0065",int64 (_efd )};}else if _efd < len (b ){_fe =_d .EOF ;};return _efd ,_fe ;};type File struct{Name string ;Initial uint16 ;Path []string ;Size int64 ;_ga int64 ;_ge uint32 ;_gbb int64 ;*directoryEntryFields ;_ac *Reader ;};type Error struct{_fgfc int ;_dcaab string ;_afcg int64 ;};func (_ebbe *Reader )Modified ()_bf .Time {return _ebbe .File [0].Modified ()};func (_efab *Reader )setDifats ()error {_efab ._dcfa ._eea =_efab ._dcfa ._fcea [:];if _efab ._dcfa ._gcae ==0{return nil ;};_ebd :=(_efab ._egg /4)-1;_dda :=make ([]uint32 ,109,_efab ._dcfa ._gcae *_ebd +109);copy (_dda ,_efab ._dcfa ._eea );_efab ._dcfa ._eea =_dda ;_dccb :=_efab ._dcfa ._bfeg ;for _agb :=0;_agb < int (_efab ._dcfa ._gcae );_agb ++{_bbe ,_agda :=_efab .readAt (_gbe (_efab ._egg ,_dccb ),int (_efab ._egg ));if _agda !=nil {return Error {ErrFormat ,"e\u0072r\u006f\u0072\u0020\u0073\u0065\u0074\u0074\u0069n\u0067\u0020\u0044\u0049FA\u0054\u0028"+_agda .Error ()+"\u0029",int64 (_dccb )};};for _gbgg :=0;_gbgg < int (_ebd );_gbgg ++{_efab ._dcfa ._eea =append (_efab ._dcfa ._eea ,_db .LittleEndian .Uint32 (_bbe [_gbgg *4:_gbgg *4+4]));};_dccb =_db .LittleEndian .Uint32 (_bbe [len (_bbe )-4:]);};return nil ;};func (_ffce *Reader )findNextFreeSector (_ggab bool )(uint32 ,error ){_ecbe :=_ffce .findFatLocsOffset (_ggab );_bfee :=uint32 (0);_ebda :=_ffce ._egg /4;for {_fde ,_fcd :=_ffce .readAt (_ecbe ,4);if _fcd !=nil {return 0,Error {ErrRead ,"\u0062\u0061\u0064\u0020\u0072\u0065\u0061\u0064\u0020\u0066i\u006e\u0064\u0069\u006e\u0067\u0020\u006ee\u0078\u0074\u0020\u0073\u0065\u0063\u0074\u006f\u0072\u0020\u0028"+_fcd .Error ()+"\u0029",_ecbe };};_dgd :=_db .LittleEndian .Uint32 (_fde );if _dgd ==_ecbg {break ;};if _bfee >=_ebda {return 0,Error {ErrRead ,"\u0065\u006e\u0064\u0020of\u0020\u006d\u0069\u006e\u0069\u0046\u0061\u0074\u0020\u0072\u0065\u0061\u0063\u0068e\u0064",_ecbe };};_bfee ++;_ecbe +=4;};return _bfee ,nil ;};func (_gace *Reader )exportMiniStream ()(*_bc .Writer ,*_bc .Writer ,error ){_bbgd ,_gbab :=_bc .NewWriter (),_bc .NewWriter ();_cfd :=uint32 (0);for _ ,_acfc :=range _gace .File {if _acfc .Size ==0{continue ;};_acfc .reset ();_acfc ._cab =_cfd ;_aabc :=int (_acfc .Size )/int (_ggdc );if int (_acfc .Size )%int (_ggdc )!=0{_aabc ++;};for _gefg :=1;_gefg < _aabc ;_gefg ++{_cfd ++;if _gec :=_db .Write (_bbgd ,_db .LittleEndian ,_cfd );_gec !=nil {return nil ,nil ,_gec ;};};if _afbg :=_db .Write (_bbgd ,_db .LittleEndian ,_dacb );_afbg !=nil {return nil ,nil ,_afbg ;};_cfd ++;if _ ,_ddda :=_d .Copy (_gbab ,_acfc );_ddda !=nil {return nil ,nil ,_ddda ;};if _fab :=_gbab .AlignLength (64);_fab !=nil {return nil ,nil ,_fab ;};};if _bebb :=_bbgd .FillWithByte (int (_gace ._egg )-_bbgd .Len (),_gbd );_bebb !=nil {return nil ,nil ,_bebb ;};if _dgc :=_gbab .AlignLength (int (_gace ._egg ));_dgc !=nil {return nil ,nil ,_dgc ;};return _bbgd ,_gbab ,nil ;};func (_ffc *File )Modified ()_bf .Time {return _ffc ._ggd .Time ()};func (_cbe fileInfo )Size ()int64 {if _cbe ._ff !=_ad {return 0;};return _cbe .File .Size ;};type fileInfo struct{*File };func (_fcg fileInfo )Name ()string {return _fcg .File .Name };func (_efc *File )seek (_fdbe int64 )error {var _aab bool ;var _fagb int64 ;if _efc .Size < _gcbb {_aab =true ;_fagb =64;}else {_fagb =int64 (_efc ._ac ._egg );};var _eaea int64 ;var _ebbc error ;if _efc ._gbb > 0{if _fagb -_efc ._gbb <=_fdbe {_efc ._ge ,_ebbc =_efc ._ac .findNext (_efc ._ge ,_aab );if _ebbc !=nil {return _ebbc ;};_eaea +=_fagb -_efc ._gbb ;_efc ._gbb =0;if _eaea ==_fdbe {return nil ;};}else {_efc ._gbb +=_fdbe ;return nil ;};if _efc ._ge ==_dacb {return Error {ErrRead ,"\u0075\u006ee\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0061\u0072\u006c\u0079\u0020\u0065\u006e\u0064\u0020\u006f\u0066\u0020\u0063ha\u0069\u006e",int64 (_efc ._ge )};};};for {if _fdbe -_eaea < _fagb {_efc ._gbb =_fdbe -_eaea ;return nil ;}else {_eaea +=_fagb ;_efc ._ge ,_ebbc =_efc ._ac .findNext (_efc ._ge ,_aab );if _ebbc !=nil {return _ebbc ;};if _eaea ==_fdbe {return nil ;};};};};func _bgd (_becc []byte )*headerFields {_ggb :=&headerFields {};_ggb ._gga =_db .LittleEndian .Uint64 (_becc [:8]);_ggb ._gaa =_db .LittleEndian .Uint16 (_becc [24:26]);_ggb ._adg =_db .LittleEndian .Uint16 (_becc [26:28]);_ggb ._bad =_db .LittleEndian .Uint16 (_becc [30:32]);_ggb ._aefd =_db .LittleEndian .Uint32 (_becc [40:44]);_ggb ._agg =_db .LittleEndian .Uint32 (_becc [44:48]);_ggb ._cbd =_db .LittleEndian .Uint32 (_becc [48:52]);_ggb ._ceb =_db .LittleEndian .Uint32 (_becc [60:64]);_ggb ._gdb =_db .LittleEndian .Uint32 (_becc [64:68]);_ggb ._bfeg =_db .LittleEndian .Uint32 (_becc [68:72]);_ggb ._gcae =_db .LittleEndian .Uint32 (_becc [72:76]);var _ebe int ;for _aeb :=76;_aeb < 512;_aeb =_aeb +4{_ggb ._fcea [_ebe ]=_db .LittleEndian .Uint32 (_becc [_aeb :_aeb +4]);_ebe ++;};return _ggb ;};