4ea4dd18e92b4be599818493d0c7e46540cface5
[motion2.git] / server / api / intSalesforceConfiguration / intSalesforceConfiguration.controller.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 _0xeae8=['params','keys','includeAll','find','create','body','getFields','findOne','SalesforceField','length','hasOwnProperty','getSubjects','getDescriptions','html-pdf','eml-format','rimraf','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/license/util','jayson/promise','client','http','request','then','info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','error','code','message','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','name','index','SalesforceConfiguration','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','nolimit','order','sort','where','filters','pick','map','VIRTUAL','filter','merge','options','include','findAll','rows','show'];(function(_0xdefbc3,_0x1ea49a){var _0x367798=function(_0x594678){while(--_0x594678){_0xdefbc3['push'](_0xdefbc3['shift']());}};_0x367798(++_0x1ea49a);}(_0xeae8,0x66));var _0x8eae=function(_0x4e7969,_0x2dc719){_0x4e7969=_0x4e7969-0x0;var _0x5a8892=_0xeae8[_0x4e7969];return _0x5a8892;};'use strict';var pdf=require(_0x8eae('0x0'));var emlformat=require(_0x8eae('0x1'));var rimraf=require(_0x8eae('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8eae('0x3'));var rp=require('request-promise');var moment=require(_0x8eae('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8eae('0x5'));var util=require(_0x8eae('0x6'));var path=require(_0x8eae('0x7'));var sox=require(_0x8eae('0x8'));var csv=require(_0x8eae('0x9'));var ejs=require(_0x8eae('0xa'));var fs=require('fs');var fs_extra=require(_0x8eae('0xb'));var _=require(_0x8eae('0xc'));var squel=require(_0x8eae('0xd'));var crypto=require(_0x8eae('0xe'));var jsforce=require(_0x8eae('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8eae('0x10'));var Papa=require(_0x8eae('0x11'));var Redis=require(_0x8eae('0x12'));var authService=require(_0x8eae('0x13'));var qs=require(_0x8eae('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8eae('0x15'));var utils=require(_0x8eae('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x8eae('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0x8eae('0x18'));var client=jayson[_0x8eae('0x19')][_0x8eae('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x10f61e,_0x14172c,_0x549d19,_0x16f24a){return new BPromise(function(_0x39d8e7,_0x384477){var _0x249320=_0x16f24a||client;return _0x249320[_0x8eae('0x1b')](_0x10f61e,_0x549d19)[_0x8eae('0x1c')](function(_0x28eae2){logger[_0x8eae('0x1d')](_0x8eae('0x1e'),_0x14172c,'request\x20sent');logger['debug']('SalesforceConfiguration,\x20%s,\x20%s,\x20%s',_0x14172c,_0x8eae('0x1f'),JSON['stringify'](_0x28eae2));if(_0x28eae2[_0x8eae('0x20')]){if(_0x28eae2[_0x8eae('0x20')][_0x8eae('0x21')]===0x1f4){logger[_0x8eae('0x20')](_0x8eae('0x1e'),_0x14172c,_0x28eae2[_0x8eae('0x20')][_0x8eae('0x22')]);return _0x384477(_0x28eae2[_0x8eae('0x20')][_0x8eae('0x22')]);}logger[_0x8eae('0x20')]('SalesforceConfiguration,\x20%s,\x20%s',_0x14172c,_0x28eae2['error'][_0x8eae('0x22')]);return _0x39d8e7(_0x28eae2[_0x8eae('0x20')][_0x8eae('0x22')]);}else{logger['info'](_0x8eae('0x1e'),_0x14172c,_0x8eae('0x1f'));_0x39d8e7(_0x28eae2['result'][_0x8eae('0x22')]);}})[_0x8eae('0x23')](function(_0x529301){logger[_0x8eae('0x20')](_0x8eae('0x1e'),_0x14172c,_0x529301);_0x384477(_0x529301);});});}function respondWithStatusCode(_0x171710,_0x282fa5){_0x282fa5=_0x282fa5||0xcc;return function(_0x3edfdb){if(_0x3edfdb){return _0x171710[_0x8eae('0x24')](_0x282fa5);}return _0x171710[_0x8eae('0x25')](_0x282fa5)[_0x8eae('0x26')]();};}function respondWithResult(_0x14c0c5,_0x2fc7ec){_0x2fc7ec=_0x2fc7ec||0xc8;return function(_0x386bec){if(_0x386bec){return _0x14c0c5['status'](_0x2fc7ec)[_0x8eae('0x27')](_0x386bec);}};}function respondWithFilteredResult(_0xe9a3c5,_0x141940){return function(_0x34dff7){if(_0x34dff7){var _0x149b83=_0x34dff7[_0x8eae('0x28')],_0x13a80a=_0x141940['offset'],_0x206ba3=_0x141940[_0x8eae('0x29')]+_0x141940[_0x8eae('0x2a')],_0x4e7d7c;if(_0x206ba3>=_0x149b83){_0x206ba3=_0x149b83;_0x4e7d7c=0xc8;}else{_0x4e7d7c=0xce;}_0xe9a3c5[_0x8eae('0x25')](_0x4e7d7c);return _0xe9a3c5[_0x8eae('0x2b')](_0x8eae('0x2c'),_0x13a80a+'-'+_0x206ba3+'/'+_0x149b83)['json'](_0x34dff7);}return null;};}function patchUpdates(_0x52a030){return function(_0x2d50e1){try{jsonpatch[_0x8eae('0x2d')](_0x2d50e1,_0x52a030,!![]);}catch(_0x35c717){return BPromise[_0x8eae('0x2e')](_0x35c717);}return _0x2d50e1['save']();};}function saveUpdates(_0x113dc7,_0x22ffeb){return function(_0x3426d3){if(_0x3426d3){return _0x3426d3[_0x8eae('0x2f')](_0x113dc7)[_0x8eae('0x1c')](function(_0x2e9c51){return _0x2e9c51;});}return null;};}function removeEntity(_0x286bb2,_0x453b45){return function(_0x116024){if(_0x116024){return _0x116024[_0x8eae('0x30')]()[_0x8eae('0x1c')](function(){_0x286bb2[_0x8eae('0x25')](0xcc)[_0x8eae('0x26')]();});}};}function handleEntityNotFound(_0x2a0b6a,_0x1f247e){return function(_0x3d19f7){if(!_0x3d19f7){_0x2a0b6a[_0x8eae('0x24')](0x194);}return _0x3d19f7;};}function handleError(_0x6952f3,_0x3cba73){_0x3cba73=_0x3cba73||0x1f4;return function(_0x2fc72a){logger[_0x8eae('0x20')](_0x2fc72a['stack']);if(_0x2fc72a[_0x8eae('0x31')]){delete _0x2fc72a[_0x8eae('0x31')];}_0x6952f3[_0x8eae('0x25')](_0x3cba73)['send'](_0x2fc72a);};}exports[_0x8eae('0x32')]=function(_0x4c4ac8,_0x1e8e2e){var _0x172470={},_0x52c049={},_0xa885ad={'count':0x0,'rows':[]};var _0x538121=_['map'](db[_0x8eae('0x33')][_0x8eae('0x34')],function(_0x468e6d){return{'name':_0x468e6d[_0x8eae('0x35')],'type':_0x468e6d[_0x8eae('0x36')][_0x8eae('0x37')]};});_0x52c049[_0x8eae('0x38')]=_['map'](_0x538121,_0x8eae('0x31'));_0x52c049[_0x8eae('0x39')]=_['keys'](_0x4c4ac8['query']);_0x52c049['filters']=_[_0x8eae('0x3a')](_0x52c049[_0x8eae('0x38')],_0x52c049['query']);_0x172470[_0x8eae('0x3b')]=_[_0x8eae('0x3a')](_0x52c049['model'],qs[_0x8eae('0x3c')](_0x4c4ac8[_0x8eae('0x39')][_0x8eae('0x3c')]));_0x172470[_0x8eae('0x3b')]=_0x172470[_0x8eae('0x3b')]['length']?_0x172470[_0x8eae('0x3b')]:_0x52c049[_0x8eae('0x38')];if(!_0x4c4ac8[_0x8eae('0x39')]['hasOwnProperty'](_0x8eae('0x3d'))){_0x172470[_0x8eae('0x2a')]=qs['limit'](_0x4c4ac8[_0x8eae('0x39')][_0x8eae('0x2a')]);_0x172470[_0x8eae('0x29')]=qs[_0x8eae('0x29')](_0x4c4ac8['query'][_0x8eae('0x29')]);}_0x172470[_0x8eae('0x3e')]=qs[_0x8eae('0x3f')](_0x4c4ac8[_0x8eae('0x39')]['sort']);_0x172470[_0x8eae('0x40')]=qs[_0x8eae('0x41')](_[_0x8eae('0x42')](_0x4c4ac8[_0x8eae('0x39')],_0x52c049['filters']),_0x538121);if(_0x4c4ac8[_0x8eae('0x39')]['filter']){_0x172470[_0x8eae('0x40')]=_['merge'](_0x172470[_0x8eae('0x40')],{'$or':_[_0x8eae('0x43')](_0x538121,function(_0x4f0e5c){if(_0x4f0e5c[_0x8eae('0x36')]!==_0x8eae('0x44')){var _0x1fdf59={};_0x1fdf59[_0x4f0e5c[_0x8eae('0x31')]]={'$like':'%'+_0x4c4ac8[_0x8eae('0x39')][_0x8eae('0x45')]+'%'};return _0x1fdf59;}})});}_0x172470=_[_0x8eae('0x46')]({},_0x172470,_0x4c4ac8[_0x8eae('0x47')]);var _0x24a3ff={'where':_0x172470['where']};return db[_0x8eae('0x33')]['count'](_0x24a3ff)[_0x8eae('0x1c')](function(_0x39aeff){_0xa885ad[_0x8eae('0x28')]=_0x39aeff;if(_0x4c4ac8[_0x8eae('0x39')]['includeAll']){_0x172470[_0x8eae('0x48')]=[{'all':!![]}];}return db[_0x8eae('0x33')][_0x8eae('0x49')](_0x172470);})[_0x8eae('0x1c')](function(_0xc3f899){_0xa885ad[_0x8eae('0x4a')]=_0xc3f899;return _0xa885ad;})[_0x8eae('0x1c')](respondWithFilteredResult(_0x1e8e2e,_0x172470))[_0x8eae('0x23')](handleError(_0x1e8e2e,null));};exports[_0x8eae('0x4b')]=function(_0x84a054,_0x319a94){var _0x5c53d6={'raw':![],'where':{'id':_0x84a054[_0x8eae('0x4c')]['id']}},_0x2e06bb={};_0x2e06bb['model']=_[_0x8eae('0x4d')](db['SalesforceConfiguration'][_0x8eae('0x34')]);_0x2e06bb['query']=_[_0x8eae('0x4d')](_0x84a054['query']);_0x2e06bb[_0x8eae('0x41')]=_[_0x8eae('0x3a')](_0x2e06bb[_0x8eae('0x38')],_0x2e06bb[_0x8eae('0x39')]);_0x5c53d6[_0x8eae('0x3b')]=_[_0x8eae('0x3a')](_0x2e06bb[_0x8eae('0x38')],qs[_0x8eae('0x3c')](_0x84a054[_0x8eae('0x39')][_0x8eae('0x3c')]));_0x5c53d6[_0x8eae('0x3b')]=_0x5c53d6['attributes']['length']?_0x5c53d6[_0x8eae('0x3b')]:_0x2e06bb[_0x8eae('0x38')];if(_0x84a054[_0x8eae('0x39')][_0x8eae('0x4e')]){_0x5c53d6[_0x8eae('0x48')]=[{'all':!![]}];}_0x5c53d6=_[_0x8eae('0x46')]({},_0x5c53d6,_0x84a054['options']);return db[_0x8eae('0x33')][_0x8eae('0x4f')](_0x5c53d6)[_0x8eae('0x1c')](handleEntityNotFound(_0x319a94,null))[_0x8eae('0x1c')](respondWithResult(_0x319a94,null))[_0x8eae('0x23')](handleError(_0x319a94,null));};exports[_0x8eae('0x50')]=function(_0x581947,_0x14ec02){return db[_0x8eae('0x33')]['create'](_0x581947[_0x8eae('0x51')],{})[_0x8eae('0x1c')](respondWithResult(_0x14ec02,0xc9))[_0x8eae('0x23')](handleError(_0x14ec02,null));};exports[_0x8eae('0x2f')]=function(_0x1965a2,_0x1e66f1){if(_0x1965a2['body']['id']){delete _0x1965a2[_0x8eae('0x51')]['id'];}return db['SalesforceConfiguration'][_0x8eae('0x4f')]({'where':{'id':_0x1965a2[_0x8eae('0x4c')]['id']}})[_0x8eae('0x1c')](handleEntityNotFound(_0x1e66f1,null))['then'](saveUpdates(_0x1965a2[_0x8eae('0x51')],null))[_0x8eae('0x1c')](respondWithResult(_0x1e66f1,null))[_0x8eae('0x23')](handleError(_0x1e66f1,null));};exports[_0x8eae('0x30')]=function(_0x29c543,_0x4433ec){return db[_0x8eae('0x33')][_0x8eae('0x4f')]({'where':{'id':_0x29c543[_0x8eae('0x4c')]['id']}})[_0x8eae('0x1c')](handleEntityNotFound(_0x4433ec,null))[_0x8eae('0x1c')](removeEntity(_0x4433ec,null))['catch'](handleError(_0x4433ec,null));};exports[_0x8eae('0x52')]=function(_0x1a6d4c,_0x7cc387,_0x2f2a9f){var _0x2d7264={};var _0x1404df={};var _0x30ff16;var _0x1d105e;return db[_0x8eae('0x33')][_0x8eae('0x53')]({'where':{'id':_0x1a6d4c[_0x8eae('0x4c')]['id']}})['then'](handleEntityNotFound(_0x7cc387,null))[_0x8eae('0x1c')](function(_0xef2735){if(_0xef2735){_0x30ff16=_0xef2735;_0x1404df[_0x8eae('0x38')]=_[_0x8eae('0x4d')](db[_0x8eae('0x54')][_0x8eae('0x34')]);_0x1404df['query']=_[_0x8eae('0x4d')](_0x1a6d4c['query']);_0x1404df[_0x8eae('0x41')]=_['intersection'](_0x1404df[_0x8eae('0x38')],_0x1404df[_0x8eae('0x39')]);_0x2d7264['attributes']=_[_0x8eae('0x3a')](_0x1404df['model'],qs['fields'](_0x1a6d4c[_0x8eae('0x39')]['fields']));_0x2d7264[_0x8eae('0x3b')]=_0x2d7264['attributes'][_0x8eae('0x55')]?_0x2d7264['attributes']:_0x1404df[_0x8eae('0x38')];_0x2d7264['order']=qs['sort'](_0x1a6d4c['query'][_0x8eae('0x3f')]);_0x2d7264[_0x8eae('0x40')]=qs['filters'](_[_0x8eae('0x42')](_0x1a6d4c[_0x8eae('0x39')],_0x1404df[_0x8eae('0x41')]));if(_0x1a6d4c['query'][_0x8eae('0x45')]){_0x2d7264['where']=_[_0x8eae('0x46')](_0x2d7264['where'],{'$or':_['map'](_0x2d7264[_0x8eae('0x3b')],function(_0x7269d7){var _0x47b1a6={};_0x47b1a6[_0x7269d7]={'$like':'%'+_0x1a6d4c[_0x8eae('0x39')][_0x8eae('0x45')]+'%'};return _0x47b1a6;})});}_0x2d7264=_['merge']({},_0x2d7264,_0x1a6d4c[_0x8eae('0x47')]);return _0x30ff16[_0x8eae('0x52')](_0x2d7264);}})[_0x8eae('0x1c')](function(_0x2de5da){if(_0x2de5da){_0x1d105e=_0x2de5da[_0x8eae('0x55')];if(!_0x1a6d4c['query'][_0x8eae('0x56')](_0x8eae('0x3d'))){_0x2d7264['limit']=qs[_0x8eae('0x2a')](_0x1a6d4c[_0x8eae('0x39')][_0x8eae('0x2a')]);_0x2d7264[_0x8eae('0x29')]=qs['offset'](_0x1a6d4c[_0x8eae('0x39')][_0x8eae('0x29')]);}return _0x30ff16[_0x8eae('0x52')](_0x2d7264);}})[_0x8eae('0x1c')](function(_0x327ead){if(_0x327ead){return _0x327ead?{'count':_0x1d105e,'rows':_0x327ead}:null;}})[_0x8eae('0x1c')](respondWithResult(_0x7cc387,null))[_0x8eae('0x23')](handleError(_0x7cc387,null));};exports[_0x8eae('0x57')]=function(_0x2f0532,_0x2eddda,_0xacd8fc){var _0x59ef33={};var _0x515840={};var _0x15a043;var _0x11cd28;return db[_0x8eae('0x33')][_0x8eae('0x53')]({'where':{'id':_0x2f0532[_0x8eae('0x4c')]['id']}})['then'](handleEntityNotFound(_0x2eddda,null))[_0x8eae('0x1c')](function(_0x4d14e2){if(_0x4d14e2){_0x15a043=_0x4d14e2;_0x515840['model']=_[_0x8eae('0x4d')](db[_0x8eae('0x54')][_0x8eae('0x34')]);_0x515840[_0x8eae('0x39')]=_[_0x8eae('0x4d')](_0x2f0532[_0x8eae('0x39')]);_0x515840[_0x8eae('0x41')]=_[_0x8eae('0x3a')](_0x515840[_0x8eae('0x38')],_0x515840[_0x8eae('0x39')]);_0x59ef33[_0x8eae('0x3b')]=_[_0x8eae('0x3a')](_0x515840['model'],qs[_0x8eae('0x3c')](_0x2f0532['query']['fields']));_0x59ef33['attributes']=_0x59ef33[_0x8eae('0x3b')][_0x8eae('0x55')]?_0x59ef33['attributes']:_0x515840[_0x8eae('0x38')];_0x59ef33['order']=qs['sort'](_0x2f0532[_0x8eae('0x39')][_0x8eae('0x3f')]);_0x59ef33[_0x8eae('0x40')]=qs[_0x8eae('0x41')](_[_0x8eae('0x42')](_0x2f0532[_0x8eae('0x39')],_0x515840[_0x8eae('0x41')]));if(_0x2f0532[_0x8eae('0x39')]['filter']){_0x59ef33['where']=_[_0x8eae('0x46')](_0x59ef33[_0x8eae('0x40')],{'$or':_['map'](_0x59ef33[_0x8eae('0x3b')],function(_0x5b8c7e){var _0x5ababe={};_0x5ababe[_0x5b8c7e]={'$like':'%'+_0x2f0532['query'][_0x8eae('0x45')]+'%'};return _0x5ababe;})});}_0x59ef33=_[_0x8eae('0x46')]({},_0x59ef33,_0x2f0532[_0x8eae('0x47')]);return _0x15a043[_0x8eae('0x57')](_0x59ef33);}})[_0x8eae('0x1c')](function(_0x5b8245){if(_0x5b8245){_0x11cd28=_0x5b8245[_0x8eae('0x55')];if(!_0x2f0532['query']['hasOwnProperty'](_0x8eae('0x3d'))){_0x59ef33[_0x8eae('0x2a')]=qs[_0x8eae('0x2a')](_0x2f0532[_0x8eae('0x39')][_0x8eae('0x2a')]);_0x59ef33['offset']=qs[_0x8eae('0x29')](_0x2f0532[_0x8eae('0x39')][_0x8eae('0x29')]);}return _0x15a043[_0x8eae('0x57')](_0x59ef33);}})[_0x8eae('0x1c')](function(_0x2532de){if(_0x2532de){return _0x2532de?{'count':_0x11cd28,'rows':_0x2532de}:null;}})['then'](respondWithResult(_0x2eddda,null))[_0x8eae('0x23')](handleError(_0x2eddda,null));};exports['getDescriptions']=function(_0x636493,_0x33bcae,_0x366fa1){var _0x57da24={};var _0x9afb05={};var _0x25d296;var _0x1f4a61;return db['SalesforceConfiguration'][_0x8eae('0x53')]({'where':{'id':_0x636493[_0x8eae('0x4c')]['id']}})['then'](handleEntityNotFound(_0x33bcae,null))[_0x8eae('0x1c')](function(_0x116dd2){if(_0x116dd2){_0x25d296=_0x116dd2;_0x9afb05[_0x8eae('0x38')]=_[_0x8eae('0x4d')](db[_0x8eae('0x54')][_0x8eae('0x34')]);_0x9afb05['query']=_['keys'](_0x636493[_0x8eae('0x39')]);_0x9afb05[_0x8eae('0x41')]=_[_0x8eae('0x3a')](_0x9afb05[_0x8eae('0x38')],_0x9afb05[_0x8eae('0x39')]);_0x57da24[_0x8eae('0x3b')]=_[_0x8eae('0x3a')](_0x9afb05[_0x8eae('0x38')],qs[_0x8eae('0x3c')](_0x636493[_0x8eae('0x39')]['fields']));_0x57da24[_0x8eae('0x3b')]=_0x57da24[_0x8eae('0x3b')]['length']?_0x57da24['attributes']:_0x9afb05[_0x8eae('0x38')];_0x57da24[_0x8eae('0x3e')]=qs[_0x8eae('0x3f')](_0x636493['query'][_0x8eae('0x3f')]);_0x57da24[_0x8eae('0x40')]=qs[_0x8eae('0x41')](_['pick'](_0x636493[_0x8eae('0x39')],_0x9afb05[_0x8eae('0x41')]));if(_0x636493[_0x8eae('0x39')]['filter']){_0x57da24['where']=_[_0x8eae('0x46')](_0x57da24[_0x8eae('0x40')],{'$or':_[_0x8eae('0x43')](_0x57da24[_0x8eae('0x3b')],function(_0x3e40fb){var _0x1ff60c={};_0x1ff60c[_0x3e40fb]={'$like':'%'+_0x636493[_0x8eae('0x39')][_0x8eae('0x45')]+'%'};return _0x1ff60c;})});}_0x57da24=_['merge']({},_0x57da24,_0x636493[_0x8eae('0x47')]);return _0x25d296['getDescriptions'](_0x57da24);}})[_0x8eae('0x1c')](function(_0x16db71){if(_0x16db71){_0x1f4a61=_0x16db71['length'];if(!_0x636493[_0x8eae('0x39')][_0x8eae('0x56')](_0x8eae('0x3d'))){_0x57da24[_0x8eae('0x2a')]=qs[_0x8eae('0x2a')](_0x636493['query'][_0x8eae('0x2a')]);_0x57da24[_0x8eae('0x29')]=qs[_0x8eae('0x29')](_0x636493['query'][_0x8eae('0x29')]);}return _0x25d296[_0x8eae('0x58')](_0x57da24);}})['then'](function(_0x1340eb){if(_0x1340eb){return _0x1340eb?{'count':_0x1f4a61,'rows':_0x1340eb}:null;}})[_0x8eae('0x1c')](respondWithResult(_0x33bcae,null))[_0x8eae('0x23')](handleError(_0x33bcae,null));};