Built motion from commit cb845558.|2.6.34
[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 _0x879f=['findAll','outbound','dialCheckDuplicateType','CmList','Lists','get','always','VoiceQueueId','sequelize','query','all','Campaign','CampaignId','onlyIfOpen','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','resolve','Unable\x20to\x20delete\x20temp\x20file:','stringify','exit','SIGINT','CSV\x20import\x20process\x20stopped!','createReadStream','parse','pause','info','CSV\x20parsed\x20correctly!','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','socket.io-emitter','../../../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','errors','length','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','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','pick','catch','Error\x20while\x20creating\x20contact:\x20','message','cmContact','inspect','into','scheduledAt','ContactId','createdAt','updatedAt','select','field','NOW()','from','cm_contacts','where','deletedAt\x20IS\x20NULL','toString','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper','\x20=\x20?','fromQuery','ListId\x20=\x20?','id\x20IN\x20?','str','calleridnum','insert','cm_hopper_black','VoiceQueue'];(function(_0x427ef2,_0x1b1ede){var _0xa27e46=function(_0x11573b){while(--_0x11573b){_0x427ef2['push'](_0x427ef2['shift']());}};_0xa27e46(++_0x1b1ede);}(_0x879f,0x171));var _0xf879=function(_0x2c064c,_0x2e865d){_0x2c064c=_0x2c064c-0x0;var _0x2361ad=_0x879f[_0x2c064c];return _0x2361ad;};'use strict';var BPromise=require(_0xf879('0x0'));var util=require(_0xf879('0x1'));var _=require(_0xf879('0x2'));var fs=require('fs');var squel=require(_0xf879('0x3'));var Papa=require('papaparse');var Redis=require('ioredis');var db=require(_0xf879('0x4'))['db'];var config=require(_0xf879('0x5'));var logger=require(_0xf879('0x6'))('api');config[_0xf879('0x7')]=_[_0xf879('0x8')](config[_0xf879('0x7')],{'host':'localhost','port':0x18eb});var socket=require(_0xf879('0x9'))(new Redis(config[_0xf879('0x7')]));require(_0xf879('0xa'))[_0xf879('0xb')](socket);try{if(!process[_0xf879('0xc')][0x2]||process[_0xf879('0xc')][0x2]==='undefined'||process[_0xf879('0xc')][0x2]===_0xf879('0xd')){throw new Error(_0xf879('0xe'));}var FILEPATH=process['argv'][0x2];if(!process[_0xf879('0xc')][0x3]||process[_0xf879('0xc')][0x3]===_0xf879('0xf')||process['argv'][0x3]===_0xf879('0xd')||!process[_0xf879('0xc')][0x4]||process[_0xf879('0xc')][0x4]===_0xf879('0xf')||process[_0xf879('0xc')][0x4]==='null'){throw new Error(_0xf879('0x10'));}var FIELDS=_['zipObject'](process[_0xf879('0xc')][0x3][_0xf879('0x11')](','),process[_0xf879('0xc')][0x4]['split'](','));if(!process[_0xf879('0xc')][0x5]||process[_0xf879('0xc')][0x5]==='undefined'||process[_0xf879('0xc')][0x5]==='null'){throw new Error(_0xf879('0x12'));}var LISTID=process[_0xf879('0xc')][0x5];var COMPANYID=process[_0xf879('0xc')][0x6]&&process[_0xf879('0xc')][0x6]!==_0xf879('0xf')&&process[_0xf879('0xc')][0x6]!=='null'?process[_0xf879('0xc')][0x6]:null;var DUPLICATES=process[_0xf879('0xc')][0x7]&&process['argv'][0x7]!==_0xf879('0xf')&&process[_0xf879('0xc')][0x7]!==_0xf879('0xd')?process[_0xf879('0xc')][0x7]:null;if(!process[_0xf879('0xc')][0x8]||process[_0xf879('0xc')][0x8]===_0xf879('0xf')||process[_0xf879('0xc')][0x8]===_0xf879('0xd')){throw new Error(_0xf879('0x13'));}var SOCKET_TIMESTAMP=process[_0xf879('0xc')][0x8];}catch(_0x517d8d){logger[_0xf879('0x14')](_0x517d8d);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(_0x27a629,_0x5182d6,_0x4a0e17,_0x1f68c3){var _0x46ac3c={'message':_0x5182d6};_0x46ac3c[_0x27a629]=!![];if(_0x4a0e17){_0x46ac3c[_0xf879('0x15')]=_0x4a0e17;}if(_0x1f68c3){_0x46ac3c[_0xf879('0x16')]=_0x1f68c3;}return _0x46ac3c;}function isEmail(_0x351e06){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))*$/[_0xf879('0x17')](_0x351e06);}function checkRow(_0xd7e823,_0xc8e09d,_0x34fe68){return new BPromise(function(_0x1fdb49,_0x4bf5da){if(_['isNil'](_0xd7e823)){return _0x4bf5da(handleCheckRowError(_0xf879('0x14'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x34fe68));}if(_0xd7e823['errors']&&_0xd7e823[_0xf879('0x18')][_0xf879('0x19')]){var _0x2432eb=_['map'](_0xd7e823[_0xf879('0x18')],'message')[_0xf879('0x1a')](';');return _0x4bf5da(handleCheckRowError(_0xf879('0x14'),_0x2432eb,null,_0x34fe68));}var _0x3984e4={};for(var _0x4e28b2 in FIELDS){if(FIELDS[_0xf879('0x1b')](_0x4e28b2)&&FIELDS[_0x4e28b2]){_0x3984e4[_0x4e28b2]=_0xd7e823[_0xf879('0x1c')][0x0][FIELDS[_0x4e28b2]]||_0xd7e823['data'][0x0]['\ufeff'+FIELDS[_0x4e28b2]];}}if(!_0x3984e4[_0xf879('0x1d')]){return _0x4bf5da(handleCheckRowError('error',_0xf879('0x1e'),null,_0x34fe68));}if(!_0x3984e4[_0xf879('0x1f')]){return _0x4bf5da(handleCheckRowError(_0xf879('0x14'),_0xf879('0x20'),null,_0x34fe68));}if(_0x3984e4[_0xf879('0x21')]){var _0x541866=moment(_0x3984e4[_0xf879('0x21')],_0xf879('0x22'));if(!_0x541866['isValid']()){return _0x4bf5da(handleCheckRowError(_0xf879('0x14'),_0xf879('0x23'),null,_0x34fe68));}}if(_0x3984e4[_0xf879('0x24')]){if(!isEmail(_0x3984e4[_0xf879('0x24')])){return _0x4bf5da(handleCheckRowError(_0xf879('0x14'),_0xf879('0x25'),null,_0x34fe68));}}_0x3984e4[_0xf879('0x26')]=LISTID;_0x3984e4[_0xf879('0x27')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xf879('0x19')]&&_0xc8e09d){var _0x1aab8c={};for(var _0x2cbcd9=0x0,_0x55f21f=DUPLICATES[_0xf879('0x19')];_0x2cbcd9<_0x55f21f;_0x2cbcd9+=0x1){_0x1aab8c[DUPLICATES[_0x2cbcd9]]=_0x3984e4[DUPLICATES[_0x2cbcd9]];}var _0x8c8635=_[_0xf879('0x28')](_0xc8e09d,_0x1aab8c);if(_0x8c8635){return _0x4bf5da(handleCheckRowError(_0xf879('0x29'),_0xf879('0x2a'),_0x8c8635,_0x34fe68));}}return db[_0xf879('0x2b')][_0xf879('0x2c')](_0x3984e4,{'raw':!![],'hooks':![],'fields':_[_0xf879('0x2d')](_0x3984e4)})[_0xf879('0x2e')](function(_0x5173e7){if(DUPLICATES&&DUPLICATES[_0xf879('0x19')]&&_0xc8e09d){_0xc8e09d[_0xf879('0x2f')](_[_0xf879('0x30')](_0x3984e4,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x5173e7['id'];return _0x1fdb49();})[_0xf879('0x31')](function(_0x1ced83){return _0x4bf5da(handleCheckRowError('error',_0xf879('0x32')+(_0x1ced83[_0xf879('0x33')]||JSON['stringify'](_0x1ced83)),null,_0x34fe68));});});}function checkHopper(){function _0x59a4dd(){return function(_0x5b1d86){logger[_0xf879('0x14')](_0xf879('0x34'),'checkHopper',util[_0xf879('0x35')](_0x5b1d86,{'showHidden':![],'depth':null}));};}var _0x7fa301=function(_0x2e2e0d,_0x3b0446){var _0x3c91ce=squel['insert']()[_0xf879('0x36')]('cm_hopper')['fromQuery']([_0xf879('0x1f'),_0xf879('0x37'),_0xf879('0x38'),'ListId',_0x3b0446,_0xf879('0x39'),_0xf879('0x3a')],squel[_0xf879('0x3b')]()['field'](_0xf879('0x1f'),_0xf879('0x1f'))[_0xf879('0x3c')](_0xf879('0x3d'),_0xf879('0x37'))[_0xf879('0x3c')]('id',_0xf879('0x38'))[_0xf879('0x3c')](LISTID['toString'](),'ListId')[_0xf879('0x3c')](_0x2e2e0d['id']['toString'](),_0x3b0446)[_0xf879('0x3c')]('NOW()','createdAt')[_0xf879('0x3c')](_0xf879('0x3d'),_0xf879('0x3a'))[_0xf879('0x3e')](_0xf879('0x3f'))[_0xf879('0x40')](_0xf879('0x41'))[_0xf879('0x40')]('ListId\x20=\x20?',LISTID[_0xf879('0x42')]())[_0xf879('0x40')](_0xf879('0x43'))[_0xf879('0x40')](_0xf879('0x44'),squel[_0xf879('0x3b')]()[_0xf879('0x3c')](_0xf879('0x1f'))[_0xf879('0x3e')](_0xf879('0x45'))[_0xf879('0x40')](_0x3b0446+_0xf879('0x46'),_0x2e2e0d['id'][_0xf879('0x42')]())))[_0xf879('0x42')]();return _0x3c91ce;};var _0x529078=function(_0x2d8fb3,_0x36212c){var _0x394595=squel['insert']()[_0xf879('0x36')]('cm_hopper')[_0xf879('0x47')]([_0xf879('0x1f'),_0xf879('0x37'),'ContactId',_0xf879('0x26'),_0x36212c,_0xf879('0x39'),_0xf879('0x3a')],squel['select']()[_0xf879('0x3c')]('phone',_0xf879('0x1f'))[_0xf879('0x3c')]('NOW()','scheduledAt')[_0xf879('0x3c')]('id','ContactId')['field'](LISTID['toString'](),_0xf879('0x26'))[_0xf879('0x3c')](_0x2d8fb3['id'][_0xf879('0x42')](),_0x36212c)[_0xf879('0x3c')]('NOW()','createdAt')[_0xf879('0x3c')]('NOW()',_0xf879('0x3a'))[_0xf879('0x3e')](_0xf879('0x3f'))['where'](_0xf879('0x41'))[_0xf879('0x40')](_0xf879('0x48'),LISTID[_0xf879('0x42')]())[_0xf879('0x40')](_0xf879('0x49'),squel[_0xf879('0x4a')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL')[_0xf879('0x40')](_0xf879('0x44'),squel[_0xf879('0x3b')]()[_0xf879('0x3c')](_0xf879('0x4b'))['from']('cm_hopper_final')['where'](_0x36212c+_0xf879('0x46'),_0x2d8fb3['id'][_0xf879('0x42')]()))['where'](_0xf879('0x44'),squel[_0xf879('0x3b')]()[_0xf879('0x3c')](_0xf879('0x1f'))[_0xf879('0x3e')](_0xf879('0x45'))[_0xf879('0x40')](_0x36212c+_0xf879('0x46'),_0x2d8fb3['id'][_0xf879('0x42')]())))[_0xf879('0x42')]();return _0x394595;};function _0x580730(_0x4acfa7,_0x2a1c39){var _0x4a5c1c=squel[_0xf879('0x4c')]()[_0xf879('0x36')](_0xf879('0x45'))[_0xf879('0x47')](['phone',_0xf879('0x37'),_0xf879('0x38'),'ListId',_0x2a1c39,'createdAt',_0xf879('0x3a')],squel[_0xf879('0x3b')]()[_0xf879('0x3c')]('phone',_0xf879('0x1f'))['field']('NOW()','scheduledAt')[_0xf879('0x3c')]('id','ContactId')[_0xf879('0x3c')](LISTID[_0xf879('0x42')](),'ListId')['field'](_0x4acfa7['id'][_0xf879('0x42')](),_0x2a1c39)['field'](_0xf879('0x3d'),_0xf879('0x39'))[_0xf879('0x3c')](_0xf879('0x3d'),_0xf879('0x3a'))['from'](_0xf879('0x3f'))[_0xf879('0x40')](_0xf879('0x41'))[_0xf879('0x40')](_0xf879('0x48'),LISTID[_0xf879('0x42')]())[_0xf879('0x40')](_0xf879('0x49'),squel[_0xf879('0x4a')](hopperContacts))[_0xf879('0x40')](_0xf879('0x43')))[_0xf879('0x42')]();return _0x4a5c1c;}function _0x6585e2(_0x211a7b,_0x417b94){var _0x1585f4=squel[_0xf879('0x4c')]()['into'](_0xf879('0x4d'))[_0xf879('0x47')]([_0xf879('0x1f'),_0xf879('0x38'),_0xf879('0x26'),_0x417b94,_0xf879('0x39'),_0xf879('0x3a')],squel[_0xf879('0x3b')]()['field']('phone',_0xf879('0x1f'))[_0xf879('0x3c')]('id',_0xf879('0x38'))[_0xf879('0x3c')](LISTID[_0xf879('0x42')](),_0xf879('0x26'))[_0xf879('0x3c')](_0x211a7b['id'][_0xf879('0x42')](),_0x417b94)[_0xf879('0x3c')]('NOW()',_0xf879('0x39'))[_0xf879('0x3c')]('NOW()',_0xf879('0x3a'))[_0xf879('0x3e')](_0xf879('0x3f'))['where'](_0xf879('0x41'))[_0xf879('0x40')](_0xf879('0x48'),LISTID['toString']())[_0xf879('0x40')](_0xf879('0x49'),squel[_0xf879('0x4a')](hopperContacts))['where'](_0xf879('0x43')))['toString']();return _0x1585f4;}return db[_0xf879('0x4e')][_0xf879('0x4f')]({'where':{'type':_0xf879('0x50')},'attributes':['id',_0xf879('0x51')],'include':[{'model':db[_0xf879('0x52')],'as':_0xf879('0x53'),'where':{'id':LISTID}}]})[_0xf879('0x2e')](function(_0x5df461){var _0x19e2d2=[];if(_0x5df461){var _0x30a33f;for(var _0x4325c2=0x0,_0x199910;_0x4325c2<_0x5df461[_0xf879('0x19')];_0x4325c2+=0x1){_0x199910=_0x5df461[_0x4325c2][_0xf879('0x54')]({'plain':!![]});switch(_0x199910[_0xf879('0x51')]){case _0xf879('0x55'):_0x19e2d2[_0xf879('0x2f')](db['sequelize']['query'](_0x529078(_0x199910,_0xf879('0x56')))['then'](function(){})['catch'](_0x59a4dd()));break;case'onlyIfOpen':_0x19e2d2['push'](db[_0xf879('0x57')][_0xf879('0x58')](_0x7fa301(_0x199910,_0xf879('0x56')))['then'](function(){})[_0xf879('0x31')](_0x59a4dd()));break;default:_0x19e2d2['push'](db[_0xf879('0x57')][_0xf879('0x58')](_0x580730(_0x199910,'VoiceQueueId'))[_0xf879('0x2e')](function(){})[_0xf879('0x31')](_0x59a4dd()));}}}return _0x19e2d2;})[_0xf879('0x59')]()['then'](function(){return db[_0xf879('0x4e')]['findAll']({'where':{'type':_0xf879('0x50')},'attributes':['id'],'include':[{'model':db[_0xf879('0x52')],'as':'BlackLists','where':{'id':LISTID}}]})['then'](function(_0x309fe9){var _0x15cfb4=[];if(_0x309fe9){var _0x5acd63;for(var _0x53a852=0x0,_0x54c60b;_0x53a852<_0x309fe9[_0xf879('0x19')];_0x53a852+=0x1){_0x54c60b=_0x309fe9[_0x53a852][_0xf879('0x54')]({'plain':!![]});_0x15cfb4[_0xf879('0x2f')](db[_0xf879('0x57')][_0xf879('0x58')](_0x6585e2(_0x54c60b,'VoiceQueueId'))['then'](function(){})[_0xf879('0x31')](_0x59a4dd()));}}return _0x15cfb4;})[_0xf879('0x59')]();})[_0xf879('0x2e')](function(){return db[_0xf879('0x5a')]['findAll']({'attributes':['id',_0xf879('0x51')],'include':[{'model':db[_0xf879('0x52')],'as':_0xf879('0x53'),'where':{'id':LISTID}}]})[_0xf879('0x2e')](function(_0x151d00){var _0x2a0239=[];if(_0x151d00){for(var _0x2cf37f=0x0,_0x290b17;_0x2cf37f<_0x151d00['length'];_0x2cf37f+=0x1){_0x290b17=_0x151d00[_0x2cf37f]['get']({'plain':!![]});switch(_0x290b17[_0xf879('0x51')]){case'always':_0x2a0239[_0xf879('0x2f')](db[_0xf879('0x57')][_0xf879('0x58')](_0x529078(_0x290b17,_0xf879('0x5b')))[_0xf879('0x2e')](function(){})['catch'](_0x59a4dd()));break;case _0xf879('0x5c'):_0x2a0239[_0xf879('0x2f')](db[_0xf879('0x57')][_0xf879('0x58')](_0x7fa301(_0x290b17,_0xf879('0x5b')))[_0xf879('0x2e')](function(){})[_0xf879('0x31')](_0x59a4dd()));break;default:_0x2a0239[_0xf879('0x2f')](db[_0xf879('0x57')][_0xf879('0x58')](_0x580730(_0x290b17,'CampaignId'))[_0xf879('0x2e')](function(){})[_0xf879('0x31')](_0x59a4dd()));}}}return _0x2a0239;})[_0xf879('0x59')]();})[_0xf879('0x2e')](function(){return db[_0xf879('0x5a')]['findAll']({'attributes':['id'],'include':[{'model':db[_0xf879('0x52')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xf879('0x2e')](function(_0x2491eb){var _0x428633=[];if(_0x2491eb){for(var _0x16c98d=0x0,_0xfb0647;_0x16c98d<_0x2491eb['length'];_0x16c98d+=0x1){_0xfb0647=_0x2491eb[_0x16c98d][_0xf879('0x54')]({'plain':!![]});_0x428633[_0xf879('0x2f')](db[_0xf879('0x57')][_0xf879('0x58')](_0x6585e2(_0xfb0647,_0xf879('0x5b')))[_0xf879('0x2e')](function(){})['catch'](_0x59a4dd()));}}return _0x428633;})[_0xf879('0x59')]();})[_0xf879('0x31')](function(_0x5418e3){logger['error'](_0xf879('0x5d'),_0xf879('0x5e'),_0x5418e3[_0xf879('0x33')]);});}var processPromises=function(_0x166a18){return BPromise[_0xf879('0x59')](promises)[_0xf879('0x2e')](function(_0x664d61){})[_0xf879('0x31')](function(_0x296fd4){logger['error'](_0xf879('0x5f'),JSON['stringify'](_0x296fd4));})[_0xf879('0x60')](function(){socket[_0xf879('0x61')](_0xf879('0x62')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x166a18){return _0x166a18[_0xf879('0x63')]();}});};var endCsv=function(){return BPromise[_0xf879('0x64')]()['then'](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0xf879('0x61')](_0xf879('0x62')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x46849a){logger[_0xf879('0x14')](_0xf879('0x65'),JSON[_0xf879('0x66')](_0x46849a));}finally{process[_0xf879('0x67')](0x0);}});};process['on'](_0xf879('0x68'),function(){logger['info'](_0xf879('0x69'));endCsv();});function main(){return BPromise[_0xf879('0x64')]()[_0xf879('0x2e')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db['CmContact'][_0xf879('0x4f')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xf879('0x2e')](function(_0x2d9463){var _0x3bc121=fs[_0xf879('0x6a')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xf879('0x6b')](_0x3bc121,{'header':!![],'skipEmptyLines':!![],'step':function(_0x244113,_0x3f9fe8){total+=0x1;var _0x23065c=total;promises['push'](checkRow(_0x244113,_0x2d9463,_0x23065c)[_0xf879('0x2e')](function(){success+=0x1;})[_0xf879('0x31')](function(_0x5e6d11){if(_0x5e6d11['error']){errors+=0x1;delete _0x5e6d11[_0xf879('0x14')];}else if(_0x5e6d11[_0xf879('0x29')]){duplicates+=0x1;delete _0x5e6d11[_0xf879('0x29')];}rows['push'](_0x5e6d11);}));if(total%0xc8===0x0){_0x3f9fe8[_0xf879('0x6c')]();return processPromises(_0x3f9fe8);}},'complete':function(){return processPromises()[_0xf879('0x2e')](function(){logger[_0xf879('0x6d')](_0xf879('0x6e'));endCsv();});},'error':function(_0x3c83f5,_0x2c0c82){logger[_0xf879('0x6d')]('CSV\x20parse\x20error',JSON['stringify'](_0x3c83f5));endCsv();}});})['catch'](function(_0x21cb06){logger[_0xf879('0x14')](_0xf879('0x6f'),JSON['stringify'](_0x21cb06));});}main();