Built motion from commit 9d0783e6.|2.6.13
[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 _0x7f9a=['length','lang\x20\x22','\x22\x20might\x20not\x20exist','parse\x20response\x20failed:\x0a','goggleTTS\x20path','googleASR','asr','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','googleDialogflow','textRequest','result','action','actionIncomplete','speech','score','status','code','metadata','endConversation','isFallbackIntent','googleDialogflowV2','replace','SessionsClient','sessionPath','queryResult','fields','diagnosticInfo','end_conversation','boolValue','fulfillmentText','intent','isFallback','languageCode','tildeASR','awsPolly','polly','awsLex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','freeform=3','sestekNDA','nda','text','channelData','CustomAction','CustomActionData','AudioFromTts','Data','audiofile','dirName','bluebird','https','querystring','randomstring','sox','google-tts-api','parse','./aws','./google','./tilde','https://api.ispeech.org/api/rest','protocol','https:','host','path','WHAT_EVER','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','info','finish\x20download\x20file','unlink','download\x20error','pipe','end','data','transcode','wav','error\x20convert','finish\x20to\x20convert','resolve','tmp','generate','.wav','writeFileSync','then','chmodSync','777','readFileSync','toString','googleCloudTTS','?key=','input','audioConfig','text:synthesize','POST','.mp3','from','base64','writeFile','googleCloudTTS\x20path','split','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','application/x-www-form-urlencoded','f.req=','stringify','jQ1olc','null','generic','slice'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x7f9a,0xc1));var _0xa7f9=function(_0x21ce01,_0x43d754){_0x21ce01=_0x21ce01-0x0;var _0x3d738b=_0x7f9a[_0x21ce01];return _0x3d738b;};'use strict';var apiai=require('apiai-promise');var BPromise=require(_0xa7f9('0x0'));var dialogflow=require('dialogflow');var fs=require('fs');var http=require('http');var https=require(_0xa7f9('0x1'));var md5=require('md5');var path=require('path');var querystring=require(_0xa7f9('0x2'));var rp=require('request-promise');var rs=require(_0xa7f9('0x3'));var sox=require(_0xa7f9('0x4'));var tts=require(_0xa7f9('0x5'));var urlParse=require('url')[_0xa7f9('0x6')];var util=require('util');var aws=require(_0xa7f9('0x7'));var google=require(_0xa7f9('0x8'));var sestek=require('./sestek');var tilde=require(_0xa7f9('0x9'));var logger=require('../../../config/logger')('agi');var ISPEECH_API=_0xa7f9('0xa');function downloadFile(_0x586c97,_0x5dce4e){return new BPromise(function(_0x2a0588,_0x593fbd){var _0x2d5ad0=urlParse(_0x586c97);var _0x586a2c=_0x2d5ad0[_0xa7f9('0xb')]===_0xa7f9('0xc')?https:http;var _0x276116={'host':_0x2d5ad0[_0xa7f9('0xd')],'path':_0x2d5ad0[_0xa7f9('0xe')],'headers':{'user-agent':_0xa7f9('0xf')}};_0x586a2c[_0xa7f9('0x10')](_0x276116,function(_0x267b36){if(_0x267b36[_0xa7f9('0x11')]!==0xc8){logger[_0xa7f9('0x12')](_0xa7f9('0x13')+_0x586c97+_0xa7f9('0x14')+_0x267b36[_0xa7f9('0x11')]+'\x20('+_0x267b36[_0xa7f9('0x15')]+')');_0x593fbd(new Error('request\x20to\x20'+_0x586c97+_0xa7f9('0x14')+_0x267b36[_0xa7f9('0x11')]+'\x20('+_0x267b36['statusMessage']+')'));return;}var _0x1f6ecc=fs[_0xa7f9('0x16')](_0x5dce4e);_0x1f6ecc['on'](_0xa7f9('0x17'),function(){logger[_0xa7f9('0x18')](_0xa7f9('0x19'));_0x1f6ecc['close'](_0x2a0588);});_0x1f6ecc['on'](_0xa7f9('0x12'),function(_0x3cbcbf){fs[_0xa7f9('0x1a')](_0x5dce4e);logger[_0xa7f9('0x12')](_0xa7f9('0x1b'),_0x3cbcbf);_0x593fbd(_0x3cbcbf);});_0x267b36[_0xa7f9('0x1c')](_0x1f6ecc);})['on'](_0xa7f9('0x12'),function(_0x27944f){logger[_0xa7f9('0x12')](_0x27944f);_0x593fbd(_0x27944f);})[_0xa7f9('0x1d')]();});}function uploadFile(_0x4b1d49){return new BPromise(function(_0x136837,_0x17785b){var _0x2f72ef=urlParse(_0x4b1d49);var _0x127be0=_0x2f72ef[_0xa7f9('0xb')]===_0xa7f9('0xc')?https:http;var _0x2ddf2d={'host':_0x2f72ef[_0xa7f9('0xd')],'path':_0x2f72ef['path'],'headers':{'user-agent':_0xa7f9('0xf')}};_0x127be0[_0xa7f9('0x10')](_0x2ddf2d,function(_0x2c5e32){if(_0x2c5e32[_0xa7f9('0x11')]!==0xc8){_0x17785b(new Error(_0xa7f9('0x13')+_0x4b1d49+'\x20failed,\x20status\x20code\x20=\x20'+_0x2c5e32[_0xa7f9('0x11')]+'\x20('+_0x2c5e32[_0xa7f9('0x15')]+')'));return;}var _0x3b63fc='';_0x2c5e32['on'](_0xa7f9('0x1e'),function(_0x15df05){_0x3b63fc+=_0x15df05;});_0x2c5e32['on'](_0xa7f9('0x1d'),function(){_0x136837(_0x3b63fc);});})['on'](_0xa7f9('0x12'),function(_0x47a927){_0x17785b(_0x47a927);})['end']();});}function convertFile(_0x125a3a,_0x196355){return new BPromise(function(_0x42152e,_0x4459af){var _0x21c99d=sox[_0xa7f9('0x1f')](_0x125a3a,_0x196355,{'sampleRate':0x1f40,'format':_0xa7f9('0x20'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x21c99d['on'](_0xa7f9('0x12'),function(_0x38bd11){logger['error'](_0xa7f9('0x21'),_0x38bd11);_0x4459af(_0x38bd11);});_0x21c99d['on'](_0xa7f9('0x1d'),function(){logger[_0xa7f9('0x18')](_0xa7f9('0x22'));_0x42152e();});_0x21c99d['start']();});}function base64Decode(_0x1260c5,_0x2c90e8){var _0x102654=path[_0xa7f9('0x23')](__dirname,_0xa7f9('0x24'),rs[_0xa7f9('0x25')](0x4)+_0xa7f9('0x26'));fs[_0xa7f9('0x27')](_0x102654,_0x1260c5,'base64');return convertFile(_0x102654,_0x2c90e8)[_0xa7f9('0x28')](function(){try{fs[_0xa7f9('0x1a')](_0x102654);fs[_0xa7f9('0x29')](_0x2c90e8,_0xa7f9('0x2a'));}catch(_0x2a1055){logger['error'](_0x2a1055);}return _0x2c90e8['split']('.')[0x0];});}function base64Encode(_0x181a1a){var _0x17f162=fs[_0xa7f9('0x2b')](_0x181a1a);return new Buffer(_0x17f162)[_0xa7f9('0x2c')]('base64');}exports[_0xa7f9('0x2d')]=function(_0x35d5cf,_0x3b6783,_0x2c58e1,_0x158216,_0x4b0b07,_0x271289){var _0x44da8c,_0x50a143;var _0x176431='https://texttospeech.googleapis.com/v1/';var _0x25768c=_0xa7f9('0x2e')+_0x35d5cf;var _0x5d55d7={};if(_0x3b6783==='ssml'){_0x5d55d7['input']={'ssml':_0x2c58e1};}else{_0x5d55d7[_0xa7f9('0x2f')]={'text':_0x2c58e1};};_0x5d55d7['voice']={'languageCode':_0x158216,'ssmlGender':_0x4b0b07};_0x5d55d7[_0xa7f9('0x30')]={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0x425545={'url':_0x176431+_0xa7f9('0x31')+_0x25768c,'method':_0xa7f9('0x32'),'json':!![],'body':_0x5d55d7};return rp(_0x425545)[_0xa7f9('0x28')](function(_0x249f0b){return new BPromise(function(_0x2e6cd8,_0x53476d){_0x44da8c=path[_0xa7f9('0x23')](__dirname,_0xa7f9('0x24'),rs[_0xa7f9('0x25')](0x4)+_0xa7f9('0x33'));var _0x2bf9fa=Buffer[_0xa7f9('0x34')](_0x249f0b['audioContent'],_0xa7f9('0x35'));return fs[_0xa7f9('0x36')](_0x44da8c,_0x2bf9fa,function(_0x18026f){_0x53476d(_0x18026f);},function(_0x42c1bb){fs[_0xa7f9('0x29')](_0x44da8c,_0xa7f9('0x2a'));_0x2e6cd8(_0x42c1bb);});});})[_0xa7f9('0x28')](function(_0x7daab4){_0x50a143=path[_0xa7f9('0x23')](__dirname,'tmp',rs[_0xa7f9('0x25')](0x4)+_0xa7f9('0x26'));return convertFile(_0x44da8c,_0x50a143);})[_0xa7f9('0x28')](function(){try{fs['unlink'](_0x44da8c);fs[_0xa7f9('0x29')](_0x50a143,'777');}catch(_0x7d521){logger[_0xa7f9('0x12')](_0x7d521);}logger['info'](_0xa7f9('0x37'),_0x50a143[_0xa7f9('0x38')]('.')[0x0]);return _0x50a143[_0xa7f9('0x38')]('.')[0x0];});};exports[_0xa7f9('0x39')]=function(_0x1e8ad5,_0x354b39){var _0x3bf23a=_0xa7f9('0x3a');var _0x514607,_0x38c946;var _0x5dc663;var _0x42c7d0={'encoding':_0xa7f9('0x3b'),'method':_0xa7f9('0x32'),'timeout':0x2710,'url':_0x3bf23a,'headers':{'Content-Type':_0xa7f9('0x3c')},'body':_0xa7f9('0x3d')+encodeURIComponent(JSON[_0xa7f9('0x3e')]([[[_0xa7f9('0x3f'),JSON[_0xa7f9('0x3e')]([_0x1e8ad5,_0x354b39||'en',![],_0xa7f9('0x40')]),null,_0xa7f9('0x41')]]]))};return rp(_0x42c7d0)[_0xa7f9('0x28')](function(_0x25481c){try{_0x5dc663=eval(_0x25481c[_0xa7f9('0x42')](0x5))[0x0][0x2];}catch(_0x3fc259){throw new Error('parse\x20response\x20failed:\x0a'+_0x25481c[_0xa7f9('0x1e')]);}if(!_0x5dc663){if(_0x1e8ad5[_0xa7f9('0x43')]>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error(_0xa7f9('0x44')+_0x354b39+_0xa7f9('0x45'));}}try{_0x5dc663=eval(_0x5dc663)[0x0];}catch(_0x25fb42){throw new Error(_0xa7f9('0x46')+res[_0xa7f9('0x1e')]);}const _0x424633=_0x5dc663;_0x514607=path['resolve'](__dirname,_0xa7f9('0x24'),rs['generate'](0x4)+_0xa7f9('0x33'));fs[_0xa7f9('0x27')](_0x514607,_0x5dc663,{'encoding':_0xa7f9('0x35')});_0x38c946=path[_0xa7f9('0x23')](__dirname,'tmp',rs[_0xa7f9('0x25')](0x4)+'.wav');return convertFile(_0x514607,_0x38c946);})[_0xa7f9('0x28')](function(){try{fs[_0xa7f9('0x1a')](_0x514607);fs[_0xa7f9('0x29')](_0x38c946,_0xa7f9('0x2a'));}catch(_0x26200d){logger['error'](_0x26200d);}logger['info'](_0xa7f9('0x47'),_0x38c946['split']('.')[0x0]);return _0x38c946[_0xa7f9('0x38')]('.')[0x0];});};exports[_0xa7f9('0x48')]=function(_0x474057,_0x28d45f,_0x4a069b){return google[_0xa7f9('0x49')](_0x474057,_0x28d45f,_0x4a069b)[_0xa7f9('0x28')](function(_0x33afc6){logger[_0xa7f9('0x18')](_0x33afc6[_0xa7f9('0x4a')]);return rp(_0x33afc6);})[_0xa7f9('0x28')](function(_0x5edd78){var _0x204d78='';var _0x374d86=0x0;try{fs[_0xa7f9('0x1a')](_0x474057);}catch(_0x2fc414){logger[_0xa7f9('0x12')](_0x2fc414);}if(_0x5edd78&&_0x5edd78['results']){_0x204d78=_0x5edd78[_0xa7f9('0x4b')][_0xa7f9('0x4c')](function(_0x362f50){return _0x362f50&&_0x362f50['alternatives'][0x0]&&_0x362f50[_0xa7f9('0x4d')][0x0]['transcript']?_0x362f50[_0xa7f9('0x4d')][0x0][_0xa7f9('0x4e')]:'';})[_0xa7f9('0x4f')]('\x0a');_0x374d86=_0x5edd78['results']['map'](function(_0x1bcfc4){return _0x1bcfc4&&_0x1bcfc4[_0xa7f9('0x4d')][0x0]&&_0x1bcfc4[_0xa7f9('0x4d')][0x0][_0xa7f9('0x50')]?_0x1bcfc4[_0xa7f9('0x4d')][0x0][_0xa7f9('0x50')]:0x0;})['join']('\x0a');}logger[_0xa7f9('0x18')](_0xa7f9('0x51'),_0x204d78);logger[_0xa7f9('0x18')](_0xa7f9('0x52'),_0x374d86);return{'transcript':_0x204d78,'confidence':_0x374d86};})[_0xa7f9('0x53')](function(_0x57c554){logger[_0xa7f9('0x12')](_0xa7f9('0x54'),_0x57c554[_0xa7f9('0x11')],_0x57c554[_0xa7f9('0x55')],_0x57c554['message']);});};exports[_0xa7f9('0x56')]=function(_0x182875,_0x2292b7,_0x2bdc77,_0x36e106){var _0x15435d=apiai(_0x2292b7,{'language':_0x36e106||'en'});return _0x15435d[_0xa7f9('0x57')](_0x2bdc77,{'sessionId':md5(_0x182875)})[_0xa7f9('0x28')](function(_0x10ce70){logger[_0xa7f9('0x18')](JSON[_0xa7f9('0x3e')](_0x10ce70));return{'source':_0x10ce70[_0xa7f9('0x58')]['source'],'resolvedQuery':_0x10ce70[_0xa7f9('0x58')]['resolvedQuery'],'action':_0x10ce70[_0xa7f9('0x58')][_0xa7f9('0x59')],'actionIncomplete':_0x10ce70['result'][_0xa7f9('0x5a')],'speech':_0x10ce70[_0xa7f9('0x58')]['fulfillment'][_0xa7f9('0x5b')],'score':_0x10ce70[_0xa7f9('0x58')][_0xa7f9('0x5c')],'statusCode':_0x10ce70[_0xa7f9('0x5d')][_0xa7f9('0x5e')],'endConversation':_0x10ce70[_0xa7f9('0x58')][_0xa7f9('0x5f')][_0xa7f9('0x60')]||![],'isFallbackIntent':_0x10ce70['result'][_0xa7f9('0x5f')][_0xa7f9('0x61')]};});};exports[_0xa7f9('0x62')]=function(_0x1ee3e3,_0x2198a4,_0x5f5109,_0x2c9434,_0xd5f1cf,_0x54c7e6){var _0x4c58b7=_0x2c9434[_0xa7f9('0x63')](/\\n/g,'\x0a');var _0xc37b12={'credentials':{'private_key':_0x4c58b7,'client_email':_0x5f5109}};var _0x2abad8=new dialogflow[(_0xa7f9('0x64'))](_0xc37b12);var _0x4eaf98=_0x2abad8[_0xa7f9('0x65')](_0x2198a4,md5(_0x1ee3e3));var _0xf509e7={'session':_0x4eaf98,'queryInput':{'text':{'text':_0xd5f1cf,'languageCode':_0x54c7e6}}};return _0x2abad8['detectIntent'](_0xf509e7)[_0xa7f9('0x28')](function(_0x32afdb){if(_0x32afdb&&_0x32afdb[_0xa7f9('0x43')]){logger[_0xa7f9('0x18')]('Dialogflow\x20V2\x20response:',JSON['stringify'](_0x32afdb));var _0x2801ee=_0x32afdb[0x0];if(_0x2801ee){var _0x2ba12f={'action':_0x2801ee[_0xa7f9('0x66')]['action'],'allRequiredParamsPresent':_0x2801ee[_0xa7f9('0x66')]['allRequiredParamsPresent'],'endConversation':_0x2801ee['queryResult']['diagnosticInfo']&&_0x2801ee[_0xa7f9('0x66')]['diagnosticInfo'][_0xa7f9('0x67')]?_0x2801ee[_0xa7f9('0x66')][_0xa7f9('0x68')]['fields'][_0xa7f9('0x69')][_0xa7f9('0x6a')]:![],'fulfillmentText':_0x2801ee[_0xa7f9('0x66')][_0xa7f9('0x6b')],'intentName':_0x2801ee[_0xa7f9('0x66')]['intent']['name'],'intentDisplayName':_0x2801ee[_0xa7f9('0x66')][_0xa7f9('0x6c')]['displayName'],'isFallbackIntent':_0x2801ee[_0xa7f9('0x66')][_0xa7f9('0x6c')][_0xa7f9('0x6d')],'languageCode':_0x2801ee['queryResult'][_0xa7f9('0x6e')],'queryText':_0x2801ee[_0xa7f9('0x66')]['queryText'],'responseId':_0x2801ee['responseId'],'score':_0x2801ee[_0xa7f9('0x66')]['intentDetectionConfidence'],'speech':_0x2801ee[_0xa7f9('0x66')][_0xa7f9('0x6b')],'providerResponse':JSON[_0xa7f9('0x3e')](_0x32afdb)};return _0x2ba12f;}}});};exports[_0xa7f9('0x6f')]=function(_0x53406a,_0x360c5c,_0x40d470,_0x2c7313){return tilde['asr'](_0x53406a,_0x360c5c,_0x40d470,_0x2c7313)[_0xa7f9('0x28')](function(_0x5d1bf9){try{fs[_0xa7f9('0x1a')](_0x53406a);}catch(_0x537aa8){logger['error'](_0x537aa8);}logger[_0xa7f9('0x18')]('Tilde\x20ASR\x20transcription',_0x5d1bf9[_0xa7f9('0x4e')]);logger['info']('Tilde\x20ASR\x20confidence',_0x5d1bf9['confidence']);return _0x5d1bf9;});};exports[_0xa7f9('0x70')]=function(_0x482022,_0x52f9c2,_0x4b3d92,_0x1da2da,_0x36d96f,_0x396e31){var _0x5a4f26=path[_0xa7f9('0x23')](__dirname,_0xa7f9('0x24'),rs[_0xa7f9('0x25')](0x4)+_0xa7f9('0x33'));var _0x3c68a8;return aws[_0xa7f9('0x71')](_0x482022,_0x52f9c2,_0x4b3d92,_0x1da2da,_0x36d96f,_0x396e31,_0x5a4f26)[_0xa7f9('0x28')](function(){_0x3c68a8=path[_0xa7f9('0x23')](__dirname,_0xa7f9('0x24'),rs[_0xa7f9('0x25')](0x4)+'.wav');return convertFile(_0x5a4f26,_0x3c68a8);})['then'](function(){try{fs[_0xa7f9('0x1a')](_0x5a4f26);fs[_0xa7f9('0x29')](_0x3c68a8,_0xa7f9('0x2a'));}catch(_0x208b95){logger['error'](_0x208b95);}return _0x3c68a8[_0xa7f9('0x38')]('.')[0x0];});};exports[_0xa7f9('0x72')]=function(_0x5cac67,_0x5892df,_0x5a0a67,_0x40a4ff,_0x4840db,_0x37f9ba){return aws['lex'](_0x5cac67,_0x5892df,_0x5a0a67,_0x40a4ff,_0x4840db,_0x37f9ba)[_0xa7f9('0x28')](function(_0x44e3f7){logger[_0xa7f9('0x18')](JSON[_0xa7f9('0x3e')](_0x44e3f7));return _0x44e3f7;});};exports[_0xa7f9('0x73')]=function(_0x37cfdd,_0x267e06,_0x49f290,_0xd5df63){var _0x2443d7=util[_0xa7f9('0x74')](_0xa7f9('0x75'),ISPEECH_API,_0x37cfdd,encodeURIComponent(_0x267e06),_0x49f290,_0xd5df63);var _0x57b1b9=path['resolve'](__dirname,'tmp',rs[_0xa7f9('0x25')](0x4)+_0xa7f9('0x33'));var _0x14dbbb;return downloadFile(_0x2443d7,_0x57b1b9)['then'](function(){_0x14dbbb=path[_0xa7f9('0x23')](__dirname,_0xa7f9('0x24'),rs[_0xa7f9('0x25')](0x4)+'.wav');return convertFile(_0x57b1b9,_0x14dbbb);})[_0xa7f9('0x28')](function(){try{fs[_0xa7f9('0x1a')](_0x57b1b9);fs[_0xa7f9('0x29')](_0x14dbbb,'777');}catch(_0x36f382){logger[_0xa7f9('0x12')](_0x36f382);}return _0x14dbbb[_0xa7f9('0x38')]('.')[0x0];});};exports[_0xa7f9('0x76')]=function(_0x1a6038,_0x1c5d43,_0x536e22,_0x13ed94){var _0x10f3eb=util['format']('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x1c5d43,_0x536e22,base64Encode(_0x1a6038),_0x13ed94?util[_0xa7f9('0x74')]('model=%s',encodeURIComponent(_0x13ed94)):_0xa7f9('0x77'));return uploadFile(_0x10f3eb)[_0xa7f9('0x28')](function(_0x84a4d1){return querystring[_0xa7f9('0x6')](_0x84a4d1);});};exports[_0xa7f9('0x78')]=function(_0x9a6b8,_0x20b03d){return sestek[_0xa7f9('0x79')](_0x9a6b8,_0x20b03d)['then'](function(_0x597805){logger[_0xa7f9('0x18')](JSON['stringify'](_0x597805));var _0x2a7bf7={'speech':_0x597805[_0xa7f9('0x7a')],'action':_0x597805[_0xa7f9('0x7b')]?_0x597805[_0xa7f9('0x7b')][_0xa7f9('0x7c')]:undefined,'actiondata':_0x597805[_0xa7f9('0x7b')]?_0x597805[_0xa7f9('0x7b')][_0xa7f9('0x7d')]:undefined};if(_0x597805[_0xa7f9('0x7b')]&&_0x597805[_0xa7f9('0x7b')][_0xa7f9('0x7e')]){return base64Decode(_0x597805[_0xa7f9('0x7b')][_0xa7f9('0x7e')][_0xa7f9('0x7f')],path[_0xa7f9('0x23')](__dirname,_0xa7f9('0x24'),rs['generate'](0x4)+_0xa7f9('0x26')))[_0xa7f9('0x28')](function(_0x32d38b){_0x2a7bf7[_0xa7f9('0x80')]=_0x32d38b;return _0x2a7bf7;});}return _0x2a7bf7;});};exports[_0xa7f9('0x81')]=function(){return __dirname;};