Built motion from commit (unavailable).|2.5.22
[motion2.git] / server / api / intVtigerConfiguration / intVtigerConfiguration.controller.js
index 8764d67..cdc1161 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x0b3d=['type','key','model','query','filters','intersection','attributes','length','hasOwnProperty','order','sort','filter','merge','where','VIRTUAL','options','include','show','keys','fields','includeAll','find','create','body','update','params','getFields','findOne','VtigerField','pick','nolimit','getSubjects','getDescriptions','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','client','http','request','then','info','VtigerConfiguration,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','end','json','count','offset','limit','status','apply','reject','save','destroy','sendStatus','name','send','index','map','VtigerConfiguration','rawAttributes','fieldName'];(function(_0x15dc4a,_0x37ac48){var _0x23c048=function(_0xf6d775){while(--_0xf6d775){_0x15dc4a['push'](_0x15dc4a['shift']());}};_0x23c048(++_0x37ac48);}(_0x0b3d,0x1e3));var _0xd0b3=function(_0x184abd,_0x3bf822){_0x184abd=_0x184abd-0x0;var _0x48e2e0=_0x0b3d[_0x184abd];return _0x48e2e0;};'use strict';var pdf=require(_0xd0b3('0x0'));var emlformat=require(_0xd0b3('0x1'));var rimraf=require(_0xd0b3('0x2'));var zipdir=require(_0xd0b3('0x3'));var jsonpatch=require(_0xd0b3('0x4'));var rp=require(_0xd0b3('0x5'));var moment=require(_0xd0b3('0x6'));var BPromise=require('bluebird');var Mustache=require(_0xd0b3('0x7'));var util=require(_0xd0b3('0x8'));var path=require(_0xd0b3('0x9'));var sox=require(_0xd0b3('0xa'));var csv=require('to-csv');var ejs=require(_0xd0b3('0xb'));var fs=require('fs');var _=require(_0xd0b3('0xc'));var squel=require('squel');var crypto=require(_0xd0b3('0xd'));var jsforce=require(_0xd0b3('0xe'));var deskjs=require(_0xd0b3('0xf'));var toCsv=require(_0xd0b3('0x10'));var querystring=require(_0xd0b3('0x11'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd0b3('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xd0b3('0x13'));var hardwareService=require(_0xd0b3('0x14'));var logger=require('../../config/logger')(_0xd0b3('0x15'));var utils=require('../../config/utils');var config=require(_0xd0b3('0x16'));var licenseUtil=require(_0xd0b3('0x17'));var db=require(_0xd0b3('0x18'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xd0b3('0x19')][_0xd0b3('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x1a350b,_0x533760,_0x284410,_0x88f72e){return new BPromise(function(_0x2b083c,_0x1d1fd2){var _0x1b1747=_0x88f72e||client;return _0x1b1747[_0xd0b3('0x1b')](_0x1a350b,_0x284410)[_0xd0b3('0x1c')](function(_0x2a272e){logger[_0xd0b3('0x1d')](_0xd0b3('0x1e'),_0x533760,'request\x20sent');logger[_0xd0b3('0x1f')]('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x533760,_0xd0b3('0x20'),JSON[_0xd0b3('0x21')](_0x2a272e));if(_0x2a272e[_0xd0b3('0x22')]){if(_0x2a272e[_0xd0b3('0x22')][_0xd0b3('0x23')]===0x1f4){logger[_0xd0b3('0x22')]('VtigerConfiguration,\x20%s,\x20%s',_0x533760,_0x2a272e[_0xd0b3('0x22')]['message']);return _0x1d1fd2(_0x2a272e[_0xd0b3('0x22')][_0xd0b3('0x24')]);}logger[_0xd0b3('0x22')]('VtigerConfiguration,\x20%s,\x20%s',_0x533760,_0x2a272e[_0xd0b3('0x22')][_0xd0b3('0x24')]);return _0x2b083c(_0x2a272e[_0xd0b3('0x22')]['message']);}else{logger['info'](_0xd0b3('0x1e'),_0x533760,_0xd0b3('0x20'));_0x2b083c(_0x2a272e[_0xd0b3('0x25')][_0xd0b3('0x24')]);}})[_0xd0b3('0x26')](function(_0x16277d){logger[_0xd0b3('0x22')]('VtigerConfiguration,\x20%s,\x20%s',_0x533760,_0x16277d);_0x1d1fd2(_0x16277d);});});}function respondWithStatusCode(_0x4bdf67,_0x1b8293){_0x1b8293=_0x1b8293||0xcc;return function(_0x3b7794){if(_0x3b7794){return _0x4bdf67['sendStatus'](_0x1b8293);}return _0x4bdf67['status'](_0x1b8293)[_0xd0b3('0x27')]();};}function respondWithResult(_0x5342a8,_0x26c55d){_0x26c55d=_0x26c55d||0xc8;return function(_0xe02e3e){if(_0xe02e3e){return _0x5342a8['status'](_0x26c55d)[_0xd0b3('0x28')](_0xe02e3e);}};}function respondWithFilteredResult(_0x50be46,_0x20a657){return function(_0x431bcc){if(_0x431bcc){var _0x22d513=_0x431bcc[_0xd0b3('0x29')],_0x422df6=_0x20a657['offset'],_0x3e44a5=_0x20a657[_0xd0b3('0x2a')]+_0x20a657[_0xd0b3('0x2b')],_0x206ef3;if(_0x3e44a5>=_0x22d513){_0x3e44a5=_0x22d513;_0x206ef3=0xc8;}else{_0x206ef3=0xce;}_0x50be46[_0xd0b3('0x2c')](_0x206ef3);return _0x50be46['set']('Content-Range',_0x422df6+'-'+_0x3e44a5+'/'+_0x22d513)[_0xd0b3('0x28')](_0x431bcc);}return null;};}function patchUpdates(_0x27766e){return function(_0x20ee10){try{jsonpatch[_0xd0b3('0x2d')](_0x20ee10,_0x27766e,!![]);}catch(_0x2af471){return BPromise[_0xd0b3('0x2e')](_0x2af471);}return _0x20ee10[_0xd0b3('0x2f')]();};}function saveUpdates(_0x4ed8d6,_0x587094){return function(_0x5ead2d){if(_0x5ead2d){return _0x5ead2d['update'](_0x4ed8d6)[_0xd0b3('0x1c')](function(_0x257e94){return _0x257e94;});}return null;};}function removeEntity(_0x1de705,_0x44a885){return function(_0x556858){if(_0x556858){return _0x556858[_0xd0b3('0x30')]()[_0xd0b3('0x1c')](function(){_0x1de705[_0xd0b3('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x295448,_0x4ed8d2){return function(_0x57bd99){if(!_0x57bd99){_0x295448[_0xd0b3('0x31')](0x194);}return _0x57bd99;};}function handleError(_0x42055e,_0x487a81){_0x487a81=_0x487a81||0x1f4;return function(_0x4b2677){logger[_0xd0b3('0x22')](_0x4b2677['stack']);if(_0x4b2677[_0xd0b3('0x32')]){delete _0x4b2677[_0xd0b3('0x32')];}_0x42055e[_0xd0b3('0x2c')](_0x487a81)[_0xd0b3('0x33')](_0x4b2677);};}exports[_0xd0b3('0x34')]=function(_0x3a44f9,_0x2e075){var _0x6cf36e={},_0x3de40d={},_0x5b9991={'count':0x0,'rows':[]};var _0x2649d1=_[_0xd0b3('0x35')](db[_0xd0b3('0x36')][_0xd0b3('0x37')],function(_0x398d4c){return{'name':_0x398d4c[_0xd0b3('0x38')],'type':_0x398d4c[_0xd0b3('0x39')][_0xd0b3('0x3a')]};});_0x3de40d[_0xd0b3('0x3b')]=_[_0xd0b3('0x35')](_0x2649d1,_0xd0b3('0x32'));_0x3de40d['query']=_['keys'](_0x3a44f9[_0xd0b3('0x3c')]);_0x3de40d[_0xd0b3('0x3d')]=_[_0xd0b3('0x3e')](_0x3de40d['model'],_0x3de40d[_0xd0b3('0x3c')]);_0x6cf36e[_0xd0b3('0x3f')]=_['intersection'](_0x3de40d[_0xd0b3('0x3b')],qs['fields'](_0x3a44f9[_0xd0b3('0x3c')]['fields']));_0x6cf36e[_0xd0b3('0x3f')]=_0x6cf36e[_0xd0b3('0x3f')][_0xd0b3('0x40')]?_0x6cf36e[_0xd0b3('0x3f')]:_0x3de40d[_0xd0b3('0x3b')];if(!_0x3a44f9['query'][_0xd0b3('0x41')]('nolimit')){_0x6cf36e[_0xd0b3('0x2b')]=qs[_0xd0b3('0x2b')](_0x3a44f9[_0xd0b3('0x3c')][_0xd0b3('0x2b')]);_0x6cf36e[_0xd0b3('0x2a')]=qs[_0xd0b3('0x2a')](_0x3a44f9['query'][_0xd0b3('0x2a')]);}_0x6cf36e[_0xd0b3('0x42')]=qs['sort'](_0x3a44f9['query'][_0xd0b3('0x43')]);_0x6cf36e['where']=qs[_0xd0b3('0x3d')](_['pick'](_0x3a44f9[_0xd0b3('0x3c')],_0x3de40d[_0xd0b3('0x3d')]),_0x2649d1);if(_0x3a44f9[_0xd0b3('0x3c')][_0xd0b3('0x44')]){_0x6cf36e['where']=_[_0xd0b3('0x45')](_0x6cf36e[_0xd0b3('0x46')],{'$or':_['map'](_0x2649d1,function(_0x3a42fe){if(_0x3a42fe['type']!==_0xd0b3('0x47')){var _0x116922={};_0x116922[_0x3a42fe[_0xd0b3('0x32')]]={'$like':'%'+_0x3a44f9[_0xd0b3('0x3c')][_0xd0b3('0x44')]+'%'};return _0x116922;}})});}_0x6cf36e=_['merge']({},_0x6cf36e,_0x3a44f9[_0xd0b3('0x48')]);var _0x285171={'where':_0x6cf36e[_0xd0b3('0x46')]};return db['VtigerConfiguration'][_0xd0b3('0x29')](_0x285171)[_0xd0b3('0x1c')](function(_0x116d1a){_0x5b9991['count']=_0x116d1a;if(_0x3a44f9[_0xd0b3('0x3c')]['includeAll']){_0x6cf36e[_0xd0b3('0x49')]=[{'all':!![]}];}return db[_0xd0b3('0x36')]['findAll'](_0x6cf36e);})['then'](function(_0x5002e4){_0x5b9991['rows']=_0x5002e4;return _0x5b9991;})['then'](respondWithFilteredResult(_0x2e075,_0x6cf36e))[_0xd0b3('0x26')](handleError(_0x2e075,null));};exports[_0xd0b3('0x4a')]=function(_0x4db6d0,_0x44f1ec){var _0x272262={'raw':![],'where':{'id':_0x4db6d0['params']['id']}},_0x1febea={};_0x1febea[_0xd0b3('0x3b')]=_[_0xd0b3('0x4b')](db['VtigerConfiguration'][_0xd0b3('0x37')]);_0x1febea[_0xd0b3('0x3c')]=_[_0xd0b3('0x4b')](_0x4db6d0[_0xd0b3('0x3c')]);_0x1febea['filters']=_[_0xd0b3('0x3e')](_0x1febea[_0xd0b3('0x3b')],_0x1febea[_0xd0b3('0x3c')]);_0x272262[_0xd0b3('0x3f')]=_[_0xd0b3('0x3e')](_0x1febea[_0xd0b3('0x3b')],qs[_0xd0b3('0x4c')](_0x4db6d0[_0xd0b3('0x3c')]['fields']));_0x272262[_0xd0b3('0x3f')]=_0x272262['attributes'][_0xd0b3('0x40')]?_0x272262[_0xd0b3('0x3f')]:_0x1febea[_0xd0b3('0x3b')];if(_0x4db6d0[_0xd0b3('0x3c')][_0xd0b3('0x4d')]){_0x272262[_0xd0b3('0x49')]=[{'all':!![]}];}_0x272262=_['merge']({},_0x272262,_0x4db6d0[_0xd0b3('0x48')]);return db[_0xd0b3('0x36')][_0xd0b3('0x4e')](_0x272262)[_0xd0b3('0x1c')](handleEntityNotFound(_0x44f1ec,null))[_0xd0b3('0x1c')](respondWithResult(_0x44f1ec,null))[_0xd0b3('0x26')](handleError(_0x44f1ec,null));};exports[_0xd0b3('0x4f')]=function(_0x4a7de9,_0xbcb27a){return db['VtigerConfiguration'][_0xd0b3('0x4f')](_0x4a7de9[_0xd0b3('0x50')],{})[_0xd0b3('0x1c')](respondWithResult(_0xbcb27a,0xc9))['catch'](handleError(_0xbcb27a,null));};exports[_0xd0b3('0x51')]=function(_0xa2489a,_0x4bb3b4){if(_0xa2489a[_0xd0b3('0x50')]['id']){delete _0xa2489a[_0xd0b3('0x50')]['id'];}return db[_0xd0b3('0x36')][_0xd0b3('0x4e')]({'where':{'id':_0xa2489a[_0xd0b3('0x52')]['id']}})[_0xd0b3('0x1c')](handleEntityNotFound(_0x4bb3b4,null))[_0xd0b3('0x1c')](saveUpdates(_0xa2489a['body'],null))[_0xd0b3('0x1c')](respondWithResult(_0x4bb3b4,null))[_0xd0b3('0x26')](handleError(_0x4bb3b4,null));};exports['destroy']=function(_0x4fe4a7,_0x5523cf){return db[_0xd0b3('0x36')][_0xd0b3('0x4e')]({'where':{'id':_0x4fe4a7[_0xd0b3('0x52')]['id']}})[_0xd0b3('0x1c')](handleEntityNotFound(_0x5523cf,null))[_0xd0b3('0x1c')](removeEntity(_0x5523cf,null))[_0xd0b3('0x26')](handleError(_0x5523cf,null));};exports[_0xd0b3('0x53')]=function(_0x182839,_0x21a500,_0x5c9804){var _0x35766e={};var _0x50f881={};var _0x277f0e;var _0x1ae35c;return db['VtigerConfiguration'][_0xd0b3('0x54')]({'where':{'id':_0x182839[_0xd0b3('0x52')]['id']}})[_0xd0b3('0x1c')](handleEntityNotFound(_0x21a500,null))[_0xd0b3('0x1c')](function(_0x54e563){if(_0x54e563){_0x277f0e=_0x54e563;_0x50f881[_0xd0b3('0x3b')]=_[_0xd0b3('0x4b')](db[_0xd0b3('0x55')]['rawAttributes']);_0x50f881['query']=_['keys'](_0x182839[_0xd0b3('0x3c')]);_0x50f881['filters']=_[_0xd0b3('0x3e')](_0x50f881[_0xd0b3('0x3b')],_0x50f881['query']);_0x35766e[_0xd0b3('0x3f')]=_[_0xd0b3('0x3e')](_0x50f881['model'],qs[_0xd0b3('0x4c')](_0x182839[_0xd0b3('0x3c')][_0xd0b3('0x4c')]));_0x35766e['attributes']=_0x35766e['attributes'][_0xd0b3('0x40')]?_0x35766e['attributes']:_0x50f881[_0xd0b3('0x3b')];_0x35766e[_0xd0b3('0x42')]=qs[_0xd0b3('0x43')](_0x182839['query']['sort']);_0x35766e[_0xd0b3('0x46')]=qs[_0xd0b3('0x3d')](_[_0xd0b3('0x56')](_0x182839['query'],_0x50f881[_0xd0b3('0x3d')]));if(_0x182839['query'][_0xd0b3('0x44')]){_0x35766e[_0xd0b3('0x46')]=_[_0xd0b3('0x45')](_0x35766e[_0xd0b3('0x46')],{'$or':_[_0xd0b3('0x35')](_0x35766e['attributes'],function(_0x3b8e9c){var _0x4935b8={};_0x4935b8[_0x3b8e9c]={'$like':'%'+_0x182839[_0xd0b3('0x3c')][_0xd0b3('0x44')]+'%'};return _0x4935b8;})});}_0x35766e=_[_0xd0b3('0x45')]({},_0x35766e,_0x182839['options']);return _0x277f0e[_0xd0b3('0x53')](_0x35766e);}})[_0xd0b3('0x1c')](function(_0x3bfc78){if(_0x3bfc78){_0x1ae35c=_0x3bfc78[_0xd0b3('0x40')];if(!_0x182839[_0xd0b3('0x3c')][_0xd0b3('0x41')](_0xd0b3('0x57'))){_0x35766e[_0xd0b3('0x2b')]=qs['limit'](_0x182839[_0xd0b3('0x3c')][_0xd0b3('0x2b')]);_0x35766e[_0xd0b3('0x2a')]=qs['offset'](_0x182839[_0xd0b3('0x3c')][_0xd0b3('0x2a')]);}return _0x277f0e[_0xd0b3('0x53')](_0x35766e);}})['then'](function(_0x5ab12a){if(_0x5ab12a){return _0x5ab12a?{'count':_0x1ae35c,'rows':_0x5ab12a}:null;}})['then'](respondWithResult(_0x21a500,null))[_0xd0b3('0x26')](handleError(_0x21a500,null));};exports[_0xd0b3('0x58')]=function(_0x5c51cf,_0x500160,_0x7a4138){var _0x4b3acf={};var _0x196fa9={};var _0x5c4a8f;var _0x26095e;return db[_0xd0b3('0x36')][_0xd0b3('0x54')]({'where':{'id':_0x5c51cf[_0xd0b3('0x52')]['id']}})[_0xd0b3('0x1c')](handleEntityNotFound(_0x500160,null))[_0xd0b3('0x1c')](function(_0x12136e){if(_0x12136e){_0x5c4a8f=_0x12136e;_0x196fa9[_0xd0b3('0x3b')]=_[_0xd0b3('0x4b')](db[_0xd0b3('0x55')][_0xd0b3('0x37')]);_0x196fa9[_0xd0b3('0x3c')]=_[_0xd0b3('0x4b')](_0x5c51cf[_0xd0b3('0x3c')]);_0x196fa9['filters']=_['intersection'](_0x196fa9[_0xd0b3('0x3b')],_0x196fa9[_0xd0b3('0x3c')]);_0x4b3acf['attributes']=_[_0xd0b3('0x3e')](_0x196fa9[_0xd0b3('0x3b')],qs[_0xd0b3('0x4c')](_0x5c51cf[_0xd0b3('0x3c')][_0xd0b3('0x4c')]));_0x4b3acf[_0xd0b3('0x3f')]=_0x4b3acf[_0xd0b3('0x3f')][_0xd0b3('0x40')]?_0x4b3acf[_0xd0b3('0x3f')]:_0x196fa9['model'];_0x4b3acf[_0xd0b3('0x42')]=qs[_0xd0b3('0x43')](_0x5c51cf[_0xd0b3('0x3c')][_0xd0b3('0x43')]);_0x4b3acf[_0xd0b3('0x46')]=qs['filters'](_[_0xd0b3('0x56')](_0x5c51cf[_0xd0b3('0x3c')],_0x196fa9[_0xd0b3('0x3d')]));if(_0x5c51cf[_0xd0b3('0x3c')][_0xd0b3('0x44')]){_0x4b3acf[_0xd0b3('0x46')]=_['merge'](_0x4b3acf[_0xd0b3('0x46')],{'$or':_[_0xd0b3('0x35')](_0x4b3acf['attributes'],function(_0x375fac){var _0x6f24eb={};_0x6f24eb[_0x375fac]={'$like':'%'+_0x5c51cf[_0xd0b3('0x3c')]['filter']+'%'};return _0x6f24eb;})});}_0x4b3acf=_[_0xd0b3('0x45')]({},_0x4b3acf,_0x5c51cf[_0xd0b3('0x48')]);return _0x5c4a8f['getSubjects'](_0x4b3acf);}})['then'](function(_0x1d702d){if(_0x1d702d){_0x26095e=_0x1d702d['length'];if(!_0x5c51cf[_0xd0b3('0x3c')][_0xd0b3('0x41')](_0xd0b3('0x57'))){_0x4b3acf[_0xd0b3('0x2b')]=qs['limit'](_0x5c51cf[_0xd0b3('0x3c')][_0xd0b3('0x2b')]);_0x4b3acf[_0xd0b3('0x2a')]=qs[_0xd0b3('0x2a')](_0x5c51cf[_0xd0b3('0x3c')][_0xd0b3('0x2a')]);}return _0x5c4a8f['getSubjects'](_0x4b3acf);}})[_0xd0b3('0x1c')](function(_0x5236c0){if(_0x5236c0){return _0x5236c0?{'count':_0x26095e,'rows':_0x5236c0}:null;}})[_0xd0b3('0x1c')](respondWithResult(_0x500160,null))[_0xd0b3('0x26')](handleError(_0x500160,null));};exports[_0xd0b3('0x59')]=function(_0x481398,_0x49d14f,_0x42e610){var _0x38ca9d={};var _0x3a354c={};var _0x457260;var _0x2312fe;return db['VtigerConfiguration'][_0xd0b3('0x54')]({'where':{'id':_0x481398[_0xd0b3('0x52')]['id']}})[_0xd0b3('0x1c')](handleEntityNotFound(_0x49d14f,null))[_0xd0b3('0x1c')](function(_0x396de3){if(_0x396de3){_0x457260=_0x396de3;_0x3a354c[_0xd0b3('0x3b')]=_['keys'](db[_0xd0b3('0x55')][_0xd0b3('0x37')]);_0x3a354c[_0xd0b3('0x3c')]=_[_0xd0b3('0x4b')](_0x481398[_0xd0b3('0x3c')]);_0x3a354c[_0xd0b3('0x3d')]=_[_0xd0b3('0x3e')](_0x3a354c['model'],_0x3a354c[_0xd0b3('0x3c')]);_0x38ca9d[_0xd0b3('0x3f')]=_[_0xd0b3('0x3e')](_0x3a354c[_0xd0b3('0x3b')],qs[_0xd0b3('0x4c')](_0x481398['query'][_0xd0b3('0x4c')]));_0x38ca9d[_0xd0b3('0x3f')]=_0x38ca9d['attributes'][_0xd0b3('0x40')]?_0x38ca9d[_0xd0b3('0x3f')]:_0x3a354c['model'];_0x38ca9d['order']=qs[_0xd0b3('0x43')](_0x481398[_0xd0b3('0x3c')][_0xd0b3('0x43')]);_0x38ca9d[_0xd0b3('0x46')]=qs['filters'](_[_0xd0b3('0x56')](_0x481398[_0xd0b3('0x3c')],_0x3a354c[_0xd0b3('0x3d')]));if(_0x481398['query'][_0xd0b3('0x44')]){_0x38ca9d[_0xd0b3('0x46')]=_['merge'](_0x38ca9d[_0xd0b3('0x46')],{'$or':_['map'](_0x38ca9d[_0xd0b3('0x3f')],function(_0x499de8){var _0x70d4cd={};_0x70d4cd[_0x499de8]={'$like':'%'+_0x481398['query'][_0xd0b3('0x44')]+'%'};return _0x70d4cd;})});}_0x38ca9d=_['merge']({},_0x38ca9d,_0x481398[_0xd0b3('0x48')]);return _0x457260[_0xd0b3('0x59')](_0x38ca9d);}})['then'](function(_0x9708a7){if(_0x9708a7){_0x2312fe=_0x9708a7[_0xd0b3('0x40')];if(!_0x481398[_0xd0b3('0x3c')]['hasOwnProperty'](_0xd0b3('0x57'))){_0x38ca9d[_0xd0b3('0x2b')]=qs[_0xd0b3('0x2b')](_0x481398[_0xd0b3('0x3c')][_0xd0b3('0x2b')]);_0x38ca9d[_0xd0b3('0x2a')]=qs[_0xd0b3('0x2a')](_0x481398[_0xd0b3('0x3c')][_0xd0b3('0x2a')]);}return _0x457260[_0xd0b3('0x59')](_0x38ca9d);}})[_0xd0b3('0x1c')](function(_0x7c99f){if(_0x7c99f){return _0x7c99f?{'count':_0x2312fe,'rows':_0x7c99f}:null;}})[_0xd0b3('0x1c')](respondWithResult(_0x49d14f,null))[_0xd0b3('0x26')](handleError(_0x49d14f,null));};
\ No newline at end of file
+var _0xf036=['request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','jayson/promise','client','http','request','then','VtigerConfiguration,\x20%s,\x20%s','request\x20sent','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','sendStatus','end','status','count','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','name','send','index','VtigerConfiguration','rawAttributes','fieldName','type','map','keys','query','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','create','body','find','getFields','findOne','VtigerField','order','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x1837f6,_0x2daff9){var _0x487418=function(_0x1a25ec){while(--_0x1a25ec){_0x1837f6['push'](_0x1837f6['shift']());}};_0x487418(++_0x2daff9);}(_0xf036,0x174));var _0x6f03=function(_0x4065eb,_0x9f4169){_0x4065eb=_0x4065eb-0x0;var _0xe695c1=_0xf036[_0x4065eb];return _0xe695c1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x6f03('0x0'));var rimraf=require(_0x6f03('0x1'));var zipdir=require(_0x6f03('0x2'));var jsonpatch=require(_0x6f03('0x3'));var rp=require(_0x6f03('0x4'));var moment=require('moment');var BPromise=require(_0x6f03('0x5'));var Mustache=require(_0x6f03('0x6'));var util=require(_0x6f03('0x7'));var path=require(_0x6f03('0x8'));var sox=require(_0x6f03('0x9'));var csv=require(_0x6f03('0xa'));var ejs=require(_0x6f03('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6f03('0xc'));var crypto=require('crypto');var jsforce=require(_0x6f03('0xd'));var deskjs=require(_0x6f03('0xe'));var toCsv=require(_0x6f03('0xa'));var querystring=require(_0x6f03('0xf'));var Papa=require(_0x6f03('0x10'));var Redis=require(_0x6f03('0x11'));var authService=require(_0x6f03('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x6f03('0x13'));var hardwareService=require(_0x6f03('0x14'));var logger=require(_0x6f03('0x15'))(_0x6f03('0x16'));var utils=require(_0x6f03('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x6f03('0x18'))['db'];var jayson=require(_0x6f03('0x19'));var client=jayson[_0x6f03('0x1a')][_0x6f03('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x5732bc,_0x3954ed,_0x2d62d8,_0x5c4579){return new BPromise(function(_0xae8102,_0x238c82){var _0xcf65aa=_0x5c4579||client;return _0xcf65aa[_0x6f03('0x1c')](_0x5732bc,_0x2d62d8)[_0x6f03('0x1d')](function(_0x1fac75){logger['info'](_0x6f03('0x1e'),_0x3954ed,_0x6f03('0x1f'));logger[_0x6f03('0x20')](_0x6f03('0x21'),_0x3954ed,_0x6f03('0x1f'),JSON[_0x6f03('0x22')](_0x1fac75));if(_0x1fac75[_0x6f03('0x23')]){if(_0x1fac75[_0x6f03('0x23')][_0x6f03('0x24')]===0x1f4){logger[_0x6f03('0x23')](_0x6f03('0x1e'),_0x3954ed,_0x1fac75[_0x6f03('0x23')][_0x6f03('0x25')]);return _0x238c82(_0x1fac75[_0x6f03('0x23')][_0x6f03('0x25')]);}logger[_0x6f03('0x23')]('VtigerConfiguration,\x20%s,\x20%s',_0x3954ed,_0x1fac75[_0x6f03('0x23')]['message']);return _0xae8102(_0x1fac75[_0x6f03('0x23')]['message']);}else{logger[_0x6f03('0x26')](_0x6f03('0x1e'),_0x3954ed,_0x6f03('0x1f'));_0xae8102(_0x1fac75['result'][_0x6f03('0x25')]);}})[_0x6f03('0x27')](function(_0xa668f2){logger[_0x6f03('0x23')](_0x6f03('0x1e'),_0x3954ed,_0xa668f2);_0x238c82(_0xa668f2);});});}function respondWithStatusCode(_0x458bdc,_0xf4bb55){_0xf4bb55=_0xf4bb55||0xcc;return function(_0x1fa39b){if(_0x1fa39b){return _0x458bdc[_0x6f03('0x28')](_0xf4bb55);}return _0x458bdc['status'](_0xf4bb55)[_0x6f03('0x29')]();};}function respondWithResult(_0x3694c6,_0x12f84a){_0x12f84a=_0x12f84a||0xc8;return function(_0x1c9584){if(_0x1c9584){return _0x3694c6[_0x6f03('0x2a')](_0x12f84a)['json'](_0x1c9584);}};}function respondWithFilteredResult(_0x5a7735,_0x5f071f){return function(_0x92f319){if(_0x92f319){var _0x425dbb=_0x92f319[_0x6f03('0x2b')],_0x1af00b=_0x5f071f[_0x6f03('0x2c')],_0x4ab8b5=_0x5f071f[_0x6f03('0x2c')]+_0x5f071f[_0x6f03('0x2d')],_0x5c0857;if(_0x4ab8b5>=_0x425dbb){_0x4ab8b5=_0x425dbb;_0x5c0857=0xc8;}else{_0x5c0857=0xce;}_0x5a7735[_0x6f03('0x2a')](_0x5c0857);return _0x5a7735[_0x6f03('0x2e')](_0x6f03('0x2f'),_0x1af00b+'-'+_0x4ab8b5+'/'+_0x425dbb)[_0x6f03('0x30')](_0x92f319);}return null;};}function patchUpdates(_0x13361c){return function(_0x309259){try{jsonpatch[_0x6f03('0x31')](_0x309259,_0x13361c,!![]);}catch(_0x2192fa){return BPromise[_0x6f03('0x32')](_0x2192fa);}return _0x309259[_0x6f03('0x33')]();};}function saveUpdates(_0x21811b,_0x5f5c93){return function(_0x1dfea8){if(_0x1dfea8){return _0x1dfea8[_0x6f03('0x34')](_0x21811b)[_0x6f03('0x1d')](function(_0x55d433){return _0x55d433;});}return null;};}function removeEntity(_0x441db0,_0x4d079f){return function(_0xf82f07){if(_0xf82f07){return _0xf82f07[_0x6f03('0x35')]()[_0x6f03('0x1d')](function(){_0x441db0[_0x6f03('0x2a')](0xcc)[_0x6f03('0x29')]();});}};}function handleEntityNotFound(_0x18084e,_0x149782){return function(_0x52915a){if(!_0x52915a){_0x18084e['sendStatus'](0x194);}return _0x52915a;};}function handleError(_0x11ae27,_0x8385c9){_0x8385c9=_0x8385c9||0x1f4;return function(_0x170ef2){logger['error'](_0x170ef2['stack']);if(_0x170ef2[_0x6f03('0x36')]){delete _0x170ef2[_0x6f03('0x36')];}_0x11ae27['status'](_0x8385c9)[_0x6f03('0x37')](_0x170ef2);};}exports[_0x6f03('0x38')]=function(_0x27550a,_0x3bb769){var _0x241207={},_0x161079={},_0x15971d={'count':0x0,'rows':[]};var _0x2729d3=_['map'](db[_0x6f03('0x39')][_0x6f03('0x3a')],function(_0x50ed60){return{'name':_0x50ed60[_0x6f03('0x3b')],'type':_0x50ed60[_0x6f03('0x3c')]['key']};});_0x161079['model']=_[_0x6f03('0x3d')](_0x2729d3,_0x6f03('0x36'));_0x161079['query']=_[_0x6f03('0x3e')](_0x27550a[_0x6f03('0x3f')]);_0x161079[_0x6f03('0x40')]=_['intersection'](_0x161079['model'],_0x161079['query']);_0x241207[_0x6f03('0x41')]=_[_0x6f03('0x42')](_0x161079[_0x6f03('0x43')],qs[_0x6f03('0x44')](_0x27550a[_0x6f03('0x3f')]['fields']));_0x241207['attributes']=_0x241207[_0x6f03('0x41')][_0x6f03('0x45')]?_0x241207[_0x6f03('0x41')]:_0x161079[_0x6f03('0x43')];if(!_0x27550a[_0x6f03('0x3f')][_0x6f03('0x46')](_0x6f03('0x47'))){_0x241207[_0x6f03('0x2d')]=qs[_0x6f03('0x2d')](_0x27550a[_0x6f03('0x3f')][_0x6f03('0x2d')]);_0x241207[_0x6f03('0x2c')]=qs[_0x6f03('0x2c')](_0x27550a[_0x6f03('0x3f')]['offset']);}_0x241207['order']=qs['sort'](_0x27550a[_0x6f03('0x3f')][_0x6f03('0x48')]);_0x241207[_0x6f03('0x49')]=qs[_0x6f03('0x40')](_[_0x6f03('0x4a')](_0x27550a[_0x6f03('0x3f')],_0x161079[_0x6f03('0x40')]),_0x2729d3);if(_0x27550a['query'][_0x6f03('0x4b')]){_0x241207[_0x6f03('0x49')]=_[_0x6f03('0x4c')](_0x241207[_0x6f03('0x49')],{'$or':_[_0x6f03('0x3d')](_0x2729d3,function(_0x2e5e08){if(_0x2e5e08[_0x6f03('0x3c')]!==_0x6f03('0x4d')){var _0x2adab4={};_0x2adab4[_0x2e5e08[_0x6f03('0x36')]]={'$like':'%'+_0x27550a['query'][_0x6f03('0x4b')]+'%'};return _0x2adab4;}})});}_0x241207=_[_0x6f03('0x4c')]({},_0x241207,_0x27550a[_0x6f03('0x4e')]);var _0x5d9a0c={'where':_0x241207[_0x6f03('0x49')]};return db[_0x6f03('0x39')][_0x6f03('0x2b')](_0x5d9a0c)[_0x6f03('0x1d')](function(_0x4144d1){_0x15971d[_0x6f03('0x2b')]=_0x4144d1;if(_0x27550a[_0x6f03('0x3f')][_0x6f03('0x4f')]){_0x241207[_0x6f03('0x50')]=[{'all':!![]}];}return db['VtigerConfiguration'][_0x6f03('0x51')](_0x241207);})['then'](function(_0x2f2a23){_0x15971d[_0x6f03('0x52')]=_0x2f2a23;return _0x15971d;})[_0x6f03('0x1d')](respondWithFilteredResult(_0x3bb769,_0x241207))[_0x6f03('0x27')](handleError(_0x3bb769,null));};exports[_0x6f03('0x53')]=function(_0x103134,_0x212846){var _0x468a75={'raw':![],'where':{'id':_0x103134[_0x6f03('0x54')]['id']}},_0x104c74={};_0x104c74[_0x6f03('0x43')]=_[_0x6f03('0x3e')](db[_0x6f03('0x39')][_0x6f03('0x3a')]);_0x104c74[_0x6f03('0x3f')]=_[_0x6f03('0x3e')](_0x103134['query']);_0x104c74[_0x6f03('0x40')]=_[_0x6f03('0x42')](_0x104c74[_0x6f03('0x43')],_0x104c74[_0x6f03('0x3f')]);_0x468a75['attributes']=_[_0x6f03('0x42')](_0x104c74[_0x6f03('0x43')],qs[_0x6f03('0x44')](_0x103134[_0x6f03('0x3f')][_0x6f03('0x44')]));_0x468a75[_0x6f03('0x41')]=_0x468a75[_0x6f03('0x41')][_0x6f03('0x45')]?_0x468a75[_0x6f03('0x41')]:_0x104c74[_0x6f03('0x43')];if(_0x103134['query'][_0x6f03('0x4f')]){_0x468a75[_0x6f03('0x50')]=[{'all':!![]}];}_0x468a75=_[_0x6f03('0x4c')]({},_0x468a75,_0x103134[_0x6f03('0x4e')]);return db[_0x6f03('0x39')]['find'](_0x468a75)['then'](handleEntityNotFound(_0x212846,null))[_0x6f03('0x1d')](respondWithResult(_0x212846,null))[_0x6f03('0x27')](handleError(_0x212846,null));};exports[_0x6f03('0x55')]=function(_0xccb399,_0x133592){return db[_0x6f03('0x39')][_0x6f03('0x55')](_0xccb399[_0x6f03('0x56')],{})[_0x6f03('0x1d')](respondWithResult(_0x133592,0xc9))[_0x6f03('0x27')](handleError(_0x133592,null));};exports[_0x6f03('0x34')]=function(_0x29a346,_0x438606){if(_0x29a346[_0x6f03('0x56')]['id']){delete _0x29a346[_0x6f03('0x56')]['id'];}return db[_0x6f03('0x39')][_0x6f03('0x57')]({'where':{'id':_0x29a346[_0x6f03('0x54')]['id']}})[_0x6f03('0x1d')](handleEntityNotFound(_0x438606,null))[_0x6f03('0x1d')](saveUpdates(_0x29a346[_0x6f03('0x56')],null))['then'](respondWithResult(_0x438606,null))[_0x6f03('0x27')](handleError(_0x438606,null));};exports['destroy']=function(_0x28f67d,_0x9175d3){return db[_0x6f03('0x39')][_0x6f03('0x57')]({'where':{'id':_0x28f67d[_0x6f03('0x54')]['id']}})[_0x6f03('0x1d')](handleEntityNotFound(_0x9175d3,null))[_0x6f03('0x1d')](removeEntity(_0x9175d3,null))[_0x6f03('0x27')](handleError(_0x9175d3,null));};exports[_0x6f03('0x58')]=function(_0x2308fa,_0x214555,_0x5f5402){var _0x3028e1={};var _0x52532f={};var _0x44b8e1;var _0x1c4243;return db['VtigerConfiguration'][_0x6f03('0x59')]({'where':{'id':_0x2308fa[_0x6f03('0x54')]['id']}})[_0x6f03('0x1d')](handleEntityNotFound(_0x214555,null))['then'](function(_0x4362a0){if(_0x4362a0){_0x44b8e1=_0x4362a0;_0x52532f['model']=_[_0x6f03('0x3e')](db[_0x6f03('0x5a')][_0x6f03('0x3a')]);_0x52532f[_0x6f03('0x3f')]=_[_0x6f03('0x3e')](_0x2308fa[_0x6f03('0x3f')]);_0x52532f[_0x6f03('0x40')]=_['intersection'](_0x52532f['model'],_0x52532f[_0x6f03('0x3f')]);_0x3028e1[_0x6f03('0x41')]=_[_0x6f03('0x42')](_0x52532f['model'],qs[_0x6f03('0x44')](_0x2308fa[_0x6f03('0x3f')]['fields']));_0x3028e1[_0x6f03('0x41')]=_0x3028e1[_0x6f03('0x41')][_0x6f03('0x45')]?_0x3028e1[_0x6f03('0x41')]:_0x52532f[_0x6f03('0x43')];_0x3028e1[_0x6f03('0x5b')]=qs[_0x6f03('0x48')](_0x2308fa[_0x6f03('0x3f')][_0x6f03('0x48')]);_0x3028e1[_0x6f03('0x49')]=qs['filters'](_[_0x6f03('0x4a')](_0x2308fa[_0x6f03('0x3f')],_0x52532f[_0x6f03('0x40')]));if(_0x2308fa[_0x6f03('0x3f')]['filter']){_0x3028e1[_0x6f03('0x49')]=_[_0x6f03('0x4c')](_0x3028e1['where'],{'$or':_[_0x6f03('0x3d')](_0x3028e1['attributes'],function(_0x4df7d8){var _0x956210={};_0x956210[_0x4df7d8]={'$like':'%'+_0x2308fa['query'][_0x6f03('0x4b')]+'%'};return _0x956210;})});}_0x3028e1=_[_0x6f03('0x4c')]({},_0x3028e1,_0x2308fa[_0x6f03('0x4e')]);return _0x44b8e1['getFields'](_0x3028e1);}})['then'](function(_0x100dd3){if(_0x100dd3){_0x1c4243=_0x100dd3['length'];if(!_0x2308fa[_0x6f03('0x3f')][_0x6f03('0x46')]('nolimit')){_0x3028e1[_0x6f03('0x2d')]=qs[_0x6f03('0x2d')](_0x2308fa['query'][_0x6f03('0x2d')]);_0x3028e1[_0x6f03('0x2c')]=qs[_0x6f03('0x2c')](_0x2308fa[_0x6f03('0x3f')][_0x6f03('0x2c')]);}return _0x44b8e1[_0x6f03('0x58')](_0x3028e1);}})[_0x6f03('0x1d')](function(_0x2040ac){if(_0x2040ac){return _0x2040ac?{'count':_0x1c4243,'rows':_0x2040ac}:null;}})[_0x6f03('0x1d')](respondWithResult(_0x214555,null))[_0x6f03('0x27')](handleError(_0x214555,null));};exports[_0x6f03('0x5c')]=function(_0x134e3e,_0x507096,_0x156b37){var _0x2a8723={};var _0x2b78e4={};var _0x4b5ed8;var _0x3f98f9;return db['VtigerConfiguration']['findOne']({'where':{'id':_0x134e3e[_0x6f03('0x54')]['id']}})[_0x6f03('0x1d')](handleEntityNotFound(_0x507096,null))[_0x6f03('0x1d')](function(_0x4bbbea){if(_0x4bbbea){_0x4b5ed8=_0x4bbbea;_0x2b78e4[_0x6f03('0x43')]=_[_0x6f03('0x3e')](db[_0x6f03('0x5a')]['rawAttributes']);_0x2b78e4[_0x6f03('0x3f')]=_[_0x6f03('0x3e')](_0x134e3e[_0x6f03('0x3f')]);_0x2b78e4[_0x6f03('0x40')]=_[_0x6f03('0x42')](_0x2b78e4[_0x6f03('0x43')],_0x2b78e4[_0x6f03('0x3f')]);_0x2a8723[_0x6f03('0x41')]=_['intersection'](_0x2b78e4[_0x6f03('0x43')],qs[_0x6f03('0x44')](_0x134e3e[_0x6f03('0x3f')][_0x6f03('0x44')]));_0x2a8723[_0x6f03('0x41')]=_0x2a8723['attributes']['length']?_0x2a8723['attributes']:_0x2b78e4[_0x6f03('0x43')];_0x2a8723[_0x6f03('0x5b')]=qs[_0x6f03('0x48')](_0x134e3e[_0x6f03('0x3f')][_0x6f03('0x48')]);_0x2a8723['where']=qs[_0x6f03('0x40')](_[_0x6f03('0x4a')](_0x134e3e[_0x6f03('0x3f')],_0x2b78e4[_0x6f03('0x40')]));if(_0x134e3e[_0x6f03('0x3f')]['filter']){_0x2a8723[_0x6f03('0x49')]=_[_0x6f03('0x4c')](_0x2a8723[_0x6f03('0x49')],{'$or':_['map'](_0x2a8723[_0x6f03('0x41')],function(_0x33d11a){var _0xf05ddb={};_0xf05ddb[_0x33d11a]={'$like':'%'+_0x134e3e['query']['filter']+'%'};return _0xf05ddb;})});}_0x2a8723=_['merge']({},_0x2a8723,_0x134e3e[_0x6f03('0x4e')]);return _0x4b5ed8[_0x6f03('0x5c')](_0x2a8723);}})[_0x6f03('0x1d')](function(_0x3a6bcf){if(_0x3a6bcf){_0x3f98f9=_0x3a6bcf['length'];if(!_0x134e3e['query']['hasOwnProperty'](_0x6f03('0x47'))){_0x2a8723['limit']=qs['limit'](_0x134e3e[_0x6f03('0x3f')][_0x6f03('0x2d')]);_0x2a8723['offset']=qs[_0x6f03('0x2c')](_0x134e3e[_0x6f03('0x3f')]['offset']);}return _0x4b5ed8[_0x6f03('0x5c')](_0x2a8723);}})[_0x6f03('0x1d')](function(_0x1105b6){if(_0x1105b6){return _0x1105b6?{'count':_0x3f98f9,'rows':_0x1105b6}:null;}})[_0x6f03('0x1d')](respondWithResult(_0x507096,null))[_0x6f03('0x27')](handleError(_0x507096,null));};exports[_0x6f03('0x5d')]=function(_0x163fc9,_0xf4b166,_0x1650da){var _0x13ce94={};var _0x273096={};var _0x42a944;var _0x4c09f2;return db[_0x6f03('0x39')][_0x6f03('0x59')]({'where':{'id':_0x163fc9[_0x6f03('0x54')]['id']}})['then'](handleEntityNotFound(_0xf4b166,null))['then'](function(_0x440bac){if(_0x440bac){_0x42a944=_0x440bac;_0x273096[_0x6f03('0x43')]=_[_0x6f03('0x3e')](db[_0x6f03('0x5a')][_0x6f03('0x3a')]);_0x273096[_0x6f03('0x3f')]=_['keys'](_0x163fc9[_0x6f03('0x3f')]);_0x273096[_0x6f03('0x40')]=_[_0x6f03('0x42')](_0x273096[_0x6f03('0x43')],_0x273096[_0x6f03('0x3f')]);_0x13ce94[_0x6f03('0x41')]=_[_0x6f03('0x42')](_0x273096[_0x6f03('0x43')],qs[_0x6f03('0x44')](_0x163fc9[_0x6f03('0x3f')][_0x6f03('0x44')]));_0x13ce94['attributes']=_0x13ce94['attributes'][_0x6f03('0x45')]?_0x13ce94[_0x6f03('0x41')]:_0x273096['model'];_0x13ce94[_0x6f03('0x5b')]=qs[_0x6f03('0x48')](_0x163fc9[_0x6f03('0x3f')][_0x6f03('0x48')]);_0x13ce94[_0x6f03('0x49')]=qs[_0x6f03('0x40')](_[_0x6f03('0x4a')](_0x163fc9[_0x6f03('0x3f')],_0x273096[_0x6f03('0x40')]));if(_0x163fc9[_0x6f03('0x3f')]['filter']){_0x13ce94[_0x6f03('0x49')]=_[_0x6f03('0x4c')](_0x13ce94['where'],{'$or':_[_0x6f03('0x3d')](_0x13ce94[_0x6f03('0x41')],function(_0x75914a){var _0x1e9def={};_0x1e9def[_0x75914a]={'$like':'%'+_0x163fc9[_0x6f03('0x3f')]['filter']+'%'};return _0x1e9def;})});}_0x13ce94=_[_0x6f03('0x4c')]({},_0x13ce94,_0x163fc9[_0x6f03('0x4e')]);return _0x42a944[_0x6f03('0x5d')](_0x13ce94);}})[_0x6f03('0x1d')](function(_0x46af2c){if(_0x46af2c){_0x4c09f2=_0x46af2c[_0x6f03('0x45')];if(!_0x163fc9[_0x6f03('0x3f')]['hasOwnProperty'](_0x6f03('0x47'))){_0x13ce94[_0x6f03('0x2d')]=qs['limit'](_0x163fc9['query'][_0x6f03('0x2d')]);_0x13ce94[_0x6f03('0x2c')]=qs[_0x6f03('0x2c')](_0x163fc9[_0x6f03('0x3f')][_0x6f03('0x2c')]);}return _0x42a944['getDescriptions'](_0x13ce94);}})[_0x6f03('0x1d')](function(_0x18a8e5){if(_0x18a8e5){return _0x18a8e5?{'count':_0x4c09f2,'rows':_0x18a8e5}:null;}})['then'](respondWithResult(_0xf4b166,null))[_0x6f03('0x27')](handleError(_0xf4b166,null));};
\ No newline at end of file