Built motion from commit 85328c08.|2.5.50
[motion2.git] / server / api / faxTransferReport / faxTransferReport.controller.js
index 32d6be0..dfcd452 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x3079=['eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','lodash','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','count','offset','limit','set','Content-Range','json','apply','reject','update','then','destroy','name','send','index','map','FaxTransferReport','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','catch','params','rawAttributes','find','create','body','describe'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x3079,0x110));var _0x9307=function(_0x4c3b80,_0x191b5f){_0x4c3b80=_0x4c3b80-0x0;var _0xb228c3=_0x3079[_0x4c3b80];return _0xb228c3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x9307('0x0'));var rimraf=require(_0x9307('0x1'));var zipdir=require(_0x9307('0x2'));var jsonpatch=require(_0x9307('0x3'));var rp=require('request-promise');var moment=require(_0x9307('0x4'));var BPromise=require(_0x9307('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x9307('0x6'));var sox=require(_0x9307('0x7'));var csv=require(_0x9307('0x8'));var ejs=require(_0x9307('0x9'));var fs=require('fs');var _=require(_0x9307('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x9307('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x9307('0x8'));var querystring=require(_0x9307('0xc'));var Papa=require('papaparse');var Redis=require(_0x9307('0xd'));var authService=require(_0x9307('0xe'));var qs=require(_0x9307('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9307('0x10'))(_0x9307('0x11'));var utils=require(_0x9307('0x12'));var config=require(_0x9307('0x13'));var licenseUtil=require(_0x9307('0x14'));var db=require(_0x9307('0x15'))['db'];function respondWithStatusCode(_0x4bc72d,_0x2bab66){_0x2bab66=_0x2bab66||0xcc;return function(_0x2fc4a5){if(_0x2fc4a5){return _0x4bc72d['sendStatus'](_0x2bab66);}return _0x4bc72d['status'](_0x2bab66)[_0x9307('0x16')]();};}function respondWithResult(_0x3d3671,_0x4a7e80){_0x4a7e80=_0x4a7e80||0xc8;return function(_0x3d9864){if(_0x3d9864){return _0x3d3671[_0x9307('0x17')](_0x4a7e80)['json'](_0x3d9864);}};}function respondWithFilteredResult(_0x108830,_0x231bba){return function(_0x4e79f7){if(_0x4e79f7){var _0x3fc6fd=_0x4e79f7[_0x9307('0x18')],_0x4296e9=_0x231bba[_0x9307('0x19')],_0x100f15=_0x231bba['offset']+_0x231bba[_0x9307('0x1a')],_0x5b6ac6;if(_0x100f15>=_0x3fc6fd){_0x100f15=_0x3fc6fd;_0x5b6ac6=0xc8;}else{_0x5b6ac6=0xce;}_0x108830[_0x9307('0x17')](_0x5b6ac6);return _0x108830[_0x9307('0x1b')](_0x9307('0x1c'),_0x4296e9+'-'+_0x100f15+'/'+_0x3fc6fd)[_0x9307('0x1d')](_0x4e79f7);}return null;};}function patchUpdates(_0x336e35){return function(_0x5810d7){try{jsonpatch[_0x9307('0x1e')](_0x5810d7,_0x336e35,!![]);}catch(_0x10aa66){return BPromise[_0x9307('0x1f')](_0x10aa66);}return _0x5810d7['save']();};}function saveUpdates(_0x2f35c7,_0x3a139e){return function(_0x4ba205){if(_0x4ba205){return _0x4ba205[_0x9307('0x20')](_0x2f35c7)[_0x9307('0x21')](function(_0x256e8c){return _0x256e8c;});}return null;};}function removeEntity(_0x39bbcc,_0x15e7c4){return function(_0xf39222){if(_0xf39222){return _0xf39222[_0x9307('0x22')]()[_0x9307('0x21')](function(){_0x39bbcc[_0x9307('0x17')](0xcc)[_0x9307('0x16')]();});}};}function handleEntityNotFound(_0x3241d9,_0x5d42a0){return function(_0x1e17c5){if(!_0x1e17c5){_0x3241d9['sendStatus'](0x194);}return _0x1e17c5;};}function handleError(_0x8f25b,_0x56225a){_0x56225a=_0x56225a||0x1f4;return function(_0x2c59ef){logger['error'](_0x2c59ef['stack']);if(_0x2c59ef[_0x9307('0x23')]){delete _0x2c59ef[_0x9307('0x23')];}_0x8f25b[_0x9307('0x17')](_0x56225a)[_0x9307('0x24')](_0x2c59ef);};}exports[_0x9307('0x25')]=function(_0xd89e2f,_0x15145d){var _0x5927ce={},_0x43330f={},_0x5e2de0={'count':0x0,'rows':[]};var _0x1da3e3=_[_0x9307('0x26')](db[_0x9307('0x27')]['rawAttributes'],function(_0x4619e5){return{'name':_0x4619e5['fieldName'],'type':_0x4619e5['type']['key']};});_0x43330f[_0x9307('0x28')]=_['map'](_0x1da3e3,_0x9307('0x23'));_0x43330f[_0x9307('0x29')]=_[_0x9307('0x2a')](_0xd89e2f[_0x9307('0x29')]);_0x43330f[_0x9307('0x2b')]=_[_0x9307('0x2c')](_0x43330f['model'],_0x43330f[_0x9307('0x29')]);_0x5927ce[_0x9307('0x2d')]=_[_0x9307('0x2c')](_0x43330f[_0x9307('0x28')],qs[_0x9307('0x2e')](_0xd89e2f[_0x9307('0x29')][_0x9307('0x2e')]));_0x5927ce['attributes']=_0x5927ce['attributes'][_0x9307('0x2f')]?_0x5927ce[_0x9307('0x2d')]:_0x43330f[_0x9307('0x28')];if(!_0xd89e2f[_0x9307('0x29')][_0x9307('0x30')](_0x9307('0x31'))){_0x5927ce[_0x9307('0x1a')]=qs[_0x9307('0x1a')](_0xd89e2f[_0x9307('0x29')][_0x9307('0x1a')]);_0x5927ce['offset']=qs[_0x9307('0x19')](_0xd89e2f[_0x9307('0x29')][_0x9307('0x19')]);}_0x5927ce[_0x9307('0x32')]=qs[_0x9307('0x33')](_0xd89e2f[_0x9307('0x29')][_0x9307('0x33')]);_0x5927ce[_0x9307('0x34')]=qs[_0x9307('0x2b')](_[_0x9307('0x35')](_0xd89e2f[_0x9307('0x29')],_0x43330f[_0x9307('0x2b')]),_0x1da3e3);if(_0xd89e2f[_0x9307('0x29')][_0x9307('0x36')]){_0x5927ce['where']=_[_0x9307('0x37')](_0x5927ce[_0x9307('0x34')],{'$or':_[_0x9307('0x26')](_0x1da3e3,function(_0x3b6af2){if(_0x3b6af2[_0x9307('0x38')]!==_0x9307('0x39')){var _0x1240bc={};_0x1240bc[_0x3b6af2[_0x9307('0x23')]]={'$like':'%'+_0xd89e2f['query'][_0x9307('0x36')]+'%'};return _0x1240bc;}})});}_0x5927ce=_[_0x9307('0x37')]({},_0x5927ce,_0xd89e2f[_0x9307('0x3a')]);var _0x5a8665={'where':_0x5927ce[_0x9307('0x34')]};return db[_0x9307('0x27')][_0x9307('0x18')](_0x5a8665)['then'](function(_0x408648){_0x5e2de0[_0x9307('0x18')]=_0x408648;if(_0xd89e2f[_0x9307('0x29')][_0x9307('0x3b')]){_0x5927ce['include']=[{'all':!![]}];}return db['FaxTransferReport'][_0x9307('0x3c')](_0x5927ce);})[_0x9307('0x21')](function(_0x4726fa){_0x5e2de0['rows']=_0x4726fa;return _0x5e2de0;})['then'](respondWithFilteredResult(_0x15145d,_0x5927ce))[_0x9307('0x3d')](handleError(_0x15145d,null));};exports['show']=function(_0x25903c,_0x24cff3){var _0x5d321d={'raw':!![],'where':{'id':_0x25903c[_0x9307('0x3e')]['id']}},_0x6b5ba6={};_0x6b5ba6[_0x9307('0x28')]=_[_0x9307('0x2a')](db[_0x9307('0x27')][_0x9307('0x3f')]);_0x6b5ba6[_0x9307('0x29')]=_[_0x9307('0x2a')](_0x25903c[_0x9307('0x29')]);_0x6b5ba6['filters']=_['intersection'](_0x6b5ba6[_0x9307('0x28')],_0x6b5ba6[_0x9307('0x29')]);_0x5d321d[_0x9307('0x2d')]=_[_0x9307('0x2c')](_0x6b5ba6[_0x9307('0x28')],qs[_0x9307('0x2e')](_0x25903c['query']['fields']));_0x5d321d[_0x9307('0x2d')]=_0x5d321d[_0x9307('0x2d')]['length']?_0x5d321d[_0x9307('0x2d')]:_0x6b5ba6['model'];if(_0x25903c[_0x9307('0x29')][_0x9307('0x3b')]){_0x5d321d['include']=[{'all':!![]}];}_0x5d321d=_[_0x9307('0x37')]({},_0x5d321d,_0x25903c[_0x9307('0x3a')]);return db[_0x9307('0x27')][_0x9307('0x40')](_0x5d321d)[_0x9307('0x21')](handleEntityNotFound(_0x24cff3,null))[_0x9307('0x21')](respondWithResult(_0x24cff3,null))[_0x9307('0x3d')](handleError(_0x24cff3,null));};exports[_0x9307('0x41')]=function(_0x57f146,_0x3ff0a4){return db[_0x9307('0x27')][_0x9307('0x41')](_0x57f146[_0x9307('0x42')],{})[_0x9307('0x21')](respondWithResult(_0x3ff0a4,0xc9))['catch'](handleError(_0x3ff0a4,null));};exports[_0x9307('0x20')]=function(_0x47bfdf,_0x4a8fc0){if(_0x47bfdf[_0x9307('0x42')]['id']){delete _0x47bfdf[_0x9307('0x42')]['id'];}return db[_0x9307('0x27')][_0x9307('0x40')]({'where':{'id':_0x47bfdf[_0x9307('0x3e')]['id']}})['then'](handleEntityNotFound(_0x4a8fc0,null))[_0x9307('0x21')](saveUpdates(_0x47bfdf['body'],null))[_0x9307('0x21')](respondWithResult(_0x4a8fc0,null))[_0x9307('0x3d')](handleError(_0x4a8fc0,null));};exports['destroy']=function(_0x50c84c,_0x25fd32){return db[_0x9307('0x27')][_0x9307('0x40')]({'where':{'id':_0x50c84c[_0x9307('0x3e')]['id']}})[_0x9307('0x21')](handleEntityNotFound(_0x25fd32,null))['then'](removeEntity(_0x25fd32,null))[_0x9307('0x3d')](handleError(_0x25fd32,null));};exports[_0x9307('0x43')]=function(_0x3a1f7d,_0xf4e6da){return db['FaxTransferReport']['describe']()['then'](respondWithResult(_0xf4e6da,null))[_0x9307('0x3d')](handleError(_0xf4e6da,null));};
\ No newline at end of file
+var _0x0092=['length','hasOwnProperty','order','sort','where','filters','filter','type','VIRTUAL','merge','options','includeAll','include','FaxTransferReport','findAll','rows','catch','show','create','body','params','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','to-csv','ejs','lodash','squel','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','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','update','destroy','then','end','error','stack','name','send','index','rawAttributes','fieldName','model','map','query','keys','intersection','fields','attributes'];(function(_0x58d90a,_0x1a2ea6){var _0x3938a9=function(_0x4f324c){while(--_0x4f324c){_0x58d90a['push'](_0x58d90a['shift']());}};_0x3938a9(++_0x1a2ea6);}(_0x0092,0xf4));var _0x2009=function(_0x42bda2,_0x4106ca){_0x42bda2=_0x42bda2-0x0;var _0x625d2d=_0x0092[_0x42bda2];return _0x625d2d;};'use strict';var emlformat=require(_0x2009('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2009('0x1'));var jsonpatch=require(_0x2009('0x2'));var rp=require(_0x2009('0x3'));var moment=require(_0x2009('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x2009('0x5'));var path=require(_0x2009('0x6'));var sox=require('sox');var csv=require(_0x2009('0x7'));var ejs=require(_0x2009('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2009('0x9'));var squel=require(_0x2009('0xa'));var crypto=require('crypto');var jsforce=require(_0x2009('0xb'));var deskjs=require(_0x2009('0xc'));var toCsv=require(_0x2009('0x7'));var querystring=require(_0x2009('0xd'));var Papa=require(_0x2009('0xe'));var Redis=require(_0x2009('0xf'));var authService=require(_0x2009('0x10'));var qs=require(_0x2009('0x11'));var as=require(_0x2009('0x12'));var hardwareService=require(_0x2009('0x13'));var logger=require(_0x2009('0x14'))(_0x2009('0x15'));var utils=require(_0x2009('0x16'));var config=require(_0x2009('0x17'));var licenseUtil=require(_0x2009('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5ca051,_0xfbfa4){_0xfbfa4=_0xfbfa4||0xcc;return function(_0x804eb7){if(_0x804eb7){return _0x5ca051[_0x2009('0x19')](_0xfbfa4);}return _0x5ca051[_0x2009('0x1a')](_0xfbfa4)['end']();};}function respondWithResult(_0x270f13,_0x4464b1){_0x4464b1=_0x4464b1||0xc8;return function(_0x1cdda5){if(_0x1cdda5){return _0x270f13[_0x2009('0x1a')](_0x4464b1)[_0x2009('0x1b')](_0x1cdda5);}};}function respondWithFilteredResult(_0x5896ff,_0x281f84){return function(_0x33fcf8){if(_0x33fcf8){var _0x4a9c65=typeof _0x281f84['offset']===_0x2009('0x1c')&&typeof _0x281f84[_0x2009('0x1d')]===_0x2009('0x1c');var _0x6a6e18=_0x33fcf8[_0x2009('0x1e')];var _0x5de38a=_0x4a9c65?0x0:_0x281f84[_0x2009('0x1f')];var _0x30e266=_0x4a9c65?_0x33fcf8['count']:_0x281f84['offset']+_0x281f84[_0x2009('0x1d')];var _0x30b3fd;if(_0x30e266>=_0x6a6e18){_0x30e266=_0x6a6e18;_0x30b3fd=0xc8;}else{_0x30b3fd=0xce;}_0x5896ff['status'](_0x30b3fd);return _0x5896ff[_0x2009('0x20')](_0x2009('0x21'),_0x5de38a+'-'+_0x30e266+'/'+_0x6a6e18)[_0x2009('0x1b')](_0x33fcf8);}return null;};}function patchUpdates(_0x2a3cbd){return function(_0x5b00d9){try{jsonpatch['apply'](_0x5b00d9,_0x2a3cbd,!![]);}catch(_0x162aaa){return BPromise['reject'](_0x162aaa);}return _0x5b00d9['save']();};}function saveUpdates(_0x1653c3,_0xfd6438){return function(_0x3f6b2a){if(_0x3f6b2a){return _0x3f6b2a[_0x2009('0x22')](_0x1653c3)['then'](function(_0x2241ae){return _0x2241ae;});}return null;};}function removeEntity(_0x4c87ed,_0x5e6a11){return function(_0x1e21ac){if(_0x1e21ac){return _0x1e21ac[_0x2009('0x23')]()[_0x2009('0x24')](function(){_0x4c87ed[_0x2009('0x1a')](0xcc)[_0x2009('0x25')]();});}};}function handleEntityNotFound(_0x5a3b47,_0x280db9){return function(_0xe627c0){if(!_0xe627c0){_0x5a3b47['sendStatus'](0x194);}return _0xe627c0;};}function handleError(_0xdc516c,_0x48b57d){_0x48b57d=_0x48b57d||0x1f4;return function(_0x5bda4a){logger[_0x2009('0x26')](_0x5bda4a[_0x2009('0x27')]);if(_0x5bda4a['name']){delete _0x5bda4a[_0x2009('0x28')];}_0xdc516c[_0x2009('0x1a')](_0x48b57d)[_0x2009('0x29')](_0x5bda4a);};}exports[_0x2009('0x2a')]=function(_0x1e0e3c,_0x42e3a9){var _0x8d2def={},_0x4a3eb5={},_0x33168b={'count':0x0,'rows':[]};var _0x3b2fd1=_['map'](db['FaxTransferReport'][_0x2009('0x2b')],function(_0x385bb0){return{'name':_0x385bb0[_0x2009('0x2c')],'type':_0x385bb0['type']['key']};});_0x4a3eb5[_0x2009('0x2d')]=_[_0x2009('0x2e')](_0x3b2fd1,_0x2009('0x28'));_0x4a3eb5[_0x2009('0x2f')]=_[_0x2009('0x30')](_0x1e0e3c[_0x2009('0x2f')]);_0x4a3eb5['filters']=_['intersection'](_0x4a3eb5[_0x2009('0x2d')],_0x4a3eb5['query']);_0x8d2def['attributes']=_[_0x2009('0x31')](_0x4a3eb5[_0x2009('0x2d')],qs[_0x2009('0x32')](_0x1e0e3c[_0x2009('0x2f')]['fields']));_0x8d2def[_0x2009('0x33')]=_0x8d2def[_0x2009('0x33')][_0x2009('0x34')]?_0x8d2def['attributes']:_0x4a3eb5[_0x2009('0x2d')];if(!_0x1e0e3c[_0x2009('0x2f')][_0x2009('0x35')]('nolimit')){_0x8d2def[_0x2009('0x1d')]=qs[_0x2009('0x1d')](_0x1e0e3c[_0x2009('0x2f')][_0x2009('0x1d')]);_0x8d2def[_0x2009('0x1f')]=qs[_0x2009('0x1f')](_0x1e0e3c['query'][_0x2009('0x1f')]);}_0x8d2def[_0x2009('0x36')]=qs['sort'](_0x1e0e3c['query'][_0x2009('0x37')]);_0x8d2def[_0x2009('0x38')]=qs[_0x2009('0x39')](_['pick'](_0x1e0e3c[_0x2009('0x2f')],_0x4a3eb5['filters']),_0x3b2fd1);if(_0x1e0e3c[_0x2009('0x2f')][_0x2009('0x3a')]){_0x8d2def[_0x2009('0x38')]=_['merge'](_0x8d2def[_0x2009('0x38')],{'$or':_['map'](_0x3b2fd1,function(_0x7bf1b0){if(_0x7bf1b0[_0x2009('0x3b')]!==_0x2009('0x3c')){var _0x5c00ab={};_0x5c00ab[_0x7bf1b0[_0x2009('0x28')]]={'$like':'%'+_0x1e0e3c[_0x2009('0x2f')][_0x2009('0x3a')]+'%'};return _0x5c00ab;}})});}_0x8d2def=_[_0x2009('0x3d')]({},_0x8d2def,_0x1e0e3c[_0x2009('0x3e')]);var _0xbad651={'where':_0x8d2def[_0x2009('0x38')]};return db['FaxTransferReport'][_0x2009('0x1e')](_0xbad651)[_0x2009('0x24')](function(_0x1652d8){_0x33168b['count']=_0x1652d8;if(_0x1e0e3c[_0x2009('0x2f')][_0x2009('0x3f')]){_0x8d2def[_0x2009('0x40')]=[{'all':!![]}];}return db[_0x2009('0x41')][_0x2009('0x42')](_0x8d2def);})[_0x2009('0x24')](function(_0x100e38){_0x33168b[_0x2009('0x43')]=_0x100e38;return _0x33168b;})[_0x2009('0x24')](respondWithFilteredResult(_0x42e3a9,_0x8d2def))[_0x2009('0x44')](handleError(_0x42e3a9,null));};exports[_0x2009('0x45')]=function(_0x1149e1,_0x123044){var _0x396fd9={'raw':!![],'where':{'id':_0x1149e1['params']['id']}},_0x134619={};_0x134619[_0x2009('0x2d')]=_[_0x2009('0x30')](db[_0x2009('0x41')][_0x2009('0x2b')]);_0x134619[_0x2009('0x2f')]=_[_0x2009('0x30')](_0x1149e1[_0x2009('0x2f')]);_0x134619['filters']=_[_0x2009('0x31')](_0x134619[_0x2009('0x2d')],_0x134619[_0x2009('0x2f')]);_0x396fd9['attributes']=_['intersection'](_0x134619[_0x2009('0x2d')],qs[_0x2009('0x32')](_0x1149e1['query']['fields']));_0x396fd9[_0x2009('0x33')]=_0x396fd9[_0x2009('0x33')][_0x2009('0x34')]?_0x396fd9[_0x2009('0x33')]:_0x134619[_0x2009('0x2d')];if(_0x1149e1['query'][_0x2009('0x3f')]){_0x396fd9[_0x2009('0x40')]=[{'all':!![]}];}_0x396fd9=_[_0x2009('0x3d')]({},_0x396fd9,_0x1149e1['options']);return db[_0x2009('0x41')]['find'](_0x396fd9)[_0x2009('0x24')](handleEntityNotFound(_0x123044,null))['then'](respondWithResult(_0x123044,null))[_0x2009('0x44')](handleError(_0x123044,null));};exports[_0x2009('0x46')]=function(_0x35ea99,_0x33b0e6){return db[_0x2009('0x41')][_0x2009('0x46')](_0x35ea99[_0x2009('0x47')],{})[_0x2009('0x24')](respondWithResult(_0x33b0e6,0xc9))[_0x2009('0x44')](handleError(_0x33b0e6,null));};exports[_0x2009('0x22')]=function(_0x3e5bb0,_0x583d0d){if(_0x3e5bb0[_0x2009('0x47')]['id']){delete _0x3e5bb0['body']['id'];}return db['FaxTransferReport']['find']({'where':{'id':_0x3e5bb0[_0x2009('0x48')]['id']}})['then'](handleEntityNotFound(_0x583d0d,null))[_0x2009('0x24')](saveUpdates(_0x3e5bb0[_0x2009('0x47')],null))[_0x2009('0x24')](respondWithResult(_0x583d0d,null))[_0x2009('0x44')](handleError(_0x583d0d,null));};exports[_0x2009('0x23')]=function(_0x5b0ebc,_0x535fac){return db['FaxTransferReport']['find']({'where':{'id':_0x5b0ebc[_0x2009('0x48')]['id']}})[_0x2009('0x24')](handleEntityNotFound(_0x535fac,null))['then'](removeEntity(_0x535fac,null))[_0x2009('0x44')](handleError(_0x535fac,null));};exports[_0x2009('0x49')]=function(_0x3838af,_0x55ca2b){return db['FaxTransferReport'][_0x2009('0x49')]()[_0x2009('0x24')](respondWithResult(_0x55ca2b,null))[_0x2009('0x44')](handleError(_0x55ca2b,null));};
\ No newline at end of file