unipdf/internal/license/license.go
2024-04-30 12:24:05 +00:00

117 lines
37 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 license ;import (_ac "bytes";_b "compress/gzip";_e "crypto";_cbd "crypto/aes";_ec "crypto/cipher";_dgb "crypto/hmac";_ea "crypto/rand";_fgd "crypto/rsa";_dg "crypto/sha256";_eaf "crypto/sha512";_df "crypto/x509";_fb "encoding/base64";_ab "encoding/hex";
_db "encoding/json";_fd "encoding/pem";_fc "errors";_aeg "fmt";_gf "github.com/unidoc/unipdf/v3/common";_d "io";_dd "io/ioutil";_fg "net";_ae "net/http";_f "os";_g "path/filepath";_c "sort";_eff "strings";_ef "sync";_cb "time";);var _bgc =_cb .Date (2019,6,6,0,0,0,0,_cb .UTC );
func MakeUnlicensedKey ()*LicenseKey {_ddb :=LicenseKey {};_ddb .CustomerName ="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";_ddb .Tier =LicenseTierUnlicensed ;_ddb .CreatedAt =_cb .Now ().UTC ();_ddb .CreatedAtInt =_ddb .CreatedAt .Unix ();
return &_ddb ;};type meteredClient struct{_bbc string ;_gb string ;_af *_ae .Client ;};var _cea map[string ]int ;func _ddg (_ecbg string ,_dc string )([]byte ,error ){var (_eec int ;_fbb string ;);for _ ,_fbb =range []string {"\u000a\u002b\u000a","\u000d\u000a\u002b\r\u000a","\u0020\u002b\u0020"}{if _eec =_eff .Index (_dc ,_fbb );
_eec !=-1{break ;};};if _eec ==-1{return nil ,_aeg .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u002c \u0073i\u0067n\u0061t\u0075\u0072\u0065\u0020\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u006f\u0072");};_ba :=_dc [:_eec ];
_da :=_eec +len (_fbb );_fdc :=_dc [_da :];if _ba ==""||_fdc ==""{return nil ,_aeg .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u0069n\u0070\u0075\u0074,\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0069\u0067\u0069n\u0061\u006c \u006f\u0072\u0020\u0073\u0069\u0067n\u0061\u0074u\u0072\u0065");
};_fcb ,_dbg :=_fb .StdEncoding .DecodeString (_ba );if _dbg !=nil {return nil ,_aeg .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0072\u0069\u0067\u0069\u006ea\u006c");};_abe ,_dbg :=_fb .StdEncoding .DecodeString (_fdc );
if _dbg !=nil {return nil ,_aeg .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_gd ,_ :=_fd .Decode ([]byte (_ecbg ));if _gd ==nil {return nil ,_aeg .Errorf ("\u0050\u0075\u0062\u004b\u0065\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064");
};_eb ,_dbg :=_df .ParsePKIXPublicKey (_gd .Bytes );if _dbg !=nil {return nil ,_dbg ;};_ge :=_eb .(*_fgd .PublicKey );if _ge ==nil {return nil ,_aeg .Errorf ("\u0050u\u0062\u004b\u0065\u0079\u0020\u0063\u006f\u006e\u0076\u0065\u0072s\u0069\u006f\u006e\u0020\u0066\u0061\u0069\u006c\u0065\u0064");
};_fad :=_eaf .New ();_fad .Write (_fcb );_cd :=_fad .Sum (nil );_dbg =_fgd .VerifyPKCS1v15 (_ge ,_e .SHA512 ,_cd ,_abe );if _dbg !=nil {return nil ,_dbg ;};return _fcb ,nil ;};func SetMeteredKey (apiKey string )error {if len (apiKey )==0{_gf .Log .Error ("\u004d\u0065\u0074\u0065\u0072e\u0064\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0041\u0050\u0049 \u004b\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079");
_gf .Log .Error ("\u002d\u0020\u0047\u0072\u0061\u0062\u0020\u006f\u006e\u0065\u0020\u0069\u006e\u0020\u0074h\u0065\u0020\u0046\u0072\u0065\u0065\u0020\u0054\u0069\u0065\u0072\u0020\u0061t\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063\u006c\u006fud\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
return _aeg .Errorf ("\u006de\u0074\u0065\u0072e\u0064\u0020\u006ci\u0063en\u0073\u0065\u0020\u0061\u0070\u0069\u0020k\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079\u003a\u0020\u0063\u0072\u0065\u0061\u0074\u0065 o\u006ee\u0020\u0061\u0074\u0020\u0068\u0074t\u0070\u0073\u003a\u002f\u002fc\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063.\u0069\u006f");
};if _bcgd !=nil &&(_bcgd ._fdb ||_bcgd .Tier !=LicenseTierUnlicensed ){_gf .Log .Error ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0043\u0061\u006e\u006eo\u0074 \u0073\u0065\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0074\u0077\u0069c\u0065\u0020\u002d\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u006a\u0075\u0073\u0074\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0069z\u0065\u0020\u006f\u006e\u0063\u0065");
return _fc .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0061\u006c\u0072\u0065\u0061\u0064\u0079\u0020\u0073\u0065\u0074");};_dbe :=_acd ();_dbe ._gb =apiKey ;_fde ,_cff :=_dbe .getStatus ();if _cff !=nil {return _cff ;};if !_fde .Valid {return _fc .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");
};_eag :=&LicenseKey {_fdb :true ,_bb :apiKey ,_bdc :true };_bcgd =_eag ;return nil ;};type stateLoader interface{loadState (_fgg string )(reportState ,error );updateState (_bgg ,_cbbb ,_eda string ,_agg int ,_cda bool ,_ecg int ,_acb int ,_gdea _cb .Time ,_aba map[string ]int )error ;
};type reportState struct{Instance string `json:"inst"`;Next string `json:"n"`;Docs int64 `json:"d"`;NumErrors int64 `json:"e"`;LimitDocs bool `json:"ld"`;RemainingDocs int64 `json:"rd"`;LastReported _cb .Time `json:"lr"`;LastWritten _cb .Time `json:"lw"`;
Usage map[string ]int `json:"u"`;};type meteredStatusForm struct{};type meteredUsageCheckinResp struct{Instance string `json:"inst"`;Next string `json:"next"`;Success bool `json:"success"`;Message string `json:"message"`;RemainingDocs int `json:"rd"`;LimitDocs bool `json:"ld"`;
};const _fdde ="\u0055N\u0049D\u004f\u0043\u005f\u004c\u0049C\u0045\u004eS\u0045\u005f\u0044\u0049\u0052";var _eac stateLoader =defaultStateHolder {};func _cffg ()(_fg .IP ,error ){_ccgg ,_cfb :=_fg .Dial ("\u0075\u0064\u0070","\u0038\u002e\u0038\u002e\u0038\u002e\u0038\u003a\u0038\u0030");
if _cfb !=nil {return nil ,_cfb ;};defer _ccgg .Close ();_geg :=_ccgg .LocalAddr ().(*_fg .UDPAddr );return _geg .IP ,nil ;};func (_adf *meteredClient )checkinUsage (_cfd meteredUsageCheckinForm )(meteredUsageCheckinResp ,error ){_cfd .Package ="\u0075\u006e\u0069\u0070\u0064\u0066";
_cfd .PackageVersion =_gf .Version ;var _ed meteredUsageCheckinResp ;_fgc :=_adf ._bbc +"\u002f\u006d\u0065\u0074er\u0065\u0064\u002f\u0075\u0073\u0061\u0067\u0065\u005f\u0063\u0068\u0065\u0063\u006bi\u006e";_be ,_cgd :=_db .Marshal (_cfd );if _cgd !=nil {return _ed ,_cgd ;
};_efe ,_cgd :=_bga (_be );if _cgd !=nil {return _ed ,_cgd ;};_efg ,_cgd :=_ae .NewRequest ("\u0050\u004f\u0053\u0054",_fgc ,_efe );if _cgd !=nil {return _ed ,_cgd ;};_efg .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");
_efg .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_efg .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");
_efg .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_adf ._gb );_ddd ,_cgd :=_adf ._af .Do (_efg );if _cgd !=nil {return _ed ,_cgd ;};defer _ddd .Body .Close ();if _ddd .StatusCode !=200{_aae ,_adb :=_edab (_ddd );if _adb !=nil {return _ed ,_adb ;
};_adb =_db .Unmarshal (_aae ,&_ed );if _adb !=nil {return _ed ,_adb ;};return _ed ,_aeg .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_ddd .StatusCode );
};_dfd :=_ddd .Header .Get ("\u0058\u002d\u0055\u0043\u002d\u0053\u0069\u0067\u006ea\u0074\u0075\u0072\u0065");_aee :=_ecf (_cfd .MacAddress ,string (_be ));if _aee !=_dfd {_gf .Log .Error ("I\u006e\u0076\u0061l\u0069\u0064\u0020\u0072\u0065\u0073\u0070\u006f\u006e\u0073\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u002c\u0020\u0073\u0065t\u0020\u0074\u0068e\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0073\u0065\u0072\u0076e\u0072\u0020\u0074\u006f \u0068\u0074\u0074\u0070s\u003a\u002f\u002f\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069o\u002f\u0061\u0070\u0069");
return _ed ,_fc .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u0063\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0065\u0072\u0076\u0065\u0072 \u0072\u0065\u0073\u0070\u006f\u006e\u0073\u0065");
};_gde ,_cgd :=_edab (_ddd );if _cgd !=nil {return _ed ,_cgd ;};_cgd =_db .Unmarshal (_gde ,&_ed );if _cgd !=nil {return _ed ,_cgd ;};return _ed ,nil ;};func _gc (_dgba string )(LicenseKey ,error ){var _cfa LicenseKey ;_cef ,_aag :=_aa (_bg ,_fcc ,_dgba );
if _aag !=nil {return _cfa ,_aag ;};_bdg ,_aag :=_ddg (_cdd ,_cef );if _aag !=nil {return _cfa ,_aag ;};_aag =_db .Unmarshal (_bdg ,&_cfa );if _aag !=nil {return _cfa ,_aag ;};_cfa .CreatedAt =_cb .Unix (_cfa .CreatedAtInt ,0);if _cfa .ExpiresAtInt > 0{_cbb :=_cb .Unix (_cfa .ExpiresAtInt ,0);
_cfa .ExpiresAt =&_cbb ;};return _cfa ,nil ;};func (_bdd *LicenseKey )TypeToString ()string {if _bdd ._fdb {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};if _bdd .Tier ==LicenseTierUnlicensed {return "\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";
};if _bdd .Tier ==LicenseTierCommunity {return "\u0041\u0047PL\u0076\u0033\u0020O\u0070\u0065\u006e\u0020Sou\u0072ce\u0020\u0043\u006f\u006d\u006d\u0075\u006eit\u0079\u0020\u004c\u0069\u0063\u0065\u006es\u0065";};if _bdd .Tier ==LicenseTierIndividual ||_bdd .Tier =="\u0069\u006e\u0064i\u0065"{return "\u0043\u006f\u006dm\u0065\u0072\u0063\u0069a\u006c\u0020\u004c\u0069\u0063\u0065\u006es\u0065\u0020\u002d\u0020\u0049\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";
};return "\u0043\u006fm\u006d\u0065\u0072\u0063\u0069\u0061\u006c\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u002d\u0020\u0042\u0075\u0073\u0069ne\u0073\u0073";};func _aa (_eg string ,_fab string ,_egg string )(string ,error ){_ce :=_eff .Index (_egg ,_eg );
if _ce ==-1{return "",_aeg .Errorf ("\u0068\u0065a\u0064\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_cgf :=_eff .Index (_egg ,_fab );if _cgf ==-1{return "",_aeg .Errorf ("\u0066\u006fo\u0074\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");
};_bd :=_ce +len (_eg )+1;return _egg [_bd :_cgf -1],nil ;};func (_bbb *LicenseKey )ToString ()string {if _bbb ._fdb {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};_bbg :=_aeg .Sprintf ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_bbb .LicenseId );
_bbg +=_aeg .Sprintf ("\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_bbb .CustomerId );_bbg +=_aeg .Sprintf ("\u0043u\u0073t\u006f\u006d\u0065\u0072\u0020N\u0061\u006de\u003a\u0020\u0025\u0073\u000a",_bbb .CustomerName );
_bbg +=_aeg .Sprintf ("\u0054i\u0065\u0072\u003a\u0020\u0025\u0073\n",_bbb .Tier );_bbg +=_aeg .Sprintf ("\u0043r\u0065a\u0074\u0065\u0064\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_gf .UtcTimeFormat (_bbb .CreatedAt ));if _bbb .ExpiresAt ==nil {_bbg +="\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041t\u003a\u0020N\u0065\u0076\u0065\u0072\u000a";
}else {_bbg +=_aeg .Sprintf ("\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_gf .UtcTimeFormat (*_bbb .ExpiresAt ));};_bbg +=_aeg .Sprintf ("\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u003a\u0020\u0025\u0073\u0020<\u0025\u0073\u003e\u000a",_bbb .CreatorName ,_bbb .CreatorEmail );
return _bbg ;};func _bga (_aagg []byte )(_d .Reader ,error ){_baac :=new (_ac .Buffer );_cbdcg :=_b .NewWriter (_baac );_cbdcg .Write (_aagg );_gea :=_cbdcg .Close ();if _gea !=nil {return nil ,_gea ;};return _baac ,nil ;};func _ecf (_daag ,_ffb string )string {_gfb :=[]byte (_daag );
_dgf :=_dgb .New (_dg .New ,_gfb );_dgf .Write ([]byte (_ffb ));return _fb .StdEncoding .EncodeToString (_dgf .Sum (nil ));};func _bab ()([]string ,[]string ,error ){_dgbf ,_ccd :=_fg .Interfaces ();if _ccd !=nil {return nil ,nil ,_ccd ;};var _cbcc []string ;
var _gga []string ;for _ ,_bcf :=range _dgbf {if _bcf .Flags &_fg .FlagUp ==0||_ac .Equal (_bcf .HardwareAddr ,nil ){continue ;};_ggd ,_cde :=_bcf .Addrs ();if _cde !=nil {return nil ,nil ,_cde ;};_fabg :=0;for _ ,_cede :=range _ggd {var _fbe _fg .IP ;
switch _faf :=_cede .(type ){case *_fg .IPNet :_fbe =_faf .IP ;case *_fg .IPAddr :_fbe =_faf .IP ;};if _fbe .IsLoopback (){continue ;};if _fbe .To4 ()==nil {continue ;};_gga =append (_gga ,_fbe .String ());_fabg ++;};_daca :=_bcf .HardwareAddr .String ();
if _daca !=""&&_fabg > 0{_cbcc =append (_cbcc ,_daca );};};return _cbcc ,_gga ,nil ;};func Track (docKey string ,useKey string )error {return _cbdc (docKey ,useKey ,!_bcgd ._bdc )};func GetMeteredState ()(MeteredStatus ,error ){if _bcgd ==nil {return MeteredStatus {},_fc .New ("\u006c\u0069\u0063\u0065ns\u0065\u0020\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
};if !_bcgd ._fdb ||len (_bcgd ._bb )==0{return MeteredStatus {},_fc .New ("\u0061p\u0069 \u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_de ,_dgg :=_eac .loadState (_bcgd ._bb );if _dgg !=nil {_gf .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgg );
return MeteredStatus {},_dgg ;};if _de .Docs > 0{_aaa :=_cbdc ("","",true );if _aaa !=nil {return MeteredStatus {},_aaa ;};};_gec .Lock ();defer _gec .Unlock ();_gbc :=_acd ();_gbc ._gb =_bcgd ._bb ;_cgb ,_dgg :=_gbc .getStatus ();if _dgg !=nil {return MeteredStatus {},_dgg ;
};if !_cgb .Valid {return MeteredStatus {},_fc .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_baa :=MeteredStatus {OK :true ,Credits :_cgb .OrgCredits ,Used :_cgb .OrgUsed };return _baa ,nil ;};func (_cec defaultStateHolder )loadState (_bbea string )(reportState ,error ){_afd ,_fcbg :=_dgbb ();
if _fcbg !=nil {return reportState {},_fcbg ;};_fcbg =_f .MkdirAll (_afd ,0777);if _fcbg !=nil {return reportState {},_fcbg ;};if len (_bbea )< 20{return reportState {},_fc .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_bbd :=[]byte (_bbea );
_eagf :=_eaf .Sum512_256 (_bbd [:20]);_egd :=_ab .EncodeToString (_eagf [:]);_acg :=_g .Join (_afd ,_egd );_gcd ,_fcbg :=_dd .ReadFile (_acg );if _fcbg !=nil {if _f .IsNotExist (_fcbg ){return reportState {},nil ;};_gf .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fcbg );
return reportState {},_fc .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};const _add ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_gcd ,_fcbg =_edb ([]byte (_add ),_gcd );if _fcbg !=nil {return reportState {},_fcbg ;
};var _dea reportState ;_fcbg =_db .Unmarshal (_gcd ,&_dea );if _fcbg !=nil {_gf .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0076",_fcbg );return reportState {},_fc .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");
};return _dea ,nil ;};func (_eeb *LicenseKey )Validate ()error {if _eeb ._fdb {return nil ;};if len (_eeb .LicenseId )< 10{return _aeg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020L\u0069\u0063\u0065n\u0073e\u0020\u0049\u0064");
};if len (_eeb .CustomerId )< 10{return _aeg .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020C\u0075\u0073\u0074\u006f\u006d\u0065\u0072 \u0049\u0064");};if len (_eeb .CustomerName )< 1{return _aeg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043u\u0073\u0074\u006f\u006d\u0065\u0072\u0020\u004e\u0061\u006d\u0065");
};if _bfee .After (_eeb .CreatedAt ){return _aeg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064 \u0041\u0074\u0020\u0069\u0073 \u0069\u006ev\u0061\u006c\u0069\u0064");
};if _eeb .ExpiresAt ==nil {_dcb :=_eeb .CreatedAt .AddDate (1,0,0);if _ace .After (_dcb ){_dcb =_ace ;};_eeb .ExpiresAt =&_dcb ;};if _eeb .CreatedAt .After (*_eeb .ExpiresAt ){return _aeg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064\u0020\u0041\u0074 \u0063a\u006e\u006e\u006f\u0074 \u0062\u0065 \u0047\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061\u006e\u0020\u0045\u0078\u0070\u0069\u0072\u0065\u0073\u0020\u0041\u0074");
};if _eeb .isExpired (){_ebf :="\u0054\u0068\u0065\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u0020\u0068\u0061\u0073\u0020\u0061\u006c\u0072\u0065a\u0064\u0079\u0020\u0065\u0078\u0070\u0069r\u0065\u0064\u002e\u000a"+"\u0059o\u0075\u0020\u006d\u0061y\u0020n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0075\u0070d\u0061\u0074\u0065\u0020\u0074\u0068\u0065\u0020l\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020t\u006f\u0020\u0074\u0068\u0065\u0020\u006e\u0065\u0077\u0065s\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0066\u006f\u0072\u0020\u0079o\u0075\u0072\u0020\u006f\u0072\u0067\u0061\u006e\u0069\u007a\u0061\u0074i\u006fn\u002e\u000a"+"\u0054o\u0020\u0066\u0069\u006ed y\u006f\u0075\u0072\u0020n\u0065\u0077\u0065\u0073\u0074\u0020\u006c\u0069\u0063\u0065n\u0073\u0065\u0020\u006b\u0065\u0079\u002c\u0020\u0067\u006f\u0020\u0074\u006f\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063l\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064oc\u002e\u0069\u006f \u0061\u006e\u0064\u0020\u0067o\u0020t\u006f\u0020\u0074\u0068\u0065\u0020\u006c\u0069\u0063e\u006e\u0073\u0065\u0020\u006d\u0065\u006e\u0075\u002e";
return _aeg .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0025\u0073",_ebf );};if len (_eeb .CreatorName )< 1{return _aeg .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u0020na\u006d\u0065");
};if len (_eeb .CreatorEmail )< 1{return _aeg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043r\u0065\u0061\u0074\u006f\u0072\u0020\u0065\u006d\u0061\u0069\u006c");};if _eeb .CreatedAt .After (_bgc ){if !_eeb .UniPDF {return _aeg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020\u0054\u0068\u0069\u0073\u0020\u0055\u006e\u0069\u0044\u006f\u0063\u0020k\u0065\u0079\u0020\u0069\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d \u0066\u006f\u0072\u0020\u0055\u006e\u0069\u0050\u0044\u0046");
};};return nil ;};func (_fcg *LicenseKey )IsLicensed ()bool {return _fcg .Tier !=LicenseTierUnlicensed ||_fcg ._fdb };func _dgbb ()(string ,error ){_ged :=_eff .TrimSpace (_f .Getenv (_fdde ));if _ged ==""{_gf .Log .Debug ("\u0024\u0025\u0073\u0020e\u006e\u0076\u0069\u0072\u006f\u006e\u006d\u0065\u006e\u0074\u0020\u0076\u0061\u0072\u0069\u0061\u0062l\u0065\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002e\u0020\u0057\u0069\u006c\u006c\u0020\u0075\u0073\u0065\u0020\u0068\u006f\u006d\u0065\u0020\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020\u0074\u006f\u0020s\u0074\u006f\u0072\u0065\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020in\u0066o\u0072\u006d\u0061\u0074\u0069\u006f\u006e\u002e",_fdde );
_deaf :=_aagf ();if len (_deaf )==0{return "",_aeg .Errorf ("r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0024\u0025\u0073\u0020\u0065\u006e\u0076\u0069\u0072\u006f\u006e\u006d\u0065\u006e\u0074\u0020\u0076\u0061r\u0069a\u0062\u006c\u0065\u0020o\u0072\u0020h\u006f\u006d\u0065\u0020\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_fdde );
};_ged =_g .Join (_deaf ,"\u002eu\u006e\u0069\u0064\u006f\u0063");};_dab :=_f .MkdirAll (_ged ,0777);if _dab !=nil {return "",_dab ;};return _ged ,nil ;};type defaultStateHolder struct{};func (_bcg *LicenseKey )isExpired ()bool {return _bcg .getExpiryDateToCompare ().After (*_bcg .ExpiresAt )};
func _edab (_agaa *_ae .Response )([]byte ,error ){var _fbd []byte ;_dba ,_abdc :=_bed (_agaa );if _abdc !=nil {return _fbd ,_abdc ;};return _dd .ReadAll (_dba );};func (_geb *meteredClient )getStatus ()(meteredStatusResp ,error ){var _acef meteredStatusResp ;
_eca :=_geb ._bbc +"\u002fm\u0065t\u0065\u0072\u0065\u0064\u002f\u0073\u0074\u0061\u0074\u0075\u0073";var _cfe meteredStatusForm ;_adg ,_dgc :=_db .Marshal (_cfe );if _dgc !=nil {return _acef ,_dgc ;};_cba ,_dgc :=_bga (_adg );if _dgc !=nil {return _acef ,_dgc ;
};_fbf ,_dgc :=_ae .NewRequest ("\u0050\u004f\u0053\u0054",_eca ,_cba );if _dgc !=nil {return _acef ,_dgc ;};_fbf .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");
_fbf .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_fbf .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");
_fbf .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_geb ._gb );_afa ,_dgc :=_geb ._af .Do (_fbf );if _dgc !=nil {return _acef ,_dgc ;};defer _afa .Body .Close ();if _afa .StatusCode !=200{return _acef ,_aeg .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_afa .StatusCode );
};_dda ,_dgc :=_edab (_afa );if _dgc !=nil {return _acef ,_dgc ;};_dgc =_db .Unmarshal (_dda ,&_acef );if _dgc !=nil {return _acef ,_dgc ;};return _acef ,nil ;};const _bcd ="U\u004eI\u0050\u0044\u0046\u005f\u0043\u0055\u0053\u0054O\u004d\u0045\u0052\u005fNA\u004d\u0045";
func (_dgd defaultStateHolder )updateState (_fe ,_agf ,_ced string ,_aed int ,_gdf bool ,_dge int ,_bbe int ,_aegb _cb .Time ,_gg map[string ]int )error {_gda ,_eacc :=_dgbb ();if _eacc !=nil {return _eacc ;};if len (_fe )< 20{return _fc .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");
};_dff :=[]byte (_fe );_cc :=_eaf .Sum512_256 (_dff [:20]);_fee :=_ab .EncodeToString (_cc [:]);_gded :=_g .Join (_gda ,_fee );var _adfa reportState ;_adfa .Docs =int64 (_aed );_adfa .NumErrors =int64 (_bbe );_adfa .LimitDocs =_gdf ;_adfa .RemainingDocs =int64 (_dge );
_adfa .LastWritten =_cb .Now ().UTC ();_adfa .LastReported =_aegb ;_adfa .Instance =_agf ;_adfa .Next =_ced ;_adfa .Usage =_gg ;_bfc ,_eacc :=_db .Marshal (_adfa );if _eacc !=nil {return _eacc ;};const _adc ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";
_bfc ,_eacc =_ebc ([]byte (_adc ),_bfc );if _eacc !=nil {return _eacc ;};_eacc =_dd .WriteFile (_gded ,_bfc ,0600);if _eacc !=nil {return _eacc ;};return nil ;};type meteredUsageCheckinForm struct{Instance string `json:"inst"`;Next string `json:"next"`;
UsageNumber int `json:"usage_number"`;NumFailed int64 `json:"num_failed"`;Hostname string `json:"hostname"`;LocalIP string `json:"local_ip"`;MacAddress string `json:"mac_address"`;Package string `json:"package"`;PackageVersion string `json:"package_version"`;
Usage map[string ]int `json:"u"`;IsPersistentCache bool `json:"is_persistent_cache"`;Timestamp int64 `json:"timestamp"`;};var _gec =&_ef .Mutex {};var _bcgd =MakeUnlicensedKey ();const _cdd ="\u000a\u002d\u002d\u002d\u002d\u002d\u0042\u0045\u0047\u0049\u004e \u0050\u0055\u0042\u004c\u0049\u0043\u0020\u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\u000a\u004d\u0049I\u0042\u0049\u006a\u0041NB\u0067\u006b\u0071\u0068\u006b\u0069G\u0039\u0077\u0030\u0042\u0041\u0051\u0045\u0046A\u0041\u004f\u0043\u0041\u0051\u0038\u0041\u004d\u0049\u0049\u0042\u0043\u0067\u004b\u0043\u0041\u0051\u0045A\u006dF\u0055\u0069\u0079\u0064\u0037\u0062\u0035\u0058\u006a\u0070\u006b\u0050\u0035\u0052\u0061\u0070\u0034\u0077\u000a\u0044\u0063\u0031d\u0079\u007a\u0049\u0051\u0034\u004c\u0065\u006b\u0078\u0072\u0076\u0079\u0074\u006e\u0045\u004d\u0070\u004e\u0055\u0062\u006f\u0036i\u0041\u0037\u0034\u0056\u0038\u0072\u0075\u005a\u004f\u0076\u0072\u0053\u0063\u0073\u0066\u0032\u0051\u0065\u004e9\u002f\u0071r\u0055\u0047\u0038\u0071\u0045\u0062\u0055\u0057\u0064\u006f\u0045\u0059\u0071+\u000a\u006f\u0074\u0046\u004e\u0041\u0046N\u0078\u006c\u0047\u0062\u0078\u0062\u0044\u0048\u0063\u0064\u0047\u0056\u0061\u004d\u0030\u004f\u0058\u0064\u0058g\u0044y\u004c5\u0061\u0049\u0045\u0061\u0067\u004c\u0030\u0063\u0035\u0070\u0077\u006a\u0049\u0064\u0050G\u0049\u006e\u0034\u0036\u0066\u0037\u0038\u0065\u004d\u004a\u002b\u004a\u006b\u0064\u0063\u0070\u0044\n\u0044\u004a\u0061\u0071\u0059\u0058d\u0072\u007a5\u004b\u0065\u0073\u0068\u006aS\u0069\u0049\u0061\u0061\u0037\u006d\u0065\u006e\u0042\u0049\u0041\u0058\u0053\u0034\u0055\u0046\u0078N\u0066H\u0068\u004e\u0030\u0048\u0043\u0059\u005a\u0059\u0071\u0051\u0047\u0037\u0062K+\u0073\u0035\u0072R\u0048\u006f\u006e\u0079\u0064\u004eW\u0045\u0047\u000a\u0048\u0038M\u0079\u0076\u00722\u0070\u0079\u0061\u0032K\u0072\u004d\u0075m\u0066\u006d\u0041\u0078\u0055\u0042\u0036\u0066\u0065\u006e\u0043\u002f4\u004f\u0030\u0057\u00728\u0067\u0066\u0050\u004f\u0055\u0038R\u0069\u0074\u006d\u0062\u0044\u0076\u0051\u0050\u0049\u0052\u0058\u004fL\u0034\u0076\u0054B\u0072\u0042\u0064\u0062a\u0041\u000a9\u006e\u0077\u004e\u0050\u002b\u0069\u002f\u002f\u0032\u0030\u004d\u00542\u0062\u0078\u006d\u0065\u0057\u0042\u002b\u0067\u0070\u0063\u0045\u0068G\u0070\u0058\u005a7\u0033\u0033\u0061\u007a\u0051\u0078\u0072\u0043\u0033\u004a\u0034\u0076\u0033C\u005a\u006d\u0045\u004eS\u0074\u0044\u004b\u002f\u004b\u0044\u0053\u0050\u004b\u0055\u0047\u0066\u00756\u000a\u0066\u0077I\u0044\u0041\u0051\u0041\u0042\u000a\u002d\u002d\u002d\u002d\u002dE\u004e\u0044\u0020\u0050\u0055\u0042\u004c\u0049\u0043 \u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\n";
func _ebc (_cbdca ,_fff []byte )([]byte ,error ){_gca ,_dggb :=_cbd .NewCipher (_cbdca );if _dggb !=nil {return nil ,_dggb ;};_aac :=make ([]byte ,_cbd .BlockSize +len (_fff ));_daa :=_aac [:_cbd .BlockSize ];if _ ,_dade :=_d .ReadFull (_ea .Reader ,_daa );
_dade !=nil {return nil ,_dade ;};_bdcg :=_ec .NewCFBEncrypter (_gca ,_daa );_bdcg .XORKeyStream (_aac [_cbd .BlockSize :],_fff );_fafb :=make ([]byte ,_fb .URLEncoding .EncodedLen (len (_aac )));_fb .URLEncoding .Encode (_fafb ,_aac );return _fafb ,nil ;
};var _ace =_cb .Date (2020,1,1,0,0,0,0,_cb .UTC );func _cg (_ca string ,_fa []byte )(string ,error ){_ee ,_ :=_fd .Decode ([]byte (_ca ));if _ee ==nil {return "",_aeg .Errorf ("\u0050\u0072\u0069\u0076\u004b\u0065\u0079\u0020\u0066a\u0069\u006c\u0065\u0064");
};_ff ,_cbe :=_df .ParsePKCS1PrivateKey (_ee .Bytes );if _cbe !=nil {return "",_cbe ;};_ecb :=_eaf .New ();_ecb .Write (_fa );_bc :=_ecb .Sum (nil );_cf ,_cbe :=_fgd .SignPKCS1v15 (_ea .Reader ,_ff ,_e .SHA512 ,_bc );if _cbe !=nil {return "",_cbe ;};_bf :=_fb .StdEncoding .EncodeToString (_fa );
_bf +="\u000a\u002b\u000a";_bf +=_fb .StdEncoding .EncodeToString (_cf );return _bf ,nil ;};var _aff map[string ]struct{};type LicenseKey struct{LicenseId string `json:"license_id"`;CustomerId string `json:"customer_id"`;CustomerName string `json:"customer_name"`;
Tier string `json:"tier"`;CreatedAt _cb .Time `json:"-"`;CreatedAtInt int64 `json:"created_at"`;ExpiresAt *_cb .Time `json:"-"`;ExpiresAtInt int64 `json:"expires_at"`;CreatedBy string `json:"created_by"`;CreatorName string `json:"creator_name"`;CreatorEmail string `json:"creator_email"`;
UniPDF bool `json:"unipdf"`;UniOffice bool `json:"unioffice"`;UniHTML bool `json:"unihtml"`;Trial bool `json:"trial"`;_fdb bool ;_bb string ;_bdc bool ;};func GetLicenseKey ()*LicenseKey {if _bcgd ==nil {return nil ;};_afg :=*_bcgd ;return &_afg ;};func _bed (_gbe *_ae .Response )(_d .ReadCloser ,error ){var _dgcd error ;
var _feea _d .ReadCloser ;switch _eff .ToLower (_gbe .Header .Get ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")){case "\u0067\u007a\u0069\u0070":_feea ,_dgcd =_b .NewReader (_gbe .Body );if _dgcd !=nil {return _feea ,_dgcd ;
};defer _feea .Close ();default:_feea =_gbe .Body ;};return _feea ,nil ;};var _bfee =_cb .Date (2010,1,1,0,0,0,0,_cb .UTC );type MeteredStatus struct{OK bool ;Credits int64 ;Used int64 ;};func _acd ()*meteredClient {_dac :=meteredClient {_bbc :"h\u0074\u0074\u0070\u0073\u003a\u002f/\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069d\u006f\u0063\u002ei\u006f/\u0061\u0070\u0069",_af :&_ae .Client {Timeout :30*_cb .Second }};
if _eeg :=_f .Getenv ("\u0055N\u0049\u0044\u004f\u0043_\u004c\u0049\u0043\u0045\u004eS\u0045_\u0053E\u0052\u0056\u0045\u0052\u005f\u0055\u0052L");_eff .HasPrefix (_eeg ,"\u0068\u0074\u0074\u0070"){_dac ._bbc =_eeg ;};return &_dac ;};func (_gce *LicenseKey )getExpiryDateToCompare ()_cb .Time {if _gce .Trial {return _cb .Now ().UTC ();
};return _gf .ReleasedAt ;};const _fcd ="\u0055\u004e\u0049\u0050DF\u005f\u004c\u0049\u0043\u0045\u004e\u0053\u0045\u005f\u0050\u0041\u0054\u0048";func init (){_egf :=_f .Getenv (_fcd );_bfcf :=_f .Getenv (_bcd );if len (_egf )==0||len (_bfcf )==0{return ;
};_bea ,_bfeg :=_dd .ReadFile (_egf );if _bfeg !=nil {_gf .Log .Error ("\u0055\u006eab\u006c\u0065\u0020t\u006f\u0020\u0072\u0065ad \u006cic\u0065\u006e\u0073\u0065\u0020\u0063\u006fde\u0020\u0066\u0069\u006c\u0065\u003a\u0020%\u0076",_bfeg );return ;};
_bfeg =SetLicenseKey (string (_bea ),_bfcf );if _bfeg !=nil {_gf .Log .Error ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u006c\u006f\u0061\u0064\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_bfeg );
return ;};};func SetLicenseKey (content string ,customerName string )error {_bdf ,_eeba :=_gc (content );if _eeba !=nil {_gf .Log .Error ("\u004c\u0069c\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020\u0065\u0072\u0072\u006f\u0072: \u0025\u0076",_eeba );
return _eeba ;};if !_eff .EqualFold (_bdf .CustomerName ,customerName ){_gf .Log .Error ("L\u0069ce\u006es\u0065 \u0063\u006f\u0064\u0065\u0020i\u0073\u0073\u0075e\u0020\u002d\u0020\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006da\u0074\u0063\u0068, e\u0078\u0070\u0065\u0063\u0074\u0065d\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067o\u0074 \u0027\u0025\u0073\u0027",_bdf .CustomerName ,customerName );
return _aeg .Errorf ("\u0063\u0075\u0073\u0074\u006fm\u0065\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006d\u0061t\u0063\u0068\u002c\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067\u006f\u0074\u0020\u0027\u0025\u0073'",_bdf .CustomerName ,customerName );
};_eeba =_bdf .Validate ();if _eeba !=nil {_gf .Log .Error ("\u004c\u0069\u0063\u0065\u006e\u0073e\u0020\u0063\u006f\u0064\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074i\u006f\u006e\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_eeba );
return _eeba ;};_bcgd =&_bdf ;return nil ;};type meteredStatusResp struct{Valid bool `json:"valid"`;OrgCredits int64 `json:"org_credits"`;OrgUsed int64 `json:"org_used"`;OrgRemaining int64 `json:"org_remaining"`;};func _edb (_dffg ,_abab []byte )([]byte ,error ){_baf :=make ([]byte ,_fb .URLEncoding .DecodedLen (len (_abab )));
_eab ,_cdc :=_fb .URLEncoding .Decode (_baf ,_abab );if _cdc !=nil {return nil ,_cdc ;};_baf =_baf [:_eab ];_dege ,_cdc :=_cbd .NewCipher (_dffg );if _cdc !=nil {return nil ,_cdc ;};if len (_baf )< _cbd .BlockSize {return nil ,_fc .New ("c\u0069p\u0068\u0065\u0072\u0074\u0065\u0078\u0074\u0020t\u006f\u006f\u0020\u0073ho\u0072\u0074");
};_bgb :=_baf [:_cbd .BlockSize ];_baf =_baf [_cbd .BlockSize :];_abeb :=_ec .NewCFBDecrypter (_dege ,_bgb );_abeb .XORKeyStream (_baf ,_baf );return _baf ,nil ;};func _aagf ()string {_dca :=_f .Getenv ("\u0048\u004f\u004d\u0045");if len (_dca )==0{_dca ,_ =_f .UserHomeDir ();
};return _dca ;};func _cbdc (_bag string ,_bbef string ,_fdd bool )error {if _bcgd ==nil {return _fc .New ("\u006e\u006f\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u0020\u006b\u0065\u0079");};if !_bcgd ._fdb ||len (_bcgd ._bb )==0{return nil ;};if len (_bag )==0&&!_fdd {return _fc .New ("\u0064\u006f\u0063\u004b\u0065\u0079\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
};_gec .Lock ();defer _gec .Unlock ();if _aff ==nil {_aff =map[string ]struct{}{};};if _cea ==nil {_cea =map[string ]int {};};_aeb :=0;if len (_bag )> 0{_ ,_dad :=_aff [_bag ];if !_dad {_aff [_bag ]=struct{}{};_aeb ++;};};if _aeb ==0&&!_fdd {return nil ;
};_cea [_bbef ]++;_affd :=_cb .Now ();_cab ,_dga :=_eac .loadState (_bcgd ._bb );if _dga !=nil {_gf .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dga );return _dga ;};if _cab .Usage ==nil {_cab .Usage =map[string ]int {};};for _deg ,_bfb :=range _cea {if _deg !=""{_cab .Usage [_deg ]+=_bfb ;
};};_cea =nil ;const _ddc =24*_cb .Hour ;const _gbf =3*24*_cb .Hour ;if len (_cab .Instance )==0||_affd .Sub (_cab .LastReported )> _ddc ||(_cab .LimitDocs &&_cab .RemainingDocs <=_cab .Docs +int64 (_aeb ))||_fdd {_bdgd ,_dfb :=_f .Hostname ();if _dfb !=nil {return _dfb ;
};_ccg :=_cab .Docs ;_cbc ,_gee ,_dfb :=_bab ();if _dfb !=nil {_gf .Log .Debug ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u0067\u0065\u0074\u0020\u006c\u006fc\u0061\u006c\u0020\u0061\u0064\u0064\u0072\u0065\u0073\u0073\u003a\u0020\u0025\u0073",_dfb .Error ());
_cbc =append (_cbc ,"\u0069n\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0020n\u006ft\u0020a\u0076\u0061\u0069\u006c\u0061\u0062\u006ce");_gee =append (_gee ,"\u0069n\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0020n\u006ft\u0020a\u0076\u0061\u0069\u006c\u0061\u0062\u006ce");
}else {_c .Strings (_gee );_c .Strings (_cbc );_bbf ,_bfa :=_cffg ();if _bfa !=nil {return _bfa ;};_ggf :=false ;for _ ,_eaa :=range _gee {if _eaa ==_bbf .String (){_ggf =true ;};};if !_ggf {_gee =append (_gee ,_bbf .String ());};};_dcd :=_acd ();_dcd ._gb =_bcgd ._bb ;
_ccg +=int64 (_aeb );_fbfa :=meteredUsageCheckinForm {Instance :_cab .Instance ,Next :_cab .Next ,UsageNumber :int (_ccg ),NumFailed :_cab .NumErrors ,Hostname :_bdgd ,LocalIP :_eff .Join (_gee ,"\u002c\u0020"),MacAddress :_eff .Join (_cbc ,"\u002c\u0020"),Package :"\u0075\u006e\u0069\u0070\u0064\u0066",PackageVersion :_gf .Version ,Usage :_cab .Usage ,IsPersistentCache :_bcgd ._bdc ,Timestamp :_affd .Unix ()};
if len (_cbc )==0{_fbfa .MacAddress ="\u006e\u006f\u006e\u0065";};_dbef :=int64 (0);_dcdb :=_cab .NumErrors ;_gad :=_affd ;_afb :=0;_eecc :=_cab .LimitDocs ;_dgca ,_dfb :=_dcd .checkinUsage (_fbfa );if _dfb !=nil {if _affd .Sub (_cab .LastReported )> _gbf {if !_dgca .Success {return _fc .New (_dgca .Message );
};return _fc .New ("\u0074\u006f\u006f\u0020\u006c\u006f\u006e\u0067\u0020\u0073\u0069\u006e\u0063\u0065\u0020\u006c\u0061\u0073\u0074\u0020\u0073\u0075\u0063\u0063e\u0073\u0073\u0066\u0075\u006c \u0063\u0068e\u0063\u006b\u0069\u006e");};_dbef =_ccg ;_dcdb ++;
_gad =_cab .LastReported ;}else {_eecc =_dgca .LimitDocs ;_afb =_dgca .RemainingDocs ;_dcdb =0;};if len (_dgca .Instance )==0{_dgca .Instance =_fbfa .Instance ;};if len (_dgca .Next )==0{_dgca .Next =_fbfa .Next ;};_dfb =_eac .updateState (_dcd ._gb ,_dgca .Instance ,_dgca .Next ,int (_dbef ),_eecc ,_afb ,int (_dcdb ),_gad ,nil );
if _dfb !=nil {return _dfb ;};if !_dgca .Success {return _aeg .Errorf ("\u0065r\u0072\u006f\u0072\u003a\u0020\u0025s",_dgca .Message );};}else {_dga =_eac .updateState (_bcgd ._bb ,_cab .Instance ,_cab .Next ,int (_cab .Docs )+_aeb ,_cab .LimitDocs ,int (_cab .RemainingDocs ),int (_cab .NumErrors ),_cab .LastReported ,_cab .Usage );
if _dga !=nil {return _dga ;};};return nil ;};const (LicenseTierUnlicensed ="\u0075\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";LicenseTierCommunity ="\u0063o\u006d\u006d\u0075\u006e\u0069\u0074y";LicenseTierIndividual ="\u0069\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";
LicenseTierBusiness ="\u0062\u0075\u0073\u0069\u006e\u0065\u0073\u0073";);func TrackUse (useKey string ){if _bcgd ==nil {return ;};if !_bcgd ._fdb ||len (_bcgd ._bb )==0{return ;};if len (useKey )==0{return ;};_gec .Lock ();defer _gec .Unlock ();if _cea ==nil {_cea =map[string ]int {};
};_cea [useKey ]++;};const (_bg ="\u002d\u002d\u002d--\u0042\u0045\u0047\u0049\u004e\u0020\u0055\u004e\u0049D\u004fC\u0020L\u0049C\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";_fcc ="\u002d\u002d\u002d\u002d\u002d\u0045\u004e\u0044\u0020\u0055\u004e\u0049\u0044\u004f\u0043 \u004cI\u0043\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";
);func SetMeteredKeyPersistentCache (val bool ){_bcgd ._bdc =val };