mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-29 13:48:54 +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 (_be "bufio";_bg "bytes";_f "encoding/hex";_a "errors";_g "fmt";_gf "github.com/unidoc/unipdf/v3/common";_ae "github.com/unidoc/unipdf/v3/core";_fd "github.com/unidoc/unipdf/v3/internal/cmap/bcmaps";_bb "io";_beb "sort";_bc "strconv";_c "strings";_bf "unicode/utf16";);func IsPredefinedCMap (name string )bool {return _fd .AssetExists (name )};func (_bgaf *cMapParser )parseDict ()(cmapDict ,error ){_gf .Log .Trace ("\u0052\u0065\u0061\u0064\u0069\u006e\u0067\u0020\u0050\u0044\u0046\u0020D\u0069\u0063\u0074\u0021");_aecc :=_bfg ();_efd ,_ :=_bgaf ._decd .ReadByte ();if _efd !='<'{return _aecc ,ErrBadCMapDict ;};_efd ,_ =_bgaf ._decd .ReadByte ();if _efd !='<'{return _aecc ,ErrBadCMapDict ;};for {_bgaf .skipSpaces ();_fddg ,_ebd :=_bgaf ._decd .Peek (2);if _ebd !=nil {return _aecc ,_ebd ;};if (_fddg [0]=='>')&&(_fddg [1]=='>'){_bgaf ._decd .ReadByte ();_bgaf ._decd .ReadByte ();break ;};_baef ,_ebd :=_bgaf .parseName ();_gf .Log .Trace ("\u004be\u0079\u003a\u0020\u0025\u0073",_baef .Name );if _ebd !=nil {_gf .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",_ebd );return _aecc ,_ebd ;};_bgaf .skipSpaces ();_egf ,_ebd :=_bgaf .parseObject ();if _ebd !=nil {return _aecc ,_ebd ;};_aecc .Dict [_baef .Name ]=_egf ;_bgaf .skipSpaces ();_fddg ,_ebd =_bgaf ._decd .Peek (3);if _ebd !=nil {return _aecc ,_ebd ;};if string (_fddg )=="\u0064\u0065\u0066"{_bgaf ._decd .Discard (3);};};return _aecc ,nil ;};func _eea (_dff cmapHexString )rune {_cbfd :=_eedg (_dff );if _cbca :=len (_cbfd );_cbca ==0{_gf .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",_dff );return MissingCodeRune ;};if len (_cbfd )> 1{_gf .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",_dff ,_cbfd );};return _cbfd [0];};const (_cdc ="\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f";_egg ="\u0062e\u0067\u0069\u006e\u0063\u006d\u0061p";_gab ="\u0065n\u0064\u0063\u006d\u0061\u0070";_bee ="\u0062\u0065\u0067\u0069nc\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0072\u0061\u006e\u0067\u0065";_gdf ="\u0065\u006e\u0064\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065r\u0061\u006e\u0067\u0065";_faa ="b\u0065\u0067\u0069\u006e\u0062\u0066\u0063\u0068\u0061\u0072";_ege ="\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r";_ebb ="\u0062\u0065\u0067i\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_gad ="\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065";_edd ="\u0062\u0065\u0067\u0069\u006e\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_egc ="e\u006e\u0064\u0063\u0069\u0064\u0072\u0061\u006e\u0067\u0065";_ddd ="\u0075s\u0065\u0063\u006d\u0061\u0070";_eaba ="\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065";_eda ="\u0043\u004d\u0061\u0070\u0054\u0079\u0070\u0065";_fbg ="C\u004d\u0061\u0070\u0056\u0065\u0072\u0073\u0069\u006f\u006e";);func (cmap *CMap )CharcodeToCID (code CharCode )(CharCode ,bool ){_dcea ,_gcc :=cmap ._bbf [code ];return _dcea ,_gcc ;};func (cmap *CMap )BytesToCharcodes (data []byte )([]CharCode ,bool ){var _gca []CharCode ;if cmap ._ag ==8{for _ ,_daa :=range data {_gca =append (_gca ,CharCode (_daa ));};return _gca ,true ;};for _gdc :=0;_gdc < len (data );{_aeef ,_fb ,_gced :=cmap .matchCode (data [_gdc :]);if !_gced {_gf .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",_gdc ,data ,string (data ));return _gca ,false ;};_gca =append (_gca ,_aeef );_gdc +=_fb ;};return _gca ,true ;};type cmapHexString struct{_gebe int ;_bdf []byte ;};func (_eee *cMapParser )parseComment ()(string ,error ){var _eafd _bg .Buffer ;_ ,_acfa :=_eee .skipSpaces ();if _acfa !=nil {return _eafd .String (),_acfa ;};_acba :=true ;for {_geb ,_bde :=_eee ._decd .Peek (1);if _bde !=nil {_gf .Log .Debug ("p\u0061r\u0073\u0065\u0043\u006f\u006d\u006d\u0065\u006et\u003a\u0020\u0065\u0072r=\u0025\u0076",_bde );return _eafd .String (),_bde ;};if _acba &&_geb [0]!='%'{return _eafd .String (),ErrBadCMapComment ;};_acba =false ;if (_geb [0]!='\r')&&(_geb [0]!='\n'){_ecd ,_ :=_eee ._decd .ReadByte ();_eafd .WriteByte (_ecd );}else {break ;};};return _eafd .String (),nil ;};func (cmap *CMap )CharcodeBytesToUnicode (data []byte )(string ,int ){_fde ,_deb :=cmap .BytesToCharcodes (data );if !_deb {_gf .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;};_db :=make ([]string ,len (_fde ));var _aca []CharCode ;for _fge ,_fcbc :=range _fde {_dbb ,_bd :=cmap ._eb [_fcbc ];if !_bd {_aca =append (_aca ,_fcbc );_dbb =MissingCodeString ;};_db [_fge ]=_dbb ;};_gce :=_c .Join (_db ,"");if len (_aca )> 0{_gf .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 ),_fde ,len (_aca ),_aca ,_gce ,cmap );};return _gce ,len (_aca );};func (cmap *CMap )String ()string {_ade :=cmap ._bebf ;_ded :=[]string {_g .Sprintf ("\u006e\u0062\u0069\u0074\u0073\u003a\u0025\u0064",cmap ._ag ),_g .Sprintf ("\u0074y\u0070\u0065\u003a\u0025\u0064",cmap ._fc )};if cmap ._bcg !=""{_ded =append (_ded ,_g .Sprintf ("\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u003a\u0025\u0073",cmap ._bcg ));};if cmap ._bfe !=""{_ded =append (_ded ,_g .Sprintf ("u\u0073\u0065\u0063\u006d\u0061\u0070\u003a\u0025\u0023\u0071",cmap ._bfe ));};_ded =append (_ded ,_g .Sprintf ("\u0073\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0025\u0073",_ade .String ()));if len (cmap ._gag )> 0{_ded =append (_ded ,_g .Sprintf ("\u0063\u006f\u0064\u0065\u0073\u0070\u0061\u0063\u0065\u0073\u003a\u0025\u0064",len (cmap ._gag )));};if len (cmap ._eb )> 0{_ded =append (_ded ,_g .Sprintf ("\u0063\u006fd\u0065\u0054\u006fU\u006e\u0069\u0063\u006f\u0064\u0065\u003a\u0025\u0064",len (cmap ._eb )));};return _g .Sprintf ("\u0043\u004d\u0041P\u007b\u0025\u0023\u0071\u0020\u0025\u0073\u007d",cmap ._gd ,_c .Join (_ded ,"\u0020"));};func (_aad *cMapParser )skipSpaces ()(int ,error ){_gdec :=0;for {_dde ,_ddf :=_aad ._decd .Peek (1);if _ddf !=nil {return 0,_ddf ;};if _ae .IsWhiteSpace (_dde [0]){_aad ._decd .ReadByte ();_gdec ++;}else {break ;};};return _gdec ,nil ;};func _eedg (_ebde cmapHexString )[]rune {if len (_ebde ._bdf )==1{return []rune {rune (_ebde ._bdf [0])};};_fccf :=_ebde ._bdf ;if len (_fccf )%2!=0{_fccf =append (_fccf ,0);_gf .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",_ebde ,_fccf );};_adag :=len (_fccf )>>1;_bbde :=make ([]uint16 ,_adag );for _gaad :=0;_gaad < _adag ;_gaad ++{_bbde [_gaad ]=uint16 (_fccf [_gaad <<1])<<8+uint16 (_fccf [_gaad <<1+1]);};_dga :=_bf .Decode (_bbde );return _dga ;};type cmapArray struct{Array []cmapObject ;};func (cmap *CMap )inCodespace (_feg CharCode ,_gdb int )bool {for _ ,_ecg :=range cmap ._gag {if _ecg .Low <=_feg &&_feg <=_ecg .High &&_gdb ==_ecg .NumBytes {return true ;};};return false ;};func _adg (_aeeb string )string {_fcc :=[]rune (_aeeb );_dece :=make ([]string ,len (_fcc ));for _acd ,_ddg :=range _fcc {_dece [_acd ]=_g .Sprintf ("\u0025\u0030\u0034\u0078",_ddg );};return _g .Sprintf ("\u003c\u0025\u0073\u003e",_c .Join (_dece ,""));};type cmapFloat struct{_ccbb float64 };type fbRange struct{_dg CharCode ;_dc CharCode ;_aeb string ;};func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )};func (cmap *CMap )CIDToCharcode (cid CharCode )(CharCode ,bool ){_bcf ,_cf :=cmap ._cg [cid ];return _bcf ,_cf ;};func (cmap *CMap )Bytes ()[]byte {_gf .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 ._aga )> 0{return cmap ._aga ;};cmap ._aga =[]byte (_c .Join ([]string {_bbga ,cmap .toBfData (),_ccb },"\u000a"));return cmap ._aga ;};func (cmap *CMap )Type ()int {return cmap ._fc };func (cmap *CMap )matchCode (_afa []byte )(_agcf CharCode ,_agab int ,_cgf bool ){for _ceg :=0;_ceg < _d ;_ceg ++{if _ceg < len (_afa ){_agcf =_agcf <<8|CharCode (_afa [_ceg ]);_agab ++;};_cgf =cmap .inCodespace (_agcf ,_ceg +1);if _cgf {return _agcf ,_agab ,true ;};};_gf .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",_afa ,string (_afa ),cmap );return 0,0,false ;};func _bfg ()cmapDict {return cmapDict {Dict :map[string ]cmapObject {}}};type cmapDict struct{Dict map[string ]cmapObject ;};func (_bece *cMapParser )parseString ()(cmapString ,error ){_bece ._decd .ReadByte ();_ddfa :=_bg .Buffer {};_gabc :=1;for {_ggb ,_dcba :=_bece ._decd .Peek (1);if _dcba !=nil {return cmapString {_ddfa .String ()},_dcba ;};if _ggb [0]=='\\'{_bece ._decd .ReadByte ();_gefg ,_ddeb :=_bece ._decd .ReadByte ();if _ddeb !=nil {return cmapString {_ddfa .String ()},_ddeb ;};if _ae .IsOctalDigit (_gefg ){_badf ,_bbac :=_bece ._decd .Peek (2);if _bbac !=nil {return cmapString {_ddfa .String ()},_bbac ;};var _gfb []byte ;_gfb =append (_gfb ,_gefg );for _ ,_gcadb :=range _badf {if _ae .IsOctalDigit (_gcadb ){_gfb =append (_gfb ,_gcadb );}else {break ;};};_bece ._decd .Discard (len (_gfb )-1);_gf .Log .Trace ("\u004e\u0075\u006d\u0065ri\u0063\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0022\u0025\u0073\u0022",_gfb );_cbbg ,_bbac :=_bc .ParseUint (string (_gfb ),8,32);if _bbac !=nil {return cmapString {_ddfa .String ()},_bbac ;};_ddfa .WriteByte (byte (_cbbg ));continue ;};switch _gefg {case 'n':_ddfa .WriteByte ('\n');case 'r':_ddfa .WriteByte ('\r');case 't':_ddfa .WriteByte ('\t');case 'b':_ddfa .WriteByte ('\b');case 'f':_ddfa .WriteByte ('\f');case '(':_ddfa .WriteByte ('(');case ')':_ddfa .WriteByte (')');case '\\':_ddfa .WriteByte ('\\');};continue ;}else if _ggb [0]=='('{_gabc ++;}else if _ggb [0]==')'{_gabc --;if _gabc ==0{_bece ._decd .ReadByte ();break ;};};_egd ,_ :=_bece ._decd .ReadByte ();_ddfa .WriteByte (_egd );};return cmapString {_ddfa .String ()},nil ;};func (cmap *CMap )parseCodespaceRange ()error {for {_bge ,_baf :=cmap .parseObject ();if _baf !=nil {if _baf ==_bb .EOF {break ;};return _baf ;};_ged ,_gde :=_bge .(cmapHexString );if !_gde {if _aagd ,_bdc :=_bge .(cmapOperand );_bdc {if _aagd .Operand ==_gdf {return nil ;};return _a .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");};};_bge ,_baf =cmap .parseObject ();if _baf !=nil {if _baf ==_bb .EOF {break ;};return _baf ;};_fbb ,_gde :=_bge .(cmapHexString );if !_gde {return _a .New ("\u006e\u006f\u006e-\u0068\u0065\u0078\u0020\u0068\u0069\u0067\u0068");};if len (_ged ._bdf )!=len (_fbb ._bdf ){return _a .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");};_cef :=_dgbf (_ged );_abcg :=_dgbf (_fbb );if _abcg < _cef {_gf .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",_cef ,_abcg );return ErrBadCMap ;};_dbbc :=_fbb ._gebe ;_efbb :=Codespace {NumBytes :_dbbc ,Low :_cef ,High :_abcg };cmap ._gag =append (cmap ._gag ,_efbb );_gf .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",_cef ,_abcg );};if len (cmap ._gag )==0{_gf .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 )Name ()string {return cmap ._gd };func _efb (_ecb string )(*CMap ,error ){_gb ,_ad :=_fd .Asset (_ecb );if _ad !=nil {return nil ,_ad ;};return LoadCmapFromDataCID (_gb );};func (cmap *CMap )parseBfchar ()error {for {_dgc ,_fcef :=cmap .parseObject ();if _fcef !=nil {if _fcef ==_bb .EOF {break ;};return _fcef ;};var _acf CharCode ;switch _fdeb :=_dgc .(type ){case cmapOperand :if _fdeb .Operand ==_ege {return nil ;};return _a .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_acf =_dgbf (_fdeb );default:return _a .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};_dgc ,_fcef =cmap .parseObject ();if _fcef !=nil {if _fcef ==_bb .EOF {break ;};return _fcef ;};var _cbf []rune ;switch _efg :=_dgc .(type ){case cmapOperand :if _efg .Operand ==_ege {return nil ;};_gf .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",_efg );return ErrBadCMap ;case cmapHexString :_cbf =_eedg (_efg );case cmapName :_gf .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",_efg );_cbf =[]rune {MissingCodeRune };default:_gf .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",_dgc );return ErrBadCMap ;};cmap ._eb [_acf ]=string (_cbf );};return nil ;};type cMapParser struct{_decd *_be .Reader };func (cmap *CMap )parseCIDRange ()error {for {_adff ,_acde :=cmap .parseObject ();if _acde !=nil {if _acde ==_bb .EOF {break ;};return _acde ;};_fegb ,_cfeb :=_adff .(cmapHexString );if !_cfeb {if _gba ,_adgc :=_adff .(cmapOperand );_adgc {if _gba .Operand ==_egc {return nil ;};return _a .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");};};_aagda :=_dgbf (_fegb );_adff ,_acde =cmap .parseObject ();if _acde !=nil {if _acde ==_bb .EOF {break ;};return _acde ;};_gbb ,_cfeb :=_adff .(cmapHexString );if !_cfeb {return _a .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 (_fegb ._bdf )!=len (_gbb ._bdf ){return _a .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");};_cbd :=_dgbf (_gbb );if _aagda > _cbd {_gf .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",_aagda ,_cbd );return ErrBadCMap ;};_adff ,_acde =cmap .parseObject ();if _acde !=nil {if _acde ==_bb .EOF {break ;};return _acde ;};_aac ,_cfeb :=_adff .(cmapInt );if !_cfeb {return _a .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 _aac ._bbgag < 0{return _a .New ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0063\u0069\u0064\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0076\u0061\u006c\u0075\u0065");};_cee :=_aac ._bbgag ;for _fdd :=_aagda ;_fdd <=_cbd ;_fdd ++{cmap ._bbf [_fdd ]=CharCode (_cee );_cee ++;};_gf .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",_aagda ,_cbd ,_aac ._bbgag );};return nil ;};func (cmap *CMap )parseType ()error {_ecbdb :=0;_cebg :=false ;for _egab :=0;_egab < 3&&!_cebg ;_egab ++{_afec ,_cag :=cmap .parseObject ();if _cag !=nil {return _cag ;};switch _gfcf :=_afec .(type ){case cmapOperand :switch _gfcf .Operand {case "\u0064\u0065\u0066":_cebg =true ;default:_gf .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",_afec );return ErrBadCMap ;};case cmapInt :_ecbdb =int (_gfcf ._bbgag );};};cmap ._fc =_ecbdb ;return nil ;};type cmapName struct{Name string ;};func NewToUnicodeCMap (codeToRune map[CharCode ]rune )*CMap {_ce :=make (map[CharCode ]string ,len (codeToRune ));for _ge ,_ef :=range codeToRune {_ce [_ge ]=string (_ef );};cmap :=&CMap {_gd :"\u0041d\u006fb\u0065\u002d\u0049\u0064\u0065n\u0074\u0069t\u0079\u002d\u0055\u0043\u0053",_fc :2,_ag :16,_bebf :CIDSystemInfo {Registry :"\u0041\u0064\u006fb\u0065",Ordering :"\u0055\u0043\u0053",Supplement :0},_gag :[]Codespace {{Low :0,High :0xffff}},_eb :_ce ,_aee :make (map[string ]CharCode ,len (codeToRune )),_bbf :make (map[CharCode ]CharCode ,len (codeToRune )),_cg :make (map[CharCode ]CharCode ,len (codeToRune ))};cmap .computeInverseMappings ();return cmap ;};type CIDSystemInfo struct{Registry string ;Ordering string ;Supplement int ;};type Codespace struct{NumBytes int ;Low CharCode ;High CharCode ;};func (cmap *CMap )parseName ()error {_ebc :="";_acb :=false ;for _adb :=0;_adb < 20&&!_acb ;_adb ++{_bgdd ,_deeb :=cmap .parseObject ();if _deeb !=nil {return _deeb ;};switch _fag :=_bgdd .(type ){case cmapOperand :switch _fag .Operand {case "\u0064\u0065\u0066":_acb =true ;default:_gf .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",_bgdd ,_ebc );if _ebc !=""{_ebc =_g .Sprintf ("\u0025\u0073\u0020%\u0073",_ebc ,_fag .Operand );};_gf .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",_ebc );};case cmapName :_ebc =_fag .Name ;};};if !_acb {_gf .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._gd =_ebc ;return nil ;};func (_dbag *cMapParser )parseHexString ()(cmapHexString ,error ){_dbag ._decd .ReadByte ();_dddb :=[]byte ("\u0030\u0031\u0032\u003345\u0036\u0037\u0038\u0039\u0061\u0062\u0063\u0064\u0065\u0066\u0041\u0042\u0043\u0044E\u0046");_gfd :=_bg .Buffer {};for {_dbag .skipSpaces ();_fbf ,_begc :=_dbag ._decd .Peek (1);if _begc !=nil {return cmapHexString {},_begc ;};if _fbf [0]=='>'{_dbag ._decd .ReadByte ();break ;};_dcac ,_ :=_dbag ._decd .ReadByte ();if _bg .IndexByte (_dddb ,_dcac )>=0{_gfd .WriteByte (_dcac );};};if _gfd .Len ()%2==1{_gf .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",_gfd .String ());_gfd .WriteByte ('0');};_afaf :=_gfd .Len ()/2;_ccc ,_ :=_f .DecodeString (_gfd .String ());return cmapHexString {_gebe :_afaf ,_bdf :_ccc },nil ;};type charRange struct{_gc CharCode ;_ab CharCode ;};type CharCode uint32 ;type CMap struct{*cMapParser ;_gd string ;_ag int ;_fc int ;_bcg string ;_bfe string ;_bebf CIDSystemInfo ;_gag []Codespace ;_bbf map[CharCode ]CharCode ;_cg map[CharCode ]CharCode ;_eb map[CharCode ]string ;_aee map[string ]CharCode ;_aga []byte ;_ea *_ae .PdfObjectStream ;};func _bea (_ffc ,_efc int )int {if _ffc < _efc {return _ffc ;};return _efc ;};func _fcd (_dee string )rune {_baee :=[]rune (_dee );return _baee [len (_baee )-1]};const (_dab =100;_bbga ="\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";_ccb ="\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 LoadCmapFromData (data []byte ,isSimple bool )(*CMap ,error ){_gf .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 :=_dca (isSimple );cmap .cMapParser =_cagc (data );_gef :=cmap .parse ();if _gef !=nil {return nil ,_gef ;};if len (cmap ._gag )==0{if cmap ._bfe !=""{return cmap ,nil ;};_gf .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 (_gaea *cMapParser )parseOperand ()(cmapOperand ,error ){_ffe :=cmapOperand {};_aacg :=_bg .Buffer {};for {_cebd ,_ffdf :=_gaea ._decd .Peek (1);if _ffdf !=nil {if _ffdf ==_bb .EOF {break ;};return _ffe ,_ffdf ;};if _ae .IsDelimiter (_cebd [0]){break ;};if _ae .IsWhiteSpace (_cebd [0]){break ;};_feb ,_ :=_gaea ._decd .ReadByte ();_aacg .WriteByte (_feb );};if _aacg .Len ()==0{return _ffe ,_g .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u006f\u0070\u0065\u0072\u0061\u006e\u0064\u0020\u0028\u0065\u006d\u0070\u0074\u0079\u0029");};_ffe .Operand =_aacg .String ();return _ffe ,nil ;};type cmapString struct{String string ;};func (cmap *CMap )parseBfrange ()error {for {var _ee CharCode ;_fec ,_aead :=cmap .parseObject ();if _aead !=nil {if _aead ==_bb .EOF {break ;};return _aead ;};switch _dbe :=_fec .(type ){case cmapOperand :if _dbe .Operand ==_gad {return nil ;};return _a .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065d\u0020\u006fp\u0065\u0072\u0061\u006e\u0064");case cmapHexString :_ee =_dgbf (_dbe );default:return _a .New ("\u0075n\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065");};var _gaf CharCode ;_fec ,_aead =cmap .parseObject ();if _aead !=nil {if _aead ==_bb .EOF {break ;};return _aead ;};switch _dgd :=_fec .(type ){case cmapOperand :_gf .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 :_gaf =_dgbf (_dgd );default:_gf .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_fec );return ErrBadCMap ;};_fec ,_aead =cmap .parseObject ();if _aead !=nil {if _aead ==_bb .EOF {break ;};return _aead ;};switch _cac :=_fec .(type ){case cmapArray :if len (_cac .Array )!=int (_gaf -_ee )+1{_gf .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 _dcg :=_ee ;_dcg <=_gaf ;_dcg ++{_dfb :=_cac .Array [_dcg -_ee ];_fgfc ,_bcgb :=_dfb .(cmapHexString );if !_bcgb {return _a .New ("\u006e\u006f\u006e-h\u0065\u0078\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0069\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};_gcad :=_eedg (_fgfc );cmap ._eb [_dcg ]=string (_gcad );};case cmapHexString :_bcgc :=_eedg (_cac );_edf :=len (_bcgc );for _bgeb :=_ee ;_bgeb <=_gaf ;_bgeb ++{cmap ._eb [_bgeb ]=string (_bcgc );_bcgc [_edf -1]++;};default:_gf .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0055\u006e\u0065\u0078\u0070e\u0063t\u0065d\u0020\u0074\u0079\u0070\u0065\u0020\u0025T",_fec );return ErrBadCMap ;};};return nil ;};func (cmap *CMap )toBfData ()string {if len (cmap ._eb )==0{return "";};_dcab :=make ([]CharCode ,0,len (cmap ._eb ));for _df :=range cmap ._eb {_dcab =append (_dcab ,_df );};_beb .Slice (_dcab ,func (_fda ,_gaa int )bool {return _dcab [_fda ]< _dcab [_gaa ]});var _ecgg []charRange ;_bga :=charRange {_dcab [0],_dcab [0]};_cea :=cmap ._eb [_dcab [0]];for _ ,_ccg :=range _dcab [1:]{_gcbg :=cmap ._eb [_ccg ];if _ccg ==_bga ._ab +1&&_fcd (_gcbg )==_fcd (_cea )+1{_bga ._ab =_ccg ;}else {_ecgg =append (_ecgg ,_bga );_bga ._gc ,_bga ._ab =_ccg ,_ccg ;};_cea =_gcbg ;};_ecgg =append (_ecgg ,_bga );var _cfd []CharCode ;var _ecbe []fbRange ;for _ ,_gg :=range _ecgg {if _gg ._gc ==_gg ._ab {_cfd =append (_cfd ,_gg ._gc );}else {_ecbe =append (_ecbe ,fbRange {_dg :_gg ._gc ,_dc :_gg ._ab ,_aeb :cmap ._eb [_gg ._gc ]});};};_gf .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 (_ecgg ),len (_cfd ),len (_ecbe ));var _bgg []string ;if len (_cfd )> 0{_dcb :=(len (_cfd )+_dab -1)/_dab ;for _caf :=0;_caf < _dcb ;_caf ++{_ff :=_bea (len (_cfd )-_caf *_dab ,_dab );_bgg =append (_bgg ,_g .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_ff ));for _efa :=0;_efa < _ff ;_efa ++{_fcf :=_cfd [_caf *_dab +_efa ];_bebd :=cmap ._eb [_fcf ];_bgg =append (_bgg ,_g .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_fcf ,_adg (_bebd )));};_bgg =append (_bgg ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r");};};if len (_ecbe )> 0{_cfa :=(len (_ecbe )+_dab -1)/_dab ;for _dec :=0;_dec < _cfa ;_dec ++{_dcabe :=_bea (len (_ecbe )-_dec *_dab ,_dab );_bgg =append (_bgg ,_g .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_dcabe ));for _eaf :=0;_eaf < _dcabe ;_eaf ++{_cfe :=_ecbe [_dec *_dab +_eaf ];_bgg =append (_bgg ,_g .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_cfe ._dg ,_cfe ._dc ,_adg (_cfe ._aeb )));};_bgg =append (_bgg ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065");};};return _c .Join (_bgg ,"\u000a");};type cmapObject interface{};func _dgbf (_cdce cmapHexString )CharCode {_eag :=CharCode (0);for _ ,_aacga :=range _cdce ._bdf {_eag <<=8;_eag |=CharCode (_aacga );};return _eag ;};func LoadPredefinedCMap (name string )(*CMap ,error ){cmap ,_ec :=_efb (name );if _ec !=nil {return nil ,_ec ;};if cmap ._bfe ==""{cmap .computeInverseMappings ();return cmap ,nil ;};_bbgc ,_ec :=_efb (cmap ._bfe );if _ec !=nil {return nil ,_ec ;};for _beg ,_abe :=range _bbgc ._bbf {if _ ,_abc :=cmap ._bbf [_beg ];!_abc {cmap ._bbf [_beg ]=_abe ;};};for _ ,_cb :=range _bbgc ._gag {cmap ._gag =append (cmap ._gag ,_cb );};cmap .computeInverseMappings ();return cmap ,nil ;};func (cmap *CMap )parseVersion ()error {_gbf :="";_babe :=false ;for _adc :=0;_adc < 3&&!_babe ;_adc ++{_gfa ,_fcdd :=cmap .parseObject ();if _fcdd !=nil {return _fcdd ;};switch _gda :=_gfa .(type ){case cmapOperand :switch _gda .Operand {case "\u0064\u0065\u0066":_babe =true ;default:_gf .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",_gfa );return ErrBadCMap ;};case cmapInt :_gbf =_g .Sprintf ("\u0025\u0064",_gda ._bbgag );case cmapFloat :_gbf =_g .Sprintf ("\u0025\u0066",_gda ._ccbb );case cmapString :_gbf =_gda .String ;default:_gf .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",_gfa );};};cmap ._bcg =_gbf ;return nil ;};func (cmap *CMap )StringToCID (s string )(CharCode ,bool ){_abf ,_fa :=cmap ._aee [s ];return _abf ,_fa };func (cmap *CMap )CharcodeToUnicode (code CharCode )(string ,bool ){if _fe ,_fea :=cmap ._eb [code ];_fea {return _fe ,true ;};return MissingCodeString ,false ;};func NewCIDSystemInfo (obj _ae .PdfObject )(_cc CIDSystemInfo ,_e error ){_bbg ,_af :=_ae .GetDict (obj );if !_af {return CIDSystemInfo {},_ae .ErrTypeError ;};_de ,_af :=_ae .GetStringVal (_bbg .Get ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"));if !_af {return CIDSystemInfo {},_ae .ErrTypeError ;};_ac ,_af :=_ae .GetStringVal (_bbg .Get ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"));if !_af {return CIDSystemInfo {},_ae .ErrTypeError ;};_ga ,_af :=_ae .GetIntVal (_bbg .Get ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"));if !_af {return CIDSystemInfo {},_ae .ErrTypeError ;};return CIDSystemInfo {Registry :_de ,Ordering :_ac ,Supplement :_ga },nil ;};type cmapOperand struct{Operand string ;};const (_d =4;MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune ););func (_abb *cMapParser )parseArray ()(cmapArray ,error ){_dcee :=cmapArray {};_dcee .Array =[]cmapObject {};_abb ._decd .ReadByte ();for {_abb .skipSpaces ();_eba ,_ggbf :=_abb ._decd .Peek (1);if _ggbf !=nil {return _dcee ,_ggbf ;};if _eba [0]==']'{_abb ._decd .ReadByte ();break ;};_ead ,_ggbf :=_abb .parseObject ();if _ggbf !=nil {return _dcee ,_ggbf ;};_dcee .Array =append (_dcee .Array ,_ead );};return _dcee ,nil ;};func (_ed *CIDSystemInfo )String ()string {return _g .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0025\u0030\u0033\u0064",_ed .Registry ,_ed .Ordering ,_ed .Supplement );};func _dca (_cd bool )*CMap {_ba :=16;if _cd {_ba =8;};return &CMap {_ag :_ba ,_bbf :make (map[CharCode ]CharCode ),_cg :make (map[CharCode ]CharCode ),_eb :make (map[CharCode ]string ),_aee :make (map[string ]CharCode )};};func (cmap *CMap )parse ()error {var _bec cmapObject ;for {_aae ,_ddb :=cmap .parseObject ();if _ddb !=nil {if _ddb ==_bb .EOF {break ;};_gf .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0043\u004d\u0061\u0070\u003a\u0020\u0025\u0076",_ddb );return _ddb ;};switch _afe :=_aae .(type ){case cmapOperand :_abg :=_afe ;switch _abg .Operand {case _bee :_eab :=cmap .parseCodespaceRange ();if _eab !=nil {return _eab ;};case _edd :_adf :=cmap .parseCIDRange ();if _adf !=nil {return _adf ;};case _faa :_bab :=cmap .parseBfchar ();if _bab !=nil {return _bab ;};case _ebb :_gfc :=cmap .parseBfrange ();if _gfc !=nil {return _gfc ;};case _ddd :if _bec ==nil {_gf .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 ;};_dfcc ,_gff :=_bec .(cmapName );if !_gff {_gf .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",_bec );return ErrBadCMap ;};cmap ._bfe =_dfcc .Name ;case _cdc :_fce :=cmap .parseSystemInfo ();if _fce !=nil {return _fce ;};};case cmapName :_fbe :=_afe ;switch _fbe .Name {case _cdc :_eg :=cmap .parseSystemInfo ();if _eg !=nil {return _eg ;};case _eaba :_ecbd :=cmap .parseName ();if _ecbd !=nil {return _ecbd ;};case _eda :_cbb :=cmap .parseType ();if _cbb !=nil {return _cbb ;};case _fbg :_dbf :=cmap .parseVersion ();if _dbf !=nil {return _dbf ;};};};_bec =_aae ;};return nil ;};func (cmap *CMap )parseSystemInfo ()error {_cbc :=false ;_ace :=false ;_ccbe :="";_ecga :=false ;_aba :=CIDSystemInfo {};for _aag :=0;_aag < 50&&!_ecga ;_aag ++{_cge ,_bfd :=cmap .parseObject ();if _bfd !=nil {return _bfd ;};switch _aabc :=_cge .(type ){case cmapDict :_dbc :=_aabc .Dict ;_cca ,_cebc :=_dbc ["\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079"];if !_cebc {_gf .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_aged ,_cebc :=_cca .(cmapString );if !_cebc {_gf .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_aba .Registry =_aged .String ;_cca ,_cebc =_dbc ["\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067"];if !_cebc {_gf .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_aged ,_cebc =_cca .(cmapString );if !_cebc {_gf .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_aba .Ordering =_aged .String ;_aea ,_cebc :=_dbc ["\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074"];if !_cebc {_gf .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_dba ,_cebc :=_aea .(cmapInt );if !_cebc {_gf .Log .Debug ("\u0045\u0052\u0052\u004fR:\u0020\u0042\u0061\u0064\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u0020\u0049\u006ef\u006f");return ErrBadCMap ;};_aba .Supplement =int (_dba ._bbgag );_ecga =true ;case cmapOperand :switch _aabc .Operand {case "\u0062\u0065\u0067i\u006e":_cbc =true ;case "\u0065\u006e\u0064":_ecga =true ;case "\u0064\u0065\u0066":_ace =false ;};case cmapName :if _cbc {_ccbe =_aabc .Name ;_ace =true ;};case cmapString :if _ace {switch _ccbe {case "\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079":_aba .Registry =_aabc .String ;case "\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067":_aba .Ordering =_aabc .String ;};};case cmapInt :if _ace {switch _ccbe {case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_aba .Supplement =int (_aabc ._bbgag );};};};};if !_ecga {_gf .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 ._bebf =_aba ;return nil ;};func (cmap *CMap )Stream ()(*_ae .PdfObjectStream ,error ){if cmap ._ea !=nil {return cmap ._ea ,nil ;};_dedd ,_cec :=_ae .MakeStream (cmap .Bytes (),_ae .NewFlateEncoder ());if _cec !=nil {return nil ,_cec ;};cmap ._ea =_dedd ;return cmap ._ea ,nil ;};func _cagc (_fbbf []byte )*cMapParser {_faae :=cMapParser {};_fgg :=_bg .NewBuffer (_fbbf );_faae ._decd =_be .NewReader (_fgg );return &_faae ;};func (_ede *cMapParser )parseName ()(cmapName ,error ){_fdf :="";_aaeb :=false ;for {_aaf ,_cbcg :=_ede ._decd .Peek (1);if _cbcg ==_bb .EOF {break ;};if _cbcg !=nil {return cmapName {_fdf },_cbcg ;};if !_aaeb {if _aaf [0]=='/'{_aaeb =true ;_ede ._decd .ReadByte ();}else {_gf .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",_aaf ,_aaf );return cmapName {_fdf },_g .Errorf ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u006ea\u006d\u0065:\u0020\u0028\u0025\u0063\u0029",_aaf [0]);};}else {if _ae .IsWhiteSpace (_aaf [0]){break ;}else if (_aaf [0]=='/')||(_aaf [0]=='[')||(_aaf [0]=='(')||(_aaf [0]==']')||(_aaf [0]=='<')||(_aaf [0]=='>'){break ;}else if _aaf [0]=='#'{_gga ,_gcf :=_ede ._decd .Peek (3);if _gcf !=nil {return cmapName {_fdf },_gcf ;};_ede ._decd .Discard (3);_dcbe ,_gcf :=_f .DecodeString (string (_gga [1:3]));if _gcf !=nil {return cmapName {_fdf },_gcf ;};_fdf +=string (_dcbe );}else {_dfccc ,_ :=_ede ._decd .ReadByte ();_fdf +=string (_dfccc );};};};return cmapName {_fdf },nil ;};func (cmap *CMap )computeInverseMappings (){for _add ,_gec :=range cmap ._bbf {if _gcb ,_aabe :=cmap ._cg [_gec ];!_aabe ||(_aabe &&_gcb > _add ){cmap ._cg [_gec ]=_add ;};};for _baa ,_fg :=range cmap ._eb {if _fcb ,_bgd :=cmap ._aee [_fg ];!_bgd ||(_bgd &&_fcb > _baa ){cmap ._aee [_fg ]=_baa ;};};_beb .Slice (cmap ._gag ,func (_agc ,_dcd int )bool {return cmap ._gag [_agc ].Low < cmap ._gag [_dcd ].Low });};type cmapInt struct{_bbgag int64 };func (_bgb *cMapParser )parseObject ()(cmapObject ,error ){_bgb .skipSpaces ();for {_cefg ,_aagdd :=_bgb ._decd .Peek (2);if _aagdd !=nil {return nil ,_aagdd ;};if _cefg [0]=='%'{_bgb .parseComment ();_bgb .skipSpaces ();continue ;}else if _cefg [0]=='/'{_dfe ,_gbe :=_bgb .parseName ();return _dfe ,_gbe ;}else if _cefg [0]=='('{_ffd ,_bef :=_bgb .parseString ();return _ffd ,_bef ;}else if _cefg [0]=='['{_agd ,_ecc :=_bgb .parseArray ();return _agd ,_ecc ;}else if (_cefg [0]=='<')&&(_cefg [1]=='<'){_ada ,_ffa :=_bgb .parseDict ();return _ada ,_ffa ;}else if _cefg [0]=='<'{_eed ,_gabg :=_bgb .parseHexString ();return _eed ,_gabg ;}else if _ae .IsDecimalDigit (_cefg [0])||(_cefg [0]=='-'&&_ae .IsDecimalDigit (_cefg [1])){_bba ,_ffag :=_bgb .parseNumber ();if _ffag !=nil {return nil ,_ffag ;};return _bba ,nil ;}else {_gee ,_fdc :=_bgb .parseOperand ();if _fdc !=nil {return nil ,_fdc ;};return _gee ,nil ;};};};var (ErrBadCMap =_a .New ("\u0062\u0061\u0064\u0020\u0063\u006d\u0061\u0070");ErrBadCMapComment =_a .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 =_a .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0069\u0063\u0074"););func (_abfe *cMapParser )parseNumber ()(cmapObject ,error ){_baaf ,_fgfd :=_ae .ParseNumber (_abfe ._decd );if _fgfd !=nil {return nil ,_fgfd ;};switch _bafa :=_baaf .(type ){case *_ae .PdfObjectFloat :return cmapFloat {float64 (*_bafa )},nil ;case *_ae .PdfObjectInteger :return cmapInt {int64 (*_bafa )},nil ;};return nil ,_g .Errorf ("\u0075n\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u006e\u0075\u006db\u0065\u0072\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0054",_baaf );};func (cmap *CMap )NBits ()int {return cmap ._ag }; |