2020-09-07 00:23:12 +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";_a "fmt";_d "github.com/unidoc/unipdf/v3/internal/bitwise";_dg "math";_bc "strings";);func _fbd (_baf [][]int32 )(*StandardTable ,error ){var _gbf []*Code ;for _gdc :=0;_gdc < len (_baf );_gdc ++{_eabc :=_baf [_gdc ][0];_agg :=_baf [_gdc ][1];_eb :=_baf [_gdc ][2];var _fgdd bool ;if len (_baf [_gdc ])> 3{_fgdd =true ;};_gbf =append (_gbf ,NewCode (_eabc ,_agg ,_eb ,_fgdd ));};_ecg :=&StandardTable {_bba :_acc (0)};if _dd :=_ecg .InitTree (_gbf );_dd !=nil {return nil ,_dd ;};return _ecg ,nil ;};func (_fa *EncodedTable )String ()string {return _fa ._bg .String ()+"\u000a"};func NewFixedSizeTable (codeTable []*Code )(*FixedSizeTable ,error ){_cc :=&FixedSizeTable {_agf :&InternalNode {}};if _ed :=_cc .InitTree (codeTable );_ed !=nil {return nil ,_ed ;};return _cc ,nil ;};type Tabler interface{Decode (_gbdd _d .StreamReader )(int64 ,error );InitTree (_bf []*Code )error ;String ()string ;RootNode ()*InternalNode ;};func _fe (_dbd ,_fge int32 )int32 {if _dbd > _fge {return _dbd ;};return _fge ;};func (_fc *EncodedTable )Decode (r _d .StreamReader )(int64 ,error ){return _fc ._bg .Decode (r )};func _bb (_df *Code )*OutOfBandNode {return &OutOfBandNode {}};func (_cdb *FixedSizeTable )String ()string {return _cdb ._agf .String ()+"\u000a"};var _ Node =&OutOfBandNode {};type Node interface{Decode (_ge _d .StreamReader )(int64 ,error );String ()string ;};func _gd (_bde *Code )*ValueNode {return &ValueNode {_gga :_bde ._gae ,_eab :_bde ._bef ,_bd :_bde ._ef }};func (_gg *OutOfBandNode )Decode (r _d .StreamReader )(int64 ,error ){return int64 (_dg .MaxInt64 ),nil };func (_dc *FixedSizeTable )InitTree (codeTable []*Code )error {_ae (codeTable );for _ ,_af :=range codeTable {_acf :=_dc ._agf .append (_af );if _acf !=nil {return _acf ;};};return nil ;};func (_geb *InternalNode )Decode (r _d .StreamReader )(int64 ,error ){_beeg ,_ccf :=r .ReadBit ();if _ccf !=nil {return 0,_ccf ;};if _beeg ==0{return _geb ._bee .Decode (r );};return _geb ._fag .Decode (r );};func (_cd *EncodedTable )RootNode ()*InternalNode {return _cd ._bg };func (_ccd *FixedSizeTable )RootNode ()*InternalNode {return _ccd ._agf };type Code struct{_gefe int32 ;_gae int32 ;_bef int32 ;_ef bool ;_bcf int32 ;};func GetStandardTable (number int )(Tabler ,error ){if number <=0||number > len (_ab ){return nil ,_c .New ("\u0049n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};_eag :=_ab [number -1];if _eag ==nil {var _dfc error ;_eag ,_dfc =_fbd (_gbg [number -1]);if _dfc !=nil {return nil ,_dfc ;};_ab [number -1]=_eag ;};return _eag ,nil ;};func (_fg *ValueNode )Decode (r _d .StreamReader )(int64 ,error ){_edc ,_bgc :=r .ReadBits (byte (_fg ._gga ));if _bgc !=nil {return 0,_bgc ;};if _fg ._bd {_edc =-_edc ;};return int64 (_fg ._eab )+int64 (_edc ),nil ;};func (_fce *OutOfBandNode )String ()string {return _a .Sprintf ("\u0025\u0030\u00364\u0062",int64 (_dg .MaxInt64 ));};var _ Tabler =&EncodedTable {};func (_fgd *InternalNode )pad (_ad *_bc .Builder ){for _eac :=int32 (0);_eac < _fgd ._gef ;_eac ++{_ad .WriteString ("\u0020\u0020\u0020");};};func (_ea *FixedSizeTable )Decode (r _d .StreamReader )(int64 ,error ){return _ea ._agf .Decode (r )};var _ Node =&InternalNode {};func (_def *StandardTable )RootNode ()*InternalNode {return _def ._bba };var _ Node =&ValueNode {};type StandardTable struct{_bba *InternalNode };func (_dbg *StandardTable )Decode (r _d .StreamReader )(int64 ,error ){return _dbg ._bba .Decode (r )};func (_ffa *ValueNode )String ()string {return _a .Sprintf ("\u0025\u0064\u002f%\u0064",_ffa ._gga ,_ffa ._eab );};type FixedSizeTable struct{_agf *InternalNode };var _gbg =[][][]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}}};var _ab =make ([]Tabler ,len (_gbg ));func (_dgb *Code )String ()string {var _cb string ;if _dgb ._bcf !=-1{_cb =_beee (_dgb ._bcf ,_dgb ._gefe );}else {_cb ="\u003f";};return _a .Sprintf ("%\u0073\u002f\u0025\u0064\u002f\u0025\u0064\u002f\u0025\u0064",_cb ,_dgb ._gefe ,_dgb ._gae ,_dgb ._bef );};func NewEncodedTable (table BasicTabler )(*EncodedTable ,error ){_e :=&EncodedTable {_bg :&InternalNode {},BasicTabler :table };if _db :=_e .parseTable ();_db !=nil {return nil ,_db ;};return _e ,nil ;};type InternalNode struct{_gef int32 ;_bee Node ;_fag Node ;};func _acc (_acd int32 )*InternalNode {return &InternalNode {_gef :_acd }};func _beee (_cf ,_gbgg int32 )string {var _beb int32 ;_fbe :=make ([]rune ,_gbgg );for _gca :=int32 (1);_gca <=_gbgg ;_gca ++{_beb =_cf >>uint (_gbgg -_gca )&1;if _beb !=0{_fbe [_gca -1]='1';}else {_fbe [_gca -1]='0';};};return string (_fbe );};func (_gdg *InternalNode )String ()string {_bcg :=&_bc .Builder {};_bcg .WriteString ("\u000a");_gdg .pad (_bcg );_bcg .WriteString ("\u0030\u003a\u0020");_bcg .WriteString (_gdg ._bee .String ()+"\u000a");_gdg .pad (_bcg );_bcg .WriteString ("\u0031\u003a\u0020");_bcg .WriteString (_gdg ._fag .String ()+"\u000a");return _bcg .String ();};type EncodedTable struct{BasicTabler ;_bg *InternalNode ;};type BasicTabler interface{HtHigh ()int32 ;HtLow ()int32 ;StreamReader ()_d .StreamReader ;HtPS ()int32 ;HtRS ()int32 ;HtOOB ()int32 ;};func _ae (_bcfg []*Code ){var _bbg int32 ;for _ ,_aab :=range _bcfg {_bbg =_fe (_bbg ,_aab ._gefe );};_cde :=make ([]int32 ,_bbg +1);for _ ,_egf :=range _bcfg {_cde [_egf ._gefe ]++;};var _gbfa int32 ;_acg :=make ([]int32 ,len (_cde )+1);_cde [0]=0;for _cg :=int32 (1);_cg <=int32 (len (_cde ));_cg ++{_acg [_cg ]=(_acg [_cg -1]+(_cde [_cg -1]))<<1;_gbfa =_acg [_cg ];for _ ,_bfa :=range _bcfg {if _bfa ._gefe ==_cg {_bfa ._bcf =_gbfa ;_gbfa ++;};};};};type OutOfBandNode struct{};func NewCode (prefixLength ,rangeLength ,rangeLow int32 ,isLowerRange bool )*Code {return &Code {_gefe :prefixLength ,_gae :rangeLength ,_bef :rangeLow ,_ef :isLowerRange ,_bcf :-1};};type ValueNode struct{_gga int32 ;_eab int32 ;_bd bool ;};func (_cdc *InternalNode )append (_de *Code )(_ggab error ){if _de ._gefe ==0{return nil ;};_ec :=_de ._gefe -1-_cdc ._gef ;if _ec < 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");};_ba :=(_de ._bcf >>uint (_ec ))&0x1;if _ec ==0{if _de ._gae ==-1{if _ba ==1{if _cdc ._fag !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_de );};_cdc ._fag =_bb (_de );}else {if _cdc ._bee !=nil {return _a .Errorf ("O\u004f\u0042\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0073\u0065\u0074\u0020\u0066o\u0072\u0020\u0063o\u0064e\u0020\u0025\u0073",_de );};_cdc ._bee =_bb (_de );};}else {if _ba ==1{if _cdc ._fag !=nil {return _a .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",_de );};_cdc ._fag =_gd (_de );}else {if _cdc ._bee !=nil {return _a .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",_de );};_cdc ._bee =_gd (_de );};};}else {if _ba ==1{if _cdc ._fag ==nil {_cdc ._fag =_acc (_cdc ._gef +1);};if _ggab =_cdc ._fag .(*InternalNode ).append (_de );_ggab !=nil {return _ggab ;};}else {if _cdc ._bee ==nil {_cdc ._bee =_acc (_cdc ._gef +1);};if _ggab =_cdc ._bee .(*InternalNode ).append (_de );_ggab !=nil {return _ggab ;};};};return nil ;};func (_gbd *StandardTable )String ()string {return _gbd ._bba .String ()+"\u000a"};func (_agfb *StandardTable )InitTree (codeTable []*Code )error {_ae (codeTable );for _ ,_gdgc :=range codeTable {if _gb :=_agfb ._bba .append (_gdgc );_gb !=nil {return _gb ;};};return nil ;};func (_g *EncodedTable )InitTree (codeTable []*Code )error {_ae (codeTable );for _ ,_ag :=range codeTable {if _fb :=_g ._bg .append (_ag );_fb !=nil {return _fb ;};};return nil ;};func (_ac *EncodedTable )parseTable ()error {var (_ce []*Code ;_aa ,_bga ,_ff int32 ;_ga uint64 ;_gc error ;);_dgg :=_ac .StreamReader ();_be :=_ac .HtLow ();for _be < _ac .HtHigh (){_ga ,_gc =_dgg .ReadBits (byte (_ac .HtPS ()));if _gc !=nil {return _gc ;};_aa =int32 (_ga );_ga ,_gc =_dgg .ReadBits (byte (_ac .HtRS ()));if _gc !=nil {return _gc ;};_bga =int32 (_ga );_ce =append (_ce ,NewCode (_aa ,_bga ,_ff ,false ));_be +=1<<uint (_bga );};_ga ,_gc =_dgg .ReadBits (byte (_ac .HtPS ()));if _gc !=nil {return _gc ;};_aa =int32 (_ga );_bga =32;_ff =_ac .HtLow ()-1;_ce =append (_ce ,NewCode (_aa ,_bga ,_ff ,true ));_ga ,_gc =_dgg .ReadBits (byte (_ac .HtPS ()));if _gc !=nil {return _gc ;};_aa =int32 (_ga );_bga =32;_ff =_ac .HtHigh ();_ce =append (_ce ,NewCode (_aa ,_bga ,_ff ,false ));if _ac .HtOOB ()==1{_ga ,_gc =_dgg .ReadBits (byte (_ac .HtPS ()));if _gc !=nil {return _gc ;};_aa =int32 (_ga );_ce =append (_ce ,NewCode (_aa ,-1,-1,false ));};if _gc =_ac .InitTree (_ce );_gc !=nil {return _gc ;};return nil ;};