Built motion from commit (unavailable).|2.5.31
[motion2.git] / server / api / intSugarcrmConfiguration / intSugarcrmConfiguration.controller.js
index e1adb19..7043254 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x2fd0=['filter','merge','VIRTUAL','options','SugarcrmConfiguration','includeAll','findAll','show','include','find','create','body','params','getFields','SugarcrmField','findOne','pick','getSubjects','hasOwnProperty','getDescriptions','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','request','then','info','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','SugarcrmConfiguration,\x20%s,\x20%s','message','request\x20sent','result','catch','end','json','count','offset','limit','status','set','Content-Range','apply','reject','save','update','destroy','sendStatus','stack','name','send','map','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where'];(function(_0x1cf46e,_0xb30477){var _0x38548d=function(_0x2f6249){while(--_0x2f6249){_0x1cf46e['push'](_0x1cf46e['shift']());}};_0x38548d(++_0xb30477);}(_0x2fd0,0x73));var _0x02fd=function(_0x187bb2,_0x2f59bf){_0x187bb2=_0x187bb2-0x0;var _0x4af854=_0x2fd0[_0x187bb2];return _0x4af854;};'use strict';var pdf=require(_0x02fd('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x02fd('0x1'));var zipdir=require(_0x02fd('0x2'));var jsonpatch=require(_0x02fd('0x3'));var rp=require(_0x02fd('0x4'));var moment=require(_0x02fd('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x02fd('0x6'));var path=require(_0x02fd('0x7'));var sox=require(_0x02fd('0x8'));var csv=require(_0x02fd('0x9'));var ejs=require(_0x02fd('0xa'));var fs=require('fs');var _=require(_0x02fd('0xb'));var squel=require(_0x02fd('0xc'));var crypto=require(_0x02fd('0xd'));var jsforce=require(_0x02fd('0xe'));var deskjs=require(_0x02fd('0xf'));var toCsv=require(_0x02fd('0x9'));var querystring=require(_0x02fd('0x10'));var Papa=require(_0x02fd('0x11'));var Redis=require(_0x02fd('0x12'));var authService=require(_0x02fd('0x13'));var qs=require(_0x02fd('0x14'));var as=require(_0x02fd('0x15'));var hardwareService=require(_0x02fd('0x16'));var logger=require(_0x02fd('0x17'))(_0x02fd('0x18'));var utils=require(_0x02fd('0x19'));var config=require(_0x02fd('0x1a'));var licenseUtil=require(_0x02fd('0x1b'));var db=require('../../mysqldb')['db'];var jayson=require(_0x02fd('0x1c'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x39381a,_0x1b9a2d,_0x563cc8,_0xe95a44){return new BPromise(function(_0x4da0d6,_0x1c9fc5){var _0x297ffa=_0xe95a44||client;return _0x297ffa[_0x02fd('0x1d')](_0x39381a,_0x563cc8)[_0x02fd('0x1e')](function(_0xa7c25c){logger[_0x02fd('0x1f')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x1b9a2d,'request\x20sent');logger[_0x02fd('0x20')](_0x02fd('0x21'),_0x1b9a2d,'request\x20sent',JSON[_0x02fd('0x22')](_0xa7c25c));if(_0xa7c25c[_0x02fd('0x23')]){if(_0xa7c25c['error'][_0x02fd('0x24')]===0x1f4){logger[_0x02fd('0x23')](_0x02fd('0x25'),_0x1b9a2d,_0xa7c25c['error'][_0x02fd('0x26')]);return _0x1c9fc5(_0xa7c25c['error'][_0x02fd('0x26')]);}logger[_0x02fd('0x23')](_0x02fd('0x25'),_0x1b9a2d,_0xa7c25c[_0x02fd('0x23')][_0x02fd('0x26')]);return _0x4da0d6(_0xa7c25c['error'][_0x02fd('0x26')]);}else{logger['info'](_0x02fd('0x25'),_0x1b9a2d,_0x02fd('0x27'));_0x4da0d6(_0xa7c25c[_0x02fd('0x28')][_0x02fd('0x26')]);}})[_0x02fd('0x29')](function(_0x4f8bc5){logger[_0x02fd('0x23')](_0x02fd('0x25'),_0x1b9a2d,_0x4f8bc5);_0x1c9fc5(_0x4f8bc5);});});}function respondWithStatusCode(_0x3aaf18,_0x3d1a36){_0x3d1a36=_0x3d1a36||0xcc;return function(_0x1303a0){if(_0x1303a0){return _0x3aaf18['sendStatus'](_0x3d1a36);}return _0x3aaf18['status'](_0x3d1a36)[_0x02fd('0x2a')]();};}function respondWithResult(_0x4ac409,_0x5b07ac){_0x5b07ac=_0x5b07ac||0xc8;return function(_0x36b828){if(_0x36b828){return _0x4ac409['status'](_0x5b07ac)[_0x02fd('0x2b')](_0x36b828);}};}function respondWithFilteredResult(_0x3fe908,_0x2d7ca2){return function(_0x309b1e){if(_0x309b1e){var _0x3574d8=_0x309b1e[_0x02fd('0x2c')],_0x3cda5f=_0x2d7ca2['offset'],_0x3acb1d=_0x2d7ca2[_0x02fd('0x2d')]+_0x2d7ca2[_0x02fd('0x2e')],_0xc3819;if(_0x3acb1d>=_0x3574d8){_0x3acb1d=_0x3574d8;_0xc3819=0xc8;}else{_0xc3819=0xce;}_0x3fe908[_0x02fd('0x2f')](_0xc3819);return _0x3fe908[_0x02fd('0x30')](_0x02fd('0x31'),_0x3cda5f+'-'+_0x3acb1d+'/'+_0x3574d8)['json'](_0x309b1e);}return null;};}function patchUpdates(_0x4848af){return function(_0x499ab0){try{jsonpatch[_0x02fd('0x32')](_0x499ab0,_0x4848af,!![]);}catch(_0x2dad8c){return BPromise[_0x02fd('0x33')](_0x2dad8c);}return _0x499ab0[_0x02fd('0x34')]();};}function saveUpdates(_0x11e286,_0x32903c){return function(_0x3b6c2e){if(_0x3b6c2e){return _0x3b6c2e[_0x02fd('0x35')](_0x11e286)[_0x02fd('0x1e')](function(_0x1d1da9){return _0x1d1da9;});}return null;};}function removeEntity(_0x76572b,_0x26b2e6){return function(_0x1d3c02){if(_0x1d3c02){return _0x1d3c02[_0x02fd('0x36')]()[_0x02fd('0x1e')](function(){_0x76572b['status'](0xcc)[_0x02fd('0x2a')]();});}};}function handleEntityNotFound(_0x56555a,_0x1fdfe1){return function(_0x311359){if(!_0x311359){_0x56555a[_0x02fd('0x37')](0x194);}return _0x311359;};}function handleError(_0x2763da,_0x15cac7){_0x15cac7=_0x15cac7||0x1f4;return function(_0x232b5b){logger[_0x02fd('0x23')](_0x232b5b[_0x02fd('0x38')]);if(_0x232b5b[_0x02fd('0x39')]){delete _0x232b5b[_0x02fd('0x39')];}_0x2763da[_0x02fd('0x2f')](_0x15cac7)[_0x02fd('0x3a')](_0x232b5b);};}exports['index']=function(_0x36c478,_0x5c9489){var _0x4e115d={},_0x251870={},_0x425b05={'count':0x0,'rows':[]};var _0xbbdda=_[_0x02fd('0x3b')](db['SugarcrmConfiguration'][_0x02fd('0x3c')],function(_0x90eed3){return{'name':_0x90eed3['fieldName'],'type':_0x90eed3[_0x02fd('0x3d')][_0x02fd('0x3e')]};});_0x251870[_0x02fd('0x3f')]=_['map'](_0xbbdda,'name');_0x251870[_0x02fd('0x40')]=_[_0x02fd('0x41')](_0x36c478['query']);_0x251870[_0x02fd('0x42')]=_['intersection'](_0x251870[_0x02fd('0x3f')],_0x251870[_0x02fd('0x40')]);_0x4e115d['attributes']=_[_0x02fd('0x43')](_0x251870[_0x02fd('0x3f')],qs[_0x02fd('0x44')](_0x36c478[_0x02fd('0x40')][_0x02fd('0x44')]));_0x4e115d[_0x02fd('0x45')]=_0x4e115d[_0x02fd('0x45')][_0x02fd('0x46')]?_0x4e115d[_0x02fd('0x45')]:_0x251870['model'];if(!_0x36c478[_0x02fd('0x40')]['hasOwnProperty'](_0x02fd('0x47'))){_0x4e115d[_0x02fd('0x2e')]=qs[_0x02fd('0x2e')](_0x36c478[_0x02fd('0x40')][_0x02fd('0x2e')]);_0x4e115d[_0x02fd('0x2d')]=qs['offset'](_0x36c478['query']['offset']);}_0x4e115d[_0x02fd('0x48')]=qs[_0x02fd('0x49')](_0x36c478[_0x02fd('0x40')][_0x02fd('0x49')]);_0x4e115d[_0x02fd('0x4a')]=qs[_0x02fd('0x42')](_['pick'](_0x36c478['query'],_0x251870[_0x02fd('0x42')]),_0xbbdda);if(_0x36c478[_0x02fd('0x40')][_0x02fd('0x4b')]){_0x4e115d[_0x02fd('0x4a')]=_[_0x02fd('0x4c')](_0x4e115d[_0x02fd('0x4a')],{'$or':_[_0x02fd('0x3b')](_0xbbdda,function(_0x544ec0){if(_0x544ec0[_0x02fd('0x3d')]!==_0x02fd('0x4d')){var _0x2133fb={};_0x2133fb[_0x544ec0[_0x02fd('0x39')]]={'$like':'%'+_0x36c478[_0x02fd('0x40')][_0x02fd('0x4b')]+'%'};return _0x2133fb;}})});}_0x4e115d=_[_0x02fd('0x4c')]({},_0x4e115d,_0x36c478[_0x02fd('0x4e')]);var _0x2cfbe9={'where':_0x4e115d[_0x02fd('0x4a')]};return db[_0x02fd('0x4f')][_0x02fd('0x2c')](_0x2cfbe9)[_0x02fd('0x1e')](function(_0x40f029){_0x425b05[_0x02fd('0x2c')]=_0x40f029;if(_0x36c478[_0x02fd('0x40')][_0x02fd('0x50')]){_0x4e115d['include']=[{'all':!![]}];}return db[_0x02fd('0x4f')][_0x02fd('0x51')](_0x4e115d);})['then'](function(_0x5f5ac6){_0x425b05['rows']=_0x5f5ac6;return _0x425b05;})[_0x02fd('0x1e')](respondWithFilteredResult(_0x5c9489,_0x4e115d))[_0x02fd('0x29')](handleError(_0x5c9489,null));};exports[_0x02fd('0x52')]=function(_0x14e5e6,_0x59923f){var _0x17e75a={'raw':![],'where':{'id':_0x14e5e6['params']['id']}},_0x5746c5={};_0x5746c5[_0x02fd('0x3f')]=_['keys'](db[_0x02fd('0x4f')][_0x02fd('0x3c')]);_0x5746c5['query']=_[_0x02fd('0x41')](_0x14e5e6['query']);_0x5746c5[_0x02fd('0x42')]=_[_0x02fd('0x43')](_0x5746c5['model'],_0x5746c5[_0x02fd('0x40')]);_0x17e75a[_0x02fd('0x45')]=_['intersection'](_0x5746c5[_0x02fd('0x3f')],qs[_0x02fd('0x44')](_0x14e5e6[_0x02fd('0x40')][_0x02fd('0x44')]));_0x17e75a[_0x02fd('0x45')]=_0x17e75a[_0x02fd('0x45')][_0x02fd('0x46')]?_0x17e75a[_0x02fd('0x45')]:_0x5746c5[_0x02fd('0x3f')];if(_0x14e5e6[_0x02fd('0x40')][_0x02fd('0x50')]){_0x17e75a[_0x02fd('0x53')]=[{'all':!![]}];}_0x17e75a=_[_0x02fd('0x4c')]({},_0x17e75a,_0x14e5e6[_0x02fd('0x4e')]);return db[_0x02fd('0x4f')][_0x02fd('0x54')](_0x17e75a)[_0x02fd('0x1e')](handleEntityNotFound(_0x59923f,null))['then'](respondWithResult(_0x59923f,null))['catch'](handleError(_0x59923f,null));};exports[_0x02fd('0x55')]=function(_0x40afb1,_0x234f32){return db['SugarcrmConfiguration'][_0x02fd('0x55')](_0x40afb1[_0x02fd('0x56')],{})['then'](respondWithResult(_0x234f32,0xc9))['catch'](handleError(_0x234f32,null));};exports[_0x02fd('0x35')]=function(_0x506088,_0x367da5){if(_0x506088[_0x02fd('0x56')]['id']){delete _0x506088[_0x02fd('0x56')]['id'];}return db[_0x02fd('0x4f')][_0x02fd('0x54')]({'where':{'id':_0x506088[_0x02fd('0x57')]['id']}})[_0x02fd('0x1e')](handleEntityNotFound(_0x367da5,null))[_0x02fd('0x1e')](saveUpdates(_0x506088[_0x02fd('0x56')],null))[_0x02fd('0x1e')](respondWithResult(_0x367da5,null))['catch'](handleError(_0x367da5,null));};exports[_0x02fd('0x36')]=function(_0x3f317e,_0x50ce34){return db[_0x02fd('0x4f')]['find']({'where':{'id':_0x3f317e[_0x02fd('0x57')]['id']}})['then'](handleEntityNotFound(_0x50ce34,null))[_0x02fd('0x1e')](removeEntity(_0x50ce34,null))[_0x02fd('0x29')](handleError(_0x50ce34,null));};exports[_0x02fd('0x58')]=function(_0x4520cd,_0x1b3921,_0x2ebd11){var _0x469f3d={};var _0x46d6a2={};var _0x28be5b;var _0x3d461f;return db[_0x02fd('0x4f')]['findOne']({'where':{'id':_0x4520cd[_0x02fd('0x57')]['id']}})[_0x02fd('0x1e')](handleEntityNotFound(_0x1b3921,null))[_0x02fd('0x1e')](function(_0x3b3a8e){if(_0x3b3a8e){_0x28be5b=_0x3b3a8e;_0x46d6a2[_0x02fd('0x3f')]=_[_0x02fd('0x41')](db[_0x02fd('0x59')][_0x02fd('0x3c')]);_0x46d6a2['query']=_['keys'](_0x4520cd['query']);_0x46d6a2[_0x02fd('0x42')]=_[_0x02fd('0x43')](_0x46d6a2[_0x02fd('0x3f')],_0x46d6a2['query']);_0x469f3d[_0x02fd('0x45')]=_[_0x02fd('0x43')](_0x46d6a2[_0x02fd('0x3f')],qs['fields'](_0x4520cd[_0x02fd('0x40')][_0x02fd('0x44')]));_0x469f3d[_0x02fd('0x45')]=_0x469f3d[_0x02fd('0x45')][_0x02fd('0x46')]?_0x469f3d[_0x02fd('0x45')]:_0x46d6a2[_0x02fd('0x3f')];_0x469f3d[_0x02fd('0x48')]=qs[_0x02fd('0x49')](_0x4520cd[_0x02fd('0x40')][_0x02fd('0x49')]);_0x469f3d['where']=qs[_0x02fd('0x42')](_['pick'](_0x4520cd['query'],_0x46d6a2['filters']));if(_0x4520cd[_0x02fd('0x40')]['filter']){_0x469f3d['where']=_[_0x02fd('0x4c')](_0x469f3d[_0x02fd('0x4a')],{'$or':_['map'](_0x469f3d['attributes'],function(_0x35350a){var _0x4f5165={};_0x4f5165[_0x35350a]={'$like':'%'+_0x4520cd[_0x02fd('0x40')][_0x02fd('0x4b')]+'%'};return _0x4f5165;})});}_0x469f3d=_[_0x02fd('0x4c')]({},_0x469f3d,_0x4520cd['options']);return _0x28be5b[_0x02fd('0x58')](_0x469f3d);}})[_0x02fd('0x1e')](function(_0x3a2891){if(_0x3a2891){_0x3d461f=_0x3a2891[_0x02fd('0x46')];if(!_0x4520cd[_0x02fd('0x40')]['hasOwnProperty'](_0x02fd('0x47'))){_0x469f3d[_0x02fd('0x2e')]=qs[_0x02fd('0x2e')](_0x4520cd[_0x02fd('0x40')][_0x02fd('0x2e')]);_0x469f3d[_0x02fd('0x2d')]=qs['offset'](_0x4520cd[_0x02fd('0x40')]['offset']);}return _0x28be5b[_0x02fd('0x58')](_0x469f3d);}})[_0x02fd('0x1e')](function(_0x45859b){if(_0x45859b){return _0x45859b?{'count':_0x3d461f,'rows':_0x45859b}:null;}})['then'](respondWithResult(_0x1b3921,null))[_0x02fd('0x29')](handleError(_0x1b3921,null));};exports['getSubjects']=function(_0x4d0f13,_0xfab216,_0x4b298f){var _0x350ecb={};var _0x1d519f={};var _0x112f63;var _0x4d8ca5;return db[_0x02fd('0x4f')][_0x02fd('0x5a')]({'where':{'id':_0x4d0f13[_0x02fd('0x57')]['id']}})[_0x02fd('0x1e')](handleEntityNotFound(_0xfab216,null))['then'](function(_0x19dd11){if(_0x19dd11){_0x112f63=_0x19dd11;_0x1d519f['model']=_[_0x02fd('0x41')](db[_0x02fd('0x59')][_0x02fd('0x3c')]);_0x1d519f[_0x02fd('0x40')]=_[_0x02fd('0x41')](_0x4d0f13[_0x02fd('0x40')]);_0x1d519f[_0x02fd('0x42')]=_['intersection'](_0x1d519f[_0x02fd('0x3f')],_0x1d519f[_0x02fd('0x40')]);_0x350ecb[_0x02fd('0x45')]=_['intersection'](_0x1d519f[_0x02fd('0x3f')],qs['fields'](_0x4d0f13[_0x02fd('0x40')][_0x02fd('0x44')]));_0x350ecb[_0x02fd('0x45')]=_0x350ecb[_0x02fd('0x45')][_0x02fd('0x46')]?_0x350ecb[_0x02fd('0x45')]:_0x1d519f['model'];_0x350ecb[_0x02fd('0x48')]=qs[_0x02fd('0x49')](_0x4d0f13['query'][_0x02fd('0x49')]);_0x350ecb[_0x02fd('0x4a')]=qs['filters'](_[_0x02fd('0x5b')](_0x4d0f13[_0x02fd('0x40')],_0x1d519f['filters']));if(_0x4d0f13[_0x02fd('0x40')]['filter']){_0x350ecb[_0x02fd('0x4a')]=_[_0x02fd('0x4c')](_0x350ecb['where'],{'$or':_[_0x02fd('0x3b')](_0x350ecb[_0x02fd('0x45')],function(_0x7a8902){var _0x28b459={};_0x28b459[_0x7a8902]={'$like':'%'+_0x4d0f13[_0x02fd('0x40')][_0x02fd('0x4b')]+'%'};return _0x28b459;})});}_0x350ecb=_[_0x02fd('0x4c')]({},_0x350ecb,_0x4d0f13['options']);return _0x112f63[_0x02fd('0x5c')](_0x350ecb);}})[_0x02fd('0x1e')](function(_0xf84a1){if(_0xf84a1){_0x4d8ca5=_0xf84a1[_0x02fd('0x46')];if(!_0x4d0f13['query'][_0x02fd('0x5d')]('nolimit')){_0x350ecb[_0x02fd('0x2e')]=qs['limit'](_0x4d0f13[_0x02fd('0x40')]['limit']);_0x350ecb['offset']=qs[_0x02fd('0x2d')](_0x4d0f13[_0x02fd('0x40')]['offset']);}return _0x112f63[_0x02fd('0x5c')](_0x350ecb);}})[_0x02fd('0x1e')](function(_0x40e90e){if(_0x40e90e){return _0x40e90e?{'count':_0x4d8ca5,'rows':_0x40e90e}:null;}})[_0x02fd('0x1e')](respondWithResult(_0xfab216,null))['catch'](handleError(_0xfab216,null));};exports[_0x02fd('0x5e')]=function(_0x32f309,_0x55d827,_0x15d2a4){var _0x3a0fc6={};var _0x3555a0={};var _0x3b13e0;var _0x4cc846;return db['SugarcrmConfiguration']['findOne']({'where':{'id':_0x32f309[_0x02fd('0x57')]['id']}})[_0x02fd('0x1e')](handleEntityNotFound(_0x55d827,null))['then'](function(_0x249cf7){if(_0x249cf7){_0x3b13e0=_0x249cf7;_0x3555a0[_0x02fd('0x3f')]=_['keys'](db[_0x02fd('0x59')]['rawAttributes']);_0x3555a0[_0x02fd('0x40')]=_[_0x02fd('0x41')](_0x32f309[_0x02fd('0x40')]);_0x3555a0[_0x02fd('0x42')]=_[_0x02fd('0x43')](_0x3555a0[_0x02fd('0x3f')],_0x3555a0['query']);_0x3a0fc6[_0x02fd('0x45')]=_[_0x02fd('0x43')](_0x3555a0[_0x02fd('0x3f')],qs['fields'](_0x32f309[_0x02fd('0x40')][_0x02fd('0x44')]));_0x3a0fc6[_0x02fd('0x45')]=_0x3a0fc6[_0x02fd('0x45')][_0x02fd('0x46')]?_0x3a0fc6[_0x02fd('0x45')]:_0x3555a0[_0x02fd('0x3f')];_0x3a0fc6[_0x02fd('0x48')]=qs[_0x02fd('0x49')](_0x32f309[_0x02fd('0x40')]['sort']);_0x3a0fc6[_0x02fd('0x4a')]=qs['filters'](_[_0x02fd('0x5b')](_0x32f309[_0x02fd('0x40')],_0x3555a0[_0x02fd('0x42')]));if(_0x32f309['query'][_0x02fd('0x4b')]){_0x3a0fc6['where']=_[_0x02fd('0x4c')](_0x3a0fc6[_0x02fd('0x4a')],{'$or':_[_0x02fd('0x3b')](_0x3a0fc6[_0x02fd('0x45')],function(_0x2f4d31){var _0x4ce0a0={};_0x4ce0a0[_0x2f4d31]={'$like':'%'+_0x32f309['query'][_0x02fd('0x4b')]+'%'};return _0x4ce0a0;})});}_0x3a0fc6=_['merge']({},_0x3a0fc6,_0x32f309[_0x02fd('0x4e')]);return _0x3b13e0[_0x02fd('0x5e')](_0x3a0fc6);}})[_0x02fd('0x1e')](function(_0x1829f9){if(_0x1829f9){_0x4cc846=_0x1829f9['length'];if(!_0x32f309[_0x02fd('0x40')][_0x02fd('0x5d')](_0x02fd('0x47'))){_0x3a0fc6[_0x02fd('0x2e')]=qs[_0x02fd('0x2e')](_0x32f309['query'][_0x02fd('0x2e')]);_0x3a0fc6[_0x02fd('0x2d')]=qs[_0x02fd('0x2d')](_0x32f309[_0x02fd('0x40')][_0x02fd('0x2d')]);}return _0x3b13e0[_0x02fd('0x5e')](_0x3a0fc6);}})[_0x02fd('0x1e')](function(_0x448760){if(_0x448760){return _0x448760?{'count':_0x4cc846,'rows':_0x448760}:null;}})[_0x02fd('0x1e')](respondWithResult(_0x55d827,null))[_0x02fd('0x29')](handleError(_0x55d827,null));};
\ No newline at end of file
+var _0xa85a=['filter','merge','options','SugarcrmConfiguration','includeAll','include','findAll','show','params','find','create','body','destroy','getFields','findOne','SugarcrmField','rawAttributes','order','getSubjects','getDescriptions','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','then','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','sendStatus','stack','name','send','index','map','fieldName','type','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filters'];(function(_0x2f1971,_0x252cdf){var _0x452759=function(_0x5e516c){while(--_0x5e516c){_0x2f1971['push'](_0x2f1971['shift']());}};_0x452759(++_0x252cdf);}(_0xa85a,0xcc));var _0xaa85=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0xa85a[_0x4f9b18];return _0x29f20c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xaa85('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xaa85('0x1'));var rp=require(_0xaa85('0x2'));var moment=require(_0xaa85('0x3'));var BPromise=require(_0xaa85('0x4'));var Mustache=require(_0xaa85('0x5'));var util=require(_0xaa85('0x6'));var path=require(_0xaa85('0x7'));var sox=require(_0xaa85('0x8'));var csv=require(_0xaa85('0x9'));var ejs=require(_0xaa85('0xa'));var fs=require('fs');var fs_extra=require(_0xaa85('0xb'));var _=require(_0xaa85('0xc'));var squel=require(_0xaa85('0xd'));var crypto=require(_0xaa85('0xe'));var jsforce=require(_0xaa85('0xf'));var deskjs=require(_0xaa85('0x10'));var toCsv=require(_0xaa85('0x9'));var querystring=require(_0xaa85('0x11'));var Papa=require(_0xaa85('0x12'));var Redis=require(_0xaa85('0x13'));var authService=require(_0xaa85('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xaa85('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xaa85('0x16'))('api');var utils=require(_0xaa85('0x17'));var config=require(_0xaa85('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xaa85('0x19'))['db'];var jayson=require(_0xaa85('0x1a'));var client=jayson[_0xaa85('0x1b')][_0xaa85('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x1fa337,_0x1cec5e,_0x4fa82c,_0x32fdda){return new BPromise(function(_0xcfad4b,_0x2ae251){var _0x33824a=_0x32fdda||client;return _0x33824a['request'](_0x1fa337,_0x4fa82c)[_0xaa85('0x1d')](function(_0x208ec9){logger[_0xaa85('0x1e')](_0xaa85('0x1f'),_0x1cec5e,_0xaa85('0x20'));logger['debug'](_0xaa85('0x21'),_0x1cec5e,_0xaa85('0x20'),JSON[_0xaa85('0x22')](_0x208ec9));if(_0x208ec9[_0xaa85('0x23')]){if(_0x208ec9[_0xaa85('0x23')][_0xaa85('0x24')]===0x1f4){logger['error']('SugarcrmConfiguration,\x20%s,\x20%s',_0x1cec5e,_0x208ec9['error'][_0xaa85('0x25')]);return _0x2ae251(_0x208ec9[_0xaa85('0x23')][_0xaa85('0x25')]);}logger[_0xaa85('0x23')](_0xaa85('0x1f'),_0x1cec5e,_0x208ec9[_0xaa85('0x23')]['message']);return _0xcfad4b(_0x208ec9[_0xaa85('0x23')][_0xaa85('0x25')]);}else{logger[_0xaa85('0x1e')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x1cec5e,_0xaa85('0x20'));_0xcfad4b(_0x208ec9[_0xaa85('0x26')][_0xaa85('0x25')]);}})[_0xaa85('0x27')](function(_0x581bc4){logger[_0xaa85('0x23')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x1cec5e,_0x581bc4);_0x2ae251(_0x581bc4);});});}function respondWithStatusCode(_0x4ef879,_0x38129d){_0x38129d=_0x38129d||0xcc;return function(_0x383aac){if(_0x383aac){return _0x4ef879['sendStatus'](_0x38129d);}return _0x4ef879[_0xaa85('0x28')](_0x38129d)[_0xaa85('0x29')]();};}function respondWithResult(_0x50f537,_0x1a1476){_0x1a1476=_0x1a1476||0xc8;return function(_0x4e01d5){if(_0x4e01d5){return _0x50f537[_0xaa85('0x28')](_0x1a1476)[_0xaa85('0x2a')](_0x4e01d5);}};}function respondWithFilteredResult(_0x247b7a,_0x5731e2){return function(_0x3b7453){if(_0x3b7453){var _0x35fb0e=typeof _0x5731e2[_0xaa85('0x2b')]===_0xaa85('0x2c')&&typeof _0x5731e2[_0xaa85('0x2d')]===_0xaa85('0x2c');var _0x571552=_0x3b7453[_0xaa85('0x2e')];var _0x18f9e9=_0x35fb0e?0x0:_0x5731e2[_0xaa85('0x2b')];var _0x4b966a=_0x35fb0e?_0x3b7453[_0xaa85('0x2e')]:_0x5731e2[_0xaa85('0x2b')]+_0x5731e2[_0xaa85('0x2d')];var _0x1282fe;if(_0x4b966a>=_0x571552){_0x4b966a=_0x571552;_0x1282fe=0xc8;}else{_0x1282fe=0xce;}_0x247b7a[_0xaa85('0x28')](_0x1282fe);return _0x247b7a[_0xaa85('0x2f')](_0xaa85('0x30'),_0x18f9e9+'-'+_0x4b966a+'/'+_0x571552)[_0xaa85('0x2a')](_0x3b7453);}return null;};}function patchUpdates(_0x4501c2){return function(_0x178ef2){try{jsonpatch[_0xaa85('0x31')](_0x178ef2,_0x4501c2,!![]);}catch(_0x32188b){return BPromise['reject'](_0x32188b);}return _0x178ef2[_0xaa85('0x32')]();};}function saveUpdates(_0x122c2f,_0x521c29){return function(_0x3fa604){if(_0x3fa604){return _0x3fa604['update'](_0x122c2f)[_0xaa85('0x1d')](function(_0x5c31a2){return _0x5c31a2;});}return null;};}function removeEntity(_0x17a13c,_0x27b51f){return function(_0x813ed9){if(_0x813ed9){return _0x813ed9['destroy']()['then'](function(){_0x17a13c[_0xaa85('0x28')](0xcc)[_0xaa85('0x29')]();});}};}function handleEntityNotFound(_0x7a83c,_0x316b49){return function(_0x3c723d){if(!_0x3c723d){_0x7a83c[_0xaa85('0x33')](0x194);}return _0x3c723d;};}function handleError(_0x3b5210,_0x22710f){_0x22710f=_0x22710f||0x1f4;return function(_0x48d3d3){logger[_0xaa85('0x23')](_0x48d3d3[_0xaa85('0x34')]);if(_0x48d3d3[_0xaa85('0x35')]){delete _0x48d3d3[_0xaa85('0x35')];}_0x3b5210[_0xaa85('0x28')](_0x22710f)[_0xaa85('0x36')](_0x48d3d3);};}exports[_0xaa85('0x37')]=function(_0x3d6508,_0x524da8){var _0x152ecc={},_0x45aef8={},_0x2860d0={'count':0x0,'rows':[]};var _0x3c83cf=_[_0xaa85('0x38')](db['SugarcrmConfiguration']['rawAttributes'],function(_0x31f989){return{'name':_0x31f989[_0xaa85('0x39')],'type':_0x31f989[_0xaa85('0x3a')]['key']};});_0x45aef8[_0xaa85('0x3b')]=_[_0xaa85('0x38')](_0x3c83cf,_0xaa85('0x35'));_0x45aef8['query']=_[_0xaa85('0x3c')](_0x3d6508[_0xaa85('0x3d')]);_0x45aef8['filters']=_['intersection'](_0x45aef8[_0xaa85('0x3b')],_0x45aef8[_0xaa85('0x3d')]);_0x152ecc['attributes']=_[_0xaa85('0x3e')](_0x45aef8[_0xaa85('0x3b')],qs['fields'](_0x3d6508[_0xaa85('0x3d')][_0xaa85('0x3f')]));_0x152ecc[_0xaa85('0x40')]=_0x152ecc['attributes'][_0xaa85('0x41')]?_0x152ecc[_0xaa85('0x40')]:_0x45aef8[_0xaa85('0x3b')];if(!_0x3d6508[_0xaa85('0x3d')][_0xaa85('0x42')](_0xaa85('0x43'))){_0x152ecc['limit']=qs[_0xaa85('0x2d')](_0x3d6508[_0xaa85('0x3d')][_0xaa85('0x2d')]);_0x152ecc[_0xaa85('0x2b')]=qs[_0xaa85('0x2b')](_0x3d6508[_0xaa85('0x3d')]['offset']);}_0x152ecc['order']=qs[_0xaa85('0x44')](_0x3d6508[_0xaa85('0x3d')][_0xaa85('0x44')]);_0x152ecc[_0xaa85('0x45')]=qs['filters'](_[_0xaa85('0x46')](_0x3d6508[_0xaa85('0x3d')],_0x45aef8[_0xaa85('0x47')]),_0x3c83cf);if(_0x3d6508[_0xaa85('0x3d')][_0xaa85('0x48')]){_0x152ecc['where']=_[_0xaa85('0x49')](_0x152ecc['where'],{'$or':_[_0xaa85('0x38')](_0x3c83cf,function(_0x1a375e){if(_0x1a375e['type']!=='VIRTUAL'){var _0x36c832={};_0x36c832[_0x1a375e[_0xaa85('0x35')]]={'$like':'%'+_0x3d6508[_0xaa85('0x3d')]['filter']+'%'};return _0x36c832;}})});}_0x152ecc=_['merge']({},_0x152ecc,_0x3d6508[_0xaa85('0x4a')]);var _0x56b86b={'where':_0x152ecc[_0xaa85('0x45')]};return db[_0xaa85('0x4b')][_0xaa85('0x2e')](_0x56b86b)[_0xaa85('0x1d')](function(_0x4aa320){_0x2860d0[_0xaa85('0x2e')]=_0x4aa320;if(_0x3d6508[_0xaa85('0x3d')][_0xaa85('0x4c')]){_0x152ecc[_0xaa85('0x4d')]=[{'all':!![]}];}return db[_0xaa85('0x4b')][_0xaa85('0x4e')](_0x152ecc);})[_0xaa85('0x1d')](function(_0xde6460){_0x2860d0['rows']=_0xde6460;return _0x2860d0;})['then'](respondWithFilteredResult(_0x524da8,_0x152ecc))[_0xaa85('0x27')](handleError(_0x524da8,null));};exports[_0xaa85('0x4f')]=function(_0x740cca,_0x300ec4){var _0x449c83={'raw':![],'where':{'id':_0x740cca[_0xaa85('0x50')]['id']}},_0x44d3de={};_0x44d3de[_0xaa85('0x3b')]=_[_0xaa85('0x3c')](db[_0xaa85('0x4b')]['rawAttributes']);_0x44d3de[_0xaa85('0x3d')]=_['keys'](_0x740cca[_0xaa85('0x3d')]);_0x44d3de[_0xaa85('0x47')]=_[_0xaa85('0x3e')](_0x44d3de[_0xaa85('0x3b')],_0x44d3de['query']);_0x449c83[_0xaa85('0x40')]=_['intersection'](_0x44d3de[_0xaa85('0x3b')],qs[_0xaa85('0x3f')](_0x740cca['query'][_0xaa85('0x3f')]));_0x449c83['attributes']=_0x449c83[_0xaa85('0x40')][_0xaa85('0x41')]?_0x449c83['attributes']:_0x44d3de[_0xaa85('0x3b')];if(_0x740cca['query']['includeAll']){_0x449c83['include']=[{'all':!![]}];}_0x449c83=_['merge']({},_0x449c83,_0x740cca[_0xaa85('0x4a')]);return db[_0xaa85('0x4b')][_0xaa85('0x51')](_0x449c83)[_0xaa85('0x1d')](handleEntityNotFound(_0x300ec4,null))[_0xaa85('0x1d')](respondWithResult(_0x300ec4,null))[_0xaa85('0x27')](handleError(_0x300ec4,null));};exports[_0xaa85('0x52')]=function(_0x5a87c1,_0xa819c4){return db[_0xaa85('0x4b')]['create'](_0x5a87c1[_0xaa85('0x53')],{})['then'](respondWithResult(_0xa819c4,0xc9))[_0xaa85('0x27')](handleError(_0xa819c4,null));};exports['update']=function(_0xffd0f7,_0x4ee844){if(_0xffd0f7[_0xaa85('0x53')]['id']){delete _0xffd0f7['body']['id'];}return db['SugarcrmConfiguration'][_0xaa85('0x51')]({'where':{'id':_0xffd0f7['params']['id']}})['then'](handleEntityNotFound(_0x4ee844,null))[_0xaa85('0x1d')](saveUpdates(_0xffd0f7[_0xaa85('0x53')],null))[_0xaa85('0x1d')](respondWithResult(_0x4ee844,null))[_0xaa85('0x27')](handleError(_0x4ee844,null));};exports[_0xaa85('0x54')]=function(_0xf70882,_0x1c0ba4){return db[_0xaa85('0x4b')][_0xaa85('0x51')]({'where':{'id':_0xf70882[_0xaa85('0x50')]['id']}})[_0xaa85('0x1d')](handleEntityNotFound(_0x1c0ba4,null))[_0xaa85('0x1d')](removeEntity(_0x1c0ba4,null))[_0xaa85('0x27')](handleError(_0x1c0ba4,null));};exports[_0xaa85('0x55')]=function(_0x57a6c9,_0x34cc7b,_0x19ef93){var _0x115ae8={};var _0x5e70bf={};var _0x5cf3ea;var _0x26f969;return db[_0xaa85('0x4b')][_0xaa85('0x56')]({'where':{'id':_0x57a6c9[_0xaa85('0x50')]['id']}})[_0xaa85('0x1d')](handleEntityNotFound(_0x34cc7b,null))[_0xaa85('0x1d')](function(_0x383d5e){if(_0x383d5e){_0x5cf3ea=_0x383d5e;_0x5e70bf[_0xaa85('0x3b')]=_['keys'](db[_0xaa85('0x57')][_0xaa85('0x58')]);_0x5e70bf[_0xaa85('0x3d')]=_[_0xaa85('0x3c')](_0x57a6c9['query']);_0x5e70bf[_0xaa85('0x47')]=_[_0xaa85('0x3e')](_0x5e70bf[_0xaa85('0x3b')],_0x5e70bf[_0xaa85('0x3d')]);_0x115ae8[_0xaa85('0x40')]=_[_0xaa85('0x3e')](_0x5e70bf[_0xaa85('0x3b')],qs[_0xaa85('0x3f')](_0x57a6c9[_0xaa85('0x3d')]['fields']));_0x115ae8[_0xaa85('0x40')]=_0x115ae8[_0xaa85('0x40')][_0xaa85('0x41')]?_0x115ae8[_0xaa85('0x40')]:_0x5e70bf[_0xaa85('0x3b')];_0x115ae8[_0xaa85('0x59')]=qs['sort'](_0x57a6c9['query']['sort']);_0x115ae8[_0xaa85('0x45')]=qs[_0xaa85('0x47')](_[_0xaa85('0x46')](_0x57a6c9[_0xaa85('0x3d')],_0x5e70bf[_0xaa85('0x47')]));if(_0x57a6c9[_0xaa85('0x3d')][_0xaa85('0x48')]){_0x115ae8[_0xaa85('0x45')]=_[_0xaa85('0x49')](_0x115ae8['where'],{'$or':_[_0xaa85('0x38')](_0x115ae8['attributes'],function(_0x155020){var _0x16fefd={};_0x16fefd[_0x155020]={'$like':'%'+_0x57a6c9[_0xaa85('0x3d')][_0xaa85('0x48')]+'%'};return _0x16fefd;})});}_0x115ae8=_[_0xaa85('0x49')]({},_0x115ae8,_0x57a6c9[_0xaa85('0x4a')]);return _0x5cf3ea[_0xaa85('0x55')](_0x115ae8);}})[_0xaa85('0x1d')](function(_0x208a36){if(_0x208a36){_0x26f969=_0x208a36[_0xaa85('0x41')];if(!_0x57a6c9['query']['hasOwnProperty'](_0xaa85('0x43'))){_0x115ae8[_0xaa85('0x2d')]=qs[_0xaa85('0x2d')](_0x57a6c9['query'][_0xaa85('0x2d')]);_0x115ae8[_0xaa85('0x2b')]=qs[_0xaa85('0x2b')](_0x57a6c9[_0xaa85('0x3d')][_0xaa85('0x2b')]);}return _0x5cf3ea[_0xaa85('0x55')](_0x115ae8);}})[_0xaa85('0x1d')](function(_0x4b60cb){if(_0x4b60cb){return _0x4b60cb?{'count':_0x26f969,'rows':_0x4b60cb}:null;}})[_0xaa85('0x1d')](respondWithResult(_0x34cc7b,null))[_0xaa85('0x27')](handleError(_0x34cc7b,null));};exports[_0xaa85('0x5a')]=function(_0x1f8b93,_0x3532a2,_0x1cde60){var _0x4616ab={};var _0xcff677={};var _0x2841e9;var _0x549e83;return db['SugarcrmConfiguration']['findOne']({'where':{'id':_0x1f8b93[_0xaa85('0x50')]['id']}})['then'](handleEntityNotFound(_0x3532a2,null))['then'](function(_0x1951b0){if(_0x1951b0){_0x2841e9=_0x1951b0;_0xcff677['model']=_[_0xaa85('0x3c')](db[_0xaa85('0x57')][_0xaa85('0x58')]);_0xcff677[_0xaa85('0x3d')]=_['keys'](_0x1f8b93['query']);_0xcff677[_0xaa85('0x47')]=_[_0xaa85('0x3e')](_0xcff677[_0xaa85('0x3b')],_0xcff677[_0xaa85('0x3d')]);_0x4616ab[_0xaa85('0x40')]=_[_0xaa85('0x3e')](_0xcff677[_0xaa85('0x3b')],qs[_0xaa85('0x3f')](_0x1f8b93[_0xaa85('0x3d')][_0xaa85('0x3f')]));_0x4616ab[_0xaa85('0x40')]=_0x4616ab[_0xaa85('0x40')][_0xaa85('0x41')]?_0x4616ab[_0xaa85('0x40')]:_0xcff677[_0xaa85('0x3b')];_0x4616ab[_0xaa85('0x59')]=qs['sort'](_0x1f8b93[_0xaa85('0x3d')][_0xaa85('0x44')]);_0x4616ab[_0xaa85('0x45')]=qs[_0xaa85('0x47')](_[_0xaa85('0x46')](_0x1f8b93[_0xaa85('0x3d')],_0xcff677[_0xaa85('0x47')]));if(_0x1f8b93[_0xaa85('0x3d')][_0xaa85('0x48')]){_0x4616ab['where']=_[_0xaa85('0x49')](_0x4616ab[_0xaa85('0x45')],{'$or':_[_0xaa85('0x38')](_0x4616ab['attributes'],function(_0x3e05ea){var _0x13c9c2={};_0x13c9c2[_0x3e05ea]={'$like':'%'+_0x1f8b93[_0xaa85('0x3d')][_0xaa85('0x48')]+'%'};return _0x13c9c2;})});}_0x4616ab=_[_0xaa85('0x49')]({},_0x4616ab,_0x1f8b93[_0xaa85('0x4a')]);return _0x2841e9['getSubjects'](_0x4616ab);}})[_0xaa85('0x1d')](function(_0x236abd){if(_0x236abd){_0x549e83=_0x236abd[_0xaa85('0x41')];if(!_0x1f8b93[_0xaa85('0x3d')][_0xaa85('0x42')](_0xaa85('0x43'))){_0x4616ab['limit']=qs[_0xaa85('0x2d')](_0x1f8b93[_0xaa85('0x3d')]['limit']);_0x4616ab[_0xaa85('0x2b')]=qs['offset'](_0x1f8b93[_0xaa85('0x3d')]['offset']);}return _0x2841e9['getSubjects'](_0x4616ab);}})[_0xaa85('0x1d')](function(_0x2cac64){if(_0x2cac64){return _0x2cac64?{'count':_0x549e83,'rows':_0x2cac64}:null;}})[_0xaa85('0x1d')](respondWithResult(_0x3532a2,null))[_0xaa85('0x27')](handleError(_0x3532a2,null));};exports[_0xaa85('0x5b')]=function(_0x5210a8,_0x464885,_0x6a42e8){var _0x54a058={};var _0x5f5555={};var _0x4f50fd;var _0x182479;return db[_0xaa85('0x4b')]['findOne']({'where':{'id':_0x5210a8[_0xaa85('0x50')]['id']}})[_0xaa85('0x1d')](handleEntityNotFound(_0x464885,null))[_0xaa85('0x1d')](function(_0x3ebb75){if(_0x3ebb75){_0x4f50fd=_0x3ebb75;_0x5f5555['model']=_[_0xaa85('0x3c')](db['SugarcrmField'][_0xaa85('0x58')]);_0x5f5555[_0xaa85('0x3d')]=_[_0xaa85('0x3c')](_0x5210a8['query']);_0x5f5555[_0xaa85('0x47')]=_[_0xaa85('0x3e')](_0x5f5555[_0xaa85('0x3b')],_0x5f5555['query']);_0x54a058[_0xaa85('0x40')]=_[_0xaa85('0x3e')](_0x5f5555[_0xaa85('0x3b')],qs['fields'](_0x5210a8[_0xaa85('0x3d')][_0xaa85('0x3f')]));_0x54a058[_0xaa85('0x40')]=_0x54a058[_0xaa85('0x40')][_0xaa85('0x41')]?_0x54a058[_0xaa85('0x40')]:_0x5f5555[_0xaa85('0x3b')];_0x54a058[_0xaa85('0x59')]=qs['sort'](_0x5210a8[_0xaa85('0x3d')][_0xaa85('0x44')]);_0x54a058[_0xaa85('0x45')]=qs[_0xaa85('0x47')](_['pick'](_0x5210a8[_0xaa85('0x3d')],_0x5f5555['filters']));if(_0x5210a8['query']['filter']){_0x54a058[_0xaa85('0x45')]=_[_0xaa85('0x49')](_0x54a058['where'],{'$or':_[_0xaa85('0x38')](_0x54a058[_0xaa85('0x40')],function(_0x592aaf){var _0x1ec813={};_0x1ec813[_0x592aaf]={'$like':'%'+_0x5210a8['query'][_0xaa85('0x48')]+'%'};return _0x1ec813;})});}_0x54a058=_[_0xaa85('0x49')]({},_0x54a058,_0x5210a8[_0xaa85('0x4a')]);return _0x4f50fd[_0xaa85('0x5b')](_0x54a058);}})[_0xaa85('0x1d')](function(_0x496d5c){if(_0x496d5c){_0x182479=_0x496d5c['length'];if(!_0x5210a8[_0xaa85('0x3d')]['hasOwnProperty'](_0xaa85('0x43'))){_0x54a058[_0xaa85('0x2d')]=qs[_0xaa85('0x2d')](_0x5210a8[_0xaa85('0x3d')]['limit']);_0x54a058[_0xaa85('0x2b')]=qs[_0xaa85('0x2b')](_0x5210a8[_0xaa85('0x3d')][_0xaa85('0x2b')]);}return _0x4f50fd['getDescriptions'](_0x54a058);}})[_0xaa85('0x1d')](function(_0x16eecc){if(_0x16eecc){return _0x16eecc?{'count':_0x182479,'rows':_0x16eecc}:null;}})[_0xaa85('0x1d')](respondWithResult(_0x464885,null))[_0xaa85('0x27')](handleError(_0x464885,null));};
\ No newline at end of file