unipdf/internal/textencoding/textencoding.go

111 lines
1.2 MiB
Go
Raw Normal View History

2020-08-27 21:45:09 +00:00
//
// 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/
2022-12-15 21:59:56 +00:00
package textencoding ;import (_fb "bytes";_ff "encoding/binary";_cg "errors";_d "fmt";_cgd "github.com/unidoc/unipdf/v3/common";_fg "github.com/unidoc/unipdf/v3/core";_dg "github.com/unidoc/unipdf/v3/internal/cmap";_fa "github.com/unidoc/unipdf/v3/internal/strutils";
_eb "github.com/unidoc/unipdf/v3/internal/textencoding/internal/syncmap";_fe "golang.org/x/text/encoding";_ad "golang.org/x/text/transform";_bf "golang.org/x/xerrors";_f "regexp";_g "sort";_cf "strconv";_ab "strings";_e "sync";_a "unicode";_b "unicode/utf8";
);func (_aec CMapEncoder )Decode (raw []byte )string {if _aec ._ded !=nil {if _ea ,_dbg :=_aec ._ded .BytesToCharcodes (raw );_dbg {var _aab _fb .Buffer ;for _ ,_ebb :=range _ea {_fag ,_ :=_aec .charcodeToString (CharCode (_ebb ));_aab .WriteString (_fag );
};return _aab .String ();};};return _aag (_aec ,raw );};func RegisterSimpleEncoding (name string ,fnc func ()SimpleEncoder ){if _ ,_egg :=_gdd .Read (name );_egg {panic ("\u0061l\u0072e\u0061\u0064\u0079\u0020\u0072e\u0067\u0069s\u0074\u0065\u0072\u0065\u0064");
};_gdd .Write (name ,fnc );};func (_bafa *simpleEncoding )BaseName ()string {return _bafa ._efd };func (_agfd simpleDecoder )Transform (dst ,src []byte ,_ bool )(_badf ,_fdg int ,_ error ){for len (src )!=0{_gde :=src [0];src =src [1:];_afae ,_gcg :=_agfd ._ebcc .Read (_gde );
if !_gcg {_afae =MissingCodeRune ;};if _b .RuneLen (_afae )> len (dst ){return _badf ,_fdg ,_ad .ErrShortDst ;};_gdde :=_b .EncodeRune (dst ,_afae );dst =dst [_gdde :];_fdg ++;_badf +=_gdde ;};return _badf ,_fdg ,nil ;};func NewIdentityTextEncoder (baseName string )*IdentityEncoder {return &IdentityEncoder {_edb :baseName ,_dfbf :_eb .MakeRuneSet (0)};
};var _cfed =_eb .NewByteRuneMap (map[byte ]rune {0x1:'\x01',0x2:'\x02',0x3:'\x03',0x4:'\x04',0x5:'\x05',0x6:'\x06',0x7:'\a',0x8:'\b',0x9:'\t',0xa:'\n',0xb:'\v',0xc:'\f',0xd:'\r',0xe:'\x0e',0xf:'\x0f',0x10:'\x10',0x11:'\x11',0x12:'\x12',0x13:'\x13',0x14:'\x14',0x15:'\x15',0x16:'\x17',0x17:'\x17',0x18:'˘',0x19:'ˇ',0x1a:'ˆ',0x1b:'˙',0x1c:'˝',0x1d:'˛',0x1e:'˚',0x1f:'˜',0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'\'',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'`',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0x80:'•',0x81:'†',0x82:'‡',0x83:'…',0x84:'—',0x85:'',0x86:'ƒ',0x87:'',0x88:'',0x89:'',0x8a:'',0x8b:'‰',0x8c:'„',0x8d:'“',0x8e:'”',0x8f:'',0x90:'',0x91:'',0x92:'™',0x93:'fi',0x94:'fl',0x95:'Ł',0x96:'Œ',0x97:'Š',0x98:'Ÿ',0x99:'Ž',0x9a:'ı',0x9b:'ł',0x9c:'œ',0x9d:'š',0x9e:'ž',0xa0:'€',0xa1:'¡',0xa2:'¢',0xa3:'£',0xa4:'¤',0xa5:'¥',0xa6:'¦',0xa7:'§',0xa8:'¨',0xa9:'©',0xaa:'ª',0xab:'«',0xac:'¬',0xae:'®',0xaf:'¯',0xb0:'°',0xb1:'±',0xb2:'²',0xb3:'³',0xb4:'´',0xb5:'µ',0xb6:'¶',0xb7:'·',0xb8:'¸',0xb9:'¹',0xba:'º',0xbb:'»',0xbc:'¼',0xbd:'½',0xbe:'¾',0xbf:'¿',0xc0:'À',0xc1:'Á',0xc2:'Â',0xc3:'Ã',0xc4:'Ä',0xc5:'Å',0xc6:'Æ',0xc7:'Ç',0xc8:'È',0xc9:'É',0xca:'Ê',0xcb:'Ë',0xcc:'Ì',0xcd:'Í',0xce:'Î',0xcf:'Ï',0xd0:'Ð',0xd1:'Ñ',0xd2:'Ò',0xd3:'Ó',0xd4:'Ô',0xd5:'Õ',0xd6:'Ö',0xd7:'×',0xd8:'Ø',0xd9:'Ù',0xda:'Ú',0xdb:'Û',0xdc:'Ü',0xdd:'Ý',0xde:'Þ',0xdf:'ß',0xe0:'à',0xe1:'á',0xe2:'â',0xe3:'ã',0xe4:'ä',0xe5:'å',0xe6:'æ',0xe7:'ç',0xe8:'è',0xe9:'é',0xea:'ê',0xeb:'ë',0xec:'ì',0xed:'í',0xee:'î',0xef:'ï',0xf0:'ð',0xf1:'ñ',0xf2:'ò',0xf3:'ó',0xf4:'ô',0xf5:'õ',0xf6:'ö',0xf7:'÷',0xf8:'ø',0xf9:'ù',0xfa:'ú',0xfb:'û',0xfc:'ü',0xfd:'ý',0xfe:'þ',0xff:'ÿ'});
func (_agc *simpleEncoding )ToPdfObject ()_fg .PdfObject {return _fg .MakeName (_agc ._efd )};func (_edbc UTF16Encoder )Decode (raw []byte )string {return _fa .UTF16ToString (raw )};const (MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune );
);func (_ege *simpleEncoding )CharcodeToRune (code CharCode )(rune ,bool ){if code > 0xff{return MissingCodeRune ,false ;};_fgb :=byte (code );_gdad ,_cag :=_ege ._cbcf .Read (_fgb );if _ege ._ada ==nil {_ege ._ada =_eb .MakeRuneSet (1);};_ege ._ada .Write (_gdad );
return _gdad ,_cag ;};var _cac =_eb .NewStringRuneMap (map[string ]rune {"\u0066\u005f\u0074":0xe000,"\u0066\u005f\u006a":0xe001,"\u0066\u005f\u0062":0xe002,"\u0066\u005f\u0068":0xe003,"\u0066\u005f\u006b":0xe004,"\u0074\u005f\u0074":0xe005,"\u0074\u005f\u0066":0xe006,"\u0066\u005f\u0066_\u006a":0xe007,"\u0066\u005f\u0066_\u0062":0xe008,"\u0066\u005f\u0066_\u0068":0xe009,"\u0066\u005f\u0066_\u006b":0xe00a,"\u0054\u005f\u0068":0xe00b});
func (_faa *IdentityEncoder )RegisteredRunes ()[]rune {_gcda :=make ([]rune ,_faa ._dfbf .Length ());_ebbb :=0;_faa ._dfbf .Range (func (_gaa rune )(_eba bool ){_gcda [_ebbb ]=_gaa ;_ebbb ++;return false });return _gcda ;};type GID uint16 ;func NewUTF16TextEncoder (baseName string )UTF16Encoder {return UTF16Encoder {baseName }};
func (_bca *IdentityEncoder )String ()string {return _bca ._edb };func (_daa *charCodeGlyphNameMap )Length ()int {_daa ._ba .RLock ();defer _daa ._ba .RUnlock ();return len (_daa ._bc );};func FromFontDifferences (diffList *_fg .PdfObjectArray )(map[CharCode ]GlyphName ,error ){_ac :=make (map[CharCode ]GlyphName );
var _cga CharCode ;for _ ,_cdc :=range diffList .Elements (){switch _bde :=_cdc .(type ){case *_fg .PdfObjectInteger :_cga =CharCode (*_bde );case *_fg .PdfObjectName :_feg :=string (*_bde );_ac [_cga ]=GlyphName (_feg );_cga ++;default:_cgd .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0042\u0061\u0064\u0020\u0074\u0079\u0070\u0065\u002e\u0020\u006f\u0062\u006a\u003d\u0025\u0073",_cdc );
return nil ,_fg .ErrTypeError ;};};return _ac ,nil ;};func ExpandLigatures (runes []rune )string {var _afbd _fb .Buffer ;for _ ,_aeg :=range runes {_cab :=RuneToString (_aeg );_afbd .WriteString (_cab );};return _afbd .String ();};func (_dcg CMapEncoder )String ()string {return _dcg ._gc };
func NewMacExpertEncoder ()SimpleEncoder {return _age .NewEncoder ()};func (_efa *differencesEncoding )CharcodeToRune (code CharCode )(rune ,bool ){if code > 0xff{return MissingCodeRune ,false ;};_fda :=byte (code );if _ggb ,_ebc :=_efa ._bcd .Read (_fda );
_ebc {return _ggb ,true ;};return _efa ._fba .CharcodeToRune (code );};func _ca (_gb ...charCodeGlyphNameTuple )*charCodeGlyphNameMap {_fbf :=map[CharCode ]GlyphName {};for _ ,_gf :=range _gb {_fbf [_gf .CharCode ]=_gf .GlyphName ;};return &charCodeGlyphNameMap {_bc :_fbf };
};func (_bcaa *simpleEncoding )String ()string {return "\u0073i\u006dp\u006c\u0065\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0028"+_bcaa ._efd +"\u0029";};func _ee (_cdcb *charCodeGlyphNameMap )*_fg .PdfObjectArray {if _cdcb .Length ()==0{return nil ;
};_gaf :=make ([]CharCode ,0,_cdcb .Length ());_cdcb .Range (func (_ed CharCode ,_ GlyphName )(_gcd bool ){_gaf =append (_gaf ,_ed );return false });_g .Slice (_gaf ,func (_cdcg ,_ggcd int )bool {return _gaf [_cdcg ]< _gaf [_ggcd ]});_abb :=_gaf [0];_dcgb ,_ :=_cdcb .Read (_abb );
_be :=[]_fg .PdfObject {_fg .MakeInteger (int64 (_abb )),_fg .MakeName (string (_dcgb ))};for _ ,_bbe :=range _gaf [1:]{if _bbe ==_abb +1{_dcgb ,_ =_cdcb .Read (_bbe );_be =append (_be ,_fg .MakeName (string (_dcgb )));}else {_be =append (_be ,_fg .MakeInteger (int64 (_bbe )));
};_abb =_bbe ;};return _fg .MakeArray (_be ...);};func (_bbce *simpleEncodersMap )Range (f func (_caad string ,_ecag func ()SimpleEncoder )(_gaag bool )){_bbce ._bcgg .RLock ();defer _bbce ._bcgg .RUnlock ();for _gcfg ,_ebfc :=range _bbce ._feef {if f (_gcfg ,_ebfc ){break ;
};};};func (_gd *differencesEncoding )Decode (raw []byte )string {_ggad :=make ([]rune ,0,len (raw ));for _ ,_gafb :=range raw {_afec ,_ :=_gd .CharcodeToRune (CharCode (_gafb ));_ggad =append (_ggad ,_afec );};return string (_ggad );};func (_dda *TrueTypeFontEncoder )GlyphToCharcode (glyph GlyphName )(CharCode ,bool ){if len (glyph )==7&&glyph [0:3]=="\u0075\u006e\u0069"{var _dfbg uint16 ;
_eadc ,_feb :=_d .Sscanf (string (glyph ),"\u0075\u006e\u0069%\u0058",&_dfbg );if _eadc ==1&&_feb ==nil {return _dda .RuneToCharcode (rune (_dfbg ));};};if _cagg ,_bac :=_dfd .Read (string (glyph ));_bac {return _dda .RuneToCharcode (_cagg );};_cgd .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0065r\u0072\u006f\u0072\u003a\u0020\u0075\u006e\u0061\u0062\u006ce\u0020\u0074\u006f\u0020\u0066\u0069\u006e\u0064\u0020\u0067\u006c\u0079\u0070\u0068\u002d\u003e\u0063\u0068a\u0072\u0063\u006f\u0064\u0065\u0020e\u006e\u0074r\u0079\u0020(\u0025s\u0029",glyph );
return 0,false ;};func NewPdfDocEncoder ()SimpleEncoder {return _dfa .NewEncoder ()};func NewCustomSimpleTextEncoder (encoding ,differences map[CharCode ]GlyphName )(SimpleEncoder ,error ){if len (encoding )==0{return nil ,_cg .New ("e\u006d\u0070\u0074\u0079 c\u0075s\u0074\u006f\u006d\u0020\u0065n\u0063\u006f\u0064\u0069\u006e\u0067");
};const _gac ="\u0063\u0075\u0073\u0074\u006f\u006d";_eec :=_eb .MakeByteRuneMap (len (encoding ));for _gbda ,_abbe :=range encoding {_dbf ,_cdb :=GlyphToRune (_abbe );if !_cdb {_cgd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u006b\u006e\u006f\u0077n\u0020\u0067\u006c\u0079\u0070\u0068\u002e\u0020\u0025\u0071",_abbe );
continue ;};_eec .Write (byte (_gbda ),_dbf );};_efg :=_eff (_gac ,_eec );if len (differences )!=0{_efg =ApplyDifferences (_efg ,differences );};return _efg ,nil ;};const (_ecda ="\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067";
_bgd ="Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067";);func (_efff *simpleEncoder )Transform (dst ,src []byte ,atEOF bool )(_ebd ,_caab int ,_ error ){for len (src )!=0{if !_b .FullRune (src )&&!atEOF {return _ebd ,_caab ,_ad .ErrShortSrc ;
}else if len (dst )==0{return _ebd ,_caab ,_ad .ErrShortDst ;};_geb ,_adb :=_b .DecodeRune (src );if _geb ==_b .RuneError {_geb =MissingCodeRune ;};src =src [_adb :];_caab +=_adb ;_bbfb ,_bcg :=_efff ._bfa .Read (_geb );if !_bcg {_bbfb ,_ =_efff ._bfa .Read (MissingCodeRune );
};dst [0]=_bbfb ;dst =dst [1:];_ebd ++;};return _ebd ,_caab ,nil ;};func (_eg *charCodeGlyphNameMap )Range (f func (_ae CharCode ,_gg GlyphName )(_ggc bool )){_eg ._ba .RLock ();defer _eg ._ba .RUnlock ();for _caa ,_cfe :=range _eg ._bc {if f (_caa ,_cfe ){break ;
};};};func _aag (_daf TextEncoder ,_ffg []byte )string {_cbf :=make ([]rune ,0,len (_ffg )/2+len (_ffg )%2);for len (_ffg )> 0{if len (_ffg )==1{_ffg =[]byte {_ffg [0],0};};_gef :=CharCode (_ff .BigEndian .Uint16 (_ffg [:]));_ffg =_ffg [2:];_cdge ,_cbce :=_daf .CharcodeToRune (_gef );
if !_cbce {_cgd .Log .Debug ("\u0046a\u0069\u006ce\u0064\u0020\u0074\u006f \u006d\u0061\u0070 \u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020to\u0020\u0072\u0075n\u0065\u002e \u0063\u0068\u0061\u0072\u0063\u006fd\u0065\u003d%\u0023\u0078",_gef );
continue ;};_cbf =append (_cbf ,_cdge );};return string (_cbf );};func (_ffbe *TrueTypeFontEncoder )ToPdfObject ()_fg .PdfObject {return _fg .MakeNull ()};var (_age =_bdeb (_aed ,_fdgb );_dbab =_bdeb (_acfb ,_bcfd ););func (_eed *simpleEncoding )NewEncoder ()*_fe .Encoder {return &_fe .Encoder {Transformer :&simpleEncoder {_bfa :_eed ._bdf }};
};func (_ecd *IdentityEncoder )GlyphToRune (glyph GlyphName )(rune ,bool ){if glyph =="\u0073\u0070\u0061c\u0065"{return ' ',true ;}else if !_ab .HasPrefix (string (glyph ),"\u0075\u006e\u0069")||len (glyph )!=7{return 0,false ;};_bfbc ,_ecdb :=_cf .ParseUint (string (glyph [3:]),16,16);
if _ecdb !=nil {return 0,false ;};return rune (_bfbc ),true ;};func NewZapfDingbatsEncoder ()SimpleEncoder {return _gdeg .NewEncoder ()};func (_gcgg *TrueTypeFontEncoder )String ()string {_cdbg :=[]string {_d .Sprintf ("\u0025\u0064\u0020\u0065\u006e\u0074\u0072\u0069\u0065\u0073",_gcgg ._dffd .Length ())};
type runeGID struct{_agbe rune ;_cea GID ;};_ggg :=make ([]runeGID ,0,_gcgg ._dffd .Length ());_gcgg ._dffd .Range (func (_gafbe rune ,_fcag uint16 )(_fadd bool ){_ggg =append (_ggg ,runeGID {_agbe :_gafbe ,_cea :GID (_fcag )});return false ;});_g .Slice (_ggg ,func (_ggcf ,_fcf int )bool {return _ggg [_ggcf ]._agbe < _ggg [_fcf ]._agbe });
_ead :=len (_ggg );if _ead > _abgf {_ead =_abgf ;};for _eafe :=0;_eafe < _ead ;_eafe ++{_eddd :=_ggg [_eafe ];_cdbg =append (_cdbg ,_d .Sprintf ("\u0025\u0064\u003d\u0030\u0078\u0025\u0030\u0032\u0078\u003a\u0020\u0025\u0071",_eddd ._agbe ,_eddd ._agbe ,_eddd ._cea ));
};return _d .Sprintf ("T\u0052U\u0045\u0054\u0059\u0050\u0045\u005f\u0045\u004eC\u004f\u0044\u0045\u0052{%\u0073\u007d",_ab .Join (_cdbg ,"\u002c\u0020"));};func (_aea UTF16Encoder )Encode (str string )[]byte {return []byte (_fa .StringToUTF16 (str ))};
var (_gdd =&simpleEncodersMap {_feef :map[string ]func ()SimpleEncoder {}};);func (_fbg *differencesEncoding )String ()string {return _d .Sprintf ("\u0064\u0069\u0066\u0066er\u0065\u006e\u0063\u0065\u0073\u0028\u0025\u0073\u002c\u0020\u0025\u0076\u0029",_fbg ._fba .String (),_fbg ._baeg );
};func (_acf *simpleMapping )NewEncoder ()SimpleEncoder {_acf ._dgce .Do (_acf .init );return &simpleEncoding {_efd :_acf ._fec ,_bdf :_acf ._aadd ,_cbcf :_acf ._ecac };};func (_ecdf simpleDecoder )Reset (){};func (_dbb CMapEncoder )ToPdfObject ()_fg .PdfObject {if _dbb ._gc !=""{return _fg .MakeName (_dbb ._gc );
};return _fg .MakeNull ();};func NewTrueTypeFontEncoder (runeToGIDMap map[rune ]GID )*TrueTypeFontEncoder {_bfga :=_eb .MakeRuneUint16Map (len (runeToGIDMap ));for _fdd ,_bbg :=range runeToGIDMap {_bfga .Write (_fdd ,uint16 (_bbg ));};return &TrueTypeFontEncoder {_dffd :_bfga ,_dgeb :_eb .MakeRuneSet (0)};
};const _abgf =10;type SimpleEncoder interface{TextEncoder ;BaseName ()string ;Charcodes ()[]CharCode ;};func (_deb *IdentityEncoder )ToPdfObject ()_fg .PdfObject {if _deb ._edb !=""{return _fg .MakeName (_deb ._edb );};return _fg .MakeNull ();};type simpleEncoding struct{_efd string ;
_bdf *_eb .RuneByteMap ;_cbcf *_eb .ByteRuneMap ;_ada *_eb .RuneSet ;};func (_eaf CMapEncoder )CharcodeToRune (code CharCode )(rune ,bool ){_fd ,_deg :=_eaf .charcodeToString (code );if len (_fd )< 1{return MissingCodeRune ,false ;};return ([]rune (_fd ))[0],_deg ;
};func (_ggaf *simpleEncodersMap )Read (s string )(func ()SimpleEncoder ,bool ){_ggaf ._bcgg .RLock ();defer _ggaf ._bcgg .RUnlock ();_feec ,_ebdg :=_ggaf ._feef [s ];return _feec ,_ebdg ;};var _dga =[...]_eb .StringsTuple {{Key :"\u0066\u005f\u0066",Value :"\u0066\u0066"},{Key :"\u0066\u005f\u0066_\u0069",Value :"\u0066\u0066\u0069"},{Key :"\u0066\u005f\u0066_\u006c",Value :"\u0066\u0066\u006c"},{Key :"\u0066\u005f\u0069",Value :"\u0066\u0069"},{Key :"\u0066\u005f\u006c",Value :"\u0066\u006c"},{Key :"a\u0073\u0063\u0072\u0069\u0070\u0074\u0074\u0075\u0072\u006e",Value :"\u0041\u0045\u006d\u0061\u0063\u0072\u006f\u006e"},{Key :"\u006d\u0074\u0075r\u006e\u0064\u0065\u0073\u0063\u0065\u006e\u0064",Value :"\u0041d\u0062\u006c\u0067\u0072\u0061\u0076e"},{Key :"\u0061\u0074\u0075r\u006e",Value :"\u0041\u0064\u006f\u0074\u006d\u0061\u0063\u0072\u006f\u006e"},{Key :"n\u006c\u0066\u0074\u006c\u0066\u0074\u0068\u006f\u006f\u006b",Value :"\u0041\u0069\u006e\u0076\u0065\u0072\u0074\u0065\u0064b\u0072\u0065\u0076\u0065"},{Key :"\u0075p\u0041\u006c\u0070\u0068\u0061",Value :"\u0041\u006c\u0070h\u0061"},{Key :"\u0049s\u006d\u0061\u006c\u006c\u0063\u0061p",Value :"\u0041\u0072\u0069\u006e\u0067\u0061\u0063\u0075\u0074\u0065"},{Key :"\u0043\u0062\u0062",Value :"\u0042\u0062\u0062\u0043"},{Key :"\u0043\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0043"},{Key :"\u0048\u0062\u0062",Value :"\u0042\u0062\u0062\u0048"},{Key :"\u0048\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0048"},{Key :"\u004e\u0062\u0062",Value :"\u0042\u0062\u0062\u004e"},{Key :"\u004e\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u004e"},{Key :"\u0050\u0062\u0062",Value :"\u0042\u0062\u0062\u0050"},{Key :"\u0050\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0050"},{Key :"\u0051\u0062\u0062",Value :"\u0042\u0062\u0062\u0051"},{Key :"\u0051\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0051"},{Key :"\u0052\u0062\u0062",Value :"\u0042\u0062\u0062\u0052"},{Key :"\u0052\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0052"},{Key :"\u005a\u0062\u0062",Value :"\u0042\u0062\u0062\u005a"},{Key :"\u005a\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u005a"},{Key :"\u0075\u0070\u0042\u0065\u0074\u0061",Value :"\u0042\u0065\u0074\u0061"},{Key :"\u004f\u0049",Value :"\u0042t\u006f\u0070\u0062\u0061\u0072"},{Key :"\u0048m\u0061\u0063\u0072\u006f\u006e",Value :"\u0043\u0061\u0063\u0075\u0074\u0065"},{Key :"\u0043\u0064\u006f\u0074",Value :"\u0043\u0064\u006f\u0074\u0061\u0063\u0063\u0065\u006e\u0074"},{Key :"\u0043\u0068\u0065",Value :"C\u0068\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"\u0061f\u0069\u0069\u0031\u0030\u0030\u00341",Value :"C\u0068\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"l\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078",Value :"C\u0068e\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0065r\u0063\u0079\u0072\u0069ll\u0069\u0063"},{Key :"\u0075\u0070\u0043h\u0069",Value :"\u0043\u0068\u0069"},{Key :"\u0079\u0075\u0073\u0062\u0069\u0067",Value :"\u0043\u0068\u0069"},{Key :"\u0067\u0063\u0075\u0072\u0073\u0069\u0076\u0065",Value :"\u0044\u005a"},{Key :"\u0047\u0062\u0061\u0072",Value :"\u0044Z\u0063\u0061\u0072\u006f\u006e"},{Key :"\u0044\u0073\u006c\u0061\u0073\u0068",Value :"\u0044\u0063\u0072\u006f\u0061\u0074"},{Key :"\u0044\u0065",Value :"\u0044\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"\u0061f\u0069\u0069\u0031\u0030\u0030\u00321",Value :"\u0044\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"\u004b\u0068\u0061\u0072\u0074\u0064\u0065\u0073",Value :"\u0044e\u0069\u0063\u006f\u0070\u0074\u0069c"},{Key :"\u0069n\u0063\u0072\u0065\u006d\u0065\u006et",Value :"\u0044\u0065\u006ct\u0061"},{Key :"\u0075p\u0044\u0065\u006c\u0074\u0061",Value :"\u0044\u0065\u006c\u0074\u0061\u0067\u0072\u0065\u0065\u006b"},{Key :"\u0065\u0073\u0068\u006c\
var _dbe =_eb .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'!',0x22:'∀',0x23:'#',0x24:'∃',0x25:'%',0x26:'&',0x27:'∋',0x28:'(',0x29:')',0x2a:'',0x2b:'+',0x2c:',',0x2d:'',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'≅',0x41:'Α',0x42:'Β',0x43:'Χ',0x44:'∆',0x45:'Ε',0x46:'Φ',0x47:'Γ',0x48:'Η',0x49:'Ι',0x4a:'ϑ',0x4b:'Κ',0x4c:'Λ',0x4d:'Μ',0x4e:'Ν',0x4f:'Ο',0x50:'Π',0x51:'Θ',0x52:'Ρ',0x53:'Σ',0x54:'Τ',0x55:'Υ',0x56:'ς',0x57:'Ω',0x58:'Ξ',0x59:'Ψ',0x5a:'Ζ',0x5b:'[',0x5c:'∴',0x5d:']',0x5e:'⊥',0x5f:'_',0x60:'\uf8e5',0x61:'α',0x62:'β',0x63:'χ',0x64:'δ',0x65:'ε',0x66:'φ',0x67:'γ',0x68:'η',0x69:'ι',0x6a:'ϕ',0x6b:'κ',0x6c:'λ',0x6d:'µ',0x6e:'ν',0x6f:'ο',0x70:'π',0x71:'θ',0x72:'ρ',0x73:'σ',0x74:'τ',0x75:'υ',0x76:'ϖ',0x77:'ω',0x78:'ξ',0x79:'ψ',0x7a:'ζ',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'',0xa0:'€',0xa1:'ϒ',0xa2:'',0xa3:'≤',0xa4:'',0xa5:'∞',0xa6:'ƒ',0xa7:'♣',0xa8:'♦',0xa9:'♥',0xaa:'♠',0xab:'↔',0xac:'←',0xad:'↑',0xae:'→',0xaf:'↓',0xb0:'°',0xb1:'±',0xb2:'″',0xb3:'≥',0xb4:'×',0xb5:'∝',0xb6:'∂',0xb7:'•',0xb8:'÷',0xb9:'≠',0xba:'≡',0xbb:'≈',0xbc:'…',0xbd:'\uf8e6',0xbe:'\uf8e7',0xbf:'↵',0xc0:'ℵ',0xc1:'',0xc2:'',0xc3:'℘',0xc4:'⊗',0xc5:'⊕',0xc6:'∅',0xc7:'∩',0xc8:'',0xc9:'⊃',0xca:'⊇',0xcb:'⊄',0xcc:'⊂',0xcd:'⊆',0xce:'∈',0xcf:'∉',0xd0:'∠',0xd1:'∇',0xd2:'\uf6da',0xd3:'\uf6d9',0xd4:'\uf6db',0xd5:'∏',0xd6:'√',0xd7:'⋅',0xd8:'¬',0xd9:'∧',0xda:'',0xdb:'⇔',0xdc:'⇐',0xdd:'⇑',0xde:'⇒',0xdf:'⇓',0xe0:'◊',0xe1:'〈',0xe2:'\uf8e8',0xe3:'\uf8e9',0xe4:'\uf8ea',0xe5:'∑',0xe6:'\uf8eb',0xe7:'\uf8ec',0xe8:'\uf8ed',0xe9:'\uf8ee',0xea:'\uf8ef',0xeb:'\uf8f0',0xec:'\uf8f1',0xed:'\uf8f2',0xee:'\uf8f3',0xef:'\uf8f4',0xf1:'〉',0xf2:'∫',0xf3:'⌠',0xf4:'\uf8f5',0xf5:'⌡',0xf6:'\uf8f6',0xf7:'\uf8f7',0xf8:'\uf8f8',0xf9:'\uf8f9',0xfa:'\uf8fa',0xfb:'\uf8fb',0xfc:'\uf8fc',0xfd:'\uf8fd',0xfe:'\uf8fe'});
func RuneToString (r rune )string {if _abbb ,_agg :=_daca .Read (r );_agg {return _abbb ;};return string (r );};var _eccf =_eb .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'\'',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'`',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0x7f:'•',0x80:'€',0x81:'•',0x82:'',0x83:'ƒ',0x84:'„',0x85:'…',0x86:'†',0x87:'‡',0x88:'ˆ',0x89:'‰',0x8a:'Š',0x8b:'',0x8c:'Œ',0x8d:'•',0x8e:'Ž',0x8f:'•',0x90:'•',0x91:'',0x92:'',0x93:'“',0x94:'”',0x95:'•',0x96:'',0x97:'—',0x98:'˜',0x99:'™',0x9a:'š',0x9b:'',0x9c:'œ',0x9d:'•',0x9e:'ž',0x9f:'Ÿ',0xa0:' ',0xa1:'¡',0xa2:'¢',0xa3:'£',0xa4:'¤',0xa5:'¥',0xa6:'¦',0xa7:'§',0xa8:'¨',0xa9:'©',0xaa:'ª',0xab:'«',0xac:'¬',0xad:'-',0xae:'®',0xaf:'¯',0xb0:'°',0xb1:'±',0xb2:'²',0xb3:'³',0xb4:'´',0xb5:'µ',0xb6:'¶',0xb7:'·',0xb8:'¸',0xb9:'¹',0xba:'º',0xbb:'»',0xbc:'¼',0xbd:'½',0xbe:'¾',0xbf:'¿',0xc0:'À',0xc1:'Á',0xc2:'Â',0xc3:'Ã',0xc4:'Ä',0xc5:'Å',0xc6:'Æ',0xc7:'Ç',0xc8:'È',0xc9:'É',0xca:'Ê',0xcb:'Ë',0xcc:'Ì',0xcd:'Í',0xce:'Î',0xcf:'Ï',0xd0:'Ð',0xd1:'Ñ',0xd2:'Ò',0xd3:'Ó',0xd4:'Ô',0xd5:'Õ',0xd6:'Ö',0xd7:'×',0xd8:'Ø',0xd9:'Ù',0xda:'Ú',0xdb:'Û',0xdc:'Ü',0xdd:'Ý',0xde:'Þ',0xdf:'ß',0xe0:'à',0xe1:'á',0xe2:'â',0xe3:'ã',0xe4:'ä',0xe5:'å',0xe6:'æ',0xe7:'ç',0xe8:'è',0xe9:'é',0xea:'ê',0xeb:'ë',0xec:'ì',0xed:'í',0xee:'î',0xef:'ï',0xf0:'ð',0xf1:'ñ',0xf2:'ò',0xf3:'ó',0xf4:'ô',0xf5:'õ',0xf6:'ö',0xf7:'÷',0xf8:'ø',0xf9:'ù',0xfa:'ú',0xfb:'û',0xfc:'ü',0xfd:'ý',0xfe:'þ',0xff:'ÿ'});
func (_cgf *TrueTypeFontEncoder )Encode (str string )[]byte {return _dbbb (_cgf ,str )};func (_fca *differencesEncoding )ToPdfObject ()_fg .PdfObject {_dacg :=_fg .MakeDict ();_dacg .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
_dacg .Set ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fca ._fba .ToPdfObject ());if _def :=_ee (_fca ._baeg );_def !=nil {_dacg .Set ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073",_def );}else {_cgd .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0066\u006f\u006e\u0074\u0020\u0044\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073\u0020\u0061\u0072\u0072\u0061y\u0020i\u0073\u0020\u006e\u0069l\u002e\u0020O\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
};return _fg .MakeIndirectObject (_dacg );};type TextEncoder interface{String ()string ;Encode (_eae string )[]byte ;Decode (_bfb []byte )string ;RuneToCharcode (_bbb rune )(CharCode ,bool );CharcodeToRune (_afg CharCode )(rune ,bool );ToPdfObject ()_fg .PdfObject ;
};var (_ccb =_bdeb (_ecda ,_dbe );_gdeg =_bdeb (_bgd ,_bec ););type GlyphName string ;var _fdgb =_eb .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'\uf721',0x22:'\uf6f8',0x23:'\uf7a2',0x24:'\uf724',0x25:'\uf6e4',0x26:'\uf726',0x27:'\uf7b4',0x28:'⁽',0x29:'⁾',0x2a:'‥',0x2b:'',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'',0x30:'\uf730',0x31:'\uf731',0x32:'\uf732',0x33:'\uf733',0x34:'\uf734',0x35:'\uf735',0x36:'\uf736',0x37:'\uf737',0x38:'\uf738',0x39:'\uf739',0x3a:':',0x3b:';',0x3d:'\uf6de',0x3f:'\uf73f',0x44:'\uf7f0',0x47:'¼',0x48:'½',0x49:'¾',0x4a:'⅛',0x4b:'⅜',0x4c:'⅝',0x4d:'⅞',0x4e:'⅓',0x4f:'⅔',0x56:'ff',0x57:'fi',0x58:'fl',0x59:'ffi',0x5a:'ffl',0x5b:'₍',0x5d:'₎',0x5e:'\uf6f6',0x5f:'\uf6e5',0x60:'\uf760',0x61:'\uf761',0x62:'\uf762',0x63:'\uf763',0x64:'\uf764',0x65:'\uf765',0x66:'\uf766',0x67:'\uf767',0x68:'\uf768',0x69:'\uf769',0x6a:'\uf76a',0x6b:'\uf76b',0x6c:'\uf76c',0x6d:'\uf76d',0x6e:'\uf76e',0x6f:'\uf76f',0x70:'\uf770',0x71:'\uf771',0x72:'\uf772',0x73:'\uf773',0x74:'\uf774',0x75:'\uf775',0x76:'\uf776',0x77:'\uf777',0x78:'\uf778',0x79:'\uf779',0x7a:'\uf77a',0x7b:'₡',0x7c:'\uf6dc',0x7d:'\uf6dd',0x7e:'\uf6fe',0x81:'\uf6e9',0x82:'\uf6e0',0x87:'\uf7e1',0x88:'\uf7e0',0x89:'\uf7e2',0x8a:'\uf7e4',0x8b:'\uf7e3',0x8c:'\uf7e5',0x8d:'\uf7e7',0x8e:'\uf7e9',0x8f:'\uf7e8',0x90:'\uf7ea',0x91:'\uf7eb',0x92:'\uf7ed',0x93:'\uf7ec',0x94:'\uf7ee',0x95:'\uf7ef',0x96:'\uf7f1',0x97:'\uf7f3',0x98:'\uf7f2',0x99:'\uf7f4',0x9a:'\uf7f6',0x9b:'\uf7f5',0x9c:'\uf7fa',0x9d:'\uf7f9',0x9e:'\uf7fb',0x9f:'\uf7fc',0xa1:'⁸',0xa2:'₄',0xa3:'₃',0xa4:'₆',0xa5:'₈',0xa6:'₇',0xa7:'\uf6fd',0xa9:'\uf6df',0xaa:'₂',0xac:'\uf7a8',0xae:'\uf6f5',0xaf:'\uf6f0',0xb0:'₅',0xb2:'\uf6e1',0xb3:'\uf6e7',0xb4:'\uf7fd',0xb6:'\uf6e3',0xb9:'\uf7fe',0xbb:'₉',0xbc:'₀',0xbd:'\uf6ff',0xbe:'\uf7e6',0xbf:'\uf7f8',0xc0:'\uf7bf',0xc1:'₁',0xc2:'\uf6f9',0xc9:'\uf7b8',0xcf:'\uf6fa',0xd0:'',0xd1:'\uf6e6',0xd6:'\uf7a1',0xd8:'\uf7ff',0xda:'¹',0xdb:'²',0xdc:'³',0xdd:'⁴',0xde:'⁵',0xdf:'⁶',0xe0:'⁷',0xe1:'⁹',0xe2:'⁰',0xe4:'\uf6ec',0xe5:'\uf6f1',0xe6:'\uf6f3',0xe9:'\uf6ed',0xea:'\uf6f2',0xeb:'\uf6eb',0xf1:'\uf6ee',0xf2:'\uf6fb',0xf3:'\uf6f4',0xf4:'\uf7af',0xf5:'\uf6ea',0xf6:'ⁿ',0xf7:'\uf6ef',0xf8:'\uf6e2',0xf9:'\uf6e8',0xfa:'\uf6f7',0xfb:'\uf6fc'});
func NewWinAnsiEncoder ()SimpleEncoder {return _gdfd .NewEncoder ()};func (_fbfd UTF16Encoder )CharcodeToRune (code CharCode )(rune ,bool ){return rune (code ),true };var _daca =_eb .NewRuneStringMap (map[rune ]string {'Ꜳ':"\u0041\u0041",'ꜳ':"\u0061\u0061",'Ꜵ':"\u0061\u0061",'ꜵ':"\u0061\u006f",'Ꜷ':"\u0041\u0055",'ꜷ':"\u0061\u0075",'Ꜽ':"\u0041\u0059",'ꜽ':"\u0061\u0079",'\U0001f670':"\u0065\u0074",'ff':"\u0066\u0066",'ffi':"\u0066\u0066\u0069",'ffl':"\u0066\u0066\u006c",'fi':"\u0066\u0069",'fl':"\u0066\u006c",'Œ':"\u004f\u0045",'œ':"\u006f\u0065",'Ꝏ':"\u004f\u004f",'ꝏ':"\u006f\u006f",'st':"\u0073\u0074",'ſt':"\u017f\u0074",'Ꜩ':"\u0054\u005a",'ꜩ':"\u0074\u007a",'ᵫ':"\u0075\u0065",'Ꝡ':"\u0056\u0059",'ꝡ':"\u0076\u0079",0xe000:"\u0066\u0074",0xe001:"\u0066\u006a",0xe002:"\u0066\u0062",0xe003:"\u0066\u0068",0xe004:"\u0066\u006b",0xe005:"\u0074\u0074",0xe006:"\u0074\u0066",0xe007:"\u0066\u0066\u006a",0xe008:"\u0066\u0066\u0062",0xe009:"\u0066\u0066\u0068",0xe00a:"\u0066\u0066\u006b",0xe00b:"\u0054\u005f\u0068"});
type simpleEncoder struct{_bfa *_eb .RuneByteMap };func (_cfee *TrueTypeFontEncoder )SubsetRegistered (){_cgd .Log .Info ("\u0054\u0054\u0046\u0020Su\u0062\u0073\u0065\u0074\u003a\u0020\u0050\u0072\u0075\u006e\u0069\u006e\u0067");_cfee ._dffd .RangeDelete (func (_add rune ,_ uint16 )(_gaeg bool ,_ggba bool ){return !_cfee ._dgeb .Exists (_add ),_ggba });
};type differencesEncoding struct{_fba SimpleEncoder ;_baeg *charCodeGlyphNameMap ;_bcd *_eb .ByteRuneMap ;_ef *_eb .RuneByteMap ;};func RuneToGlyph (r rune )(GlyphName ,bool ){_gcf ,_eafc :=_cda .Read (r );if !_eafc &&r > 0{_gcf =_d .Sprintf ("\u0075n\u0069\u0025\u0030\u0034\u0078",r );
_eafc =true ;};return GlyphName (_gcf ),_eafc ;};type CMapEncoder struct{_gc string ;_ded *_dg .CMap ;_bb *_dg .CMap ;};type simpleEncodersMap struct{_feef map[string ]func ()SimpleEncoder ;_bcgg _e .RWMutex ;};func (_baf *differencesEncoding )RuneToCharcode (r rune )(CharCode ,bool ){if _ffe ,_dceb :=_baf ._ef .Read (r );
_dceb {return CharCode (_ffe ),true ;};return _baf ._fba .RuneToCharcode (r );};var _cda =_eb .NewRuneStringMap (map[rune ]string {0xfffd:"\u002en\u006f\u0074\u0064\u0065\u0066",0x250a:"\u0032\u0035\u0030\u0061",0x250b:"\u0032\u0035\u0030\u0062",0x250d:"\u0032\u0035\u0030\u0064",0x250e:"\u0032\u0035\u0030\u0065",0x250f:"\u0032\u0035\u0030\u0066",0x251a:"\u0032\u0035\u0031\u0061",0x251b:"\u0032\u0035\u0031\u0062",0x251d:"\u0032\u0035\u0031\u0064",0x251e:"\u0032\u0035\u0031\u0065",0x251f:"\u0032\u0035\u0031\u0066",0x252a:"\u0032\u0035\u0032\u0061",0x252b:"\u0032\u0035\u0032\u0062",0x252d:"\u0032\u0035\u0032\u0064",0x252e:"\u0032\u0035\u0032\u0065",0x252f:"\u0032\u0035\u0032\u0066",0x253a:"\u0032\u0035\u0033\u0061",0x253b:"\u0032\u0035\u0033\u0062",0x253d:"\u0032\u0035\u0033\u0064",0x253e:"\u0032\u0035\u0033\u0065",0x253f:"\u0032\u0035\u0033\u0066",0x254a:"\u0032\u0035\u0034\u0061",0x254b:"\u0032\u0035\u0034\u0062",0x254c:"\u0032\u0035\u0034\u0063",0x254d:"\u0032\u0035\u0034\u0064",0x254e:"\u0032\u0035\u0034\u0065",0x254f:"\u0032\u0035\u0034\u0066",0x256d:"\u0032\u0035\u0036\u0064",0x256e:"\u0032\u0035\u0036\u0065",0x256f:"\u0032\u0035\u0036\u0066",0x257a:"\u0032\u0035\u0037\u0061",0x257b:"\u0032\u0035\u0037\u0062",0x257c:"\u0032\u0035\u0037\u0063",0x257d:"\u0032\u0035\u0037\u0064",0x257e:"\u0032\u0035\u0037\u0065",0x257f:"\u0032\u0035\u0037\u0066",0x0041:"\u0041",0x00c6:"\u0041\u0045",0x01fc:"\u0041E\u0061\u0063\u0075\u0074\u0065",0x01e2:"\u0041\u0045\u006d\u0061\u0063\u0072\u006f\u006e",0xf7e6:"\u0041E\u0073\u006d\u0061\u006c\u006c",0x2370:"\u0041\u0050\u004c\u0062\u006f\u0078\u0071\u0075\u0065s\u0074\u0069\u006f\u006e",0x2353:"\u0041\u0050\u004c\u0062\u006f\u0078\u0075\u0070\u0063\u0061\u0072\u0065\u0074",0x2340:"\u0041P\u004cn\u006f\u0074\u0062\u0061\u0063\u006b\u0073\u006c\u0061\u0073\u0068",0x233f:"A\u0050\u004c\u006e\u006f\u0074\u0073\u006c\u0061\u0073\u0068",0x00c1:"\u0041\u0061\u0063\u0075\u0074\u0065",0xf7e1:"A\u0061\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c",0x0102:"\u0041\u0062\u0072\u0065\u0076\u0065",0x1eae:"A\u0062\u0072\u0065\u0076\u0065\u0061\u0063\u0075\u0074\u0065",0x04d0:"\u0041\u0062\u0072\u0065\u0076\u0065\u0063\u0079\u0072i\u006c\u006c\u0069\u0063",0x1eb6:"\u0041\u0062\u0072\u0065\u0076\u0065\u0064\u006f\u0074b\u0065\u006c\u006f\u0077",0x1eb0:"A\u0062\u0072\u0065\u0076\u0065\u0067\u0072\u0061\u0076\u0065",0x1eb2:"\u0041b\u0072e\u0076\u0065\u0068\u006f\u006f\u006b\u0061\u0062\u006f\u0076\u0065",0x1eb4:"A\u0062\u0072\u0065\u0076\u0065\u0074\u0069\u006c\u0064\u0065",0x01cd:"\u0041\u0063\u0061\u0072\u006f\u006e",0x24b6:"\u0041c\u0069\u0072\u0063\u006c\u0065",0x00c2:"A\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078",0x1ea4:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0061\u0063\u0075\u0074\u0065",0x1eac:"\u0041\u0063\u0069\u0072cu\u006d\u0066\u006c\u0065\u0078\u0064\u006f\u0074\u0062\u0065\u006c\u006f\u0077",0x1ea6:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0067\u0072\u0061\u0076\u0065",0x1ea8:"A\u0063i\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078h\u006f\u006f\u006b\u0061bo\u0076\u0065",0xf7e2:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0073\u006d\u0061\u006c\u006c",0x1eaa:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0074\u0069\u006c\u0064\u0065",0xf6c9:"\u0041\u0063\u0075t\u0065",0xf7b4:"\u0041\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c",0x0200:"\u0041d\u0062\u006c\u0067\u0072\u0061\u0076e",0x00c4:"\u0041d\u0069\u0065\u0072\u0065\u0073\u0069s",0x04d2:"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073\u0063\u0079\u0072i\u006c\u006c\u0069\u0063",0x01de:"\u0041d\u0069e\u0072\u0065\u0073\u0069\u0073\u006d\u0061\u0063\u0072\u006f\u006e",0xf7e4:"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073s\u006d\u0061\u006c\u006c",0x1ea0:"\u0041d\u006f\u0074\u0062\u0065\u006c\u006fw",0x01e0:"\u0041\u0064\u006f\u0074\u006d\u0061\u0063\u0072\u006f\u006e",0x00c0:"\u0041\u0067\u0072\u0061\u0076\u0065",0xf7e0:"A\u0067\u0072\u0061\u0076\u0065\u0073\u006d\u0061\u006c\u006c",0x1ea2:"\u0041\u0068\u006f\u006f\u006b\u0061\u00
type simpleMapping struct{_fec string ;_dgce _e .Once ;_ecac *_eb .ByteRuneMap ;_aadd *_eb .RuneByteMap ;};func (_fc *differencesEncoding )Encode (str string )[]byte {_agf :=[]rune (str );_dab :=_fb .NewBuffer (nil );_dab .Grow (len (_agf ));for _ ,_fcg :=range _agf {_gfc ,_ :=_fc .RuneToCharcode (_fcg );
_dab .WriteByte (byte (_gfc ));};return _dab .Bytes ();};const _gcdad ="\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";var (_gdfd =_bdeb (_gcdad ,_eccf ););func (_egad *simpleEncoding )RuneToCharcode (r rune )(CharCode ,bool ){_caae ,_bba :=_egad ._bdf .Read (r );
if _egad ._ada ==nil {_egad ._ada =_eb .MakeRuneSet (1);};_egad ._ada .Write (r );return CharCode (_caae ),_bba ;};func (_ffb *charCodeGlyphNameMap )Delete (key CharCode ){_ffb ._ba .Lock ();defer _ffb ._ba .Unlock ();delete (_ffb ._bc ,key );};var (_baef =_f .MustCompile ("\u005e\u005b\u0041\u002dZa\u002d\u007a\u005d\u0028\u005c\u0064\u007b\u0031\u002c\u0035\u007d\u0029\u0024");
_dfg =_f .MustCompile ("\u005e\u0075\u006e\u0069\u0028\u005b\u005c\u0064\u0041\u002d\u0046\u005d{\u0034\u007d\u0029\u0024");_dff =_f .MustCompile ("\u005e\u0028\u005cw\u002b\u0029\u005c\u002e\u005c\u0077\u002b\u0024"););func (_aa *charCodeGlyphNameMap )Read (key CharCode )(GlyphName ,bool ){_aa ._ba .RLock ();
defer _aa ._ba .RUnlock ();_cfg ,_dc :=_aa ._bc [key ];return _cfg ,_dc ;};var _dfd =_eb .NewStringRuneMap (map[string ]rune {"\u002en\u006f\u0074\u0064\u0065\u0066":0xfffd,"\u0032\u0035\u0030\u0061":0x250a,"\u0032\u0035\u0030\u0062":0x250b,"\u0032\u0035\u0030\u0064":0x250d,"\u0032\u0035\u0030\u0065":0x250e,"\u0032\u0035\u0030\u0066":0x250f,"\u0032\u0035\u0031\u0061":0x251a,"\u0032\u0035\u0031\u0062":0x251b,"\u0032\u0035\u0031\u0064":0x251d,"\u0032\u0035\u0031\u0065":0x251e,"\u0032\u0035\u0031\u0066":0x251f,"\u0032\u0035\u0032\u0061":0x252a,"\u0032\u0035\u0032\u0062":0x252b,"\u0032\u0035\u0032\u0064":0x252d,"\u0032\u0035\u0032\u0065":0x252e,"\u0032\u0035\u0032\u0066":0x252f,"\u0032\u0035\u0033\u0061":0x253a,"\u0032\u0035\u0033\u0062":0x253b,"\u0032\u0035\u0033\u0064":0x253d,"\u0032\u0035\u0033\u0065":0x253e,"\u0032\u0035\u0033\u0066":0x253f,"\u0032\u0035\u0034\u0061":0x254a,"\u0032\u0035\u0034\u0062":0x254b,"\u0032\u0035\u0034\u0063":0x254c,"\u0032\u0035\u0034\u0064":0x254d,"\u0032\u0035\u0034\u0065":0x254e,"\u0032\u0035\u0034\u0066":0x254f,"\u0032\u0035\u0036\u0064":0x256d,"\u0032\u0035\u0036\u0065":0x256e,"\u0032\u0035\u0036\u0066":0x256f,"\u0032\u0035\u0037\u0061":0x257a,"\u0032\u0035\u0037\u0062":0x257b,"\u0032\u0035\u0037\u0063":0x257c,"\u0032\u0035\u0037\u0064":0x257d,"\u0032\u0035\u0037\u0065":0x257e,"\u0032\u0035\u0037\u0066":0x257f,"\u0041":0x0041,"\u0041\u0045":0x00c6,"\u0041E\u0061\u0063\u0075\u0074\u0065":0x01fc,"\u0041\u0045\u006d\u0061\u0063\u0072\u006f\u006e":0x01e2,"\u0041E\u0073\u006d\u0061\u006c\u006c":0xf7e6,"\u0041\u0050\u004c\u0062\u006f\u0078\u0071\u0075\u0065s\u0074\u0069\u006f\u006e":0x2370,"\u0041\u0050\u004c\u0062\u006f\u0078\u0075\u0070\u0063\u0061\u0072\u0065\u0074":0x2353,"\u0041P\u004cn\u006f\u0074\u0062\u0061\u0063\u006b\u0073\u006c\u0061\u0073\u0068":0x2340,"A\u0050\u004c\u006e\u006f\u0074\u0073\u006c\u0061\u0073\u0068":0x233f,"\u0041\u0061\u0063\u0075\u0074\u0065":0x00c1,"A\u0061\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c":0xf7e1,"\u0041\u0062\u0072\u0065\u0076\u0065":0x0102,"A\u0062\u0072\u0065\u0076\u0065\u0061\u0063\u0075\u0074\u0065":0x1eae,"\u0041\u0062\u0072\u0065\u0076\u0065\u0063\u0079\u0072i\u006c\u006c\u0069\u0063":0x04d0,"\u0041\u0062\u0072\u0065\u0076\u0065\u0064\u006f\u0074b\u0065\u006c\u006f\u0077":0x1eb6,"A\u0062\u0072\u0065\u0076\u0065\u0067\u0072\u0061\u0076\u0065":0x1eb0,"\u0041b\u0072e\u0076\u0065\u0068\u006f\u006f\u006b\u0061\u0062\u006f\u0076\u0065":0x1eb2,"A\u0062\u0072\u0065\u0076\u0065\u0074\u0069\u006c\u0064\u0065":0x1eb4,"\u0041\u0063\u0061\u0072\u006f\u006e":0x01cd,"\u0041c\u0069\u0072\u0063\u006c\u0065":0x24b6,"A\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078":0x00c2,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0061\u0063\u0075\u0074\u0065":0x1ea4,"\u0041\u0063\u0069\u0072cu\u006d\u0066\u006c\u0065\u0078\u0064\u006f\u0074\u0062\u0065\u006c\u006f\u0077":0x1eac,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0067\u0072\u0061\u0076\u0065":0x1ea6,"A\u0063i\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078h\u006f\u006f\u006b\u0061bo\u0076\u0065":0x1ea8,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0073\u006d\u0061\u006c\u006c":0xf7e2,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0074\u0069\u006c\u0064\u0065":0x1eaa,"\u0041\u0063\u0075t\u0065":0xf6c9,"\u0041\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c":0xf7b4,"\u0041d\u0062\u006c\u0067\u0072\u0061\u0076e":0x0200,"\u0041d\u0069\u0065\u0072\u0065\u0073\u0069s":0x00c4,"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073\u0063\u0079\u0072i\u006c\u006c\u0069\u0063":0x04d2,"\u0041d\u0069e\u0072\u0065\u0073\u0069\u0073\u006d\u0061\u0063\u0072\u006f\u006e":0x01de,"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073s\u006d\u0061\u006c\u006c":0xf7e4,"\u0041d\u006f\u0074\u0062\u0065\u006c\u006fw":0x1ea0,"\u0041\u0064\u006f\u0074\u006d\u0061\u0063\u0072\u006f\u006e":0x01e0,"\u0041\u0067\u0072\u0061\u0076\u0065":0x00c0,"A\u0067\u0072\u0061\u0076\u0065\u0073\u006d\u0061\u006c\u006c":0xf7e0,"\u0041\u0068\u006f\u006f\u006b\u0061\u0062\u006f\u00
type CharCode uint16 ;func (_ega *IdentityEncoder )Decode (raw []byte )string {return _aag (_ega ,raw )};var (_ SimpleEncoder =(*simpleEncoding )(nil );_ _fe .Encoding =(*simpleEncoding )(nil ););func (_gaga *simpleMapping )init (){_gaga ._aadd =_eb .MakeRuneByteMap (_gaga ._ecac .Length ());
_gaga ._ecac .Range (func (_agfcb byte ,_eag rune )(_eggc bool ){if _ffa ,_ccg :=_gaga ._aadd .Read (_eag );!_ccg ||_agfcb < _ffa {_gaga ._aadd .Write (_eag ,_agfcb );};return false ;});};func _dgdf (_cfgf TextEncoder ,_afa string )[]byte {_bcb :=make ([]byte ,0,len (_afa ));
for _ ,_gag :=range _afa {_ecc ,_dgc :=_cfgf .RuneToCharcode (_gag );if !_dgc ||_ecc > 0xff{_cgd .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020\u0066\u006f\u0072\u0020\u0072\u0075\u006e\u0065\u0020\u0030\u0078\u0025\u0030\u0034\u0078",_gag );
continue ;};_bcb =append (_bcb ,byte (_ecc ));};return _bcb ;};type IdentityEncoder struct{_edb string ;_dfbf *_eb .RuneSet ;};func ApplyDifferences (base SimpleEncoder ,differences map[CharCode ]GlyphName )SimpleEncoder {if len (differences )==0{return base ;
};_dac :=make ([]charCodeGlyphNameTuple ,len (differences ));var _eaa int ;for _dbc ,_adc :=range differences {_dac [_eaa ]=charCodeGlyphNameTuple {CharCode :_dbc ,GlyphName :_adc };_eaa ++;};_bee :=&differencesEncoding {_fba :base ,_baeg :_ca (_dac ...),_bcd :_eb .MakeByteRuneMap (len (differences )),_ef :_eb .MakeRuneByteMap (len (differences ))};
if _bff ,_bfg :=base .(*differencesEncoding );_bfg {_fde :=make (map[CharCode ]GlyphName );_bff ._baeg .Range (func (_dba CharCode ,_dfb GlyphName )(_aad bool ){_fde [_dba ]=_dfb ;return false });_bee ._baeg .Range (func (_afe CharCode ,_cbg GlyphName )(_bg bool ){_fde [_afe ]=_cbg ;
return false });differences =_fde ;};for _cdg ,_afb :=range differences {_gfd :=byte (_cdg );_dbbd ,_acc :=GlyphToRune (_afb );if _acc {_bee ._ef .Write (_dbbd ,_gfd );}else {_cgd .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u004e\u006f \u006d\u0061\u0074c\u0068\u0020\u0066\u006f\u0072\u0020\u0067\u006c\u0079ph\u003d\u0025\u0071 \u0064\u0069f\u0066\u0065\u0072\u0065\u006e\u0063e\u0073\u003d%\u002b\u0076",_afb ,differences );
};_bee ._bcd .Write (_gfd ,_dbbd );};return _bee ;};func _bdeb (_beeg string ,_ccd *_eb .ByteRuneMap )*simpleMapping {return &simpleMapping {_fec :_beeg ,_ecac :_ccd };};func (_ace UTF16Encoder )ToPdfObject ()_fg .PdfObject {if _ace ._dabe !=""{return _fg .MakeName (_ace ._dabe );
};return _fg .MakeNull ();};func NewSymbolEncoder ()SimpleEncoder {return _ccb .NewEncoder ()};type UTF16Encoder struct{_dabe string };func init (){RegisterSimpleEncoding (_aed ,NewMacExpertEncoder );RegisterSimpleEncoding (_acfb ,NewMacRomanEncoder );
};func _cgec (_fagb rune )string {_beg :="u\u006e\u0070\u0072\u0069\u006e\u0074\u0061\u0062\u006c\u0065";if _a .IsPrint (_fagb ){_beg =_d .Sprintf ("\u0025\u0023\u0071",_fagb );};return _d .Sprintf ("\u0025\u002b\u0071\u0020\u0028\u0025\u0073\u0029",_fagb ,_beg );
};func (_ebf *charCodeGlyphNameMap )Write (k CharCode ,v GlyphName ){_ebf ._ba .Lock ();defer _ebf ._ba .Unlock ();_ebf ._bc [k ]=v ;};func (_ag CMapEncoder )Encode (str string )[]byte {if _ag ._bb ==nil {return []byte {};};if _ag ._bb .NBits ()==8{return _dgdf (_ag ,str );
};return _dbbb (_ag ,str );};type charCodeGlyphNameTuple struct{CharCode CharCode ;GlyphName GlyphName ;};func (_bcdg *simpleEncoding )Charcodes ()[]CharCode {_agfc :=make ([]CharCode ,0,_bcdg ._cbcf .Length ());_bcdg ._cbcf .Range (func (_gge byte ,_ rune )(_fada bool ){_agfc =append (_agfc ,CharCode (_gge ));
return false });_g .Slice (_agfc ,func (_eac ,_dgec int )bool {return _agfc [_eac ]< _agfc [_dgec ]});return _agfc ;};func (_gbf *simpleEncodersMap )Write (s string ,f func ()SimpleEncoder ){_gbf ._bcgg .Lock ();defer _gbf ._bcgg .Unlock ();_gbf ._feef [s ]=f ;
};func init (){RegisterSimpleEncoding (_ecda ,NewSymbolEncoder );RegisterSimpleEncoding (_bgd ,NewZapfDingbatsEncoder );};const (_aed ="\u004d\u0061\u0063\u0045\u0078\u0070\u0065\u0072\u0074\u0045\u006e\u0063o\u0064\u0069\u006e\u0067";_acfb ="\u004d\u0061c\u0052\u006f\u006da\u006e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
);func (_abd *TrueTypeFontEncoder )RegisteredRunes ()[]rune {_ccde :=make ([]rune ,_abd ._dgeb .Length ());_abg :=0;_abd ._dgeb .Range (func (_gdegc rune )(_gfaa bool ){_ccde [_abg ]=_gdegc ;_abg ++;return false });return _ccde ;};type charCodeGlyphNameMap struct{_bc map[CharCode ]GlyphName ;
_ba _e .RWMutex ;};func (_geg *IdentityEncoder )RuneToCharcode (r rune )(CharCode ,bool ){_geg ._dfbf .Write (r );return CharCode (r ),true ;};func (_cecf *TrueTypeFontEncoder )RuneToCharcode (r rune )(CharCode ,bool ){_abdf ,_fcc :=_cecf ._dffd .Read (r );
if !_fcc {_cgd .Log .Debug ("M\u0069\u0073\u0073\u0069\u006e\u0067 \u0072\u0075\u006e\u0065\u0020\u0025d\u0020\u0028\u0025\u002b\u0071\u0029\u0020f\u0072\u006f\u006d\u0020\u0065\u006e\u0063\u006f\u0064\u0069n\u0067",r ,r );return 0,false ;};_cecf ._dgeb .Write (r );
_dfge :=CharCode (_abdf );return _dfge ,true ;};func (_bbf *differencesEncoding )Charcodes ()[]CharCode {_ebba :=_bbf ._fba .Charcodes ();_gbe :=true ;_fadc :=make (map[CharCode ]struct{},len (_ebba ));for _ ,_eca :=range _ebba {_fadc [_eca ]=struct{}{};
};_bbf ._bcd .Range (func (_dgb byte ,_bagf rune )(_gcb bool ){_ebe :=CharCode (_dgb );if _ ,_gga :=_fadc [_ebe ];!_gga {_ebba =append (_ebba ,_ebe );_gbe =false ;};return false ;});if !_gbe {_g .Slice (_ebba ,func (_fgc ,_cgb int )bool {return _ebba [_fgc ]< _ebba [_cgb ]});
};return _ebba ;};func init (){RegisterSimpleEncoding (_cec ,NewPdfDocEncoder );RegisterSimpleEncoding (_gaff ,NewStandardEncoder );};func _eff (_aee string ,_dag *_eb .ByteRuneMap )SimpleEncoder {_gea :=&simpleEncoding {_efd :_aee ,_cbcf :_dag ,_bdf :_eb .MakeRuneByteMap (_dag .Length ())};
_gea ._cbcf .Range (func (_ffgb byte ,_gbef rune )(_ggbd bool ){if _gefb ,_gae :=_gea ._bdf .Read (_gbef );!_gae ||_ffgb < _gefb {_gea ._bdf .Write (_gbef ,_ffgb );};return false ;});return _gea ;};func NewMacRomanEncoder ()SimpleEncoder {return _dbab .NewEncoder ()};
type simpleDecoder struct{_ebcc *_eb .ByteRuneMap };func (_dcd CMapEncoder )charcodeToString (_fdb CharCode )(string ,bool ){if _dcd ._bb ==nil {return MissingCodeString ,false ;};_bd :=_dg .CharCode (_fdb );if _dcd ._ded !=nil {var _cd bool ;if _bd ,_cd =_dcd ._ded .CharcodeToCID (_dg .CharCode (_fdb ));
!_cd {return MissingCodeString ,false ;};};return _dcd ._bb .CharcodeToUnicode (_bd );};var _daae =_eb .NewStringsMap (_dga [:]);func (_ddg UTF16Encoder )String ()string {return _ddg ._dabe };func init (){RegisterSimpleEncoding (_gcdad ,NewWinAnsiEncoder )};
func (_ec *differencesEncoding )BaseName ()string {return _ec ._fba .BaseName ()};func (_gee *TrueTypeFontEncoder )CharcodeToRune (code CharCode )(rune ,bool ){_ebda :=rune (-1);_gee ._dffd .Range (func (_cdba rune ,_fcae uint16 )(_eef bool ){_bdce :=CharCode (_fcae );
if _bdce ==code {_ebda =_cdba ;return true ;};return false ;});if _ebda !=-1{return _ebda ,true ;};_cgd .Log .Debug ("\u0043h\u0061\u0072c\u006f\u0064\u0065\u0054o\u0052\u0075\u006ee\u003a\u0020\u004e\u006f\u0020\u006d\u0061\u0074\u0063h.\u0020\u0063\u006fd\u0065\u003d0\u0078\u0025\u0030\u0034\u0078\u0020e\u006e\u0063=\u0025\u0073",code ,_gee );
return 0,false ;};func (_df *charCodeGlyphNameMap )RangeDelete (f func (_de CharCode ,_fab GlyphName )(_bcf bool ,_fff bool )){_df ._ba .Lock ();defer _df ._ba .Unlock ();for _bae ,_fga :=range _df ._bc {_db ,_fad :=f (_bae ,_fga );if _db {delete (_df ._bc ,_bae );
};if _fad {break ;};};};func NewSimpleTextEncoder (baseName string ,differences map[CharCode ]GlyphName )(SimpleEncoder ,error ){_bcdf ,_efb :=_gdd .Read (baseName );if !_efb {_cgd .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004ee\u0077\u0053\u0069mp\u006c\u0065\u0054\u0065\u0078\u0074E\u006e\u0063\u006f\u0064\u0065\u0072\u002e\u0020\u0055\u006e\u006b\u006e\u006f\u0077\u006e \u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067 \u0025\u0071",baseName );
return nil ,_bf .Errorf ("\u0075\u006e\u0073up\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u006fn\u0074 \u0065n\u0063o\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0071\u0020\u0028\u0025\u0077\u0029",baseName ,_fg .ErrNotSupported );};_eab :=_bcdf ();
if len (differences )!=0{_eab =ApplyDifferences (_eab ,differences );};return _eab ,nil ;};var _cbcg =_eb .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0xa1:'¡',0xa2:'¢',0xa3:'£',0xa4:'',0xa5:'¥',0xa6:'ƒ',0xa7:'§',0xa8:'¤',0xa9:'\'',0xaa:'“',0xab:'«',0xac:'',0xad:'',0xae:'fi',0xaf:'fl',0xb1:'',0xb2:'†',0xb3:'‡',0xb4:'·',0xb6:'¶',0xb7:'•',0xb8:'',0xb9:'„',0xba:'”',0xbb:'»',0xbc:'…',0xbd:'‰',0xbf:'¿',0xc1:'`',0xc2:'´',0xc3:'ˆ',0xc4:'˜',0xc5:'¯',0xc6:'˘',0xc7:'˙',0xc8:'¨',0xca:'˚',0xcb:'¸',0xcc:'˝',0xcd:'˛',0xce:'ˇ',0xcf:'—',0xe1:'Æ',0xe3:'ª',0xe8:'Ł',0xe9:'Ø',0xea:'Œ',0xeb:'º',0xf1:'æ',0xf5:'ı',0xf8:'ł',0xf9:'ø',0xfa:'œ',0xfb:'ß'});
func (_gad UTF16Encoder )RuneToCharcode (r rune )(CharCode ,bool ){return CharCode (r ),true };const (_cec ="\u0050\u0064\u0066\u0044\u006f\u0063\u0045\u006e\u0063o\u0064\u0069\u006e\u0067";_gaff ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
);var _bcfd =_eb .NewByteRuneMap (map[byte ]rune {0x1:'\x01',0x2:'\x02',0x3:'\x03',0x4:'\x04',0x5:'\x05',0x6:'\x06',0x7:'\a',0x8:'\b',0x9:'\t',0xa:'\n',0xb:'\v',0xc:'\f',0xd:'\r',0xe:'\x0e',0xf:'\x0f',0x10:'\x10',0x11:'\x11',0x12:'\x12',0x13:'\x13',0x14:'\x14',0x15:'\x15',0x16:'\x16',0x17:'\x17',0x18:'\x18',0x19:'\x19',0x1a:'\x1a',0x1b:'\x1b',0x1c:'\x1c',0x1d:'\x1d',0x1e:'\x1e',0x1f:'\x1f',0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'\'',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'`',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0x7f:'\u007f',0x80:'Ä',0x81:'Å',0x82:'Ç',0x83:'É',0x84:'Ñ',0x85:'Ö',0x86:'Ü',0x87:'á',0x88:'à',0x89:'â',0x8a:'ä',0x8b:'ã',0x8c:'å',0x8d:'ç',0x8e:'é',0x8f:'è',0x90:'ê',0x91:'ë',0x92:'í',0x93:'ì',0x94:'î',0x95:'ï',0x96:'ñ',0x97:'ó',0x98:'ò',0x99:'ô',0x9a:'ö',0x9b:'õ',0x9c:'ú',0x9d:'ù',0x9e:'û',0x9f:'ü',0xa0:'†',0xa1:'°',0xa2:'¢',0xa3:'£',0xa4:'§',0xa5:'•',0xa6:'¶',0xa7:'ß',0xa8:'®',0xa9:'©',0xaa:'™',0xab:'´',0xac:'¨',0xad:'≠',0xae:'Æ',0xaf:'Ø',0xb0:'∞',0xb1:'±',0xb2:'≤',0xb3:'≥',0xb4:'¥',0xb5:'µ',0xb6:'∂',0xb7:'∑',0xb8:'∏',0xb9:'π',0xba:'∫',0xbb:'ª',0xbc:'º',0xbd:'Ω',0xbe:'æ',0xbf:'ø',0xc0:'¿',0xc1:'¡',0xc2:'¬',0xc3:'√',0xc4:'ƒ',0xc5:'≈',0xc6:'∆',0xc7:'«',0xc8:'»',0xc9:'…',0xca:'\u00a0',0xcb:'À',0xcc:'Ã',0xcd:'Õ',0xce:'Œ',0xcf:'œ',0xd0:'',0xd1:'—',0xd2:'“',0xd3:'”',0xd4:'',0xd5:'',0xd6:'÷',0xd7:'◊',0xd8:'ÿ',0xd9:'Ÿ',0xda:'',0xdb:'€',0xdc:'',0xdd:'',0xde:'fi',0xdf:'fl',0xe0:'‡',0xe1:'·',0xe2:'',0xe3:'„',0xe4:'‰',0xe5:'Â',0xe6:'Ê',0xe7:'Á',0xe8:'Ë',0xe9:'È',0xea:'Í',0xeb:'Î',0xec:'Ï',0xed:'Ì',0xee:'Ó',0xef:'Ô',0xf0:'\uf8ff',0xf1:'Ò',0xf2:'Ú',0xf3:'Û',0xf4:'Ù',0xf5:'ı',0xf6:'ˆ',0xf7:'˜',0xf8:'¯',0xf9:'˘',0xfa:'˙',0xfb:'˚',0xfc:'¸',0xfd:'˝',0xfe:'˛',0xff:'ˇ'});
func (_cfb *simpleEncoder )Reset (){};func (_fadcb *simpleEncoding )Encode (str string )[]byte {_efbb ,_ :=_fadcb .NewEncoder ().Bytes ([]byte (str ));return _efbb ;};func (_fbgf *IdentityEncoder )Encode (str string )[]byte {return _dbbb (_fbgf ,str )};
func (_fbfb *IdentityEncoder )CharcodeToRune (code CharCode )(rune ,bool ){_fbfb ._dfbf .Write (rune (code ));return rune (code ),true ;};var _bec =_eb .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'✁',0x22:'✂',0x23:'✃',0x24:'✄',0x25:'☎',0x26:'✆',0x27:'✇',0x28:'✈',0x29:'✉',0x2a:'☛',0x2b:'☞',0x2c:'✌',0x2d:'✍',0x2e:'✎',0x2f:'✏',0x30:'✐',0x31:'✑',0x32:'✒',0x33:'✓',0x34:'✔',0x35:'✕',0x36:'✖',0x37:'✗',0x38:'✘',0x39:'✙',0x3a:'✚',0x3b:'✛',0x3c:'✜',0x3d:'✝',0x3e:'✞',0x3f:'✟',0x40:'✠',0x41:'✡',0x42:'✢',0x43:'✣',0x44:'✤',0x45:'✥',0x46:'✦',0x47:'✧',0x48:'★',0x49:'✩',0x4a:'✪',0x4b:'✫',0x4c:'✬',0x4d:'✭',0x4e:'✮',0x4f:'✯',0x50:'✰',0x51:'✱',0x52:'✲',0x53:'✳',0x54:'✴',0x55:'✵',0x56:'✶',0x57:'✷',0x58:'✸',0x59:'✹',0x5a:'✺',0x5b:'✻',0x5c:'✼',0x5d:'✽',0x5e:'✾',0x5f:'✿',0x60:'❀',0x61:'❁',0x62:'❂',0x63:'❃',0x64:'❄',0x65:'❅',0x66:'❆',0x67:'❇',0x68:'❈',0x69:'❉',0x6a:'❊',0x6b:'❋',0x6c:'●',0x6d:'❍',0x6e:'■',0x6f:'❏',0x70:'❐',0x71:'❑',0x72:'❒',0x73:'▲',0x74:'▼',0x75:'◆',0x76:'❖',0x77:'◗',0x78:'❘',0x79:'❙',0x7a:'❚',0x7b:'❛',0x7c:'❜',0x7d:'❝',0x7e:'❞',0x80:'\uf8d7',0x81:'\uf8d8',0x82:'\uf8d9',0x83:'\uf8da',0x84:'\uf8db',0x85:'\uf8dc',0x86:'\uf8dd',0x87:'\uf8de',0x88:'\uf8df',0x89:'\uf8e0',0x8a:'\uf8e1',0x8b:'\uf8e2',0x8c:'\uf8e3',0x8d:'\uf8e4',0xa1:'❡',0xa2:'❢',0xa3:'❣',0xa4:'❤',0xa5:'❥',0xa6:'❦',0xa7:'❧',0xa8:'♣',0xa9:'♦',0xaa:'♥',0xab:'♠',0xac:'①',0xad:'②',0xae:'③',0xaf:'④',0xb0:'⑤',0xb1:'⑥',0xb2:'⑦',0xb3:'⑧',0xb4:'⑨',0xb5:'⑩',0xb6:'❶',0xb7:'❷',0xb8:'❸',0xb9:'❹',0xba:'❺',0xbb:'❻',0xbc:'❼',0xbd:'❽',0xbe:'❾',0xbf:'❿',0xc0:'➀',0xc1:'➁',0xc2:'➂',0xc3:'➃',0xc4:'➄',0xc5:'➅',0xc6:'➆',0xc7:'➇',0xc8:'➈',0xc9:'➉',0xca:'➊',0xcb:'➋',0xcc:'➌',0xcd:'➍',0xce:'➎',0xcf:'➏',0xd0:'➐',0xd1:'➑',0xd2:'➒',0xd3:'➓',0xd4:'➔',0xd5:'→',0xd6:'↔',0xd7:'↕',0xd8:'➘',0xd9:'➙',0xda:'➚',0xdb:'➛',0xdc:'➜',0xdd:'➝',0xde:'➞',0xdf:'➟',0xe0:'➠',0xe1:'➡',0xe2:'➢',0xe3:'➣',0xe4:'➤',0xe5:'➥',0xe6:'➦',0xe7:'➧',0xe8:'➨',0xe9:'➩',0xea:'➪',0xeb:'➫',0xec:'➬',0xed:'➭',0xee:'➮',0xef:'➯',0xf1:'➱',0xf2:'➲',0xf3:'➳',0xf4:'➴',0xf5:'➵',0xf6:'➶',0xf7:'➷',0xf8:'➸',0xf9:'➹',0xfa:'➺',0xfb:'➻',0xfc:'➼',0xfd:'➽',0xfe:'➾'});
func _dbbb (_ebfa TextEncoder ,_defa string )[]byte {_gdf :=[]rune (_defa );_egf :=make ([]byte ,0,len (_gdf )*2);for _ ,_fgf :=range _gdf {_gda ,_cc :=_ebfa .RuneToCharcode (_fgf );if !_cc {_cgd .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020t\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065. \u0072\u0075\u006ee\u003d%\u002b\u0071",_fgf );
continue ;};var _aecf [2]byte ;_ff .BigEndian .PutUint16 (_aecf [:],uint16 (_gda ));_egf =append (_egf ,_aecf [:]...);};return _egf ;};var (_dfa =_bdeb (_cec ,_cfed );_bgb =_bdeb (_gaff ,_cbcg ););func (_fgaa *TrueTypeFontEncoder )Decode (raw []byte )string {return _aag (_fgaa ,raw )};
func GlyphToRune (glyph GlyphName )(rune ,bool ){_cge :=string (glyph );if _ab .Contains (_cge ,"\u002e"){_agb :=_dff .FindStringSubmatch (_cge );if _agb !=nil {_cge =_agb [1];};};if _edd ,_fdeg :=_daae .Read (_cge );_fdeg {_cge =_edd ;};if _bfd ,_cdf :=_dfd .Read (_cge );
_cdf {return _bfd ,true ;};if _ccc ,_dcgg :=_cac .Read (_cge );_dcgg {return _ccc ,true ;};if _aabbc :=_dfg .FindStringSubmatch (_cge );_aabbc !=nil {_efc ,_eeb :=_cf .ParseInt (_aabbc [1],16,32);if _eeb ==nil {return rune (_efc ),true ;};};if _gfa :=_baef .FindStringSubmatch (_cge );
_gfa !=nil {_dea ,_bdc :=_cf .Atoi (_gfa [1]);if _bdc ==nil {return rune (_dea ),true ;};};return rune (0),false ;};func (_ecf *simpleEncoding )Decode (raw []byte )string {_dge ,_ :=_ecf .NewDecoder ().Bytes (raw );return string (_dge );};type TrueTypeFontEncoder struct{_dffd *_eb .RuneUint16Map ;
_dgeb *_eb .RuneSet ;};func NewCMapEncoder (baseName string ,codeToCID ,cidToUnicode *_dg .CMap )CMapEncoder {return CMapEncoder {_gc :baseName ,_ded :codeToCID ,_bb :cidToUnicode };};func NewStandardEncoder ()SimpleEncoder {return _bgb .NewEncoder ()};
func (_eecc *simpleEncoding )NewDecoder ()*_fe .Decoder {return &_fe .Decoder {Transformer :simpleDecoder {_ebcc :_eecc ._cbcf }};};func (_bbfe *IdentityEncoder )RuneToGlyph (r rune )(GlyphName ,bool ){if r ==' '{return "\u0073\u0070\u0061c\u0065",true ;
};_dd :=GlyphName (_d .Sprintf ("\u0075n\u0069\u0025\u002e\u0034\u0058",r ));return _dd ,true ;};func (_ga CMapEncoder )RuneToCharcode (r rune )(CharCode ,bool ){if _ga ._bb ==nil {return 0,false ;};_ge ,_ce :=_ga ._bb .StringToCID (string (r ));if !_ce {return 0,false ;
};if _ga ._ded !=nil {_bag ,_bad :=_ga ._ded .CIDToCharcode (_ge );if !_bad {return 0,false ;};return CharCode (_bag ),true ;};return CharCode (_ge ),true ;};