Built motion from commit (unavailable).|2.5.21
[motion2.git] / server / api / userProfileSection / userProfileSection.controller.js
index 1ad63f5..57c6e23 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xe256=['findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','body','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','lodash','crypto','desk.js','querystring','papaparse','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','sendStatus','error','name','send','UserProfileSection','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','include'];(function(_0x3cf307,_0x4646ac){var _0x139bc9=function(_0x177353){while(--_0x177353){_0x3cf307['push'](_0x3cf307['shift']());}};_0x139bc9(++_0x4646ac);}(_0xe256,0x16e));var _0x6e25=function(_0x1e8f74,_0x311362){_0x1e8f74=_0x1e8f74-0x0;var _0x5935d7=_0xe256[_0x1e8f74];return _0x5935d7;};'use strict';var pdf=require(_0x6e25('0x0'));var emlformat=require(_0x6e25('0x1'));var rimraf=require(_0x6e25('0x2'));var zipdir=require(_0x6e25('0x3'));var jsonpatch=require(_0x6e25('0x4'));var rp=require(_0x6e25('0x5'));var moment=require(_0x6e25('0x6'));var BPromise=require(_0x6e25('0x7'));var Mustache=require('mustache');var util=require('util');var path=require(_0x6e25('0x8'));var sox=require('sox');var csv=require(_0x6e25('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6e25('0xa'));var squel=require('squel');var crypto=require(_0x6e25('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x6e25('0xc'));var toCsv=require(_0x6e25('0x9'));var querystring=require(_0x6e25('0xd'));var Papa=require(_0x6e25('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6e25('0xf'));var utils=require(_0x6e25('0x10'));var config=require(_0x6e25('0x11'));var licenseUtil=require(_0x6e25('0x12'));var db=require(_0x6e25('0x13'))['db'];function respondWithStatusCode(_0x5acbc2,_0x15b0e6){_0x15b0e6=_0x15b0e6||0xcc;return function(_0x5a004){if(_0x5a004){return _0x5acbc2['sendStatus'](_0x15b0e6);}return _0x5acbc2[_0x6e25('0x14')](_0x15b0e6)[_0x6e25('0x15')]();};}function respondWithResult(_0x2507e4,_0x4d8b28){_0x4d8b28=_0x4d8b28||0xc8;return function(_0x1bb391){if(_0x1bb391){return _0x2507e4[_0x6e25('0x14')](_0x4d8b28)[_0x6e25('0x16')](_0x1bb391);}};}function respondWithFilteredResult(_0x368883,_0x117104){return function(_0x3817bb){if(_0x3817bb){var _0x4fa00b=_0x3817bb[_0x6e25('0x17')],_0x144b79=_0x117104[_0x6e25('0x18')],_0x50ed2c=_0x117104[_0x6e25('0x18')]+_0x117104[_0x6e25('0x19')],_0x2cafa4;if(_0x50ed2c>=_0x4fa00b){_0x50ed2c=_0x4fa00b;_0x2cafa4=0xc8;}else{_0x2cafa4=0xce;}_0x368883['status'](_0x2cafa4);return _0x368883[_0x6e25('0x1a')](_0x6e25('0x1b'),_0x144b79+'-'+_0x50ed2c+'/'+_0x4fa00b)['json'](_0x3817bb);}return null;};}function patchUpdates(_0x15b940){return function(_0x157142){try{jsonpatch[_0x6e25('0x1c')](_0x157142,_0x15b940,!![]);}catch(_0x17bea4){return BPromise['reject'](_0x17bea4);}return _0x157142[_0x6e25('0x1d')]();};}function saveUpdates(_0x5ed492,_0x3180d4){return function(_0x4ea049){if(_0x4ea049){return _0x4ea049[_0x6e25('0x1e')](_0x5ed492)[_0x6e25('0x1f')](function(_0x42a335){return _0x42a335;});}return null;};}function removeEntity(_0x498faf,_0x25718c){return function(_0x26169f){if(_0x26169f){return _0x26169f[_0x6e25('0x20')]()[_0x6e25('0x1f')](function(){_0x498faf[_0x6e25('0x14')](0xcc)[_0x6e25('0x15')]();});}};}function handleEntityNotFound(_0x2dda0f,_0x24a3ab){return function(_0x44d8e5){if(!_0x44d8e5){_0x2dda0f[_0x6e25('0x21')](0x194);}return _0x44d8e5;};}function handleError(_0x492163,_0x62ef2){_0x62ef2=_0x62ef2||0x1f4;return function(_0x46bf24){logger[_0x6e25('0x22')](_0x46bf24['stack']);if(_0x46bf24[_0x6e25('0x23')]){delete _0x46bf24['name'];}_0x492163[_0x6e25('0x14')](_0x62ef2)[_0x6e25('0x24')](_0x46bf24);};}exports['index']=function(_0x548e23,_0x233531){var _0x5f03d6={},_0x25a58e={},_0x51ce8e={'count':0x0,'rows':[]};var _0x515e84=_['map'](db[_0x6e25('0x25')]['rawAttributes'],function(_0x2d147f){return{'name':_0x2d147f[_0x6e25('0x26')],'type':_0x2d147f[_0x6e25('0x27')][_0x6e25('0x28')]};});_0x25a58e[_0x6e25('0x29')]=_[_0x6e25('0x2a')](_0x515e84,_0x6e25('0x23'));_0x25a58e[_0x6e25('0x2b')]=_[_0x6e25('0x2c')](_0x548e23[_0x6e25('0x2b')]);_0x25a58e[_0x6e25('0x2d')]=_[_0x6e25('0x2e')](_0x25a58e['model'],_0x25a58e['query']);_0x5f03d6[_0x6e25('0x2f')]=_[_0x6e25('0x2e')](_0x25a58e[_0x6e25('0x29')],qs[_0x6e25('0x30')](_0x548e23[_0x6e25('0x2b')][_0x6e25('0x30')]));_0x5f03d6[_0x6e25('0x2f')]=_0x5f03d6[_0x6e25('0x2f')][_0x6e25('0x31')]?_0x5f03d6['attributes']:_0x25a58e[_0x6e25('0x29')];if(!_0x548e23[_0x6e25('0x2b')][_0x6e25('0x32')](_0x6e25('0x33'))){_0x5f03d6[_0x6e25('0x19')]=qs[_0x6e25('0x19')](_0x548e23['query']['limit']);_0x5f03d6[_0x6e25('0x18')]=qs[_0x6e25('0x18')](_0x548e23[_0x6e25('0x2b')]['offset']);}_0x5f03d6[_0x6e25('0x34')]=qs[_0x6e25('0x35')](_0x548e23[_0x6e25('0x2b')]['sort']);_0x5f03d6[_0x6e25('0x36')]=qs[_0x6e25('0x2d')](_[_0x6e25('0x37')](_0x548e23[_0x6e25('0x2b')],_0x25a58e[_0x6e25('0x2d')]),_0x515e84);if(_0x548e23[_0x6e25('0x2b')][_0x6e25('0x38')]){_0x5f03d6[_0x6e25('0x36')]=_['merge'](_0x5f03d6[_0x6e25('0x36')],{'$or':_['map'](_0x515e84,function(_0x59a6dc){if(_0x59a6dc['type']!==_0x6e25('0x39')){var _0x32c093={};_0x32c093[_0x59a6dc[_0x6e25('0x23')]]={'$like':'%'+_0x548e23[_0x6e25('0x2b')][_0x6e25('0x38')]+'%'};return _0x32c093;}})});}_0x5f03d6=_[_0x6e25('0x3a')]({},_0x5f03d6,_0x548e23['options']);var _0x3d953e={'where':_0x5f03d6['where']};return db['UserProfileSection']['count'](_0x3d953e)[_0x6e25('0x1f')](function(_0x377dc5){_0x51ce8e[_0x6e25('0x17')]=_0x377dc5;if(_0x548e23[_0x6e25('0x2b')]['includeAll']){_0x5f03d6[_0x6e25('0x3b')]=[{'all':!![]}];}return db[_0x6e25('0x25')][_0x6e25('0x3c')](_0x5f03d6);})['then'](function(_0x253e1d){_0x51ce8e[_0x6e25('0x3d')]=_0x253e1d;return _0x51ce8e;})[_0x6e25('0x1f')](respondWithFilteredResult(_0x233531,_0x5f03d6))[_0x6e25('0x3e')](handleError(_0x233531,null));};exports[_0x6e25('0x3f')]=function(_0x341d2f,_0xc02e9b){var _0x19ae99={'raw':![],'where':{'id':_0x341d2f[_0x6e25('0x40')]['id']}},_0xc9807d={};_0xc9807d[_0x6e25('0x29')]=_['keys'](db['UserProfileSection'][_0x6e25('0x41')]);_0xc9807d['query']=_['keys'](_0x341d2f[_0x6e25('0x2b')]);_0xc9807d['filters']=_[_0x6e25('0x2e')](_0xc9807d[_0x6e25('0x29')],_0xc9807d[_0x6e25('0x2b')]);_0x19ae99[_0x6e25('0x2f')]=_['intersection'](_0xc9807d['model'],qs[_0x6e25('0x30')](_0x341d2f[_0x6e25('0x2b')][_0x6e25('0x30')]));_0x19ae99[_0x6e25('0x2f')]=_0x19ae99[_0x6e25('0x2f')][_0x6e25('0x31')]?_0x19ae99[_0x6e25('0x2f')]:_0xc9807d['model'];if(_0x341d2f[_0x6e25('0x2b')][_0x6e25('0x42')]){_0x19ae99[_0x6e25('0x3b')]=[{'all':!![]}];}_0x19ae99=_[_0x6e25('0x3a')]({},_0x19ae99,_0x341d2f['options']);return db['UserProfileSection'][_0x6e25('0x43')](_0x19ae99)['then'](handleEntityNotFound(_0xc02e9b,null))[_0x6e25('0x1f')](respondWithResult(_0xc02e9b,null))['catch'](handleError(_0xc02e9b,null));};exports['create']=function(_0x35b726,_0x8d674a){return db[_0x6e25('0x25')][_0x6e25('0x44')](_0x35b726[_0x6e25('0x45')],{})['then'](respondWithResult(_0x8d674a,0xc9))[_0x6e25('0x3e')](handleError(_0x8d674a,null));};exports['update']=function(_0x3e9cd9,_0x37f7fc){if(_0x3e9cd9[_0x6e25('0x45')]['id']){delete _0x3e9cd9['body']['id'];}return db[_0x6e25('0x25')][_0x6e25('0x43')]({'where':{'id':_0x3e9cd9[_0x6e25('0x40')]['id']}})[_0x6e25('0x1f')](handleEntityNotFound(_0x37f7fc,null))[_0x6e25('0x1f')](saveUpdates(_0x3e9cd9[_0x6e25('0x45')],null))[_0x6e25('0x1f')](respondWithResult(_0x37f7fc,null))[_0x6e25('0x3e')](handleError(_0x37f7fc,null));};exports[_0x6e25('0x20')]=function(_0x36e2ef,_0x544de5){return db['UserProfileSection']['find']({'where':{'id':_0x36e2ef[_0x6e25('0x40')]['id']}})[_0x6e25('0x1f')](handleEntityNotFound(_0x544de5,null))[_0x6e25('0x1f')](removeEntity(_0x544de5,null))[_0x6e25('0x3e')](handleError(_0x544de5,null));};exports[_0x6e25('0x46')]=function(_0x200eb9,_0x1bbc26){return db[_0x6e25('0x25')][_0x6e25('0x46')]()['then'](respondWithResult(_0x1bbc26,null))[_0x6e25('0x3e')](handleError(_0x1bbc26,null));};
\ No newline at end of file
+var _0xc036=['destroy','stack','name','send','map','UserProfileSection','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','keys','fields','length','include','find','body','describe','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','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/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','reject','save','update','then'];(function(_0x5cba0d,_0xc5111a){var _0x42d38d=function(_0x344f21){while(--_0x344f21){_0x5cba0d['push'](_0x5cba0d['shift']());}};_0x42d38d(++_0xc5111a);}(_0xc036,0x1ec));var _0x6c03=function(_0x4b809b,_0x5de1c6){_0x4b809b=_0x4b809b-0x0;var _0x338f37=_0xc036[_0x4b809b];return _0x338f37;};'use strict';var pdf=require(_0x6c03('0x0'));var emlformat=require(_0x6c03('0x1'));var rimraf=require(_0x6c03('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6c03('0x3'));var rp=require(_0x6c03('0x4'));var moment=require(_0x6c03('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6c03('0x6'));var util=require(_0x6c03('0x7'));var path=require(_0x6c03('0x8'));var sox=require('sox');var csv=require(_0x6c03('0x9'));var ejs=require(_0x6c03('0xa'));var fs=require('fs');var _=require(_0x6c03('0xb'));var squel=require(_0x6c03('0xc'));var crypto=require(_0x6c03('0xd'));var jsforce=require(_0x6c03('0xe'));var deskjs=require(_0x6c03('0xf'));var toCsv=require(_0x6c03('0x9'));var querystring=require(_0x6c03('0x10'));var Papa=require(_0x6c03('0x11'));var Redis=require(_0x6c03('0x12'));var authService=require(_0x6c03('0x13'));var qs=require(_0x6c03('0x14'));var as=require(_0x6c03('0x15'));var hardwareService=require(_0x6c03('0x16'));var logger=require(_0x6c03('0x17'))(_0x6c03('0x18'));var utils=require(_0x6c03('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x6c03('0x1a'));var db=require(_0x6c03('0x1b'))['db'];function respondWithStatusCode(_0x30c75a,_0x191250){_0x191250=_0x191250||0xcc;return function(_0x4655e7){if(_0x4655e7){return _0x30c75a[_0x6c03('0x1c')](_0x191250);}return _0x30c75a[_0x6c03('0x1d')](_0x191250)[_0x6c03('0x1e')]();};}function respondWithResult(_0x111fce,_0x1ddcec){_0x1ddcec=_0x1ddcec||0xc8;return function(_0x2c3004){if(_0x2c3004){return _0x111fce['status'](_0x1ddcec)[_0x6c03('0x1f')](_0x2c3004);}};}function respondWithFilteredResult(_0x496d0f,_0xf384fd){return function(_0x3c0a97){if(_0x3c0a97){var _0x53dd8d=_0x3c0a97[_0x6c03('0x20')],_0x1eb32e=_0xf384fd[_0x6c03('0x21')],_0x4baa4d=_0xf384fd[_0x6c03('0x21')]+_0xf384fd[_0x6c03('0x22')],_0x5deeaa;if(_0x4baa4d>=_0x53dd8d){_0x4baa4d=_0x53dd8d;_0x5deeaa=0xc8;}else{_0x5deeaa=0xce;}_0x496d0f[_0x6c03('0x1d')](_0x5deeaa);return _0x496d0f[_0x6c03('0x23')]('Content-Range',_0x1eb32e+'-'+_0x4baa4d+'/'+_0x53dd8d)[_0x6c03('0x1f')](_0x3c0a97);}return null;};}function patchUpdates(_0x5be1c4){return function(_0x10d5c0){try{jsonpatch['apply'](_0x10d5c0,_0x5be1c4,!![]);}catch(_0x3c8f16){return BPromise[_0x6c03('0x24')](_0x3c8f16);}return _0x10d5c0[_0x6c03('0x25')]();};}function saveUpdates(_0x529679,_0x3ba35d){return function(_0x5ed98b){if(_0x5ed98b){return _0x5ed98b[_0x6c03('0x26')](_0x529679)[_0x6c03('0x27')](function(_0x2196e2){return _0x2196e2;});}return null;};}function removeEntity(_0x24fd51,_0x64c174){return function(_0x2dd035){if(_0x2dd035){return _0x2dd035[_0x6c03('0x28')]()[_0x6c03('0x27')](function(){_0x24fd51[_0x6c03('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x455b7e,_0x41a0da){return function(_0x3885b9){if(!_0x3885b9){_0x455b7e['sendStatus'](0x194);}return _0x3885b9;};}function handleError(_0x429a52,_0x26a075){_0x26a075=_0x26a075||0x1f4;return function(_0x382cc0){logger['error'](_0x382cc0[_0x6c03('0x29')]);if(_0x382cc0[_0x6c03('0x2a')]){delete _0x382cc0[_0x6c03('0x2a')];}_0x429a52['status'](_0x26a075)[_0x6c03('0x2b')](_0x382cc0);};}exports['index']=function(_0xaa056,_0x5c2741){var _0x229a6a={},_0x3839fb={},_0x145152={'count':0x0,'rows':[]};var _0x3659d7=_[_0x6c03('0x2c')](db[_0x6c03('0x2d')][_0x6c03('0x2e')],function(_0xace09d){return{'name':_0xace09d[_0x6c03('0x2f')],'type':_0xace09d[_0x6c03('0x30')][_0x6c03('0x31')]};});_0x3839fb[_0x6c03('0x32')]=_[_0x6c03('0x2c')](_0x3659d7,_0x6c03('0x2a'));_0x3839fb['query']=_['keys'](_0xaa056[_0x6c03('0x33')]);_0x3839fb[_0x6c03('0x34')]=_[_0x6c03('0x35')](_0x3839fb[_0x6c03('0x32')],_0x3839fb['query']);_0x229a6a['attributes']=_[_0x6c03('0x35')](_0x3839fb[_0x6c03('0x32')],qs['fields'](_0xaa056[_0x6c03('0x33')]['fields']));_0x229a6a['attributes']=_0x229a6a['attributes']['length']?_0x229a6a[_0x6c03('0x36')]:_0x3839fb[_0x6c03('0x32')];if(!_0xaa056[_0x6c03('0x33')]['hasOwnProperty']('nolimit')){_0x229a6a[_0x6c03('0x22')]=qs[_0x6c03('0x22')](_0xaa056[_0x6c03('0x33')][_0x6c03('0x22')]);_0x229a6a[_0x6c03('0x21')]=qs['offset'](_0xaa056['query'][_0x6c03('0x21')]);}_0x229a6a[_0x6c03('0x37')]=qs[_0x6c03('0x38')](_0xaa056[_0x6c03('0x33')][_0x6c03('0x38')]);_0x229a6a[_0x6c03('0x39')]=qs[_0x6c03('0x34')](_[_0x6c03('0x3a')](_0xaa056[_0x6c03('0x33')],_0x3839fb[_0x6c03('0x34')]),_0x3659d7);if(_0xaa056['query']['filter']){_0x229a6a[_0x6c03('0x39')]=_[_0x6c03('0x3b')](_0x229a6a[_0x6c03('0x39')],{'$or':_['map'](_0x3659d7,function(_0x5bdbfa){if(_0x5bdbfa[_0x6c03('0x30')]!==_0x6c03('0x3c')){var _0x3323e4={};_0x3323e4[_0x5bdbfa[_0x6c03('0x2a')]]={'$like':'%'+_0xaa056[_0x6c03('0x33')][_0x6c03('0x3d')]+'%'};return _0x3323e4;}})});}_0x229a6a=_['merge']({},_0x229a6a,_0xaa056[_0x6c03('0x3e')]);var _0xb9b3ca={'where':_0x229a6a[_0x6c03('0x39')]};return db[_0x6c03('0x2d')][_0x6c03('0x20')](_0xb9b3ca)['then'](function(_0x3e2db8){_0x145152[_0x6c03('0x20')]=_0x3e2db8;if(_0xaa056[_0x6c03('0x33')][_0x6c03('0x3f')]){_0x229a6a['include']=[{'all':!![]}];}return db['UserProfileSection'][_0x6c03('0x40')](_0x229a6a);})[_0x6c03('0x27')](function(_0x80c672){_0x145152[_0x6c03('0x41')]=_0x80c672;return _0x145152;})[_0x6c03('0x27')](respondWithFilteredResult(_0x5c2741,_0x229a6a))[_0x6c03('0x42')](handleError(_0x5c2741,null));};exports[_0x6c03('0x43')]=function(_0x2542ee,_0x3509a7){var _0x55e223={'raw':![],'where':{'id':_0x2542ee[_0x6c03('0x44')]['id']}},_0x399b1f={};_0x399b1f[_0x6c03('0x32')]=_[_0x6c03('0x45')](db[_0x6c03('0x2d')][_0x6c03('0x2e')]);_0x399b1f['query']=_['keys'](_0x2542ee[_0x6c03('0x33')]);_0x399b1f[_0x6c03('0x34')]=_['intersection'](_0x399b1f[_0x6c03('0x32')],_0x399b1f[_0x6c03('0x33')]);_0x55e223[_0x6c03('0x36')]=_['intersection'](_0x399b1f[_0x6c03('0x32')],qs[_0x6c03('0x46')](_0x2542ee['query']['fields']));_0x55e223['attributes']=_0x55e223[_0x6c03('0x36')][_0x6c03('0x47')]?_0x55e223[_0x6c03('0x36')]:_0x399b1f['model'];if(_0x2542ee[_0x6c03('0x33')]['includeAll']){_0x55e223[_0x6c03('0x48')]=[{'all':!![]}];}_0x55e223=_[_0x6c03('0x3b')]({},_0x55e223,_0x2542ee[_0x6c03('0x3e')]);return db[_0x6c03('0x2d')][_0x6c03('0x49')](_0x55e223)['then'](handleEntityNotFound(_0x3509a7,null))[_0x6c03('0x27')](respondWithResult(_0x3509a7,null))['catch'](handleError(_0x3509a7,null));};exports['create']=function(_0x21858e,_0x24ece7){return db['UserProfileSection']['create'](_0x21858e['body'],{})[_0x6c03('0x27')](respondWithResult(_0x24ece7,0xc9))[_0x6c03('0x42')](handleError(_0x24ece7,null));};exports['update']=function(_0x1f5dae,_0x15e0e6){if(_0x1f5dae[_0x6c03('0x4a')]['id']){delete _0x1f5dae[_0x6c03('0x4a')]['id'];}return db['UserProfileSection'][_0x6c03('0x49')]({'where':{'id':_0x1f5dae['params']['id']}})[_0x6c03('0x27')](handleEntityNotFound(_0x15e0e6,null))[_0x6c03('0x27')](saveUpdates(_0x1f5dae[_0x6c03('0x4a')],null))[_0x6c03('0x27')](respondWithResult(_0x15e0e6,null))[_0x6c03('0x42')](handleError(_0x15e0e6,null));};exports[_0x6c03('0x28')]=function(_0x47e058,_0x42db33){return db[_0x6c03('0x2d')][_0x6c03('0x49')]({'where':{'id':_0x47e058['params']['id']}})['then'](handleEntityNotFound(_0x42db33,null))[_0x6c03('0x27')](removeEntity(_0x42db33,null))[_0x6c03('0x42')](handleError(_0x42db33,null));};exports['describe']=function(_0x1f3dff,_0x4f073d){return db['UserProfileSection'][_0x6c03('0x4b')]()[_0x6c03('0x27')](respondWithResult(_0x4f073d,null))[_0x6c03('0x42')](handleError(_0x4f073d,null));};
\ No newline at end of file