2020-09-14 09:32:45 +00:00

12 lines
11 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 huffman ;import (_c "errors";_ef "fmt";_e "github.com/unidoc/unipdf/v3/internal/bitwise";_ea "math";_d "strings";);var _ Node =&ValueNode {};var _ Node =&InternalNode {};func (_gbc *EncodedTable )String ()string {return _gbc ._cb .String ()+"\u000a"};type StandardTable struct{_de *InternalNode };type Node interface{Decode (_bda _e .StreamReader )(int64 ,error );String ()string ;};type Tabler interface{Decode (_cdgg _e .StreamReader )(int64 ,error );InitTree (_dbd []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func (_ga *OutOfBandNode )Decode (r _e .StreamReader )(int64 ,error ){return int64 (_ea .MaxInt64 ),nil };func (_dc *FixedSizeTable )RootNode ()*InternalNode {return _dc ._ag };func (_age *InternalNode )String ()string {_ecg :=&_d .Builder {};_ecg .WriteString ("\u000a");_age .pad (_ecg );_ecg .WriteString ("\u0030\u003a\u0020");_ecg .WriteString (_age ._gad .String ()+"\u000a");_age .pad (_ecg );_ecg .WriteString ("\u0031\u003a\u0020");_ecg .WriteString (_age ._cbe .String ()+"\u000a");return _ecg .String ();};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_fec ){return nil ,_c .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};_geb :=_fec [number -1];if _geb ==nil {var _bb error ;_geb ,_bb =_edf (_bf [number -1]);if _bb !=nil {return nil ,_bb ;};_fec [number -1]=_geb ;};return _geb ,nil ;};func (_dbe *EncodedTable )parseTable ()error {var (_eaa []*Code ;_eg ,_gc ,_eb int32 ;_b uint64 ;_ed error ;);_aa :=_dbe .StreamReader ();_df :=_dbe .HtLow ();for _df < _dbe .HtHigh (){_b ,_ed =_aa .ReadBits (byte (_dbe .HtPS ()));if _ed !=nil {return _ed ;};_eg =int32 (_b );_b ,_ed =_aa .ReadBits (byte (_dbe .HtRS ()));if _ed !=nil {return _ed ;};_gc =int32 (_b );_eaa =append (_eaa ,NewCode (_eg ,_gc ,_eb ,false ));_df +=1<<uint (_gc );};_b ,_ed =_aa .ReadBits (byte (_dbe .HtPS ()));if _ed !=nil {return _ed ;};_eg =int32 (_b );_gc =32;_eb =_dbe .HtLow ()-1;_eaa =append (_eaa ,NewCode (_eg ,_gc ,_eb ,true ));_b ,_ed =_aa .ReadBits (byte (_dbe .HtPS ()));if _ed !=nil {return _ed ;};_eg =int32 (_b );_gc =32;_eb =_dbe .HtHigh ();_eaa =append (_eaa ,NewCode (_eg ,_gc ,_eb ,false ));if _dbe .HtOOB ()==1{_b ,_ed =_aa .ReadBits (byte (_dbe .HtPS ()));if _ed !=nil {return _ed ;};_eg =int32 (_b );_eaa =append (_eaa ,NewCode (_eg ,-1,-1,false ));};if _ed =_dbe .InitTree (_eaa );_ed !=nil {return _ed ;};return nil ;};func _ge (_fe int32 )*InternalNode {return &InternalNode {_ebf :_fe }};func (_bd *FixedSizeTable )String ()string {return _bd ._ag .String ()+"\u000a"};func _bad (_dfa ,_edac int32 )string {var _gdf int32 ;_ffe :=make ([]rune ,_edac );for _bbf :=int32 (1);_bbf <=_edac ;_bbf ++{_gdf =_dfa >>uint (_edac -_bbf )&1;if _gdf !=0{_ffe [_bbf -1]='1';}else {_ffe [_bbf -1]='0';};};return string (_ffe );};type OutOfBandNode struct{};func _gcf (_ad *Code )*OutOfBandNode {return &OutOfBandNode {}};func (_aeg *Code )String ()string {var _bg string ;if _aeg ._fb !=-1{_bg =_bad (_aeg ._fb ,_aeg ._ecc );}else {_bg ="\u003f";};return _ef .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_bg ,_aeg ._ecc ,_aeg ._def ,_aeg ._bfg );};var _ Tabler =&EncodedTable {};func (_af *FixedSizeTable )Decode (r _e .StreamReader )(int64 ,error ){return _af ._ag .Decode (r )};func (_ca *FixedSizeTable )InitTree (codeTable []*Code )error {_be (codeTable );for _ ,_dg :=range codeTable {_ff :=_ca ._ag .append (_dg );if _ff !=nil {return _ff ;};};return nil ;};type ValueNode struct{_cdd int32 ;_cdg int32 ;_cg bool ;};func (_baa *StandardTable )RootNode ()*InternalNode {return _baa ._de };func _be (_gdc []*Code ){var _ebe int32 ;for _ ,_bdf :=range _gdc {_ebe =_bgd (_ebe ,_bdf ._ecc );};_afaa :=make ([]int32 ,_ebe +1);for _ ,_gda :=range _gdc {_afaa [_gda ._ecc ]++;};var _gf int32 ;_bfd :=make ([]int32 ,len (_afaa )+1);_afaa [0]=0;for _bfc :=int32 (1);_bfc <=int32 (len (_afaa ));_bfc ++{_bfd [_bfc ]=(_bfd [_bfc -1]+(_afaa [_bfc -1]))<<1;_gf =_bfd [_bfc ];for _ ,_aee :=range _gdc {if _aee ._ecc ==_bfc {_aee ._fb =_gf ;_gf ++;};};};};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_ab :=&FixedSizeTable {_ag :&InternalNode {}};if _fd :=_ab .InitTree (codeTable );_fd !=nil {return nil ,_fd ;};return _ab ,nil ;};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_f :=&EncodedTable {_cb :&InternalNode {},BasicTabler :table };if _cd :=_f .parseTable ();_cd !=nil {return nil ,_cd ;};return _f ,nil ;};func (_ae *StandardTable )InitTree (codeTable []*Code )error {_be (codeTable );for _ ,_dec :=range codeTable {if _eda :=_ae ._de .append (_dec );_eda !=nil {return _eda ;};};return nil ;};type InternalNode struct{_ebf int32 ;_gad Node ;_cbe Node ;};type FixedSizeTable struct{_ag *InternalNode };func (_afc *ValueNode )String ()string {return _ef .Sprintf ("\u0025\u0064\u002f%\u0064",_afc ._cdd ,_afc ._cdg );};func (_ac *ValueNode )Decode (r _e .StreamReader )(int64 ,error ){_aaf ,_edc :=r .ReadBits (byte (_ac ._cdd ));if _edc !=nil {return 0,_edc ;};if _ac ._cg {_aaf =-_aaf ;};return int64 (_ac ._cdg )+int64 (_aaf ),nil ;};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_e .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};type EncodedTable struct{BasicTabler ;_cb *InternalNode ;};func _edce (_afa *Code )*ValueNode {return &ValueNode {_cdd :_afa ._def ,_cdg :_afa ._bfg ,_cg :_afa ._fef };};var _ Node =&OutOfBandNode {};type Code struct{_ecc int32 ;_def int32 ;_bfg int32 ;_fef bool ;_fb int32 ;};func (_eab *EncodedTable )Decode (r _e .StreamReader )(int64 ,error ){return _eab ._cb .Decode (r )};func (_ba *InternalNode )append (_egd *Code )(_fab error ){if _egd ._ecc ==0{return nil ;};_cba :=_egd ._ecc -1-_ba ._ebf ;if _cba < 0{return _c .New ("\u004e\u0065\u0067\u0061\u0074\u0069\u0076\u0065\u0020\u0073\u0068\u0069\u0066\u0074\u0069n\u0067 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006c\u006c\u006f\u0077\u0065\u0064");};_gd :=(_egd ._fb >>uint (_cba ))&0x1;if _cba ==0{if _egd ._def ==-1{if _gd ==1{if _ba ._cbe !=nil {return _ef .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_egd );};_ba ._cbe =_gcf (_egd );}else {if _ba ._gad !=nil {return _ef .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_egd );};_ba ._gad =_gcf (_egd );};}else {if _gd ==1{if _ba ._cbe !=nil {return _ef .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_egd );};_ba ._cbe =_edce (_egd );}else {if _ba ._gad !=nil {return _ef .Errorf ("\u0056\u0061\u006cue\u0020\u004e\u006f\u0064\u0065\u0020\u0061\u006c\u0072e\u0061d\u0079 \u0073e\u0074\u0020\u0066\u006f\u0072\u0020\u0063\u006f\u0064\u0065\u0020\u0025\u0073",_egd );};_ba ._gad =_edce (_egd );};};}else {if _gd ==1{if _ba ._cbe ==nil {_ba ._cbe =_ge (_ba ._ebf +1);};if _fab =_ba ._cbe .(*InternalNode ).append (_egd );_fab !=nil {return _fab ;};}else {if _ba ._gad ==nil {_ba ._gad =_ge (_ba ._ebf +1);};if _fab =_ba ._gad .(*InternalNode ).append (_egd );_fab !=nil {return _fab ;};};};return nil ;};func (_bc *StandardTable )String ()string {return _bc ._de .String ()+"\u000a"};var _bf =[][][]int32 {{{1,4,0},{2,8,16},{3,16,272},{3,32,65808}},{{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{6,32,75},{6,-1,0}},{{8,8,-256},{1,0,0},{2,0,1},{3,0,2},{4,3,3},{5,6,11},{8,32,-257,999},{7,32,75},{6,-1,0}},{{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{5,32,76}},{{7,8,-255},{1,0,1},{2,0,2},{3,0,3},{4,3,4},{5,6,12},{7,32,-256,999},{6,32,76}},{{5,10,-2048},{4,9,-1024},{4,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{2,7,0},{3,7,128},{3,8,256},{4,9,512},{4,10,1024},{6,32,-2049,999},{6,32,2048}},{{4,9,-1024},{3,8,-512},{4,7,-256},{5,6,-128},{5,5,-64},{4,5,-32},{4,5,0},{5,5,32},{5,6,64},{4,7,128},{3,8,256},{3,9,512},{3,10,1024},{5,32,-1025,999},{5,32,2048}},{{8,3,-15},{9,1,-7},{8,1,-5},{9,0,-3},{7,0,-2},{4,0,-1},{2,1,0},{5,0,2},{6,0,3},{3,4,4},{6,1,20},{4,4,22},{4,5,38},{5,6,70},{5,7,134},{6,7,262},{7,8,390},{6,10,646},{9,32,-16,999},{9,32,1670},{2,-1,0}},{{8,4,-31},{9,2,-15},{8,2,-11},{9,1,-7},{7,1,-5},{4,1,-3},{3,1,-1},{3,1,1},{5,1,3},{6,1,5},{3,5,7},{6,2,39},{4,5,43},{4,6,75},{5,7,139},{5,8,267},{6,8,523},{7,9,779},{6,11,1291},{9,32,-32,999},{9,32,3339},{2,-1,0}},{{7,4,-21},{8,0,-5},{7,0,-4},{5,0,-3},{2,2,-2},{5,0,2},{6,0,3},{7,0,4},{8,0,5},{2,6,6},{5,5,70},{6,5,102},{6,6,134},{6,7,198},{6,8,326},{6,9,582},{6,10,1094},{7,11,2118},{8,32,-22,999},{8,32,4166},{2,-1,0}},{{1,0,1},{2,1,2},{4,0,4},{4,1,5},{5,1,7},{5,2,9},{6,2,13},{7,2,17},{7,3,21},{7,4,29},{7,5,45},{7,6,77},{7,32,141}},{{1,0,1},{2,0,2},{3,1,3},{5,0,5},{5,1,6},{6,1,8},{7,0,10},{7,1,11},{7,2,13},{7,3,17},{7,4,25},{8,5,41},{8,32,73}},{{1,0,1},{3,0,2},{4,0,3},{5,0,4},{4,1,5},{3,3,7},{6,1,15},{6,2,17},{6,3,21},{6,4,29},{6,5,45},{7,6,77},{7,32,141}},{{3,0,-2},{3,0,-1},{1,0,0},{3,0,1},{3,0,2}},{{7,4,-24},{6,2,-8},{5,1,-4},{4,0,-2},{3,0,-1},{1,0,0},{3,0,1},{4,0,2},{5,1,3},{6,2,5},{7,4,9},{7,32,-25,999},{7,32,25}}};func (_dbf *EncodedTable )RootNode ()*InternalNode {return _dbf ._cb };func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_ecc :prefixLength ,_def :rangeLength ,_bfg :rangeLow ,_fef :isLowerRange ,_fb :-1};};func (_ecd *InternalNode )pad (_cc *_d .Builder ){for _ega :=int32 (0);_ega < _ecd ._ebf ;_ega ++{_cc .WriteString ("\u0020\u0020\u0020");};};func (_a *EncodedTable )InitTree (codeTable []*Code )error {_be (codeTable );for _ ,_fg :=range codeTable {if _fa :=_a ._cb .append (_fg );_fa !=nil {return _fa ;};};return nil ;};var _fec =make ([]Tabler ,len (_bf ));func (_gbd *OutOfBandNode )String ()string {return _ef .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_ea .MaxInt64 ));};func _bgd (_ede ,_fgg int32 )int32 {if _ede > _fgg {return _ede ;};return _fgg ;};func (_acd *StandardTable )Decode (r _e .StreamReader )(int64 ,error ){return _acd ._de .Decode (r )};func (_dbb *InternalNode )Decode (r _e .StreamReader )(int64 ,error ){_ddb ,_fgb :=r .ReadBit ();if _fgb !=nil {return 0,_fgb ;};if _ddb ==0{return _dbb ._gad .Decode (r );};return _dbb ._cbe .Decode (r );};func _edf (_bde [][]int32 )(*StandardTable ,error ){var _cae []*Code ;for _edg :=0;_edg < len (_bde );_edg ++{_gg :=_bde [_edg ][0];_gga :=_bde [_edg ][1];_dcca :=_bde [_edg ][2];var _ebfd bool ;if len (_bde [_edg ])> 3{_ebfd =true ;};_cae =append (_cae ,NewCode (_gg ,_gga ,_dcca ,_ebfd ));};_ddd :=&StandardTable {_de :_ge (0)};if _fgc :=_ddd .InitTree (_cae );_fgc !=nil {return nil ,_fgc ;};return _ddd ,nil ;};