Built motion from commit (unavailable).|2.5.27
[motion2.git] / server / services / agi / scripts / index.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xf535=['status','code','metadata','endConversation','googleDialogflowV2','SessionsClient','sessionPath','detectIntent','Dialogflow\x20V2\x20response:','queryResult','diagnosticInfo','fields','end_conversation','fulfillmentText','displayName','intent','isFallback','languageCode','queryText','responseId','intentDetectionConfidence','asr','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','lex','ispeechTTS','format','ispeechASR','model=%s','parse','sestekNDA','nda','text','CustomAction','channelData','CustomActionData','AudioFromTts','Data','audiofile','dirName','apiai-promise','bluebird','dialogflow','http','https','md5','path','querystring','request-promise','randomstring','sox','google-tts-api','util','./aws','./sestek','./tilde','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','host','statusCode','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','info','finish\x20download\x20file','close','error','unlink','download\x20error','https:','WHAT_EVER','get','data','end','transcode','wav','error\x20convert','finish\x20to\x20convert','start','tmp','generate','.wav','writeFileSync','base64','chmodSync','777','split','toString','?key=','input','voice','audioConfig','MP3','text:synthesize','POST','.mp3','audioContent','writeFile','then','resolve','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','stringify','jQ1olc','null','generic','slice','parse\x20response\x20failed:\x0a','length','text\x20length\x20limit\x20reached','lang\x20\x22','\x22\x20might\x20not\x20exist','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','name','googleDialogflow','result','source','action','actionIncomplete','fulfillment','score'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf535,0x1c0));var _0x5f53=function(_0x36a04d,_0x42e2d4){_0x36a04d=_0x36a04d-0x0;var _0x743c52=_0xf535[_0x36a04d];return _0x743c52;};'use strict';var apiai=require(_0x5f53('0x0'));var BPromise=require(_0x5f53('0x1'));var dialogflow=require(_0x5f53('0x2'));var fs=require('fs');var http=require(_0x5f53('0x3'));var https=require(_0x5f53('0x4'));var md5=require(_0x5f53('0x5'));var path=require(_0x5f53('0x6'));var querystring=require(_0x5f53('0x7'));var rp=require(_0x5f53('0x8'));var rs=require(_0x5f53('0x9'));var sox=require(_0x5f53('0xa'));var tts=require(_0x5f53('0xb'));var urlParse=require('url')['parse'];var util=require(_0x5f53('0xc'));var aws=require(_0x5f53('0xd'));var google=require('./google');var sestek=require(_0x5f53('0xe'));var tilde=require(_0x5f53('0xf'));var logger=require(_0x5f53('0x10'))(_0x5f53('0x11'));var ISPEECH_API=_0x5f53('0x12');function downloadFile(_0xb7f7c8,_0x3ac7f7){return new BPromise(function(_0x5d2248,_0x3182f3){var _0x329d8c=urlParse(_0xb7f7c8);var _0x179e4a=_0x329d8c[_0x5f53('0x13')]==='https:'?https:http;var _0x1510d5={'host':_0x329d8c[_0x5f53('0x14')],'path':_0x329d8c[_0x5f53('0x6')],'headers':{'user-agent':'WHAT_EVER'}};_0x179e4a['get'](_0x1510d5,function(_0x417fb4){if(_0x417fb4[_0x5f53('0x15')]!==0xc8){logger['error'](_0x5f53('0x16')+_0xb7f7c8+_0x5f53('0x17')+_0x417fb4[_0x5f53('0x15')]+'\x20('+_0x417fb4[_0x5f53('0x18')]+')');_0x3182f3(new Error('request\x20to\x20'+_0xb7f7c8+'\x20failed,\x20status\x20code\x20=\x20'+_0x417fb4[_0x5f53('0x15')]+'\x20('+_0x417fb4['statusMessage']+')'));return;}var _0x44446c=fs[_0x5f53('0x19')](_0x3ac7f7);_0x44446c['on'](_0x5f53('0x1a'),function(){logger[_0x5f53('0x1b')](_0x5f53('0x1c'));_0x44446c[_0x5f53('0x1d')](_0x5d2248);});_0x44446c['on'](_0x5f53('0x1e'),function(_0x5bae57){fs[_0x5f53('0x1f')](_0x3ac7f7);logger[_0x5f53('0x1e')](_0x5f53('0x20'),_0x5bae57);_0x3182f3(_0x5bae57);});_0x417fb4['pipe'](_0x44446c);})['on'](_0x5f53('0x1e'),function(_0x236959){logger[_0x5f53('0x1e')](_0x236959);_0x3182f3(_0x236959);})['end']();});}function uploadFile(_0x5654de){return new BPromise(function(_0xc3e7f8,_0x5e2d8e){var _0x5ba1e7=urlParse(_0x5654de);var _0x4cefa8=_0x5ba1e7[_0x5f53('0x13')]===_0x5f53('0x21')?https:http;var _0xae4bc6={'host':_0x5ba1e7[_0x5f53('0x14')],'path':_0x5ba1e7[_0x5f53('0x6')],'headers':{'user-agent':_0x5f53('0x22')}};_0x4cefa8[_0x5f53('0x23')](_0xae4bc6,function(_0x27fec0){if(_0x27fec0[_0x5f53('0x15')]!==0xc8){_0x5e2d8e(new Error(_0x5f53('0x16')+_0x5654de+_0x5f53('0x17')+_0x27fec0[_0x5f53('0x15')]+'\x20('+_0x27fec0['statusMessage']+')'));return;}var _0x42cc2f='';_0x27fec0['on'](_0x5f53('0x24'),function(_0x2caa90){_0x42cc2f+=_0x2caa90;});_0x27fec0['on'](_0x5f53('0x25'),function(){_0xc3e7f8(_0x42cc2f);});})['on'](_0x5f53('0x1e'),function(_0x376ba4){_0x5e2d8e(_0x376ba4);})[_0x5f53('0x25')]();});}function convertFile(_0x36d2bd,_0x4c86cf){return new BPromise(function(_0x28775a,_0x418de5){var _0x12d423=sox[_0x5f53('0x26')](_0x36d2bd,_0x4c86cf,{'sampleRate':0x1f40,'format':_0x5f53('0x27'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x12d423['on'](_0x5f53('0x1e'),function(_0x4297f9){logger[_0x5f53('0x1e')](_0x5f53('0x28'),_0x4297f9);_0x418de5(_0x4297f9);});_0x12d423['on'](_0x5f53('0x25'),function(){logger[_0x5f53('0x1b')](_0x5f53('0x29'));_0x28775a();});_0x12d423[_0x5f53('0x2a')]();});}function base64Decode(_0x56fabc,_0x4af26f){var _0x39c31c=path['resolve'](__dirname,_0x5f53('0x2b'),rs[_0x5f53('0x2c')](0x4)+_0x5f53('0x2d'));fs[_0x5f53('0x2e')](_0x39c31c,_0x56fabc,_0x5f53('0x2f'));return convertFile(_0x39c31c,_0x4af26f)['then'](function(){try{fs[_0x5f53('0x1f')](_0x39c31c);fs[_0x5f53('0x30')](_0x4af26f,_0x5f53('0x31'));}catch(_0x12bf94){logger[_0x5f53('0x1e')](_0x12bf94);}return _0x4af26f[_0x5f53('0x32')]('.')[0x0];});}function base64Encode(_0x3e9546){var _0x590542=fs['readFileSync'](_0x3e9546);return new Buffer(_0x590542)[_0x5f53('0x33')](_0x5f53('0x2f'));}exports['googleCloudTTS']=function(_0x29ac50,_0x11e430,_0x352d29,_0x3c7a32,_0x49c98d,_0x454f72){var _0x54dcb2,_0x2069d6;var _0x1130ea='https://texttospeech.googleapis.com/v1/';var _0x349c5f=_0x5f53('0x34')+_0x29ac50;var _0x1a83f8={};if(_0x11e430==='ssml'){_0x1a83f8[_0x5f53('0x35')]={'ssml':_0x352d29};}else{_0x1a83f8[_0x5f53('0x35')]={'text':_0x352d29};};_0x1a83f8[_0x5f53('0x36')]={'languageCode':_0x3c7a32,'ssmlGender':_0x49c98d};_0x1a83f8[_0x5f53('0x37')]={'audioEncoding':_0x5f53('0x38'),'sampleRateHertz':0x1f40};var _0x4d2b6f={'url':_0x1130ea+_0x5f53('0x39')+_0x349c5f,'method':_0x5f53('0x3a'),'json':!![],'body':_0x1a83f8};return rp(_0x4d2b6f)['then'](function(_0x5b1084){return new BPromise(function(_0x29f895,_0x3d03dc){_0x54dcb2=path['resolve'](__dirname,_0x5f53('0x2b'),rs['generate'](0x4)+_0x5f53('0x3b'));var _0x50b406=Buffer['from'](_0x5b1084[_0x5f53('0x3c')],_0x5f53('0x2f'));return fs[_0x5f53('0x3d')](_0x54dcb2,_0x50b406,function(_0x466d20){_0x3d03dc(_0x466d20);},function(_0x38701d){fs[_0x5f53('0x30')](_0x54dcb2,_0x5f53('0x31'));_0x29f895(_0x38701d);});});})[_0x5f53('0x3e')](function(_0x11235e){_0x2069d6=path[_0x5f53('0x3f')](__dirname,_0x5f53('0x2b'),rs['generate'](0x4)+_0x5f53('0x2d'));return convertFile(_0x54dcb2,_0x2069d6);})['then'](function(){try{fs[_0x5f53('0x1f')](_0x54dcb2);fs[_0x5f53('0x30')](_0x2069d6,_0x5f53('0x31'));}catch(_0x1e66d5){logger['error'](_0x1e66d5);}logger['info'](_0x5f53('0x40'),_0x2069d6[_0x5f53('0x32')]('.')[0x0]);return _0x2069d6[_0x5f53('0x32')]('.')[0x0];});};exports[_0x5f53('0x41')]=function(_0x3fa53c,_0x4eb407){var _0x509732=_0x5f53('0x42');var _0x55dd58,_0x3100b8;var _0x1e9c71;var _0xb23c57={'encoding':_0x5f53('0x43'),'method':_0x5f53('0x3a'),'timeout':0x2710,'url':_0x509732,'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':'f.req='+encodeURIComponent(JSON[_0x5f53('0x44')]([[[_0x5f53('0x45'),JSON[_0x5f53('0x44')]([_0x3fa53c,_0x4eb407||'en',![],_0x5f53('0x46')]),null,_0x5f53('0x47')]]]))};return rp(_0xb23c57)['then'](function(_0x59d78a){try{_0x1e9c71=eval(_0x59d78a[_0x5f53('0x48')](0x5))[0x0][0x2];}catch(_0x4ae93c){throw new Error(_0x5f53('0x49')+_0x59d78a[_0x5f53('0x24')]);}if(!_0x1e9c71){if(_0x3fa53c[_0x5f53('0x4a')]>0xc8){throw new Error(_0x5f53('0x4b'));}else{throw new Error(_0x5f53('0x4c')+_0x4eb407+_0x5f53('0x4d'));}}try{_0x1e9c71=eval(_0x1e9c71)[0x0];}catch(_0x1d5f72){throw new Error(_0x5f53('0x49')+res[_0x5f53('0x24')]);}const _0x36372d=_0x1e9c71;_0x55dd58=path[_0x5f53('0x3f')](__dirname,'tmp',rs[_0x5f53('0x2c')](0x4)+_0x5f53('0x3b'));fs[_0x5f53('0x2e')](_0x55dd58,_0x1e9c71,{'encoding':_0x5f53('0x2f')});_0x3100b8=path[_0x5f53('0x3f')](__dirname,'tmp',rs[_0x5f53('0x2c')](0x4)+_0x5f53('0x2d'));return convertFile(_0x55dd58,_0x3100b8);})[_0x5f53('0x3e')](function(){try{fs['unlink'](_0x55dd58);fs['chmodSync'](_0x3100b8,_0x5f53('0x31'));}catch(_0x33d2b0){logger[_0x5f53('0x1e')](_0x33d2b0);}logger[_0x5f53('0x1b')]('goggleTTS\x20path',_0x3100b8[_0x5f53('0x32')]('.')[0x0]);return _0x3100b8['split']('.')[0x0];});};exports['googleASR']=function(_0x579fab,_0x5bce0c,_0x30dab6){return google['asr'](_0x579fab,_0x5bce0c,_0x30dab6)[_0x5f53('0x3e')](function(_0x51c27d){logger[_0x5f53('0x1b')](_0x51c27d[_0x5f53('0x4e')]);return rp(_0x51c27d);})[_0x5f53('0x3e')](function(_0x436e8f){var _0x24218c='';var _0x4630e4=0x0;try{fs['unlink'](_0x579fab);}catch(_0x9b7414){logger[_0x5f53('0x1e')](_0x9b7414);}if(_0x436e8f&&_0x436e8f['results']){_0x24218c=_0x436e8f[_0x5f53('0x4f')][_0x5f53('0x50')](function(_0x18ca60){return _0x18ca60&&_0x18ca60[_0x5f53('0x51')][0x0]&&_0x18ca60[_0x5f53('0x51')][0x0][_0x5f53('0x52')]?_0x18ca60[_0x5f53('0x51')][0x0][_0x5f53('0x52')]:'';})[_0x5f53('0x53')]('\x0a');_0x4630e4=_0x436e8f[_0x5f53('0x4f')][_0x5f53('0x50')](function(_0x36ece6){return _0x36ece6&&_0x36ece6[_0x5f53('0x51')][0x0]&&_0x36ece6['alternatives'][0x0]['confidence']?_0x36ece6[_0x5f53('0x51')][0x0][_0x5f53('0x54')]:0x0;})[_0x5f53('0x53')]('\x0a');}logger[_0x5f53('0x1b')](_0x5f53('0x55'),_0x24218c);logger[_0x5f53('0x1b')](_0x5f53('0x56'),_0x4630e4);return{'transcript':_0x24218c,'confidence':_0x4630e4};})[_0x5f53('0x57')](function(_0xa0377f){logger[_0x5f53('0x1e')]('[%s]\x20%s:%s',_0xa0377f[_0x5f53('0x15')],_0xa0377f[_0x5f53('0x58')],_0xa0377f['message']);});};exports[_0x5f53('0x59')]=function(_0x4caa4d,_0x333b46,_0x22677e,_0x5bead4){var _0x3a8ec5=apiai(_0x333b46,{'language':_0x5bead4||'en'});return _0x3a8ec5['textRequest'](_0x22677e,{'sessionId':md5(_0x4caa4d)})[_0x5f53('0x3e')](function(_0x59ecba){logger[_0x5f53('0x1b')](JSON[_0x5f53('0x44')](_0x59ecba));return{'source':_0x59ecba[_0x5f53('0x5a')][_0x5f53('0x5b')],'resolvedQuery':_0x59ecba[_0x5f53('0x5a')]['resolvedQuery'],'action':_0x59ecba['result'][_0x5f53('0x5c')],'actionIncomplete':_0x59ecba['result'][_0x5f53('0x5d')],'speech':_0x59ecba['result'][_0x5f53('0x5e')]['speech'],'score':_0x59ecba[_0x5f53('0x5a')][_0x5f53('0x5f')],'statusCode':_0x59ecba[_0x5f53('0x60')][_0x5f53('0x61')],'endConversation':_0x59ecba[_0x5f53('0x5a')][_0x5f53('0x62')][_0x5f53('0x63')]||![],'isFallbackIntent':_0x59ecba['result'][_0x5f53('0x62')]['isFallbackIntent']};});};exports[_0x5f53('0x64')]=function(_0x41040e,_0xcdb4b8,_0x37f931,_0x3518bd,_0x561602,_0x22f52b){var _0x379163=_0x3518bd['replace'](/\\n/g,'\x0a');var _0x1d31a7={'credentials':{'private_key':_0x379163,'client_email':_0x37f931}};var _0x219761=new dialogflow[(_0x5f53('0x65'))](_0x1d31a7);var _0x4e9d4c=_0x219761[_0x5f53('0x66')](_0xcdb4b8,md5(_0x41040e));var _0xb77007={'session':_0x4e9d4c,'queryInput':{'text':{'text':_0x561602,'languageCode':_0x22f52b}}};return _0x219761[_0x5f53('0x67')](_0xb77007)[_0x5f53('0x3e')](function(_0x2c4ad6){if(_0x2c4ad6&&_0x2c4ad6[_0x5f53('0x4a')]){logger['info'](_0x5f53('0x68'),JSON[_0x5f53('0x44')](_0x2c4ad6));var _0x304dda=_0x2c4ad6[0x0];if(_0x304dda){var _0x548fd9={'action':_0x304dda[_0x5f53('0x69')]['action'],'allRequiredParamsPresent':_0x304dda[_0x5f53('0x69')]['allRequiredParamsPresent'],'endConversation':_0x304dda[_0x5f53('0x69')][_0x5f53('0x6a')]&&_0x304dda[_0x5f53('0x69')]['diagnosticInfo']['fields']?_0x304dda[_0x5f53('0x69')][_0x5f53('0x6a')][_0x5f53('0x6b')][_0x5f53('0x6c')]['boolValue']:![],'fulfillmentText':_0x304dda[_0x5f53('0x69')][_0x5f53('0x6d')],'intentName':_0x304dda[_0x5f53('0x69')]['intent'][_0x5f53('0x58')],'intentDisplayName':_0x304dda['queryResult']['intent'][_0x5f53('0x6e')],'isFallbackIntent':_0x304dda[_0x5f53('0x69')][_0x5f53('0x6f')][_0x5f53('0x70')],'languageCode':_0x304dda[_0x5f53('0x69')][_0x5f53('0x71')],'queryText':_0x304dda[_0x5f53('0x69')][_0x5f53('0x72')],'responseId':_0x304dda[_0x5f53('0x73')],'score':_0x304dda[_0x5f53('0x69')][_0x5f53('0x74')],'speech':_0x304dda[_0x5f53('0x69')][_0x5f53('0x6d')],'providerResponse':JSON['stringify'](_0x2c4ad6)};return _0x548fd9;}}});};exports['tildeASR']=function(_0x224704,_0x1464c8,_0x2f7257,_0x3f50fb){return tilde[_0x5f53('0x75')](_0x224704,_0x1464c8,_0x2f7257,_0x3f50fb)[_0x5f53('0x3e')](function(_0x4aed50){try{fs[_0x5f53('0x1f')](_0x224704);}catch(_0x36c8e6){logger[_0x5f53('0x1e')](_0x36c8e6);}logger[_0x5f53('0x1b')](_0x5f53('0x76'),_0x4aed50[_0x5f53('0x52')]);logger['info'](_0x5f53('0x77'),_0x4aed50['confidence']);return _0x4aed50;});};exports['awsPolly']=function(_0x4adadf,_0xfc070a,_0xf706e3,_0x4d400c,_0xddd364,_0x4ae2d0){var _0x55dd41=path[_0x5f53('0x3f')](__dirname,_0x5f53('0x2b'),rs['generate'](0x4)+_0x5f53('0x3b'));var _0xd9a623;return aws['polly'](_0x4adadf,_0xfc070a,_0xf706e3,_0x4d400c,_0xddd364,_0x4ae2d0,_0x55dd41)[_0x5f53('0x3e')](function(){_0xd9a623=path[_0x5f53('0x3f')](__dirname,_0x5f53('0x2b'),rs[_0x5f53('0x2c')](0x4)+_0x5f53('0x2d'));return convertFile(_0x55dd41,_0xd9a623);})['then'](function(){try{fs[_0x5f53('0x1f')](_0x55dd41);fs['chmodSync'](_0xd9a623,_0x5f53('0x31'));}catch(_0x2203ff){logger[_0x5f53('0x1e')](_0x2203ff);}return _0xd9a623[_0x5f53('0x32')]('.')[0x0];});};exports['awsLex']=function(_0x136957,_0x59b961,_0x5601b5,_0x54546a,_0x3541b0,_0x3ca849){return aws[_0x5f53('0x78')](_0x136957,_0x59b961,_0x5601b5,_0x54546a,_0x3541b0,_0x3ca849)['then'](function(_0x1d9903){logger[_0x5f53('0x1b')](JSON[_0x5f53('0x44')](_0x1d9903));return _0x1d9903;});};exports[_0x5f53('0x79')]=function(_0x11bf93,_0x32dd1e,_0x28c566,_0x2b41e7){var _0x5ecbd3=util[_0x5f53('0x7a')]('%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3',ISPEECH_API,_0x11bf93,encodeURIComponent(_0x32dd1e),_0x28c566,_0x2b41e7);var _0x3cb576=path['resolve'](__dirname,_0x5f53('0x2b'),rs[_0x5f53('0x2c')](0x4)+'.mp3');var _0x3d7670;return downloadFile(_0x5ecbd3,_0x3cb576)[_0x5f53('0x3e')](function(){_0x3d7670=path[_0x5f53('0x3f')](__dirname,_0x5f53('0x2b'),rs['generate'](0x4)+_0x5f53('0x2d'));return convertFile(_0x3cb576,_0x3d7670);})[_0x5f53('0x3e')](function(){try{fs['unlink'](_0x3cb576);fs['chmodSync'](_0x3d7670,'777');}catch(_0x23c840){logger[_0x5f53('0x1e')](_0x23c840);}return _0x3d7670[_0x5f53('0x32')]('.')[0x0];});};exports[_0x5f53('0x7b')]=function(_0x1d5534,_0x2d95bf,_0x4ab0f2,_0xb4d802){var _0x195ea8=util['format']('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x2d95bf,_0x4ab0f2,base64Encode(_0x1d5534),_0xb4d802?util['format'](_0x5f53('0x7c'),encodeURIComponent(_0xb4d802)):'freeform=3');return uploadFile(_0x195ea8)[_0x5f53('0x3e')](function(_0x2c5592){return querystring[_0x5f53('0x7d')](_0x2c5592);});};exports[_0x5f53('0x7e')]=function(_0xbb400b,_0xe16c3f){return sestek[_0x5f53('0x7f')](_0xbb400b,_0xe16c3f)[_0x5f53('0x3e')](function(_0xe817d7){logger['info'](JSON['stringify'](_0xe817d7));var _0x1e48b2={'speech':_0xe817d7[_0x5f53('0x80')],'action':_0xe817d7['channelData']?_0xe817d7['channelData'][_0x5f53('0x81')]:undefined,'actiondata':_0xe817d7['channelData']?_0xe817d7[_0x5f53('0x82')][_0x5f53('0x83')]:undefined};if(_0xe817d7[_0x5f53('0x82')]&&_0xe817d7['channelData'][_0x5f53('0x84')]){return base64Decode(_0xe817d7['channelData'][_0x5f53('0x84')][_0x5f53('0x85')],path[_0x5f53('0x3f')](__dirname,_0x5f53('0x2b'),rs[_0x5f53('0x2c')](0x4)+_0x5f53('0x2d')))[_0x5f53('0x3e')](function(_0x326a41){_0x1e48b2[_0x5f53('0x86')]=_0x326a41;return _0x1e48b2;});}return _0x1e48b2;});};exports[_0x5f53('0x87')]=function(){return __dirname;};