mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-27 13:48:51 +08:00
12 lines
40 KiB
Go
12 lines
40 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 cmap ;import (_e "bufio";_dec "bytes";_f "encoding/hex";_bd "errors";_c "fmt";_dc "github.com/unidoc/unipdf/v3/common";_bf "github.com/unidoc/unipdf/v3/core";_db "github.com/unidoc/unipdf/v3/internal/cmap/bcmaps";_bg "io";_ca "sort";_b "strconv";_g "strings";_de "unicode/utf16";);func (cmap *CMap )Type ()int {return cmap ._ff };type charRange struct{_ef CharCode ;_gb CharCode ;};func (cmap *CMap )parseType ()error {_gdb :=0;_daea :=false ;for _fba :=0;_fba < 3&&!_daea ;_fba ++{_dba ,_decd :=cmap .parseObject ();if _decd !=nil {return _decd ;};switch _ffc :=_dba .(type ){case cmapOperand :switch _ffc .Operand {case "\u0064\u0065\u0066":_daea =true ;default:_dc .Log .Error ("\u0070\u0061r\u0073\u0065\u0054\u0079\u0070\u0065\u003a\u0020\u0073\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020\u006f=%\u0023\u0076",_dba );return ErrBadCMap ;};case cmapInt :_gdb =int (_ffc ._dfd );};};cmap ._ff =_gdb ;return nil ;};type cmapDict struct{Dict map[string ]cmapObject ;};func (_bdgd *cMapParser )parseDict ()(cmapDict ,error ){_dc .Log .Trace ("\u0052\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u0050\u0044\u0046\u0020D\u0069\u0063\u0074\u0021");_accc :=_eccd ();_ddf ,_ :=_bdgd ._bdede .ReadByte ();if _ddf !='<'{return _accc ,ErrBadCMapDict ;};_ddf ,_ =_bdgd ._bdede .ReadByte ();if _ddf !='<'{return _accc ,ErrBadCMapDict ;};for {_bdgd .skipSpaces ();_ddbe ,_eecf :=_bdgd ._bdede .Peek (2);if _eecf !=nil {return _accc ,_eecf ;};if (_ddbe [0]=='>')&&(_ddbe [1]=='>'){_bdgd ._bdede .ReadByte ();_bdgd ._bdede .ReadByte ();break ;};_cdd ,_eecf :=_bdgd .parseName ();_dc .Log .Trace ("\u004be\u0079\u003a\u0020\u0025\u0073",_cdd .Name );if _eecf !=nil {_dc .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0052\u0065\u0074\u0075\u0072\u006e\u0069\u006e\u0067\u0020\u006e\u0061\u006d\u0065\u002e\u0020\u0065\u0072r=\u0025\u0076",_eecf );return _accc ,_eecf ;};_bdgd .skipSpaces ();_afcg ,_eecf :=_bdgd .parseObject ();if _eecf !=nil {return _accc ,_eecf ;};_accc .Dict [_cdd .Name ]=_afcg ;_bdgd .skipSpaces ();_ddbe ,_eecf =_bdgd ._bdede .Peek (3);if _eecf !=nil {return _accc ,_eecf ;};if string (_ddbe )=="\u0064\u0065\u0066"{_bdgd ._bdede .Discard (3);};};return _accc ,nil ;};func (_bdec *cMapParser )parseObject ()(cmapObject ,error ){_bdec .skipSpaces ();for {_efd ,_afd :=_bdec ._bdede .Peek (2);if _afd !=nil {return nil ,_afd ;};if _efd [0]=='%'{_bdec .parseComment ();_bdec .skipSpaces ();continue ;}else if _efd [0]=='/'{_gdc ,_gde :=_bdec .parseName ();return _gdc ,_gde ;}else if _efd [0]=='('{_decf ,_abd :=_bdec .parseString ();return _decf ,_abd ;}else if _efd [0]=='['{_eegc ,_bbg :=_bdec .parseArray ();return _eegc ,_bbg ;}else if (_efd [0]=='<')&&(_efd [1]=='<'){_gfdd ,_dbg :=_bdec .parseDict ();return _gfdd ,_dbg ;}else if _efd [0]=='<'{_eece ,_ged :=_bdec .parseHexString ();return _eece ,_ged ;}else if _bf .IsDecimalDigit (_efd [0])||(_efd [0]=='-'&&_bf .IsDecimalDigit (_efd [1])){_dee ,_afb :=_bdec .parseNumber ();if _afb !=nil {return nil ,_afb ;};return _dee ,nil ;}else {_bdgb ,_gae :=_bdec .parseOperand ();if _gae !=nil {return nil ,_gae ;};return _bdgb ,nil ;};};};type cmapArray struct{Array []cmapObject ;};func (cmap *CMap )BytesToCharcodes (data []byte )([]CharCode ,bool ){var _aab []CharCode ;if cmap ._dae ==8{for _ ,_ccf :=range data {_aab =append (_aab ,CharCode (_ccf ));};return _aab ,true ;};for _deb :=0;_deb < len (data );{_bca ,_eccf ,_acf :=cmap .matchCode (data [_deb :]);if !_acf {_dc .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0020\u006d\u0061\u0074\u0063\u0068\u0020\u0061\u0074\u0020\u0069\u003d\u0025\u0064\u0020\u0062\u0079\u0074\u0065\u0073\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d\u003d\u0025\u0023\u0071",_deb ,data ,string (data ));return _aab ,false ;};_aab =append (_aab ,_bca );_deb +=_eccf ;};return _aab ,true ;};type CMap struct{*cMapParser ;_bc string ;_dae int ;_ff int ;_ffg string ;_cae string ;_ee CIDSystemInfo ;_bdg []Codespace ;_fe map[CharCode ]CharCode ;_cg map[CharCode ]CharCode ;_cbc map[CharCode ]string ;_gf map[string ]CharCode ;_af []byte ;_ag *_bf .PdfObjectStream ;};func (cmap *CMap )CharcodeToUnicode (code CharCode )(string ,bool ){if _ed ,_bae :=cmap ._cbc [code ];_bae {return _ed ,true ;};return MissingCodeString ,false ;};var (ErrBadCMap =_bd .New ("\u0062\u0061\u0064\u0020\u0063\u006d\u0061\u0070");ErrBadCMapComment =_bd .New ("c\u006f\u006d\u006d\u0065\u006e\u0074 \u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0073\u0074a\u0072\u0074\u0020w\u0069t\u0068\u0020\u0025");ErrBadCMapDict =_bd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0069\u0063\u0074"););func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )};func LoadPredefinedCMap (name string )(*CMap ,error ){cmap ,_fd :=_egdc (name );if _fd !=nil {return nil ,_fd ;};if cmap ._cae ==""{cmap .computeInverseMappings ();return cmap ,nil ;};_bcc ,_fd :=_egdc (cmap ._cae );if _fd !=nil {return nil ,_fd ;};for _aa ,_cab :=range _bcc ._fe {if _ ,_eec :=cmap ._fe [_aa ];!_eec {cmap ._fe [_aa ]=_cab ;};};for _ ,_def :=range _bcc ._bdg {cmap ._bdg =append (cmap ._bdg ,_def );};cmap .computeInverseMappings ();return cmap ,nil ;};func (cmap *CMap )toBfData ()string {if len (cmap ._cbc )==0{return "";};_fcd :=make ([]CharCode ,0,len (cmap ._cbc ));for _bb :=range cmap ._cbc {_fcd =append (_fcd ,_bb );};_ca .Slice (_fcd ,func (_dfb ,_bda int )bool {return _fcd [_dfb ]< _fcd [_bda ]});var _fde []charRange ;_dde :=charRange {_fcd [0],_fcd [0]};_dff :=cmap ._cbc [_fcd [0]];for _ ,_egbd :=range _fcd [1:]{_cadd :=cmap ._cbc [_egbd ];if _egbd ==_dde ._gb +1&&_bbc (_cadd )==_bbc (_dff )+1{_dde ._gb =_egbd ;}else {_fde =append (_fde ,_dde );_dde ._ef ,_dde ._gb =_egbd ,_egbd ;};_dff =_cadd ;};_fde =append (_fde ,_dde );var _agb []CharCode ;var _abf []fbRange ;for _ ,_agg :=range _fde {if _agg ._ef ==_agg ._gb {_agb =append (_agb ,_agg ._ef );}else {_abf =append (_abf ,fbRange {_a :_agg ._ef ,_gbe :_agg ._gb ,_dcd :cmap ._cbc [_agg ._ef ]});};};_dc .Log .Trace ("\u0063\u0068ar\u0052\u0061\u006eg\u0065\u0073\u003d\u0025d f\u0062Ch\u0061\u0072\u0073\u003d\u0025\u0064\u0020fb\u0052\u0061\u006e\u0067\u0065\u0073\u003d%\u0064",len (_fde ),len (_agb ),len (_abf ));var _acfa []string ;if len (_agb )> 0{_eefe :=(len (_agb )+_ggb -1)/_ggb ;for _bcda :=0;_bcda < _eefe ;_bcda ++{_ddeg :=_efb (len (_agb )-_bcda *_ggb ,_ggb );_acfa =append (_acfa ,_c .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_ddeg ));for _caf :=0;_caf < _ddeg ;_caf ++{_adg :=_agb [_bcda *_ggb +_caf ];_ffb :=cmap ._cbc [_adg ];_acfa =append (_acfa ,_c .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_adg ,_bdd (_ffb )));};_acfa =append (_acfa ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r");};};if len (_abf )> 0{_ccee :=(len (_abf )+_ggb -1)/_ggb ;for _ea :=0;_ea < _ccee ;_ea ++{_bcb :=_efb (len (_abf )-_ea *_ggb ,_ggb );_acfa =append (_acfa ,_c .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_bcb ));for _ebed :=0;_ebed < _bcb ;_ebed ++{_cdg :=_abf [_ea *_ggb +_ebed ];_acfa =append (_acfa ,_c .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_cdg ._a ,_cdg ._gbe ,_bdd (_cdg ._dcd )));};_acfa =append (_acfa ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065");};};return _g .Join (_acfa ,"\u000a");};func _egdc (_ccc string )(*CMap ,error ){_dgd ,_dcb :=_db .Asset (_ccc );if _dcb !=nil {return nil ,_dcb ;};return LoadCmapFromDataCID (_dgd );};func (cmap *CMap )CIDToCharcode (cid CharCode )(CharCode ,bool ){_bgc ,_ecd :=cmap ._cg [cid ];return _bgc ,_ecd ;};type cmapOperand struct{Operand string ;};func (_geae *cMapParser )parseOperand ()(cmapOperand ,error ){_faeb :=cmapOperand {};_gab :=_dec .Buffer {};for {_bfac ,_cfb :=_geae ._bdede .Peek (1);if _cfb !=nil {if _cfb ==_bg .EOF {break ;};return _faeb ,_cfb ;};if _bf .IsDelimiter (_bfac [0]){break ;};if _bf .IsWhiteSpace (_bfac [0]){break ;};_ggac ,_ :=_geae ._bdede .ReadByte ();_gab .WriteByte (_ggac );};if _gab .Len ()==0{return _faeb ,_c .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u006f\u0070\u0065\u0072\u0061\u006e\u0064\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029");};_faeb .Operand =_gab .String ();return _faeb ,nil ;};func LoadCmapFromData (data []byte ,isSimple bool )(*CMap ,error ){_dc .Log .Trace ("\u004c\u006fa\u0064\u0043\u006d\u0061\u0070\u0046\u0072\u006f\u006d\u0044\u0061\u0074\u0061\u003a\u0020\u0069\u0073\u0053\u0069\u006d\u0070\u006ce=\u0025\u0074",isSimple );cmap :=_ebf (isSimple );cmap .cMapParser =_eccbe (data );_egd :=cmap .parse ();if _egd !=nil {return nil ,_egd ;};if len (cmap ._bdg )==0{if cmap ._cae !=""{return cmap ,nil ;};_dc .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u002e\u0020\u0063\u006d\u0061p=\u0025\u0073",cmap );return nil ,ErrBadCMap ;};cmap .computeInverseMappings ();return cmap ,nil ;};func (cmap *CMap )parseName ()error {_bdb :="";_bba :=false ;for _bddb :=0;_bddb < 20&&!_bba ;_bddb ++{_cfe ,_gbd :=cmap .parseObject ();if _gbd !=nil {return _gbd ;};switch _egbg :=_cfe .(type ){case cmapOperand :switch _egbg .Operand {case "\u0064\u0065\u0066":_bba =true ;default:_dc .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a\u0020\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020o\u003d\u0025\u0023\u0076\u0020n\u0061\u006de\u003d\u0025\u0023\u0071",_cfe ,_bdb );if _bdb !=""{_bdb =_c .Sprintf ("\u0025\u0073\u0020%\u0073",_bdb ,_egbg .Operand );};_dc .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a \u0052\u0065\u0063\u006f\u0076\u0065\u0072e\u0064\u002e\u0020\u006e\u0061\u006d\u0065\u003d\u0025\u0023\u0071",_bdb );};case cmapName :_bdb =_egbg .Name ;};};if !_bba {_dc .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._bc =_bdb ;return nil ;};func (cmap *CMap )parseBfchar ()error {for {_acc ,_cdfe :=cmap .parseObject ();if _cdfe !=nil {if _cdfe ==_bg .EOF {break ;};return _cdfe ;};var _bded CharCode ;switch _adgf :=_acc .(type ){case cmapOperand :if _adgf .Operand ==_bfea {return nil ;};return _bd .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_bded =_cged (_adgf );default:return _bd .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};_acc ,_cdfe =cmap .parseObject ();if _cdfe !=nil {if _cdfe ==_bg .EOF {break ;};return _cdfe ;};var _cfab []rune ;switch _dfge :=_acc .(type ){case cmapOperand :if _dfge .Operand ==_bfea {return nil ;};_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020o\u0070\u0065\u0072\u0061\u006e\u0064\u002e\u0020\u0025\u0023\u0076",_dfge );return ErrBadCMap ;case cmapHexString :_cfab =_beae (_dfge );case cmapName :_dc .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u006e\u0061\u006de\u002e \u0025\u0023\u0076",_dfge );_cfab =[]rune {MissingCodeRune };default:_dc .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064 \u0074\u0079\u0070e\u002e \u0025\u0023\u0076",_acc );return ErrBadCMap ;};cmap ._cbc [_bded ]=string (_cfab );};return nil ;};func (cmap *CMap )parseCIDRange ()error {for {_ada ,_gca :=cmap .parseObject ();if _gca !=nil {if _gca ==_bg .EOF {break ;};return _gca ;};_bcdc ,_dffa :=_ada .(cmapHexString );if !_dffa {if _gfc ,_gaag :=_ada .(cmapOperand );_gaag {if _gfc .Operand ==_eccb {return nil ;};return _bd .New ("\u0063\u0069\u0064\u0020\u0069\u006e\u0074\u0065\u0072\u0076\u0061\u006c\u0020s\u0074\u0061\u0072\u0074\u0020\u006du\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u0020\u0068\u0065\u0078\u0020\u0073t\u0072\u0069\u006e\u0067");};};_aga :=_cged (_bcdc );_ada ,_gca =cmap .parseObject ();if _gca !=nil {if _gca ==_bg .EOF {break ;};return _gca ;};_bceg ,_dffa :=_ada .(cmapHexString );if !_dffa {return _bd .New ("\u0063\u0069d\u0020\u0069\u006e\u0074e\u0072\u0076a\u006c\u0020\u0065\u006e\u0064\u0020\u006d\u0075s\u0074\u0020\u0062\u0065\u0020\u0061\u0020\u0068\u0065\u0078\u0020\u0073t\u0072\u0069\u006e\u0067");};if len (_bcdc ._geeb )!=len (_bceg ._geeb ){return _bd .New ("\u0075\u006e\u0065\u0071\u0075\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0062\u0079\u0074\u0065\u0073\u0020\u0069\u006e\u0020\u0072\u0061\u006e\u0067\u0065");};_ccdd :=_cged (_bceg );if _aga > _ccdd {_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0049\u0044\u0020\u0072\u0061\u006e\u0067\u0065\u002e\u0020\u0073t\u0061\u0072\u0074\u003d\u0030\u0078\u0025\u0030\u0032\u0078\u0020\u0065\u006e\u0064=\u0030x\u0025\u0030\u0032\u0078",_aga ,_ccdd );return ErrBadCMap ;};_ada ,_gca =cmap .parseObject ();if _gca !=nil {if _gca ==_bg .EOF {break ;};return _gca ;};_cdce ,_dffa :=_ada .(cmapInt );if !_dffa {return _bd .New ("\u0063\u0069\u0064\u0020\u0073t\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0064\u0065\u0063\u0069\u006d\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072");};if _cdce ._dfd < 0{return _bd .New ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0063\u0069\u0064\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065");};_ebc :=_cdce ._dfd ;for _bab :=_aga ;_bab <=_ccdd ;_bab ++{cmap ._fe [_bab ]=CharCode (_ebc );_ebc ++;};_dc .Log .Trace ("C\u0049\u0044\u0020\u0072\u0061\u006eg\u0065\u003a\u0020\u003c\u0030\u0078\u0025\u0058\u003e \u003c\u0030\u0078%\u0058>\u0020\u0025\u0064",_aga ,_ccdd ,_cdce ._dfd );};return nil ;};func (cmap *CMap )parseCodespaceRange ()error {for {_dgg ,_cdf :=cmap .parseObject ();if _cdf !=nil {if _cdf ==_bg .EOF {break ;};return _cdf ;};_ccd ,_fdb :=_dgg .(cmapHexString );if !_fdb {if _baeg ,_age :=_dgg .(cmapOperand );_age {if _baeg .Operand ==_fcc {return nil ;};return _bd .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");};};_dgg ,_cdf =cmap .parseObject ();if _cdf !=nil {if _cdf ==_bg .EOF {break ;};return _cdf ;};_cdfa ,_fdb :=_dgg .(cmapHexString );if !_fdb {return _bd .New ("\u006e\u006f\u006e-\u0068\u0065\u0078\u0020\u0068\u0069\u0067\u0068");};if len (_ccd ._geeb )!=len (_cdfa ._geeb ){return _bd .New ("\u0075\u006e\u0065\u0071\u0075\u0061\u006c\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0062\u0079\u0074\u0065\u0073\u0020\u0069\u006e\u0020\u0072\u0061\u006e\u0067\u0065");};_eeg :=_cged (_ccd );_cde :=_cged (_cdfa );if _cde < _eeg {_dc .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0042\u0061d\u0020\u0063\u006fd\u0065\u0073\u0070\u0061\u0063\u0065\u002e\u0020\u006cow\u003d\u0030\u0078%\u0030\u0032x\u0020\u0068\u0069\u0067\u0068\u003d0\u0078\u00250\u0032\u0078",_eeg ,_cde );return ErrBadCMap ;};_gba :=_cdfa ._aff ;_dcccf :=Codespace {NumBytes :_gba ,Low :_eeg ,High :_cde };cmap ._bdg =append (cmap ._bdg ,_dcccf );_dc .Log .Trace ("\u0043\u006f\u0064e\u0073\u0070\u0061\u0063e\u0020\u006c\u006f\u0077\u003a\u0020\u0030x\u0025\u0058\u002c\u0020\u0068\u0069\u0067\u0068\u003a\u0020\u0030\u0078\u0025\u0058",_eeg ,_cde );};if len (cmap ._bdg )==0{_dc .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u0020\u0069\u006e\u0020\u0063ma\u0070\u002e");return ErrBadCMap ;};return nil ;};func (cmap *CMap )parse ()error {var _gec cmapObject ;for {_cdc ,_eab :=cmap .parseObject ();if _eab !=nil {if _eab ==_bg .EOF {break ;};_dc .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0043\u004d\u0061\u0070\u003a\u0020\u0025\u0076",_eab );return _eab ;};switch _cbfa :=_cdc .(type ){case cmapOperand :_gbea :=_cbfa ;switch _gbea .Operand {case _agae :_feb :=cmap .parseCodespaceRange ();if _feb !=nil {return _feb ;};case _fdc :_cgdbe :=cmap .parseCIDRange ();if _cgdbe !=nil {return _cgdbe ;};case _ecb :_bea :=cmap .parseBfchar ();if _bea !=nil {return _bea ;};case _baa :_dge :=cmap .parseBfrange ();if _dge !=nil {return _dge ;};case _cbcf :if _gec ==nil {_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u0073\u0065\u0063m\u0061\u0070\u0020\u0077\u0069\u0074\u0068\u0020\u006e\u006f \u0061\u0072\u0067");return ErrBadCMap ;};_aaf ,_cbfb :=_gec .(cmapName );if !_cbfb {_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0075\u0073\u0065\u0063\u006d\u0061\u0070\u0020\u0061\u0072\u0067\u0020\u006eo\u0074\u0020\u0061\u0020\u006e\u0061\u006de\u0020\u0025\u0023\u0076",_gec );return ErrBadCMap ;};cmap ._cae =_aaf .Name ;case _bdba :_fge :=cmap .parseSystemInfo ();if _fge !=nil {return _fge ;};};case cmapName :_adc :=_cbfa ;switch _adc .Name {case _bdba :_cbcb :=cmap .parseSystemInfo ();if _cbcb !=nil {return _cbcb ;};case _dafb :_cgde :=cmap .parseName ();if _cgde !=nil {return _cgde ;};case _bbd :_cca :=cmap .parseType ();if _cca !=nil {return _cca ;};case _edg :_ccfe :=cmap .parseVersion ();if _ccfe !=nil {return _ccfe ;};};};_gec =_cdc ;};return nil ;};func (cmap *CMap )matchCode (_ccg []byte )(_daf CharCode ,_gaa int ,_fbd bool ){for _gg :=0;_gg < _dg ;_gg ++{if _gg < len (_ccg ){_daf =_daf <<8|CharCode (_ccg [_gg ]);_gaa ++;};_fbd =cmap .inCodespace (_daf ,_gg +1);if _fbd {return _daf ,_gaa ,true ;};};_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004e\u006f\u0020\u0063o\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0020m\u0061t\u0063\u0068\u0065\u0073\u0020\u0062\u0079\u0074\u0065\u0073\u003d\u005b\u0025\u0020\u0030\u0032\u0078\u005d=\u0025\u0023\u0071\u0020\u0063\u006d\u0061\u0070\u003d\u0025\u0073",_ccg ,string (_ccg ),cmap );return 0,0,false ;};func (cmap *CMap )Stream ()(*_bf .PdfObjectStream ,error ){if cmap ._ag !=nil {return cmap ._ag ,nil ;};_ede ,_bce :=_bf .MakeStream (cmap .Bytes (),_bf .NewFlateEncoder ());if _bce !=nil {return nil ,_bce ;};cmap ._ag =_ede ;return cmap ._ag ,nil ;};func _beae (_ecbb cmapHexString )[]rune {if len (_ecbb ._geeb )==1{return []rune {rune (_ecbb ._geeb [0])};};_decg :=_ecbb ._geeb ;if len (_decg )%2!=0{_decg =append (_decg ,0);_dc .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0068\u0065\u0078\u0054\u006f\u0052\u0075\u006e\u0065\u0073\u002e\u0020\u0050\u0061\u0064\u0064\u0069\u006e\u0067\u0020\u0073\u0068\u0065\u0078\u003d\u0025#\u0076\u0020\u0074\u006f\u0020\u0025\u002b\u0076",_ecbb ,_decg );};_cfaa :=len (_decg )>>1;_aba :=make ([]uint16 ,_cfaa );for _gedd :=0;_gedd < _cfaa ;_gedd ++{_aba [_gedd ]=uint16 (_decg [_gedd <<1])<<8+uint16 (_decg [_gedd <<1+1]);};_geea :=_de .Decode (_aba );return _geea ;};func _eccd ()cmapDict {return cmapDict {Dict :map[string ]cmapObject {}}};func (_fffd *cMapParser )parseNumber ()(cmapObject ,error ){_ggf ,_gbg :=_bf .ParseNumber (_fffd ._bdede );if _gbg !=nil {return nil ,_gbg ;};switch _ffa :=_ggf .(type ){case *_bf .PdfObjectFloat :return cmapFloat {float64 (*_ffa )},nil ;case *_bf .PdfObjectInteger :return cmapInt {int64 (*_ffa )},nil ;};return nil ,_c .Errorf ("\u0075n\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u006e\u0075\u006db\u0065\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0054",_ggf );};func NewToUnicodeCMap (codeToRune map[CharCode ]rune )*CMap {_fg :=make (map[CharCode ]string ,len (codeToRune ));for _eg ,_ebg :=range codeToRune {_fg [_eg ]=string (_ebg );};cmap :=&CMap {_bc :"\u0041d\u006fb\u0065\u002d\u0049\u0064\u0065n\u0074\u0069t\u0079\u002d\u0055\u0043\u0053",_ff :2,_dae :16,_ee :CIDSystemInfo {Registry :"\u0041\u0064\u006fb\u0065",Ordering :"\u0055\u0043\u0053",Supplement :0},_bdg :[]Codespace {{Low :0,High :0xffff}},_cbc :_fg ,_gf :make (map[string ]CharCode ,len (codeToRune )),_fe :make (map[CharCode ]CharCode ,len (codeToRune )),_cg :make (map[CharCode ]CharCode ,len (codeToRune ))};cmap .computeInverseMappings ();return cmap ;};type cmapHexString struct{_aff int ;_geeb []byte ;};func (_fee *cMapParser )parseComment ()(string ,error ){var _cbb _dec .Buffer ;_ ,_ffe :=_fee .skipSpaces ();if _ffe !=nil {return _cbb .String (),_ffe ;};_adae :=true ;for {_bgcf ,_fed :=_fee ._bdede .Peek (1);if _fed !=nil {_dc .Log .Debug ("p\u0061r\u0073\u0065\u0043\u006f\u006d\u006d\u0065\u006et\u003a\u0020\u0065\u0072r=\u0025\u0076",_fed );return _cbb .String (),_fed ;};if _adae &&_bgcf [0]!='%'{return _cbb .String (),ErrBadCMapComment ;};_adae =false ;if (_bgcf [0]!='\r')&&(_bgcf [0]!='\n'){_afde ,_ :=_fee ._bdede .ReadByte ();_cbb .WriteByte (_afde );}else {break ;};};return _cbb .String (),nil ;};func _ebf (_cad bool )*CMap {_gc :=16;if _cad {_gc =8;};return &CMap {_dae :_gc ,_fe :make (map[CharCode ]CharCode ),_cg :make (map[CharCode ]CharCode ),_cbc :make (map[CharCode ]string ),_gf :make (map[string ]CharCode )};};type CharCode uint32 ;type fbRange struct{_a CharCode ;_gbe CharCode ;_dcd string ;};type cmapObject interface{};func _bbc (_dfg string )rune {_ebgg :=[]rune (_dfg );return _ebgg [len (_ebgg )-1]};func (cmap *CMap )Bytes ()[]byte {_dc .Log .Trace ("\u0063\u006d\u0061\u0070.B\u0079\u0074\u0065\u0073\u003a\u0020\u0063\u006d\u0061\u0070\u003d\u0025\u0073",cmap .String ());if len (cmap ._af )> 0{return cmap ._af ;};cmap ._af =[]byte (_g .Join ([]string {_eecg ,cmap .toBfData (),_be },"\u000a"));return cmap ._af ;};func NewCIDSystemInfo (obj _bf .PdfObject )(_da CIDSystemInfo ,_cf error ){_eb ,_ga :=_bf .GetDict (obj );if !_ga {return CIDSystemInfo {},_bf .ErrTypeError ;};_gd ,_ga :=_bf .GetStringVal (_eb .Get ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"));if !_ga {return CIDSystemInfo {},_bf .ErrTypeError ;};_cb ,_ga :=_bf .GetStringVal (_eb .Get ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"));if !_ga {return CIDSystemInfo {},_bf .ErrTypeError ;};_dag ,_ga :=_bf .GetIntVal (_eb .Get ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"));if !_ga {return CIDSystemInfo {},_bf .ErrTypeError ;};return CIDSystemInfo {Registry :_gd ,Ordering :_cb ,Supplement :_dag },nil ;};func (cmap *CMap )CharcodeToCID (code CharCode )(CharCode ,bool ){_bfa ,_ecf :=cmap ._fe [code ];return _bfa ,_ecf ;};func (cmap *CMap )parseBfrange ()error {for {var _abff CharCode ;_gef ,_ddg :=cmap .parseObject ();if _ddg !=nil {if _ddg ==_bg .EOF {break ;};return _ddg ;};switch _ce :=_gef .(type ){case cmapOperand :if _ce .Operand ==_dfgb {return nil ;};return _bd .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_abff =_cged (_ce );default:return _bd .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};var _edec CharCode ;_gef ,_ddg =cmap .parseObject ();if _ddg !=nil {if _ddg ==_bg .EOF {break ;};return _ddg ;};switch _eea :=_gef .(type ){case cmapOperand :_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0049\u006d\u0063\u006f\u006d\u0070\u006c\u0065\u0074\u0065\u0020\u0062\u0066r\u0061\u006e\u0067\u0065\u0020\u0074\u0072i\u0070\u006c\u0065\u0074");return ErrBadCMap ;case cmapHexString :_edec =_cged (_eea );default:_dc .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_gef );return ErrBadCMap ;};_gef ,_ddg =cmap .parseObject ();if _ddg !=nil {if _ddg ==_bg .EOF {break ;};return _ddg ;};switch _ceb :=_gef .(type ){case cmapArray :if len (_ceb .Array )!=int (_edec -_abff )+1{_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u006e\u0075\u006d\u0062\u0065r\u0020\u006f\u0066\u0020\u0069\u0074\u0065\u006d\u0073\u0020\u0069\u006e\u0020a\u0072\u0072\u0061\u0079");return ErrBadCMap ;};for _gaab :=_abff ;_gaab <=_edec ;_gaab ++{_bec :=_ceb .Array [_gaab -_abff ];_cfae ,_bcega :=_bec .(cmapHexString );if !_bcega {return _bd .New ("\u006e\u006f\u006e-h\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};_afa :=_beae (_cfae );cmap ._cbc [_gaab ]=string (_afa );};case cmapHexString :_adgg :=_beae (_ceb );_eff :=len (_adgg );for _gee :=_abff ;_gee <=_edec ;_gee ++{cmap ._cbc [_gee ]=string (_adgg );_adgg [_eff -1]++;};default:_dc .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_gef );return ErrBadCMap ;};};return nil ;};func (cmap *CMap )CharcodeBytesToUnicode (data []byte )(string ,int ){_cga ,_gfe :=cmap .BytesToCharcodes (data );if !_gfe {_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0043\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0042\u0079\u0074\u0065s\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u004e\u006f\u0074\u0020\u0069n\u0020\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u002e\u0020\u0064\u0061\u0074\u0061\u003d\u005b\u0025\u0020\u0030\u0032\u0078]\u0020\u0063\u006d\u0061\u0070=\u0025\u0073",data ,cmap );return "",0;};_bge :=make ([]string ,len (_cga ));var _dcc []CharCode ;for _fgc ,_aea :=range _cga {_gda ,_cgd :=cmap ._cbc [_aea ];if !_cgd {_dcc =append (_dcc ,_aea );_gda =MissingCodeString ;};_bge [_fgc ]=_gda ;};_afg :=_g .Join (_bge ,"");if len (_dcc )> 0{_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020C\u0068\u0061\u0072c\u006f\u0064\u0065\u0042y\u0074\u0065\u0073\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u004e\u006f\u0074\u0020\u0069\u006e\u0020\u006d\u0061\u0070\u002e\u000a"+"\u0009d\u0061t\u0061\u003d\u005b\u0025\u00200\u0032\u0078]\u003d\u0025\u0023\u0071\u000a"+"\u0009\u0063h\u0061\u0072\u0063o\u0064\u0065\u0073\u003d\u0025\u0030\u0032\u0078\u000a"+"\u0009\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u003d\u0025\u0064\u0020%\u0030\u0032\u0078\u000a"+"\u0009\u0075\u006e\u0069\u0063\u006f\u0064\u0065\u003d`\u0025\u0073\u0060\u000a"+"\u0009\u0063\u006d\u0061\u0070\u003d\u0025\u0073",data ,string (data ),_cga ,len (_dcc ),_dcc ,_afg ,cmap );};return _afg ,len (_dcc );};func _fdef (_dgdg cmapHexString )rune {_edf :=_beae (_dgdg );if _ccbb :=len (_edf );_ccbb ==0{_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0068\u0065\u0078\u0054o\u0052\u0075\u006e\u0065\u002e\u0020\u0045\u0078p\u0065c\u0074\u0065\u0064\u0020\u0061\u0074\u0020\u006c\u0065\u0061\u0073\u0074\u0020\u006f\u006e\u0065\u0020\u0072u\u006e\u0065\u0020\u0073\u0068\u0065\u0078\u003d\u0025\u0023\u0076",_dgdg );return MissingCodeRune ;};if len (_edf )> 1{_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0068\u0065\u0078\u0054\u006f\u0052\u0075\u006e\u0065\u002e\u0020\u0045\u0078p\u0065\u0063\u0074\u0065\u0064\u0020\u0065\u0078\u0061\u0063\u0074\u006c\u0079\u0020\u006f\u006e\u0065\u0020\u0072\u0075\u006e\u0065\u0020\u0073\u0068\u0065\u0078\u003d\u0025\u0023v\u0020\u002d\u003e\u0020\u0025#\u0076",_dgdg ,_edf );};return _edf [0];};func (cmap *CMap )parseVersion ()error {_cfec :="";_fbb :=false ;for _dbdd :=0;_dbdd < 3&&!_fbb ;_dbdd ++{_bfe ,_cacc :=cmap .parseObject ();if _cacc !=nil {return _cacc ;};switch _fbc :=_bfe .(type ){case cmapOperand :switch _fbc .Operand {case "\u0064\u0065\u0066":_fbb =true ;default:_dc .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0070\u0061\u0072\u0073\u0065\u0056e\u0072\u0073\u0069\u006f\u006e\u003a \u0073\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020o\u003d\u0025\u0023\u0076",_bfe );return ErrBadCMap ;};case cmapInt :_cfec =_c .Sprintf ("\u0025\u0064",_fbc ._dfd );case cmapFloat :_cfec =_c .Sprintf ("\u0025\u0066",_fbc ._gcd );case cmapString :_cfec =_fbc .String ;default:_dc .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020p\u0061\u0072\u0073\u0065Ver\u0073io\u006e\u003a\u0020\u0042\u0061\u0064\u0020ty\u0070\u0065\u002e\u0020\u006f\u003d\u0025#\u0076",_bfe );};};cmap ._ffg =_cfec ;return nil ;};type cmapName struct{Name string ;};func (_cd *CIDSystemInfo )String ()string {return _c .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0025\u0030\u0033\u0064",_cd .Registry ,_cd .Ordering ,_cd .Supplement );};func (cmap *CMap )parseSystemInfo ()error {_cadc :=false ;_aec :=false ;_bbe :="";_dead :=false ;_ega :=CIDSystemInfo {};for _bad :=0;_bad < 50&&!_dead ;_bad ++{_ccef ,_gea :=cmap .parseObject ();if _gea !=nil {return _gea ;};switch _gcf :=_ccef .(type ){case cmapDict :_agbg :=_gcf .Dict ;_acfe ,_fdd :=_agbg ["\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"];if !_fdd {_dc .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_ddb ,_fdd :=_acfe .(cmapString );if !_fdd {_dc .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_ega .Registry =_ddb .String ;_acfe ,_fdd =_agbg ["\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"];if !_fdd {_dc .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_ddb ,_fdd =_acfe .(cmapString );if !_fdd {_dc .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_ega .Ordering =_ddb .String ;_ffce ,_fdd :=_agbg ["\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"];if !_fdd {_dc .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_dgf ,_fdd :=_ffce .(cmapInt );if !_fdd {_dc .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_ega .Supplement =int (_dgf ._dfd );_dead =true ;case cmapOperand :switch _gcf .Operand {case "\u0062\u0065\u0067i\u006e":_cadc =true ;case "\u0065\u006e\u0064":_dead =true ;case "\u0064\u0065\u0066":_aec =false ;};case cmapName :if _cadc {_bbe =_gcf .Name ;_aec =true ;};case cmapString :if _aec {switch _bbe {case "\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079":_ega .Registry =_gcf .String ;case "\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067":_ega .Ordering =_gcf .String ;};};case cmapInt :if _aec {switch _bbe {case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_ega .Supplement =int (_gcf ._dfd );};};};};if !_dead {_dc .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0050\u0061\u0072\u0073\u0065\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006e\u0066\u006f\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u006ec\u006f\u0072\u0072\u0065\u0063\u0074\u006c\u0079");return ErrBadCMap ;};cmap ._ee =_ega ;return nil ;};func (cmap *CMap )inCodespace (_bcd CharCode ,_cgc int )bool {for _ ,_cce :=range cmap ._bdg {if _cce .Low <=_bcd &&_bcd <=_cce .High &&_cgc ==_cce .NumBytes {return true ;};};return false ;};type cmapString struct{String string ;};func _bdd (_cfa string )string {_deg :=[]rune (_cfa );_eaa :=make ([]string ,len (_deg ));for _fea ,_ebd :=range _deg {_eaa [_fea ]=_c .Sprintf ("\u0025\u0030\u0034\u0078",_ebd );};return _c .Sprintf ("\u003c\u0025\u0073\u003e",_g .Join (_eaa ,""));};type CIDSystemInfo struct{Registry string ;Ordering string ;Supplement int ;};type cMapParser struct{_bdede *_e .Reader };func (cmap *CMap )NBits ()int {return cmap ._dae };type Codespace struct{NumBytes int ;Low CharCode ;High CharCode ;};func (_baf *cMapParser )parseArray ()(cmapArray ,error ){_agc :=cmapArray {};_agc .Array =[]cmapObject {};_baf ._bdede .ReadByte ();for {_baf .skipSpaces ();_bcf ,_gcfb :=_baf ._bdede .Peek (1);if _gcfb !=nil {return _agc ,_gcfb ;};if _bcf [0]==']'{_baf ._bdede .ReadByte ();break ;};_feg ,_gcfb :=_baf .parseObject ();if _gcfb !=nil {return _agc ,_gcfb ;};_agc .Array =append (_agc .Array ,_feg );};return _agc ,nil ;};func (cmap *CMap )computeInverseMappings (){for _ad ,_ae :=range cmap ._fe {if _daeb ,_ba :=cmap ._cg [_ae ];!_ba ||(_ba &&_daeb > _ad ){cmap ._cg [_ae ]=_ad ;};};for _dea ,_ec :=range cmap ._cbc {if _dd ,_ge :=cmap ._gf [_ec ];!_ge ||(_ge &&_dd > _dea ){cmap ._gf [_ec ]=_dea ;};};_ca .Slice (cmap ._bdg ,func (_ab ,_cac int )bool {return cmap ._bdg [_ab ].Low < cmap ._bdg [_cac ].Low });};func (cmap *CMap )Name ()string {return cmap ._bc };func _eccbe (_geed []byte )*cMapParser {_ege :=cMapParser {};_bfc :=_dec .NewBuffer (_geed );_ege ._bdede =_e .NewReader (_bfc );return &_ege ;};const (_ggb =100;_eecg ="\u000a\u002f\u0043\u0049\u0044\u0049\u006e\u0069\u0074\u0020\u002f\u0050\u0072\u006fc\u0053\u0065\u0074\u0020\u0066\u0069\u006e\u0064\u0072es\u006fu\u0072c\u0065 \u0062\u0065\u0067\u0069\u006e\u000a\u0031\u0032\u0020\u0064\u0069\u0063\u0074\u0020\u0062\u0065\u0067\u0069n\u000a\u0062\u0065\u0067\u0069\u006e\u0063\u006d\u0061\u0070\n\u002f\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065m\u0049\u006e\u0066\u006f\u0020\u003c\u003c\u0020\u002f\u0052\u0065\u0067\u0069\u0073t\u0072\u0079\u0020\u0028\u0041\u0064\u006f\u0062\u0065\u0029\u0020\u002f\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067\u0020\u0028\u0055\u0043\u0053)\u0020\u002f\u0053\u0075\u0070p\u006c\u0065\u006d\u0065\u006et\u0020\u0030\u0020\u003e\u003e\u0020\u0064\u0065\u0066\u000a\u002f\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065\u0020\u002f\u0041\u0064\u006f\u0062\u0065-\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0055\u0043\u0053\u0020\u0064\u0065\u0066\u000a\u002fC\u004d\u0061\u0070\u0054\u0079\u0070\u0065\u0020\u0032\u0020\u0064\u0065\u0066\u000a\u0031\u0020\u0062\u0065\u0067\u0069\u006e\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063e\u0072\u0061n\u0067\u0065\n\u003c\u0030\u0030\u0030\u0030\u003e\u0020<\u0046\u0046\u0046\u0046\u003e\u000a\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065\u000a";_be ="\u0065\u006e\u0064\u0063\u006d\u0061\u0070\u000a\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065\u0020\u0063ur\u0072e\u006e\u0074\u0064\u0069\u0063\u0074\u0020\u002f\u0043\u004d\u0061\u0070 \u0064\u0065\u0066\u0069\u006e\u0065\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0020\u0070\u006fp\u000a\u0065\u006e\u0064\u000a\u0065\u006e\u0064\u000a";);func (_bfed *cMapParser )parseName ()(cmapName ,error ){_gbc :="";_adeb :=false ;for {_eee ,_eeed :=_bfed ._bdede .Peek (1);if _eeed ==_bg .EOF {break ;};if _eeed !=nil {return cmapName {_gbc },_eeed ;};if !_adeb {if _eee [0]=='/'{_adeb =true ;_bfed ._bdede .ReadByte ();}else {_dc .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u004e\u0061\u006d\u0065\u0020\u0073\u0074a\u0072t\u0069n\u0067 \u0077\u0069\u0074\u0068\u0020\u0025\u0073\u0020\u0028\u0025\u0020\u0078\u0029",_eee ,_eee );return cmapName {_gbc },_c .Errorf ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u006ea\u006d\u0065:\u0020\u0028\u0025\u0063\u0029",_eee [0]);};}else {if _bf .IsWhiteSpace (_eee [0]){break ;}else if (_eee [0]=='/')||(_eee [0]=='[')||(_eee [0]=='(')||(_eee [0]==']')||(_eee [0]=='<')||(_eee [0]=='>'){break ;}else if _eee [0]=='#'{_debc ,_bgf :=_bfed ._bdede .Peek (3);if _bgf !=nil {return cmapName {_gbc },_bgf ;};_bfed ._bdede .Discard (3);_ffd ,_bgf :=_f .DecodeString (string (_debc [1:3]));if _bgf !=nil {return cmapName {_gbc },_bgf ;};_gbc +=string (_ffd );}else {_bgda ,_ :=_bfed ._bdede .ReadByte ();_gbc +=string (_bgda );};};};return cmapName {_gbc },nil ;};func (cmap *CMap )StringToCID (s string )(CharCode ,bool ){_ecc ,_ecce :=cmap ._gf [s ];return _ecc ,_ecce ;};func _cged (_aaa cmapHexString )CharCode {_ddd :=CharCode (0);for _ ,_bggb :=range _aaa ._geeb {_ddd <<=8;_ddd |=CharCode (_bggb );};return _ddd ;};const (_dg =4;MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune ););func (_geb *cMapParser )parseHexString ()(cmapHexString ,error ){_geb ._bdede .ReadByte ();_fff :=[]byte ("\u0030\u0031\u0032\u003345\u0036\u0037\u0038\u0039\u0061\u0062\u0063\u0064\u0065\u0066\u0041\u0042\u0043\u0044E\u0046");_ccbf :=_dec .Buffer {};for {_geb .skipSpaces ();_ccfg ,_eac :=_geb ._bdede .Peek (1);if _eac !=nil {return cmapHexString {},_eac ;};if _ccfg [0]=='>'{_geb ._bdede .ReadByte ();break ;};_dfa ,_ :=_geb ._bdede .ReadByte ();if _dec .IndexByte (_fff ,_dfa )>=0{_ccbf .WriteByte (_dfa );};};if _ccbf .Len ()%2==1{_dc .Log .Debug ("\u0070\u0061rs\u0065\u0048\u0065x\u0053\u0074\u0072\u0069ng:\u0020ap\u0070\u0065\u006e\u0064\u0069\u006e\u0067 '\u0030\u0027\u0020\u0074\u006f\u0020\u0025#\u0071",_ccbf .String ());_ccbf .WriteByte ('0');};_fgb :=_ccbf .Len ()/2;_aac ,_ :=_f .DecodeString (_ccbf .String ());return cmapHexString {_aff :_fgb ,_geeb :_aac },nil ;};func _efb (_caea ,_cdcf int )int {if _caea < _cdcf {return _caea ;};return _cdcf ;};func (_efe *cMapParser )skipSpaces ()(int ,error ){_gfg :=0;for {_geac ,_bbde :=_efe ._bdede .Peek (1);if _bbde !=nil {return 0,_bbde ;};if _bf .IsWhiteSpace (_geac [0]){_efe ._bdede .ReadByte ();_gfg ++;}else {break ;};};return _gfg ,nil ;};const (_bdba ="\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f";_baef ="\u0062e\u0067\u0069\u006e\u0063\u006d\u0061p";_fdg ="\u0065n\u0064\u0063\u006d\u0061\u0070";_agae ="\u0062\u0065\u0067\u0069nc\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0072\u0061\u006e\u0067\u0065";_fcc ="\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065";_ecb ="b\u0065\u0067\u0069\u006e\u0062\u0066\u0063\u0068\u0061\u0072";_bfea ="\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r";_baa ="\u0062\u0065\u0067i\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_dfgb ="\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_fdc ="\u0062\u0065\u0067\u0069\u006e\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_eccb ="e\u006e\u0064\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_cbcf ="\u0075s\u0065\u0063\u006d\u0061\u0070";_dafb ="\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065";_bbd ="\u0043\u004d\u0061\u0070\u0054\u0079\u0070\u0065";_edg ="C\u004d\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e";);type cmapInt struct{_dfd int64 };type cmapFloat struct{_gcd float64 };func (_cbe *cMapParser )parseString ()(cmapString ,error ){_cbe ._bdede .ReadByte ();_ead :=_dec .Buffer {};_afc :=1;for {_beg ,_gff :=_cbe ._bdede .Peek (1);if _gff !=nil {return cmapString {_ead .String ()},_gff ;};if _beg [0]=='\\'{_cbe ._bdede .ReadByte ();_gdbe ,_gcag :=_cbe ._bdede .ReadByte ();if _gcag !=nil {return cmapString {_ead .String ()},_gcag ;};if _bf .IsOctalDigit (_gdbe ){_gbb ,_dcce :=_cbe ._bdede .Peek (2);if _dcce !=nil {return cmapString {_ead .String ()},_dcce ;};var _bbca []byte ;_bbca =append (_bbca ,_gdbe );for _ ,_caff :=range _gbb {if _bf .IsOctalDigit (_caff ){_bbca =append (_bbca ,_caff );}else {break ;};};_cbe ._bdede .Discard (len (_bbca )-1);_dc .Log .Trace ("\u004e\u0075\u006d\u0065ri\u0063\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0022\u0025\u0073\u0022",_bbca );_adde ,_dcce :=_b .ParseUint (string (_bbca ),8,32);if _dcce !=nil {return cmapString {_ead .String ()},_dcce ;};_ead .WriteByte (byte (_adde ));continue ;};switch _gdbe {case 'n':_ead .WriteByte ('\n');case 'r':_ead .WriteByte ('\r');case 't':_ead .WriteByte ('\t');case 'b':_ead .WriteByte ('\b');case 'f':_ead .WriteByte ('\f');case '(':_ead .WriteByte ('(');case ')':_ead .WriteByte (')');case '\\':_ead .WriteByte ('\\');};continue ;}else if _beg [0]=='('{_afc ++;}else if _beg [0]==')'{_afc --;if _afc ==0{_cbe ._bdede .ReadByte ();break ;};};_ecca ,_ :=_cbe ._bdede .ReadByte ();_ead .WriteByte (_ecca );};return cmapString {_ead .String ()},nil ;};func IsPredefinedCMap (name string )bool {return _db .AssetExists (name )};func (cmap *CMap )String ()string {_gaf :=cmap ._ee ;_gac :=[]string {_c .Sprintf ("\u006e\u0062\u0069\u0074\u0073\u003a\u0025\u0064",cmap ._dae ),_c .Sprintf ("\u0074y\u0070\u0065\u003a\u0025\u0064",cmap ._ff )};if cmap ._ffg !=""{_gac =append (_gac ,_c .Sprintf ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0025\u0073",cmap ._ffg ));};if cmap ._cae !=""{_gac =append (_gac ,_c .Sprintf ("u\u0073\u0065\u0063\u006d\u0061\u0070\u003a\u0025\u0023\u0071",cmap ._cae ));};_gac =append (_gac ,_c .Sprintf ("\u0073\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0025\u0073",_gaf .String ()));if len (cmap ._bdg )> 0{_gac =append (_gac ,_c .Sprintf ("\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u003a\u0025\u0064",len (cmap ._bdg )));};if len (cmap ._cbc )> 0{_gac =append (_gac ,_c .Sprintf ("\u0063\u006fd\u0065\u0054\u006fU\u006e\u0069\u0063\u006f\u0064\u0065\u003a\u0025\u0064",len (cmap ._cbc )));};return _c .Sprintf ("\u0043\u004d\u0041P\u007b\u0025\u0023\u0071\u0020\u0025\u0073\u007d",cmap ._bc ,_g .Join (_gac ,"\u0020"));}; |