2021-01-07 14:20:10 +00:00

12 lines
184 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 segments ;import (_g "encoding/binary";_cc "errors";_ce "fmt";_fbg "github.com/unidoc/unipdf/v3/common";_d "github.com/unidoc/unipdf/v3/internal/bitwise";_gd "github.com/unidoc/unipdf/v3/internal/jbig2/basic";_gc "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";_fbc "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/arithmetic";_ca "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/huffman";_eg "github.com/unidoc/unipdf/v3/internal/jbig2/decoder/mmr";_cb "github.com/unidoc/unipdf/v3/internal/jbig2/encoder/arithmetic";_da "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_b "github.com/unidoc/unipdf/v3/internal/jbig2/internal";_cd "golang.org/x/xerrors";_e "image";_c "io";_a "math";_cg "strings";_fb "time";);func NewHeader (d Documenter ,r _d .StreamReader ,offset int64 ,organizationType OrganizationType )(*Header ,error ){_gee :=&Header {Reader :r };if _fegf :=_gee .parse (d ,r ,offset ,organizationType );_fegf !=nil {return nil ,_da .Wrap (_fegf ,"\u004ee\u0077\u0048\u0065\u0061\u0064\u0065r","");};return _gee ,nil ;};func (_dbg *Header )String ()string {_cecc :=&_cg .Builder {};_cecc .WriteString ("\u000a[\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045A\u0044\u0045\u0052\u005d\u000a");_cecc .WriteString (_ce .Sprintf ("\t\u002d\u0020\u0053\u0065gm\u0065n\u0074\u004e\u0075\u006d\u0062e\u0072\u003a\u0020\u0025\u0076\u000a",_dbg .SegmentNumber ));_cecc .WriteString (_ce .Sprintf ("\u0009\u002d\u0020T\u0079\u0070\u0065\u003a\u0020\u0025\u0076\u000a",_dbg .Type ));_cecc .WriteString (_ce .Sprintf ("\u0009-\u0020R\u0065\u0074\u0061\u0069\u006eF\u006c\u0061g\u003a\u0020\u0025\u0076\u000a",_dbg .RetainFlag ));_cecc .WriteString (_ce .Sprintf ("\u0009\u002d\u0020Pa\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_dbg .PageAssociation ));_cecc .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0050\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061\u0074i\u006fn\u0046\u0069\u0065\u006c\u0064\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_dbg .PageAssociationFieldSize ));_cecc .WriteString ("\u0009-\u0020R\u0054\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u0053\u003a\u000a");for _ ,_fece :=range _dbg .RTSNumbers {_cecc .WriteString (_ce .Sprintf ("\u0009\t\u002d\u0020\u0025\u0064\u000a",_fece ));};_cecc .WriteString (_ce .Sprintf ("\t\u002d \u0048\u0065\u0061\u0064\u0065\u0072\u004c\u0065n\u0067\u0074\u0068\u003a %\u0076\u000a",_dbg .HeaderLength ));_cecc .WriteString (_ce .Sprintf ("\u0009-\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061L\u0065n\u0067\u0074\u0068\u003a\u0020\u0025\u0076\n",_dbg .SegmentDataLength ));_cecc .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074D\u0061\u0074\u0061\u0053\u0074\u0061\u0072t\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0076\u000a",_dbg .SegmentDataStartOffset ));return _cecc .String ();};func (_efgg *GenericRegion )overrideAtTemplate0a (_cdcf ,_fabb ,_bfcc ,_gbfe ,_egbb ,_efbg int )int {if _efgg .GBAtOverride [0]{_cdcf &=0xFFEF;if _efgg .GBAtY [0]==0&&_efgg .GBAtX [0]>=-int8 (_egbb ){_cdcf |=(_gbfe >>uint (int8 (_efbg )-_efgg .GBAtX [0]&0x1))<<4;}else {_cdcf |=int (_efgg .getPixel (_fabb +int (_efgg .GBAtX [0]),_bfcc +int (_efgg .GBAtY [0])))<<4;};};if _efgg .GBAtOverride [1]{_cdcf &=0xFBFF;if _efgg .GBAtY [1]==0&&_efgg .GBAtX [1]>=-int8 (_egbb ){_cdcf |=(_gbfe >>uint (int8 (_efbg )-_efgg .GBAtX [1]&0x1))<<10;}else {_cdcf |=int (_efgg .getPixel (_fabb +int (_efgg .GBAtX [1]),_bfcc +int (_efgg .GBAtY [1])))<<10;};};if _efgg .GBAtOverride [2]{_cdcf &=0xF7FF;if _efgg .GBAtY [2]==0&&_efgg .GBAtX [2]>=-int8 (_egbb ){_cdcf |=(_gbfe >>uint (int8 (_efbg )-_efgg .GBAtX [2]&0x1))<<11;}else {_cdcf |=int (_efgg .getPixel (_fabb +int (_efgg .GBAtX [2]),_bfcc +int (_efgg .GBAtY [2])))<<11;};};if _efgg .GBAtOverride [3]{_cdcf &=0x7FFF;if _efgg .GBAtY [3]==0&&_efgg .GBAtX [3]>=-int8 (_egbb ){_cdcf |=(_gbfe >>uint (int8 (_efbg )-_efgg .GBAtX [3]&0x1))<<15;}else {_cdcf |=int (_efgg .getPixel (_fabb +int (_efgg .GBAtX [3]),_bfcc +int (_efgg .GBAtY [3])))<<15;};};return _cdcf ;};func (_bab *Header )readReferredToSegmentNumbers (_ebfb _d .StreamReader ,_accf int )([]int ,error ){const _cecf ="\u0072\u0065\u0061\u0064R\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053e\u0067m\u0065\u006e\u0074\u004e\u0075\u006d\u0062e\u0072\u0073";_feef :=make ([]int ,_accf );if _accf > 0{_bab .RTSegments =make ([]*Header ,_accf );var (_gbbcf uint64 ;_fccb error ;);for _ffbd :=0;_ffbd < _accf ;_ffbd ++{_gbbcf ,_fccb =_ebfb .ReadBits (byte (_bab .referenceSize ())<<3);if _fccb !=nil {return nil ,_da .Wrapf (_fccb ,_cecf ,"\u0027\u0025\u0064\u0027 \u0072\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0020\u0073e\u0067m\u0065\u006e\u0074\u0020\u006e\u0075\u006db\u0065\u0072",_ffbd );};_feef [_ffbd ]=int (_gbbcf &_a .MaxInt32 );};};return _feef ,nil ;};func (_gage *RegionSegment )readCombinationOperator ()error {_efbe ,_adag :=_gage ._geac .ReadBits (3);if _adag !=nil {return _adag ;};_gage .CombinaionOperator =_gc .CombinationOperator (_efbe &0xF);return nil ;};func (_gbaa *TextRegion )decodeRdy ()(int64 ,error ){const _gfefa ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064y";if _gbaa .IsHuffmanEncoded {if _gbaa .SbHuffRDY ==3{if _gbaa ._fdbgb ==nil {var (_eegd int ;_aaec error ;);if _gbaa .SbHuffFS ==3{_eegd ++;};if _gbaa .SbHuffDS ==3{_eegd ++;};if _gbaa .SbHuffDT ==3{_eegd ++;};if _gbaa .SbHuffRDWidth ==3{_eegd ++;};if _gbaa .SbHuffRDHeight ==3{_eegd ++;};if _gbaa .SbHuffRDX ==3{_eegd ++;};_gbaa ._fdbgb ,_aaec =_gbaa .getUserTable (_eegd );if _aaec !=nil {return 0,_da .Wrap (_aaec ,_gfefa ,"");};};return _gbaa ._fdbgb .Decode (_gbaa ._afddfd );};_bbdce ,_fbcee :=_ca .GetStandardTable (14+int (_gbaa .SbHuffRDY ));if _fbcee !=nil {return 0,_fbcee ;};return _bbdce .Decode (_gbaa ._afddfd );};_beffc ,_egeg :=_gbaa ._dgeb .DecodeInt (_gbaa ._dfeb );if _egeg !=nil {return 0,_da .Wrap (_egeg ,_gfefa ,"");};return int64 (_beffc ),nil ;};func (_gfdaec *HalftoneRegion )GetPatterns ()([]*_gc .Bitmap ,error ){var (_ebd []*_gc .Bitmap ;_cda error ;);for _ ,_agbb :=range _gfdaec ._ceffa .RTSegments {var _fea Segmenter ;_fea ,_cda =_agbb .GetSegmentData ();if _cda !=nil {_fbg .Log .Debug ("\u0047e\u0074\u0053\u0065\u0067m\u0065\u006e\u0074\u0044\u0061t\u0061 \u0066a\u0069\u006c\u0065\u0064\u003a\u0020\u0025v",_cda );return nil ,_cda ;};_aece ,_afb :=_fea .(*PatternDictionary );if !_afb {_cda =_ce .Errorf ("\u0072e\u006c\u0061t\u0065\u0064\u0020\u0073e\u0067\u006d\u0065n\u0074\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0070at\u0074\u0065\u0072n\u0020\u0064i\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u003a \u0025\u0054",_fea );return nil ,_cda ;};var _adef []*_gc .Bitmap ;_adef ,_cda =_aece .GetDictionary ();if _cda !=nil {_fbg .Log .Debug ("\u0070\u0061\u0074\u0074\u0065\u0072\u006e\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076",_cda );return nil ,_cda ;};_ebd =append (_ebd ,_adef ...);};return _ebd ,nil ;};func (_cfeg *PatternDictionary )readTemplate ()error {_cfdce ,_agbc :=_cfeg ._ddge .ReadBits (2);if _agbc !=nil {return _agbc ;};_cfeg .HDTemplate =byte (_cfdce );return nil ;};func (_edcfc *TextRegion )readRegionFlags ()error {var (_egcd int ;_cfdff uint64 ;_edeb error ;);_egcd ,_edeb =_edcfc ._afddfd .ReadBit ();if _edeb !=nil {return _edeb ;};_edcfc .SbrTemplate =int8 (_egcd );_cfdff ,_edeb =_edcfc ._afddfd .ReadBits (5);if _edeb !=nil {return _edeb ;};_edcfc .SbDsOffset =int8 (_cfdff );if _edcfc .SbDsOffset > 0x0f{_edcfc .SbDsOffset -=0x20;};_egcd ,_edeb =_edcfc ._afddfd .ReadBit ();if _edeb !=nil {return _edeb ;};_edcfc .DefaultPixel =int8 (_egcd );_cfdff ,_edeb =_edcfc ._afddfd .ReadBits (2);if _edeb !=nil {return _edeb ;};_edcfc .CombinationOperator =_gc .CombinationOperator (int (_cfdff )&0x3);_egcd ,_edeb =_edcfc ._afddfd .ReadBit ();if _edeb !=nil {return _edeb ;};_edcfc .IsTransposed =int8 (_egcd );_cfdff ,_edeb =_edcfc ._afddfd .ReadBits (2);if _edeb !=nil {return _edeb ;};_edcfc .ReferenceCorner =int16 (_cfdff )&0x3;_cfdff ,_edeb =_edcfc ._afddfd .ReadBits (2);if _edeb !=nil {return _edeb ;};_edcfc .LogSBStrips =int16 (_cfdff )&0x3;_edcfc .SbStrips =1<<uint (_edcfc .LogSBStrips );_egcd ,_edeb =_edcfc ._afddfd .ReadBit ();if _edeb !=nil {return _edeb ;};if _egcd ==1{_edcfc .UseRefinement =true ;};_egcd ,_edeb =_edcfc ._afddfd .ReadBit ();if _edeb !=nil {return _edeb ;};if _egcd ==1{_edcfc .IsHuffmanEncoded =true ;};return nil ;};func (_cfb *PatternDictionary )Init (h *Header ,r _d .StreamReader )error {_cfb ._ddge =r ;return _cfb .parseHeader ();};func (_gfc *HalftoneRegion )computeSegmentDataStructure ()error {_gfc .DataOffset =_gfc ._ffdg .StreamPosition ();_gfc .DataHeaderLength =_gfc .DataOffset -_gfc .DataHeaderOffset ;_gfc .DataLength =int64 (_gfc ._ffdg .Length ())-_gfc .DataHeaderLength ;return nil ;};func (_dcab *RegionSegment )parseHeader ()error {const _adbe ="p\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072";_fbg .Log .Trace ("\u005b\u0052\u0045\u0047I\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002dH\u0045A\u0044\u0045\u0052\u005d\u0020\u0042\u0065g\u0069\u006e");defer func (){_fbg .Log .Trace ("\u005b\u0052\u0045G\u0049\u004f\u004e\u005d[\u0050\u0041\u0052\u0053\u0045\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");}();_bcgb ,_eccge :=_dcab ._geac .ReadBits (32);if _eccge !=nil {return _da .Wrap (_eccge ,_adbe ,"\u0077\u0069\u0064t\u0068");};_dcab .BitmapWidth =uint32 (_bcgb &_a .MaxUint32 );_bcgb ,_eccge =_dcab ._geac .ReadBits (32);if _eccge !=nil {return _da .Wrap (_eccge ,_adbe ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_dcab .BitmapHeight =uint32 (_bcgb &_a .MaxUint32 );_bcgb ,_eccge =_dcab ._geac .ReadBits (32);if _eccge !=nil {return _da .Wrap (_eccge ,_adbe ,"\u0078\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_dcab .XLocation =uint32 (_bcgb &_a .MaxUint32 );_bcgb ,_eccge =_dcab ._geac .ReadBits (32);if _eccge !=nil {return _da .Wrap (_eccge ,_adbe ,"\u0079\u0020\u006c\u006f\u0063\u0061\u0074\u0069\u006f\u006e");};_dcab .YLocation =uint32 (_bcgb &_a .MaxUint32 );if _ ,_eccge =_dcab ._geac .ReadBits (5);_eccge !=nil {return _da .Wrap (_eccge ,_adbe ,"\u0064i\u0072\u0079\u0020\u0072\u0065\u0061d");};if _eccge =_dcab .readCombinationOperator ();_eccge !=nil {return _da .Wrap (_eccge ,_adbe ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};return nil ;};func (_ffdgd *RegionSegment )Encode (w _d .BinaryWriter )(_gfg int ,_ggcc error ){const _ageg ="R\u0065g\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065n\u0074\u002e\u0045\u006eco\u0064\u0065";_eagf :=make ([]byte ,4);_g .BigEndian .PutUint32 (_eagf ,_ffdgd .BitmapWidth );_gfg ,_ggcc =w .Write (_eagf );if _ggcc !=nil {return 0,_da .Wrap (_ggcc ,_ageg ,"\u0057\u0069\u0064t\u0068");};_g .BigEndian .PutUint32 (_eagf ,_ffdgd .BitmapHeight );var _cbba int ;_cbba ,_ggcc =w .Write (_eagf );if _ggcc !=nil {return 0,_da .Wrap (_ggcc ,_ageg ,"\u0048\u0065\u0069\u0067\u0068\u0074");};_gfg +=_cbba ;_g .BigEndian .PutUint32 (_eagf ,_ffdgd .XLocation );_cbba ,_ggcc =w .Write (_eagf );if _ggcc !=nil {return 0,_da .Wrap (_ggcc ,_ageg ,"\u0058L\u006f\u0063\u0061\u0074\u0069\u006fn");};_gfg +=_cbba ;_g .BigEndian .PutUint32 (_eagf ,_ffdgd .YLocation );_cbba ,_ggcc =w .Write (_eagf );if _ggcc !=nil {return 0,_da .Wrap (_ggcc ,_ageg ,"\u0059L\u006f\u0063\u0061\u0074\u0069\u006fn");};_gfg +=_cbba ;if _ggcc =w .WriteByte (byte (_ffdgd .CombinaionOperator )&0x07);_ggcc !=nil {return 0,_da .Wrap (_ggcc ,_ageg ,"c\u006fm\u0062\u0069\u006e\u0061\u0074\u0069\u006f\u006e \u006f\u0070\u0065\u0072at\u006f\u0072");};_gfg ++;return _gfg ,nil ;};func (_cegf *GenericRegion )readGBAtPixels (_ced int )error {const _dfaa ="\u0072\u0065\u0061\u0064\u0047\u0042\u0041\u0074\u0050i\u0078\u0065\u006c\u0073";_cegf .GBAtX =make ([]int8 ,_ced );_cegf .GBAtY =make ([]int8 ,_ced );for _daa :=0;_daa < _ced ;_daa ++{_eec ,_caaf :=_cegf ._bca .ReadByte ();if _caaf !=nil {return _da .Wrapf (_caaf ,_dfaa ,"\u0058\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_daa );};_cegf .GBAtX [_daa ]=int8 (_eec );_eec ,_caaf =_cegf ._bca .ReadByte ();if _caaf !=nil {return _da .Wrapf (_caaf ,_dfaa ,"\u0059\u0020\u0061t\u0020\u0069\u003a\u0020\u0027\u0025\u0064\u0027",_daa );};_cegf .GBAtY [_daa ]=int8 (_eec );};return nil ;};func (_dfdb *SymbolDictionary )InitEncode (symbols *_gc .Bitmaps ,symbolList []int ,symbolMap map[int ]int ,unborderSymbols bool )error {const _fdcb ="S\u0079\u006d\u0062\u006f\u006c\u0044i\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002eI\u006e\u0069\u0074E\u006ec\u006f\u0064\u0065";_dfdb .SdATX =[]int8 {3,-3,2,-2};_dfdb .SdATY =[]int8 {-1,-1,-2,-2};_dfdb ._fcge =symbols ;_dfdb ._ecac =make ([]int ,len (symbolList ));copy (_dfdb ._ecac ,symbolList );if len (_dfdb ._ecac )!=_dfdb ._fcge .Size (){return _da .Error (_fdcb ,"s\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0061\u006e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u004ci\u0073\u0074\u0020\u006f\u0066\u0020\u0064\u0069\u0066\u0066er\u0065\u006e\u0074 \u0073i\u007a\u0065");};_dfdb .NumberOfNewSymbols =uint32 (symbols .Size ());_dfdb .NumberOfExportedSymbols =uint32 (symbols .Size ());_dfdb ._gdgb =symbolMap ;_dfdb ._dfaf =unborderSymbols ;return nil ;};func (_aaef *TextRegion )encodeSymbols (_gdfd _d .BinaryWriter )(_aaaeg int ,_becd error ){const _bfed ="\u0065\u006e\u0063\u006f\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c\u0073";_bcae :=make ([]byte ,4);_g .BigEndian .PutUint32 (_bcae ,_aaef .NumberOfSymbols );if _aaaeg ,_becd =_gdfd .Write (_bcae );_becd !=nil {return _aaaeg ,_da .Wrap (_becd ,_bfed ,"\u004e\u0075\u006dbe\u0072\u004f\u0066\u0053\u0079\u006d\u0062\u006f\u006c\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073");};_efeca ,_becd :=_gc .NewClassedPoints (_aaef ._bagga ,_aaef ._efbea );if _becd !=nil {return 0,_da .Wrap (_becd ,_bfed ,"");};var _effc ,_adec int ;_dgdbc :=_cb .New ();_dgdbc .Init ();if _becd =_dgdbc .EncodeInteger (_cb .IADT ,0);_becd !=nil {return _aaaeg ,_da .Wrap (_becd ,_bfed ,"\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0020\u0044\u0054");};_eege ,_becd :=_efeca .GroupByY ();if _becd !=nil {return 0,_da .Wrap (_becd ,_bfed ,"");};for _ ,_gafe :=range _eege {_dceg :=int (_gafe .YAtIndex (0));_efae :=_dceg -_effc ;if _becd =_dgdbc .EncodeInteger (_cb .IADT ,_efae );_becd !=nil {return _aaaeg ,_da .Wrap (_becd ,_bfed ,"");};var _cdde int ;for _eecd ,_cfag :=range _gafe .IntSlice {switch _eecd {case 0:_gaef :=int (_gafe .XAtIndex (_eecd ))-_adec ;if _becd =_dgdbc .EncodeInteger (_cb .IAFS ,_gaef );_becd !=nil {return _aaaeg ,_da .Wrap (_becd ,_bfed ,"");};_adec +=_gaef ;_cdde =_adec ;default:_eagfd :=int (_gafe .XAtIndex (_eecd ))-_cdde ;if _becd =_dgdbc .EncodeInteger (_cb .IADS ,_eagfd );_becd !=nil {return _aaaeg ,_da .Wrap (_becd ,_bfed ,"");};_cdde +=_eagfd ;};_eebef ,_efdg :=_aaef ._ege .Get (_cfag );if _efdg !=nil {return _aaaeg ,_da .Wrap (_efdg ,_bfed ,"");};_dbed ,_addge :=_aaef ._dbeg [_eebef ];if !_addge {_dbed ,_addge =_aaef ._ecab [_eebef ];if !_addge {return _aaaeg ,_da .Errorf (_bfed ,"\u0053\u0079\u006d\u0062\u006f\u006c:\u0020\u0027\u0025d\u0027\u0020\u0069s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064 \u0069\u006e\u0020\u0067\u006cob\u0061\u006c\u0020\u0061\u006e\u0064\u0020\u006c\u006f\u0063\u0061\u006c\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0020\u006d\u0061\u0070",_eebef );};};if _efdg =_dgdbc .EncodeIAID (_aaef ._adae ,_dbed );_efdg !=nil {return _aaaeg ,_da .Wrap (_efdg ,_bfed ,"");};};if _becd =_dgdbc .EncodeOOB (_cb .IADS );_becd !=nil {return _aaaeg ,_da .Wrap (_becd ,_bfed ,"");};};_dgdbc .Final ();_abagf ,_becd :=_dgdbc .WriteTo (_gdfd );if _becd !=nil {return _aaaeg ,_da .Wrap (_becd ,_bfed ,"");};_aaaeg +=int (_abagf );return _aaaeg ,nil ;};func (_bbcd *TextRegion )decodeSymInRefSize ()(int64 ,error ){const _dfbc ="\u0064e\u0063o\u0064\u0065\u0053\u0079\u006dI\u006e\u0052e\u0066\u0053\u0069\u007a\u0065";if _bbcd .SbHuffRSize ==0{_gfead ,_cdfbb :=_ca .GetStandardTable (1);if _cdfbb !=nil {return 0,_da .Wrap (_cdfbb ,_dfbc ,"");};return _gfead .Decode (_bbcd ._afddfd );};if _bbcd ._eeda ==nil {var (_edcd int ;_gdea error ;);if _bbcd .SbHuffFS ==3{_edcd ++;};if _bbcd .SbHuffDS ==3{_edcd ++;};if _bbcd .SbHuffDT ==3{_edcd ++;};if _bbcd .SbHuffRDWidth ==3{_edcd ++;};if _bbcd .SbHuffRDHeight ==3{_edcd ++;};if _bbcd .SbHuffRDX ==3{_edcd ++;};if _bbcd .SbHuffRDY ==3{_edcd ++;};_bbcd ._eeda ,_gdea =_bbcd .getUserTable (_edcd );if _gdea !=nil {return 0,_da .Wrap (_gdea ,_dfbc ,"");};};_dgff ,_cfgaf :=_bbcd ._eeda .Decode (_bbcd ._afddfd );if _cfgaf !=nil {return 0,_da .Wrap (_cfgaf ,_dfbc ,"");};return _dgff ,nil ;};var _ _ca .BasicTabler =&TableSegment {};func (_fddb *PatternDictionary )checkInput ()error {if _fddb .HdpHeight < 1||_fddb .HdpWidth < 1{return _cc .New ("in\u0076\u0061l\u0069\u0064\u0020\u0048\u0065\u0061\u0064\u0065\u0072 \u0056\u0061\u006c\u0075\u0065\u003a\u0020\u0057\u0069\u0064\u0074\u0068\u002f\u0048\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020g\u0072e\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061n\u0020z\u0065\u0072o");};if _fddb .IsMMREncoded {if _fddb .HDTemplate !=0{_fbg .Log .Debug ("\u0076\u0061\u0072\u0069\u0061\u0062\u006c\u0065\u0020\u0048\u0044\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e \u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030");};};return nil ;};func (_ebdc *HalftoneRegion )parseHeader ()error {if _cfedb :=_ebdc .RegionSegment .parseHeader ();_cfedb !=nil {return _cfedb ;};_dagb ,_gdb :=_ebdc ._ffdg .ReadBit ();if _gdb !=nil {return _gdb ;};_ebdc .HDefaultPixel =int8 (_dagb );_adf ,_gdb :=_ebdc ._ffdg .ReadBits (3);if _gdb !=nil {return _gdb ;};_ebdc .CombinationOperator =_gc .CombinationOperator (_adf &0xf);_dagb ,_gdb =_ebdc ._ffdg .ReadBit ();if _gdb !=nil {return _gdb ;};if _dagb ==1{_ebdc .HSkipEnabled =true ;};_adf ,_gdb =_ebdc ._ffdg .ReadBits (2);if _gdb !=nil {return _gdb ;};_ebdc .HTemplate =byte (_adf &0xf);_dagb ,_gdb =_ebdc ._ffdg .ReadBit ();if _gdb !=nil {return _gdb ;};if _dagb ==1{_ebdc .IsMMREncoded =true ;};_adf ,_gdb =_ebdc ._ffdg .ReadBits (32);if _gdb !=nil {return _gdb ;};_ebdc .HGridWidth =uint32 (_adf &_a .MaxUint32 );_adf ,_gdb =_ebdc ._ffdg .ReadBits (32);if _gdb !=nil {return _gdb ;};_ebdc .HGridHeight =uint32 (_adf &_a .MaxUint32 );_adf ,_gdb =_ebdc ._ffdg .ReadBits (32);if _gdb !=nil {return _gdb ;};_ebdc .HGridX =int32 (_adf &_a .MaxInt32 );_adf ,_gdb =_ebdc ._ffdg .ReadBits (32);if _gdb !=nil {return _gdb ;};_ebdc .HGridY =int32 (_adf &_a .MaxInt32 );_adf ,_gdb =_ebdc ._ffdg .ReadBits (16);if _gdb !=nil {return _gdb ;};_ebdc .HRegionX =uint16 (_adf &_a .MaxUint16 );_adf ,_gdb =_ebdc ._ffdg .ReadBits (16);if _gdb !=nil {return _gdb ;};_ebdc .HRegionY =uint16 (_adf &_a .MaxUint16 );if _gdb =_ebdc .computeSegmentDataStructure ();_gdb !=nil {return _gdb ;};return _ebdc .checkInput ();};func (_dagec *TextRegion )setContexts (_ccgaf *_fbc .DecoderStats ,_bgggc *_fbc .DecoderStats ,_bgdbc *_fbc .DecoderStats ,_dbgf *_fbc .DecoderStats ,_caff *_fbc .DecoderStats ,_bgdf *_fbc .DecoderStats ,_cded *_fbc .DecoderStats ,_abgd *_fbc .DecoderStats ,_fafe *_fbc .DecoderStats ,_cgege *_fbc .DecoderStats ){_dagec ._fddc =_bgggc ;_dagec ._ebde =_bgdbc ;_dagec ._bded =_dbgf ;_dagec ._adbfg =_caff ;_dagec ._gfdc =_cded ;_dagec ._egcb =_abgd ;_dagec ._fdcc =_bgdf ;_dagec ._dbfb =_fafe ;_dagec ._dfeb =_cgege ;_dagec ._fdafc =_ccgaf ;};func (_fbb *GenericRegion )setParametersWithAt (_cccd bool ,_gcb byte ,_ccaa ,_cgge bool ,_eag ,_caeaa []int8 ,_fffe ,_eebe uint32 ,_dbfe *_fbc .DecoderStats ,_bfce *_fbc .Decoder ){_fbb .IsMMREncoded =_cccd ;_fbb .GBTemplate =_gcb ;_fbb .IsTPGDon =_ccaa ;_fbb .GBAtX =_eag ;_fbb .GBAtY =_caeaa ;_fbb .RegionSegment .BitmapHeight =_eebe ;_fbb .RegionSegment .BitmapWidth =_fffe ;_fbb ._bfc =nil ;_fbb .Bitmap =nil ;if _dbfe !=nil {_fbb ._cab =_dbfe ;};if _bfce !=nil {_fbb ._ffb =_bfce ;};_fbg .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049O\u004e\u005d\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073\u0020\u0053\u0044\u0041t\u003a\u0020\u0025\u0073",_fbb );};func (_gcba *TextRegion )readAmountOfSymbolInstances ()error {_efea ,_cafa :=_gcba ._afddfd .ReadBits (32);if _cafa !=nil {return _cafa ;};_gcba .NumberOfSymbolInstances =uint32 (_efea &_a .MaxUint32 );_gbfb :=_gcba .RegionInfo .BitmapWidth *_gcba .RegionInfo .BitmapHeight ;if _gbfb < _gcba .NumberOfSymbolInstances {_fbg .Log .Debug ("\u004c\u0069\u006d\u0069t\u0069\u006e\u0067\u0020t\u0068\u0065\u0020n\u0075\u006d\u0062\u0065\u0072\u0020o\u0066\u0020d\u0065\u0063\u006f\u0064e\u0064\u0020\u0073\u0079m\u0062\u006f\u006c\u0020\u0069n\u0073\u0074\u0061\u006e\u0063\u0065\u0073 \u0074\u006f\u0020\u006f\u006ee\u0020\u0070\u0065\u0072\u0020\u0070\u0069\u0078\u0065l\u0020\u0028\u0020\u0025\u0064\u0020\u0069\u006e\u0073\u0074\u0065\u0061\u0064\u0020\u006f\u0066\u0020\u0025\u0064\u0029",_gbfb ,_gcba .NumberOfSymbolInstances );_gcba .NumberOfSymbolInstances =_gbfb ;};return nil ;};func (_feed *GenericRegion )computeSegmentDataStructure ()error {_feed .DataOffset =_feed ._bca .StreamPosition ();_feed .DataHeaderLength =_feed .DataOffset -_feed .DataHeaderOffset ;_feed .DataLength =int64 (_feed ._bca .Length ())-_feed .DataHeaderLength ;return nil ;};func (_ef *GenericRefinementRegion )getGrReference ()(*_gc .Bitmap ,error ){segments :=_ef ._gce .RTSegments ;if len (segments )==0{return nil ,_cc .New ("\u0052\u0065f\u0065\u0072\u0065\u006e\u0063\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0065\u0078is\u0074\u0073");};_dgd ,_ed :=segments [0].GetSegmentData ();if _ed !=nil {return nil ,_ed ;};_ceb ,_ea :=_dgd .(Regioner );if !_ea {return nil ,_ce .Errorf ("\u0072\u0065\u0066\u0065\u0072r\u0065\u0064\u0020\u0074\u006f\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074 \u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0052\u0065\u0067\u0069\u006f\u006e\u0065\u0072\u003a\u0020\u0025\u0054",_dgd );};return _ceb .GetRegionBitmap ();};func (_fba *GenericRefinementRegion )readAtPixels ()error {_fba .GrAtX =make ([]int8 ,2);_fba .GrAtY =make ([]int8 ,2);_eac ,_ccca :=_fba ._cga .ReadByte ();if _ccca !=nil {return _ccca ;};_fba .GrAtX [0]=int8 (_eac );_eac ,_ccca =_fba ._cga .ReadByte ();if _ccca !=nil {return _ccca ;};_fba .GrAtY [0]=int8 (_eac );_eac ,_ccca =_fba ._cga .ReadByte ();if _ccca !=nil {return _ccca ;};_fba .GrAtX [1]=int8 (_eac );_eac ,_ccca =_fba ._cga .ReadByte ();if _ccca !=nil {return _ccca ;};_fba .GrAtY [1]=int8 (_eac );return nil ;};func (_daae *HalftoneRegion )checkInput ()error {if _daae .IsMMREncoded {if _daae .HTemplate !=0{_fbg .Log .Debug ("\u0048\u0054\u0065\u006d\u0070l\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0030",_daae .HTemplate );};if _daae .HSkipEnabled {_fbg .Log .Debug ("\u0048\u0053\u006b\u0069\u0070\u0045\u006e\u0061\u0062\u006c\u0065\u0064\u0020\u0030\u0020\u0025\u0076\u0020(\u0073\u0068\u006f\u0075\u006c\u0064\u0020c\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0074\u0068\u0065\u0020v\u0061\u006c\u0075\u0065\u0020\u0066\u0061\u006c\u0073\u0065\u0029",_daae .HSkipEnabled );};};return nil ;};func (_ebb *GenericRegion )decodeTemplate2 (_ffd ,_cdfa ,_eca int ,_bdbc ,_bfd int )(_fae error ){const _fce ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0032";var (_fcec ,_gceb int ;_cfed ,_egc int ;_cbb byte ;_gfea ,_effg int ;);if _ffd >=1{_cbb ,_fae =_ebb .Bitmap .GetByte (_bfd );if _fae !=nil {return _da .Wrap (_fae ,_fce ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0031");};_cfed =int (_cbb );};if _ffd >=2{_cbb ,_fae =_ebb .Bitmap .GetByte (_bfd -_ebb .Bitmap .RowStride );if _fae !=nil {return _da .Wrap (_fae ,_fce ,"\u006ci\u006ee\u004e\u0075\u006d\u0062\u0065\u0072\u0020\u003e\u003d\u0020\u0032");};_egc =int (_cbb )<<4;};_fcec =(_cfed >>3&0x7c)|(_egc >>3&0x380);for _ged :=0;_ged < _eca ;_ged =_gfea {var (_fcf byte ;_fgbgd int ;);_gfea =_ged +8;if _ccfb :=_cdfa -_ged ;_ccfb > 8{_fgbgd =8;}else {_fgbgd =_ccfb ;};if _ffd > 0{_cfed <<=8;if _gfea < _cdfa {_cbb ,_fae =_ebb .Bitmap .GetByte (_bfd +1);if _fae !=nil {return _da .Wrap (_fae ,_fce ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0030");};_cfed |=int (_cbb );};};if _ffd > 1{_egc <<=8;if _gfea < _cdfa {_cbb ,_fae =_ebb .Bitmap .GetByte (_bfd -_ebb .Bitmap .RowStride +1);if _fae !=nil {return _da .Wrap (_fae ,_fce ,"\u006c\u0069\u006e\u0065\u004e\u0075\u006d\u0062\u0065r\u0020\u003e\u0020\u0031");};_egc |=int (_cbb )<<4;};};for _bdgc :=0;_bdgc < _fgbgd ;_bdgc ++{_cdba :=uint (10-_bdgc );if _ebb ._fee {_gceb =_ebb .overrideAtTemplate2 (_fcec ,_ged +_bdgc ,_ffd ,int (_fcf ),_bdgc );_ebb ._cab .SetIndex (int32 (_gceb ));}else {_ebb ._cab .SetIndex (int32 (_fcec ));};_effg ,_fae =_ebb ._ffb .DecodeBit (_ebb ._cab );if _fae !=nil {return _da .Wrap (_fae ,_fce ,"");};_fcf |=byte (_effg <<uint (7-_bdgc ));_fcec =((_fcec &0x1bd)<<1)|_effg |((_cfed >>_cdba )&0x4)|((_egc >>_cdba )&0x80);};if _afae :=_ebb .Bitmap .SetByte (_bdbc ,_fcf );_afae !=nil {return _da .Wrap (_afae ,_fce ,"");};_bdbc ++;_bfd ++;};return nil ;};func (_baa *Header )parse (_cdcb Documenter ,_gaad _d .StreamReader ,_ebdd int64 ,_fdcg OrganizationType )(_adbc error ){const _gbeg ="\u0070\u0061\u0072s\u0065";_fbg .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048E\u0041\u0044\u0045\u0052\u005d\u005b\u0050A\u0052\u0053\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _adbc !=nil {_fbg .Log .Trace ("\u005b\u0053\u0045GM\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045R\u005d[\u0050A\u0052S\u0045\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_adbc );}else {_fbg .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052]\u005bP\u0041\u0052\u0053\u0045\u005d\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064");};}();_ ,_adbc =_gaad .Seek (_ebdd ,_c .SeekStart );if _adbc !=nil {return _da .Wrap (_adbc ,_gbeg ,"\u0073\u0065\u0065\u006b\u0020\u0073\u0074\u0061\u0072\u0074");};if _adbc =_baa .readSegmentNumber (_gaad );_adbc !=nil {return _da .Wrap (_adbc ,_gbeg ,"");};if _adbc =_baa .readHeaderFlags ();_adbc !=nil {return _da .Wrap (_adbc ,_gbeg ,"");};var _eggb uint64 ;_eggb ,_adbc =_baa .readNumberOfReferredToSegments (_gaad );if _adbc !=nil {return _da .Wrap (_adbc ,_gbeg ,"");};_baa .RTSNumbers ,_adbc =_baa .readReferredToSegmentNumbers (_gaad ,int (_eggb ));if _adbc !=nil {return _da .Wrap (_adbc ,_gbeg ,"");};_adbc =_baa .readSegmentPageAssociation (_cdcb ,_gaad ,_eggb ,_baa .RTSNumbers ...);if _adbc !=nil {return _da .Wrap (_adbc ,_gbeg ,"");};if _baa .Type !=TEndOfFile {if _adbc =_baa .readSegmentDataLength (_gaad );_adbc !=nil {return _da .Wrap (_adbc ,_gbeg ,"");};};_baa .readDataStartOffset (_gaad ,_fdcg );_baa .readHeaderLength (_gaad ,_ebdd );_fbg .Log .Trace ("\u0025\u0073",_baa );return nil ;};func (_fade *GenericRegion )overrideAtTemplate2 (_egbg ,_ebbc ,_bbaa ,_dgc ,_efgf int )int {_egbg &=0x3FB;if _fade .GBAtY [0]==0&&_fade .GBAtX [0]>=-int8 (_efgf ){_egbg |=(_dgc >>uint (7-(int8 (_efgf )+_fade .GBAtX [0]))&0x1)<<2;}else {_egbg |=int (_fade .getPixel (_ebbc +int (_fade .GBAtX [0]),_bbaa +int (_fade .GBAtY [0])))<<2;};return _egbg ;};func (_bff *GenericRefinementRegion )decodeTemplate (_cbg ,_cba ,_bcc ,_fgf ,_efc ,_caea ,_dbf ,_bdf ,_dfg ,_ebe int ,_ccc templater )(_eed error ){var (_caa ,_cdb ,_dee ,_bgg ,_gfd int16 ;_ddg ,_cde ,_ebee ,_fffa int ;_cfe byte ;);if _dfg >=1&&(_dfg -1)< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe -_fgf );if _eed !=nil {return ;};_ddg =int (_cfe );};if _dfg >=0&&(_dfg )< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe );if _eed !=nil {return ;};_cde =int (_cfe );};if _dfg >=-1&&(_dfg +1)< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe +_fgf );if _eed !=nil {return ;};_ebee =int (_cfe );};_ebe ++;if _cbg >=1{_cfe ,_eed =_bff .RegionBitmap .GetByte (_bdf -_bcc );if _eed !=nil {return ;};_fffa =int (_cfe );};_bdf ++;_gced :=_bff .ReferenceDX %8;_abe :=6+_gced ;_fffb :=_ebe %_fgf ;if _abe >=0{if _abe < 8{_caa =int16 (_ddg >>uint (_abe ))&0x07;};if _abe < 8{_cdb =int16 (_cde >>uint (_abe ))&0x07;};if _abe < 8{_dee =int16 (_ebee >>uint (_abe ))&0x07;};if _abe ==6&&_fffb > 1{if _dfg >=1&&(_dfg -1)< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe -_fgf -2);if _eed !=nil {return _eed ;};_caa |=int16 (_cfe <<2)&0x04;};if _dfg >=0&&_dfg < _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe -2);if _eed !=nil {return _eed ;};_cdb |=int16 (_cfe <<2)&0x04;};if _dfg >=-1&&_dfg +1< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe +_fgf -2);if _eed !=nil {return _eed ;};_dee |=int16 (_cfe <<2)&0x04;};};if _abe ==0{_ddg =0;_cde =0;_ebee =0;if _fffb < _fgf -1{if _dfg >=1&&_dfg -1< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe -_fgf );if _eed !=nil {return _eed ;};_ddg =int (_cfe );};if _dfg >=0&&_dfg < _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe );if _eed !=nil {return _eed ;};_cde =int (_cfe );};if _dfg >=-1&&_dfg +1< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe +_fgf );if _eed !=nil {return _eed ;};_ebee =int (_cfe );};};_ebe ++;};}else {_caa =int16 (_ddg <<1)&0x07;_cdb =int16 (_cde <<1)&0x07;_dee =int16 (_ebee <<1)&0x07;_ddg =0;_cde =0;_ebee =0;if _fffb < _fgf -1{if _dfg >=1&&_dfg -1< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe -_fgf );if _eed !=nil {return _eed ;};_ddg =int (_cfe );};if _dfg >=0&&_dfg < _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe );if _eed !=nil {return _eed ;};_cde =int (_cfe );};if _dfg >=-1&&_dfg +1< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe +_fgf );if _eed !=nil {return _eed ;};_ebee =int (_cfe );};_ebe ++;};_caa |=int16 ((_ddg >>7)&0x07);_cdb |=int16 ((_cde >>7)&0x07);_dee |=int16 ((_ebee >>7)&0x07);};_bgg =int16 (_fffa >>6);_gfd =0;_bdb :=(2-_gced )%8;_ddg <<=uint (_bdb );_cde <<=uint (_bdb );_ebee <<=uint (_bdb );_fffa <<=2;var _fbf int ;for _ge :=0;_ge < _cba ;_ge ++{_aba :=_ge &0x07;_efb :=_ccc .form (_caa ,_cdb ,_dee ,_bgg ,_gfd );if _bff ._ac {_cfe ,_eed =_bff .RegionBitmap .GetByte (_bff .RegionBitmap .GetByteIndex (_ge ,_cbg ));if _eed !=nil {return _eed ;};_bff ._ee .SetIndex (int32 (_bff .overrideAtTemplate0 (int (_efb ),_ge ,_cbg ,int (_cfe ),_aba )));}else {_bff ._ee .SetIndex (int32 (_efb ));};_fbf ,_eed =_bff ._de .DecodeBit (_bff ._ee );if _eed !=nil {return _eed ;};if _eed =_bff .RegionBitmap .SetPixel (_ge ,_cbg ,byte (_fbf ));_eed !=nil {return _eed ;};_caa =((_caa <<1)|0x01&int16 (_ddg >>7))&0x07;_cdb =((_cdb <<1)|0x01&int16 (_cde >>7))&0x07;_dee =((_dee <<1)|0x01&int16 (_ebee >>7))&0x07;_bgg =((_bgg <<1)|0x01&int16 (_fffa >>7))&0x07;_gfd =int16 (_fbf );if (_ge -int (_bff .ReferenceDX ))%8==5{_ddg =0;_cde =0;_ebee =0;if ((_ge -int (_bff .ReferenceDX ))/8)+1< _bff .ReferenceBitmap .RowStride {if _dfg >=1&&(_dfg -1)< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe -_fgf );if _eed !=nil {return _eed ;};_ddg =int (_cfe );};if _dfg >=0&&_dfg < _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe );if _eed !=nil {return _eed ;};_cde =int (_cfe );};if _dfg >=-1&&(_dfg +1)< _bff .ReferenceBitmap .Height {_cfe ,_eed =_bff .ReferenceBitmap .GetByte (_ebe +_fgf );if _eed !=nil {return _eed ;};_ebee =int (_cfe );};};_ebe ++;}else {_ddg <<=1;_cde <<=1;_ebee <<=1;};if _aba ==5&&_cbg >=1{if ((_ge >>3)+1)>=_bff .RegionBitmap .RowStride {_fffa =0;}else {_cfe ,_eed =_bff .RegionBitmap .GetByte (_bdf -_bcc );if _eed !=nil {return _eed ;};_fffa =int (_cfe );};_bdf ++;}else {_fffa <<=1;};};return nil ;};type templater interface{form (_agc ,_agb ,_abae ,_bec ,_dbb int16 )int16 ;setIndex (_bga *_fbc .DecoderStats );};func (_gegb *TextRegion )computeSymbolCodeLength ()error {if _gegb .IsHuffmanEncoded {return _gegb .symbolIDCodeLengths ();};_gegb ._affe =int8 (_a .Ceil (_a .Log (float64 (_gegb .NumberOfSymbols ))/_a .Log (2)));return nil ;};func (_fdagg *RegionSegment )Size ()int {return 17};var (_fbag Segmenter ;_agaf =map[Type ]func ()Segmenter {TSymbolDictionary :func ()Segmenter {return &SymbolDictionary {}},TIntermediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateTextRegion :func ()Segmenter {return &TextRegion {}},TImmediateLosslessTextRegion :func ()Segmenter {return &TextRegion {}},TPatternDictionary :func ()Segmenter {return &PatternDictionary {}},TIntermediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TImmediateLosslessHalftoneRegion :func ()Segmenter {return &HalftoneRegion {}},TIntermediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateGenericRegion :func ()Segmenter {return &GenericRegion {}},TImmediateLosslessGenericRegion :func ()Segmenter {return &GenericRegion {}},TIntermediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TImmediateLosslessGenericRefinementRegion :func ()Segmenter {return &GenericRefinementRegion {}},TPageInformation :func ()Segmenter {return &PageInformationSegment {}},TEndOfPage :func ()Segmenter {return _fbag },TEndOfStrip :func ()Segmenter {return &EndOfStripe {}},TEndOfFile :func ()Segmenter {return _fbag },TProfiles :func ()Segmenter {return _fbag },TTables :func ()Segmenter {return &TableSegment {}},TExtension :func ()Segmenter {return _fbag },TBitmap :func ()Segmenter {return _fbag }};);func (_dffg *PageInformationSegment )readIsLossless ()error {_dddbe ,_cface :=_dffg ._fgff .ReadBit ();if _cface !=nil {return _cface ;};if _dddbe ==1{_dffg .IsLossless =true ;};return nil ;};func (_faaa *SymbolDictionary )setRefinementAtPixels ()error {if !_faaa .UseRefinementAggregation ||_faaa .SdrTemplate !=0{return nil ;};if _ggccg :=_faaa .readRefinementAtPixels (2);_ggccg !=nil {return _ggccg ;};return nil ;};func (_gadea *PageInformationSegment )Size ()int {return 19};func (_cdbgg *SymbolDictionary )readNumberOfExportedSymbols ()error {_geea ,_bgcc :=_cdbgg ._cbdgf .ReadBits (32);if _bgcc !=nil {return _bgcc ;};_cdbgg .NumberOfExportedSymbols =uint32 (_geea &_a .MaxUint32 );return nil ;};func (_gbffc *TableSegment )HtOOB ()int32 {return _gbffc ._fdbf };func (_bgac *SymbolDictionary )decodeHeightClassDeltaHeightWithHuffman ()(int64 ,error ){switch _bgac .SdHuffDecodeHeightSelection {case 0:_faba ,_fgc :=_ca .GetStandardTable (4);if _fgc !=nil {return 0,_fgc ;};return _faba .Decode (_bgac ._cbdgf );case 1:_aebe ,_aegb :=_ca .GetStandardTable (5);if _aegb !=nil {return 0,_aegb ;};return _aebe .Decode (_bgac ._cbdgf );case 3:if _bgac ._cgdd ==nil {_bbfb ,_cbfcg :=_ca .GetStandardTable (0);if _cbfcg !=nil {return 0,_cbfcg ;};_bgac ._cgdd =_bbfb ;};return _bgac ._cgdd .Decode (_bgac ._cbdgf );};return 0,nil ;};func (_gagg *Header )writeSegmentNumber (_bdd _d .BinaryWriter )(_afff int ,_effgb error ){_aaf :=make ([]byte ,4);_g .BigEndian .PutUint32 (_aaf ,_gagg .SegmentNumber );if _afff ,_effgb =_bdd .Write (_aaf );_effgb !=nil {return 0,_da .Wrap (_effgb ,"\u0048e\u0061\u0064\u0065\u0072.\u0077\u0072\u0069\u0074\u0065S\u0065g\u006de\u006e\u0074\u004e\u0075\u006d\u0062\u0065r","");};return _afff ,nil ;};func (_gaf *PageInformationSegment )readIsStriped ()error {_fcg ,_gagf :=_gaf ._fgff .ReadBit ();if _gagf !=nil {return _gagf ;};if _fcg ==1{_gaf .IsStripe =true ;};return nil ;};func (_egfa *GenericRegion )overrideAtTemplate1 (_fge ,_gfdae ,_gab ,_aea ,_cagf int )int {_fge &=0x1FF7;if _egfa .GBAtY [0]==0&&_egfa .GBAtX [0]>=-int8 (_cagf ){_fge |=(_aea >>uint (7-(int8 (_cagf )+_egfa .GBAtX [0]))&0x1)<<3;}else {_fge |=int (_egfa .getPixel (_gfdae +int (_egfa .GBAtX [0]),_gab +int (_egfa .GBAtY [0])))<<3;};return _fge ;};func (_ece *PageInformationSegment )CombinationOperatorOverrideAllowed ()bool {return _ece ._aede };func (_fedfd *TextRegion )decodeRdw ()(int64 ,error ){const _caeae ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064w";if _fedfd .IsHuffmanEncoded {if _fedfd .SbHuffRDWidth ==3{if _fedfd ._gffgb ==nil {var (_gcgg int ;_ecef error ;);if _fedfd .SbHuffFS ==3{_gcgg ++;};if _fedfd .SbHuffDS ==3{_gcgg ++;};if _fedfd .SbHuffDT ==3{_gcgg ++;};_fedfd ._gffgb ,_ecef =_fedfd .getUserTable (_gcgg );if _ecef !=nil {return 0,_da .Wrap (_ecef ,_caeae ,"");};};return _fedfd ._gffgb .Decode (_fedfd ._afddfd );};_ccabg ,_gdcfg :=_ca .GetStandardTable (14+int (_fedfd .SbHuffRDWidth ));if _gdcfg !=nil {return 0,_da .Wrap (_gdcfg ,_caeae ,"");};return _ccabg .Decode (_fedfd ._afddfd );};_fcde ,_cfebd :=_fedfd ._dgeb .DecodeInt (_fedfd ._gfdc );if _cfebd !=nil {return 0,_da .Wrap (_cfebd ,_caeae ,"");};return int64 (_fcde ),nil ;};func (_gfef *GenericRefinementRegion )setParameters (_gcfc *_fbc .DecoderStats ,_bag *_fbc .Decoder ,_eeaa int8 ,_egba ,_fdg uint32 ,_daef *_gc .Bitmap ,_gggf ,_dda int32 ,_dgbb bool ,_eaac []int8 ,_gbc []int8 ){_fbg .Log .Trace ("\u005b\u0047\u0045NE\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052E\u0047I\u004fN\u005d \u0073\u0065\u0074\u0050\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073");if _gcfc !=nil {_gfef ._ee =_gcfc ;};if _bag !=nil {_gfef ._de =_bag ;};_gfef .TemplateID =_eeaa ;_gfef .RegionInfo .BitmapWidth =_egba ;_gfef .RegionInfo .BitmapHeight =_fdg ;_gfef .ReferenceBitmap =_daef ;_gfef .ReferenceDX =_gggf ;_gfef .ReferenceDY =_dda ;_gfef .IsTPGROn =_dgbb ;_gfef .GrAtX =_eaac ;_gfef .GrAtY =_gbc ;_gfef .RegionBitmap =nil ;_fbg .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0073\u0065\u0074P\u0061\u0072\u0061\u006d\u0065\u0074\u0065\u0072\u0073 f\u0069\u006ei\u0073\u0068\u0065\u0064\u002e\u0020\u0025\u0073",_gfef );};type TextRegion struct{_afddfd _d .StreamReader ;RegionInfo *RegionSegment ;SbrTemplate int8 ;SbDsOffset int8 ;DefaultPixel int8 ;CombinationOperator _gc .CombinationOperator ;IsTransposed int8 ;ReferenceCorner int16 ;LogSBStrips int16 ;UseRefinement bool ;IsHuffmanEncoded bool ;SbHuffRSize int8 ;SbHuffRDY int8 ;SbHuffRDX int8 ;SbHuffRDHeight int8 ;SbHuffRDWidth int8 ;SbHuffDT int8 ;SbHuffDS int8 ;SbHuffFS int8 ;SbrATX []int8 ;SbrATY []int8 ;NumberOfSymbolInstances uint32 ;_cfba int64 ;SbStrips int8 ;NumberOfSymbols uint32 ;RegionBitmap *_gc .Bitmap ;Symbols []*_gc .Bitmap ;_dgeb *_fbc .Decoder ;_aagf *GenericRefinementRegion ;_fddc *_fbc .DecoderStats ;_ebde *_fbc .DecoderStats ;_bded *_fbc .DecoderStats ;_adbfg *_fbc .DecoderStats ;_adcf *_fbc .DecoderStats ;_gfdc *_fbc .DecoderStats ;_egcb *_fbc .DecoderStats ;_fdcc *_fbc .DecoderStats ;_dbfb *_fbc .DecoderStats ;_dfeb *_fbc .DecoderStats ;_fdafc *_fbc .DecoderStats ;_affe int8 ;_fcdf *_ca .FixedSizeTable ;Header *Header ;_dadf _ca .Tabler ;_gbbcfg _ca .Tabler ;_acacd _ca .Tabler ;_gffgb _ca .Tabler ;_adab _ca .Tabler ;_bedf _ca .Tabler ;_fdbgb _ca .Tabler ;_eeda _ca .Tabler ;_dbeg ,_ecab map[int ]int ;_efbea []int ;_bagga *_gc .Points ;_ceffg *_gc .Bitmaps ;_ege *_gd .IntSlice ;_gbef ,_adae int ;_edefb *_gc .Boxes ;};type SegmentEncoder interface{Encode (_babd _d .BinaryWriter )(_gfcd int ,_gebge error );};func (_dage *GenericRegion )setParametersMMR (_fabbf bool ,_eebf ,_dfc int64 ,_ebbg ,_bdaa uint32 ,_gade byte ,_ccda ,_aggg bool ,_ecfc ,_ebec []int8 ){_dage .DataOffset =_eebf ;_dage .DataLength =_dfc ;_dage .RegionSegment =&RegionSegment {};_dage .RegionSegment .BitmapHeight =_ebbg ;_dage .RegionSegment .BitmapWidth =_bdaa ;_dage .GBTemplate =_gade ;_dage .IsMMREncoded =_fabbf ;_dage .IsTPGDon =_ccda ;_dage .GBAtX =_ecfc ;_dage .GBAtY =_ebec ;};func (_bgdd *SymbolDictionary )getToExportFlags ()([]int ,error ){var (_gada int ;_gbga int32 ;_cced error ;_cdab =int32 (_bgdd ._feeb +_bgdd .NumberOfNewSymbols );_dedcg =make ([]int ,_cdab ););for _febda :=int32 (0);_febda < _cdab ;_febda +=_gbga {if _bgdd .IsHuffmanEncoded {_agge ,_bfeg :=_ca .GetStandardTable (1);if _bfeg !=nil {return nil ,_bfeg ;};_ddfg ,_bfeg :=_agge .Decode (_bgdd ._cbdgf );if _bfeg !=nil {return nil ,_bfeg ;};_gbga =int32 (_ddfg );}else {_gbga ,_cced =_bgdd ._edff .DecodeInt (_bgdd ._baae );if _cced !=nil {return nil ,_cced ;};};if _gbga !=0{for _fcee :=_febda ;_fcee < _febda +_gbga ;_fcee ++{_dedcg [_fcee ]=_gada ;};};if _gada ==0{_gada =1;}else {_gada =0;};};return _dedcg ,nil ;};func (_dcgg *Header )writeSegmentDataLength (_cdbg _d .BinaryWriter )(_ceea int ,_bbag error ){_gdga :=make ([]byte ,4);_g .BigEndian .PutUint32 (_gdga ,uint32 (_dcgg .SegmentDataLength ));if _ceea ,_bbag =_cdbg .Write (_gdga );_bbag !=nil {return 0,_da .Wrap (_bbag ,"\u0048\u0065a\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u004c\u0065ng\u0074\u0068","");};return _ceea ,nil ;};func (_cfca *Header )writeReferredToSegments (_dggd _d .BinaryWriter )(_dbfa int ,_efcg error ){const _faff ="\u0077\u0072\u0069te\u0052\u0065\u0066\u0065\u0072\u0072\u0065\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";var (_bbfg uint16 ;_gffgc uint32 ;);_aed :=_cfca .referenceSize ();_ffac :=1;_eba :=make ([]byte ,_aed );for _ ,_dgcg :=range _cfca .RTSNumbers {switch _aed {case 4:_gffgc =uint32 (_dgcg );_g .BigEndian .PutUint32 (_eba ,_gffgc );_ffac ,_efcg =_dggd .Write (_eba );if _efcg !=nil {return 0,_da .Wrap (_efcg ,_faff ,"u\u0069\u006e\u0074\u0033\u0032\u0020\u0073\u0069\u007a\u0065");};case 2:_bbfg =uint16 (_dgcg );_g .BigEndian .PutUint16 (_eba ,_bbfg );_ffac ,_efcg =_dggd .Write (_eba );if _efcg !=nil {return 0,_da .Wrap (_efcg ,_faff ,"\u0075\u0069\u006e\u0074\u0031\u0036");};default:if _efcg =_dggd .WriteByte (byte (_dgcg ));_efcg !=nil {return 0,_da .Wrap (_efcg ,_faff ,"\u0075\u0069\u006et\u0038");};};_dbfa +=_ffac ;};return _dbfa ,nil ;};func (_dcfg *SymbolDictionary )huffDecodeRefAggNInst ()(int64 ,error ){if !_dcfg .SdHuffAggInstanceSelection {_fedc ,_fadg :=_ca .GetStandardTable (1);if _fadg !=nil {return 0,_fadg ;};return _fedc .Decode (_dcfg ._cbdgf );};if _dcfg ._gedb ==nil {var (_eedb int ;_cffba error ;);if _dcfg .SdHuffDecodeHeightSelection ==3{_eedb ++;};if _dcfg .SdHuffDecodeWidthSelection ==3{_eedb ++;};if _dcfg .SdHuffBMSizeSelection ==3{_eedb ++;};_dcfg ._gedb ,_cffba =_dcfg .getUserTable (_eedb );if _cffba !=nil {return 0,_cffba ;};};return _dcfg ._gedb .Decode (_dcfg ._cbdgf );};func (_ecg *Header )readSegmentNumber (_abgg _d .StreamReader )error {const _eded ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u004eu\u006d\u0062\u0065\u0072";_adfg :=make ([]byte ,4);_ ,_ccece :=_abgg .Read (_adfg );if _ccece !=nil {return _da .Wrap (_ccece ,_eded ,"");};_ecg .SegmentNumber =_g .BigEndian .Uint32 (_adfg );return nil ;};func (_eefb *TableSegment )HtLow ()int32 {return _eefb ._cgcgf };func (_edd *GenericRefinementRegion )updateOverride ()error {if _edd .GrAtX ==nil ||_edd .GrAtY ==nil {return _cc .New ("\u0041\u0054\u0020\u0070\u0069\u0078\u0065\u006c\u0073\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};if len (_edd .GrAtX )!=len (_edd .GrAtY ){return _cc .New ("A\u0054\u0020\u0070\u0069xe\u006c \u0069\u006e\u0063\u006f\u006es\u0069\u0073\u0074\u0065\u006e\u0074");};_edd ._adg =make ([]bool ,len (_edd .GrAtX ));switch _edd .TemplateID {case 0:if _edd .GrAtX [0]!=-1&&_edd .GrAtY [0]!=-1{_edd ._adg [0]=true ;_edd ._ac =true ;};if _edd .GrAtX [1]!=-1&&_edd .GrAtY [1]!=-1{_edd ._adg [1]=true ;_edd ._ac =true ;};case 1:_edd ._ac =false ;};return nil ;};func (_bbd *GenericRegion )Encode (w _d .BinaryWriter )(_gecc int ,_bccf error ){const _cggd ="G\u0065n\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069o\u006e\u002e\u0045\u006eco\u0064\u0065";if _bbd .Bitmap ==nil {return 0,_da .Error (_cggd ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};_dce ,_bccf :=_bbd .RegionSegment .Encode (w );if _bccf !=nil {return 0,_da .Wrap (_bccf ,_cggd ,"\u0052\u0065\u0067\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};_gecc +=_dce ;if _bccf =w .SkipBits (4);_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"\u0073k\u0069p\u0020\u0072\u0065\u0073\u0065r\u0076\u0065d\u0020\u0062\u0069\u0074\u0073");};var _dcb int ;if _bbd .IsTPGDon {_dcb =1;};if _bccf =w .WriteBit (_dcb );_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"\u0074\u0070\u0067\u0064\u006f\u006e");};_dcb =0;if _bccf =w .WriteBit (int (_bbd .GBTemplate >>1)&0x01);_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"f\u0069r\u0073\u0074\u0020\u0067\u0062\u0074\u0065\u006dp\u006c\u0061\u0074\u0065 b\u0069\u0074");};if _bccf =w .WriteBit (int (_bbd .GBTemplate )&0x01);_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"s\u0065\u0063\u006f\u006ed \u0067b\u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u0020\u0062\u0069\u0074");};if _bbd .UseMMR {_dcb =1;};if _bccf =w .WriteBit (_dcb );_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"u\u0073\u0065\u0020\u004d\u004d\u0052\u0020\u0062\u0069\u0074");};_gecc ++;if _dce ,_bccf =_bbd .writeGBAtPixels (w );_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"");};_gecc +=_dce ;_gfda :=_cb .New ();if _bccf =_gfda .EncodeBitmap (_bbd .Bitmap ,_bbd .IsTPGDon );_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"");};_gfda .Final ();var _cgbd int64 ;if _cgbd ,_bccf =_gfda .WriteTo (w );_bccf !=nil {return _gecc ,_da .Wrap (_bccf ,_cggd ,"");};_gecc +=int (_cgbd );return _gecc ,nil ;};func (_aace *RegionSegment )String ()string {_ddf :=&_cg .Builder {};_ddf .WriteString ("\u0009[\u0052E\u0047\u0049\u004f\u004e\u0020S\u0045\u0047M\u0045\u004e\u0054\u005d\u000a");_ddf .WriteString (_ce .Sprintf ("\t\u0009\u002d\u0020\u0042\u0069\u0074m\u0061\u0070\u0020\u0028\u0077\u0069d\u0074\u0068\u002c\u0020\u0068\u0065\u0069g\u0068\u0074\u0029\u0020\u005b\u0025\u0064\u0078\u0025\u0064]\u000a",_aace .BitmapWidth ,_aace .BitmapHeight ));_ddf .WriteString (_ce .Sprintf ("\u0009\u0009\u002d\u0020L\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0028\u0078,\u0079)\u003a\u0020\u005b\u0025\u0064\u002c\u0025d\u005d\u000a",_aace .XLocation ,_aace .YLocation ));_ddf .WriteString (_ce .Sprintf ("\t\u0009\u002d\u0020\u0043\u006f\u006db\u0069\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070e\u0072\u0061\u0074o\u0072:\u0020\u0025\u0073",_aace .CombinaionOperator ));return _ddf .String ();};func (_dbfaa *PatternDictionary )computeSegmentDataStructure ()error {_dbfaa .DataOffset =_dbfaa ._ddge .StreamPosition ();_dbfaa .DataHeaderLength =_dbfaa .DataOffset -_dbfaa .DataHeaderOffset ;_dbfaa .DataLength =int64 (_dbfaa ._ddge .Length ())-_dbfaa .DataHeaderLength ;return nil ;};func (_eagb *PageInformationSegment )readWidthAndHeight ()error {_dfda ,_fabd :=_eagb ._fgff .ReadBits (32);if _fabd !=nil {return _fabd ;};_eagb .PageBMWidth =int (_dfda &_a .MaxInt32 );_dfda ,_fabd =_eagb ._fgff .ReadBits (32);if _fabd !=nil {return _fabd ;};_eagb .PageBMHeight =int (_dfda &_a .MaxInt32 );return nil ;};func (_dagg *GenericRegion )decodeTemplate0b (_fecf ,_cge ,_eeaad int ,_bdgb ,_cbec int )(_acac error ){const _dbca ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0062";var (_gaac ,_bece int ;_dfa ,_dgdb int ;_bfg byte ;_cgbcg int ;);if _fecf >=1{_bfg ,_acac =_dagg .Bitmap .GetByte (_cbec );if _acac !=nil {return _da .Wrap (_acac ,_dbca ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_dfa =int (_bfg );};if _fecf >=2{_bfg ,_acac =_dagg .Bitmap .GetByte (_cbec -_dagg .Bitmap .RowStride );if _acac !=nil {return _da .Wrap (_acac ,_dbca ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_dgdb =int (_bfg )<<6;};_gaac =(_dfa &0xf0)|(_dgdb &0x3800);for _gacc :=0;_gacc < _eeaad ;_gacc =_cgbcg {var (_cccb byte ;_efd int ;);_cgbcg =_gacc +8;if _acb :=_cge -_gacc ;_acb > 8{_efd =8;}else {_efd =_acb ;};if _fecf > 0{_dfa <<=8;if _cgbcg < _cge {_bfg ,_acac =_dagg .Bitmap .GetByte (_cbec +1);if _acac !=nil {return _da .Wrap (_acac ,_dbca ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_dfa |=int (_bfg );};};if _fecf > 1{_dgdb <<=8;if _cgbcg < _cge {_bfg ,_acac =_dagg .Bitmap .GetByte (_cbec -_dagg .Bitmap .RowStride +1);if _acac !=nil {return _da .Wrap (_acac ,_dbca ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_dgdb |=int (_bfg )<<6;};};for _cccbc :=0;_cccbc < _efd ;_cccbc ++{_dfbd :=uint (7-_cccbc );if _dagg ._fee {_bece =_dagg .overrideAtTemplate0b (_gaac ,_gacc +_cccbc ,_fecf ,int (_cccb ),_cccbc ,int (_dfbd ));_dagg ._cab .SetIndex (int32 (_bece ));}else {_dagg ._cab .SetIndex (int32 (_gaac ));};var _fab int ;_fab ,_acac =_dagg ._ffb .DecodeBit (_dagg ._cab );if _acac !=nil {return _da .Wrap (_acac ,_dbca ,"");};_cccb |=byte (_fab <<_dfbd );_gaac =((_gaac &0x7bf7)<<1)|_fab |((_dfa >>_dfbd )&0x10)|((_dgdb >>_dfbd )&0x800);};if _fag :=_dagg .Bitmap .SetByte (_bdgb ,_cccb );_fag !=nil {return _da .Wrap (_fag ,_dbca ,"");};_bdgb ++;_cbec ++;};return nil ;};func (_gdbb *SymbolDictionary )encodeFlags (_geg _d .BinaryWriter )(_cagfg int ,_cfgc error ){const _cddf ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _cfgc =_geg .SkipBits (3);_cfgc !=nil {return 0,_da .Wrap (_cfgc ,_cddf ,"\u0065\u006d\u0070\u0074\u0079\u0020\u0062\u0069\u0074\u0073");};var _facg int ;if _gdbb .SdrTemplate > 0{_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"s\u0064\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_facg =0;if _gdbb .SdTemplate > 1{_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_facg =0;if _gdbb .SdTemplate ==1||_gdbb .SdTemplate ==3{_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};_facg =0;if _gdbb ._aabb {_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0063\u006f\u0064in\u0067\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0065\u0064");};_facg =0;if _gdbb ._gebb {_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0063\u006f\u0064\u0069ng\u0020\u0063\u006f\u006e\u0074\u0065\u0078\u0074\u0020\u0075\u0073\u0065\u0064");};_facg =0;if _gdbb .SdHuffAggInstanceSelection {_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0048\u0075\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074");};_facg =int (_gdbb .SdHuffBMSizeSelection );if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0048u\u0066\u0066\u0042\u006d\u0053\u0069\u007a\u0065");};_facg =0;if _gdbb .SdHuffDecodeWidthSelection > 1{_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");};_facg =0;switch _gdbb .SdHuffDecodeWidthSelection {case 1,3:_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"s\u0064\u0048\u0075\u0066\u0066\u0057\u0069\u0064\u0074\u0068");};_facg =0;if _gdbb .SdHuffDecodeHeightSelection > 1{_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074");};_facg =0;switch _gdbb .SdHuffDecodeHeightSelection {case 1,3:_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0048u\u0066\u0066\u0048\u0065\u0069\u0067\u0068\u0074");};_facg =0;if _gdbb .UseRefinementAggregation {_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0052\u0065\u0066\u0041\u0067\u0067");};_facg =0;if _gdbb .IsHuffmanEncoded {_facg =1;};if _cfgc =_geg .WriteBit (_facg );_cfgc !=nil {return _cagfg ,_da .Wrap (_cfgc ,_cddf ,"\u0073\u0064\u0048\u0075\u0066\u0066");};return 2,nil ;};func (_gecde *Header )readNumberOfReferredToSegments (_bdbe _d .StreamReader )(uint64 ,error ){const _edb ="\u0072\u0065\u0061\u0064\u004e\u0075\u006d\u0062\u0065\u0072O\u0066\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073";_cdbe ,_fbdd :=_bdbe .ReadBits (3);if _fbdd !=nil {return 0,_da .Wrap (_fbdd ,_edb ,"\u0063\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0072\u0074\u0073");};_cdbe &=0xf;var _geaa []byte ;if _cdbe <=4{_geaa =make ([]byte ,5);for _debe :=0;_debe <=4;_debe ++{_gdbf ,_bbcc :=_bdbe .ReadBit ();if _bbcc !=nil {return 0,_da .Wrap (_bbcc ,_edb ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_geaa [_debe ]=byte (_gdbf );};}else {_cdbe ,_fbdd =_bdbe .ReadBits (29);if _fbdd !=nil {return 0,_fbdd ;};_cdbe &=_a .MaxInt32 ;_ccgf :=(_cdbe +8)>>3;_ccgf <<=3;_geaa =make ([]byte ,_ccgf );var _fggg uint64 ;for _fggg =0;_fggg < _ccgf ;_fggg ++{_cedf ,_dcaa :=_bdbe .ReadBit ();if _dcaa !=nil {return 0,_da .Wrap (_dcaa ,_edb ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_geaa [_fggg ]=byte (_cedf );};};return _cdbe ,nil ;};func (_gdfag *SymbolDictionary )addSymbol (_gadef Regioner )error {_ggbg ,_afg :=_gadef .GetRegionBitmap ();if _afg !=nil {return _afg ;};_gdfag ._dcbb [_gdfag ._bffbfb ]=_ggbg ;_gdfag ._ecd =append (_gdfag ._ecd ,_ggbg );_fbg .Log .Trace ("\u005b\u0053YM\u0042\u004f\u004c \u0044\u0049\u0043\u0054ION\u0041RY\u005d\u0020\u0041\u0064\u0064\u0065\u0064 s\u0079\u006d\u0062\u006f\u006c\u003a\u0020%\u0073",_ggbg );return nil ;};func (_cfdf *template1 )setIndex (_fafg *_fbc .DecoderStats ){_fafg .SetIndex (0x080)};func (_effb *HalftoneRegion )combineGrayscalePlanes (_gbgb []*_gc .Bitmap ,_ecfg int )error {_gbbc :=0;for _cgcg :=0;_cgcg < _gbgb [_ecfg ].Height ;_cgcg ++{for _bfga :=0;_bfga < _gbgb [_ecfg ].Width ;_bfga +=8{_fgbge ,_edfa :=_gbgb [_ecfg +1].GetByte (_gbbc );if _edfa !=nil {return _edfa ;};_ebgd ,_edfa :=_gbgb [_ecfg ].GetByte (_gbbc );if _edfa !=nil {return _edfa ;};_edfa =_gbgb [_ecfg ].SetByte (_gbbc ,_gc .CombineBytes (_ebgd ,_fgbge ,_gc .CmbOpXor ));if _edfa !=nil {return _edfa ;};_gbbc ++;};};return nil ;};func (_fdacf *TextRegion )decodeDT ()(_fdafce int64 ,_feggf error ){if _fdacf .IsHuffmanEncoded {if _fdacf .SbHuffDT ==3{_fdafce ,_feggf =_fdacf ._acacd .Decode (_fdacf ._afddfd );if _feggf !=nil {return 0,_feggf ;};}else {var _geca _ca .Tabler ;_geca ,_feggf =_ca .GetStandardTable (11+int (_fdacf .SbHuffDT ));if _feggf !=nil {return 0,_feggf ;};_fdafce ,_feggf =_geca .Decode (_fdacf ._afddfd );if _feggf !=nil {return 0,_feggf ;};};}else {var _babb int32 ;_babb ,_feggf =_fdacf ._dgeb .DecodeInt (_fdacf ._fddc );if _feggf !=nil {return ;};_fdafce =int64 (_babb );};_fdafce *=int64 (_fdacf .SbStrips );return _fdafce ,nil ;};func (_cbf *Header )readHeaderLength (_bbad _d .StreamReader ,_bgfa int64 ){_cbf .HeaderLength =_bbad .StreamPosition ()-_bgfa ;};type GenericRefinementRegion struct{_gcd templater ;_ad templater ;_cga _d .StreamReader ;_gce *Header ;RegionInfo *RegionSegment ;IsTPGROn bool ;TemplateID int8 ;Template templater ;GrAtX []int8 ;GrAtY []int8 ;RegionBitmap *_gc .Bitmap ;ReferenceBitmap *_gc .Bitmap ;ReferenceDX int32 ;ReferenceDY int32 ;_de *_fbc .Decoder ;_ee *_fbc .DecoderStats ;_ac bool ;_adg []bool ;};func (_cbcc *HalftoneRegion )Init (hd *Header ,r _d .StreamReader )error {_cbcc ._ffdg =r ;_cbcc ._ceffa =hd ;_cbcc .RegionSegment =NewRegionSegment (r );return _cbcc .parseHeader ();};func (_bae *GenericRefinementRegion )String ()string {_bac :=&_cg .Builder {};_bac .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_bac .WriteString (_bae .RegionInfo .String ()+"\u000a");_bac .WriteString (_ce .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0052\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_bae .IsTPGROn ));_bac .WriteString (_ce .Sprintf ("\u0009-\u0020T\u0065\u006d\u0070\u006c\u0061t\u0065\u0049D\u003a\u0020\u0025\u0076\u000a",_bae .TemplateID ));_bac .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_bae .GrAtX ));_bac .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0047\u0072\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_bae .GrAtY ));_bac .WriteString (_ce .Sprintf ("\u0009-\u0020R\u0065\u0066\u0065\u0072\u0065n\u0063\u0065D\u0058\u0020\u0025\u0076\u000a",_bae .ReferenceDX ));_bac .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0052ef\u0065\u0072\u0065\u006e\u0063\u0044\u0065\u0059\u003a\u0020\u0025\u0076\u000a",_bae .ReferenceDY ));return _bac .String ();};func (_badf *Header )writeReferredToCount (_cbae _d .BinaryWriter )(_decf int ,_bgcf error ){const _ggd ="w\u0072i\u0074\u0065\u0052\u0065\u0066\u0065\u0072\u0072e\u0064\u0054\u006f\u0043ou\u006e\u0074";_badf .RTSNumbers =make ([]int ,len (_badf .RTSegments ));for _gabf ,_agbd :=range _badf .RTSegments {_badf .RTSNumbers [_gabf ]=int (_agbd .SegmentNumber );};if len (_badf .RTSNumbers )<=4{var _bcac byte ;if len (_badf .RetainBits )>=1{_bcac =_badf .RetainBits [0];};_bcac |=byte (len (_badf .RTSNumbers ))<<5;if _bgcf =_cbae .WriteByte (_bcac );_bgcf !=nil {return 0,_da .Wrap (_bgcf ,_ggd ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return 1,nil ;};_fagb :=uint32 (len (_badf .RTSNumbers ));_bada :=make ([]byte ,4+_gd .Ceil (len (_badf .RTSNumbers )+1,8));_fagb |=0x7<<29;_g .BigEndian .PutUint32 (_bada ,_fagb );copy (_bada [1:],_badf .RetainBits );_decf ,_bgcf =_cbae .Write (_bada );if _bgcf !=nil {return 0,_da .Wrap (_bgcf ,_ggd ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};return _decf ,nil ;};func (_cfd *GenericRefinementRegion )overrideAtTemplate0 (_dae ,_ccd ,_cec ,_ddgd ,_abcg int )int {if _cfd ._adg [0]{_dae &=0xfff7;if _cfd .GrAtY [0]==0&&int (_cfd .GrAtX [0])>=-_abcg {_dae |=(_ddgd >>uint (7-(_abcg +int (_cfd .GrAtX [0])))&0x1)<<3;}else {_dae |=_cfd .getPixel (_cfd .RegionBitmap ,_ccd +int (_cfd .GrAtX [0]),_cec +int (_cfd .GrAtY [0]))<<3;};};if _cfd ._adg [1]{_dae &=0xefff;if _cfd .GrAtY [1]==0&&int (_cfd .GrAtX [1])>=-_abcg {_dae |=(_ddgd >>uint (7-(_abcg +int (_cfd .GrAtX [1])))&0x1)<<12;}else {_dae |=_cfd .getPixel (_cfd .ReferenceBitmap ,_ccd +int (_cfd .GrAtX [1]),_cec +int (_cfd .GrAtY [1]));};};return _dae ;};func (_bce *SymbolDictionary )getUserTable (_gbgg int )(_ca .Tabler ,error ){var _cffe int ;for _ ,_fccc :=range _bce .Header .RTSegments {if _fccc .Type ==53{if _cffe ==_gbgg {_cgeg ,_aebc :=_fccc .GetSegmentData ();if _aebc !=nil {return nil ,_aebc ;};_efa :=_cgeg .(_ca .BasicTabler );return _ca .NewEncodedTable (_efa );};_cffe ++;};};return nil ,nil ;};func (_gbdd *SymbolDictionary )encodeSymbols (_fcca _d .BinaryWriter )(_ccdg int ,_cbab error ){const _gfcec ="\u0065\u006e\u0063o\u0064\u0065\u0053\u0079\u006d\u0062\u006f\u006c";_feebd :=_cb .New ();_feebd .Init ();_bacc ,_cbab :=_gbdd ._fcge .SelectByIndexes (_gbdd ._ecac );if _cbab !=nil {return 0,_da .Wrap (_cbab ,_gfcec ,"\u0069n\u0069\u0074\u0069\u0061\u006c");};_fabc :=map[*_gc .Bitmap ]int {};for _ceda ,_bde :=range _bacc .Values {_fabc [_bde ]=_ceda ;};_bacc .SortByHeight ();var _dffe ,_ffdea int ;_ccdab ,_cbab :=_bacc .GroupByHeight ();if _cbab !=nil {return 0,_da .Wrap (_cbab ,_gfcec ,"");};for _ ,_dbbaf :=range _ccdab .Values {_ccdgc :=_dbbaf .Values [0].Height ;_dddbb :=_ccdgc -_dffe ;if _cbab =_feebd .EncodeInteger (_cb .IADH ,_dddbb );_cbab !=nil {return 0,_da .Wrapf (_cbab ,_gfcec ,"\u0049\u0041\u0044\u0048\u0020\u0066\u006f\u0072\u0020\u0064\u0068\u003a \u0027\u0025\u0064\u0027",_dddbb );};_dffe =_ccdgc ;_fcb ,_agec :=_dbbaf .GroupByWidth ();if _agec !=nil {return 0,_da .Wrapf (_agec ,_gfcec ,"\u0068\u0065\u0069g\u0068\u0074\u003a\u0020\u0027\u0025\u0064\u0027",_ccdgc );};var _afece int ;for _ ,_gedbg :=range _fcb .Values {for _ ,_ecea :=range _gedbg .Values {_eeaf :=_ecea .Width ;_agga :=_eeaf -_afece ;if _agec =_feebd .EncodeInteger (_cb .IADW ,_agga );_agec !=nil {return 0,_da .Wrapf (_agec ,_gfcec ,"\u0049\u0041\u0044\u0057\u0020\u0066\u006f\u0072\u0020\u0064\u0077\u003a \u0027\u0025\u0064\u0027",_agga );};_afece +=_agga ;if _agec =_feebd .EncodeBitmap (_ecea ,false );_agec !=nil {return 0,_da .Wrapf (_agec ,_gfcec ,"H\u0065i\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u0020W\u0069\u0064\u0074\u0068: \u0025\u0064",_ccdgc ,_eeaf );};_eab :=_fabc [_ecea ];_gbdd ._gdgb [_eab ]=_ffdea ;_ffdea ++;};};if _agec =_feebd .EncodeOOB (_cb .IADW );_agec !=nil {return 0,_da .Wrap (_agec ,_gfcec ,"\u0049\u0041\u0044\u0057");};};if _cbab =_feebd .EncodeInteger (_cb .IAEX ,0);_cbab !=nil {return 0,_da .Wrap (_cbab ,_gfcec ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};if _cbab =_feebd .EncodeInteger (_cb .IAEX ,len (_gbdd ._ecac ));_cbab !=nil {return 0,_da .Wrap (_cbab ,_gfcec ,"\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0073\u0079m\u0062\u006f\u006c\u0073");};_feebd .Final ();_bcbf ,_cbab :=_feebd .WriteTo (_fcca );if _cbab !=nil {return 0,_da .Wrap (_cbab ,_gfcec ,"\u0077\u0072i\u0074\u0069\u006e\u0067 \u0065\u006ec\u006f\u0064\u0065\u0072\u0020\u0063\u006f\u006et\u0065\u0078\u0074\u0020\u0074\u006f\u0020\u0027\u0077\u0027\u0020\u0077r\u0069\u0074\u0065\u0072");};return int (_bcbf ),nil ;};func (_aag *SymbolDictionary )decodeDirectlyThroughGenericRegion (_fgdg ,_decg uint32 )error {if _aag ._cbfc ==nil {_aag ._cbfc =NewGenericRegion (_aag ._cbdgf );};_aag ._cbfc .setParametersWithAt (false ,byte (_aag .SdTemplate ),false ,false ,_aag .SdATX ,_aag .SdATY ,_fgdg ,_decg ,_aag ._edef ,_aag ._edff );return _aag .addSymbol (_aag ._cbfc );};func (_abcfc *SymbolDictionary )decodeHeightClassBitmap (_daea *_gc .Bitmap ,_aeded int64 ,_becc int ,_gcfcg []int )error {for _gbdac :=_aeded ;_gbdac < int64 (_abcfc ._bffbfb );_gbdac ++{var _dcee int ;for _gaag :=_aeded ;_gaag <=_gbdac -1;_gaag ++{_dcee +=_gcfcg [_gaag ];};_gdbff :=_e .Rect (_dcee ,0,_dcee +_gcfcg [_gbdac ],_becc );_cbcg ,_dfdc :=_gc .Extract (_gdbff ,_daea );if _dfdc !=nil {return _dfdc ;};_abcfc ._dcbb [_gbdac ]=_cbcg ;_abcfc ._ecd =append (_abcfc ._ecd ,_cbcg );};return nil ;};func (_dafb *GenericRegion )InitEncode (bm *_gc .Bitmap ,xLoc ,yLoc ,template int ,duplicateLineRemoval bool )error {const _bge ="\u0047e\u006e\u0065\u0072\u0069\u0063\u0052\u0065\u0067\u0069\u006f\u006e.\u0049\u006e\u0069\u0074\u0045\u006e\u0063\u006f\u0064\u0065";if bm ==nil {return _da .Error (_bge ,"\u0070\u0072\u006f\u0076id\u0065\u0064\u0020\u006e\u0069\u006c\u0020\u0062\u0069\u0074\u006d\u0061\u0070");};if xLoc < 0||yLoc < 0{return _da .Error (_bge ,"\u0078\u0020\u0061\u006e\u0064\u0020\u0079\u0020\u006c\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0067\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074h\u0061\u006e\u0020\u0030");};_dafb .Bitmap =bm ;_dafb .GBTemplate =byte (template );switch _dafb .GBTemplate {case 0:_dafb .GBAtX =[]int8 {3,-3,2,-2};_dafb .GBAtY =[]int8 {-1,-1,-2,-2};case 1:_dafb .GBAtX =[]int8 {3};_dafb .GBAtY =[]int8 {-1};case 2,3:_dafb .GBAtX =[]int8 {2};_dafb .GBAtY =[]int8 {-1};default:return _da .Errorf (_bge ,"\u0070\u0072o\u0076\u0069\u0064\u0065\u0064 \u0074\u0065\u006d\u0070\u006ca\u0074\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u007b\u0030\u002c\u0031\u002c\u0032\u002c\u0033\u007d",template );};_dafb .RegionSegment =&RegionSegment {BitmapHeight :uint32 (bm .Height ),BitmapWidth :uint32 (bm .Width ),XLocation :uint32 (xLoc ),YLocation :uint32 (yLoc )};_dafb .IsTPGDon =duplicateLineRemoval ;return nil ;};func (_gdfae *TableSegment )HtPS ()int32 {return _gdfae ._dfag };func (_bbgg *SymbolDictionary )decodeAggregate (_deef ,_bcba uint32 )error {var (_bbce int64 ;_acaf error ;);if _bbgg .IsHuffmanEncoded {_bbce ,_acaf =_bbgg .huffDecodeRefAggNInst ();if _acaf !=nil {return _acaf ;};}else {_ddfd ,_ccga :=_bbgg ._edff .DecodeInt (_bbgg ._ccefd );if _ccga !=nil {return _ccga ;};_bbce =int64 (_ddfd );};if _bbce > 1{return _bbgg .decodeThroughTextRegion (_deef ,_bcba ,uint32 (_bbce ));}else if _bbce ==1{return _bbgg .decodeRefinedSymbol (_deef ,_bcba );};return nil ;};type Regioner interface{GetRegionBitmap ()(*_gc .Bitmap ,error );GetRegionInfo ()*RegionSegment ;};func (_beeb *TextRegion )readUseRefinement ()error {if !_beeb .UseRefinement ||_beeb .SbrTemplate !=0{return nil ;};var (_dcea byte ;_acgb error ;);_beeb .SbrATX =make ([]int8 ,2);_beeb .SbrATY =make ([]int8 ,2);_dcea ,_acgb =_beeb ._afddfd .ReadByte ();if _acgb !=nil {return _acgb ;};_beeb .SbrATX [0]=int8 (_dcea );_dcea ,_acgb =_beeb ._afddfd .ReadByte ();if _acgb !=nil {return _acgb ;};_beeb .SbrATY [0]=int8 (_dcea );_dcea ,_acgb =_beeb ._afddfd .ReadByte ();if _acgb !=nil {return _acgb ;};_beeb .SbrATX [1]=int8 (_dcea );_dcea ,_acgb =_beeb ._afddfd .ReadByte ();if _acgb !=nil {return _acgb ;};_beeb .SbrATY [1]=int8 (_dcea );return nil ;};func (_feba *TextRegion )String ()string {_fgbb :=&_cg .Builder {};_fgbb .WriteString ("\u000a[\u0054E\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u000a");_fgbb .WriteString (_feba .RegionInfo .String ()+"\u000a");_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053br\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u003a\u0020\u0025\u0076\u000a",_feba .SbrTemplate ));_fgbb .WriteString (_ce .Sprintf ("\u0009-\u0020S\u0062\u0044\u0073\u004f\u0066f\u0073\u0065t\u003a\u0020\u0025\u0076\u000a",_feba .SbDsOffset ));_fgbb .WriteString (_ce .Sprintf ("\t\u002d \u0044\u0065\u0066\u0061\u0075\u006c\u0074\u0050i\u0078\u0065\u006c\u003a %\u0076\u000a",_feba .DefaultPixel ));_fgbb .WriteString (_ce .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0076\u000a",_feba .CombinationOperator ));_fgbb .WriteString (_ce .Sprintf ("\t\u002d \u0049\u0073\u0054\u0072\u0061\u006e\u0073\u0070o\u0073\u0065\u0064\u003a %\u0076\u000a",_feba .IsTransposed ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020Re\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0043\u006f\u0072\u006e\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_feba .ReferenceCorner ));_fgbb .WriteString (_ce .Sprintf ("\t\u002d\u0020\u0055\u0073eR\u0065f\u0069\u006e\u0065\u006d\u0065n\u0074\u003a\u0020\u0025\u0076\u000a",_feba .UseRefinement ));_fgbb .WriteString (_ce .Sprintf ("\u0009-\u0020\u0049\u0073\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045n\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0076\u000a",_feba .IsHuffmanEncoded ));if _feba .IsHuffmanEncoded {_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0053\u0069\u007a\u0065\u003a\u0020\u0025\u0076\u000a",_feba .SbHuffRSize ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0059:\u0020\u0025\u0076\u000a",_feba .SbHuffRDY ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0058:\u0020\u0025\u0076\u000a",_feba .SbHuffRDX ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053bH\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069\u0067\u0068\u0074\u003a\u0020\u0025v\u000a",_feba .SbHuffRDHeight ));_fgbb .WriteString (_ce .Sprintf ("\t\u002d\u0020\u0053\u0062Hu\u0066f\u0052\u0044\u0057\u0069\u0064t\u0068\u003a\u0020\u0025\u0076\u000a",_feba .SbHuffRDWidth ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0054\u003a\u0020\u0025\u0076\u000a",_feba .SbHuffDT ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0044\u0053\u003a\u0020\u0025\u0076\u000a",_feba .SbHuffDS ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d \u0053\u0062\u0048u\u0066\u0066\u0046\u0053\u003a\u0020\u0025\u0076\u000a",_feba .SbHuffFS ));};_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_feba .SbrATX ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0059:\u0020\u0025\u0076\u000a",_feba .SbrATY ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020N\u0075\u006d\u0062\u0065r\u004f\u0066\u0053\u0079\u006d\u0062\u006fl\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_feba .NumberOfSymbolInstances ));_fgbb .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0062\u0072\u0041\u0054\u0058:\u0020\u0025\u0076\u000a",_feba .SbrATX ));return _fgbb .String ();};func (_bgec *SymbolDictionary )decodeRefinedSymbol (_cgcd ,_eceg uint32 )error {var (_febd int ;_ffbb ,_dfca int32 ;);if _bgec .IsHuffmanEncoded {_ceba ,_dggdf :=_bgec ._cbdgf .ReadBits (byte (_bgec ._gbed ));if _dggdf !=nil {return _dggdf ;};_febd =int (_ceba );_cbfe ,_dggdf :=_ca .GetStandardTable (15);if _dggdf !=nil {return _dggdf ;};_egga ,_dggdf :=_cbfe .Decode (_bgec ._cbdgf );if _dggdf !=nil {return _dggdf ;};_ffbb =int32 (_egga );_egga ,_dggdf =_cbfe .Decode (_bgec ._cbdgf );if _dggdf !=nil {return _dggdf ;};_dfca =int32 (_egga );_cbfe ,_dggdf =_ca .GetStandardTable (1);if _dggdf !=nil {return _dggdf ;};if _ ,_dggdf =_cbfe .Decode (_bgec ._cbdgf );_dggdf !=nil {return _dggdf ;};_bgec ._cbdgf .Align ();}else {_fecc ,_dedc :=_bgec ._edff .DecodeIAID (uint64 (_bgec ._gbed ),_bgec ._ceca );if _dedc !=nil {return _dedc ;};_febd =int (_fecc );_ffbb ,_dedc =_bgec ._edff .DecodeInt (_bgec ._edad );if _dedc !=nil {return _dedc ;};_dfca ,_dedc =_bgec ._edff .DecodeInt (_bgec ._cbff );if _dedc !=nil {return _dedc ;};};if _cebb :=_bgec .setSymbolsArray ();_cebb !=nil {return _cebb ;};_ebeed :=_bgec ._ecd [_febd ];if _ffda :=_bgec .decodeNewSymbols (_cgcd ,_eceg ,_ebeed ,_ffbb ,_dfca );_ffda !=nil {return _ffda ;};if _bgec .IsHuffmanEncoded {_bgec ._cbdgf .Align ();};return nil ;};func (_dbdb *PatternDictionary )setGbAtPixels (){if _dbdb .HDTemplate ==0{_dbdb .GBAtX =make ([]int8 ,4);_dbdb .GBAtY =make ([]int8 ,4);_dbdb .GBAtX [0]=-int8 (_dbdb .HdpWidth );_dbdb .GBAtY [0]=0;_dbdb .GBAtX [1]=-3;_dbdb .GBAtY [1]=-1;_dbdb .GBAtX [2]=2;_dbdb .GBAtY [2]=-2;_dbdb .GBAtX [3]=-2;_dbdb .GBAtY [3]=-2;}else {_dbdb .GBAtX =[]int8 {-int8 (_dbdb .HdpWidth )};_dbdb .GBAtY =[]int8 {0};};};func (_fdd *EndOfStripe )LineNumber ()int {return _fdd ._af };func (_gfga *TextRegion )getUserTable (_cfbb int )(_ca .Tabler ,error ){const _dfebe ="\u0067\u0065\u0074U\u0073\u0065\u0072\u0054\u0061\u0062\u006c\u0065";var _ebgb int ;for _ ,_ebce :=range _gfga .Header .RTSegments {if _ebce .Type ==53{if _ebgb ==_cfbb {_bfa ,_faafb :=_ebce .GetSegmentData ();if _faafb !=nil {return nil ,_faafb ;};_ebegf ,_cfcg :=_bfa .(*TableSegment );if !_cfcg {_fbg .Log .Debug (_ce .Sprintf ("\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079p\u0065\u00205\u0033\u0020\u002d\u0020\u0061\u006ed\u0020in\u0064\u0065\u0078\u003a\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_ebce .SegmentNumber ));return nil ,_da .Error (_dfebe ,"\u0073\u0065\u0067\u006d\u0065\u006e\u0074 \u0077\u0069\u0074h\u0020\u0054\u0079\u0070e\u0020\u0035\u0033\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u002a\u0054\u0061\u0062\u006c\u0065\u0053\u0065\u0067\u006d\u0065\u006e\u0074");};return _ca .NewEncodedTable (_ebegf );};_ebgb ++;};};return nil ,nil ;};func (_abd *GenericRegion )overrideAtTemplate0b (_fbdeb ,_bgc ,_agcf ,_affc ,_bba ,_beee int )int {if _abd .GBAtOverride [0]{_fbdeb &=0xFFFD;if _abd .GBAtY [0]==0&&_abd .GBAtX [0]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [0]&0x1))<<1;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [0]),_agcf +int (_abd .GBAtY [0])))<<1;};};if _abd .GBAtOverride [1]{_fbdeb &=0xDFFF;if _abd .GBAtY [1]==0&&_abd .GBAtX [1]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [1]&0x1))<<13;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [1]),_agcf +int (_abd .GBAtY [1])))<<13;};};if _abd .GBAtOverride [2]{_fbdeb &=0xFDFF;if _abd .GBAtY [2]==0&&_abd .GBAtX [2]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [2]&0x1))<<9;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [2]),_agcf +int (_abd .GBAtY [2])))<<9;};};if _abd .GBAtOverride [3]{_fbdeb &=0xBFFF;if _abd .GBAtY [3]==0&&_abd .GBAtX [3]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [3]&0x1))<<14;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [3]),_agcf +int (_abd .GBAtY [3])))<<14;};};if _abd .GBAtOverride [4]{_fbdeb &=0xEFFF;if _abd .GBAtY [4]==0&&_abd .GBAtX [4]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [4]&0x1))<<12;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [4]),_agcf +int (_abd .GBAtY [4])))<<12;};};if _abd .GBAtOverride [5]{_fbdeb &=0xFFDF;if _abd .GBAtY [5]==0&&_abd .GBAtX [5]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [5]&0x1))<<5;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [5]),_agcf +int (_abd .GBAtY [5])))<<5;};};if _abd .GBAtOverride [6]{_fbdeb &=0xFFFB;if _abd .GBAtY [6]==0&&_abd .GBAtX [6]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [6]&0x1))<<2;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [6]),_agcf +int (_abd .GBAtY [6])))<<2;};};if _abd .GBAtOverride [7]{_fbdeb &=0xFFF7;if _abd .GBAtY [7]==0&&_abd .GBAtX [7]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [7]&0x1))<<3;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [7]),_agcf +int (_abd .GBAtY [7])))<<3;};};if _abd .GBAtOverride [8]{_fbdeb &=0xF7FF;if _abd .GBAtY [8]==0&&_abd .GBAtX [8]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [8]&0x1))<<11;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [8]),_agcf +int (_abd .GBAtY [8])))<<11;};};if _abd .GBAtOverride [9]{_fbdeb &=0xFFEF;if _abd .GBAtY [9]==0&&_abd .GBAtX [9]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [9]&0x1))<<4;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [9]),_agcf +int (_abd .GBAtY [9])))<<4;};};if _abd .GBAtOverride [10]{_fbdeb &=0x7FFF;if _abd .GBAtY [10]==0&&_abd .GBAtX [10]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [10]&0x1))<<15;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [10]),_agcf +int (_abd .GBAtY [10])))<<15;};};if _abd .GBAtOverride [11]{_fbdeb &=0xFDFF;if _abd .GBAtY [11]==0&&_abd .GBAtX [11]>=-int8 (_bba ){_fbdeb |=(_affc >>uint (int8 (_beee )-_abd .GBAtX [11]&0x1))<<10;}else {_fbdeb |=int (_abd .getPixel (_bgc +int (_abd .GBAtX [11]),_agcf +int (_abd .GBAtY [11])))<<10;};};return _fbdeb ;};func (_cdge *TableSegment )Init (h *Header ,r _d .StreamReader )error {_cdge ._eefd =r ;return _cdge .parseHeader ();};func (_ggdg *TextRegion )decodeID ()(int64 ,error ){if _ggdg .IsHuffmanEncoded {if _ggdg ._fcdf ==nil {_bgag ,_eebg :=_ggdg ._afddfd .ReadBits (byte (_ggdg ._affe ));return int64 (_bgag ),_eebg ;};return _ggdg ._fcdf .Decode (_ggdg ._afddfd );};return _ggdg ._dgeb .DecodeIAID (uint64 (_ggdg ._affe ),_ggdg ._fdcc );};const (ORandom OrganizationType =iota ;OSequential ;);func (_bade *GenericRegion )overrideAtTemplate3 (_cabc ,_ddc ,_ccgcg ,_gdf ,_begb int )int {_cabc &=0x3EF;if _bade .GBAtY [0]==0&&_bade .GBAtX [0]>=-int8 (_begb ){_cabc |=(_gdf >>uint (7-(int8 (_begb )+_bade .GBAtX [0]))&0x1)<<4;}else {_cabc |=int (_bade .getPixel (_ddc +int (_bade .GBAtX [0]),_ccgcg +int (_bade .GBAtY [0])))<<4;};return _cabc ;};func (_dagbf *TextRegion )decodeRdx ()(int64 ,error ){const _caf ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064x";if _dagbf .IsHuffmanEncoded {if _dagbf .SbHuffRDX ==3{if _dagbf ._bedf ==nil {var (_agcg int ;_ggea error ;);if _dagbf .SbHuffFS ==3{_agcg ++;};if _dagbf .SbHuffDS ==3{_agcg ++;};if _dagbf .SbHuffDT ==3{_agcg ++;};if _dagbf .SbHuffRDWidth ==3{_agcg ++;};if _dagbf .SbHuffRDHeight ==3{_agcg ++;};_dagbf ._bedf ,_ggea =_dagbf .getUserTable (_agcg );if _ggea !=nil {return 0,_da .Wrap (_ggea ,_caf ,"");};};return _dagbf ._bedf .Decode (_dagbf ._afddfd );};_gdcff ,_feae :=_ca .GetStandardTable (14+int (_dagbf .SbHuffRDX ));if _feae !=nil {return 0,_da .Wrap (_feae ,_caf ,"");};return _gdcff .Decode (_dagbf ._afddfd );};_fccdf ,_ddgb :=_dagbf ._dgeb .DecodeInt (_dagbf ._dbfb );if _ddgb !=nil {return 0,_da .Wrap (_ddgb ,_caf ,"");};return int64 (_fccdf ),nil ;};func (_gde *SymbolDictionary )encodeATFlags (_efdd _d .BinaryWriter )(_aaeg int ,_ebdce error ){const _cagg ="\u0065\u006e\u0063\u006f\u0064\u0065\u0041\u0054\u0046\u006c\u0061\u0067\u0073";if _gde .IsHuffmanEncoded ||_gde .SdTemplate !=0{return 0,nil ;};_dced :=4;if _gde .SdTemplate !=0{_dced =1;};for _cgbb :=0;_cgbb < _dced ;_cgbb ++{if _ebdce =_efdd .WriteByte (byte (_gde .SdATX [_cgbb ]));_ebdce !=nil {return _aaeg ,_da .Wrapf (_ebdce ,_cagg ,"\u0053d\u0041\u0054\u0058\u005b\u0025\u0064]",_cgbb );};_aaeg ++;if _ebdce =_efdd .WriteByte (byte (_gde .SdATY [_cgbb ]));_ebdce !=nil {return _aaeg ,_da .Wrapf (_ebdce ,_cagg ,"\u0053d\u0041\u0054\u0059\u005b\u0025\u0064]",_cgbb );};_aaeg ++;};return _aaeg ,nil ;};func (_ggfg *TextRegion )getSymbols ()error {if _ggfg .Header .RTSegments !=nil {return _ggfg .initSymbols ();};return nil ;};func (_gcda *SymbolDictionary )setExportedSymbols (_fdba []int ){for _ffdfg :=uint32 (0);_ffdfg < _gcda ._feeb +_gcda .NumberOfNewSymbols ;_ffdfg ++{if _fdba [_ffdfg ]==1{var _cfae *_gc .Bitmap ;if _ffdfg < _gcda ._feeb {_cfae =_gcda ._afffe [_ffdfg ];}else {_cfae =_gcda ._dcbb [_ffdfg -_gcda ._feeb ];};_fbg .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u002d\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u0020\u0041\u0064\u0064 E\u0078\u0070\u006fr\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c:\u0020\u0027%\u0073\u0027",_cfae );_gcda ._ffdf =append (_gcda ._ffdf ,_cfae );};};};type SymbolDictionary struct{_cbdgf _d .StreamReader ;SdrTemplate int8 ;SdTemplate int8 ;_aabb bool ;_gebb bool ;SdHuffAggInstanceSelection bool ;SdHuffBMSizeSelection int8 ;SdHuffDecodeWidthSelection int8 ;SdHuffDecodeHeightSelection int8 ;UseRefinementAggregation bool ;IsHuffmanEncoded bool ;SdATX []int8 ;SdATY []int8 ;SdrATX []int8 ;SdrATY []int8 ;NumberOfExportedSymbols uint32 ;NumberOfNewSymbols uint32 ;Header *Header ;_feeb uint32 ;_afffe []*_gc .Bitmap ;_bffbfb uint32 ;_dcbb []*_gc .Bitmap ;_cgdd _ca .Tabler ;_dcd _ca .Tabler ;_gfbd _ca .Tabler ;_gedb _ca .Tabler ;_ffdf []*_gc .Bitmap ;_ecd []*_gc .Bitmap ;_edff *_fbc .Decoder ;_gaded *TextRegion ;_cbfc *GenericRegion ;_baec *GenericRefinementRegion ;_edef *_fbc .DecoderStats ;_begd *_fbc .DecoderStats ;_degb *_fbc .DecoderStats ;_ccefd *_fbc .DecoderStats ;_baae *_fbc .DecoderStats ;_edad *_fbc .DecoderStats ;_cbff *_fbc .DecoderStats ;_gcg *_fbc .DecoderStats ;_ceca *_fbc .DecoderStats ;_gbed int8 ;_fcge *_gc .Bitmaps ;_ecac []int ;_gdgb map[int ]int ;_dfaf bool ;};func (_ggcg *GenericRegion )GetRegionInfo ()*RegionSegment {return _ggcg .RegionSegment };func (_bccfa *Header )referenceSize ()uint {switch {case _bccfa .SegmentNumber <=255:return 1;case _bccfa .SegmentNumber <=65535:return 2;default:return 4;};};func (_cede *PageInformationSegment )readContainsRefinement ()error {_baag ,_beea :=_cede ._fgff .ReadBit ();if _beea !=nil {return _beea ;};if _baag ==1{_cede ._cdg =true ;};return nil ;};func (_ccbg *Header )subInputReader ()(_d .StreamReader ,error ){return _d .NewSubstreamReader (_ccbg .Reader ,_ccbg .SegmentDataStartOffset ,_ccbg .SegmentDataLength );};func (_gae *GenericRegion )decodeLine (_ggb ,_ead ,_dca int )error {const _ddd ="\u0064\u0065\u0063\u006f\u0064\u0065\u004c\u0069\u006e\u0065";_ceff :=_gae .Bitmap .GetByteIndex (0,_ggb );_gad :=_ceff -_gae .Bitmap .RowStride ;switch _gae .GBTemplate {case 0:if !_gae .UseExtTemplates {return _gae .decodeTemplate0a (_ggb ,_ead ,_dca ,_ceff ,_gad );};return _gae .decodeTemplate0b (_ggb ,_ead ,_dca ,_ceff ,_gad );case 1:return _gae .decodeTemplate1 (_ggb ,_ead ,_dca ,_ceff ,_gad );case 2:return _gae .decodeTemplate2 (_ggb ,_ead ,_dca ,_ceff ,_gad );case 3:return _gae .decodeTemplate3 (_ggb ,_ead ,_dca ,_ceff ,_gad );};return _da .Errorf (_ddd ,"\u0069\u006e\u0076a\u006c\u0069\u0064\u0020G\u0042\u0054\u0065\u006d\u0070\u006c\u0061t\u0065\u0020\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u003a\u0020\u0025\u0064",_gae .GBTemplate );};func (_bbge *TextRegion )InitEncode (globalSymbolsMap ,localSymbolsMap map[int ]int ,comps []int ,inLL *_gc .Points ,symbols *_gc .Bitmaps ,classIDs *_gd .IntSlice ,boxes *_gc .Boxes ,width ,height ,symBits int ){_bbge .RegionInfo =&RegionSegment {BitmapWidth :uint32 (width ),BitmapHeight :uint32 (height )};_bbge ._dbeg =globalSymbolsMap ;_bbge ._ecab =localSymbolsMap ;_bbge ._efbea =comps ;_bbge ._bagga =inLL ;_bbge ._ceffg =symbols ;_bbge ._ege =classIDs ;_bbge ._edefb =boxes ;_bbge ._adae =symBits ;};func (_bcb *Header )pageSize ()uint {if _bcb .PageAssociation <=255{return 1;};return 4;};func (_gdfce *TextRegion )decodeIb (_eebc ,_egfbc int64 )(*_gc .Bitmap ,error ){const _cfaa ="\u0064\u0065\u0063\u006f\u0064\u0065\u0049\u0062";var (_bbadb error ;_bfbaf *_gc .Bitmap ;);if _eebc ==0{if int (_egfbc )> len (_gdfce .Symbols )-1{return nil ,_da .Error (_cfaa ,"\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0049\u0042\u0020\u0062\u0069\u0074\u006d\u0061\u0070\u002e\u0020\u0069\u006e\u0064\u0065x\u0020\u006f\u0075\u0074\u0020o\u0066\u0020r\u0061\u006e\u0067\u0065");};return _gdfce .Symbols [int (_egfbc )],nil ;};var _eafc ,_dafe ,_affeg ,_dgea int64 ;_eafc ,_bbadb =_gdfce .decodeRdw ();if _bbadb !=nil {return nil ,_da .Wrap (_bbadb ,_cfaa ,"");};_dafe ,_bbadb =_gdfce .decodeRdh ();if _bbadb !=nil {return nil ,_da .Wrap (_bbadb ,_cfaa ,"");};_affeg ,_bbadb =_gdfce .decodeRdx ();if _bbadb !=nil {return nil ,_da .Wrap (_bbadb ,_cfaa ,"");};_dgea ,_bbadb =_gdfce .decodeRdy ();if _bbadb !=nil {return nil ,_da .Wrap (_bbadb ,_cfaa ,"");};if _gdfce .IsHuffmanEncoded {if _ ,_bbadb =_gdfce .decodeSymInRefSize ();_bbadb !=nil {return nil ,_da .Wrap (_bbadb ,_cfaa ,"");};_gdfce ._afddfd .Align ();};_bea :=_gdfce .Symbols [_egfbc ];_decd :=uint32 (_bea .Width );_dgfa :=uint32 (_bea .Height );_ccdd :=int32 (uint32 (_eafc )>>1)+int32 (_affeg );_ddfdc :=int32 (uint32 (_dafe )>>1)+int32 (_dgea );if _gdfce ._aagf ==nil {_gdfce ._aagf =_cef (_gdfce ._afddfd ,nil );};_gdfce ._aagf .setParameters (_gdfce ._fdafc ,_gdfce ._dgeb ,_gdfce .SbrTemplate ,_decd +uint32 (_eafc ),_dgfa +uint32 (_dafe ),_bea ,_ccdd ,_ddfdc ,false ,_gdfce .SbrATX ,_gdfce .SbrATY );_bfbaf ,_bbadb =_gdfce ._aagf .GetRegionBitmap ();if _bbadb !=nil {return nil ,_da .Wrap (_bbadb ,_cfaa ,"\u0067\u0072\u0066");};if _gdfce .IsHuffmanEncoded {_gdfce ._afddfd .Align ();};return _bfbaf ,nil ;};func (_egad *HalftoneRegion )grayScaleDecoding (_gfdac int )([][]int ,error ){var (_aad []int8 ;_acc []int8 ;);if !_egad .IsMMREncoded {_aad =make ([]int8 ,4);_acc =make ([]int8 ,4);if _egad .HTemplate <=1{_aad [0]=3;}else if _egad .HTemplate >=2{_aad [0]=2;};_acc [0]=-1;_aad [1]=-3;_acc [1]=-1;_aad [2]=2;_acc [2]=-2;_aad [3]=-2;_acc [3]=-2;};_ccab :=make ([]*_gc .Bitmap ,_gfdac );_cdfb :=NewGenericRegion (_egad ._ffdg );_cdfb .setParametersMMR (_egad .IsMMREncoded ,_egad .DataOffset ,_egad .DataLength ,_egad .HGridHeight ,_egad .HGridWidth ,_egad .HTemplate ,false ,_egad .HSkipEnabled ,_aad ,_acc );_gdcf :=_gfdac -1;var _ebdb error ;_ccab [_gdcf ],_ebdb =_cdfb .GetRegionBitmap ();if _ebdb !=nil {return nil ,_ebdb ;};for _gdcf > 0{_gdcf --;_cdfb .Bitmap =nil ;_ccab [_gdcf ],_ebdb =_cdfb .GetRegionBitmap ();if _ebdb !=nil {return nil ,_ebdb ;};if _ebdb =_egad .combineGrayscalePlanes (_ccab ,_gdcf );_ebdb !=nil {return nil ,_ebdb ;};};return _egad .computeGrayScalePlanes (_ccab ,_gfdac );};func (_afec *PageInformationSegment )checkInput ()error {if _afec .PageBMHeight ==_a .MaxInt32 {if !_afec .IsStripe {_fbg .Log .Debug ("P\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0053\u0065\u0067me\u006e\u0074\u002e\u0049s\u0053\u0074\u0072\u0069\u0070\u0065\u0020\u0073\u0068ou\u006c\u0064 \u0062\u0065\u0020\u0074\u0072\u0075\u0065\u002e");};};return nil ;};func (_aeb *SymbolDictionary )String ()string {_fgda :=&_cg .Builder {};_fgda .WriteString ("\n\u005b\u0053\u0059\u004dBO\u004c-\u0044\u0049\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u000a");_fgda .WriteString (_ce .Sprintf ("\u0009-\u0020S\u0064\u0072\u0054\u0065\u006dp\u006c\u0061t\u0065\u0020\u0025\u0076\u000a",_aeb .SdrTemplate ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u0025\u0076\u000a",_aeb .SdTemplate ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006eg\u0043\u006f\u006e\u0074\u0065\u0078\u0074R\u0065\u0074\u0061\u0069\u006e\u0065\u0064\u0020\u0025\u0076\u000a",_aeb ._aabb ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0069\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074\u0065\u0078\u0074\u0055\u0073\u0065\u0064 \u0025\u0076\u000a",_aeb ._gebb ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0041\u0067\u0067\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_aeb .SdHuffAggInstanceSelection ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053d\u0048\u0075\u0066\u0066\u0042\u004d\u0053\u0069\u007a\u0065S\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020%\u0076\u000a",_aeb .SdHuffBMSizeSelection ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0048u\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068S\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0025\u0076\u000a",_aeb .SdHuffDecodeWidthSelection ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020Sd\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064e\u0048e\u0069g\u0068t\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_aeb .SdHuffDecodeHeightSelection ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020U\u0073\u0065\u0052\u0065f\u0069\u006e\u0065\u006d\u0065\u006e\u0074A\u0067\u0067\u0072\u0065\u0067\u0061\u0074\u0069\u006f\u006e\u0020\u0025\u0076\u000a",_aeb .UseRefinementAggregation ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020is\u0048\u0075\u0066\u0066\u006d\u0061\u006e\u0045\u006e\u0063\u006f\u0064\u0065\u0064\u0020\u0025\u0076\u000a",_aeb .IsHuffmanEncoded ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aeb .SdATX ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020S\u0064\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aeb .SdATY ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0058\u0020\u0025\u0076\u000a",_aeb .SdrATX ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0053\u0064\u0072\u0041\u0054\u0059\u0020\u0025\u0076\u000a",_aeb .SdrATY ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u004e\u0075\u006d\u0062\u0065\u0072\u004ff\u0045\u0078\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_aeb .NumberOfExportedSymbols ));_fgda .WriteString (_ce .Sprintf ("\u0009-\u0020\u004e\u0075\u006db\u0065\u0072\u004f\u0066\u004ee\u0077S\u0079m\u0062\u006f\u006c\u0073\u0020\u0025\u0076\n",_aeb .NumberOfNewSymbols ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u004ff\u0049\u006d\u0070\u006f\u0072\u0074\u0065d\u0053\u0079\u006d\u0062\u006f\u006c\u0073\u0020\u0025\u0076\u000a",_aeb ._feeb ));_fgda .WriteString (_ce .Sprintf ("\u0009\u002d \u006e\u0075\u006d\u0062\u0065\u0072\u004f\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0064\u0053\u0079\u006d\u0062\u006f\u006c\u0073 %\u0076\u000a",_aeb ._bffbfb ));return _fgda .String ();};func (_gcgd *SymbolDictionary )readAtPixels (_bgeg int )error {_gcgd .SdATX =make ([]int8 ,_bgeg );_gcgd .SdATY =make ([]int8 ,_bgeg );var (_gdad byte ;_aggee error ;);for _gbdf :=0;_gbdf < _bgeg ;_gbdf ++{_gdad ,_aggee =_gcgd ._cbdgf .ReadByte ();if _aggee !=nil {return _aggee ;};_gcgd .SdATX [_gbdf ]=int8 (_gdad );_gdad ,_aggee =_gcgd ._cbdgf .ReadByte ();if _aggee !=nil {return _aggee ;};_gcgd .SdATY [_gbdf ]=int8 (_gdad );};return nil ;};const (TSymbolDictionary Type =0;TIntermediateTextRegion Type =4;TImmediateTextRegion Type =6;TImmediateLosslessTextRegion Type =7;TPatternDictionary Type =16;TIntermediateHalftoneRegion Type =20;TImmediateHalftoneRegion Type =22;TImmediateLosslessHalftoneRegion Type =23;TIntermediateGenericRegion Type =36;TImmediateGenericRegion Type =38;TImmediateLosslessGenericRegion Type =39;TIntermediateGenericRefinementRegion Type =40;TImmediateGenericRefinementRegion Type =42;TImmediateLosslessGenericRefinementRegion Type =43;TPageInformation Type =48;TEndOfPage Type =49;TEndOfStrip Type =50;TEndOfFile Type =51;TProfiles Type =52;TTables Type =53;TExtension Type =62;TBitmap Type =70;);var _ templater =&template1 {};func (_egbad *SymbolDictionary )readNumberOfNewSymbols ()error {_cbgf ,_afbg :=_egbad ._cbdgf .ReadBits (32);if _afbg !=nil {return _afbg ;};_egbad .NumberOfNewSymbols =uint32 (_cbgf &_a .MaxUint32 );return nil ;};func (_cgea *TextRegion )blit (_bcacc *_gc .Bitmap ,_ccfdb int64 )error {if _cgea .IsTransposed ==0&&(_cgea .ReferenceCorner ==2||_cgea .ReferenceCorner ==3){_cgea ._cfba +=int64 (_bcacc .Width -1);}else if _cgea .IsTransposed ==1&&(_cgea .ReferenceCorner ==0||_cgea .ReferenceCorner ==2){_cgea ._cfba +=int64 (_bcacc .Height -1);};_fgeaa :=_cgea ._cfba ;if _cgea .IsTransposed ==1{_fgeaa ,_ccfdb =_ccfdb ,_fgeaa ;};switch _cgea .ReferenceCorner {case 0:_ccfdb -=int64 (_bcacc .Height -1);case 2:_ccfdb -=int64 (_bcacc .Height -1);_fgeaa -=int64 (_bcacc .Width -1);case 3:_fgeaa -=int64 (_bcacc .Width -1);};_ggda :=_gc .Blit (_bcacc ,_cgea .RegionBitmap ,int (_fgeaa ),int (_ccfdb ),_cgea .CombinationOperator );if _ggda !=nil {return _ggda ;};if _cgea .IsTransposed ==0&&(_cgea .ReferenceCorner ==0||_cgea .ReferenceCorner ==1){_cgea ._cfba +=int64 (_bcacc .Width -1);};if _cgea .IsTransposed ==1&&(_cgea .ReferenceCorner ==1||_cgea .ReferenceCorner ==3){_cgea ._cfba +=int64 (_bcacc .Height -1);};return nil ;};func (_cdeb *HalftoneRegion )GetRegionInfo ()*RegionSegment {return _cdeb .RegionSegment };func (_bggg *SymbolDictionary )setCodingStatistics ()error {if _bggg ._gcg ==nil {_bggg ._gcg =_fbc .NewStats (512,1);};if _bggg ._begd ==nil {_bggg ._begd =_fbc .NewStats (512,1);};if _bggg ._degb ==nil {_bggg ._degb =_fbc .NewStats (512,1);};if _bggg ._ccefd ==nil {_bggg ._ccefd =_fbc .NewStats (512,1);};if _bggg ._baae ==nil {_bggg ._baae =_fbc .NewStats (512,1);};if _bggg .UseRefinementAggregation &&_bggg ._ceca ==nil {_bggg ._ceca =_fbc .NewStats (1<<uint (_bggg ._gbed ),1);_bggg ._edad =_fbc .NewStats (512,1);_bggg ._cbff =_fbc .NewStats (512,1);};if _bggg ._edef ==nil {_bggg ._edef =_fbc .NewStats (65536,1);};if _bggg ._edff ==nil {var _afdc error ;_bggg ._edff ,_afdc =_fbc .New (_bggg ._cbdgf );if _afdc !=nil {return _afdc ;};};return nil ;};func NewGenericRegion (r _d .StreamReader )*GenericRegion {return &GenericRegion {RegionSegment :NewRegionSegment (r ),_bca :r };};func (_eaf *GenericRegion )getPixel (_bee ,_egce int )int8 {if _bee < 0||_bee >=_eaf .Bitmap .Width {return 0;};if _egce < 0||_egce >=_eaf .Bitmap .Height {return 0;};if _eaf .Bitmap .GetPixel (_bee ,_egce ){return 1;};return 0;};type OrganizationType uint8 ;func (_edfg *PageInformationSegment )String ()string {_gbbd :=&_cg .Builder {};_gbbd .WriteString ("\u000a\u005b\u0050\u0041G\u0045\u002d\u0049\u004e\u0046\u004f\u0052\u004d\u0041\u0054I\u004fN\u002d\u0053\u0045\u0047\u004d\u0045\u004eT\u005d\u000a");_gbbd .WriteString (_ce .Sprintf ("\u0009\u002d \u0042\u004d\u0048e\u0069\u0067\u0068\u0074\u003a\u0020\u0025\u0064\u000a",_edfg .PageBMHeight ));_gbbd .WriteString (_ce .Sprintf ("\u0009-\u0020B\u004d\u0057\u0069\u0064\u0074\u0068\u003a\u0020\u0025\u0064\u000a",_edfg .PageBMWidth ));_gbbd .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0058\u003a\u0020\u0025\u0064\u000a",_edfg .ResolutionX ));_gbbd .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0052es\u006f\u006c\u0075\u0074\u0069\u006f\u006e\u0059\u003a\u0020\u0025\u0064\u000a",_edfg .ResolutionY ));_gbbd .WriteString (_ce .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065r\u0061\u0074\u006fr\u003a \u0025\u0073\u000a",_edfg ._eafa ));_gbbd .WriteString (_ce .Sprintf ("\t\u002d\u0020\u0043\u006f\u006d\u0062i\u006e\u0061\u0074\u0069\u006f\u006eO\u0070\u0065\u0072\u0061\u0074\u006f\u0072O\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u003a\u0020\u0025v\u000a",_edfg ._aede ));_gbbd .WriteString (_ce .Sprintf ("\u0009-\u0020I\u0073\u004c\u006f\u0073\u0073l\u0065\u0073s\u003a\u0020\u0025\u0076\u000a",_edfg .IsLossless ));_gbbd .WriteString (_ce .Sprintf ("\u0009\u002d\u0020R\u0065\u0071\u0075\u0069r\u0065\u0073\u0041\u0075\u0078\u0069\u006ci\u0061\u0072\u0079\u0042\u0075\u0066\u0066\u0065\u0072\u003a\u0020\u0025\u0076\u000a",_edfg ._fgea ));_gbbd .WriteString (_ce .Sprintf ("\u0009\u002d\u0020M\u0069\u0067\u0068\u0074C\u006f\u006e\u0074\u0061\u0069\u006e\u0052e\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0076\u000a",_edfg ._cdg ));_gbbd .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0049\u0073\u0053\u0074\u0072\u0069\u0070\u0065\u0064:\u0020\u0025\u0076\u000a",_edfg .IsStripe ));_gbbd .WriteString (_ce .Sprintf ("\t\u002d\u0020\u004d\u0061xS\u0074r\u0069\u0070\u0065\u0053\u0069z\u0065\u003a\u0020\u0025\u0076\u000a",_edfg .MaxStripeSize ));return _gbbd .String ();};func (_bddg *PageInformationSegment )encodeFlags (_cgdb _d .BinaryWriter )(_dbfea error ){const _aegfa ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _dbfea =_cgdb .SkipBits (1);_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"\u0072\u0065\u0073e\u0072\u0076\u0065\u0064\u0020\u0062\u0069\u0074");};var _ffde int ;if _bddg .CombinationOperatorOverrideAllowed (){_ffde =1;};if _dbfea =_cgdb .WriteBit (_ffde );_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u006f\u0076\u0065\u0072\u0072\u0069\u0064\u0064\u0065\u006e");};_ffde =0;if _bddg ._fgea {_ffde =1;};if _dbfea =_cgdb .WriteBit (_ffde );_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"\u0072e\u0071\u0075\u0069\u0072e\u0073\u0020\u0061\u0075\u0078i\u006ci\u0061r\u0079\u0020\u0062\u0075\u0066\u0066\u0065r");};if _dbfea =_cgdb .WriteBit ((int (_bddg ._eafa )>>1)&0x01);_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"\u0063\u006f\u006d\u0062\u0069\u006e\u0061\u0074\u0069\u006fn\u0020\u006f\u0070\u0065\u0072\u0061\u0074o\u0072\u0020\u0066\u0069\u0072\u0073\u0074\u0020\u0062\u0069\u0074");};if _dbfea =_cgdb .WriteBit (int (_bddg ._eafa )&0x01);_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"\u0063\u006f\u006db\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0070\u0065\u0072a\u0074\u006f\u0072\u0020\u0073\u0065\u0063\u006f\u006e\u0064\u0020\u0062\u0069\u0074");};_ffde =int (_bddg ._fafd );if _dbfea =_cgdb .WriteBit (_ffde );_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"\u0064e\u0066\u0061\u0075\u006c\u0074\u0020\u0070\u0061\u0067\u0065\u0020p\u0069\u0078\u0065\u006c\u0020\u0076\u0061\u006c\u0075\u0065");};_ffde =0;if _bddg ._cdg {_ffde =1;};if _dbfea =_cgdb .WriteBit (_ffde );_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"\u0063\u006f\u006e\u0074ai\u006e\u0073\u0020\u0072\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074");};_ffde =0;if _bddg .IsLossless {_ffde =1;};if _dbfea =_cgdb .WriteBit (_ffde );_dbfea !=nil {return _da .Wrap (_dbfea ,_aegfa ,"p\u0061\u0067\u0065\u0020\u0069\u0073 \u0065\u0076\u0065\u006e\u0074\u0075\u0061\u006c\u006cy\u0020\u006c\u006fs\u0073l\u0065\u0073\u0073");};return nil ;};func (_gfb *Header )writeFlags (_adcb _d .BinaryWriter )(_afe error ){const _ddde ="\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u0077\u0072\u0069\u0074\u0065F\u006c\u0061\u0067\u0073";_fagec :=byte (_gfb .Type );if _afe =_adcb .WriteByte (_fagec );_afe !=nil {return _da .Wrap (_afe ,_ddde ,"\u0077\u0072\u0069ti\u006e\u0067\u0020\u0073\u0065\u0067\u006d\u0065\u006et\u0020t\u0079p\u0065 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};if !_gfb .RetainFlag &&!_gfb .PageAssociationFieldSize {return nil ;};if _afe =_adcb .SkipBits (-8);_afe !=nil {return _da .Wrap (_afe ,_ddde ,"\u0073\u006bi\u0070\u0070\u0069\u006e\u0067\u0020\u0062\u0061\u0063\u006b\u0020\u0074\u0068\u0065\u0020\u0062\u0069\u0074\u0073\u0020\u0066\u0061il\u0065\u0064");};var _bffbf int ;if _gfb .RetainFlag {_bffbf =1;};if _afe =_adcb .WriteBit (_bffbf );_afe !=nil {return _da .Wrap (_afe ,_ddde ,"\u0072\u0065\u0074\u0061in\u0020\u0072\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067\u0073");};_bffbf =0;if _gfb .PageAssociationFieldSize {_bffbf =1;};if _afe =_adcb .WriteBit (_bffbf );_afe !=nil {return _da .Wrap (_afe ,_ddde ,"p\u0061\u0067\u0065\u0020as\u0073o\u0063\u0069\u0061\u0074\u0069o\u006e\u0020\u0066\u006c\u0061\u0067");};_adcb .FinishByte ();return nil ;};func (_cdgg *PageInformationSegment )readResolution ()error {_addgf ,_gdfe :=_cdgg ._fgff .ReadBits (32);if _gdfe !=nil {return _gdfe ;};_cdgg .ResolutionX =int (_addgf &_a .MaxInt32 );_addgf ,_gdfe =_cdgg ._fgff .ReadBits (32);if _gdfe !=nil {return _gdfe ;};_cdgg .ResolutionY =int (_addgf &_a .MaxInt32 );return nil ;};func (_bcda *GenericRegion )setOverrideFlag (_gfff int ){_bcda .GBAtOverride [_gfff ]=true ;_bcda ._fee =true ;};func (_eccec *TextRegion )encodeFlags (_gdbfc _d .BinaryWriter )(_aagag int ,_beeae error ){const _agcc ="e\u006e\u0063\u006f\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _beeae =_gdbfc .WriteBit (int (_eccec .SbrTemplate ));_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"s\u0062\u0072\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065");};if _ ,_beeae =_gdbfc .WriteBits (uint64 (_eccec .SbDsOffset ),5);_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"\u0073\u0062\u0044\u0073\u004f\u0066\u0066\u0073\u0065\u0074");};if _beeae =_gdbfc .WriteBit (int (_eccec .DefaultPixel ));_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"\u0044\u0065\u0066a\u0075\u006c\u0074\u0050\u0069\u0078\u0065\u006c");};if _ ,_beeae =_gdbfc .WriteBits (uint64 (_eccec .CombinationOperator ),2);_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"\u0043\u006f\u006d\u0062in\u0061\u0074\u0069\u006f\u006e\u004f\u0070\u0065\u0072\u0061\u0074\u006f\u0072");};if _beeae =_gdbfc .WriteBit (int (_eccec .IsTransposed ));_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"\u0069\u0073\u0020\u0074\u0072\u0061\u006e\u0073\u0070\u006f\u0073\u0065\u0064");};if _ ,_beeae =_gdbfc .WriteBits (uint64 (_eccec .ReferenceCorner ),2);_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"\u0072\u0065f\u0065\u0072\u0065n\u0063\u0065\u0020\u0063\u006f\u0072\u006e\u0065\u0072");};if _ ,_beeae =_gdbfc .WriteBits (uint64 (_eccec .LogSBStrips ),2);_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"L\u006f\u0067\u0053\u0042\u0053\u0074\u0072\u0069\u0070\u0073");};var _bccb int ;if _eccec .UseRefinement {_bccb =1;};if _beeae =_gdbfc .WriteBit (_bccb );_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"\u0075\u0073\u0065\u0020\u0072\u0065\u0066\u0069\u006ee\u006d\u0065\u006e\u0074");};_bccb =0;if _eccec .IsHuffmanEncoded {_bccb =1;};if _beeae =_gdbfc .WriteBit (_bccb );_beeae !=nil {return _aagag ,_da .Wrap (_beeae ,_agcc ,"u\u0073\u0065\u0020\u0068\u0075\u0066\u0066\u006d\u0061\u006e");};_aagag =2;return _aagag ,nil ;};var _ SegmentEncoder =&RegionSegment {};func (_bbgb *TextRegion )setParameters (_ddgc *_fbc .Decoder ,_acfa ,_ebbcg bool ,_edfe ,_bbgc uint32 ,_gdeb uint32 ,_efcae int8 ,_ggag uint32 ,_edbg int8 ,_daefd _gc .CombinationOperator ,_cbdaeg int8 ,_abcab int16 ,_afbgc ,_feac ,_ggbe ,_ggcf ,_fceg ,_gcaa ,_aafbd ,_dfad ,_adaa ,_bebf int8 ,_ddfda ,_edfge []int8 ,_abcgf []*_gc .Bitmap ,_edfaa int8 ){_bbgb ._dgeb =_ddgc ;_bbgb .IsHuffmanEncoded =_acfa ;_bbgb .UseRefinement =_ebbcg ;_bbgb .RegionInfo .BitmapWidth =_edfe ;_bbgb .RegionInfo .BitmapHeight =_bbgc ;_bbgb .NumberOfSymbolInstances =_gdeb ;_bbgb .SbStrips =_efcae ;_bbgb .NumberOfSymbols =_ggag ;_bbgb .DefaultPixel =_edbg ;_bbgb .CombinationOperator =_daefd ;_bbgb .IsTransposed =_cbdaeg ;_bbgb .ReferenceCorner =_abcab ;_bbgb .SbDsOffset =_afbgc ;_bbgb .SbHuffFS =_feac ;_bbgb .SbHuffDS =_ggbe ;_bbgb .SbHuffDT =_ggcf ;_bbgb .SbHuffRDWidth =_fceg ;_bbgb .SbHuffRDHeight =_gcaa ;_bbgb .SbHuffRSize =_adaa ;_bbgb .SbHuffRDX =_aafbd ;_bbgb .SbHuffRDY =_dfad ;_bbgb .SbrTemplate =_bebf ;_bbgb .SbrATX =_ddfda ;_bbgb .SbrATY =_edfge ;_bbgb .Symbols =_abcgf ;_bbgb ._affe =_edfaa ;};func (_gcbdc *TextRegion )symbolIDCodeLengths ()error {var (_fccab []*_ca .Code ;_eagfa uint64 ;_cfaac _ca .Tabler ;_cdabe error ;);for _befb :=0;_befb < 35;_befb ++{_eagfa ,_cdabe =_gcbdc ._afddfd .ReadBits (4);if _cdabe !=nil {return _cdabe ;};_ebbe :=int (_eagfa &0xf);if _ebbe > 0{_fccab =append (_fccab ,_ca .NewCode (int32 (_ebbe ),0,int32 (_befb ),false ));};};_cfaac ,_cdabe =_ca .NewFixedSizeTable (_fccab );if _cdabe !=nil {return _cdabe ;};var (_geda int64 ;_edcg uint32 ;_acde []*_ca .Code ;_ddbg int64 ;);for _edcg < _gcbdc .NumberOfSymbols {_ddbg ,_cdabe =_cfaac .Decode (_gcbdc ._afddfd );if _cdabe !=nil {return _cdabe ;};if _ddbg < 32{if _ddbg > 0{_acde =append (_acde ,_ca .NewCode (int32 (_ddbg ),0,int32 (_edcg ),false ));};_geda =_ddbg ;_edcg ++;}else {var _cbfea ,_cdfbd int64 ;switch _ddbg {case 32:_eagfa ,_cdabe =_gcbdc ._afddfd .ReadBits (2);if _cdabe !=nil {return _cdabe ;};_cbfea =3+int64 (_eagfa );if _edcg > 0{_cdfbd =_geda ;};case 33:_eagfa ,_cdabe =_gcbdc ._afddfd .ReadBits (3);if _cdabe !=nil {return _cdabe ;};_cbfea =3+int64 (_eagfa );case 34:_eagfa ,_cdabe =_gcbdc ._afddfd .ReadBits (7);if _cdabe !=nil {return _cdabe ;};_cbfea =11+int64 (_eagfa );};for _bdgbc :=0;_bdgbc < int (_cbfea );_bdgbc ++{if _cdfbd > 0{_acde =append (_acde ,_ca .NewCode (int32 (_cdfbd ),0,int32 (_edcg ),false ));};_edcg ++;};};};_gcbdc ._afddfd .Align ();_gcbdc ._fcdf ,_cdabe =_ca .NewFixedSizeTable (_acde );return _cdabe ;};func (_bdgd *GenericRegion )writeGBAtPixels (_dbbb _d .BinaryWriter )(_beec int ,_ded error ){const _cbdg ="\u0077r\u0069t\u0065\u0047\u0042\u0041\u0074\u0050\u0069\u0078\u0065\u006c\u0073";if _bdgd .UseMMR {return 0,nil ;};_abfa :=1;if _bdgd .GBTemplate ==0{_abfa =4;}else if _bdgd .UseExtTemplates {_abfa =12;};if len (_bdgd .GBAtX )!=_abfa {return 0,_da .Errorf (_cbdg ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0058\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");};if len (_bdgd .GBAtY )!=_abfa {return 0,_da .Errorf (_cbdg ,"\u0067\u0062\u0020\u0061\u0074\u0020\u0070\u0061\u0069\u0072\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020d\u006f\u0065\u0073\u006e\u0027\u0074\u0020m\u0061\u0074\u0063\u0068\u0020\u0074\u006f\u0020\u0047\u0042\u0041t\u0059\u0020\u0073\u006c\u0069\u0063\u0065\u0020\u006c\u0065\u006e");};for _adc :=0;_adc < _abfa ;_adc ++{if _ded =_dbbb .WriteByte (byte (_bdgd .GBAtX [_adc ]));_ded !=nil {return _beec ,_da .Wrap (_ded ,_cbdg ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0058");};_beec ++;if _ded =_dbbb .WriteByte (byte (_bdgd .GBAtY [_adc ]));_ded !=nil {return _beec ,_da .Wrap (_ded ,_cbdg ,"w\u0072\u0069\u0074\u0065\u0020\u0047\u0042\u0041\u0074\u0059");};_beec ++;};return _beec ,nil ;};type Segmenter interface{Init (_gbda *Header ,_cddd _d .StreamReader )error ;};func (_fcdd *PatternDictionary )readGrayMax ()error {_fgdc ,_dbd :=_fcdd ._ddge .ReadBits (32);if _dbd !=nil {return _dbd ;};_fcdd .GrayMax =uint32 (_fgdc &_a .MaxUint32 );return nil ;};func (_be *EndOfStripe )parseHeader (_gdd *Header ,_fe _d .StreamReader )error {_dg ,_ff :=_be ._gcc .ReadBits (32);if _ff !=nil {return _ff ;};_be ._af =int (_dg &_a .MaxInt32 );return nil ;};func (_dgde *TextRegion )readHuffmanFlags ()error {var (_daaf int ;_gggc uint64 ;_cffa error ;);_ ,_cffa =_dgde ._afddfd .ReadBit ();if _cffa !=nil {return _cffa ;};_daaf ,_cffa =_dgde ._afddfd .ReadBit ();if _cffa !=nil {return _cffa ;};_dgde .SbHuffRSize =int8 (_daaf );_gggc ,_cffa =_dgde ._afddfd .ReadBits (2);if _cffa !=nil {return _cffa ;};_dgde .SbHuffRDY =int8 (_gggc )&0xf;_gggc ,_cffa =_dgde ._afddfd .ReadBits (2);if _cffa !=nil {return _cffa ;};_dgde .SbHuffRDX =int8 (_gggc )&0xf;_gggc ,_cffa =_dgde ._afddfd .ReadBits (2);if _cffa !=nil {return _cffa ;};_dgde .SbHuffRDHeight =int8 (_gggc )&0xf;_gggc ,_cffa =_dgde ._afddfd .ReadBits (2);if _cffa !=nil {return _cffa ;};_dgde .SbHuffRDWidth =int8 (_gggc )&0xf;_gggc ,_cffa =_dgde ._afddfd .ReadBits (2);if _cffa !=nil {return _cffa ;};_dgde .SbHuffDT =int8 (_gggc )&0xf;_gggc ,_cffa =_dgde ._afddfd .ReadBits (2);if _cffa !=nil {return _cffa ;};_dgde .SbHuffDS =int8 (_gggc )&0xf;_gggc ,_cffa =_dgde ._afddfd .ReadBits (2);if _cffa !=nil {return _cffa ;};_dgde .SbHuffFS =int8 (_gggc )&0xf;return nil ;};type Pager interface{GetSegment (int )(*Header ,error );GetBitmap ()(*_gc .Bitmap ,error );};func (_ccb *GenericRefinementRegion )GetRegionBitmap ()(*_gc .Bitmap ,error ){var _ae error ;_fbg .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){if _ae !=nil {_fbg .Log .Trace ("[\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052E\u0046\u002d\u0052\u0045\u0047\u0049\u004fN]\u0020\u0047\u0065\u0074R\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006dap\u0020\u0066a\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0076",_ae );}else {_fbg .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0047\u0065\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u0042\u0069\u0074\u006d\u0061\u0070\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");};}();if _ccb .RegionBitmap !=nil {return _ccb .RegionBitmap ,nil ;};_fff :=0;if _ccb .ReferenceBitmap ==nil {_ccb .ReferenceBitmap ,_ae =_ccb .getGrReference ();if _ae !=nil {return nil ,_ae ;};};if _ccb ._de ==nil {_ccb ._de ,_ae =_fbc .New (_ccb ._cga );if _ae !=nil {return nil ,_ae ;};};if _ccb ._ee ==nil {_ccb ._ee =_fbc .NewStats (8192,1);};_ccb .RegionBitmap =_gc .New (int (_ccb .RegionInfo .BitmapWidth ),int (_ccb .RegionInfo .BitmapHeight ));if _ccb .TemplateID ==0{if _ae =_ccb .updateOverride ();_ae !=nil {return nil ,_ae ;};};_cgg :=(_ccb .RegionBitmap .Width +7)&-8;var _cae int ;if _ccb .IsTPGROn {_cae =int (-_ccb .ReferenceDY )*_ccb .ReferenceBitmap .RowStride ;};_aef :=_cae +1;for _deb :=0;_deb < _ccb .RegionBitmap .Height ;_deb ++{if _ccb .IsTPGROn {_gg ,_cag :=_ccb .decodeSLTP ();if _cag !=nil {return nil ,_cag ;};_fff ^=_gg ;};if _fff ==0{_ae =_ccb .decodeOptimized (_deb ,_ccb .RegionBitmap .Width ,_ccb .RegionBitmap .RowStride ,_ccb .ReferenceBitmap .RowStride ,_cgg ,_cae ,_aef );if _ae !=nil {return nil ,_ae ;};}else {_ae =_ccb .decodeTypicalPredictedLine (_deb ,_ccb .RegionBitmap .Width ,_ccb .RegionBitmap .RowStride ,_ccb .ReferenceBitmap .RowStride ,_cgg ,_cae );if _ae !=nil {return nil ,_ae ;};};};return _ccb .RegionBitmap ,nil ;};func (_ggc *GenericRefinementRegion )decodeTypicalPredictedLine (_ffe ,_gf ,_aff ,_dec ,_bb ,_gbd int )error {_cce :=_ffe -int (_ggc .ReferenceDY );_abf :=_ggc .ReferenceBitmap .GetByteIndex (0,_cce );_bbe :=_ggc .RegionBitmap .GetByteIndex (0,_ffe );var _bg error ;switch _ggc .TemplateID {case 0:_bg =_ggc .decodeTypicalPredictedLineTemplate0 (_ffe ,_gf ,_aff ,_dec ,_bb ,_gbd ,_bbe ,_cce ,_abf );case 1:_bg =_ggc .decodeTypicalPredictedLineTemplate1 (_ffe ,_gf ,_aff ,_dec ,_bb ,_gbd ,_bbe ,_cce ,_abf );};return _bg ;};type HalftoneRegion struct{_ffdg _d .StreamReader ;_ceffa *Header ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;HDefaultPixel int8 ;CombinationOperator _gc .CombinationOperator ;HSkipEnabled bool ;HTemplate byte ;IsMMREncoded bool ;HGridWidth uint32 ;HGridHeight uint32 ;HGridX int32 ;HGridY int32 ;HRegionX uint16 ;HRegionY uint16 ;HalftoneRegionBitmap *_gc .Bitmap ;Patterns []*_gc .Bitmap ;};func (_fcfg *SymbolDictionary )readRegionFlags ()error {var (_dbfec uint64 ;_dddeg int ;);_ ,_bgcb :=_fcfg ._cbdgf .ReadBits (3);if _bgcb !=nil {return _bgcb ;};_dddeg ,_bgcb =_fcfg ._cbdgf .ReadBit ();if _bgcb !=nil {return _bgcb ;};_fcfg .SdrTemplate =int8 (_dddeg );_dbfec ,_bgcb =_fcfg ._cbdgf .ReadBits (2);if _bgcb !=nil {return _bgcb ;};_fcfg .SdTemplate =int8 (_dbfec &0xf);_dddeg ,_bgcb =_fcfg ._cbdgf .ReadBit ();if _bgcb !=nil {return _bgcb ;};if _dddeg ==1{_fcfg ._aabb =true ;};_dddeg ,_bgcb =_fcfg ._cbdgf .ReadBit ();if _bgcb !=nil {return _bgcb ;};if _dddeg ==1{_fcfg ._gebb =true ;};_dddeg ,_bgcb =_fcfg ._cbdgf .ReadBit ();if _bgcb !=nil {return _bgcb ;};if _dddeg ==1{_fcfg .SdHuffAggInstanceSelection =true ;};_dddeg ,_bgcb =_fcfg ._cbdgf .ReadBit ();if _bgcb !=nil {return _bgcb ;};_fcfg .SdHuffBMSizeSelection =int8 (_dddeg );_dbfec ,_bgcb =_fcfg ._cbdgf .ReadBits (2);if _bgcb !=nil {return _bgcb ;};_fcfg .SdHuffDecodeWidthSelection =int8 (_dbfec &0xf);_dbfec ,_bgcb =_fcfg ._cbdgf .ReadBits (2);if _bgcb !=nil {return _bgcb ;};_fcfg .SdHuffDecodeHeightSelection =int8 (_dbfec &0xf);_dddeg ,_bgcb =_fcfg ._cbdgf .ReadBit ();if _bgcb !=nil {return _bgcb ;};if _dddeg ==1{_fcfg .UseRefinementAggregation =true ;};_dddeg ,_bgcb =_fcfg ._cbdgf .ReadBit ();if _bgcb !=nil {return _bgcb ;};if _dddeg ==1{_fcfg .IsHuffmanEncoded =true ;};return nil ;};func (_acabd *SymbolDictionary )decodeHeightClassDeltaHeight ()(int64 ,error ){if _acabd .IsHuffmanEncoded {return _acabd .decodeHeightClassDeltaHeightWithHuffman ();};_edcf ,_fdgg :=_acabd ._edff .DecodeInt (_acabd ._begd );if _fdgg !=nil {return 0,_fdgg ;};return int64 (_edcf ),nil ;};func (_ebeg *PatternDictionary )GetDictionary ()([]*_gc .Bitmap ,error ){if _ebeg .Patterns !=nil {return _ebeg .Patterns ,nil ;};if !_ebeg .IsMMREncoded {_ebeg .setGbAtPixels ();};_fbe :=NewGenericRegion (_ebeg ._ddge );_fbe .setParametersMMR (_ebeg .IsMMREncoded ,_ebeg .DataOffset ,_ebeg .DataLength ,uint32 (_ebeg .HdpHeight ),(_ebeg .GrayMax +1)*uint32 (_ebeg .HdpWidth ),_ebeg .HDTemplate ,false ,false ,_ebeg .GBAtX ,_ebeg .GBAtY );_cdfg ,_fecb :=_fbe .GetRegionBitmap ();if _fecb !=nil {return nil ,_fecb ;};if _fecb =_ebeg .extractPatterns (_cdfg );_fecb !=nil {return nil ,_fecb ;};return _ebeg .Patterns ,nil ;};func (_gacca *SymbolDictionary )setInSyms ()error {if _gacca .Header .RTSegments !=nil {return _gacca .retrieveImportSymbols ();};_gacca ._afffe =make ([]*_gc .Bitmap ,0);return nil ;};func (_eeb *GenericRegion )decodeTemplate3 (_gbb ,_gbg ,_bcg int ,_cegb ,_aegc int )(_ade error ){const _dddb ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0033";var (_fbdb ,_bcag int ;_edgg int ;_egg byte ;_gffg ,_faaf int ;);if _gbb >=1{_egg ,_ade =_eeb .Bitmap .GetByte (_aegc );if _ade !=nil {return _da .Wrap (_ade ,_dddb ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_edgg =int (_egg );};_fbdb =(_edgg >>1)&0x70;for _cfff :=0;_cfff < _bcg ;_cfff =_gffg {var (_becg byte ;_egfb int ;);_gffg =_cfff +8;if _cffb :=_gbg -_cfff ;_cffb > 8{_egfb =8;}else {_egfb =_cffb ;};if _gbb >=1{_edgg <<=8;if _gffg < _gbg {_egg ,_ade =_eeb .Bitmap .GetByte (_aegc +1);if _ade !=nil {return _da .Wrap (_ade ,_dddb ,"\u0069\u006e\u006e\u0065\u0072\u0020\u002d\u0020\u006c\u0069\u006e\u0065 \u003e\u003d\u0020\u0031");};_edgg |=int (_egg );};};for _gda :=0;_gda < _egfb ;_gda ++{if _eeb ._fee {_bcag =_eeb .overrideAtTemplate3 (_fbdb ,_cfff +_gda ,_gbb ,int (_becg ),_gda );_eeb ._cab .SetIndex (int32 (_bcag ));}else {_eeb ._cab .SetIndex (int32 (_fbdb ));};_faaf ,_ade =_eeb ._ffb .DecodeBit (_eeb ._cab );if _ade !=nil {return _da .Wrap (_ade ,_dddb ,"");};_becg |=byte (_faaf )<<byte (7-_gda );_fbdb =((_fbdb &0x1f7)<<1)|_faaf |((_edgg >>uint (8-_gda ))&0x010);};if _gea :=_eeb .Bitmap .SetByte (_cegb ,_becg );_gea !=nil {return _da .Wrap (_gea ,_dddb ,"");};_cegb ++;_aegc ++;};return nil ;};func (_faac *SymbolDictionary )getSymbol (_eddaa int )(*_gc .Bitmap ,error ){const _cdca ="\u0067e\u0074\u0053\u0079\u006d\u0062\u006fl";_cfcag ,_geccb :=_faac ._fcge .GetBitmap (_faac ._ecac [_eddaa ]);if _geccb !=nil {return nil ,_da .Wrap (_geccb ,_cdca ,"\u0063\u0061n\u0027\u0074\u0020g\u0065\u0074\u0020\u0073\u0079\u006d\u0062\u006f\u006c");};return _cfcag ,nil ;};func (_aegcf *Header )readHeaderFlags ()error {const _abag ="\u0072e\u0061d\u0048\u0065\u0061\u0064\u0065\u0072\u0046\u006c\u0061\u0067\u0073";_abfgb ,_fcfc :=_aegcf .Reader .ReadBit ();if _fcfc !=nil {return _da .Wrap (_fcfc ,_abag ,"r\u0065\u0074\u0061\u0069\u006e\u0020\u0066\u006c\u0061\u0067");};if _abfgb !=0{_aegcf .RetainFlag =true ;};_abfgb ,_fcfc =_aegcf .Reader .ReadBit ();if _fcfc !=nil {return _da .Wrap (_fcfc ,_abag ,"\u0070\u0061g\u0065\u0020\u0061s\u0073\u006f\u0063\u0069\u0061\u0074\u0069\u006f\u006e");};if _abfgb !=0{_aegcf .PageAssociationFieldSize =true ;};_bccd ,_fcfc :=_aegcf .Reader .ReadBits (6);if _fcfc !=nil {return _da .Wrap (_fcfc ,_abag ,"\u0073\u0065\u0067m\u0065\u006e\u0074\u0020\u0074\u0079\u0070\u0065");};_aegcf .Type =Type (int (_bccd ));return nil ;};func (_bdaab *TextRegion )createRegionBitmap ()error {_bdaab .RegionBitmap =_gc .New (int (_bdaab .RegionInfo .BitmapWidth ),int (_bdaab .RegionInfo .BitmapHeight ));if _bdaab .DefaultPixel !=0{_bdaab .RegionBitmap .SetDefaultPixel ();};return nil ;};func (_fedf *TextRegion )decodeCurrentT ()(int64 ,error ){if _fedf .SbStrips !=1{if _fedf .IsHuffmanEncoded {_abdg ,_bggd :=_fedf ._afddfd .ReadBits (byte (_fedf .LogSBStrips ));return int64 (_abdg ),_bggd ;};_dgfgg ,_dfed :=_fedf ._dgeb .DecodeInt (_fedf ._adbfg );if _dfed !=nil {return 0,_dfed ;};return int64 (_dgfgg ),nil ;};return 0,nil ;};func (_bfgaf *PageInformationSegment )readCombinationOperator ()error {_gcdf ,_cea :=_bfgaf ._fgff .ReadBits (2);if _cea !=nil {return _cea ;};_bfgaf ._eafa =_gc .CombinationOperator (int (_gcdf ));return nil ;};func (_bffb *HalftoneRegion )computeX (_affd ,_fdag int )int {return _bffb .shiftAndFill (int (_bffb .HGridX )+_affd *int (_bffb .HRegionY )+_fdag *int (_bffb .HRegionX ));};func (_bdfe *HalftoneRegion )computeY (_afd ,_cfee int )int {return _bdfe .shiftAndFill (int (_bdfe .HGridY )+_afd *int (_bdfe .HRegionX )-_cfee *int (_bdfe .HRegionY ));};type TableSegment struct{_eefd _d .StreamReader ;_fdbf int32 ;_dfag int32 ;_dbe int32 ;_cgcgf int32 ;_ebfe int32 ;};func (_fad *GenericRefinementRegion )decodeTypicalPredictedLineTemplate1 (_gbf ,_cf ,_efe ,_abc ,_ggf ,_egb ,_gdc ,_bgfb ,_ceg int )(_gbfg error ){var (_fgd ,_dgbf int ;_gge ,_ada int ;_db ,_gbdg int ;_dc byte ;);if _gbf > 0{_dc ,_gbfg =_fad .RegionBitmap .GetByte (_gdc -_efe );if _gbfg !=nil {return ;};_gge =int (_dc );};if _bgfb > 0&&_bgfb <=_fad .ReferenceBitmap .Height {_dc ,_gbfg =_fad .ReferenceBitmap .GetByte (_ceg -_abc +_egb );if _gbfg !=nil {return ;};_ada =int (_dc )<<2;};if _bgfb >=0&&_bgfb < _fad .ReferenceBitmap .Height {_dc ,_gbfg =_fad .ReferenceBitmap .GetByte (_ceg +_egb );if _gbfg !=nil {return ;};_db =int (_dc );};if _bgfb > -2&&_bgfb < _fad .ReferenceBitmap .Height -1{_dc ,_gbfg =_fad .ReferenceBitmap .GetByte (_ceg +_abc +_egb );if _gbfg !=nil {return ;};_gbdg =int (_dc );};_fgd =((_gge >>5)&0x6)|((_gbdg >>2)&0x30)|(_db &0xc0)|(_ada &0x200);_dgbf =((_gbdg >>2)&0x70)|(_db &0xc0)|(_ada &0x700);var _ga int ;for _adbb :=0;_adbb < _ggf ;_adbb =_ga {var (_bdg int ;_feb int ;);_ga =_adbb +8;if _bdg =_cf -_adbb ;_bdg > 8{_bdg =8;};_fac :=_ga < _cf ;_bc :=_ga < _fad .ReferenceBitmap .Width ;_fbce :=_egb +1;if _gbf > 0{_dc =0;if _fac {_dc ,_gbfg =_fad .RegionBitmap .GetByte (_gdc -_efe +1);if _gbfg !=nil {return ;};};_gge =(_gge <<8)|int (_dc );};if _bgfb > 0&&_bgfb <=_fad .ReferenceBitmap .Height {var _bfb int ;if _bc {_dc ,_gbfg =_fad .ReferenceBitmap .GetByte (_ceg -_abc +_fbce );if _gbfg !=nil {return ;};_bfb =int (_dc )<<2;};_ada =(_ada <<8)|_bfb ;};if _bgfb >=0&&_bgfb < _fad .ReferenceBitmap .Height {_dc =0;if _bc {_dc ,_gbfg =_fad .ReferenceBitmap .GetByte (_ceg +_fbce );if _gbfg !=nil {return ;};};_db =(_db <<8)|int (_dc );};if _bgfb > -2&&_bgfb < (_fad .ReferenceBitmap .Height -1){_dc =0;if _bc {_dc ,_gbfg =_fad .ReferenceBitmap .GetByte (_ceg +_abc +_fbce );if _gbfg !=nil {return ;};};_gbdg =(_gbdg <<8)|int (_dc );};for _dgdg :=0;_dgdg < _bdg ;_dgdg ++{var _dgg int ;_fdac :=(_dgbf >>4)&0x1ff;switch _fdac {case 0x1ff:_dgg =1;case 0x00:_dgg =0;default:_fad ._ee .SetIndex (int32 (_fgd ));_dgg ,_gbfg =_fad ._de .DecodeBit (_fad ._ee );if _gbfg !=nil {return ;};};_gdg :=uint (7-_dgdg );_feb |=_dgg <<_gdg ;_fgd =((_fgd &0x0d6)<<1)|_dgg |(_gge >>_gdg +5)&0x002|((_gbdg >>_gdg +2)&0x010)|((_db >>_gdg )&0x040)|((_ada >>_gdg )&0x200);_dgbf =((_dgbf &0xdb)<<1)|((_gbdg >>_gdg +2)&0x010)|((_db >>_gdg )&0x080)|((_ada >>_gdg )&0x400);};_gbfg =_fad .RegionBitmap .SetByte (_gdc ,byte (_feb ));if _gbfg !=nil {return ;};_gdc ++;_ceg ++;};return nil ;};var _ templater =&template0 {};func (_gcedc *HalftoneRegion )renderPattern (_bdbf [][]int )(_fed error ){var _bdfae ,_acdd int ;for _bcf :=0;_bcf < int (_gcedc .HGridHeight );_bcf ++{for _fbgc :=0;_fbgc < int (_gcedc .HGridWidth );_fbgc ++{_bdfae =_gcedc .computeX (_bcf ,_fbgc );_acdd =_gcedc .computeY (_bcf ,_fbgc );_bfdb :=_gcedc .Patterns [_bdbf [_bcf ][_fbgc ]];if _fed =_gc .Blit (_bfdb ,_gcedc .HalftoneRegionBitmap ,_bdfae +int (_gcedc .HGridX ),_acdd +int (_gcedc .HGridY ),_gcedc .CombinationOperator );_fed !=nil {return _fed ;};};};return nil ;};func (_fd *EndOfStripe )Init (h *Header ,r _d .StreamReader )error {_fd ._gcc =r ;return _fd .parseHeader (h ,r );};func (_bd *GenericRefinementRegion )Init (header *Header ,r _d .StreamReader )error {_bd ._gce =header ;_bd ._cga =r ;_bd .RegionInfo =NewRegionSegment (r );return _bd .parseHeader ();};type PatternDictionary struct{_ddge _d .StreamReader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;GBAtX []int8 ;GBAtY []int8 ;IsMMREncoded bool ;HDTemplate byte ;HdpWidth byte ;HdpHeight byte ;Patterns []*_gc .Bitmap ;GrayMax uint32 ;};func (_cedd *TableSegment )HtHigh ()int32 {return _cedd ._ebfe };func (_ggee *TextRegion )decodeSymbolInstances ()error {_bdc ,_abaf :=_ggee .decodeStripT ();if _abaf !=nil {return _abaf ;};var (_gfeb int64 ;_cfdg uint32 ;);for _cfdg < _ggee .NumberOfSymbolInstances {_dgag ,_edfc :=_ggee .decodeDT ();if _edfc !=nil {return _edfc ;};_bdc +=_dgag ;var _gfag int64 ;_dcc :=true ;_ggee ._cfba =0;for {if _dcc {_gfag ,_edfc =_ggee .decodeDfs ();if _edfc !=nil {return _edfc ;};_gfeb +=_gfag ;_ggee ._cfba =_gfeb ;_dcc =false ;}else {_deeb ,_eaacc :=_ggee .decodeIds ();if _cd .Is (_eaacc ,_b .ErrOOB ){break ;};if _eaacc !=nil {return _eaacc ;};if _cfdg >=_ggee .NumberOfSymbolInstances {break ;};_ggee ._cfba +=_deeb +int64 (_ggee .SbDsOffset );};_affa ,_gdbbe :=_ggee .decodeCurrentT ();if _gdbbe !=nil {return _gdbbe ;};_fgdcd :=_bdc +_affa ;_eeg ,_gdbbe :=_ggee .decodeID ();if _gdbbe !=nil {return _gdbbe ;};_gadac ,_gdbbe :=_ggee .decodeRI ();if _gdbbe !=nil {return _gdbbe ;};_efca ,_gdbbe :=_ggee .decodeIb (_gadac ,_eeg );if _gdbbe !=nil {return _gdbbe ;};if _gdbbe =_ggee .blit (_efca ,_fgdcd );_gdbbe !=nil {return _gdbbe ;};_cfdg ++;};};return nil ;};func (_adac *SymbolDictionary )decodeHeightClassCollectiveBitmap (_dfbb int64 ,_ddged ,_ffbfc uint32 )(*_gc .Bitmap ,error ){if _dfbb ==0{_gcdd :=_gc .New (int (_ffbfc ),int (_ddged ));var (_cac byte ;_afcb error ;);for _dea :=0;_dea < len (_gcdd .Data );_dea ++{_cac ,_afcb =_adac ._cbdgf .ReadByte ();if _afcb !=nil {return nil ,_afcb ;};if _afcb =_gcdd .SetByte (_dea ,_cac );_afcb !=nil {return nil ,_afcb ;};};return _gcdd ,nil ;};if _adac ._cbfc ==nil {_adac ._cbfc =NewGenericRegion (_adac ._cbdgf );};_adac ._cbfc .setParameters (true ,_adac ._cbdgf .StreamPosition (),_dfbb ,_ddged ,_ffbfc );_cbfd ,_acbf :=_adac ._cbfc .GetRegionBitmap ();if _acbf !=nil {return nil ,_acbf ;};return _cbfd ,nil ;};func (_ccgd *Header )CleanSegmentData (){if _ccgd .SegmentData !=nil {_ccgd .SegmentData =nil ;};};func (_dcedf *SymbolDictionary )setSymbolsArray ()error {if _dcedf ._afffe ==nil {if _ccaag :=_dcedf .retrieveImportSymbols ();_ccaag !=nil {return _ccaag ;};};if _dcedf ._ecd ==nil {_dcedf ._ecd =append (_dcedf ._ecd ,_dcedf ._afffe ...);};return nil ;};func (_eccg *PageInformationSegment )DefaultPixelValue ()uint8 {return _eccg ._fafd };func (_agg *GenericRefinementRegion )decodeTypicalPredictedLineTemplate0 (_gfe ,_cgc ,_fc ,_gba ,_daf ,_ccg ,_bgf ,_bfe ,_fa int )error {var (_bda ,_aa ,_dgb ,_fg ,_ddb ,_eee int ;_ccec byte ;_bgd error ;);if _gfe > 0{_ccec ,_bgd =_agg .RegionBitmap .GetByte (_bgf -_fc );if _bgd !=nil {return _bgd ;};_dgb =int (_ccec );};if _bfe > 0&&_bfe <=_agg .ReferenceBitmap .Height {_ccec ,_bgd =_agg .ReferenceBitmap .GetByte (_fa -_gba +_ccg );if _bgd !=nil {return _bgd ;};_fg =int (_ccec )<<4;};if _bfe >=0&&_bfe < _agg .ReferenceBitmap .Height {_ccec ,_bgd =_agg .ReferenceBitmap .GetByte (_fa +_ccg );if _bgd !=nil {return _bgd ;};_ddb =int (_ccec )<<1;};if _bfe > -2&&_bfe < _agg .ReferenceBitmap .Height -1{_ccec ,_bgd =_agg .ReferenceBitmap .GetByte (_fa +_gba +_ccg );if _bgd !=nil {return _bgd ;};_eee =int (_ccec );};_bda =((_dgb >>5)&0x6)|((_eee >>2)&0x30)|(_ddb &0x180)|(_fg &0xc00);var _fda int ;for _cgb :=0;_cgb < _daf ;_cgb =_fda {var _cbe int ;_fda =_cgb +8;var _df int ;if _df =_cgc -_cgb ;_df > 8{_df =8;};_ba :=_fda < _cgc ;_abg :=_fda < _agg .ReferenceBitmap .Width ;_dad :=_ccg +1;if _gfe > 0{_ccec =0;if _ba {_ccec ,_bgd =_agg .RegionBitmap .GetByte (_bgf -_fc +1);if _bgd !=nil {return _bgd ;};};_dgb =(_dgb <<8)|int (_ccec );};if _bfe > 0&&_bfe <=_agg .ReferenceBitmap .Height {var _eef int ;if _abg {_ccec ,_bgd =_agg .ReferenceBitmap .GetByte (_fa -_gba +_dad );if _bgd !=nil {return _bgd ;};_eef =int (_ccec )<<4;};_fg =(_fg <<8)|_eef ;};if _bfe >=0&&_bfe < _agg .ReferenceBitmap .Height {var _gbab int ;if _abg {_ccec ,_bgd =_agg .ReferenceBitmap .GetByte (_fa +_dad );if _bgd !=nil {return _bgd ;};_gbab =int (_ccec )<<1;};_ddb =(_ddb <<8)|_gbab ;};if _bfe > -2&&_bfe < (_agg .ReferenceBitmap .Height -1){_ccec =0;if _abg {_ccec ,_bgd =_agg .ReferenceBitmap .GetByte (_fa +_gba +_dad );if _bgd !=nil {return _bgd ;};};_eee =(_eee <<8)|int (_ccec );};for _afa :=0;_afa < _df ;_afa ++{var _ega int ;_faa :=false ;_fcc :=(_bda >>4)&0x1ff;if _fcc ==0x1ff{_faa =true ;_ega =1;}else if _fcc ==0x00{_faa =true ;};if !_faa {if _agg ._ac {_aa =_agg .overrideAtTemplate0 (_bda ,_cgb +_afa ,_gfe ,_cbe ,_afa );_agg ._ee .SetIndex (int32 (_aa ));}else {_agg ._ee .SetIndex (int32 (_bda ));};_ega ,_bgd =_agg ._de .DecodeBit (_agg ._ee );if _bgd !=nil {return _bgd ;};};_afc :=uint (7-_afa );_cbe |=_ega <<_afc ;_bda =((_bda &0xdb6)<<1)|_ega |(_dgb >>_afc +5)&0x002|((_eee >>_afc +2)&0x010)|((_ddb >>_afc )&0x080)|((_fg >>_afc )&0x400);};_bgd =_agg .RegionBitmap .SetByte (_bgf ,byte (_cbe ));if _bgd !=nil {return _bgd ;};_bgf ++;_fa ++;};return nil ;};func (_bfcg *SymbolDictionary )readRefinementAtPixels (_bgdc int )error {_bfcg .SdrATX =make ([]int8 ,_bgdc );_bfcg .SdrATY =make ([]int8 ,_bgdc );var (_bagc byte ;_dfae error ;);for _degbc :=0;_degbc < _bgdc ;_degbc ++{_bagc ,_dfae =_bfcg ._cbdgf .ReadByte ();if _dfae !=nil {return _dfae ;};_bfcg .SdrATX [_degbc ]=int8 (_bagc );_bagc ,_dfae =_bfcg ._cbdgf .ReadByte ();if _dfae !=nil {return _dfae ;};_bfcg .SdrATY [_degbc ]=int8 (_bagc );};return nil ;};func (_dde *SymbolDictionary )encodeRefinementATFlags (_aeac _d .BinaryWriter )(_daaed int ,_gfce error ){const _abggb ="\u0065\u006e\u0063od\u0065\u0052\u0065\u0066\u0069\u006e\u0065\u006d\u0065\u006e\u0074\u0041\u0054\u0046\u006c\u0061\u0067\u0073";if !_dde .UseRefinementAggregation ||_dde .SdrTemplate !=0{return 0,nil ;};for _febf :=0;_febf < 2;_febf ++{if _gfce =_aeac .WriteByte (byte (_dde .SdrATX [_febf ]));_gfce !=nil {return _daaed ,_da .Wrapf (_gfce ,_abggb ,"\u0053\u0064\u0072\u0041\u0054\u0058\u005b\u0025\u0064\u005d",_febf );};_daaed ++;if _gfce =_aeac .WriteByte (byte (_dde .SdrATY [_febf ]));_gfce !=nil {return _daaed ,_da .Wrapf (_gfce ,_abggb ,"\u0053\u0064\u0072\u0041\u0054\u0059\u005b\u0025\u0064\u005d",_febf );};_daaed ++;};return _daaed ,nil ;};func (_bf *GenericRefinementRegion )decodeSLTP ()(int ,error ){_bf .Template .setIndex (_bf ._ee );return _bf ._de .DecodeBit (_bf ._ee );};func (_feedg *PatternDictionary )parseHeader ()error {_fbg .Log .Trace ("\u005b\u0050\u0041\u0054\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054I\u004f\u004e\u0041\u0052\u0059\u005d[\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d\u0020b\u0065\u0067\u0069\u006e");defer func (){_fbg .Log .Trace ("\u005b\u0050\u0041T\u0054\u0045\u0052\u004e\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u005b\u0070\u0061\u0072\u0073\u0065\u0048\u0065\u0061\u0064\u0065\u0072\u005d \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");}();_ ,_ffg :=_feedg ._ddge .ReadBits (5);if _ffg !=nil {return _ffg ;};if _ffg =_feedg .readTemplate ();_ffg !=nil {return _ffg ;};if _ffg =_feedg .readIsMMREncoded ();_ffg !=nil {return _ffg ;};if _ffg =_feedg .readPatternWidthAndHeight ();_ffg !=nil {return _ffg ;};if _ffg =_feedg .readGrayMax ();_ffg !=nil {return _ffg ;};if _ffg =_feedg .computeSegmentDataStructure ();_ffg !=nil {return _ffg ;};return _feedg .checkInput ();};func (_dbba *PageInformationSegment )encodeStripingInformation (_cbfb _d .BinaryWriter )(_fddf int ,_cdbef error ){const _fde ="\u0065n\u0063\u006f\u0064\u0065S\u0074\u0072\u0069\u0070\u0069n\u0067I\u006ef\u006f\u0072\u006d\u0061\u0074\u0069\u006fn";if !_dbba .IsStripe {if _fddf ,_cdbef =_cbfb .Write ([]byte {0x00,0x00});_cdbef !=nil {return 0,_da .Wrap (_cdbef ,_fde ,"n\u006f\u0020\u0073\u0074\u0072\u0069\u0070\u0069\u006e\u0067");};return _fddf ,nil ;};_acab :=make ([]byte ,2);_g .BigEndian .PutUint16 (_acab ,_dbba .MaxStripeSize |1<<15);if _fddf ,_cdbef =_cbfb .Write (_acab );_cdbef !=nil {return 0,_da .Wrapf (_cdbef ,_fde ,"\u0073\u0074\u0072i\u0070\u0069\u006e\u0067\u003a\u0020\u0025\u0064",_dbba .MaxStripeSize );};return _fddf ,nil ;};func (_afddf *SymbolDictionary )setRetainedCodingContexts (_ecfge *SymbolDictionary ){_afddf ._edff =_ecfge ._edff ;_afddf .IsHuffmanEncoded =_ecfge .IsHuffmanEncoded ;_afddf .UseRefinementAggregation =_ecfge .UseRefinementAggregation ;_afddf .SdTemplate =_ecfge .SdTemplate ;_afddf .SdrTemplate =_ecfge .SdrTemplate ;_afddf .SdATX =_ecfge .SdATX ;_afddf .SdATY =_ecfge .SdATY ;_afddf .SdrATX =_ecfge .SdrATX ;_afddf .SdrATY =_ecfge .SdrATY ;_afddf ._edef =_ecfge ._edef ;};func (_abcf *HalftoneRegion )shiftAndFill (_edga int )int {_edga >>=8;if _edga < 0{_cefd :=int (_a .Log (float64 (_effd (_edga )))/_a .Log (2));_abfg :=31-_cefd ;for _fggc :=1;_fggc < _abfg ;_fggc ++{_edga |=1<<uint (31-_fggc );};};return _edga ;};func (_gaea *PageInformationSegment )readMaxStripeSize ()error {_fef ,_geed :=_gaea ._fgff .ReadBits (15);if _geed !=nil {return _geed ;};_gaea .MaxStripeSize =uint16 (_fef &_a .MaxUint16 );return nil ;};func (_adce *TextRegion )decodeDfs ()(int64 ,error ){if _adce .IsHuffmanEncoded {if _adce .SbHuffFS ==3{if _adce ._dadf ==nil {var _acgf error ;_adce ._dadf ,_acgf =_adce .getUserTable (0);if _acgf !=nil {return 0,_acgf ;};};return _adce ._dadf .Decode (_adce ._afddfd );};_afdg ,_bgdb :=_ca .GetStandardTable (6+int (_adce .SbHuffFS ));if _bgdb !=nil {return 0,_bgdb ;};return _afdg .Decode (_adce ._afddfd );};_bcfe ,_aaae :=_adce ._dgeb .DecodeInt (_adce ._ebde );if _aaae !=nil {return 0,_aaae ;};return int64 (_bcfe ),nil ;};func (_bbef *GenericRegion )Size ()int {return _bbef .RegionSegment .Size ()+1+2*len (_bbef .GBAtX )};func (_faf *GenericRefinementRegion )parseHeader ()(_gca error ){_fbg .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072s\u0069\u006e\u0067\u0020\u0048e\u0061\u0064e\u0072\u002e\u002e\u002e");_ggfe :=_fb .Now ();defer func (){if _gca ==nil {_fbg .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045G\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020h\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0069\u006e\u0069\u0073\u0068id\u0020\u0069\u006e\u003a\u0020\u0025\u0064\u0020\u006e\u0073",_fb .Since (_ggfe ).Nanoseconds ());}else {_fbg .Log .Trace ("\u005b\u0047E\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0046\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0068\u0065\u0061\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0073",_gca );};}();if _gca =_faf .RegionInfo .parseHeader ();_gca !=nil {return _gca ;};_ ,_gca =_faf ._cga .ReadBits (6);if _gca !=nil {return _gca ;};_faf .IsTPGROn ,_gca =_faf ._cga .ReadBool ();if _gca !=nil {return _gca ;};var _cfef int ;_cfef ,_gca =_faf ._cga .ReadBit ();if _gca !=nil {return _gca ;};_faf .TemplateID =int8 (_cfef );switch _faf .TemplateID {case 0:_faf .Template =_faf ._gcd ;if _gca =_faf .readAtPixels ();_gca !=nil {return ;};case 1:_faf .Template =_faf ._ad ;};return nil ;};func (_acdc *SymbolDictionary )huffDecodeBmSize ()(int64 ,error ){if _acdc ._gfbd ==nil {var (_adbcc int ;_dcf error ;);if _acdc .SdHuffDecodeHeightSelection ==3{_adbcc ++;};if _acdc .SdHuffDecodeWidthSelection ==3{_adbcc ++;};_acdc ._gfbd ,_dcf =_acdc .getUserTable (_adbcc );if _dcf !=nil {return 0,_dcf ;};};return _acdc ._gfbd .Decode (_acdc ._cbdgf );};func (_fdga *SymbolDictionary )encodeNumSyms (_gcfge _d .BinaryWriter )(_cfab int ,_cdec error ){const _debfb ="\u0065\u006e\u0063\u006f\u0064\u0065\u004e\u0075\u006d\u0053\u0079\u006d\u0073";_ebegd :=make ([]byte ,4);_g .BigEndian .PutUint32 (_ebegd ,_fdga .NumberOfExportedSymbols );if _cfab ,_cdec =_gcfge .Write (_ebegd );_cdec !=nil {return _cfab ,_da .Wrap (_cdec ,_debfb ,"\u0065\u0078p\u006f\u0072\u0074e\u0064\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};_g .BigEndian .PutUint32 (_ebegd ,_fdga .NumberOfNewSymbols );_fbba ,_cdec :=_gcfge .Write (_ebegd );if _cdec !=nil {return _cfab ,_da .Wrap (_cdec ,_debfb ,"n\u0065\u0077\u0020\u0073\u0079\u006d\u0062\u006f\u006c\u0073");};return _cfab +_fbba ,nil ;};func (_dba *SymbolDictionary )Init (h *Header ,r _d .StreamReader )error {_dba .Header =h ;_dba ._cbdgf =r ;return _dba .parseHeader ();};type EncodeInitializer interface{InitEncode ();};func (_fcce *Header )GetSegmentData ()(Segmenter ,error ){var _beecb Segmenter ;if _fcce .SegmentData !=nil {_beecb =_fcce .SegmentData ;};if _beecb ==nil {_gcfca ,_eddb :=_agaf [_fcce .Type ];if !_eddb {return nil ,_ce .Errorf ("\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0073\u002f\u0020\u0025\u0064\u0020\u0063\u0072e\u0061t\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e\u0020",_fcce .Type ,_fcce .Type );};_beecb =_gcfca ();_fbg .Log .Trace ("\u005b\u0053E\u0047\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0023\u0025\u0064\u005d\u0020\u0047\u0065\u0074\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0044\u0061\u0074\u0061\u0020\u0061\u0074\u0020\u004f\u0066\u0066\u0073\u0065\u0074\u003a\u0020\u0025\u0030\u0034\u0058",_fcce .SegmentNumber ,_fcce .SegmentDataStartOffset );_aegf ,_cbbc :=_fcce .subInputReader ();if _cbbc !=nil {return nil ,_cbbc ;};if _cgca :=_beecb .Init (_fcce ,_aegf );_cgca !=nil {_fbg .Log .Debug ("\u0049\u006e\u0069\u0074 \u0066\u0061\u0069\u006c\u0065\u0064\u003a\u0020\u0025\u0076 \u0066o\u0072\u0020\u0074\u0079\u0070\u0065\u003a \u0025\u0054",_cgca ,_beecb );return nil ,_cgca ;};_fcce .SegmentData =_beecb ;};return _beecb ,nil ;};func (_fdff *SymbolDictionary )setAtPixels ()error {if _fdff .IsHuffmanEncoded {return nil ;};_aadf :=1;if _fdff .SdTemplate ==0{_aadf =4;};if _gcbg :=_fdff .readAtPixels (_aadf );_gcbg !=nil {return _gcbg ;};return nil ;};func (_gcbd *TextRegion )decodeRI ()(int64 ,error ){if !_gcbd .UseRefinement {return 0,nil ;};if _gcbd .IsHuffmanEncoded {_cgeb ,_ace :=_gcbd ._afddfd .ReadBit ();return int64 (_cgeb ),_ace ;};_ffc ,_egbbd :=_gcbd ._dgeb .DecodeInt (_gcbd ._adcf );return int64 (_ffc ),_egbbd ;};func (_bgde *GenericRegion )updateOverrideFlags ()error {const _fdf ="\u0075\u0070\u0064\u0061te\u004f\u0076\u0065\u0072\u0072\u0069\u0064\u0065\u0046\u006c\u0061\u0067\u0073";if _bgde .GBAtX ==nil ||_bgde .GBAtY ==nil {return nil ;};if len (_bgde .GBAtX )!=len (_bgde .GBAtY ){return _da .Errorf (_fdf ,"i\u006eco\u0073i\u0073t\u0065\u006e\u0074\u0020\u0041T\u0020\u0070\u0069x\u0065\u006c\u002e\u0020\u0041m\u006f\u0075\u006et\u0020\u006f\u0066\u0020\u0027\u0078\u0027\u0020\u0070\u0069\u0078e\u006c\u0073\u003a %d\u002c\u0020\u0041\u006d\u006f\u0075n\u0074\u0020\u006f\u0066\u0020\u0027\u0079\u0027\u0020\u0070\u0069\u0078e\u006cs\u003a\u0020\u0025\u0064",len (_bgde .GBAtX ),len (_bgde .GBAtY ));};_bgde .GBAtOverride =make ([]bool ,len (_bgde .GBAtX ));switch _bgde .GBTemplate {case 0:if !_bgde .UseExtTemplates {if _bgde .GBAtX [0]!=3||_bgde .GBAtY [0]!=-1{_bgde .setOverrideFlag (0);};if _bgde .GBAtX [1]!=-3||_bgde .GBAtY [1]!=-1{_bgde .setOverrideFlag (1);};if _bgde .GBAtX [2]!=2||_bgde .GBAtY [2]!=-2{_bgde .setOverrideFlag (2);};if _bgde .GBAtX [3]!=-2||_bgde .GBAtY [3]!=-2{_bgde .setOverrideFlag (3);};}else {if _bgde .GBAtX [0]!=-2||_bgde .GBAtY [0]!=0{_bgde .setOverrideFlag (0);};if _bgde .GBAtX [1]!=0||_bgde .GBAtY [1]!=-2{_bgde .setOverrideFlag (1);};if _bgde .GBAtX [2]!=-2||_bgde .GBAtY [2]!=-1{_bgde .setOverrideFlag (2);};if _bgde .GBAtX [3]!=-1||_bgde .GBAtY [3]!=-2{_bgde .setOverrideFlag (3);};if _bgde .GBAtX [4]!=1||_bgde .GBAtY [4]!=-2{_bgde .setOverrideFlag (4);};if _bgde .GBAtX [5]!=2||_bgde .GBAtY [5]!=-1{_bgde .setOverrideFlag (5);};if _bgde .GBAtX [6]!=-3||_bgde .GBAtY [6]!=0{_bgde .setOverrideFlag (6);};if _bgde .GBAtX [7]!=-4||_bgde .GBAtY [7]!=0{_bgde .setOverrideFlag (7);};if _bgde .GBAtX [8]!=2||_bgde .GBAtY [8]!=-2{_bgde .setOverrideFlag (8);};if _bgde .GBAtX [9]!=3||_bgde .GBAtY [9]!=-1{_bgde .setOverrideFlag (9);};if _bgde .GBAtX [10]!=-2||_bgde .GBAtY [10]!=-2{_bgde .setOverrideFlag (10);};if _bgde .GBAtX [11]!=-3||_bgde .GBAtY [11]!=-1{_bgde .setOverrideFlag (11);};};case 1:if _bgde .GBAtX [0]!=3||_bgde .GBAtY [0]!=-1{_bgde .setOverrideFlag (0);};case 2:if _bgde .GBAtX [0]!=2||_bgde .GBAtY [0]!=-1{_bgde .setOverrideFlag (0);};case 3:if _bgde .GBAtX [0]!=2||_bgde .GBAtY [0]!=-1{_bgde .setOverrideFlag (0);};};return nil ;};func (_dfgc *TextRegion )GetRegionBitmap ()(*_gc .Bitmap ,error ){if _dfgc .RegionBitmap !=nil {return _dfgc .RegionBitmap ,nil ;};if !_dfgc .IsHuffmanEncoded {if _fgcf :=_dfgc .setCodingStatistics ();_fgcf !=nil {return nil ,_fgcf ;};};if _dafg :=_dfgc .createRegionBitmap ();_dafg !=nil {return nil ,_dafg ;};if _gacg :=_dfgc .decodeSymbolInstances ();_gacg !=nil {return nil ,_gacg ;};return _dfgc .RegionBitmap ,nil ;};func (_cfaceg *PatternDictionary )extractPatterns (_fbgce *_gc .Bitmap )error {var _ccgb int ;_cgcgd :=make ([]*_gc .Bitmap ,_cfaceg .GrayMax +1);for _ccgb <=int (_cfaceg .GrayMax ){_aafb :=int (_cfaceg .HdpWidth )*_ccgb ;_dfcf :=_e .Rect (_aafb ,0,_aafb +int (_cfaceg .HdpWidth ),int (_cfaceg .HdpHeight ));_beff ,_afdd :=_gc .Extract (_dfcf ,_fbgce );if _afdd !=nil {return _afdd ;};_cgcgd [_ccgb ]=_beff ;_ccgb ++;};_cfaceg .Patterns =_cgcgd ;return nil ;};func (_aec *GenericRegion )String ()string {_gaa :=&_cg .Builder {};_gaa .WriteString ("\u000a[\u0047E\u004e\u0045\u0052\u0049\u0043 \u0052\u0045G\u0049\u004f\u004e\u005d\u000a");_gaa .WriteString (_aec .RegionSegment .String ()+"\u000a");_gaa .WriteString (_ce .Sprintf ("\u0009\u002d\u0020Us\u0065\u0045\u0078\u0074\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0073\u003a\u0020\u0025\u0076\u000a",_aec .UseExtTemplates ));_gaa .WriteString (_ce .Sprintf ("\u0009\u002d \u0049\u0073\u0054P\u0047\u0044\u006f\u006e\u003a\u0020\u0025\u0076\u000a",_aec .IsTPGDon ));_gaa .WriteString (_ce .Sprintf ("\u0009-\u0020G\u0042\u0054\u0065\u006d\u0070l\u0061\u0074e\u003a\u0020\u0025\u0064\u000a",_aec .GBTemplate ));_gaa .WriteString (_ce .Sprintf ("\t\u002d \u0049\u0073\u004d\u004d\u0052\u0045\u006e\u0063o\u0064\u0065\u0064\u003a %\u0076\u000a",_aec .IsMMREncoded ));_gaa .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0058\u003a\u0020\u0025\u0076\u000a",_aec .GBAtX ));_gaa .WriteString (_ce .Sprintf ("\u0009\u002d\u0020\u0047\u0042\u0041\u0074\u0059\u003a\u0020\u0025\u0076\u000a",_aec .GBAtY ));_gaa .WriteString (_ce .Sprintf ("\t\u002d \u0047\u0042\u0041\u0074\u004f\u0076\u0065\u0072r\u0069\u0064\u0065\u003a %\u0076\u000a",_aec .GBAtOverride ));return _gaa .String ();};func (_bbg *SymbolDictionary )checkInput ()error {if _bbg .SdHuffDecodeHeightSelection ==2{_fbg .Log .Debug ("\u0053\u0079\u006d\u0062\u006fl\u0020\u0044\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079\u0020\u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0048\u0065\u0069\u0067\u0068\u0074\u0020\u0053e\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006e\u006f\u0074\u0020\u0070\u0065r\u006d\u0069\u0074\u0074\u0065\u0064",_bbg .SdHuffDecodeHeightSelection );};if _bbg .SdHuffDecodeWidthSelection ==2{_fbg .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0044\u0065\u0063\u006f\u0064\u0065\u0020\u0057\u0069\u0064t\u0068\u0020\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0064\u0020\u0076\u0061l\u0075\u0065\u0020\u006e\u006f\u0074 \u0070\u0065r\u006d\u0069t\u0074e\u0064",_bbg .SdHuffDecodeWidthSelection );};if _bbg .IsHuffmanEncoded {if _bbg .SdTemplate !=0{_fbg .Log .Debug ("\u0053\u0044T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062e \u0030\u0029",_bbg .SdTemplate );};if !_bbg .UseRefinementAggregation {if !_bbg .UseRefinementAggregation {if _bbg ._aabb {_fbg .Log .Debug ("\u0049\u0073\u0043\u006f\u0064\u0069\u006e\u0067C\u006f\u006e\u0074ex\u0074\u0052\u0065\u0074\u0061\u0069n\u0065\u0064\u0020\u003d\u0020\u0074\u0072\u0075\u0065\u0020\u0028\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0066\u0061\u006cs\u0065\u0029");_bbg ._aabb =false ;};if _bbg ._gebb {_fbg .Log .Debug ("\u0069s\u0043\u006fd\u0069\u006e\u0067\u0043o\u006e\u0074\u0065x\u0074\u0055\u0073\u0065\u0064\u0020\u003d\u0020\u0074ru\u0065\u0020\u0028s\u0068\u006fu\u006c\u0064\u0020\u0062\u0065\u0020f\u0061\u006cs\u0065\u0029");_bbg ._gebb =false ;};};};}else {if _bbg .SdHuffBMSizeSelection !=0{_fbg .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066B\u004d\u0053\u0069\u007a\u0065\u0053\u0065\u006c\u0065\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");_bbg .SdHuffBMSizeSelection =0;};if _bbg .SdHuffDecodeWidthSelection !=0{_fbg .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0057\u0069\u0064\u0074\u0068\u0053\u0065\u006c\u0065\u0063\u0074\u0069o\u006e\u0020\u0073\u0068\u006fu\u006c\u0064 \u0062\u0065\u0020\u0030");_bbg .SdHuffDecodeWidthSelection =0;};if _bbg .SdHuffDecodeHeightSelection !=0{_fbg .Log .Debug ("\u0053\u0064\u0048\u0075\u0066\u0066\u0044\u0065\u0063\u006f\u0064\u0065\u0048e\u0069\u0067\u0068\u0074\u0053\u0065l\u0065\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068\u006f\u0075\u006c\u0064 \u0062\u0065\u0020\u0030");_bbg .SdHuffDecodeHeightSelection =0;};};if !_bbg .UseRefinementAggregation {if _bbg .SdrTemplate !=0{_fbg .Log .Debug ("\u0053\u0044\u0052\u0054\u0065\u006d\u0070\u006c\u0061\u0074e\u0020\u003d\u0020\u0025\u0064\u0020\u0028s\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_bbg .SdrTemplate );_bbg .SdrTemplate =0;};};if !_bbg .IsHuffmanEncoded ||!_bbg .UseRefinementAggregation {if _bbg .SdHuffAggInstanceSelection {_fbg .Log .Debug ("\u0053d\u0048\u0075f\u0066\u0041\u0067g\u0049\u006e\u0073\u0074\u0061\u006e\u0063e\u0053\u0065\u006c\u0065\u0063\u0074i\u006f\u006e\u0020\u003d\u0020\u0025\u0064\u0020\u0028\u0073\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030\u0029",_bbg .SdHuffAggInstanceSelection );};};return nil ;};func (_ecgc *PageInformationSegment )readDefaultPixelValue ()error {_bgaf ,_gcaf :=_ecgc ._fgff .ReadBit ();if _gcaf !=nil {return _gcaf ;};_ecgc ._fafd =uint8 (_bgaf &0xf);return nil ;};func (_fcbf *TextRegion )Encode (w _d .BinaryWriter )(_badae int ,_geec error ){const _dbfaf ="\u0054\u0065\u0078\u0074\u0052\u0065\u0067\u0069\u006f\u006e\u002e\u0045n\u0063\u006f\u0064\u0065";if _badae ,_geec =_fcbf .RegionInfo .Encode (w );_geec !=nil {return _badae ,_da .Wrap (_geec ,_dbfaf ,"");};var _fabac int ;if _fabac ,_geec =_fcbf .encodeFlags (w );_geec !=nil {return _badae ,_da .Wrap (_geec ,_dbfaf ,"");};_badae +=_fabac ;if _fabac ,_geec =_fcbf .encodeSymbols (w );_geec !=nil {return _badae ,_da .Wrap (_geec ,_dbfaf ,"");};_badae +=_fabac ;return _badae ,nil ;};func (_ddcg *SymbolDictionary )decodeDifferenceWidth ()(int64 ,error ){if _ddcg .IsHuffmanEncoded {switch _ddcg .SdHuffDecodeWidthSelection {case 0:_bdfgb ,_gcdfd :=_ca .GetStandardTable (2);if _gcdfd !=nil {return 0,_gcdfd ;};return _bdfgb .Decode (_ddcg ._cbdgf );case 1:_gafaf ,_gecg :=_ca .GetStandardTable (3);if _gecg !=nil {return 0,_gecg ;};return _gafaf .Decode (_ddcg ._cbdgf );case 3:if _ddcg ._dcd ==nil {var _edge int ;if _ddcg .SdHuffDecodeHeightSelection ==3{_edge ++;};_ccde ,_abbb :=_ddcg .getUserTable (_edge );if _abbb !=nil {return 0,_abbb ;};_ddcg ._dcd =_ccde ;};return _ddcg ._dcd .Decode (_ddcg ._cbdgf );};}else {_gccg ,_eeafb :=_ddcg ._edff .DecodeInt (_ddcg ._degb );if _eeafb !=nil {return 0,_eeafb ;};return int64 (_gccg ),nil ;};return 0,nil ;};var (_ Regioner =&TextRegion {};_ Segmenter =&TextRegion {};);func _cef (_dfd _d .StreamReader ,_dfb *Header )*GenericRefinementRegion {return &GenericRefinementRegion {_cga :_dfd ,RegionInfo :NewRegionSegment (_dfd ),_gce :_dfb ,_gcd :&template0 {},_ad :&template1 {}};};func (_dfcb *SymbolDictionary )retrieveImportSymbols ()error {for _ ,_gdaf :=range _dfcb .Header .RTSegments {if _gdaf .Type ==0{_ecce ,_fgdgf :=_gdaf .GetSegmentData ();if _fgdgf !=nil {return _fgdgf ;};_fagbc ,_cgcb :=_ecce .(*SymbolDictionary );if !_cgcb {return _ce .Errorf ("\u0070\u0072\u006f\u0076\u0069\u0064\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0044\u0061\u0074a\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u003a\u0020%\u0054",_ecce );};_fdbg ,_fgdgf :=_fagbc .GetDictionary ();if _fgdgf !=nil {return _ce .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064 \u0073\u0065\u0067m\u0065\u006e\u0074 \u0077\u0069t\u0068\u0020\u0069\u006e\u0064\u0065x\u003a %\u0064\u0020\u0067\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e\u0020\u0025\u0073",_gdaf .SegmentNumber ,_fgdgf .Error ());};_dfcb ._afffe =append (_dfcb ._afffe ,_fdbg ...);_dfcb ._feeb +=_fagbc .NumberOfExportedSymbols ;};};return nil ;};func (_dge *GenericRegion )decodeTemplate1 (_bfba ,_cfc ,_bdfa int ,_bfff ,_dgfg int )(_cfa error ){const _gecd ="\u0064e\u0063o\u0064\u0065\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0031";var (_aeg ,_bbed int ;_cebg ,_edf int ;_bgff byte ;_bed ,_cbd int ;);if _bfba >=1{_bgff ,_cfa =_dge .Bitmap .GetByte (_dgfg );if _cfa !=nil {return _da .Wrap (_cfa ,_gecd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_cebg =int (_bgff );};if _bfba >=2{_bgff ,_cfa =_dge .Bitmap .GetByte (_dgfg -_dge .Bitmap .RowStride );if _cfa !=nil {return _da .Wrap (_cfa ,_gecd ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_edf =int (_bgff )<<5;};_aeg =((_cebg >>1)&0x1f8)|((_edf >>1)&0x1e00);for _fbde :=0;_fbde < _bdfa ;_fbde =_bed {var (_daee byte ;_fdgf int ;);_bed =_fbde +8;if _bfea :=_cfc -_fbde ;_bfea > 8{_fdgf =8;}else {_fdgf =_bfea ;};if _bfba > 0{_cebg <<=8;if _bed < _cfc {_bgff ,_cfa =_dge .Bitmap .GetByte (_dgfg +1);if _cfa !=nil {return _da .Wrap (_cfa ,_gecd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_cebg |=int (_bgff );};};if _bfba > 1{_edf <<=8;if _bed < _cfc {_bgff ,_cfa =_dge .Bitmap .GetByte (_dgfg -_dge .Bitmap .RowStride +1);if _cfa !=nil {return _da .Wrap (_cfa ,_gecd ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_edf |=int (_bgff )<<5;};};for _fdaa :=0;_fdaa < _fdgf ;_fdaa ++{if _dge ._fee {_bbed =_dge .overrideAtTemplate1 (_aeg ,_fbde +_fdaa ,_bfba ,int (_daee ),_fdaa );_dge ._cab .SetIndex (int32 (_bbed ));}else {_dge ._cab .SetIndex (int32 (_aeg ));};_cbd ,_cfa =_dge ._ffb .DecodeBit (_dge ._cab );if _cfa !=nil {return _da .Wrap (_cfa ,_gecd ,"");};_daee |=byte (_cbd )<<uint (7-_fdaa );_cdf :=uint (8-_fdaa );_aeg =((_aeg &0xefb)<<1)|_cbd |((_cebg >>_cdf )&0x8)|((_edf >>_cdf )&0x200);};if _fgbg :=_dge .Bitmap .SetByte (_bfff ,_daee );_fgbg !=nil {return _da .Wrap (_fgbg ,_gecd ,"");};_bfff ++;_dgfg ++;};return nil ;};func (_beg *GenericRegion )Init (h *Header ,r _d .StreamReader )error {_beg .RegionSegment =NewRegionSegment (r );_beg ._bca =r ;return _beg .parseHeader ();};func (_daff *GenericRefinementRegion )getPixel (_bef *_gc .Bitmap ,_gdcc ,_cdc int )int {if _gdcc < 0||_gdcc >=_bef .Width {return 0;};if _cdc < 0||_cdc >=_bef .Height {return 0;};if _bef .GetPixel (_gdcc ,_cdc ){return 1;};return 0;};type RegionSegment struct{_geac _d .StreamReader ;BitmapWidth uint32 ;BitmapHeight uint32 ;XLocation uint32 ;YLocation uint32 ;CombinaionOperator _gc .CombinationOperator ;};func _cadg (_egef _d .StreamReader ,_dged *Header )*TextRegion {_fegc :=&TextRegion {_afddfd :_egef ,Header :_dged ,RegionInfo :NewRegionSegment (_egef )};return _fegc ;};func (_ccfc *Header )Encode (w _d .BinaryWriter )(_ccef int ,_afac error ){const _aga ="\u0048\u0065\u0061d\u0065\u0072\u002e\u0057\u0072\u0069\u0074\u0065";var _fcfd _d .BinaryWriter ;_fbg .Log .Trace ("\u005b\u0053\u0045G\u004d\u0045\u004e\u0054-\u0048\u0045\u0041\u0044\u0045\u0052\u005d[\u0045\u004e\u0043\u004f\u0044\u0045\u005d\u0020\u0042\u0065\u0067\u0069\u006e\u0073");defer func (){if _afac !=nil {_fbg .Log .Trace ("[\u0053\u0045\u0047\u004d\u0045\u004eT\u002d\u0048\u0045\u0041\u0044\u0045R\u005d\u005b\u0045\u004e\u0043\u004f\u0044E\u005d\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u002e\u0020%\u0076",_afac );}else {_fbg .Log .Trace ("\u005b\u0053\u0045\u0047ME\u004e\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0025\u0076",_ccfc );_fbg .Log .Trace ("\u005b\u0053\u0045\u0047\u004d\u0045N\u0054\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u005b\u0045\u004e\u0043O\u0044\u0045\u005d\u0020\u0046\u0069\u006ei\u0073\u0068\u0065\u0064");};}();w .FinishByte ();if _ccfc .SegmentData !=nil {_bcdab ,_eefc :=_ccfc .SegmentData .(SegmentEncoder );if !_eefc {return 0,_da .Errorf (_aga ,"\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0054\u0020\u0064\u006f\u0065s\u006e\u0027\u0074\u0020\u0069\u006d\u0070\u006c\u0065\u006d\u0065\u006e\u0074 \u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0045\u006e\u0063\u006f\u0064er\u0020\u0069\u006e\u0074\u0065\u0072\u0066\u0061\u0063\u0065",_ccfc .SegmentData );};_fcfd =_d .BufferedMSB ();_ccef ,_afac =_bcdab .Encode (_fcfd );if _afac !=nil {return 0,_da .Wrap (_afac ,_aga ,"");};_ccfc .SegmentDataLength =uint64 (_ccef );};if _ccfc .pageSize ()==4{_ccfc .PageAssociationFieldSize =true ;};var _ede int ;_ede ,_afac =_ccfc .writeSegmentNumber (w );if _afac !=nil {return 0,_da .Wrap (_afac ,_aga ,"");};_ccef +=_ede ;if _afac =_ccfc .writeFlags (w );_afac !=nil {return _ccef ,_da .Wrap (_afac ,_aga ,"");};_ccef ++;_ede ,_afac =_ccfc .writeReferredToCount (w );if _afac !=nil {return 0,_da .Wrap (_afac ,_aga ,"");};_ccef +=_ede ;_ede ,_afac =_ccfc .writeReferredToSegments (w );if _afac !=nil {return 0,_da .Wrap (_afac ,_aga ,"");};_ccef +=_ede ;_ede ,_afac =_ccfc .writeSegmentPageAssociation (w );if _afac !=nil {return 0,_da .Wrap (_afac ,_aga ,"");};_ccef +=_ede ;_ede ,_afac =_ccfc .writeSegmentDataLength (w );if _afac !=nil {return 0,_da .Wrap (_afac ,_aga ,"");};_ccef +=_ede ;_ccfc .HeaderLength =int64 (_ccef )-int64 (_ccfc .SegmentDataLength );if _fcfd !=nil {if _ ,_afac =w .Write (_fcfd .Data ());_afac !=nil {return _ccef ,_da .Wrap (_afac ,_aga ,"\u0077r\u0069t\u0065\u0020\u0073\u0065\u0067m\u0065\u006et\u0020\u0064\u0061\u0074\u0061");};};return _ccef ,nil ;};func (_fec *template0 )setIndex (_eeeb *_fbc .DecoderStats ){_eeeb .SetIndex (0x100)};func (_bbdc *SymbolDictionary )parseHeader ()(_cfeb error ){_fbg .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){if _cfeb !=nil {_fbg .Log .Trace ("\u005bS\u0059\u004dB\u004f\u004c\u0020\u0044I\u0043\u0054\u0049O\u004e\u0041\u0052\u0059\u005d\u005b\u0050\u0041\u0052SE\u002d\u0048\u0045A\u0044\u0045R\u005d\u0020\u0066\u0061\u0069\u006ce\u0064\u002e \u0025\u0076",_cfeb );}else {_fbg .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c \u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u002e");};}();if _cfeb =_bbdc .readRegionFlags ();_cfeb !=nil {return _cfeb ;};if _cfeb =_bbdc .setAtPixels ();_cfeb !=nil {return _cfeb ;};if _cfeb =_bbdc .setRefinementAtPixels ();_cfeb !=nil {return _cfeb ;};if _cfeb =_bbdc .readNumberOfExportedSymbols ();_cfeb !=nil {return _cfeb ;};if _cfeb =_bbdc .readNumberOfNewSymbols ();_cfeb !=nil {return _cfeb ;};if _cfeb =_bbdc .setInSyms ();_cfeb !=nil {return _cfeb ;};if _bbdc ._gebb {_fgfc :=_bbdc .Header .RTSegments ;for _efad :=len (_fgfc )-1;_efad >=0;_efad --{if _fgfc [_efad ].Type ==0{_gcce ,_aaga :=_fgfc [_efad ].SegmentData .(*SymbolDictionary );if !_aaga {_cfeb =_ce .Errorf ("\u0072\u0065\u006c\u0061\u0074\u0065\u0064\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074:\u0020\u0025\u0076\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u0020S\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u0053\u0065\u0067\u006d\u0065\u006e\u0074",_fgfc [_efad ]);return _cfeb ;};if _gcce ._gebb {_bbdc .setRetainedCodingContexts (_gcce );};break ;};};};if _cfeb =_bbdc .checkInput ();_cfeb !=nil {return _cfeb ;};return nil ;};func (_begc *TableSegment )parseHeader ()error {var (_aeda int ;_acdf uint64 ;_ceddc error ;);_aeda ,_ceddc =_begc ._eefd .ReadBit ();if _ceddc !=nil {return _ceddc ;};if _aeda ==1{return _ce .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0074\u0061\u0062\u006c\u0065 \u0073\u0065\u0067\u006d\u0065\u006e\u0074\u0020\u0064e\u0066\u0069\u006e\u0069\u0074\u0069\u006f\u006e\u002e\u0020\u0042\u002e\u0032\u002e1\u0020\u0043\u006f\u0064\u0065\u0020\u0054\u0061\u0062\u006c\u0065\u0020\u0066\u006c\u0061\u0067\u0073\u003a\u0020\u0042\u0069\u0074\u0020\u0037\u0020\u006d\u0075\u0073\u0074\u0020b\u0065\u0020\u007a\u0065\u0072\u006f\u002e\u0020\u0057a\u0073\u003a \u0025\u0064",_aeda );};if _acdf ,_ceddc =_begc ._eefd .ReadBits (3);_ceddc !=nil {return _ceddc ;};_begc ._dbe =(int32 (_acdf )+1)&0xf;if _acdf ,_ceddc =_begc ._eefd .ReadBits (3);_ceddc !=nil {return _ceddc ;};_begc ._dfag =(int32 (_acdf )+1)&0xf;if _acdf ,_ceddc =_begc ._eefd .ReadBits (32);_ceddc !=nil {return _ceddc ;};_begc ._cgcgf =int32 (_acdf &_a .MaxInt32 );if _acdf ,_ceddc =_begc ._eefd .ReadBits (32);_ceddc !=nil {return _ceddc ;};_begc ._ebfe =int32 (_acdf &_a .MaxInt32 );return nil ;};func (_fafa *TextRegion )checkInput ()error {const _ccedg ="\u0063\u0068\u0065\u0063\u006b\u0049\u006e\u0070\u0075\u0074";if !_fafa .UseRefinement {if _fafa .SbrTemplate !=0{_fbg .Log .Debug ("\u0053\u0062\u0072Te\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_fafa .SbrTemplate =0;};};if _fafa .SbHuffFS ==2||_fafa .SbHuffRDWidth ==2||_fafa .SbHuffRDHeight ==2||_fafa .SbHuffRDX ==2||_fafa .SbHuffRDY ==2{return _da .Error (_ccedg ,"h\u0075\u0066\u0066\u006d\u0061\u006e \u0066\u006c\u0061\u0067\u0020\u0076a\u006c\u0075\u0065\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074e\u0064");};if !_fafa .UseRefinement {if _fafa .SbHuffRSize !=0{_fbg .Log .Debug ("\u0053\u0062\u0048uf\u0066\u0052\u0053\u0069\u007a\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0030");_fafa .SbHuffRSize =0;};if _fafa .SbHuffRDY !=0{_fbg .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044Y\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_fafa .SbHuffRDY =0;};if _fafa .SbHuffRDX !=0{_fbg .Log .Debug ("S\u0062\u0048\u0075\u0066fR\u0044X\u0020\u0073\u0068\u006f\u0075l\u0064\u0020\u0062\u0065\u0020\u0030");_fafa .SbHuffRDX =0;};if _fafa .SbHuffRDWidth !=0{_fbg .Log .Debug ("\u0053b\u0048\u0075\u0066\u0066R\u0044\u0057\u0069\u0064\u0074h\u0020s\u0068o\u0075\u006c\u0064\u0020\u0062\u0065\u00200");_fafa .SbHuffRDWidth =0;};if _fafa .SbHuffRDHeight !=0{_fbg .Log .Debug ("\u0053\u0062\u0048\u0075\u0066\u0066\u0052\u0044\u0048\u0065\u0069g\u0068\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0030");_fafa .SbHuffRDHeight =0;};};return nil ;};func (_cdebg *TextRegion )GetRegionInfo ()*RegionSegment {return _cdebg .RegionInfo };func (_abaec *PageInformationSegment )CombinationOperator ()_gc .CombinationOperator {return _abaec ._eafa ;};type GenericRegion struct{_bca _d .StreamReader ;DataHeaderOffset int64 ;DataHeaderLength int64 ;DataOffset int64 ;DataLength int64 ;RegionSegment *RegionSegment ;UseExtTemplates bool ;IsTPGDon bool ;GBTemplate byte ;IsMMREncoded bool ;UseMMR bool ;GBAtX []int8 ;GBAtY []int8 ;GBAtOverride []bool ;_fee bool ;Bitmap *_gc .Bitmap ;_ffb *_fbc .Decoder ;_cab *_fbc .DecoderStats ;_bfc *_eg .Decoder ;};func (_fdec *TextRegion )decodeRdh ()(int64 ,error ){const _gdac ="\u0064e\u0063\u006f\u0064\u0065\u0052\u0064h";if _fdec .IsHuffmanEncoded {if _fdec .SbHuffRDHeight ==3{if _fdec ._adab ==nil {var (_cbbb int ;_eceb error ;);if _fdec .SbHuffFS ==3{_cbbb ++;};if _fdec .SbHuffDS ==3{_cbbb ++;};if _fdec .SbHuffDT ==3{_cbbb ++;};if _fdec .SbHuffRDWidth ==3{_cbbb ++;};_fdec ._adab ,_eceb =_fdec .getUserTable (_cbbb );if _eceb !=nil {return 0,_da .Wrap (_eceb ,_gdac ,"");};};return _fdec ._adab .Decode (_fdec ._afddfd );};_baba ,_bfeb :=_ca .GetStandardTable (14+int (_fdec .SbHuffRDHeight ));if _bfeb !=nil {return 0,_da .Wrap (_bfeb ,_gdac ,"");};return _baba .Decode (_fdec ._afddfd );};_dede ,_gbdc :=_fdec ._dgeb .DecodeInt (_fdec ._egcb );if _gbdc !=nil {return 0,_da .Wrap (_gbdc ,_gdac ,"");};return int64 (_dede ),nil ;};var _ SegmentEncoder =&GenericRegion {};type template0 struct{};type Header struct{SegmentNumber uint32 ;Type Type ;RetainFlag bool ;PageAssociation int ;PageAssociationFieldSize bool ;RTSegments []*Header ;HeaderLength int64 ;SegmentDataLength uint64 ;SegmentDataStartOffset uint64 ;Reader _d .StreamReader ;SegmentData Segmenter ;RTSNumbers []int ;RetainBits []uint8 ;};func (_fgdce *TableSegment )HtRS ()int32 {return _fgdce ._dbe };func (_ecf *GenericRefinementRegion )decodeOptimized (_ag ,_gcf ,_eaa ,_cee ,_ab ,_dac ,_gcfg int )error {var (_dd error ;_gcde int ;_eea int ;);_add :=_ag -int (_ecf .ReferenceDY );if _adb :=int (-_ecf .ReferenceDX );_adb > 0{_gcde =_adb ;};_eb :=_ecf .ReferenceBitmap .GetByteIndex (_gcde ,_add );if _ecf .ReferenceDX > 0{_eea =int (_ecf .ReferenceDX );};_ggg :=_ecf .RegionBitmap .GetByteIndex (_eea ,_ag );switch _ecf .TemplateID {case 0:_dd =_ecf .decodeTemplate (_ag ,_gcf ,_eaa ,_cee ,_ab ,_dac ,_gcfg ,_ggg ,_add ,_eb ,_ecf ._gcd );case 1:_dd =_ecf .decodeTemplate (_ag ,_gcf ,_eaa ,_cee ,_ab ,_dac ,_gcfg ,_ggg ,_add ,_eb ,_ecf ._ad );};return _dd ;};func (_cdaa *PageInformationSegment )Init (h *Header ,r _d .StreamReader )(_cgd error ){_cdaa ._fgff =r ;if _cgd =_cdaa .parseHeader ();_cgd !=nil {return _da .Wrap (_cgd ,"P\u0061\u0067\u0065\u0049\u006e\u0066o\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065g\u006d\u0065\u006et\u002eI\u006e\u0069\u0074","");};return nil ;};func (_ebc *Header )readDataStartOffset (_addgg _d .StreamReader ,_bdfg OrganizationType ){if _bdfg ==OSequential {_ebc .SegmentDataStartOffset =uint64 (_addgg .StreamPosition ());};};func (_eefe *PageInformationSegment )parseHeader ()(_cabe error ){_fbg .Log .Trace ("\u005b\u0050\u0061\u0067\u0065I\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067m\u0065\u006e\u0074\u005d\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065\u0072\u002e\u002e\u002e");defer func (){var _edbb ="[\u0050\u0061\u0067\u0065\u0049\u006e\u0066\u006f\u0072m\u0061\u0074\u0069\u006f\u006e\u0053\u0065gm\u0065\u006e\u0074\u005d \u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065ad\u0065\u0072 \u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064";if _cabe !=nil {_edbb +="\u0020\u0077\u0069t\u0068\u0020\u0065\u0072\u0072\u006f\u0072\u0020"+_cabe .Error ();}else {_edbb +="\u0020\u0073\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079";};_fbg .Log .Trace (_edbb );}();if _cabe =_eefe .readWidthAndHeight ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readResolution ();_cabe !=nil {return _cabe ;};_ ,_cabe =_eefe ._fgff .ReadBit ();if _cabe !=nil {return _cabe ;};if _cabe =_eefe .readCombinationOperatorOverrideAllowed ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readRequiresAuxiliaryBuffer ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readCombinationOperator ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readDefaultPixelValue ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readContainsRefinement ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readIsLossless ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readIsStriped ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .readMaxStripeSize ();_cabe !=nil {return _cabe ;};if _cabe =_eefe .checkInput ();_cabe !=nil {return _cabe ;};_fbg .Log .Trace ("\u0025\u0073",_eefe );return nil ;};func (_eda *GenericRegion )decodeSLTP ()(int ,error ){switch _eda .GBTemplate {case 0:_eda ._cab .SetIndex (0x9B25);case 1:_eda ._cab .SetIndex (0x795);case 2:_eda ._cab .SetIndex (0xE5);case 3:_eda ._cab .SetIndex (0x195);};return _eda ._ffb .DecodeBit (_eda ._cab );};func (_fbbd *TextRegion )parseHeader ()error {var _feeag error ;_fbg .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0062\u0065\u0067\u0069n\u0073\u002e\u002e\u002e");defer func (){if _feeag !=nil {_fbg .Log .Trace ("\u005b\u0054\u0045\u0058\u0054\u0020\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045\u002d\u0048\u0045\u0041\u0044E\u0052\u005d\u0020\u0066\u0061i\u006c\u0065d\u002e\u0020\u0025\u0076",_feeag );}else {_fbg .Log .Trace ("\u005b\u0054E\u0058\u0054\u0020\u0052E\u0047\u0049O\u004e\u005d\u005b\u0050\u0041\u0052\u0053\u0045-\u0048\u0045\u0041\u0044\u0045\u0052\u005d\u0020\u0066\u0069\u006e\u0069s\u0068\u0065\u0064\u002e");};}();if _feeag =_fbbd .RegionInfo .parseHeader ();_feeag !=nil {return _feeag ;};if _feeag =_fbbd .readRegionFlags ();_feeag !=nil {return _feeag ;};if _fbbd .IsHuffmanEncoded {if _feeag =_fbbd .readHuffmanFlags ();_feeag !=nil {return _feeag ;};};if _feeag =_fbbd .readUseRefinement ();_feeag !=nil {return _feeag ;};if _feeag =_fbbd .readAmountOfSymbolInstances ();_feeag !=nil {return _feeag ;};if _feeag =_fbbd .getSymbols ();_feeag !=nil {return _feeag ;};if _feeag =_fbbd .computeSymbolCodeLength ();_feeag !=nil {return _feeag ;};if _feeag =_fbbd .checkInput ();_feeag !=nil {return _feeag ;};_fbg .Log .Trace ("\u0025\u0073",_fbbd .String ());return nil ;};func (_cfbg *TextRegion )decodeIds ()(int64 ,error ){const _cdef ="\u0064e\u0063\u006f\u0064\u0065\u0049\u0064s";if _cfbg .IsHuffmanEncoded {if _cfbg .SbHuffDS ==3{if _cfbg ._gbbcfg ==nil {_fgbc :=0;if _cfbg .SbHuffFS ==3{_fgbc ++;};var _ccac error ;_cfbg ._gbbcfg ,_ccac =_cfbg .getUserTable (_fgbc );if _ccac !=nil {return 0,_da .Wrap (_ccac ,_cdef ,"");};};return _cfbg ._gbbcfg .Decode (_cfbg ._afddfd );};_ggdb ,_caca :=_ca .GetStandardTable (8+int (_cfbg .SbHuffDS ));if _caca !=nil {return 0,_da .Wrap (_caca ,_cdef ,"");};return _ggdb .Decode (_cfbg ._afddfd );};_cfbd ,_ebcg :=_cfbg ._dgeb .DecodeInt (_cfbg ._bded );if _ebcg !=nil {return 0,_da .Wrap (_ebcg ,_cdef ,"\u0063\u0078\u0049\u0041\u0044\u0053");};return int64 (_cfbd ),nil ;};func (_bagge *SymbolDictionary )decodeThroughTextRegion (_baded ,_gfa ,_cad uint32 )error {if _bagge ._gaded ==nil {_bagge ._gaded =_cadg (_bagge ._cbdgf ,nil );_bagge ._gaded .setContexts (_bagge ._edef ,_fbc .NewStats (512,1),_fbc .NewStats (512,1),_fbc .NewStats (512,1),_fbc .NewStats (512,1),_bagge ._ceca ,_fbc .NewStats (512,1),_fbc .NewStats (512,1),_fbc .NewStats (512,1),_fbc .NewStats (512,1));};if _egcc :=_bagge .setSymbolsArray ();_egcc !=nil {return _egcc ;};_bagge ._gaded .setParameters (_bagge ._edff ,_bagge .IsHuffmanEncoded ,true ,_baded ,_gfa ,_cad ,1,_bagge ._feeb +_bagge ._bffbfb ,0,0,0,1,0,0,0,0,0,0,0,0,0,_bagge .SdrTemplate ,_bagge .SdrATX ,_bagge .SdrATY ,_bagge ._ecd ,_bagge ._gbed );return _bagge .addSymbol (_bagge ._gaded );};func (_dbc *template0 )form (_gff ,_gec ,_ebg ,_bfbc ,_egd int16 )int16 {return (_gff <<10)|(_gec <<7)|(_ebg <<4)|(_bfbc <<1)|_egd ;};func (_gbgfe *TextRegion )initSymbols ()error {const _ggcce ="i\u006e\u0069\u0074\u0053\u0079\u006d\u0062\u006f\u006c\u0073";for _ ,_dffga :=range _gbgfe .Header .RTSegments {if _dffga ==nil {return _da .Error (_ggcce ,"\u006e\u0069\u006c\u0020\u0073\u0065\u0067\u006de\u006e\u0074\u0020pr\u006f\u0076\u0069\u0064\u0065\u0064 \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0074\u0065\u0078\u0074\u0020\u0072\u0065g\u0069\u006f\u006e\u0020\u0053\u0079\u006d\u0062o\u006c\u0073");};if _dffga .Type ==0{_aceg ,_baef :=_dffga .GetSegmentData ();if _baef !=nil {return _da .Wrap (_baef ,_ggcce ,"");};_daab ,_efgb :=_aceg .(*SymbolDictionary );if !_efgb {return _da .Error (_ggcce ,"\u0072e\u0066\u0065r\u0072\u0065\u0064 \u0054\u006f\u0020\u0053\u0065\u0067\u006de\u006e\u0074\u0020\u0069\u0073\u0020n\u006f\u0074\u0020\u0061\u0020\u0053\u0079\u006d\u0062\u006f\u006cD\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_daab ._ceca =_gbgfe ._fdcc ;_fecbe ,_baef :=_daab .GetDictionary ();if _baef !=nil {return _da .Wrap (_baef ,_ggcce ,"");};_gbgfe .Symbols =append (_gbgfe .Symbols ,_fecbe ...);};};_gbgfe .NumberOfSymbols =uint32 (len (_gbgfe .Symbols ));return nil ;};func (_cfg *HalftoneRegion )GetRegionBitmap ()(*_gc .Bitmap ,error ){if _cfg .HalftoneRegionBitmap !=nil {return _cfg .HalftoneRegionBitmap ,nil ;};var _aab error ;_cfg .HalftoneRegionBitmap =_gc .New (int (_cfg .RegionSegment .BitmapWidth ),int (_cfg .RegionSegment .BitmapHeight ));if _cfg .Patterns ==nil ||len (_cfg .Patterns )==0{_cfg .Patterns ,_aab =_cfg .GetPatterns ();if _aab !=nil {return nil ,_aab ;};};if _cfg .HDefaultPixel ==1{_cfg .HalftoneRegionBitmap .SetDefaultPixel ();};_aabc :=_a .Ceil (_a .Log (float64 (len (_cfg .Patterns )))/_a .Log (2));_cccc :=int (_aabc );var _debf [][]int ;_debf ,_aab =_cfg .grayScaleDecoding (_cccc );if _aab !=nil {return nil ,_aab ;};if _aab =_cfg .renderPattern (_debf );_aab !=nil {return nil ,_aab ;};return _cfg .HalftoneRegionBitmap ,nil ;};func (_gef *TextRegion )decodeStripT ()(_gfcdd int64 ,_fccd error ){if _gef .IsHuffmanEncoded {if _gef .SbHuffDT ==3{if _gef ._acacd ==nil {var _begfa int ;if _gef .SbHuffFS ==3{_begfa ++;};if _gef .SbHuffDS ==3{_begfa ++;};_gef ._acacd ,_fccd =_gef .getUserTable (_begfa );if _fccd !=nil {return 0,_fccd ;};};_gfcdd ,_fccd =_gef ._acacd .Decode (_gef ._afddfd );if _fccd !=nil {return 0,_fccd ;};}else {var _gfdd _ca .Tabler ;_gfdd ,_fccd =_ca .GetStandardTable (11+int (_gef .SbHuffDT ));if _fccd !=nil {return 0,_fccd ;};_gfcdd ,_fccd =_gfdd .Decode (_gef ._afddfd );if _fccd !=nil {return 0,_fccd ;};};}else {var _adfa int32 ;_adfa ,_fccd =_gef ._dgeb .DecodeInt (_gef ._fddc );if _fccd !=nil {return 0,_fccd ;};_gfcdd =int64 (_adfa );};_gfcdd *=int64 (-_gef .SbStrips );return _gfcdd ,nil ;};func (_acg *SymbolDictionary )GetDictionary ()([]*_gc .Bitmap ,error ){_fbg .Log .Trace ("\u005b\u0053\u0059\u004d\u0042\u004f\u004c-\u0044\u0049\u0043T\u0049\u004f\u004e\u0041R\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0062\u0065\u0067\u0069\u006e\u0073\u002e\u002e\u002e");defer func (){_fbg .Log .Trace ("\u005b\u0053\u0059M\u0042\u004f\u004c\u002d\u0044\u0049\u0043\u0054\u0049\u004f\u004e\u0041\u0052\u0059\u005d\u0020\u0047\u0065\u0074\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0066\u0069\u006e\u0069\u0073\u0068\u0065\u0064");_fbg .Log .Trace ("\u005b\u0053Y\u004d\u0042\u004f\u004c\u002dD\u0049\u0043\u0054\u0049\u004fN\u0041\u0052\u0059\u005d\u0020\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0020\u000a\u0045\u0078\u003a\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u000a\u006e\u0065\u0077\u003a\u0027\u0025\u0073\u0027",_acg ._ffdf ,_acg ._dcbb );}();if _acg ._ffdf ==nil {var _cfeea error ;if _acg .UseRefinementAggregation {_acg ._gbed =_acg .getSbSymCodeLen ();};if !_acg .IsHuffmanEncoded {if _cfeea =_acg .setCodingStatistics ();_cfeea !=nil {return nil ,_cfeea ;};};_acg ._dcbb =make ([]*_gc .Bitmap ,_acg .NumberOfNewSymbols );var _cbdae []int ;if _acg .IsHuffmanEncoded &&!_acg .UseRefinementAggregation {_cbdae =make ([]int ,_acg .NumberOfNewSymbols );};if _cfeea =_acg .setSymbolsArray ();_cfeea !=nil {return nil ,_cfeea ;};var _dgab ,_dfcc int64 ;_acg ._bffbfb =0;for _acg ._bffbfb < _acg .NumberOfNewSymbols {_dfcc ,_cfeea =_acg .decodeHeightClassDeltaHeight ();if _cfeea !=nil {return nil ,_cfeea ;};_dgab +=_dfcc ;var _gdfc ,_ecfd uint32 ;_dcaab :=int64 (_acg ._bffbfb );for {var _fca int64 ;_fca ,_cfeea =_acg .decodeDifferenceWidth ();if _cd .Is (_cfeea ,_b .ErrOOB ){break ;};if _cfeea !=nil {return nil ,_cfeea ;};if _acg ._bffbfb >=_acg .NumberOfNewSymbols {break ;};_gdfc +=uint32 (_fca );_ecfd +=_gdfc ;if !_acg .IsHuffmanEncoded ||_acg .UseRefinementAggregation {if !_acg .UseRefinementAggregation {_cfeea =_acg .decodeDirectlyThroughGenericRegion (_gdfc ,uint32 (_dgab ));if _cfeea !=nil {return nil ,_cfeea ;};}else {_cfeea =_acg .decodeAggregate (_gdfc ,uint32 (_dgab ));if _cfeea !=nil {return nil ,_cfeea ;};};}else if _acg .IsHuffmanEncoded &&!_acg .UseRefinementAggregation {_cbdae [_acg ._bffbfb ]=int (_gdfc );};_acg ._bffbfb ++;};if _acg .IsHuffmanEncoded &&!_acg .UseRefinementAggregation {var _afced int64 ;if _acg .SdHuffBMSizeSelection ==0{var _fadb _ca .Tabler ;_fadb ,_cfeea =_ca .GetStandardTable (1);if _cfeea !=nil {return nil ,_cfeea ;};_afced ,_cfeea =_fadb .Decode (_acg ._cbdgf );if _cfeea !=nil {return nil ,_cfeea ;};}else {_afced ,_cfeea =_acg .huffDecodeBmSize ();if _cfeea !=nil {return nil ,_cfeea ;};};_acg ._cbdgf .Align ();var _fada *_gc .Bitmap ;_fada ,_cfeea =_acg .decodeHeightClassCollectiveBitmap (_afced ,uint32 (_dgab ),_ecfd );if _cfeea !=nil {return nil ,_cfeea ;};_cfeea =_acg .decodeHeightClassBitmap (_fada ,_dcaab ,int (_dgab ),_cbdae );if _cfeea !=nil {return nil ,_cfeea ;};};};_bffa ,_cfeea :=_acg .getToExportFlags ();if _cfeea !=nil {return nil ,_cfeea ;};_acg .setExportedSymbols (_bffa );};return _acg ._ffdf ,nil ;};func (_fcd *PatternDictionary )readIsMMREncoded ()error {_aaa ,_facc :=_fcd ._ddge .ReadBit ();if _facc !=nil {return _facc ;};if _aaa !=0{_fcd .IsMMREncoded =true ;};return nil ;};func (_cfec *PageInformationSegment )Encode (w _d .BinaryWriter )(_gbfa int ,_abdc error ){const _cfga ="\u0050\u0061g\u0065\u0049\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u002e\u0045\u006eco\u0064\u0065";_bgfd :=make ([]byte ,4);_g .BigEndian .PutUint32 (_bgfd ,uint32 (_cfec .PageBMWidth ));_gbfa ,_abdc =w .Write (_bgfd );if _abdc !=nil {return _gbfa ,_da .Wrap (_abdc ,_cfga ,"\u0077\u0069\u0064t\u0068");};_g .BigEndian .PutUint32 (_bgfd ,uint32 (_cfec .PageBMHeight ));var _abeb int ;_abeb ,_abdc =w .Write (_bgfd );if _abdc !=nil {return _abeb +_gbfa ,_da .Wrap (_abdc ,_cfga ,"\u0068\u0065\u0069\u0067\u0068\u0074");};_gbfa +=_abeb ;_g .BigEndian .PutUint32 (_bgfd ,uint32 (_cfec .ResolutionX ));_abeb ,_abdc =w .Write (_bgfd );if _abdc !=nil {return _abeb +_gbfa ,_da .Wrap (_abdc ,_cfga ,"\u0078\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_gbfa +=_abeb ;_g .BigEndian .PutUint32 (_bgfd ,uint32 (_cfec .ResolutionY ));if _abeb ,_abdc =w .Write (_bgfd );_abdc !=nil {return _abeb +_gbfa ,_da .Wrap (_abdc ,_cfga ,"\u0079\u0020\u0072e\u0073\u006f\u006c\u0075\u0074\u0069\u006f\u006e");};_gbfa +=_abeb ;if _abdc =_cfec .encodeFlags (w );_abdc !=nil {return _gbfa ,_da .Wrap (_abdc ,_cfga ,"");};_gbfa ++;if _abeb ,_abdc =_cfec .encodeStripingInformation (w );_abdc !=nil {return _gbfa ,_da .Wrap (_abdc ,_cfga ,"");};_gbfa +=_abeb ;return _gbfa ,nil ;};func (_fcfcc *PageInformationSegment )readCombinationOperatorOverrideAllowed ()error {_gcff ,_dbcb :=_fcfcc ._fgff .ReadBit ();if _dbcb !=nil {return _dbcb ;};if _gcff ==1{_fcfcc ._aede =true ;};return nil ;};func (_gfca *PageInformationSegment )readRequiresAuxiliaryBuffer ()error {_ggfa ,_dafba :=_gfca ._fgff .ReadBit ();if _dafba !=nil {return _dafba ;};if _ggfa ==1{_gfca ._fgea =true ;};return nil ;};type EndOfStripe struct{_gcc _d .StreamReader ;_af int ;};func (_gga *GenericRegion )parseHeader ()(_gdcb error ){_fbg .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052I\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e\u005d\u0020\u0050\u0061\u0072s\u0069\u006e\u0067\u0048\u0065\u0061\u0064e\u0072\u002e\u002e\u002e");defer func (){if _gdcb !=nil {_fbg .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049\u0043\u002d\u0052\u0045\u0047\u0049\u004f\u004e]\u0020\u0050\u0061\u0072\u0073\u0069\u006e\u0067\u0048\u0065\u0061\u0064\u0065r\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0077\u0069th\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020\u0025\u0076",_gdcb );}else {_fbg .Log .Trace ("\u005b\u0047\u0045\u004e\u0045\u0052\u0049C\u002d\u0052\u0045G\u0049\u004f\u004e]\u0020\u0050a\u0072\u0073\u0069\u006e\u0067\u0048e\u0061de\u0072\u0020\u0046\u0069\u006e\u0069\u0073\u0068\u0065\u0064\u0020\u0053\u0075\u0063\u0063\u0065\u0073\u0073\u0066\u0075\u006c\u006c\u0079\u002e\u002e\u002e");};}();var (_gaaa int ;_bagg uint64 ;);if _gdcb =_gga .RegionSegment .parseHeader ();_gdcb !=nil {return _gdcb ;};if _ ,_gdcb =_gga ._bca .ReadBits (3);_gdcb !=nil {return _gdcb ;};_gaaa ,_gdcb =_gga ._bca .ReadBit ();if _gdcb !=nil {return _gdcb ;};if _gaaa ==1{_gga .UseExtTemplates =true ;};_gaaa ,_gdcb =_gga ._bca .ReadBit ();if _gdcb !=nil {return _gdcb ;};if _gaaa ==1{_gga .IsTPGDon =true ;};_bagg ,_gdcb =_gga ._bca .ReadBits (2);if _gdcb !=nil {return _gdcb ;};_gga .GBTemplate =byte (_bagg &0xf);_gaaa ,_gdcb =_gga ._bca .ReadBit ();if _gdcb !=nil {return _gdcb ;};if _gaaa ==1{_gga .IsMMREncoded =true ;};if !_gga .IsMMREncoded {_bcd :=1;if _gga .GBTemplate ==0{_bcd =4;if _gga .UseExtTemplates {_bcd =12;};};if _gdcb =_gga .readGBAtPixels (_bcd );_gdcb !=nil {return _gdcb ;};};if _gdcb =_gga .computeSegmentDataStructure ();_gdcb !=nil {return _gdcb ;};_fbg .Log .Trace ("\u0025\u0073",_gga );return nil ;};func (_gfbde *TextRegion )Init (header *Header ,r _d .StreamReader )error {_gfbde .Header =header ;_gfbde ._afddfd =r ;_gfbde .RegionInfo =NewRegionSegment (_gfbde ._afddfd );return _gfbde .parseHeader ();};func (_cdcbf *Header )readSegmentPageAssociation (_gebg Documenter ,_afce _d .StreamReader ,_ddca uint64 ,_agae ...int )(_cdfe error ){const _ggec ="\u0072\u0065\u0061\u0064\u0053\u0065\u0067\u006d\u0065\u006e\u0074P\u0061\u0067\u0065\u0041\u0073\u0073\u006f\u0063\u0069\u0061t\u0069\u006f\u006e";if !_cdcbf .PageAssociationFieldSize {_ffbf ,_fdaf :=_afce .ReadBits (8);if _fdaf !=nil {return _da .Wrap (_fdaf ,_ggec ,"\u0073\u0068\u006fr\u0074\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_cdcbf .PageAssociation =int (_ffbf &0xFF);}else {_egfgd ,_faef :=_afce .ReadBits (32);if _faef !=nil {return _da .Wrap (_faef ,_ggec ,"l\u006f\u006e\u0067\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};_cdcbf .PageAssociation =int (_egfgd &_a .MaxInt32 );};if _ddca ==0{return nil ;};if _cdcbf .PageAssociation !=0{_acbb ,_cccdb :=_gebg .GetPage (_cdcbf .PageAssociation );if _cccdb !=nil {return _da .Wrap (_cccdb ,_ggec ,"\u0061s\u0073\u006f\u0063\u0069a\u0074\u0065\u0064\u0020\u0070a\u0067e\u0020n\u006f\u0074\u0020\u0066\u006f\u0075\u006ed");};var _ffa int ;for _bfdg :=uint64 (0);_bfdg < _ddca ;_bfdg ++{_ffa =_agae [_bfdg ];_cdcbf .RTSegments [_bfdg ],_cccdb =_acbb .GetSegment (_ffa );if _cccdb !=nil {var _eebb error ;_cdcbf .RTSegments [_bfdg ],_eebb =_gebg .GetGlobalSegment (_ffa );if _eebb !=nil {return _da .Wrapf (_cccdb ,_ggec ,"\u0072\u0065\u0066\u0065\u0072\u0065n\u0063\u0065\u0020s\u0065\u0067\u006de\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075n\u0064\u0020\u0061\u0074\u0020pa\u0067\u0065\u003a\u0020\u0027\u0025\u0064\u0027\u0020\u006e\u006f\u0072\u0020\u0069\u006e\u0020\u0067\u006c\u006f\u0062\u0061\u006c\u0073",_cdcbf .PageAssociation );};};};return nil ;};for _cdce :=uint64 (0);_cdce < _ddca ;_cdce ++{_cdcbf .RTSegments [_cdce ],_cdfe =_gebg .GetGlobalSegment (_agae [_cdce ]);if _cdfe !=nil {return _da .Wrapf (_cdfe ,_ggec ,"\u0067\u006c\u006f\u0062\u0061\u006c\u0020\u0073\u0065\u0067m\u0065\u006e\u0074\u003a\u0020\u0027\u0025d\u0027\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_agae [_cdce ]);};};return nil ;};func (_agf *Header )readSegmentDataLength (_fage _d .StreamReader )(_bede error ){_agf .SegmentDataLength ,_bede =_fage .ReadBits (32);if _bede !=nil {return _bede ;};_agf .SegmentDataLength &=_a .MaxInt32 ;return nil ;};func (_gebfc *TextRegion )setCodingStatistics ()error {if _gebfc ._fddc ==nil {_gebfc ._fddc =_fbc .NewStats (512,1);};if _gebfc ._ebde ==nil {_gebfc ._ebde =_fbc .NewStats (512,1);};if _gebfc ._bded ==nil {_gebfc ._bded =_fbc .NewStats (512,1);};if _gebfc ._adbfg ==nil {_gebfc ._adbfg =_fbc .NewStats (512,1);};if _gebfc ._adcf ==nil {_gebfc ._adcf =_fbc .NewStats (512,1);};if _gebfc ._gfdc ==nil {_gebfc ._gfdc =_fbc .NewStats (512,1);};if _gebfc ._egcb ==nil {_gebfc ._egcb =_fbc .NewStats (512,1);};if _gebfc ._fdcc ==nil {_gebfc ._fdcc =_fbc .NewStats (1<<uint (_gebfc ._affe ),1);};if _gebfc ._dbfb ==nil {_gebfc ._dbfb =_fbc .NewStats (512,1);};if _gebfc ._dfeb ==nil {_gebfc ._dfeb =_fbc .NewStats (512,1);};if _gebfc ._dgeb ==nil {var _gaff error ;_gebfc ._dgeb ,_gaff =_fbc .New (_gebfc ._afddfd );if _gaff !=nil {return _gaff ;};};return nil ;};func (_ebcc *SymbolDictionary )getSbSymCodeLen ()int8 {_gbgf :=int8 (_a .Ceil (_a .Log (float64 (_ebcc ._feeb +_ebcc .NumberOfNewSymbols ))/_a .Log (2)));if _ebcc .IsHuffmanEncoded &&_gbgf < 1{return 1;};return _gbgf ;};func (_feg *HalftoneRegion )computeGrayScalePlanes (_begf []*_gc .Bitmap ,_cecg int )([][]int ,error ){_gceba :=make ([][]int ,_feg .HGridHeight );for _fgga :=0;_fgga < len (_gceba );_fgga ++{_gceba [_fgga ]=make ([]int ,_feg .HGridWidth );};for _cdd :=0;_cdd < int (_feg .HGridHeight );_cdd ++{for _bbc :=0;_bbc < int (_feg .HGridWidth );_bbc +=8{var _dgcb int ;if _aae :=int (_feg .HGridWidth )-_bbc ;_aae > 8{_dgcb =8;}else {_dgcb =_aae ;};_ccfd :=_begf [0].GetByteIndex (_bbc ,_cdd );for _ceffd :=0;_ceffd < _dgcb ;_ceffd ++{_dadg :=_ceffd +_bbc ;_gceba [_cdd ][_dadg ]=0;for _cbda :=0;_cbda < _cecg ;_cbda ++{_daefb ,_edc :=_begf [_cbda ].GetByte (_ccfd );if _edc !=nil {return nil ,_edc ;};_aeae :=_daefb >>uint (7-_dadg &7);_edda :=_aeae &1;_addg :=1<<uint (_cbda );_cfdc :=int (_edda )*_addg ;_gceba [_cdd ][_dadg ]+=_cfdc ;};};};};return _gceba ,nil ;};type Type int ;func _effd (_cfac int )int {if _cfac ==0{return 0;};_cfac |=_cfac >>1;_cfac |=_cfac >>2;_cfac |=_cfac >>4;_cfac |=_cfac >>8;_cfac |=_cfac >>16;return (_cfac +1)>>1;};func (_gb *GenericRefinementRegion )GetRegionInfo ()*RegionSegment {return _gb .RegionInfo };func (_bbb *TableSegment )StreamReader ()_d .StreamReader {return _bbb ._eefd };func NewRegionSegment (r _d .StreamReader )*RegionSegment {return &RegionSegment {_geac :r }};func (_dfcg *PatternDictionary )readPatternWidthAndHeight ()error {_gdfa ,_cdea :=_dfcg ._ddge .ReadByte ();if _cdea !=nil {return _cdea ;};_dfcg .HdpWidth =_gdfa ;_gdfa ,_cdea =_dfcg ._ddge .ReadByte ();if _cdea !=nil {return _cdea ;};_dfcg .HdpHeight =_gdfa ;return nil ;};func (_ccf *GenericRegion )GetRegionBitmap ()(_edg *_gc .Bitmap ,_ccbe error ){if _ccf .Bitmap !=nil {return _ccf .Bitmap ,nil ;};if _ccf .IsMMREncoded {if _ccf ._bfc ==nil {_ccf ._bfc ,_ccbe =_eg .New (_ccf ._bca ,int (_ccf .RegionSegment .BitmapWidth ),int (_ccf .RegionSegment .BitmapHeight ),_ccf .DataOffset ,_ccf .DataLength );if _ccbe !=nil {return nil ,_ccbe ;};};_ccf .Bitmap ,_ccbe =_ccf ._bfc .UncompressMMR ();return _ccf .Bitmap ,_ccbe ;};if _ccbe =_ccf .updateOverrideFlags ();_ccbe !=nil {return nil ,_ccbe ;};var _gbe int ;if _ccf ._ffb ==nil {_ccf ._ffb ,_ccbe =_fbc .New (_ccf ._bca );if _ccbe !=nil {return nil ,_ccbe ;};};if _ccf ._cab ==nil {_ccf ._cab =_fbc .NewStats (65536,1);};_ccf .Bitmap =_gc .New (int (_ccf .RegionSegment .BitmapWidth ),int (_ccf .RegionSegment .BitmapHeight ));_cbc :=int (uint32 (_ccf .Bitmap .Width +7)&(^uint32 (7)));for _fbd :=0;_fbd < _ccf .Bitmap .Height ;_fbd ++{if _ccf .IsTPGDon {var _badc int ;_badc ,_ccbe =_ccf .decodeSLTP ();if _ccbe !=nil {return nil ,_ccbe ;};_gbe ^=_badc ;};if _gbe ==1{if _fbd > 0{if _ccbe =_ccf .copyLineAbove (_fbd );_ccbe !=nil {return nil ,_ccbe ;};};}else {if _ccbe =_ccf .decodeLine (_fbd ,_ccf .Bitmap .Width ,_cbc );_ccbe !=nil {return nil ,_ccbe ;};};};return _ccf .Bitmap ,nil ;};func (_fccbg *Header )writeSegmentPageAssociation (_acfc _d .BinaryWriter )(_dfgg int ,_eebd error ){const _age ="w\u0072\u0069\u0074\u0065\u0053\u0065g\u006d\u0065\u006e\u0074\u0050\u0061\u0067\u0065\u0041s\u0073\u006f\u0063i\u0061t\u0069\u006f\u006e";if _fccbg .pageSize ()!=4{if _eebd =_acfc .WriteByte (byte (_fccbg .PageAssociation ));_eebd !=nil {return 0,_da .Wrap (_eebd ,_age ,"\u0070\u0061\u0067\u0065\u0053\u0069\u007a\u0065\u0020\u0021\u003d\u0020\u0034");};return 1,nil ;};_bdfgg :=make ([]byte ,4);_g .BigEndian .PutUint32 (_bdfgg ,uint32 (_fccbg .PageAssociation ));if _dfgg ,_eebd =_acfc .Write (_bdfgg );_eebd !=nil {return 0,_da .Wrap (_eebd ,_age ,"\u0034 \u0062y\u0074\u0065\u0020\u0070\u0061g\u0065\u0020n\u0075\u006d\u0062\u0065\u0072");};return _dfgg ,nil ;};type Documenter interface{GetPage (int )(Pager ,error );GetGlobalSegment (int )(*Header ,error );};func (_geb *GenericRegion )setParameters (_beb bool ,_ecc ,_egfg int64 ,_bfbb ,_bebc uint32 ){_geb .IsMMREncoded =_beb ;_geb .DataOffset =_ecc ;_geb .DataLength =_egfg ;_geb .RegionSegment .BitmapHeight =_bfbb ;_geb .RegionSegment .BitmapWidth =_bebc ;_geb ._bfc =nil ;_geb .Bitmap =nil ;};func (_ebba *SymbolDictionary )Encode (w _d .BinaryWriter )(_abca int ,_eeab error ){const _dga ="\u0053\u0079\u006dbo\u006c\u0044\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u002e\u0045\u006e\u0063\u006f\u0064\u0065";if _ebba ==nil {return 0,_da .Error (_dga ,"\u0073\u0079m\u0062\u006f\u006c\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0064\u0065\u0066in\u0065\u0064");};if _abca ,_eeab =_ebba .encodeFlags (w );_eeab !=nil {return _abca ,_da .Wrap (_eeab ,_dga ,"");};_gdae ,_eeab :=_ebba .encodeATFlags (w );if _eeab !=nil {return _abca ,_da .Wrap (_eeab ,_dga ,"");};_abca +=_gdae ;if _gdae ,_eeab =_ebba .encodeRefinementATFlags (w );_eeab !=nil {return _abca ,_da .Wrap (_eeab ,_dga ,"");};_abca +=_gdae ;if _gdae ,_eeab =_ebba .encodeNumSyms (w );_eeab !=nil {return _abca ,_da .Wrap (_eeab ,_dga ,"");};_abca +=_gdae ;if _gdae ,_eeab =_ebba .encodeSymbols (w );_eeab !=nil {return _abca ,_da .Wrap (_eeab ,_dga ,"");};_abca +=_gdae ;return _abca ,nil ;};type PageInformationSegment struct{_fgff _d .StreamReader ;PageBMHeight int ;PageBMWidth int ;ResolutionX int ;ResolutionY int ;_aede bool ;_eafa _gc .CombinationOperator ;_fgea bool ;_fafd uint8 ;_cdg bool ;IsLossless bool ;IsStripe bool ;MaxStripeSize uint16 ;};func (_cff *GenericRegion )copyLineAbove (_ggad int )error {_def :=_ggad *_cff .Bitmap .RowStride ;_adga :=_def -_cff .Bitmap .RowStride ;for _ffec :=0;_ffec < _cff .Bitmap .RowStride ;_ffec ++{_acf ,_dag :=_cff .Bitmap .GetByte (_adga );if _dag !=nil {return _dag ;};_adga ++;if _dag =_cff .Bitmap .SetByte (_def ,_acf );_dag !=nil {return _dag ;};_def ++;};return nil ;};func (_efcc Type )String ()string {switch _efcc {case TSymbolDictionary :return "\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0044\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079";case TIntermediateTextRegion :return "\u0049n\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020T\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateTextRegion :return "I\u006d\u006d\u0065\u0064ia\u0074e\u0020\u0054\u0065\u0078\u0074 \u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateLosslessTextRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020L\u006f\u0073\u0073\u006c\u0065\u0073\u0073 \u0054\u0065\u0078\u0074\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TPatternDictionary :return "\u0050a\u0074t\u0065\u0072\u006e\u0020\u0044i\u0063\u0074i\u006f\u006e\u0061\u0072\u0079";case TIntermediateHalftoneRegion :return "\u0049\u006e\u0074\u0065r\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0048\u0061l\u0066t\u006f\u006e\u0065\u0020\u0052\u0065\u0067i\u006f\u006e";case TImmediateHalftoneRegion :return "\u0049m\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u0048\u0061l\u0066t\u006fn\u0065\u0020\u0052\u0065\u0067\u0069\u006fn";case TImmediateLosslessHalftoneRegion :return "\u0049\u006d\u006ded\u0069\u0061\u0074\u0065\u0020\u004c\u006f\u0073\u0073l\u0065s\u0073 \u0048a\u006c\u0066\u0074\u006f\u006e\u0065\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TIntermediateGenericRegion :return "I\u006e\u0074\u0065\u0072\u006d\u0065d\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020R\u0065g\u0069\u006f\u006e";case TImmediateGenericRegion :return "\u0049m\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006ee\u0072\u0069\u0063\u0020\u0052\u0065\u0067\u0069\u006f\u006e";case TImmediateLosslessGenericRegion :return "\u0049\u006d\u006d\u0065\u0064\u0069a\u0074\u0065\u0020\u004c\u006f\u0073\u0073\u006c\u0065\u0073\u0073\u0020\u0047e\u006e\u0065\u0072\u0069\u0063\u0020\u0052e\u0067\u0069\u006f\u006e";case TIntermediateGenericRefinementRegion :return "\u0049\u006e\u0074\u0065\u0072\u006d\u0065\u0064\u0069\u0061\u0074\u0065\u0020\u0047\u0065\u006e\u0065\u0072\u0069\u0063\u0020\u0052\u0065\u0066i\u006e\u0065\u006d\u0065\u006et\u0020\u0052e\u0067\u0069\u006f\u006e";case TImmediateGenericRefinementRegion :return "I\u006d\u006d\u0065\u0064\u0069\u0061t\u0065\u0020\u0047\u0065\u006e\u0065r\u0069\u0063\u0020\u0052\u0065\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020\u0052\u0065\u0067\u0069o\u006e";case TImmediateLosslessGenericRefinementRegion :return "\u0049m\u006d\u0065d\u0069\u0061\u0074\u0065 \u004c\u006f\u0073s\u006c\u0065\u0073\u0073\u0020\u0047\u0065\u006e\u0065ri\u0063\u0020\u0052e\u0066\u0069n\u0065\u006d\u0065\u006e\u0074\u0020R\u0065\u0067i\u006f\u006e";case TPageInformation :return "\u0050\u0061g\u0065\u0020\u0049n\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e";case TEndOfPage :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0050\u0061\u0067\u0065";case TEndOfStrip :return "\u0045\u006e\u0064 \u004f\u0066\u0020\u0053\u0074\u0072\u0069\u0070";case TEndOfFile :return "E\u006e\u0064\u0020\u004f\u0066\u0020\u0046\u0069\u006c\u0065";case TProfiles :return "\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0073";case TTables :return "\u0054\u0061\u0062\u006c\u0065\u0073";case TExtension :return "\u0045x\u0074\u0065\u006e\u0073\u0069\u006fn";case TBitmap :return "\u0042\u0069\u0074\u006d\u0061\u0070";};return "I\u006ev\u0061\u006c\u0069\u0064\u0020\u0053\u0065\u0067m\u0065\u006e\u0074\u0020Ki\u006e\u0064";};func (_ggge *GenericRegion )decodeTemplate0a (_feea ,_fdc ,_dgf int ,_cca ,_gac int )(_eff error ){const _dfe ="\u0064\u0065c\u006f\u0064\u0065T\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0030\u0061";var (_gbfgf ,_cgf int ;_ccgc ,_aca int ;_gddg byte ;_ebeee int ;);if _feea >=1{_gddg ,_eff =_ggge .Bitmap .GetByte (_gac );if _eff !=nil {return _da .Wrap (_eff ,_dfe ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00201");};_ccgc =int (_gddg );};if _feea >=2{_gddg ,_eff =_ggge .Bitmap .GetByte (_gac -_ggge .Bitmap .RowStride );if _eff !=nil {return _da .Wrap (_eff ,_dfe ,"\u006ci\u006e\u0065\u0020\u003e\u003d\u00202");};_aca =int (_gddg )<<6;};_gbfgf =(_ccgc &0xf0)|(_aca &0x3800);for _fgg :=0;_fgg < _dgf ;_fgg =_ebeee {var (_bbf byte ;_gag int ;);_ebeee =_fgg +8;if _cgbc :=_fdc -_fgg ;_cgbc > 8{_gag =8;}else {_gag =_cgbc ;};if _feea > 0{_ccgc <<=8;if _ebeee < _fdc {_gddg ,_eff =_ggge .Bitmap .GetByte (_gac +1);if _eff !=nil {return _da .Wrap (_eff ,_dfe ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0030");};_ccgc |=int (_gddg );};};if _feea > 1{_efec :=_gac -_ggge .Bitmap .RowStride +1;_aca <<=8;if _ebeee < _fdc {_gddg ,_eff =_ggge .Bitmap .GetByte (_efec );if _eff !=nil {return _da .Wrap (_eff ,_dfe ,"\u006c\u0069\u006e\u0065\u0020\u003e\u0020\u0031");};_aca |=int (_gddg )<<6;}else {_aca |=0;};};for _abba :=0;_abba < _gag ;_abba ++{_dcg :=uint (7-_abba );if _ggge ._fee {_cgf =_ggge .overrideAtTemplate0a (_gbfgf ,_fgg +_abba ,_feea ,int (_bbf ),_abba ,int (_dcg ));_ggge ._cab .SetIndex (int32 (_cgf ));}else {_ggge ._cab .SetIndex (int32 (_gbfgf ));};var _deg int ;_deg ,_eff =_ggge ._ffb .DecodeBit (_ggge ._cab );if _eff !=nil {return _da .Wrap (_eff ,_dfe ,"");};_bbf |=byte (_deg )<<_dcg ;_gbfgf =((_gbfgf &0x7bf7)<<1)|_deg |((_ccgc >>_dcg )&0x10)|((_aca >>_dcg )&0x800);};if _caad :=_ggge .Bitmap .SetByte (_cca ,_bbf );_caad !=nil {return _da .Wrap (_caad ,_dfe ,"");};_cca ++;_gac ++;};return nil ;};func (_gbff *SymbolDictionary )decodeNewSymbols (_eccd ,_fdb uint32 ,_gebf *_gc .Bitmap ,_agafe ,_ebdcf int32 )error {if _gbff ._baec ==nil {_gbff ._baec =_cef (_gbff ._cbdgf ,nil );if _gbff ._edff ==nil {var _dddg error ;_gbff ._edff ,_dddg =_fbc .New (_gbff ._cbdgf );if _dddg !=nil {return _dddg ;};};if _gbff ._edef ==nil {_gbff ._edef =_fbc .NewStats (65536,1);};};_gbff ._baec .setParameters (_gbff ._edef ,_gbff ._edff ,_gbff .SdrTemplate ,_eccd ,_fdb ,_gebf ,_agafe ,_ebdcf ,false ,_gbff .SdrATX ,_gbff .SdrATY );return _gbff .addSymbol (_gbff ._baec );};type template1 struct{};func (_bad *template1 )form (_fgb ,_eefa ,_cagb ,_dff ,_acd int16 )int16 {return ((_fgb &0x02)<<8)|(_eefa <<6)|((_cagb &0x03)<<4)|(_dff <<1)|_acd ;};