5fa520e77af9810de8fbfc887c1bb69eea141c37
[motion2.git] / server / components / import / cm / csv.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 _0x15c9=['ContactId','createdAt','updatedAt','select','field','NOW()','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','id\x20IN\x20?','str','calleridnum','cm_hopper_final','cm_hopper_black','VoiceQueue','findAll','outbound','CmList','Lists','get','dialCheckDuplicateType','sequelize','query','VoiceQueueId','onlyIfOpen','all','BlackLists','Campaign','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','CSV\x20import\x20process\x20stopped!','createReadStream','parse','info','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','papaparse','../../../mysqldb','redis','localhost','register','argv','null','undefined','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','join','hasOwnProperty','data','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','ListId','CompanyId','duplicate','CmContact','then','push','catch','Error\x20while\x20creating\x20contact:\x20','message','stringify','checkHopper','inspect','insert','into','cm_hopper','fromQuery','phone','scheduledAt'];(function(_0x11f0e3,_0x5170bc){var _0x2892e8=function(_0x3292b2){while(--_0x3292b2){_0x11f0e3['push'](_0x11f0e3['shift']());}};_0x2892e8(++_0x5170bc);}(_0x15c9,0x102));var _0x915c=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x15c9[_0x2641f9];return _0x585741;};'use strict';var BPromise=require(_0x915c('0x0'));var util=require(_0x915c('0x1'));var _=require(_0x915c('0x2'));var fs=require('fs');var squel=require(_0x915c('0x3'));var Papa=require(_0x915c('0x4'));var Redis=require('ioredis');var db=require(_0x915c('0x5'))['db'];var config=require('../../../config/environment');var logger=require('../../../config/logger')('api');config[_0x915c('0x6')]=_['defaults'](config[_0x915c('0x6')],{'host':_0x915c('0x7'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x915c('0x6')]));require('../../../api/cmContact/cmContact.socket')[_0x915c('0x8')](socket);try{if(!process[_0x915c('0x9')][0x2]||process[_0x915c('0x9')][0x2]==='undefined'||process[_0x915c('0x9')][0x2]===_0x915c('0xa')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process['argv'][0x2];if(!process['argv'][0x3]||process[_0x915c('0x9')][0x3]===_0x915c('0xb')||process[_0x915c('0x9')][0x3]==='null'||!process[_0x915c('0x9')][0x4]||process[_0x915c('0x9')][0x4]==='undefined'||process[_0x915c('0x9')][0x4]===_0x915c('0xa')){throw new Error(_0x915c('0xc'));}var FIELDS=_[_0x915c('0xd')](process[_0x915c('0x9')][0x3][_0x915c('0xe')](','),process[_0x915c('0x9')][0x4][_0x915c('0xe')](','));if(!process['argv'][0x5]||process['argv'][0x5]===_0x915c('0xb')||process[_0x915c('0x9')][0x5]===_0x915c('0xa')){throw new Error(_0x915c('0xf'));}var LISTID=process[_0x915c('0x9')][0x5];var COMPANYID=process[_0x915c('0x9')][0x6]&&process[_0x915c('0x9')][0x6]!=='undefined'&&process[_0x915c('0x9')][0x6]!==_0x915c('0xa')?process[_0x915c('0x9')][0x6]:null;var DUPLICATES=process[_0x915c('0x9')][0x7]&&process['argv'][0x7]!==_0x915c('0xb')&&process[_0x915c('0x9')][0x7]!=='null'?process[_0x915c('0x9')][0x7]:null;if(!process[_0x915c('0x9')][0x8]||process['argv'][0x8]==='undefined'||process[_0x915c('0x9')][0x8]==='null'){throw new Error(_0x915c('0x10'));}var SOCKET_TIMESTAMP=process[_0x915c('0x9')][0x8];}catch(_0x193974){logger[_0x915c('0x11')](_0x193974);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x4fd7a1,_0x3c96fc,_0x4f18ac,_0x4c23a8){var _0xb8bbd1={'message':_0x3c96fc};_0xb8bbd1[_0x4fd7a1]=!![];if(_0x4f18ac){_0xb8bbd1['contact']=_0x4f18ac;}if(_0x4c23a8){_0xb8bbd1[_0x915c('0x12')]=_0x4c23a8;}return _0xb8bbd1;}function isEmail(_0x37cb3b){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x915c('0x13')](_0x37cb3b);}function checkRow(_0x57740a,_0x4649af,_0xb4d5ae){return new BPromise(function(_0x4bcb78,_0x2c7ba1){if(_[_0x915c('0x14')](_0x57740a)){return _0x2c7ba1(handleCheckRowError('error',_0x915c('0x15'),null,_0xb4d5ae));}if(_0x57740a['errors']&&_0x57740a[_0x915c('0x16')][_0x915c('0x17')]){var _0x21d20c=_['map'](_0x57740a[_0x915c('0x16')],'message')[_0x915c('0x18')](';');return _0x2c7ba1(handleCheckRowError(_0x915c('0x11'),_0x21d20c,null,_0xb4d5ae));}var _0x459d99={};for(var _0x282ab6 in FIELDS){if(FIELDS[_0x915c('0x19')](_0x282ab6)&&FIELDS[_0x282ab6]){_0x459d99[_0x282ab6]=_0x57740a['data'][0x0][FIELDS[_0x282ab6]]||_0x57740a[_0x915c('0x1a')][0x0]['\ufeff'+FIELDS[_0x282ab6]];}}if(!_0x459d99['firstName']){return _0x2c7ba1(handleCheckRowError('error','firstName\x20not\x20specified!',null,_0xb4d5ae));}if(!_0x459d99['phone']){return _0x2c7ba1(handleCheckRowError(_0x915c('0x11'),_0x915c('0x1b'),null,_0xb4d5ae));}if(_0x459d99[_0x915c('0x1c')]){var _0xbeb445=moment(_0x459d99[_0x915c('0x1c')],_0x915c('0x1d'));if(!_0xbeb445[_0x915c('0x1e')]()){return _0x2c7ba1(handleCheckRowError('error',_0x915c('0x1f'),null,_0xb4d5ae));}}if(_0x459d99[_0x915c('0x20')]){if(!isEmail(_0x459d99['email'])){return _0x2c7ba1(handleCheckRowError('error','email\x20format\x20is\x20not\x20valid!',null,_0xb4d5ae));}}_0x459d99[_0x915c('0x21')]=LISTID;_0x459d99[_0x915c('0x22')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x915c('0x17')]&&_0x4649af){var _0x347342={};for(var _0x5c7db5=0x0,_0x5dcb5e=DUPLICATES[_0x915c('0x17')];_0x5c7db5<_0x5dcb5e;_0x5c7db5+=0x1){_0x347342[DUPLICATES[_0x5c7db5]]=_0x459d99[DUPLICATES[_0x5c7db5]];}var _0x3cc2de=_['find'](_0x4649af,_0x347342);if(_0x3cc2de){return _0x2c7ba1(handleCheckRowError(_0x915c('0x23'),'Duplicate\x20Contact',_0x3cc2de,_0xb4d5ae));}}return db[_0x915c('0x24')]['create'](_0x459d99,{'raw':!![],'hooks':![],'fields':_['keys'](_0x459d99)})[_0x915c('0x25')](function(_0x4487eb){if(DUPLICATES&&DUPLICATES['length']&&_0x4649af){_0x4649af[_0x915c('0x26')](_['pick'](_0x459d99,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x4487eb['id'];return _0x4bcb78();})[_0x915c('0x27')](function(_0x46ad6b){return _0x2c7ba1(handleCheckRowError('error',_0x915c('0x28')+(_0x46ad6b[_0x915c('0x29')]||JSON[_0x915c('0x2a')](_0x46ad6b)),null,_0xb4d5ae));});});}function checkHopper(){function _0x295016(){return function(_0xa25746){logger[_0x915c('0x11')]('cmContact',_0x915c('0x2b'),util[_0x915c('0x2c')](_0xa25746,{'showHidden':![],'depth':null}));};}var _0x455956=function(_0x1f115d,_0x192b53){var _0x4011db=squel[_0x915c('0x2d')]()[_0x915c('0x2e')](_0x915c('0x2f'))[_0x915c('0x30')]([_0x915c('0x31'),_0x915c('0x32'),_0x915c('0x33'),_0x915c('0x21'),_0x192b53,_0x915c('0x34'),_0x915c('0x35')],squel[_0x915c('0x36')]()['field'](_0x915c('0x31'),_0x915c('0x31'))[_0x915c('0x37')](_0x915c('0x38'),'scheduledAt')[_0x915c('0x37')]('id',_0x915c('0x33'))[_0x915c('0x37')](LISTID[_0x915c('0x39')](),_0x915c('0x21'))[_0x915c('0x37')](_0x1f115d['id'][_0x915c('0x39')](),_0x192b53)[_0x915c('0x37')](_0x915c('0x38'),_0x915c('0x34'))[_0x915c('0x37')](_0x915c('0x38'),_0x915c('0x35'))[_0x915c('0x3a')](_0x915c('0x3b'))['where'](_0x915c('0x3c'))[_0x915c('0x3d')](_0x915c('0x3e'),LISTID['toString']())['where'](_0x915c('0x3f'))[_0x915c('0x3d')](_0x915c('0x40'),squel[_0x915c('0x36')]()['field'](_0x915c('0x31'))['from'](_0x915c('0x2f'))[_0x915c('0x3d')](_0x192b53+_0x915c('0x41'),_0x1f115d['id'][_0x915c('0x39')]())))[_0x915c('0x39')]();return _0x4011db;};var _0x1a7999=function(_0x3c11ca,_0x5ac716){var _0x3a9f54=squel[_0x915c('0x2d')]()[_0x915c('0x2e')](_0x915c('0x2f'))['fromQuery']([_0x915c('0x31'),'scheduledAt',_0x915c('0x33'),'ListId',_0x5ac716,_0x915c('0x34'),_0x915c('0x35')],squel[_0x915c('0x36')]()['field'](_0x915c('0x31'),'phone')['field']('NOW()',_0x915c('0x32'))[_0x915c('0x37')]('id',_0x915c('0x33'))[_0x915c('0x37')](LISTID[_0x915c('0x39')](),_0x915c('0x21'))[_0x915c('0x37')](_0x3c11ca['id']['toString'](),_0x5ac716)['field'](_0x915c('0x38'),_0x915c('0x34'))[_0x915c('0x37')](_0x915c('0x38'),'updatedAt')[_0x915c('0x3a')](_0x915c('0x3b'))['where'](_0x915c('0x3c'))[_0x915c('0x3d')](_0x915c('0x3e'),LISTID['toString']())[_0x915c('0x3d')](_0x915c('0x42'),squel[_0x915c('0x43')](hopperContacts))[_0x915c('0x3d')](_0x915c('0x3f'))[_0x915c('0x3d')](_0x915c('0x40'),squel[_0x915c('0x36')]()['field'](_0x915c('0x44'))[_0x915c('0x3a')](_0x915c('0x45'))[_0x915c('0x3d')](_0x5ac716+_0x915c('0x41'),_0x3c11ca['id']['toString']()))[_0x915c('0x3d')](_0x915c('0x40'),squel[_0x915c('0x36')]()['field'](_0x915c('0x31'))[_0x915c('0x3a')](_0x915c('0x2f'))[_0x915c('0x3d')](_0x5ac716+_0x915c('0x41'),_0x3c11ca['id']['toString']())))[_0x915c('0x39')]();return _0x3a9f54;};function _0x31a178(_0x38726d,_0x152639){var _0x452591=squel[_0x915c('0x2d')]()['into']('cm_hopper')[_0x915c('0x30')]([_0x915c('0x31'),'scheduledAt',_0x915c('0x33'),_0x915c('0x21'),_0x152639,_0x915c('0x34'),'updatedAt'],squel[_0x915c('0x36')]()['field'](_0x915c('0x31'),_0x915c('0x31'))[_0x915c('0x37')](_0x915c('0x38'),_0x915c('0x32'))[_0x915c('0x37')]('id','ContactId')[_0x915c('0x37')](LISTID[_0x915c('0x39')](),_0x915c('0x21'))['field'](_0x38726d['id'][_0x915c('0x39')](),_0x152639)[_0x915c('0x37')](_0x915c('0x38'),_0x915c('0x34'))[_0x915c('0x37')](_0x915c('0x38'),_0x915c('0x35'))[_0x915c('0x3a')](_0x915c('0x3b'))['where'](_0x915c('0x3c'))[_0x915c('0x3d')](_0x915c('0x3e'),LISTID[_0x915c('0x39')]())[_0x915c('0x3d')](_0x915c('0x42'),squel[_0x915c('0x43')](hopperContacts))[_0x915c('0x3d')](_0x915c('0x3f')))[_0x915c('0x39')]();return _0x452591;}function _0x34e82(_0x3d2510,_0x402280){var _0x15cb53=squel['insert']()[_0x915c('0x2e')](_0x915c('0x46'))[_0x915c('0x30')]([_0x915c('0x31'),_0x915c('0x33'),_0x915c('0x21'),_0x402280,'createdAt',_0x915c('0x35')],squel[_0x915c('0x36')]()[_0x915c('0x37')]('phone',_0x915c('0x31'))[_0x915c('0x37')]('id',_0x915c('0x33'))[_0x915c('0x37')](LISTID['toString'](),_0x915c('0x21'))[_0x915c('0x37')](_0x3d2510['id'][_0x915c('0x39')](),_0x402280)[_0x915c('0x37')](_0x915c('0x38'),'createdAt')[_0x915c('0x37')](_0x915c('0x38'),_0x915c('0x35'))[_0x915c('0x3a')](_0x915c('0x3b'))[_0x915c('0x3d')](_0x915c('0x3c'))[_0x915c('0x3d')](_0x915c('0x3e'),LISTID[_0x915c('0x39')]())['where']('id\x20IN\x20?',squel[_0x915c('0x43')](hopperContacts))[_0x915c('0x3d')]('phone\x20IS\x20NOT\x20NULL'))[_0x915c('0x39')]();return _0x15cb53;}return db[_0x915c('0x47')][_0x915c('0x48')]({'where':{'type':_0x915c('0x49')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x915c('0x4a')],'as':_0x915c('0x4b'),'where':{'id':LISTID}}]})[_0x915c('0x25')](function(_0x179627){var _0x2aa5ad=[];if(_0x179627){var _0x118144;for(var _0x31002e=0x0,_0x381b1b;_0x31002e<_0x179627[_0x915c('0x17')];_0x31002e+=0x1){_0x381b1b=_0x179627[_0x31002e][_0x915c('0x4c')]({'plain':!![]});switch(_0x381b1b[_0x915c('0x4d')]){case'always':_0x2aa5ad[_0x915c('0x26')](db[_0x915c('0x4e')][_0x915c('0x4f')](_0x1a7999(_0x381b1b,_0x915c('0x50')))[_0x915c('0x25')](function(){})[_0x915c('0x27')](_0x295016()));break;case _0x915c('0x51'):_0x2aa5ad[_0x915c('0x26')](db[_0x915c('0x4e')]['query'](_0x455956(_0x381b1b,_0x915c('0x50')))['then'](function(){})[_0x915c('0x27')](_0x295016()));break;default:_0x2aa5ad[_0x915c('0x26')](db[_0x915c('0x4e')][_0x915c('0x4f')](_0x31a178(_0x381b1b,_0x915c('0x50')))[_0x915c('0x25')](function(){})[_0x915c('0x27')](_0x295016()));}}}return _0x2aa5ad;})[_0x915c('0x52')]()[_0x915c('0x25')](function(){return db[_0x915c('0x47')][_0x915c('0x48')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x915c('0x53'),'where':{'id':LISTID}}]})[_0x915c('0x25')](function(_0x50f944){var _0x3ebf78=[];if(_0x50f944){var _0x501cc1;for(var _0x1e9d25=0x0,_0x310ca0;_0x1e9d25<_0x50f944['length'];_0x1e9d25+=0x1){_0x310ca0=_0x50f944[_0x1e9d25][_0x915c('0x4c')]({'plain':!![]});_0x3ebf78[_0x915c('0x26')](db['sequelize'][_0x915c('0x4f')](_0x34e82(_0x310ca0,_0x915c('0x50')))['then'](function(){})['catch'](_0x295016()));}}return _0x3ebf78;})[_0x915c('0x52')]();})['then'](function(){return db[_0x915c('0x54')][_0x915c('0x48')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x915c('0x4a')],'as':_0x915c('0x4b'),'where':{'id':LISTID}}]})[_0x915c('0x25')](function(_0x13861c){var _0x408f8b=[];if(_0x13861c){for(var _0x352630=0x0,_0x5d45eb;_0x352630<_0x13861c[_0x915c('0x17')];_0x352630+=0x1){_0x5d45eb=_0x13861c[_0x352630][_0x915c('0x4c')]({'plain':!![]});switch(_0x5d45eb['dialCheckDuplicateType']){case'always':_0x408f8b[_0x915c('0x26')](db[_0x915c('0x4e')][_0x915c('0x4f')](_0x1a7999(_0x5d45eb,_0x915c('0x55')))[_0x915c('0x25')](function(){})[_0x915c('0x27')](_0x295016()));break;case _0x915c('0x51'):_0x408f8b['push'](db[_0x915c('0x4e')][_0x915c('0x4f')](_0x455956(_0x5d45eb,_0x915c('0x55')))[_0x915c('0x25')](function(){})[_0x915c('0x27')](_0x295016()));break;default:_0x408f8b[_0x915c('0x26')](db[_0x915c('0x4e')][_0x915c('0x4f')](_0x31a178(_0x5d45eb,_0x915c('0x55')))['then'](function(){})[_0x915c('0x27')](_0x295016()));}}}return _0x408f8b;})[_0x915c('0x52')]();})[_0x915c('0x25')](function(){return db[_0x915c('0x54')][_0x915c('0x48')]({'attributes':['id'],'include':[{'model':db[_0x915c('0x4a')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x915c('0x25')](function(_0x220ffe){var _0x33876d=[];if(_0x220ffe){for(var _0x3c25da=0x0,_0x3eb466;_0x3c25da<_0x220ffe[_0x915c('0x17')];_0x3c25da+=0x1){_0x3eb466=_0x220ffe[_0x3c25da][_0x915c('0x4c')]({'plain':!![]});_0x33876d[_0x915c('0x26')](db[_0x915c('0x4e')][_0x915c('0x4f')](_0x34e82(_0x3eb466,_0x915c('0x55')))[_0x915c('0x25')](function(){})[_0x915c('0x27')](_0x295016()));}}return _0x33876d;})['all']();})[_0x915c('0x27')](function(_0x3b303c){logger[_0x915c('0x11')](_0x915c('0x56'),_0x915c('0x57'),_0x3b303c[_0x915c('0x29')]);});}var processPromises=function(_0x2479f0){return BPromise[_0x915c('0x52')](promises)['then'](function(_0x45690f){})[_0x915c('0x27')](function(_0x12e8e6){logger[_0x915c('0x11')](_0x915c('0x58'),JSON[_0x915c('0x2a')](_0x12e8e6));})['finally'](function(){socket[_0x915c('0x59')](_0x915c('0x5a')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2479f0){return _0x2479f0[_0x915c('0x5b')]();}});};var endCsv=function(){return BPromise[_0x915c('0x5c')]()[_0x915c('0x25')](function(){if(hopperContacts){return checkHopper();}})[_0x915c('0x25')](function(){socket[_0x915c('0x59')](_0x915c('0x5a')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x915c('0x5d')](FILEPATH);}catch(_0x336ac4){logger[_0x915c('0x11')](_0x915c('0x5e'),JSON[_0x915c('0x2a')](_0x336ac4));}finally{process['exit'](0x0);}});};process['on'](_0x915c('0x5f'),function(){logger['info'](_0x915c('0x60'));endCsv();});function main(){return BPromise['resolve']()[_0x915c('0x25')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x915c('0xe')](',');return db[_0x915c('0x24')][_0x915c('0x48')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x53c23c){var _0x585b6d=fs[_0x915c('0x61')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x915c('0x62')](_0x585b6d,{'header':!![],'skipEmptyLines':!![],'step':function(_0x3445e7,_0xb77e66){total+=0x1;var _0x462b4c=total;promises['push'](checkRow(_0x3445e7,_0x53c23c,_0x462b4c)['then'](function(){success+=0x1;})[_0x915c('0x27')](function(_0x27a94e){if(_0x27a94e[_0x915c('0x11')]){errors+=0x1;delete _0x27a94e[_0x915c('0x11')];}else if(_0x27a94e[_0x915c('0x23')]){duplicates+=0x1;delete _0x27a94e[_0x915c('0x23')];}rows[_0x915c('0x26')](_0x27a94e);}));if(total%0xc8===0x0){_0xb77e66['pause']();return processPromises(_0xb77e66);}},'complete':function(){return processPromises()['then'](function(){logger[_0x915c('0x63')](_0x915c('0x64'));endCsv();});},'error':function(_0x11a78f,_0x2e0a2a){logger['info'](_0x915c('0x65'),JSON[_0x915c('0x2a')](_0x11a78f));endCsv();}});})['catch'](function(_0x4605ac){logger[_0x915c('0x11')](_0x915c('0x66'),JSON[_0x915c('0x2a')](_0x4605ac));});}main();