Built motion from commit b5413ace.|2.6.9
[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 _0x267e=['createReadStream','parse','pause','info','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','defaults','redis','../../../api/cmContact/cmContact.socket','register','argv','null','Missing\x20filepath\x20parameter!','undefined','Missing\x20binding\x20parameters!','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','join','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','keys','then','push','catch','Error\x20while\x20creating\x20contact:\x20','message','cmContact','insert','into','cm_hopper','scheduledAt','ContactId','createdAt','updatedAt','select','field','toString','NOW()','cm_contacts','where','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','from','\x20=\x20?','fromQuery','id\x20IN\x20?','str','phone\x20NOT\x20IN\x20(?)','calleridnum','cm_hopper_final','deletedAt\x20IS\x20NULL','cm_hopper_black','VoiceQueue','findAll','dialCheckDuplicateType','get','always','sequelize','query','VoiceQueueId','outbound','BlackLists','Campaign','onlyIfOpen','CampaignId','all','CmList','Error\x20processing\x20rows\x20block:','stringify','finally','emit','contact:csv_','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','CSV\x20import\x20process\x20stopped!','resolve'];(function(_0x43f69d,_0x2be64a){var _0x22abd=function(_0x17fe67){while(--_0x17fe67){_0x43f69d['push'](_0x43f69d['shift']());}};_0x22abd(++_0x2be64a);}(_0x267e,0x1cb));var _0xe267=function(_0x9e1dae,_0x5590d0){_0x9e1dae=_0x9e1dae-0x0;var _0x3c4f2b=_0x267e[_0x9e1dae];return _0x3c4f2b;};'use strict';var BPromise=require(_0xe267('0x0'));var util=require(_0xe267('0x1'));var _=require('lodash');var fs=require('fs');var squel=require('squel');var Papa=require(_0xe267('0x2'));var Redis=require(_0xe267('0x3'));var db=require(_0xe267('0x4'))['db'];var config=require(_0xe267('0x5'));var logger=require(_0xe267('0x6'))(_0xe267('0x7'));config['redis']=_[_0xe267('0x8')](config[_0xe267('0x9')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe267('0x9')]));require(_0xe267('0xa'))[_0xe267('0xb')](socket);try{if(!process[_0xe267('0xc')][0x2]||process[_0xe267('0xc')][0x2]==='undefined'||process[_0xe267('0xc')][0x2]===_0xe267('0xd')){throw new Error(_0xe267('0xe'));}var FILEPATH=process['argv'][0x2];if(!process[_0xe267('0xc')][0x3]||process[_0xe267('0xc')][0x3]===_0xe267('0xf')||process[_0xe267('0xc')][0x3]===_0xe267('0xd')||!process[_0xe267('0xc')][0x4]||process[_0xe267('0xc')][0x4]===_0xe267('0xf')||process[_0xe267('0xc')][0x4]===_0xe267('0xd')){throw new Error(_0xe267('0x10'));}var FIELDS=_['zipObject'](process[_0xe267('0xc')][0x3][_0xe267('0x11')](','),process[_0xe267('0xc')][0x4]['split'](','));if(!process[_0xe267('0xc')][0x5]||process[_0xe267('0xc')][0x5]==='undefined'||process[_0xe267('0xc')][0x5]===_0xe267('0xd')){throw new Error(_0xe267('0x12'));}var LISTID=process['argv'][0x5];var COMPANYID=process[_0xe267('0xc')][0x6]&&process['argv'][0x6]!=='undefined'&&process[_0xe267('0xc')][0x6]!==_0xe267('0xd')?process['argv'][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0xe267('0xc')][0x7]!==_0xe267('0xf')&&process[_0xe267('0xc')][0x7]!==_0xe267('0xd')?process[_0xe267('0xc')][0x7]:null;if(!process[_0xe267('0xc')][0x8]||process['argv'][0x8]===_0xe267('0xf')||process[_0xe267('0xc')][0x8]==='null'){throw new Error(_0xe267('0x13'));}var SOCKET_TIMESTAMP=process[_0xe267('0xc')][0x8];}catch(_0x69a82e){logger[_0xe267('0x14')](_0x69a82e);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(_0x354940,_0x279df3,_0x2c2677,_0x1f996b){var _0x568961={'message':_0x279df3};_0x568961[_0x354940]=!![];if(_0x2c2677){_0x568961[_0xe267('0x15')]=_0x2c2677;}if(_0x1f996b){_0x568961[_0xe267('0x16')]=_0x1f996b;}return _0x568961;}function isEmail(_0x5b7e0d){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))*$/[_0xe267('0x17')](_0x5b7e0d);}function checkRow(_0x3e4a90,_0x25113c,_0xcf5986){return new BPromise(function(_0x55c3ff,_0x1519d1){if(_[_0xe267('0x18')](_0x3e4a90)){return _0x1519d1(handleCheckRowError(_0xe267('0x14'),_0xe267('0x19'),null,_0xcf5986));}if(_0x3e4a90[_0xe267('0x1a')]&&_0x3e4a90[_0xe267('0x1a')][_0xe267('0x1b')]){var _0x4dd8d4=_[_0xe267('0x1c')](_0x3e4a90['errors'],'message')[_0xe267('0x1d')](';');return _0x1519d1(handleCheckRowError('error',_0x4dd8d4,null,_0xcf5986));}var _0x5987b2={};for(var _0x2fd59a in FIELDS){if(FIELDS['hasOwnProperty'](_0x2fd59a)&&FIELDS[_0x2fd59a]){_0x5987b2[_0x2fd59a]=_0x3e4a90[_0xe267('0x1e')][0x0][FIELDS[_0x2fd59a]]||_0x3e4a90[_0xe267('0x1e')][0x0]['\ufeff'+FIELDS[_0x2fd59a]];}}if(!_0x5987b2[_0xe267('0x1f')]){return _0x1519d1(handleCheckRowError('error',_0xe267('0x20'),null,_0xcf5986));}if(!_0x5987b2[_0xe267('0x21')]){return _0x1519d1(handleCheckRowError(_0xe267('0x14'),_0xe267('0x22'),null,_0xcf5986));}if(_0x5987b2[_0xe267('0x23')]){var _0x235243=moment(_0x5987b2[_0xe267('0x23')],_0xe267('0x24'));if(!_0x235243[_0xe267('0x25')]()){return _0x1519d1(handleCheckRowError('error',_0xe267('0x26'),null,_0xcf5986));}}if(_0x5987b2[_0xe267('0x27')]){if(!isEmail(_0x5987b2[_0xe267('0x27')])){return _0x1519d1(handleCheckRowError(_0xe267('0x14'),_0xe267('0x28'),null,_0xcf5986));}}_0x5987b2[_0xe267('0x29')]=LISTID;_0x5987b2[_0xe267('0x2a')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xe267('0x1b')]&&_0x25113c){var _0x1fcd16={};for(var _0x4abc0d=0x0,_0xead583=DUPLICATES['length'];_0x4abc0d<_0xead583;_0x4abc0d+=0x1){_0x1fcd16[DUPLICATES[_0x4abc0d]]=_0x5987b2[DUPLICATES[_0x4abc0d]];}var _0x354ce7=_[_0xe267('0x2b')](_0x25113c,_0x1fcd16);if(_0x354ce7){return _0x1519d1(handleCheckRowError(_0xe267('0x2c'),_0xe267('0x2d'),_0x354ce7,_0xcf5986));}}return db[_0xe267('0x2e')][_0xe267('0x2f')](_0x5987b2,{'raw':!![],'hooks':![],'fields':_[_0xe267('0x30')](_0x5987b2)})[_0xe267('0x31')](function(_0x3191de){if(DUPLICATES&&DUPLICATES[_0xe267('0x1b')]&&_0x25113c){_0x25113c[_0xe267('0x32')](_['pick'](_0x5987b2,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x3191de['id'];return _0x55c3ff();})[_0xe267('0x33')](function(_0x5ca858){return _0x1519d1(handleCheckRowError('error',_0xe267('0x34')+(_0x5ca858[_0xe267('0x35')]||JSON['stringify'](_0x5ca858)),null,_0xcf5986));});});}function checkHopper(){function _0x4bcb99(){return function(_0x4be057){logger['error'](_0xe267('0x36'),'checkHopper',util['inspect'](_0x4be057,{'showHidden':![],'depth':null}));};}var _0x1ac8a7=function(_0x1f9da0,_0x3e6667){var _0x306c8f=squel[_0xe267('0x37')]()[_0xe267('0x38')](_0xe267('0x39'))['fromQuery']([_0xe267('0x21'),_0xe267('0x3a'),_0xe267('0x3b'),_0xe267('0x29'),_0x3e6667,_0xe267('0x3c'),_0xe267('0x3d')],squel[_0xe267('0x3e')]()[_0xe267('0x3f')](_0xe267('0x21'),_0xe267('0x21'))[_0xe267('0x3f')]('NOW()',_0xe267('0x3a'))[_0xe267('0x3f')]('id',_0xe267('0x3b'))[_0xe267('0x3f')](LISTID[_0xe267('0x40')](),_0xe267('0x29'))['field'](_0x1f9da0['id']['toString'](),_0x3e6667)[_0xe267('0x3f')](_0xe267('0x41'),_0xe267('0x3c'))[_0xe267('0x3f')](_0xe267('0x41'),_0xe267('0x3d'))['from'](_0xe267('0x42'))[_0xe267('0x43')]('deletedAt\x20IS\x20NULL')[_0xe267('0x43')](_0xe267('0x44'),LISTID[_0xe267('0x40')]())[_0xe267('0x43')](_0xe267('0x45'))[_0xe267('0x43')]('phone\x20NOT\x20IN\x20(?)',squel[_0xe267('0x3e')]()['field'](_0xe267('0x21'))[_0xe267('0x46')]('cm_hopper')['where'](_0x3e6667+_0xe267('0x47'),_0x1f9da0['id'][_0xe267('0x40')]())))[_0xe267('0x40')]();return _0x306c8f;};var _0x11899f=function(_0x4f34bc,_0x406b1a){var _0x1b2d5a=squel['insert']()[_0xe267('0x38')]('cm_hopper')[_0xe267('0x48')]([_0xe267('0x21'),'scheduledAt',_0xe267('0x3b'),'ListId',_0x406b1a,_0xe267('0x3c'),_0xe267('0x3d')],squel[_0xe267('0x3e')]()[_0xe267('0x3f')](_0xe267('0x21'),_0xe267('0x21'))[_0xe267('0x3f')](_0xe267('0x41'),_0xe267('0x3a'))[_0xe267('0x3f')]('id',_0xe267('0x3b'))[_0xe267('0x3f')](LISTID['toString'](),_0xe267('0x29'))[_0xe267('0x3f')](_0x4f34bc['id'][_0xe267('0x40')](),_0x406b1a)[_0xe267('0x3f')]('NOW()',_0xe267('0x3c'))[_0xe267('0x3f')](_0xe267('0x41'),'updatedAt')[_0xe267('0x46')](_0xe267('0x42'))[_0xe267('0x43')]('deletedAt\x20IS\x20NULL')[_0xe267('0x43')]('ListId\x20=\x20?',LISTID[_0xe267('0x40')]())[_0xe267('0x43')](_0xe267('0x49'),squel[_0xe267('0x4a')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL')[_0xe267('0x43')](_0xe267('0x4b'),squel['select']()[_0xe267('0x3f')](_0xe267('0x4c'))[_0xe267('0x46')](_0xe267('0x4d'))['where'](_0x406b1a+_0xe267('0x47'),_0x4f34bc['id'][_0xe267('0x40')]()))[_0xe267('0x43')](_0xe267('0x4b'),squel[_0xe267('0x3e')]()['field'](_0xe267('0x21'))[_0xe267('0x46')](_0xe267('0x39'))[_0xe267('0x43')](_0x406b1a+'\x20=\x20?',_0x4f34bc['id']['toString']())))[_0xe267('0x40')]();return _0x1b2d5a;};function _0x11e47a(_0x482ec2,_0x38b0da){var _0x40d441=squel[_0xe267('0x37')]()[_0xe267('0x38')](_0xe267('0x39'))[_0xe267('0x48')]([_0xe267('0x21'),_0xe267('0x3a'),_0xe267('0x3b'),_0xe267('0x29'),_0x38b0da,'createdAt',_0xe267('0x3d')],squel[_0xe267('0x3e')]()['field']('phone','phone')[_0xe267('0x3f')](_0xe267('0x41'),'scheduledAt')['field']('id',_0xe267('0x3b'))['field'](LISTID[_0xe267('0x40')](),_0xe267('0x29'))[_0xe267('0x3f')](_0x482ec2['id'][_0xe267('0x40')](),_0x38b0da)['field'](_0xe267('0x41'),_0xe267('0x3c'))[_0xe267('0x3f')](_0xe267('0x41'),_0xe267('0x3d'))['from'](_0xe267('0x42'))['where'](_0xe267('0x4e'))[_0xe267('0x43')](_0xe267('0x44'),LISTID[_0xe267('0x40')]())['where'](_0xe267('0x49'),squel['str'](hopperContacts))[_0xe267('0x43')](_0xe267('0x45')))[_0xe267('0x40')]();return _0x40d441;}function _0x402189(_0x12eca3,_0x410cc9){var _0x188f3c=squel[_0xe267('0x37')]()['into'](_0xe267('0x4f'))[_0xe267('0x48')](['phone',_0xe267('0x3b'),_0xe267('0x29'),_0x410cc9,_0xe267('0x3c'),_0xe267('0x3d')],squel[_0xe267('0x3e')]()[_0xe267('0x3f')]('phone',_0xe267('0x21'))[_0xe267('0x3f')]('id',_0xe267('0x3b'))[_0xe267('0x3f')](LISTID['toString'](),_0xe267('0x29'))[_0xe267('0x3f')](_0x12eca3['id']['toString'](),_0x410cc9)[_0xe267('0x3f')](_0xe267('0x41'),_0xe267('0x3c'))['field'](_0xe267('0x41'),_0xe267('0x3d'))[_0xe267('0x46')](_0xe267('0x42'))[_0xe267('0x43')](_0xe267('0x4e'))[_0xe267('0x43')](_0xe267('0x44'),LISTID['toString']())['where']('id\x20IN\x20?',squel[_0xe267('0x4a')](hopperContacts))[_0xe267('0x43')]('phone\x20IS\x20NOT\x20NULL'))['toString']();return _0x188f3c;}return db[_0xe267('0x50')][_0xe267('0x51')]({'where':{'type':'outbound'},'attributes':['id',_0xe267('0x52')],'include':[{'model':db['CmList'],'as':'Lists','where':{'id':LISTID}}]})[_0xe267('0x31')](function(_0x350a9d){var _0x2ca3fd=[];if(_0x350a9d){var _0x3091d9;for(var _0x45e50c=0x0,_0x744b38;_0x45e50c<_0x350a9d[_0xe267('0x1b')];_0x45e50c+=0x1){_0x744b38=_0x350a9d[_0x45e50c][_0xe267('0x53')]({'plain':!![]});switch(_0x744b38[_0xe267('0x52')]){case _0xe267('0x54'):_0x2ca3fd['push'](db[_0xe267('0x55')][_0xe267('0x56')](_0x11899f(_0x744b38,'VoiceQueueId'))[_0xe267('0x31')](function(){})[_0xe267('0x33')](_0x4bcb99()));break;case'onlyIfOpen':_0x2ca3fd[_0xe267('0x32')](db[_0xe267('0x55')][_0xe267('0x56')](_0x1ac8a7(_0x744b38,_0xe267('0x57')))['then'](function(){})[_0xe267('0x33')](_0x4bcb99()));break;default:_0x2ca3fd[_0xe267('0x32')](db[_0xe267('0x55')][_0xe267('0x56')](_0x11e47a(_0x744b38,_0xe267('0x57')))[_0xe267('0x31')](function(){})[_0xe267('0x33')](_0x4bcb99()));}}}return _0x2ca3fd;})['all']()['then'](function(){return db[_0xe267('0x50')][_0xe267('0x51')]({'where':{'type':_0xe267('0x58')},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xe267('0x59'),'where':{'id':LISTID}}]})[_0xe267('0x31')](function(_0x1b3acc){var _0xcc9b8d=[];if(_0x1b3acc){var _0x462970;for(var _0x16736b=0x0,_0x2b0d9b;_0x16736b<_0x1b3acc['length'];_0x16736b+=0x1){_0x2b0d9b=_0x1b3acc[_0x16736b][_0xe267('0x53')]({'plain':!![]});_0xcc9b8d[_0xe267('0x32')](db['sequelize']['query'](_0x402189(_0x2b0d9b,_0xe267('0x57')))[_0xe267('0x31')](function(){})[_0xe267('0x33')](_0x4bcb99()));}}return _0xcc9b8d;})['all']();})['then'](function(){return db[_0xe267('0x5a')][_0xe267('0x51')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':'Lists','where':{'id':LISTID}}]})[_0xe267('0x31')](function(_0x2ad7e7){var _0x14c989=[];if(_0x2ad7e7){for(var _0x590b1a=0x0,_0x27144d;_0x590b1a<_0x2ad7e7['length'];_0x590b1a+=0x1){_0x27144d=_0x2ad7e7[_0x590b1a][_0xe267('0x53')]({'plain':!![]});switch(_0x27144d[_0xe267('0x52')]){case _0xe267('0x54'):_0x14c989[_0xe267('0x32')](db[_0xe267('0x55')][_0xe267('0x56')](_0x11899f(_0x27144d,'CampaignId'))[_0xe267('0x31')](function(){})[_0xe267('0x33')](_0x4bcb99()));break;case _0xe267('0x5b'):_0x14c989[_0xe267('0x32')](db['sequelize'][_0xe267('0x56')](_0x1ac8a7(_0x27144d,_0xe267('0x5c')))[_0xe267('0x31')](function(){})[_0xe267('0x33')](_0x4bcb99()));break;default:_0x14c989['push'](db['sequelize']['query'](_0x11e47a(_0x27144d,_0xe267('0x5c')))['then'](function(){})['catch'](_0x4bcb99()));}}}return _0x14c989;})[_0xe267('0x5d')]();})[_0xe267('0x31')](function(){return db['Campaign'][_0xe267('0x51')]({'attributes':['id'],'include':[{'model':db[_0xe267('0x5e')],'as':_0xe267('0x59'),'where':{'id':LISTID}}]})[_0xe267('0x31')](function(_0x338ba8){var _0x1b29f3=[];if(_0x338ba8){for(var _0x22a6fd=0x0,_0x53321b;_0x22a6fd<_0x338ba8[_0xe267('0x1b')];_0x22a6fd+=0x1){_0x53321b=_0x338ba8[_0x22a6fd]['get']({'plain':!![]});_0x1b29f3[_0xe267('0x32')](db[_0xe267('0x55')][_0xe267('0x56')](_0x402189(_0x53321b,'CampaignId'))[_0xe267('0x31')](function(){})[_0xe267('0x33')](_0x4bcb99()));}}return _0x1b29f3;})[_0xe267('0x5d')]();})[_0xe267('0x33')](function(_0x42dde7){logger[_0xe267('0x14')]('cmContact,\x20%s,\x20%s','generalCheckHopper',_0x42dde7[_0xe267('0x35')]);});}var processPromises=function(_0x2d188f){return BPromise[_0xe267('0x5d')](promises)[_0xe267('0x31')](function(_0x43226d){})[_0xe267('0x33')](function(_0x739700){logger[_0xe267('0x14')](_0xe267('0x5f'),JSON[_0xe267('0x60')](_0x739700));})[_0xe267('0x61')](function(){socket[_0xe267('0x62')](_0xe267('0x63')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2d188f){return _0x2d188f['resume']();}});};var endCsv=function(){return BPromise['resolve']()[_0xe267('0x31')](function(){if(hopperContacts){return checkHopper();}})[_0xe267('0x31')](function(){socket[_0xe267('0x62')](_0xe267('0x63')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xe267('0x64')](FILEPATH);}catch(_0x49cf27){logger[_0xe267('0x14')](_0xe267('0x65'),JSON['stringify'](_0x49cf27));}finally{process[_0xe267('0x66')](0x0);}});};process['on'](_0xe267('0x67'),function(){logger['info'](_0xe267('0x68'));endCsv();});function main(){return BPromise[_0xe267('0x69')]()[_0xe267('0x31')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0xe267('0x11')](',');return db[_0xe267('0x2e')][_0xe267('0x51')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xe267('0x31')](function(_0x5871dc){var _0x2929e2=fs[_0xe267('0x6a')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xe267('0x6b')](_0x2929e2,{'header':!![],'skipEmptyLines':!![],'step':function(_0x14897e,_0x290a36){total+=0x1;var _0x5f263e=total;promises[_0xe267('0x32')](checkRow(_0x14897e,_0x5871dc,_0x5f263e)[_0xe267('0x31')](function(){success+=0x1;})['catch'](function(_0x3b6560){if(_0x3b6560['error']){errors+=0x1;delete _0x3b6560[_0xe267('0x14')];}else if(_0x3b6560[_0xe267('0x2c')]){duplicates+=0x1;delete _0x3b6560[_0xe267('0x2c')];}rows[_0xe267('0x32')](_0x3b6560);}));if(total%0xc8===0x0){_0x290a36[_0xe267('0x6c')]();return processPromises(_0x290a36);}},'complete':function(){return processPromises()['then'](function(){logger[_0xe267('0x6d')](_0xe267('0x6e'));endCsv();});},'error':function(_0x5990d5,_0x2cc618){logger[_0xe267('0x6d')](_0xe267('0x6f'),JSON[_0xe267('0x60')](_0x5990d5));endCsv();}});})[_0xe267('0x33')](function(_0x12107a){logger[_0xe267('0x14')](_0xe267('0x70'),JSON[_0xe267('0x60')](_0x12107a));});}main();