7dca384216b28f1b411fccf25eb6a995c769361f
[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 _0xe637=['jQ1olc','generic','text\x20length\x20limit\x20reached','lang\x20\x22','\x22\x20might\x20not\x20exist','parse\x20response\x20failed:\x0a','data','.mp3','writeFileSync','goggleTTS\x20path','googleASR','map','alternatives','transcript','join','results','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','message','googleDialogflow','result','source','resolvedQuery','action','actionIncomplete','fulfillment','speech','score','status','code','metadata','endConversation','isFallbackIntent','SessionsClient','sessionPath','detectIntent','length','Dialogflow\x20V2\x20response:','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','boolValue','name','intent','displayName','isFallback','languageCode','queryText','responseId','intentDetectionConfidence','fulfillmentText','asr','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','polly','.wav','lex','ispeechTTS','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','format','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','sestekNDA','nda','text','channelData','CustomActionData','AudioFromTts','Data','audiofile','dirName','apiai-promise','bluebird','https','md5','path','querystring','request-promise','url','parse','util','./aws','./google','../../../config/logger','agi','protocol','https:','host','WHAT_EVER','get','statusCode','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','finish','info','error','download\x20error','pipe','end','transcode','wav','error\x20convert','finish\x20to\x20convert','resolve','then','unlink','chmodSync','split','readFileSync','toString','base64','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','MP3','text:synthesize','generate','from','audioContent','777','tmp','googleCloudTTS\x20path','POST','application/x-www-form-urlencoded','f.req=','stringify'];(function(_0x2580dd,_0x5303bf){var _0x1bb288=function(_0x53c85e){while(--_0x53c85e){_0x2580dd['push'](_0x2580dd['shift']());}};_0x1bb288(++_0x5303bf);}(_0xe637,0x1e9));var _0x7e63=function(_0x1a8b2e,_0x3410a8){_0x1a8b2e=_0x1a8b2e-0x0;var _0xa4bdb1=_0xe637[_0x1a8b2e];return _0xa4bdb1;};'use strict';var apiai=require(_0x7e63('0x0'));var BPromise=require(_0x7e63('0x1'));var dialogflow=require('dialogflow');var fs=require('fs');var http=require('http');var https=require(_0x7e63('0x2'));var md5=require(_0x7e63('0x3'));var path=require(_0x7e63('0x4'));var querystring=require(_0x7e63('0x5'));var rp=require(_0x7e63('0x6'));var rs=require('randomstring');var sox=require('sox');var tts=require('google-tts-api');var urlParse=require(_0x7e63('0x7'))[_0x7e63('0x8')];var util=require(_0x7e63('0x9'));var aws=require(_0x7e63('0xa'));var google=require(_0x7e63('0xb'));var sestek=require('./sestek');var tilde=require('./tilde');var logger=require(_0x7e63('0xc'))(_0x7e63('0xd'));var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x544302,_0x15cef9){return new BPromise(function(_0x3a0738,_0x3c5ec4){var _0x3dabed=urlParse(_0x544302);var _0x5c096a=_0x3dabed[_0x7e63('0xe')]===_0x7e63('0xf')?https:http;var _0x234cc={'host':_0x3dabed[_0x7e63('0x10')],'path':_0x3dabed[_0x7e63('0x4')],'headers':{'user-agent':_0x7e63('0x11')}};_0x5c096a[_0x7e63('0x12')](_0x234cc,function(_0x10da0a){if(_0x10da0a[_0x7e63('0x13')]!==0xc8){logger['error'](_0x7e63('0x14')+_0x544302+_0x7e63('0x15')+_0x10da0a['statusCode']+'\x20('+_0x10da0a[_0x7e63('0x16')]+')');_0x3c5ec4(new Error(_0x7e63('0x14')+_0x544302+_0x7e63('0x15')+_0x10da0a['statusCode']+'\x20('+_0x10da0a[_0x7e63('0x16')]+')'));return;}var _0x26f42b=fs['createWriteStream'](_0x15cef9);_0x26f42b['on'](_0x7e63('0x17'),function(){logger[_0x7e63('0x18')]('finish\x20download\x20file');_0x26f42b['close'](_0x3a0738);});_0x26f42b['on'](_0x7e63('0x19'),function(_0x5d745a){fs['unlink'](_0x15cef9);logger[_0x7e63('0x19')](_0x7e63('0x1a'),_0x5d745a);_0x3c5ec4(_0x5d745a);});_0x10da0a[_0x7e63('0x1b')](_0x26f42b);})['on'](_0x7e63('0x19'),function(_0x2a6540){logger[_0x7e63('0x19')](_0x2a6540);_0x3c5ec4(_0x2a6540);})[_0x7e63('0x1c')]();});}function uploadFile(_0x1c6128){return new BPromise(function(_0x449b2e,_0x9244dd){var _0x773a0d=urlParse(_0x1c6128);var _0x4bc8ec=_0x773a0d[_0x7e63('0xe')]===_0x7e63('0xf')?https:http;var _0x352053={'host':_0x773a0d[_0x7e63('0x10')],'path':_0x773a0d[_0x7e63('0x4')],'headers':{'user-agent':'WHAT_EVER'}};_0x4bc8ec[_0x7e63('0x12')](_0x352053,function(_0x12431f){if(_0x12431f[_0x7e63('0x13')]!==0xc8){_0x9244dd(new Error(_0x7e63('0x14')+_0x1c6128+'\x20failed,\x20status\x20code\x20=\x20'+_0x12431f[_0x7e63('0x13')]+'\x20('+_0x12431f[_0x7e63('0x16')]+')'));return;}var _0x175cf4='';_0x12431f['on']('data',function(_0x251aaa){_0x175cf4+=_0x251aaa;});_0x12431f['on'](_0x7e63('0x1c'),function(){_0x449b2e(_0x175cf4);});})['on'](_0x7e63('0x19'),function(_0x290dec){_0x9244dd(_0x290dec);})[_0x7e63('0x1c')]();});}function convertFile(_0x254af7,_0xaca677){return new BPromise(function(_0x1317aa,_0xfc16be){var _0xb4dbef=sox[_0x7e63('0x1d')](_0x254af7,_0xaca677,{'sampleRate':0x1f40,'format':_0x7e63('0x1e'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0xb4dbef['on']('error',function(_0x2529f9){logger[_0x7e63('0x19')](_0x7e63('0x1f'),_0x2529f9);_0xfc16be(_0x2529f9);});_0xb4dbef['on'](_0x7e63('0x1c'),function(){logger['info'](_0x7e63('0x20'));_0x1317aa();});_0xb4dbef['start']();});}function base64Decode(_0x412d2d,_0x4c151f){var _0x44645a=path[_0x7e63('0x21')](__dirname,'tmp',rs['generate'](0x4)+'.wav');fs['writeFileSync'](_0x44645a,_0x412d2d,'base64');return convertFile(_0x44645a,_0x4c151f)[_0x7e63('0x22')](function(){try{fs[_0x7e63('0x23')](_0x44645a);fs[_0x7e63('0x24')](_0x4c151f,'777');}catch(_0x1590e7){logger[_0x7e63('0x19')](_0x1590e7);}return _0x4c151f[_0x7e63('0x25')]('.')[0x0];});}function base64Encode(_0x5b93d5){var _0x577445=fs[_0x7e63('0x26')](_0x5b93d5);return new Buffer(_0x577445)[_0x7e63('0x27')](_0x7e63('0x28'));}exports['googleCloudTTS']=function(_0x32d1b1,_0x3a180c,_0x58688f,_0x50e8bc,_0x4134f7,_0x3ee117){var _0x15cd52,_0x217508;var _0xc6550=_0x7e63('0x29');var _0x4f18d3=_0x7e63('0x2a')+_0x32d1b1;var _0x37367f={};if(_0x3a180c===_0x7e63('0x2b')){_0x37367f['input']={'ssml':_0x58688f};}else{_0x37367f[_0x7e63('0x2c')]={'text':_0x58688f};};_0x37367f[_0x7e63('0x2d')]={'languageCode':_0x50e8bc,'ssmlGender':_0x4134f7};_0x37367f[_0x7e63('0x2e')]={'audioEncoding':_0x7e63('0x2f'),'sampleRateHertz':0x1f40};var _0x1b6cf6={'url':_0xc6550+_0x7e63('0x30')+_0x4f18d3,'method':'POST','json':!![],'body':_0x37367f};return rp(_0x1b6cf6)[_0x7e63('0x22')](function(_0x175d79){return new BPromise(function(_0x2ffdde,_0x41fd12){_0x15cd52=path[_0x7e63('0x21')](__dirname,'tmp',rs[_0x7e63('0x31')](0x4)+'.mp3');var _0x30d2bb=Buffer[_0x7e63('0x32')](_0x175d79[_0x7e63('0x33')],_0x7e63('0x28'));return fs['writeFile'](_0x15cd52,_0x30d2bb,function(_0x59b1ed){_0x41fd12(_0x59b1ed);},function(_0x4c26ee){fs[_0x7e63('0x24')](_0x15cd52,_0x7e63('0x34'));_0x2ffdde(_0x4c26ee);});});})[_0x7e63('0x22')](function(_0x3acdbf){_0x217508=path[_0x7e63('0x21')](__dirname,_0x7e63('0x35'),rs[_0x7e63('0x31')](0x4)+'.wav');return convertFile(_0x15cd52,_0x217508);})[_0x7e63('0x22')](function(){try{fs['unlink'](_0x15cd52);fs['chmodSync'](_0x217508,_0x7e63('0x34'));}catch(_0x1dbac2){logger[_0x7e63('0x19')](_0x1dbac2);}logger[_0x7e63('0x18')](_0x7e63('0x36'),_0x217508['split']('.')[0x0]);return _0x217508[_0x7e63('0x25')]('.')[0x0];});};exports['googleTTS']=function(_0x3bee67,_0x4885fa){var _0x317982='https://translate.google.com/_/TranslateWebserverUi/data/batchexecute';var _0x24e6de,_0x41de93;var _0x4e3ead;var _0x216b01={'encoding':'utf8','method':_0x7e63('0x37'),'timeout':0x2710,'url':_0x317982,'headers':{'Content-Type':_0x7e63('0x38')},'body':_0x7e63('0x39')+encodeURIComponent(JSON[_0x7e63('0x3a')]([[[_0x7e63('0x3b'),JSON[_0x7e63('0x3a')]([_0x3bee67,_0x4885fa||'en',![],'null']),null,_0x7e63('0x3c')]]]))};return rp(_0x216b01)['then'](function(_0x2cfbc8){try{_0x4e3ead=eval(_0x2cfbc8['slice'](0x5))[0x0][0x2];}catch(_0x3d883c){throw new Error('parse\x20response\x20failed:\x0a'+_0x2cfbc8['data']);}if(!_0x4e3ead){if(_0x3bee67['length']>0xc8){throw new Error(_0x7e63('0x3d'));}else{throw new Error(_0x7e63('0x3e')+_0x4885fa+_0x7e63('0x3f'));}}try{_0x4e3ead=eval(_0x4e3ead)[0x0];}catch(_0x163c3d){throw new Error(_0x7e63('0x40')+res[_0x7e63('0x41')]);}const _0x41b489=_0x4e3ead;_0x24e6de=path[_0x7e63('0x21')](__dirname,_0x7e63('0x35'),rs[_0x7e63('0x31')](0x4)+_0x7e63('0x42'));fs[_0x7e63('0x43')](_0x24e6de,_0x4e3ead,{'encoding':_0x7e63('0x28')});_0x41de93=path[_0x7e63('0x21')](__dirname,_0x7e63('0x35'),rs[_0x7e63('0x31')](0x4)+'.wav');return convertFile(_0x24e6de,_0x41de93);})['then'](function(){try{fs[_0x7e63('0x23')](_0x24e6de);fs[_0x7e63('0x24')](_0x41de93,_0x7e63('0x34'));}catch(_0x447aeb){logger[_0x7e63('0x19')](_0x447aeb);}logger[_0x7e63('0x18')](_0x7e63('0x44'),_0x41de93[_0x7e63('0x25')]('.')[0x0]);return _0x41de93[_0x7e63('0x25')]('.')[0x0];});};exports[_0x7e63('0x45')]=function(_0x2af621,_0x1f828f,_0x310e08){return google['asr'](_0x2af621,_0x1f828f,_0x310e08)[_0x7e63('0x22')](function(_0x3da21e){logger[_0x7e63('0x18')](_0x3da21e['uri']);return rp(_0x3da21e);})['then'](function(_0x384c8b){var _0x32b4a2='';var _0x4f1cb2=0x0;try{fs[_0x7e63('0x23')](_0x2af621);}catch(_0x46e19b){logger[_0x7e63('0x19')](_0x46e19b);}if(_0x384c8b&&_0x384c8b['results']){_0x32b4a2=_0x384c8b['results'][_0x7e63('0x46')](function(_0x39df55){return _0x39df55&&_0x39df55[_0x7e63('0x47')][0x0]&&_0x39df55['alternatives'][0x0]['transcript']?_0x39df55[_0x7e63('0x47')][0x0][_0x7e63('0x48')]:'';})[_0x7e63('0x49')]('\x0a');_0x4f1cb2=_0x384c8b[_0x7e63('0x4a')][_0x7e63('0x46')](function(_0x195c6b){return _0x195c6b&&_0x195c6b[_0x7e63('0x47')][0x0]&&_0x195c6b[_0x7e63('0x47')][0x0][_0x7e63('0x4b')]?_0x195c6b[_0x7e63('0x47')][0x0][_0x7e63('0x4b')]:0x0;})[_0x7e63('0x49')]('\x0a');}logger[_0x7e63('0x18')](_0x7e63('0x4c'),_0x32b4a2);logger['info'](_0x7e63('0x4d'),_0x4f1cb2);return{'transcript':_0x32b4a2,'confidence':_0x4f1cb2};})[_0x7e63('0x4e')](function(_0x4fcfc5){logger[_0x7e63('0x19')](_0x7e63('0x4f'),_0x4fcfc5['statusCode'],_0x4fcfc5['name'],_0x4fcfc5[_0x7e63('0x50')]);});};exports[_0x7e63('0x51')]=function(_0x168ef1,_0x15ff26,_0x2e6876,_0x2a2b6a){var _0x367256=apiai(_0x15ff26,{'language':_0x2a2b6a||'en'});return _0x367256['textRequest'](_0x2e6876,{'sessionId':md5(_0x168ef1)})['then'](function(_0x2b82bd){logger[_0x7e63('0x18')](JSON[_0x7e63('0x3a')](_0x2b82bd));return{'source':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x53')],'resolvedQuery':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x54')],'action':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x55')],'actionIncomplete':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x56')],'speech':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x57')][_0x7e63('0x58')],'score':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x59')],'statusCode':_0x2b82bd[_0x7e63('0x5a')][_0x7e63('0x5b')],'endConversation':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x5c')][_0x7e63('0x5d')]||![],'isFallbackIntent':_0x2b82bd[_0x7e63('0x52')][_0x7e63('0x5c')][_0x7e63('0x5e')]};});};exports['googleDialogflowV2']=function(_0x3da5a6,_0x524624,_0x2ab3c5,_0x5c2375,_0x5951ce,_0x214f3b){var _0x134789=_0x5c2375['replace'](/\\n/g,'\x0a');var _0x179206={'credentials':{'private_key':_0x134789,'client_email':_0x2ab3c5}};var _0x17acd8=new dialogflow[(_0x7e63('0x5f'))](_0x179206);var _0x6eff20=_0x17acd8[_0x7e63('0x60')](_0x524624,md5(_0x3da5a6));var _0x3ebad0={'session':_0x6eff20,'queryInput':{'text':{'text':_0x5951ce,'languageCode':_0x214f3b}}};return _0x17acd8[_0x7e63('0x61')](_0x3ebad0)[_0x7e63('0x22')](function(_0x3b5dbf){if(_0x3b5dbf&&_0x3b5dbf[_0x7e63('0x62')]){logger[_0x7e63('0x18')](_0x7e63('0x63'),JSON[_0x7e63('0x3a')](_0x3b5dbf));var _0x58acda=_0x3b5dbf[0x0];if(_0x58acda){var _0x33bd94={'action':_0x58acda[_0x7e63('0x64')][_0x7e63('0x55')],'allRequiredParamsPresent':_0x58acda[_0x7e63('0x64')][_0x7e63('0x65')],'endConversation':_0x58acda[_0x7e63('0x64')][_0x7e63('0x66')]&&_0x58acda['queryResult'][_0x7e63('0x66')][_0x7e63('0x67')]?_0x58acda[_0x7e63('0x64')][_0x7e63('0x66')][_0x7e63('0x67')][_0x7e63('0x68')][_0x7e63('0x69')]:![],'fulfillmentText':_0x58acda[_0x7e63('0x64')]['fulfillmentText'],'intentName':_0x58acda[_0x7e63('0x64')]['intent'][_0x7e63('0x6a')],'intentDisplayName':_0x58acda['queryResult'][_0x7e63('0x6b')][_0x7e63('0x6c')],'isFallbackIntent':_0x58acda[_0x7e63('0x64')][_0x7e63('0x6b')][_0x7e63('0x6d')],'languageCode':_0x58acda[_0x7e63('0x64')][_0x7e63('0x6e')],'queryText':_0x58acda['queryResult'][_0x7e63('0x6f')],'responseId':_0x58acda[_0x7e63('0x70')],'score':_0x58acda['queryResult'][_0x7e63('0x71')],'speech':_0x58acda[_0x7e63('0x64')][_0x7e63('0x72')],'providerResponse':JSON[_0x7e63('0x3a')](_0x3b5dbf)};return _0x33bd94;}}});};exports['tildeASR']=function(_0x35d0d3,_0x3cd656,_0x20eb23,_0x294d48){return tilde[_0x7e63('0x73')](_0x35d0d3,_0x3cd656,_0x20eb23,_0x294d48)[_0x7e63('0x22')](function(_0x1e1427){try{fs[_0x7e63('0x23')](_0x35d0d3);}catch(_0x14329b){logger['error'](_0x14329b);}logger[_0x7e63('0x18')](_0x7e63('0x74'),_0x1e1427['transcript']);logger[_0x7e63('0x18')](_0x7e63('0x75'),_0x1e1427[_0x7e63('0x4b')]);return _0x1e1427;});};exports[_0x7e63('0x76')]=function(_0x5ebf11,_0x1a8257,_0x273eb1,_0x5bd28a,_0x14c231,_0x43c659){var _0x1b75b5=path['resolve'](__dirname,_0x7e63('0x35'),rs[_0x7e63('0x31')](0x4)+_0x7e63('0x42'));var _0x1d1f28;return aws[_0x7e63('0x77')](_0x5ebf11,_0x1a8257,_0x273eb1,_0x5bd28a,_0x14c231,_0x43c659,_0x1b75b5)['then'](function(){_0x1d1f28=path[_0x7e63('0x21')](__dirname,_0x7e63('0x35'),rs[_0x7e63('0x31')](0x4)+_0x7e63('0x78'));return convertFile(_0x1b75b5,_0x1d1f28);})[_0x7e63('0x22')](function(){try{fs[_0x7e63('0x23')](_0x1b75b5);fs[_0x7e63('0x24')](_0x1d1f28,_0x7e63('0x34'));}catch(_0x5cf1fa){logger[_0x7e63('0x19')](_0x5cf1fa);}return _0x1d1f28[_0x7e63('0x25')]('.')[0x0];});};exports['awsLex']=function(_0x122e88,_0x2dd713,_0x5ae0aa,_0x5293bb,_0x1abcba,_0x155104){return aws[_0x7e63('0x79')](_0x122e88,_0x2dd713,_0x5ae0aa,_0x5293bb,_0x1abcba,_0x155104)[_0x7e63('0x22')](function(_0x5804d0){logger[_0x7e63('0x18')](JSON[_0x7e63('0x3a')](_0x5804d0));return _0x5804d0;});};exports[_0x7e63('0x7a')]=function(_0x2f88d1,_0x4eef6e,_0x5a1fd7,_0x5285bc){var _0x13b153=util['format'](_0x7e63('0x7b'),ISPEECH_API,_0x2f88d1,encodeURIComponent(_0x4eef6e),_0x5a1fd7,_0x5285bc);var _0x4991d1=path['resolve'](__dirname,'tmp',rs['generate'](0x4)+_0x7e63('0x42'));var _0x4cf978;return downloadFile(_0x13b153,_0x4991d1)['then'](function(){_0x4cf978=path[_0x7e63('0x21')](__dirname,_0x7e63('0x35'),rs[_0x7e63('0x31')](0x4)+_0x7e63('0x78'));return convertFile(_0x4991d1,_0x4cf978);})[_0x7e63('0x22')](function(){try{fs[_0x7e63('0x23')](_0x4991d1);fs['chmodSync'](_0x4cf978,_0x7e63('0x34'));}catch(_0x3f1d03){logger[_0x7e63('0x19')](_0x3f1d03);}return _0x4cf978[_0x7e63('0x25')]('.')[0x0];});};exports['ispeechASR']=function(_0x1a71cd,_0x2e5d5e,_0x2e6d4d,_0xb78871){var _0x9e5a7=util[_0x7e63('0x7c')](_0x7e63('0x7d'),ISPEECH_API,_0x2e5d5e,_0x2e6d4d,base64Encode(_0x1a71cd),_0xb78871?util[_0x7e63('0x7c')](_0x7e63('0x7e'),encodeURIComponent(_0xb78871)):_0x7e63('0x7f'));return uploadFile(_0x9e5a7)[_0x7e63('0x22')](function(_0x3bd5a3){return querystring['parse'](_0x3bd5a3);});};exports[_0x7e63('0x80')]=function(_0x29af62,_0x49775b){return sestek[_0x7e63('0x81')](_0x29af62,_0x49775b)[_0x7e63('0x22')](function(_0x59eafc){logger[_0x7e63('0x18')](JSON[_0x7e63('0x3a')](_0x59eafc));var _0x5bef4d={'speech':_0x59eafc[_0x7e63('0x82')],'action':_0x59eafc['channelData']?_0x59eafc[_0x7e63('0x83')]['CustomAction']:undefined,'actiondata':_0x59eafc[_0x7e63('0x83')]?_0x59eafc[_0x7e63('0x83')][_0x7e63('0x84')]:undefined};if(_0x59eafc[_0x7e63('0x83')]&&_0x59eafc[_0x7e63('0x83')][_0x7e63('0x85')]){return base64Decode(_0x59eafc['channelData'][_0x7e63('0x85')][_0x7e63('0x86')],path[_0x7e63('0x21')](__dirname,_0x7e63('0x35'),rs[_0x7e63('0x31')](0x4)+_0x7e63('0x78')))[_0x7e63('0x22')](function(_0x361775){_0x5bef4d[_0x7e63('0x87')]=_0x361775;return _0x5bef4d;});}return _0x5bef4d;});};exports[_0x7e63('0x88')]=function(){return __dirname;};