mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-25 13:48:53 +08:00
12 lines
36 KiB
Go
12 lines
36 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 (_ea "bytes";_e "compress/gzip";_g "crypto";_fg "crypto/aes";_da "crypto/cipher";_fe "crypto/rand";_ed "crypto/rsa";_ec "crypto/sha256";_a "crypto/sha512";_bed "crypto/x509";_cb "encoding/base64";_eaf "encoding/binary";_cae "encoding/hex";_be "encoding/json";_cbb "encoding/pem";_dg "errors";_dgd "fmt";_cgg "github.com/unidoc/unioffice";_cda "github.com/unidoc/unioffice/common";_ca "io";_bc "io/ioutil";_eg "log";_fc "net";_cg "net/http";_b "os";_ga "path/filepath";_d "regexp";_f "sort";_dge "strings";_cd "sync";_gf "time";);func _edd (_bgcc []byte )(_ca .Reader ,error ){_gca :=new (_ea .Buffer );_dcf :=_e .NewWriter (_gca );_dcf .Write (_bgcc );_fad :=_dcf .Close ();if _fad !=nil {return nil ,_fad ;};return _gca ,nil ;};func (_ge *LicenseKey )TypeToString ()string {if _ge ._fec {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};if _ge .Tier ==LicenseTierUnlicensed {return "\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";};if _ge .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 _ge .Tier ==LicenseTierIndividual ||_ge .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 (_eec defaultStateHolder )loadState (_bdd string )(reportState ,error ){_cdae :=_aab ();if len (_cdae )==0{return reportState {},_dg .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_agc :=_ga .Join (_cdae ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_ega :=_b .MkdirAll (_agc ,0777);if _ega !=nil {return reportState {},_ega ;};if len (_bdd )< 20{return reportState {},_dg .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_cdc :=[]byte (_bdd );_fdg :=_a .Sum512_256 (_cdc [:20]);_gfb :=_cae .EncodeToString (_fdg [:]);_gb :=_ga .Join (_agc ,_gfb );_ffd ,_ega :=_bc .ReadFile (_gb );if _ega !=nil {if _b .IsNotExist (_ega ){return reportState {},nil ;};_cgg .Log ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0025\u0076\u000a",_ega );return reportState {},_dg .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};const _dbeb ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_ffd ,_ega =_eac ([]byte (_dbeb ),_ffd );if _ega !=nil {return reportState {},_ega ;};var _ecg reportState ;_ega =_be .Unmarshal (_ffd ,&_ecg );if _ega !=nil {_cgg .Log ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069d\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0076\u000a",_ega );return reportState {},_dg .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};return _ecg ,nil ;};const _ac ="\u0033\u0030\u0035\u0063\u0033\u0030\u0030\u00640\u0036\u0030\u0039\u0032\u0061\u0038\u00364\u0038\u0038\u0036\u0066\u0037\u0030d\u0030\u0031\u0030\u0031\u0030\u00310\u0035\u0030\u0030\u0030\u0033\u0034\u0062\u0030\u0030\u0033\u0030\u00348\u0030\u0032\u0034\u0031\u0030\u0030\u0062\u0038\u0037\u0065\u0061\u0066\u0062\u0036\u0063\u0030\u0037\u0034\u0039\u0039\u0065\u0062\u00397\u0063\u0063\u0039\u0064\u0033\u0035\u0036\u0035\u0065\u0063\u00663\u0031\u0036\u0038\u0031\u0039\u0036\u0033\u0030\u0031\u0039\u0030\u0037c\u0038\u0034\u0031\u0061\u0064\u0064c6\u0036\u0035\u0030\u0038\u0036\u0062\u0062\u0033\u0065\u0064\u0038\u0065\u0062\u0031\u0032\u0064\u0039\u0064\u0061\u0032\u0036\u0063\u0061\u0066\u0061\u0039\u0036\u00345\u0030\u00314\u0036\u0064\u0061\u0038\u0062\u0064\u0030\u0063c\u0066\u0031\u0035\u0035\u0066\u0063a\u0063\u0063\u00368\u0036\u0039\u0035\u0035\u0065\u0066\u0030\u0033\u0030\u0032\u0066\u0061\u0034\u0034\u0061\u0061\u0033\u0065\u0063\u0038\u0039\u0034\u0031\u0037\u0062\u0030\u0032\u0030\u0033\u0030\u0031\u0030\u0030\u0030\u0031";var _bgb =MakeUnlicensedKey ();var _dadc map[string ]struct{};var _gg =_gf .Date (2010,1,1,0,0,0,0,_gf .UTC );func GetMeteredState ()(MeteredStatus ,error ){if _bgb ==nil {return MeteredStatus {},_dg .New ("\u006c\u0069\u0063\u0065ns\u0065\u0020\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};if !_bgb ._fec ||len (_bgb ._fb )==0{return MeteredStatus {},_dg .New ("\u0061p\u0069 \u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_egg ,_dce :=_bfa .loadState (_bgb ._fb );if _dce !=nil {_cgg .Log ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0025\u0076\u000a",_dce );return MeteredStatus {},_dce ;};if _egg .Docs > 0{_eade :=_adc ("","",true );if _eade !=nil {return MeteredStatus {},_eade ;};};_fga .Lock ();defer _fga .Unlock ();_gdee :=_fca ();_gdee ._aafe =_bgb ._fb ;_aff ,_dce :=_gdee .getStatus ();if _dce !=nil {return MeteredStatus {},_dce ;};if !_aff .Valid {return MeteredStatus {},_dg .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_dbe :=MeteredStatus {OK :true ,Credits :_aff .OrgCredits ,Used :_aff .OrgUsed };return _dbe ,nil ;};const (_cf ="\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";_eda ="\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 _ad (_bd string ,_bg []byte )(string ,error ){_edc ,_ :=_cbb .Decode ([]byte (_bd ));if _edc ==nil {return "",_dgd .Errorf ("\u0050\u0072\u0069\u0076\u004b\u0065\u0079\u0020\u0066a\u0069\u006c\u0065\u0064");};_ab ,_cc :=_bed .ParsePKCS1PrivateKey (_edc .Bytes );if _cc !=nil {return "",_cc ;};_fd :=_a .New ();_fd .Write (_bg );_fcc :=_fd .Sum (nil );_bf ,_cc :=_ed .SignPKCS1v15 (_fe .Reader ,_ab ,_g .SHA512 ,_fcc );if _cc !=nil {return "",_cc ;};_abd :=_cb .StdEncoding .EncodeToString (_bg );_abd +="\u000a\u002b\u000a";_abd +=_cb .StdEncoding .EncodeToString (_bf );return _abd ,nil ;};type LegacyLicense struct{Name string ;Signature string `json:",omitempty"`;Expiration _gf .Time ;LicenseType LegacyLicenseType ;};func _dc (_dga string )(LicenseKey ,error ){var _dd LicenseKey ;_dad ,_cdb :=_cac (_cf ,_eda ,_dga );if _cdb !=nil {return _dd ,_cdb ;};_gad ,_cdb :=_ba (_bcg ,_dad );if _cdb !=nil {return _dd ,_cdb ;};_cdb =_be .Unmarshal (_gad ,&_dd );if _cdb !=nil {return _dd ,_cdb ;};_dd .CreatedAt =_gf .Unix (_dd .CreatedAtInt ,0);if _dd .ExpiresAtInt > 0{_ddg :=_gf .Unix (_dd .ExpiresAtInt ,0);_dd .ExpiresAt =_ddg ;};return _dd ,nil ;};func _aegg (_cfe *_cg .Response )(_ca .ReadCloser ,error ){var _gdc error ;var _daad _ca .ReadCloser ;switch _dge .ToLower (_cfe .Header .Get ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")){case "\u0067\u007a\u0069\u0070":_daad ,_gdc =_e .NewReader (_cfe .Body );if _gdc !=nil {return _daad ,_gdc ;};defer _daad .Close ();default:_daad =_cfe .Body ;};return _daad ,nil ;};func _ddea (_bgcf *_cg .Response )([]byte ,error ){var _dbg []byte ;_ccb ,_abeg :=_aegg (_bgcf );if _abeg !=nil {return _dbg ,_abeg ;};return _bc .ReadAll (_ccb );};func _eac (_babe ,_dae []byte )([]byte ,error ){_add :=make ([]byte ,_cb .URLEncoding .DecodedLen (len (_dae )));_eed ,_cggd :=_cb .URLEncoding .Decode (_add ,_dae );if _cggd !=nil {return nil ,_cggd ;};_add =_add [:_eed ];_def ,_cggd :=_fg .NewCipher (_babe );if _cggd !=nil {return nil ,_cggd ;};if len (_add )< _fg .BlockSize {return nil ,_dg .New ("c\u0069p\u0068\u0065\u0072\u0074\u0065\u0078\u0074\u0020t\u006f\u006f\u0020\u0073ho\u0072\u0074");};_bdcd :=_add [:_fg .BlockSize ];_add =_add [_fg .BlockSize :];_defa :=_da .NewCFBDecrypter (_def ,_bdcd );_defa .XORKeyStream (_add ,_add );return _add ,nil ;};func SetMeteredKey (apiKey string )error {if len (apiKey )==0{_cgg .Log ("\u004d\u0065\u0074e\u0072\u0065\u0064\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0041\u0050\u0049\u0020\u004b\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020b\u0065\u0020\u0065\u006d\u0070\u0074\u0079\u000a");_cgg .Log ("\u002d\u0020\u0047\u0072\u0061\u0062\u0020o\u006e\u0065\u0020i\u006e\u0020\u0074h\u0065\u0020F\u0072\u0065\u0065\u0020\u0054\u0069e\u0072 a\u0074\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f\u000a");return _dgd .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 _bgb !=nil &&(_bgb ._fec ||_bgb .Tier !=LicenseTierUnlicensed ){_cgg .Log ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0043\u0061\u006e\u006e\u006f\u0074\u0020\u0073\u0065\u0074\u0020\u006c\u0069\u0063\u0065n\u0073\u0065\u0020\u006b\u0065\u0079 \u0074\u0077\u0069\u0063\u0065\u0020\u002d\u0020\u0053\u0068\u006f\u0075\u006c\u0064 \u006a\u0075s\u0074\u0020\u0069\u006ei\u0074\u0069\u0061\u006c\u0069z\u0065\u0020\u006f\u006e\u0063\u0065\u000a");return _dg .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0061\u006c\u0072\u0065\u0061\u0064\u0079\u0020\u0073\u0065\u0074");};_cgf :=_fca ();_cgf ._aafe =apiKey ;_fgd ,_fef :=_cgf .getStatus ();if _fef !=nil {return _fef ;};if !_fgd .Valid {return _dg .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_bdg :=&LicenseKey {_fec :true ,_fb :apiKey };_bgb =_bdg ;return nil ;};type LicenseKey struct{LicenseId string `json:"license_id"`;CustomerId string `json:"customer_id"`;CustomerName string `json:"customer_name"`;Tier string `json:"tier"`;CreatedAt _gf .Time `json:"-"`;CreatedAtInt int64 `json:"created_at"`;ExpiresAt _gf .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"`;_fec bool ;_fb string ;};func _adc (_eag string ,_eefc string ,_cca bool )error {if _bgb ==nil {return _dg .New ("\u006e\u006f\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u0020\u006b\u0065\u0079");};if !_bgb ._fec ||len (_bgb ._fb )==0{return nil ;};if len (_eag )==0&&!_cca {return _dg .New ("\u0064\u006f\u0063\u004b\u0065\u0079\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};_fga .Lock ();defer _fga .Unlock ();if _dadc ==nil {_dadc =map[string ]struct{}{};};if _ace ==nil {_ace =map[string ]int {};};_ece :=0;if !_cca {_ ,_faf :=_dadc [_eag ];if !_faf {_dadc [_eag ]=struct{}{};_ece ++;};if _ece ==0{return nil ;};_ace [_eefc ]++;};_abea :=_gf .Now ();_egd ,_adce :=_bfa .loadState (_bgb ._fb );if _adce !=nil {_cgg .Log ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0025\u0076\u000a",_adce );return _adce ;};if _egd .Usage ==nil {_egd .Usage =map[string ]int {};};for _dgb ,_edac :=range _ace {_egd .Usage [_dgb ]+=_edac ;};_ace =nil ;const _fccf =24*_gf .Hour ;const _ceb =3*24*_gf .Hour ;if len (_egd .Instance )==0||_abea .Sub (_egd .LastReported )> _fccf ||(_egd .LimitDocs &&_egd .RemainingDocs <=_egd .Docs +int64 (_ece ))||_cca {_ged ,_dgdg :=_b .Hostname ();if _dgdg !=nil {return _dgdg ;};_bde :=_egd .Docs ;_bege ,_baab ,_dgdg :=_gec ();if _dgdg !=nil {return _dgdg ;};_f .Strings (_baab );_f .Strings (_bege );_caf ,_dgdg :=_bcbd ();if _dgdg !=nil {return _dgdg ;};_bbe :=false ;for _ ,_ddc :=range _baab {if _ddc ==_caf .String (){_bbe =true ;};};if !_bbe {_baab =append (_baab ,_caf .String ());};_caa :=_fca ();_caa ._aafe =_bgb ._fb ;_bde +=int64 (_ece );_bdff :=meteredUsageCheckinForm {Instance :_egd .Instance ,Next :_egd .Next ,UsageNumber :int (_bde ),NumFailed :_egd .NumErrors ,Hostname :_ged ,LocalIP :_dge .Join (_baab ,"\u002c\u0020"),MacAddress :_dge .Join (_bege ,"\u002c\u0020"),Package :"\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e",PackageVersion :_cda .Version ,Usage :_egd .Usage };if len (_bege )==0{_bdff .MacAddress ="\u006e\u006f\u006e\u0065";};_cbg :=int64 (0);_fdb :=_egd .NumErrors ;_gdg :=_abea ;_cfb :=0;_geb :=_egd .LimitDocs ;_ecbe ,_dgdg :=_caa .checkinUsage (_bdff );if _dgdg !=nil {if _abea .Sub (_egd .LastReported )> _ceb {return _dg .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");};_cbg =_bde ;_fdb ++;_gdg =_egd .LastReported ;}else {_geb =_ecbe .LimitDocs ;_cfb =_ecbe .RemainingDocs ;_fdb =0;};if len (_ecbe .Instance )==0{_ecbe .Instance =_bdff .Instance ;};if len (_ecbe .Next )==0{_ecbe .Next =_bdff .Next ;};_dgdg =_bfa .updateState (_caa ._aafe ,_ecbe .Instance ,_ecbe .Next ,int (_cbg ),_geb ,_cfb ,int (_fdb ),_gdg ,nil );if _dgdg !=nil {return _dgdg ;};if !_ecbe .Success {return _dgd .Errorf ("\u0065r\u0072\u006f\u0072\u003a\u0020\u0025s",_ecbe .Message );};}else {_adce =_bfa .updateState (_bgb ._fb ,_egd .Instance ,_egd .Next ,int (_egd .Docs )+_ece ,_egd .LimitDocs ,int (_egd .RemainingDocs ),int (_egd .NumErrors ),_egd .LastReported ,_egd .Usage );if _adce !=nil {return _adce ;};};return nil ;};var _bfa stateLoader =defaultStateHolder {};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"`;};func init (){_deb ,_cef :=_cae .DecodeString (_ac );if _cef !=nil {_eg .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_cef );};_cegf ,_cef :=_bed .ParsePKIXPublicKey (_deb );if _cef !=nil {_eg .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_cef );};_bgaf =_cegf .(*_ed .PublicKey );};func (_bfb defaultStateHolder )updateState (_faa ,_dadf ,_ded string ,_eba int ,_aaa bool ,_ecd int ,_ebac int ,_bbf _gf .Time ,_aeg map[string ]int )error {_beg :=_aab ();if len (_beg )==0{return _dg .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_abe :=_ga .Join (_beg ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_cgb :=_b .MkdirAll (_abe ,0777);if _cgb !=nil {return _cgb ;};if len (_faa )< 20{return _dg .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_dgf :=[]byte (_faa );_ccgf :=_a .Sum512_256 (_dgf [:20]);_bgg :=_cae .EncodeToString (_ccgf [:]);_cab :=_ga .Join (_abe ,_bgg );var _ecc reportState ;_ecc .Docs =int64 (_eba );_ecc .NumErrors =int64 (_ebac );_ecc .LimitDocs =_aaa ;_ecc .RemainingDocs =int64 (_ecd );_ecc .LastWritten =_gf .Now ().UTC ();_ecc .LastReported =_bbf ;_ecc .Instance =_dadf ;_ecc .Next =_ded ;_ecc .Usage =_aeg ;_debe ,_cgb :=_be .Marshal (_ecc );if _cgb !=nil {return _cgb ;};const _agb ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_debe ,_cgb =_bab ([]byte (_agb ),_debe );if _cgb !=nil {return _cgb ;};_cgb =_bc .WriteFile (_cab ,_debe ,0600);if _cgb !=nil {return _cgb ;};return nil ;};const _dfc ="\u0055\u004e\u0049\u004fFF\u0049\u0043\u0045\u005f\u004c\u0049\u0043\u0045\u004e\u0053\u0045\u005f\u0050\u0041T\u0048";func _ba (_gfd string ,_aa string )([]byte ,error ){var (_dab int ;_bcf string ;);for _ ,_bcf =range []string {"\u000a\u002b\u000a","\u000d\u000a\u002b\r\u000a","\u0020\u002b\u0020"}{if _dab =_dge .Index (_aa ,_bcf );_dab !=-1{break ;};};if _dab ==-1{return nil ,_dgd .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");};_de :=_aa [:_dab ];_ce :=_dab +len (_bcf );_bdc :=_aa [_ce :];if _de ==""||_bdc ==""{return nil ,_dgd .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");};_fge ,_cea :=_cb .StdEncoding .DecodeString (_de );if _cea !=nil {return nil ,_dgd .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0072\u0069\u0067\u0069\u006ea\u006c");};_fea ,_cea :=_cb .StdEncoding .DecodeString (_bdc );if _cea !=nil {return nil ,_dgd .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_af ,_ :=_cbb .Decode ([]byte (_gfd ));if _af ==nil {return nil ,_dgd .Errorf ("\u0050\u0075\u0062\u004b\u0065\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_ff ,_cea :=_bed .ParsePKIXPublicKey (_af .Bytes );if _cea !=nil {return nil ,_cea ;};_daf :=_ff .(*_ed .PublicKey );if _daf ==nil {return nil ,_dgd .Errorf ("\u0050u\u0062\u004b\u0065\u0079\u0020\u0063\u006f\u006e\u0076\u0065\u0072s\u0069\u006f\u006e\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_fgf :=_a .New ();_fgf .Write (_fge );_ffg :=_fgf .Sum (nil );_cea =_ed .VerifyPKCS1v15 (_daf ,_g .SHA512 ,_ffg ,_fea );if _cea !=nil {return nil ,_cea ;};return _fge ,nil ;};func (_dde *LicenseKey )ToString ()string {if _dde ._fec {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};_ae :=_dgd .Sprintf ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_dde .LicenseId );_ae +=_dgd .Sprintf ("\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_dde .CustomerId );_ae +=_dgd .Sprintf ("\u0043u\u0073t\u006f\u006d\u0065\u0072\u0020N\u0061\u006de\u003a\u0020\u0025\u0073\u000a",_dde .CustomerName );_ae +=_dgd .Sprintf ("\u0054i\u0065\u0072\u003a\u0020\u0025\u0073\n",_dde .Tier );_ae +=_dgd .Sprintf ("\u0043r\u0065a\u0074\u0065\u0064\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_cda .UtcTimeFormat (_dde .CreatedAt ));if _dde .ExpiresAt .IsZero (){_ae +="\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041t\u003a\u0020N\u0065\u0076\u0065\u0072\u000a";}else {_ae +=_dgd .Sprintf ("\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_cda .UtcTimeFormat (_dde .ExpiresAt ));};_ae +=_dgd .Sprintf ("\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u003a\u0020\u0025\u0073\u0020<\u0025\u0073\u003e\u000a",_dde .CreatorName ,_dde .CreatorEmail );return _ae ;};func (_eaa *meteredClient )checkinUsage (_gde meteredUsageCheckinForm )(meteredUsageCheckinResp ,error ){_gde .Package ="\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e";_gde .PackageVersion =_cda .Version ;var _bdf meteredUsageCheckinResp ;_bcbg :=_eaa ._ccg +"\u002f\u006d\u0065\u0074er\u0065\u0064\u002f\u0075\u0073\u0061\u0067\u0065\u005f\u0063\u0068\u0065\u0063\u006bi\u006e";_cdf ,_fac :=_be .Marshal (_gde );if _fac !=nil {return _bdf ,_fac ;};_egf ,_fac :=_edd (_cdf );if _fac !=nil {return _bdf ,_fac ;};_ceaa ,_fac :=_cg .NewRequest ("\u0050\u004f\u0053\u0054",_bcbg ,_egf );if _fac !=nil {return _bdf ,_fac ;};_ceaa .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");_ceaa .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_ceaa .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_ceaa .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_eaa ._aafe );_bgf ,_fac :=_eaa ._afb .Do (_ceaa );if _fac !=nil {return _bdf ,_fac ;};defer _bgf .Body .Close ();if _bgf .StatusCode !=200{return _bdf ,_dgd .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",_bgf .StatusCode );};_gfa ,_fac :=_ddea (_bgf );if _fac !=nil {return _bdf ,_fac ;};_fac =_be .Unmarshal (_gfa ,&_bdf );if _fac !=nil {return _bdf ,_fac ;};return _bdf ,nil ;};func (_ggf *LicenseKey )Validate ()error {if _ggf ._fec {return nil ;};if len (_ggf .LicenseId )< 10{return _dgd .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 (_ggf .CustomerId )< 10{return _dgd .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 (_ggf .CustomerName )< 1{return _dgd .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 _gg .After (_ggf .CreatedAt ){return _dgd .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 _ggf .ExpiresAt .IsZero (){_fda :=_ggf .CreatedAt .AddDate (1,0,0);if _aacd .After (_fda ){_fda =_aacd ;};_ggf .ExpiresAt =_fda ;};if _ggf .CreatedAt .After (_ggf .ExpiresAt ){return _dgd .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 _ggf .isExpired (){return _dgd .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020l\u0069\u0063\u0065ns\u0065\u003a\u0020\u0054\u0068\u0065 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0068\u0061\u0073\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0065\u0078\u0070\u0069r\u0065\u0064");};if len (_ggf .CreatorName )< 1{return _dgd .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 (_ggf .CreatorEmail )< 1{return _dgd .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 _ggf .CreatedAt .After (_bga ){if !_ggf .UniOffice {return _dgd .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u003a\u0020\u0054\u0068\u0069\u0073\u0020\u0055\u006e\u0069\u0044\u006f\u0063\u0020\u006b\u0065\u0079\u0020i\u0073\u0020\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0066\u006f\u0072\u0020\u0055\u006e\u0069\u004f\u0066\u0066\u0069\u0063\u0065");};};return nil ;};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 _gf .Time `json:"lr"`;LastWritten _gf .Time `json:"lw"`;Usage map[string ]int `json:"u"`;};func GenRefId (prefix string )(string ,error ){var _bcff _ea .Buffer ;_bcff .WriteString (prefix );_geg :=make ([]byte ,8+16);_gccg :=_gf .Now ().UTC ().UnixNano ();_eaf .BigEndian .PutUint64 (_geg ,uint64 (_gccg ));_ ,_aae :=_fe .Read (_geg [8:]);if _aae !=nil {return "",_aae ;};_bcff .WriteString (_cae .EncodeToString (_geg ));return _bcff .String (),nil ;};var _ace map[string ]int ;func (_afg LegacyLicense )Verify (pubKey *_ed .PublicKey )error {_aed :=_afg ;_aed .Signature ="";_bgc :=_ea .Buffer {};_gd :=_be .NewEncoder (&_bgc );if _bcb :=_gd .Encode (_aed );_bcb !=nil {return _bcb ;};_ee ,_dadd :=_cae .DecodeString (_afg .Signature );if _dadd !=nil {return _dadd ;};_adg :=_ec .Sum256 (_bgc .Bytes ());_dadd =_ed .VerifyPKCS1v15 (pubKey ,_g .SHA256 ,_adg [:],_ee );return _dadd ;};type stateLoader interface{loadState (_bb string )(reportState ,error );updateState (_agd ,_bfd ,_baa string ,_egfa int ,_ccf bool ,_ade int ,_gcc int ,_bac _gf .Time ,_eefe map[string ]int )error ;};var _fga =&_cd .Mutex {};func _gec ()([]string ,[]string ,error ){_gdfd ,_gac :=_fc .Interfaces ();if _gac !=nil {return nil ,nil ,_gac ;};var _cacc []string ;var _ebc []string ;for _ ,_bdb :=range _gdfd {if _bdb .Flags &_fc .FlagUp ==0||_ea .Equal (_bdb .HardwareAddr ,nil ){continue ;};_afc ,_cff :=_bdb .Addrs ();if _cff !=nil {return nil ,nil ,_cff ;};_bgab :=0;for _ ,_dea :=range _afc {var _cag _fc .IP ;switch _bce :=_dea .(type ){case *_fc .IPNet :_cag =_bce .IP ;case *_fc .IPAddr :_cag =_bce .IP ;};if _cag .IsLoopback (){continue ;};if _cag .To4 ()==nil {continue ;};_ebc =append (_ebc ,_cag .String ());_bgab ++;};_acc :=_bdb .HardwareAddr .String ();if _acc !=""&&_bgab > 0{_cacc =append (_cacc ,_acc );};};return _cacc ,_ebc ,nil ;};type meteredStatusResp struct{Valid bool `json:"valid"`;OrgCredits int64 `json:"org_credits"`;OrgUsed int64 `json:"org_used"`;OrgRemaining int64 `json:"org_remaining"`;};var _cabc =false ;func (_cfc *meteredClient )getStatus ()(meteredStatusResp ,error ){var _aag meteredStatusResp ;_ag :=_cfc ._ccg +"\u002fm\u0065t\u0065\u0072\u0065\u0064\u002f\u0073\u0074\u0061\u0074\u0075\u0073";var _dda meteredStatusForm ;_gdf ,_cgge :=_be .Marshal (_dda );if _cgge !=nil {return _aag ,_cgge ;};_gee ,_cgge :=_edd (_gdf );if _cgge !=nil {return _aag ,_cgge ;};_cbe ,_cgge :=_cg .NewRequest ("\u0050\u004f\u0053\u0054",_ag ,_gee );if _cgge !=nil {return _aag ,_cgge ;};_cbe .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");_cbe .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_cbe .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_cbe .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_cfc ._aafe );_eef ,_cgge :=_cfc ._afb .Do (_cbe );if _cgge !=nil {return _aag ,_cgge ;};defer _eef .Body .Close ();if _eef .StatusCode !=200{return _aag ,_dgd .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",_eef .StatusCode );};_df ,_cgge :=_ddea (_eef );if _cgge !=nil {return _aag ,_cgge ;};_cgge =_be .Unmarshal (_df ,&_aag );if _cgge !=nil {return _aag ,_cgge ;};return _aag ,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"`;};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 (_fa *LicenseKey )getExpiryDateToCompare ()_gf .Time {if _fa .Trial {return _gf .Now ().UTC ();};return _cda .ReleasedAt ;};func _bcbd ()(_fc .IP ,error ){_bdfd ,_agcd :=_fc .Dial ("\u0075\u0064\u0070","\u0038\u002e\u0038\u002e\u0038\u002e\u0038\u003a\u0038\u0030");if _agcd !=nil {return nil ,_agcd ;};defer _bdfd .Close ();_fdc :=_bdfd .LocalAddr ().(*_fc .UDPAddr );return _fdc .IP ,nil ;};func _cac (_ceg string ,_ffc string ,_aac string )(string ,error ){_db :=_dge .Index (_aac ,_ceg );if _db ==-1{return "",_dgd .Errorf ("\u0068\u0065a\u0064\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_eae :=_dge .Index (_aac ,_ffc );if _eae ==-1{return "",_dgd .Errorf ("\u0066\u006fo\u0074\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_gc :=_db +len (_ceg )+1;return _aac [_gc :_eae -1],nil ;};func (_fed *LicenseKey )isExpired ()bool {return _fed .getExpiryDateToCompare ().After (_fed .ExpiresAt )};func TrackUse (useKey string ){if _bgb ==nil {return ;};if !_bgb ._fec ||len (_bgb ._fb )==0{return ;};if len (useKey )==0{return ;};_fga .Lock ();defer _fga .Unlock ();if _ace ==nil {_ace =map[string ]int {};};_ace [useKey ]++;};type meteredStatusForm struct{};type defaultStateHolder struct{};const _bae ="\u0055\u004e\u0049OF\u0046\u0049\u0043\u0045\u005f\u0043\u0055\u0053\u0054\u004f\u004d\u0045\u0052\u005f\u004e\u0041\u004d\u0045";func GetLicenseKey ()*LicenseKey {if _bgb ==nil {return nil ;};_faab :=*_bgb ;return &_faab ;};func _fca ()*meteredClient {_adgg :=meteredClient {_ccg :"h\u0074\u0074\u0070\u0073\u003a\u002f/\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069d\u006f\u0063\u002ei\u006f/\u0061\u0070\u0069",_afb :&_cg .Client {Timeout :30*_gf .Second }};if _cdac :=_b .Getenv ("\u0055N\u0049\u0044\u004f\u0043_\u004c\u0049\u0043\u0045\u004eS\u0045_\u0053E\u0052\u0056\u0045\u0052\u005f\u0055\u0052L");_dge .HasPrefix (_cdac ,"\u0068\u0074\u0074\u0070"){_adgg ._ccg =_cdac ;};return &_adgg ;};func SetLicenseKey (content string ,customerName string )error {if _cabc {return nil ;};_gag ,_fdd :=_dc (content );if _fdd !=nil {_cgg .Log ("\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0063\u006fd\u0065\u0020\u0064\u0065\u0063\u006f\u0064e\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076\u000a",_fdd );return _fdd ;};if !_dge .EqualFold (_gag .CustomerName ,customerName ){_cgg .Log ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0069\u0073s\u0075\u0065\u0020\u002d \u0043\u0075\u0073\u0074\u006fm\u0065\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006d\u0061\u0074\u0063\u0068\u002c\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0027\u0025\u0073\u0027,\u0020\u0062\u0075\u0074\u0020\u0067\u006f\u0074 \u0027\u0025\u0073\u0027\u000a",customerName ,_gag .CustomerName );return _dgd .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'",customerName ,_gag .CustomerName );};_fdd =_gag .Validate ();if _fdd !=nil {_cgg .Log ("\u004c\u0069\u0063en\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0076a\u006ci\u0064a\u0074i\u006f\u006e\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076\u000a",_fdd );return _fdd ;};_bgb =&_gag ;return nil ;};type LegacyLicenseType byte ;var _bga =_gf .Date (2019,6,6,0,0,0,0,_gf .UTC );func MakeUnlicensedKey ()*LicenseKey {_ddd :=LicenseKey {};_ddd .CustomerName ="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";_ddd .Tier =LicenseTierUnlicensed ;_ddd .CreatedAt =_gf .Now ().UTC ();_ddd .CreatedAtInt =_ddd .CreatedAt .Unix ();return &_ddd ;};func _bab (_gce ,_gfe []byte )([]byte ,error ){_bfc ,_ef :=_fg .NewCipher (_gce );if _ef !=nil {return nil ,_ef ;};_ffge :=make ([]byte ,_fg .BlockSize +len (_gfe ));_gbf :=_ffge [:_fg .BlockSize ];if _ ,_fdcd :=_ca .ReadFull (_fe .Reader ,_gbf );_fdcd !=nil {return nil ,_fdcd ;};_cga :=_da .NewCFBEncrypter (_bfc ,_gbf );_cga .XORKeyStream (_ffge [_fg .BlockSize :],_gfe );_cdaf :=make ([]byte ,_cb .URLEncoding .EncodedLen (len (_ffge )));_cb .URLEncoding .Encode (_cdaf ,_ffge );return _cdaf ,nil ;};func init (){_caaa :=_b .Getenv (_dfc );_bdbc :=_b .Getenv (_bae );if len (_caaa )==0||len (_bdbc )==0{return ;};_cba ,_bbc :=_bc .ReadFile (_caaa );if _bbc !=nil {_cgg .Log ("\u0055\u006ea\u0062\u006c\u0065\u0020t\u006f\u0020r\u0065\u0061\u0064\u0020\u006c\u0069\u0063\u0065n\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0066\u0069\u006c\u0065:\u0020\u0025\u0076\u000a",_bbc );return ;};_bbc =SetLicenseKey (string (_cba ),_bdbc );if _bbc !=nil {_cgg .Log ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u006c\u006f\u0061\u0064\u0020l\u0069c\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u003a\u0020\u0025\u0076\u000a",_bbc );return ;};};func Track (docKey string ,useKey string )error {return _adc (docKey ,useKey ,false )};var _bgaf *_ed .PublicKey ;const _bcg ="\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";type meteredClient struct{_ccg string ;_aafe string ;_afb *_cg .Client ;};var _aacd =_gf .Date (2020,1,1,0,0,0,0,_gf .UTC );func _aab ()string {_dded :=_b .Getenv ("\u0048\u004f\u004d\u0045");if len (_dded )==0{_dded ,_ =_b .UserHomeDir ();};return _dded ;};func SetLegacyLicenseKey (s string )error {_cabb :=_d .MustCompile ("\u005c\u0073");s =_cabb .ReplaceAllString (s ,"");var _fafc _ca .Reader ;_fafc =_dge .NewReader (s );_fafc =_cb .NewDecoder (_cb .RawURLEncoding ,_fafc );_fafc ,_gfad :=_e .NewReader (_fafc );if _gfad !=nil {return _gfad ;};_cfd :=_be .NewDecoder (_fafc );_gaa :=&LegacyLicense {};if _egc :=_cfd .Decode (_gaa );_egc !=nil {return _egc ;};if _cfbc :=_gaa .Verify (_bgaf );_cfbc !=nil {return _dg .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006e\u0020\u0065\u0072\u0072\u006f\u0072");};if _gaa .Expiration .Before (_cda .ReleasedAt ){return _dg .New ("\u006ci\u0063e\u006e\u0073\u0065\u0020\u0065\u0078\u0070\u0069\u0072\u0065\u0064");};_fdga :=_gf .Now ().UTC ();_gfbb :=LicenseKey {};_gfbb .CreatedAt =_fdga ;_gfbb .CustomerId ="\u004c\u0065\u0067\u0061\u0063\u0079";_gfbb .CustomerName =_gaa .Name ;_gfbb .Tier =LicenseTierBusiness ;_gfbb .ExpiresAt =_gaa .Expiration ;_gfbb .CreatorName ="\u0055\u006e\u0069\u0044\u006f\u0063\u0020\u0073\u0075p\u0070\u006f\u0072\u0074";_gfbb .CreatorEmail ="\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0040\u0075\u006e\u0069\u0064o\u0063\u002e\u0069\u006f";_gfbb .UniOffice =true ;_bgb =&_gfbb ;return nil ;};func (_daa *LicenseKey )IsLicensed ()bool {if _daa ==nil {return false ;};return _daa .Tier !=LicenseTierUnlicensed ||_daa ._fec ;};type MeteredStatus struct{OK bool ;Credits int64 ;Used int64 ;}; |