Built motion from commit 85328c08.|2.5.50
[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 _0x0b06=['finish\x20download\x20file','close','unlink','pipe','end','get','data','wav','error\x20convert','finish\x20to\x20convert','tmp','generate','.wav','chmodSync','777','split','readFileSync','toString','base64','?key=','ssml','input','POST','resolve','.mp3','from','audioContent','writeFile','then','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','application/x-www-form-urlencoded','f.req=','stringify','jQ1olc','generic','length','text\x20length\x20limit\x20reached','\x22\x20might\x20not\x20exist','writeFileSync','goggleTTS\x20path','googleASR','asr','results','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','message','googleDialogflow','source','resolvedQuery','result','action','actionIncomplete','fulfillment','speech','status','code','metadata','endConversation','isFallbackIntent','googleDialogflowV2','SessionsClient','detectIntent','Dialogflow\x20V2\x20response:','queryResult','diagnosticInfo','fields','end_conversation','boolValue','intent','displayName','isFallback','queryText','responseId','intentDetectionConfidence','fulfillmentText','Tilde\x20ASR\x20transcription','awsPolly','awsLex','lex','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','sestekNDA','nda','text','channelData','AudioFromTts','Data','apiai-promise','bluebird','dialogflow','http','md5','path','querystring','google-tts-api','url','parse','util','./aws','./google','./sestek','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','https:','host','WHAT_EVER','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusCode','statusMessage','createWriteStream','finish','info'];(function(_0x3b6cb5,_0x337346){var _0x277e53=function(_0x4f78b4){while(--_0x4f78b4){_0x3b6cb5['push'](_0x3b6cb5['shift']());}};_0x277e53(++_0x337346);}(_0x0b06,0xe5));var _0x60b0=function(_0x58fa5d,_0x3a7145){_0x58fa5d=_0x58fa5d-0x0;var _0xacfcc1=_0x0b06[_0x58fa5d];return _0xacfcc1;};'use strict';var apiai=require(_0x60b0('0x0'));var BPromise=require(_0x60b0('0x1'));var dialogflow=require(_0x60b0('0x2'));var fs=require('fs');var http=require(_0x60b0('0x3'));var https=require('https');var md5=require(_0x60b0('0x4'));var path=require(_0x60b0('0x5'));var querystring=require(_0x60b0('0x6'));var rp=require('request-promise');var rs=require('randomstring');var sox=require('sox');var tts=require(_0x60b0('0x7'));var urlParse=require(_0x60b0('0x8'))[_0x60b0('0x9')];var util=require(_0x60b0('0xa'));var aws=require(_0x60b0('0xb'));var google=require(_0x60b0('0xc'));var sestek=require(_0x60b0('0xd'));var tilde=require('./tilde');var logger=require(_0x60b0('0xe'))(_0x60b0('0xf'));var ISPEECH_API=_0x60b0('0x10');function downloadFile(_0x35665b,_0x590438){return new BPromise(function(_0x2aefc4,_0x952fb4){var _0x4c3a0e=urlParse(_0x35665b);var _0x262b65=_0x4c3a0e[_0x60b0('0x11')]===_0x60b0('0x12')?https:http;var _0x392a68={'host':_0x4c3a0e[_0x60b0('0x13')],'path':_0x4c3a0e[_0x60b0('0x5')],'headers':{'user-agent':_0x60b0('0x14')}};_0x262b65['get'](_0x392a68,function(_0x40625a){if(_0x40625a['statusCode']!==0xc8){logger[_0x60b0('0x15')](_0x60b0('0x16')+_0x35665b+_0x60b0('0x17')+_0x40625a[_0x60b0('0x18')]+'\x20('+_0x40625a[_0x60b0('0x19')]+')');_0x952fb4(new Error(_0x60b0('0x16')+_0x35665b+_0x60b0('0x17')+_0x40625a[_0x60b0('0x18')]+'\x20('+_0x40625a[_0x60b0('0x19')]+')'));return;}var _0x93d62c=fs[_0x60b0('0x1a')](_0x590438);_0x93d62c['on'](_0x60b0('0x1b'),function(){logger[_0x60b0('0x1c')](_0x60b0('0x1d'));_0x93d62c[_0x60b0('0x1e')](_0x2aefc4);});_0x93d62c['on'](_0x60b0('0x15'),function(_0x582d80){fs[_0x60b0('0x1f')](_0x590438);logger[_0x60b0('0x15')]('download\x20error',_0x582d80);_0x952fb4(_0x582d80);});_0x40625a[_0x60b0('0x20')](_0x93d62c);})['on'](_0x60b0('0x15'),function(_0x35ef37){logger[_0x60b0('0x15')](_0x35ef37);_0x952fb4(_0x35ef37);})[_0x60b0('0x21')]();});}function uploadFile(_0x257c18){return new BPromise(function(_0x5ed48e,_0x246951){var _0x365d98=urlParse(_0x257c18);var _0x25f6c8=_0x365d98[_0x60b0('0x11')]===_0x60b0('0x12')?https:http;var _0x438cfa={'host':_0x365d98[_0x60b0('0x13')],'path':_0x365d98[_0x60b0('0x5')],'headers':{'user-agent':'WHAT_EVER'}};_0x25f6c8[_0x60b0('0x22')](_0x438cfa,function(_0x273274){if(_0x273274[_0x60b0('0x18')]!==0xc8){_0x246951(new Error(_0x60b0('0x16')+_0x257c18+_0x60b0('0x17')+_0x273274['statusCode']+'\x20('+_0x273274[_0x60b0('0x19')]+')'));return;}var _0x50ac23='';_0x273274['on'](_0x60b0('0x23'),function(_0x1a85dd){_0x50ac23+=_0x1a85dd;});_0x273274['on'](_0x60b0('0x21'),function(){_0x5ed48e(_0x50ac23);});})['on'](_0x60b0('0x15'),function(_0x5389f8){_0x246951(_0x5389f8);})['end']();});}function convertFile(_0x1d52b9,_0x27fb3c){return new BPromise(function(_0x3243af,_0xf8c404){var _0x4c63c4=sox['transcode'](_0x1d52b9,_0x27fb3c,{'sampleRate':0x1f40,'format':_0x60b0('0x24'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4c63c4['on'](_0x60b0('0x15'),function(_0x5d1dd5){logger[_0x60b0('0x15')](_0x60b0('0x25'),_0x5d1dd5);_0xf8c404(_0x5d1dd5);});_0x4c63c4['on'](_0x60b0('0x21'),function(){logger[_0x60b0('0x1c')](_0x60b0('0x26'));_0x3243af();});_0x4c63c4['start']();});}function base64Decode(_0x13bf94,_0x200bbe){var _0x2ff11a=path['resolve'](__dirname,_0x60b0('0x27'),rs[_0x60b0('0x28')](0x4)+_0x60b0('0x29'));fs['writeFileSync'](_0x2ff11a,_0x13bf94,'base64');return convertFile(_0x2ff11a,_0x200bbe)['then'](function(){try{fs[_0x60b0('0x1f')](_0x2ff11a);fs[_0x60b0('0x2a')](_0x200bbe,_0x60b0('0x2b'));}catch(_0x280e30){logger[_0x60b0('0x15')](_0x280e30);}return _0x200bbe[_0x60b0('0x2c')]('.')[0x0];});}function base64Encode(_0x4b1648){var _0x33bb30=fs[_0x60b0('0x2d')](_0x4b1648);return new Buffer(_0x33bb30)[_0x60b0('0x2e')](_0x60b0('0x2f'));}exports['googleCloudTTS']=function(_0x28ae86,_0x29e1e2,_0x4d6f25,_0x3c7198,_0x1a510e,_0xe9938e){var _0x55c70a,_0x3019fe;var _0x36ff24='https://texttospeech.googleapis.com/v1/';var _0x134b26=_0x60b0('0x30')+_0x28ae86;var _0x3f1d56={};if(_0x29e1e2===_0x60b0('0x31')){_0x3f1d56[_0x60b0('0x32')]={'ssml':_0x4d6f25};}else{_0x3f1d56[_0x60b0('0x32')]={'text':_0x4d6f25};};_0x3f1d56['voice']={'languageCode':_0x3c7198,'ssmlGender':_0x1a510e};_0x3f1d56['audioConfig']={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0x4d56d3={'url':_0x36ff24+'text:synthesize'+_0x134b26,'method':_0x60b0('0x33'),'json':!![],'body':_0x3f1d56};return rp(_0x4d56d3)['then'](function(_0x391559){return new BPromise(function(_0x753317,_0x32a773){_0x55c70a=path[_0x60b0('0x34')](__dirname,'tmp',rs[_0x60b0('0x28')](0x4)+_0x60b0('0x35'));var _0x10d5e8=Buffer[_0x60b0('0x36')](_0x391559[_0x60b0('0x37')],'base64');return fs[_0x60b0('0x38')](_0x55c70a,_0x10d5e8,function(_0x97e89c){_0x32a773(_0x97e89c);},function(_0x270444){fs[_0x60b0('0x2a')](_0x55c70a,'777');_0x753317(_0x270444);});});})[_0x60b0('0x39')](function(_0x5627be){_0x3019fe=path['resolve'](__dirname,_0x60b0('0x27'),rs[_0x60b0('0x28')](0x4)+'.wav');return convertFile(_0x55c70a,_0x3019fe);})[_0x60b0('0x39')](function(){try{fs[_0x60b0('0x1f')](_0x55c70a);fs[_0x60b0('0x2a')](_0x3019fe,'777');}catch(_0xd186fa){logger[_0x60b0('0x15')](_0xd186fa);}logger[_0x60b0('0x1c')](_0x60b0('0x3a'),_0x3019fe[_0x60b0('0x2c')]('.')[0x0]);return _0x3019fe['split']('.')[0x0];});};exports[_0x60b0('0x3b')]=function(_0x5c5001,_0x28098f){var _0x2ba8b7=_0x60b0('0x3c');var _0x2d76a1,_0x4490db;var _0x4775cf;var _0x3c33d2={'encoding':_0x60b0('0x3d'),'method':_0x60b0('0x33'),'timeout':0x2710,'url':_0x2ba8b7,'headers':{'Content-Type':_0x60b0('0x3e')},'body':_0x60b0('0x3f')+encodeURIComponent(JSON[_0x60b0('0x40')]([[[_0x60b0('0x41'),JSON[_0x60b0('0x40')]([_0x5c5001,_0x28098f||'en',![],'null']),null,_0x60b0('0x42')]]]))};return rp(_0x3c33d2)[_0x60b0('0x39')](function(_0x847eb6){try{_0x4775cf=eval(_0x847eb6['slice'](0x5))[0x0][0x2];}catch(_0x18e8cc){throw new Error('parse\x20response\x20failed:\x0a'+_0x847eb6[_0x60b0('0x23')]);}if(!_0x4775cf){if(_0x5c5001[_0x60b0('0x43')]>0xc8){throw new Error(_0x60b0('0x44'));}else{throw new Error('lang\x20\x22'+_0x28098f+_0x60b0('0x45'));}}try{_0x4775cf=eval(_0x4775cf)[0x0];}catch(_0x3b4480){throw new Error('parse\x20response\x20failed:\x0a'+res[_0x60b0('0x23')]);}const _0xb38f46=_0x4775cf;_0x2d76a1=path[_0x60b0('0x34')](__dirname,'tmp',rs[_0x60b0('0x28')](0x4)+_0x60b0('0x35'));fs[_0x60b0('0x46')](_0x2d76a1,_0x4775cf,{'encoding':_0x60b0('0x2f')});_0x4490db=path[_0x60b0('0x34')](__dirname,_0x60b0('0x27'),rs[_0x60b0('0x28')](0x4)+'.wav');return convertFile(_0x2d76a1,_0x4490db);})[_0x60b0('0x39')](function(){try{fs[_0x60b0('0x1f')](_0x2d76a1);fs[_0x60b0('0x2a')](_0x4490db,_0x60b0('0x2b'));}catch(_0x126eb1){logger['error'](_0x126eb1);}logger[_0x60b0('0x1c')](_0x60b0('0x47'),_0x4490db[_0x60b0('0x2c')]('.')[0x0]);return _0x4490db[_0x60b0('0x2c')]('.')[0x0];});};exports[_0x60b0('0x48')]=function(_0x3004dc,_0x371743,_0x301e4d){return google[_0x60b0('0x49')](_0x3004dc,_0x371743,_0x301e4d)['then'](function(_0x2b7fbe){logger[_0x60b0('0x1c')](_0x2b7fbe['uri']);return rp(_0x2b7fbe);})[_0x60b0('0x39')](function(_0x45cc2c){var _0x14845a='';var _0x469114=0x0;try{fs['unlink'](_0x3004dc);}catch(_0x4d79a8){logger['error'](_0x4d79a8);}if(_0x45cc2c&&_0x45cc2c[_0x60b0('0x4a')]){_0x14845a=_0x45cc2c[_0x60b0('0x4a')]['map'](function(_0x57061f){return _0x57061f&&_0x57061f[_0x60b0('0x4b')][0x0]&&_0x57061f[_0x60b0('0x4b')][0x0][_0x60b0('0x4c')]?_0x57061f[_0x60b0('0x4b')][0x0]['transcript']:'';})[_0x60b0('0x4d')]('\x0a');_0x469114=_0x45cc2c[_0x60b0('0x4a')]['map'](function(_0x4a1d08){return _0x4a1d08&&_0x4a1d08[_0x60b0('0x4b')][0x0]&&_0x4a1d08[_0x60b0('0x4b')][0x0]['confidence']?_0x4a1d08[_0x60b0('0x4b')][0x0][_0x60b0('0x4e')]:0x0;})[_0x60b0('0x4d')]('\x0a');}logger[_0x60b0('0x1c')](_0x60b0('0x4f'),_0x14845a);logger[_0x60b0('0x1c')](_0x60b0('0x50'),_0x469114);return{'transcript':_0x14845a,'confidence':_0x469114};})[_0x60b0('0x51')](function(_0x433f16){logger[_0x60b0('0x15')](_0x60b0('0x52'),_0x433f16[_0x60b0('0x18')],_0x433f16['name'],_0x433f16[_0x60b0('0x53')]);});};exports[_0x60b0('0x54')]=function(_0x32921c,_0x228bb6,_0x2e6dda,_0x5d08d2){var _0x218c12=apiai(_0x228bb6,{'language':_0x5d08d2||'en'});return _0x218c12['textRequest'](_0x2e6dda,{'sessionId':md5(_0x32921c)})['then'](function(_0x1d2ab4){logger[_0x60b0('0x1c')](JSON[_0x60b0('0x40')](_0x1d2ab4));return{'source':_0x1d2ab4['result'][_0x60b0('0x55')],'resolvedQuery':_0x1d2ab4['result'][_0x60b0('0x56')],'action':_0x1d2ab4[_0x60b0('0x57')][_0x60b0('0x58')],'actionIncomplete':_0x1d2ab4[_0x60b0('0x57')][_0x60b0('0x59')],'speech':_0x1d2ab4[_0x60b0('0x57')][_0x60b0('0x5a')][_0x60b0('0x5b')],'score':_0x1d2ab4[_0x60b0('0x57')]['score'],'statusCode':_0x1d2ab4[_0x60b0('0x5c')][_0x60b0('0x5d')],'endConversation':_0x1d2ab4[_0x60b0('0x57')][_0x60b0('0x5e')][_0x60b0('0x5f')]||![],'isFallbackIntent':_0x1d2ab4[_0x60b0('0x57')][_0x60b0('0x5e')][_0x60b0('0x60')]};});};exports[_0x60b0('0x61')]=function(_0x25e303,_0x1617e3,_0x3338b7,_0x33ba10,_0x306006,_0x1c4757){var _0x1960d6=_0x33ba10['replace'](/\\n/g,'\x0a');var _0x90a6ba={'credentials':{'private_key':_0x1960d6,'client_email':_0x3338b7}};var _0x3f4e44=new dialogflow[(_0x60b0('0x62'))](_0x90a6ba);var _0x18b946=_0x3f4e44['sessionPath'](_0x1617e3,md5(_0x25e303));var _0x3c5ca0={'session':_0x18b946,'queryInput':{'text':{'text':_0x306006,'languageCode':_0x1c4757}}};return _0x3f4e44[_0x60b0('0x63')](_0x3c5ca0)[_0x60b0('0x39')](function(_0x5c7851){if(_0x5c7851&&_0x5c7851[_0x60b0('0x43')]){logger[_0x60b0('0x1c')](_0x60b0('0x64'),JSON[_0x60b0('0x40')](_0x5c7851));var _0x1d9cb5=_0x5c7851[0x0];if(_0x1d9cb5){var _0xfedbd8={'action':_0x1d9cb5[_0x60b0('0x65')][_0x60b0('0x58')],'allRequiredParamsPresent':_0x1d9cb5[_0x60b0('0x65')]['allRequiredParamsPresent'],'endConversation':_0x1d9cb5[_0x60b0('0x65')]['diagnosticInfo']&&_0x1d9cb5[_0x60b0('0x65')][_0x60b0('0x66')]['fields']?_0x1d9cb5[_0x60b0('0x65')][_0x60b0('0x66')][_0x60b0('0x67')][_0x60b0('0x68')][_0x60b0('0x69')]:![],'fulfillmentText':_0x1d9cb5[_0x60b0('0x65')]['fulfillmentText'],'intentName':_0x1d9cb5['queryResult']['intent']['name'],'intentDisplayName':_0x1d9cb5[_0x60b0('0x65')][_0x60b0('0x6a')][_0x60b0('0x6b')],'isFallbackIntent':_0x1d9cb5['queryResult'][_0x60b0('0x6a')][_0x60b0('0x6c')],'languageCode':_0x1d9cb5[_0x60b0('0x65')]['languageCode'],'queryText':_0x1d9cb5['queryResult'][_0x60b0('0x6d')],'responseId':_0x1d9cb5[_0x60b0('0x6e')],'score':_0x1d9cb5['queryResult'][_0x60b0('0x6f')],'speech':_0x1d9cb5[_0x60b0('0x65')][_0x60b0('0x70')],'providerResponse':JSON[_0x60b0('0x40')](_0x5c7851)};return _0xfedbd8;}}});};exports['tildeASR']=function(_0x1dc05a,_0x2083f1,_0x95dd54,_0x565ca8){return tilde[_0x60b0('0x49')](_0x1dc05a,_0x2083f1,_0x95dd54,_0x565ca8)[_0x60b0('0x39')](function(_0x1e1e50){try{fs[_0x60b0('0x1f')](_0x1dc05a);}catch(_0x3fee49){logger[_0x60b0('0x15')](_0x3fee49);}logger[_0x60b0('0x1c')](_0x60b0('0x71'),_0x1e1e50[_0x60b0('0x4c')]);logger[_0x60b0('0x1c')]('Tilde\x20ASR\x20confidence',_0x1e1e50[_0x60b0('0x4e')]);return _0x1e1e50;});};exports[_0x60b0('0x72')]=function(_0x30258a,_0x7639bb,_0x574da4,_0x1c316f,_0x33088e,_0x31f569){var _0x44e7e6=path[_0x60b0('0x34')](__dirname,_0x60b0('0x27'),rs[_0x60b0('0x28')](0x4)+_0x60b0('0x35'));var _0x1a90bc;return aws['polly'](_0x30258a,_0x7639bb,_0x574da4,_0x1c316f,_0x33088e,_0x31f569,_0x44e7e6)['then'](function(){_0x1a90bc=path[_0x60b0('0x34')](__dirname,'tmp',rs['generate'](0x4)+_0x60b0('0x29'));return convertFile(_0x44e7e6,_0x1a90bc);})[_0x60b0('0x39')](function(){try{fs[_0x60b0('0x1f')](_0x44e7e6);fs[_0x60b0('0x2a')](_0x1a90bc,_0x60b0('0x2b'));}catch(_0x1737d8){logger[_0x60b0('0x15')](_0x1737d8);}return _0x1a90bc['split']('.')[0x0];});};exports[_0x60b0('0x73')]=function(_0x3d30cd,_0x54706f,_0xce3a09,_0x572ae9,_0x397809,_0x5938e1){return aws[_0x60b0('0x74')](_0x3d30cd,_0x54706f,_0xce3a09,_0x572ae9,_0x397809,_0x5938e1)[_0x60b0('0x39')](function(_0x386568){logger[_0x60b0('0x1c')](JSON[_0x60b0('0x40')](_0x386568));return _0x386568;});};exports['ispeechTTS']=function(_0x336892,_0x4118e5,_0x14c369,_0x368d78){var _0x4a30d9=util[_0x60b0('0x75')](_0x60b0('0x76'),ISPEECH_API,_0x336892,encodeURIComponent(_0x4118e5),_0x14c369,_0x368d78);var _0x2229f4=path['resolve'](__dirname,_0x60b0('0x27'),rs[_0x60b0('0x28')](0x4)+_0x60b0('0x35'));var _0x3ba818;return downloadFile(_0x4a30d9,_0x2229f4)[_0x60b0('0x39')](function(){_0x3ba818=path[_0x60b0('0x34')](__dirname,_0x60b0('0x27'),rs[_0x60b0('0x28')](0x4)+'.wav');return convertFile(_0x2229f4,_0x3ba818);})[_0x60b0('0x39')](function(){try{fs[_0x60b0('0x1f')](_0x2229f4);fs['chmodSync'](_0x3ba818,_0x60b0('0x2b'));}catch(_0x4adbbf){logger['error'](_0x4adbbf);}return _0x3ba818['split']('.')[0x0];});};exports[_0x60b0('0x77')]=function(_0x327939,_0x185b5f,_0x45acf9,_0xce825d){var _0x10d41b=util['format'](_0x60b0('0x78'),ISPEECH_API,_0x185b5f,_0x45acf9,base64Encode(_0x327939),_0xce825d?util['format'](_0x60b0('0x79'),encodeURIComponent(_0xce825d)):_0x60b0('0x7a'));return uploadFile(_0x10d41b)['then'](function(_0x1e78e3){return querystring[_0x60b0('0x9')](_0x1e78e3);});};exports[_0x60b0('0x7b')]=function(_0x53457b,_0x41979a){return sestek[_0x60b0('0x7c')](_0x53457b,_0x41979a)[_0x60b0('0x39')](function(_0x3d2f9e){logger[_0x60b0('0x1c')](JSON[_0x60b0('0x40')](_0x3d2f9e));var _0x581c3d={'speech':_0x3d2f9e[_0x60b0('0x7d')],'action':_0x3d2f9e[_0x60b0('0x7e')]?_0x3d2f9e[_0x60b0('0x7e')]['CustomAction']:undefined,'actiondata':_0x3d2f9e[_0x60b0('0x7e')]?_0x3d2f9e[_0x60b0('0x7e')]['CustomActionData']:undefined};if(_0x3d2f9e[_0x60b0('0x7e')]&&_0x3d2f9e['channelData'][_0x60b0('0x7f')]){return base64Decode(_0x3d2f9e[_0x60b0('0x7e')][_0x60b0('0x7f')][_0x60b0('0x80')],path[_0x60b0('0x34')](__dirname,_0x60b0('0x27'),rs[_0x60b0('0x28')](0x4)+_0x60b0('0x29')))[_0x60b0('0x39')](function(_0x2237a3){_0x581c3d['audiofile']=_0x2237a3;return _0x581c3d;});}return _0x581c3d;});};exports['dirName']=function(){return __dirname;};