Built motion from commit (unavailable).|2.5.6
[motion2.git] / server / api / voiceDialReport / voiceDialReport.controller.js
index c0c8b2b..ae2eb98 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x90fd=['key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','count','include','findAll','then','rows','show','params','find','catch','create','body','update','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','set','apply','reject','save','destroy','error','name','send','map','VoiceDialReport','rawAttributes','fieldName'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x90fd,0xba));var _0xd90f=function(_0x46fad7,_0x45e9d4){_0x46fad7=_0x46fad7-0x0;var _0x79ed5f=_0x90fd[_0x46fad7];return _0x79ed5f;};'use strict';var pdf=require(_0xd90f('0x0'));var emlformat=require(_0xd90f('0x1'));var rimraf=require(_0xd90f('0x2'));var zipdir=require(_0xd90f('0x3'));var jsonpatch=require(_0xd90f('0x4'));var rp=require(_0xd90f('0x5'));var moment=require(_0xd90f('0x6'));var BPromise=require(_0xd90f('0x7'));var Mustache=require(_0xd90f('0x8'));var util=require(_0xd90f('0x9'));var path=require(_0xd90f('0xa'));var sox=require(_0xd90f('0xb'));var csv=require(_0xd90f('0xc'));var ejs=require(_0xd90f('0xd'));var fs=require('fs');var _=require(_0xd90f('0xe'));var squel=require(_0xd90f('0xf'));var crypto=require(_0xd90f('0x10'));var jsforce=require(_0xd90f('0x11'));var deskjs=require(_0xd90f('0x12'));var toCsv=require(_0xd90f('0xc'));var querystring=require('querystring');var Papa=require(_0xd90f('0x13'));var Redis=require(_0xd90f('0x14'));var authService=require(_0xd90f('0x15'));var qs=require(_0xd90f('0x16'));var as=require(_0xd90f('0x17'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd90f('0x18'))(_0xd90f('0x19'));var utils=require('../../config/utils');var config=require(_0xd90f('0x1a'));var db=require(_0xd90f('0x1b'))['db'];function respondWithStatusCode(_0x4f1e0f,_0x45932e){_0x45932e=_0x45932e||0xcc;return function(_0x4d2f77){if(_0x4d2f77){return _0x4f1e0f[_0xd90f('0x1c')](_0x45932e);}return _0x4f1e0f[_0xd90f('0x1d')](_0x45932e)[_0xd90f('0x1e')]();};}function respondWithResult(_0x1edca8,_0x32552b){_0x32552b=_0x32552b||0xc8;return function(_0xd16155){if(_0xd16155){return _0x1edca8[_0xd90f('0x1d')](_0x32552b)[_0xd90f('0x1f')](_0xd16155);}};}function respondWithFilteredResult(_0x5ce1fe,_0x3f74b2){return function(_0x3d803d){if(_0x3d803d){var _0x3d27c1=_0x3d803d['count'],_0x554db8=_0x3f74b2['offset'],_0x16bade=_0x3f74b2[_0xd90f('0x20')]+_0x3f74b2['limit'],_0x11dd7e;if(_0x16bade>=_0x3d27c1){_0x16bade=_0x3d27c1;_0x11dd7e=0xc8;}else{_0x11dd7e=0xce;}_0x5ce1fe[_0xd90f('0x1d')](_0x11dd7e);return _0x5ce1fe[_0xd90f('0x21')]('Content-Range',_0x554db8+'-'+_0x16bade+'/'+_0x3d27c1)[_0xd90f('0x1f')](_0x3d803d);}return null;};}function patchUpdates(_0x59c609){return function(_0x236280){try{jsonpatch[_0xd90f('0x22')](_0x236280,_0x59c609,!![]);}catch(_0x2fdea9){return BPromise[_0xd90f('0x23')](_0x2fdea9);}return _0x236280[_0xd90f('0x24')]();};}function saveUpdates(_0x4374ee,_0x442f7b){return function(_0x5242e8){if(_0x5242e8){return _0x5242e8['update'](_0x4374ee)['then'](function(_0x1d2a00){return _0x1d2a00;});}return null;};}function removeEntity(_0x263597,_0x2775ee){return function(_0x562e45){if(_0x562e45){return _0x562e45[_0xd90f('0x25')]()['then'](function(){_0x263597[_0xd90f('0x1d')](0xcc)[_0xd90f('0x1e')]();});}};}function handleEntityNotFound(_0x4e4b18,_0x5a332f){return function(_0x4087d3){if(!_0x4087d3){_0x4e4b18[_0xd90f('0x1c')](0x194);}return _0x4087d3;};}function handleError(_0x7d3a26,_0x3928e4){_0x3928e4=_0x3928e4||0x1f4;return function(_0x7431d8){logger[_0xd90f('0x26')](_0x7431d8['stack']);if(_0x7431d8[_0xd90f('0x27')]){delete _0x7431d8[_0xd90f('0x27')];}_0x7d3a26[_0xd90f('0x1d')](_0x3928e4)[_0xd90f('0x28')](_0x7431d8);};}exports['index']=function(_0x1e382f,_0x4ebf37){var _0x2a9514={},_0x555fb1={},_0x5aa8e8={'count':0x0,'rows':[]};var _0x26e1d8=_[_0xd90f('0x29')](db[_0xd90f('0x2a')][_0xd90f('0x2b')],function(_0x873066){return{'name':_0x873066[_0xd90f('0x2c')],'type':_0x873066['type'][_0xd90f('0x2d')]};});_0x555fb1[_0xd90f('0x2e')]=_[_0xd90f('0x29')](_0x26e1d8,_0xd90f('0x27'));_0x555fb1[_0xd90f('0x2f')]=_[_0xd90f('0x30')](_0x1e382f[_0xd90f('0x2f')]);_0x555fb1[_0xd90f('0x31')]=_[_0xd90f('0x32')](_0x555fb1[_0xd90f('0x2e')],_0x555fb1[_0xd90f('0x2f')]);_0x2a9514[_0xd90f('0x33')]=_[_0xd90f('0x32')](_0x555fb1[_0xd90f('0x2e')],qs[_0xd90f('0x34')](_0x1e382f['query'][_0xd90f('0x34')]));_0x2a9514['attributes']=_0x2a9514['attributes']['length']?_0x2a9514['attributes']:_0x555fb1[_0xd90f('0x2e')];if(!_0x1e382f['query'][_0xd90f('0x35')](_0xd90f('0x36'))){_0x2a9514[_0xd90f('0x37')]=qs[_0xd90f('0x37')](_0x1e382f['query'][_0xd90f('0x37')]);_0x2a9514['offset']=qs[_0xd90f('0x20')](_0x1e382f[_0xd90f('0x2f')][_0xd90f('0x20')]);}_0x2a9514[_0xd90f('0x38')]=qs[_0xd90f('0x39')](_0x1e382f[_0xd90f('0x2f')][_0xd90f('0x39')]);_0x2a9514[_0xd90f('0x3a')]=qs[_0xd90f('0x31')](_[_0xd90f('0x3b')](_0x1e382f[_0xd90f('0x2f')],_0x555fb1['filters']));if(_0x1e382f[_0xd90f('0x2f')][_0xd90f('0x3c')]){_0x2a9514[_0xd90f('0x3a')]=_[_0xd90f('0x3d')](_0x2a9514[_0xd90f('0x3a')],{'$or':_[_0xd90f('0x29')](_0x26e1d8,function(_0x18f76d){if(_0x18f76d[_0xd90f('0x3e')]!==_0xd90f('0x3f')){var _0x50b42d={};_0x50b42d[_0x18f76d['name']]={'$like':'%'+_0x1e382f[_0xd90f('0x2f')][_0xd90f('0x3c')]+'%'};return _0x50b42d;}})});}_0x2a9514=_['merge']({},_0x2a9514,_0x1e382f[_0xd90f('0x40')]);var _0x550ba6={'where':_0x2a9514['where']};return db[_0xd90f('0x2a')][_0xd90f('0x41')](_0x550ba6)['then'](function(_0x9f55e6){_0x5aa8e8[_0xd90f('0x41')]=_0x9f55e6;if(_0x1e382f[_0xd90f('0x2f')]['includeAll']){_0x2a9514[_0xd90f('0x42')]=[{'all':!![]}];}return db['VoiceDialReport'][_0xd90f('0x43')](_0x2a9514);})[_0xd90f('0x44')](function(_0x99046f){_0x5aa8e8[_0xd90f('0x45')]=_0x99046f;return _0x5aa8e8;})[_0xd90f('0x44')](respondWithFilteredResult(_0x4ebf37,_0x2a9514))['catch'](handleError(_0x4ebf37,null));};exports[_0xd90f('0x46')]=function(_0x141e9b,_0x3f3c55){var _0x3f224c={'raw':!![],'where':{'id':_0x141e9b[_0xd90f('0x47')]['id']}},_0x4de675={};_0x4de675['model']=_[_0xd90f('0x30')](db['VoiceDialReport']['rawAttributes']);_0x4de675[_0xd90f('0x2f')]=_[_0xd90f('0x30')](_0x141e9b['query']);_0x4de675[_0xd90f('0x31')]=_[_0xd90f('0x32')](_0x4de675[_0xd90f('0x2e')],_0x4de675[_0xd90f('0x2f')]);_0x3f224c[_0xd90f('0x33')]=_[_0xd90f('0x32')](_0x4de675[_0xd90f('0x2e')],qs[_0xd90f('0x34')](_0x141e9b['query'][_0xd90f('0x34')]));_0x3f224c[_0xd90f('0x33')]=_0x3f224c[_0xd90f('0x33')]['length']?_0x3f224c[_0xd90f('0x33')]:_0x4de675['model'];if(_0x141e9b[_0xd90f('0x2f')]['includeAll']){_0x3f224c[_0xd90f('0x42')]=[{'all':!![]}];}_0x3f224c=_[_0xd90f('0x3d')]({},_0x3f224c,_0x141e9b['options']);return db[_0xd90f('0x2a')][_0xd90f('0x48')](_0x3f224c)[_0xd90f('0x44')](handleEntityNotFound(_0x3f3c55,null))[_0xd90f('0x44')](respondWithResult(_0x3f3c55,null))[_0xd90f('0x49')](handleError(_0x3f3c55,null));};exports[_0xd90f('0x4a')]=function(_0x251a4d,_0x7ebe57){return db['VoiceDialReport'][_0xd90f('0x4a')](_0x251a4d[_0xd90f('0x4b')],{})['then'](respondWithResult(_0x7ebe57,0xc9))[_0xd90f('0x49')](handleError(_0x7ebe57,null));};exports[_0xd90f('0x4c')]=function(_0x552ce0,_0x39b38e){if(_0x552ce0[_0xd90f('0x4b')]['id']){delete _0x552ce0[_0xd90f('0x4b')]['id'];}return db[_0xd90f('0x2a')]['find']({'where':{'id':_0x552ce0[_0xd90f('0x47')]['id']}})[_0xd90f('0x44')](handleEntityNotFound(_0x39b38e,null))['then'](saveUpdates(_0x552ce0[_0xd90f('0x4b')],null))[_0xd90f('0x44')](respondWithResult(_0x39b38e,null))['catch'](handleError(_0x39b38e,null));};exports['destroy']=function(_0x2a6155,_0x5a9536){return db[_0xd90f('0x2a')][_0xd90f('0x48')]({'where':{'id':_0x2a6155['params']['id']}})['then'](handleEntityNotFound(_0x5a9536,null))[_0xd90f('0x44')](removeEntity(_0x5a9536,null))[_0xd90f('0x49')](handleError(_0x5a9536,null));};exports['describe']=function(_0x5e87a7,_0x1699cc){return db[_0xd90f('0x2a')]['describe']()[_0xd90f('0x44')](respondWithResult(_0x1699cc,null))[_0xd90f('0x49')](handleError(_0x1699cc,null));};
\ No newline at end of file
+var _0x508f=['moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','then','destroy','error','name','send','VoiceDialReport','rawAttributes','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','params','include','find','catch','create','update','body','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x508f,0x162));var _0xf508=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x508f[_0x2641f9];return _0x585741;};'use strict';var pdf=require(_0xf508('0x0'));var emlformat=require(_0xf508('0x1'));var rimraf=require(_0xf508('0x2'));var zipdir=require(_0xf508('0x3'));var jsonpatch=require(_0xf508('0x4'));var rp=require(_0xf508('0x5'));var moment=require(_0xf508('0x6'));var BPromise=require(_0xf508('0x7'));var Mustache=require(_0xf508('0x8'));var util=require(_0xf508('0x9'));var path=require(_0xf508('0xa'));var sox=require(_0xf508('0xb'));var csv=require(_0xf508('0xc'));var ejs=require(_0xf508('0xd'));var fs=require('fs');var _=require(_0xf508('0xe'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xf508('0xc'));var querystring=require('querystring');var Papa=require(_0xf508('0xf'));var Redis=require(_0xf508('0x10'));var authService=require(_0xf508('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xf508('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf508('0x13'))(_0xf508('0x14'));var utils=require(_0xf508('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf508('0x16'));var db=require(_0xf508('0x17'))['db'];function respondWithStatusCode(_0x20f5e9,_0x1834bd){_0x1834bd=_0x1834bd||0xcc;return function(_0x300179){if(_0x300179){return _0x20f5e9[_0xf508('0x18')](_0x1834bd);}return _0x20f5e9[_0xf508('0x19')](_0x1834bd)[_0xf508('0x1a')]();};}function respondWithResult(_0x1013e1,_0xbe8cba){_0xbe8cba=_0xbe8cba||0xc8;return function(_0x364106){if(_0x364106){return _0x1013e1[_0xf508('0x19')](_0xbe8cba)[_0xf508('0x1b')](_0x364106);}};}function respondWithFilteredResult(_0x3063a4,_0x5b8625){return function(_0x55f6b8){if(_0x55f6b8){var _0x31bcb2=_0x55f6b8[_0xf508('0x1c')],_0x45e1c9=_0x5b8625[_0xf508('0x1d')],_0x86efbb=_0x5b8625['offset']+_0x5b8625[_0xf508('0x1e')],_0x508c3d;if(_0x86efbb>=_0x31bcb2){_0x86efbb=_0x31bcb2;_0x508c3d=0xc8;}else{_0x508c3d=0xce;}_0x3063a4[_0xf508('0x19')](_0x508c3d);return _0x3063a4[_0xf508('0x1f')](_0xf508('0x20'),_0x45e1c9+'-'+_0x86efbb+'/'+_0x31bcb2)[_0xf508('0x1b')](_0x55f6b8);}return null;};}function patchUpdates(_0x448c71){return function(_0x333ca7){try{jsonpatch[_0xf508('0x21')](_0x333ca7,_0x448c71,!![]);}catch(_0x169bef){return BPromise[_0xf508('0x22')](_0x169bef);}return _0x333ca7['save']();};}function saveUpdates(_0x54943c,_0x5eacc3){return function(_0x1b0143){if(_0x1b0143){return _0x1b0143['update'](_0x54943c)[_0xf508('0x23')](function(_0xa0b9e0){return _0xa0b9e0;});}return null;};}function removeEntity(_0x2848bf,_0x1496d1){return function(_0x386e2e){if(_0x386e2e){return _0x386e2e[_0xf508('0x24')]()[_0xf508('0x23')](function(){_0x2848bf[_0xf508('0x19')](0xcc)[_0xf508('0x1a')]();});}};}function handleEntityNotFound(_0x4e90ad,_0x135b9f){return function(_0x5e9686){if(!_0x5e9686){_0x4e90ad[_0xf508('0x18')](0x194);}return _0x5e9686;};}function handleError(_0x34d2b4,_0x3d5cdc){_0x3d5cdc=_0x3d5cdc||0x1f4;return function(_0x527bc0){logger[_0xf508('0x25')](_0x527bc0['stack']);if(_0x527bc0[_0xf508('0x26')]){delete _0x527bc0[_0xf508('0x26')];}_0x34d2b4[_0xf508('0x19')](_0x3d5cdc)[_0xf508('0x27')](_0x527bc0);};}exports['index']=function(_0x294aa6,_0x5c3762){var _0x170d7c={},_0x540fc2={},_0x53811e={'count':0x0,'rows':[]};var _0x4b1895=_['map'](db[_0xf508('0x28')][_0xf508('0x29')],function(_0x4a72f0){return{'name':_0x4a72f0['fieldName'],'type':_0x4a72f0[_0xf508('0x2a')][_0xf508('0x2b')]};});_0x540fc2[_0xf508('0x2c')]=_[_0xf508('0x2d')](_0x4b1895,_0xf508('0x26'));_0x540fc2[_0xf508('0x2e')]=_[_0xf508('0x2f')](_0x294aa6['query']);_0x540fc2[_0xf508('0x30')]=_[_0xf508('0x31')](_0x540fc2['model'],_0x540fc2[_0xf508('0x2e')]);_0x170d7c[_0xf508('0x32')]=_[_0xf508('0x31')](_0x540fc2['model'],qs[_0xf508('0x33')](_0x294aa6[_0xf508('0x2e')][_0xf508('0x33')]));_0x170d7c[_0xf508('0x32')]=_0x170d7c[_0xf508('0x32')][_0xf508('0x34')]?_0x170d7c[_0xf508('0x32')]:_0x540fc2[_0xf508('0x2c')];if(!_0x294aa6[_0xf508('0x2e')][_0xf508('0x35')]('nolimit')){_0x170d7c[_0xf508('0x1e')]=qs[_0xf508('0x1e')](_0x294aa6[_0xf508('0x2e')][_0xf508('0x1e')]);_0x170d7c[_0xf508('0x1d')]=qs[_0xf508('0x1d')](_0x294aa6[_0xf508('0x2e')][_0xf508('0x1d')]);}_0x170d7c['order']=qs[_0xf508('0x36')](_0x294aa6[_0xf508('0x2e')]['sort']);_0x170d7c[_0xf508('0x37')]=qs[_0xf508('0x30')](_[_0xf508('0x38')](_0x294aa6[_0xf508('0x2e')],_0x540fc2['filters']),_0x4b1895);if(_0x294aa6['query'][_0xf508('0x39')]){_0x170d7c['where']=_[_0xf508('0x3a')](_0x170d7c['where'],{'$or':_[_0xf508('0x2d')](_0x4b1895,function(_0x26d833){if(_0x26d833[_0xf508('0x2a')]!==_0xf508('0x3b')){var _0x324a52={};_0x324a52[_0x26d833[_0xf508('0x26')]]={'$like':'%'+_0x294aa6['query'][_0xf508('0x39')]+'%'};return _0x324a52;}})});}_0x170d7c=_[_0xf508('0x3a')]({},_0x170d7c,_0x294aa6[_0xf508('0x3c')]);var _0x9472a1={'where':_0x170d7c['where']};return db[_0xf508('0x28')][_0xf508('0x1c')](_0x9472a1)[_0xf508('0x23')](function(_0x101f37){_0x53811e[_0xf508('0x1c')]=_0x101f37;if(_0x294aa6[_0xf508('0x2e')][_0xf508('0x3d')]){_0x170d7c['include']=[{'all':!![]}];}return db[_0xf508('0x28')][_0xf508('0x3e')](_0x170d7c);})[_0xf508('0x23')](function(_0x5a9055){_0x53811e[_0xf508('0x3f')]=_0x5a9055;return _0x53811e;})[_0xf508('0x23')](respondWithFilteredResult(_0x5c3762,_0x170d7c))['catch'](handleError(_0x5c3762,null));};exports['show']=function(_0xc87b84,_0x297d9f){var _0x16b6e2={'raw':!![],'where':{'id':_0xc87b84[_0xf508('0x40')]['id']}},_0x5a39be={};_0x5a39be['model']=_[_0xf508('0x2f')](db[_0xf508('0x28')][_0xf508('0x29')]);_0x5a39be[_0xf508('0x2e')]=_[_0xf508('0x2f')](_0xc87b84[_0xf508('0x2e')]);_0x5a39be[_0xf508('0x30')]=_[_0xf508('0x31')](_0x5a39be[_0xf508('0x2c')],_0x5a39be[_0xf508('0x2e')]);_0x16b6e2[_0xf508('0x32')]=_[_0xf508('0x31')](_0x5a39be[_0xf508('0x2c')],qs['fields'](_0xc87b84['query'][_0xf508('0x33')]));_0x16b6e2[_0xf508('0x32')]=_0x16b6e2[_0xf508('0x32')][_0xf508('0x34')]?_0x16b6e2[_0xf508('0x32')]:_0x5a39be['model'];if(_0xc87b84[_0xf508('0x2e')][_0xf508('0x3d')]){_0x16b6e2[_0xf508('0x41')]=[{'all':!![]}];}_0x16b6e2=_[_0xf508('0x3a')]({},_0x16b6e2,_0xc87b84[_0xf508('0x3c')]);return db['VoiceDialReport'][_0xf508('0x42')](_0x16b6e2)[_0xf508('0x23')](handleEntityNotFound(_0x297d9f,null))[_0xf508('0x23')](respondWithResult(_0x297d9f,null))[_0xf508('0x43')](handleError(_0x297d9f,null));};exports[_0xf508('0x44')]=function(_0x275850,_0x4a8b1a){return db[_0xf508('0x28')]['create'](_0x275850['body'],{})[_0xf508('0x23')](respondWithResult(_0x4a8b1a,0xc9))['catch'](handleError(_0x4a8b1a,null));};exports[_0xf508('0x45')]=function(_0x16a74d,_0x5ebdf8){if(_0x16a74d[_0xf508('0x46')]['id']){delete _0x16a74d[_0xf508('0x46')]['id'];}return db[_0xf508('0x28')]['find']({'where':{'id':_0x16a74d['params']['id']}})[_0xf508('0x23')](handleEntityNotFound(_0x5ebdf8,null))[_0xf508('0x23')](saveUpdates(_0x16a74d['body'],null))['then'](respondWithResult(_0x5ebdf8,null))[_0xf508('0x43')](handleError(_0x5ebdf8,null));};exports['destroy']=function(_0x4dbb9f,_0xa4b196){return db[_0xf508('0x28')][_0xf508('0x42')]({'where':{'id':_0x4dbb9f[_0xf508('0x40')]['id']}})[_0xf508('0x23')](handleEntityNotFound(_0xa4b196,null))['then'](removeEntity(_0xa4b196,null))[_0xf508('0x43')](handleError(_0xa4b196,null));};exports[_0xf508('0x47')]=function(_0x5f50e3,_0x1c39d3){return db[_0xf508('0x28')][_0xf508('0x47')]()['then'](respondWithResult(_0x1c39d3,null))['catch'](handleError(_0x1c39d3,null));};
\ No newline at end of file