Built motion from commit c738b9ac.|2.6.25
[motion2.git] / server / api / memberReport / memberReport.controller.js
index 93b9301..62f142b 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x3ef3=['where','pick','filter','VIRTUAL','merge','includeAll','include','MemberReport','rows','params','find','catch','create','body','describe','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','update','then','destroy','end','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort'];(function(_0x3d83ac,_0x1d0135){var _0x299760=function(_0x40c1a3){while(--_0x40c1a3){_0x3d83ac['push'](_0x3d83ac['shift']());}};_0x299760(++_0x1d0135);}(_0x3ef3,0x99));var _0x33ef=function(_0x12fbf6,_0x2ab513){_0x12fbf6=_0x12fbf6-0x0;var _0x1bb0d7=_0x3ef3[_0x12fbf6];return _0x1bb0d7;};'use strict';var pdf=require(_0x33ef('0x0'));var emlformat=require(_0x33ef('0x1'));var rimraf=require(_0x33ef('0x2'));var zipdir=require(_0x33ef('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x33ef('0x4'));var BPromise=require(_0x33ef('0x5'));var Mustache=require('mustache');var util=require(_0x33ef('0x6'));var path=require(_0x33ef('0x7'));var sox=require(_0x33ef('0x8'));var csv=require('to-csv');var ejs=require(_0x33ef('0x9'));var fs=require('fs');var _=require(_0x33ef('0xa'));var squel=require(_0x33ef('0xb'));var crypto=require('crypto');var jsforce=require(_0x33ef('0xc'));var deskjs=require(_0x33ef('0xd'));var toCsv=require(_0x33ef('0xe'));var querystring=require('querystring');var Papa=require(_0x33ef('0xf'));var Redis=require(_0x33ef('0x10'));var authService=require(_0x33ef('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x33ef('0x12'));var logger=require(_0x33ef('0x13'))(_0x33ef('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1b7bf5,_0x9b5d16){_0x9b5d16=_0x9b5d16||0xcc;return function(_0x5b2770){if(_0x5b2770){return _0x1b7bf5[_0x33ef('0x15')](_0x9b5d16);}return _0x1b7bf5[_0x33ef('0x16')](_0x9b5d16)['end']();};}function respondWithResult(_0x5e9291,_0x205df7){_0x205df7=_0x205df7||0xc8;return function(_0x157994){if(_0x157994){return _0x5e9291[_0x33ef('0x16')](_0x205df7)[_0x33ef('0x17')](_0x157994);}};}function respondWithFilteredResult(_0xb20953,_0x10df88){return function(_0x3b0576){if(_0x3b0576){var _0x1cdd9d=_0x3b0576[_0x33ef('0x18')],_0x1c1774=_0x10df88[_0x33ef('0x19')],_0x75e0a1=_0x10df88['offset']+_0x10df88[_0x33ef('0x1a')],_0x28a966;if(_0x75e0a1>=_0x1cdd9d){_0x75e0a1=_0x1cdd9d;_0x28a966=0xc8;}else{_0x28a966=0xce;}_0xb20953[_0x33ef('0x16')](_0x28a966);return _0xb20953[_0x33ef('0x1b')](_0x33ef('0x1c'),_0x1c1774+'-'+_0x75e0a1+'/'+_0x1cdd9d)[_0x33ef('0x17')](_0x3b0576);}return null;};}function patchUpdates(_0x10f2e5){return function(_0x243099){try{jsonpatch['apply'](_0x243099,_0x10f2e5,!![]);}catch(_0x1b2569){return BPromise[_0x33ef('0x1d')](_0x1b2569);}return _0x243099['save']();};}function saveUpdates(_0xfd9575,_0x1969f2){return function(_0x265d8e){if(_0x265d8e){return _0x265d8e[_0x33ef('0x1e')](_0xfd9575)[_0x33ef('0x1f')](function(_0x156c36){return _0x156c36;});}return null;};}function removeEntity(_0x5e4aeb,_0x36aa69){return function(_0x3d440a){if(_0x3d440a){return _0x3d440a[_0x33ef('0x20')]()['then'](function(){_0x5e4aeb[_0x33ef('0x16')](0xcc)[_0x33ef('0x21')]();});}};}function handleEntityNotFound(_0x4b01a0,_0x4fc2a5){return function(_0x5ceb4a){if(!_0x5ceb4a){_0x4b01a0['sendStatus'](0x194);}return _0x5ceb4a;};}function handleError(_0x29cedc,_0x5e7bd2){_0x5e7bd2=_0x5e7bd2||0x1f4;return function(_0x390d87){logger[_0x33ef('0x22')](_0x390d87[_0x33ef('0x23')]);if(_0x390d87[_0x33ef('0x24')]){delete _0x390d87[_0x33ef('0x24')];}_0x29cedc['status'](_0x5e7bd2)[_0x33ef('0x25')](_0x390d87);};}exports[_0x33ef('0x26')]=function(_0x49f76c,_0x1d3714){var _0x130d92={},_0x1460e0={},_0x1ecd6d={'count':0x0,'rows':[]};var _0x4771ab=_[_0x33ef('0x27')](db['MemberReport'][_0x33ef('0x28')],function(_0x28ddc2){return{'name':_0x28ddc2[_0x33ef('0x29')],'type':_0x28ddc2[_0x33ef('0x2a')][_0x33ef('0x2b')]};});_0x1460e0[_0x33ef('0x2c')]=_['map'](_0x4771ab,_0x33ef('0x24'));_0x1460e0[_0x33ef('0x2d')]=_[_0x33ef('0x2e')](_0x49f76c[_0x33ef('0x2d')]);_0x1460e0[_0x33ef('0x2f')]=_['intersection'](_0x1460e0[_0x33ef('0x2c')],_0x1460e0['query']);_0x130d92['attributes']=_[_0x33ef('0x30')](_0x1460e0['model'],qs[_0x33ef('0x31')](_0x49f76c[_0x33ef('0x2d')][_0x33ef('0x31')]));_0x130d92['attributes']=_0x130d92[_0x33ef('0x32')]['length']?_0x130d92[_0x33ef('0x32')]:_0x1460e0[_0x33ef('0x2c')];if(!_0x49f76c[_0x33ef('0x2d')][_0x33ef('0x33')]('nolimit')){_0x130d92[_0x33ef('0x1a')]=qs[_0x33ef('0x1a')](_0x49f76c[_0x33ef('0x2d')][_0x33ef('0x1a')]);_0x130d92[_0x33ef('0x19')]=qs[_0x33ef('0x19')](_0x49f76c[_0x33ef('0x2d')][_0x33ef('0x19')]);}_0x130d92[_0x33ef('0x34')]=qs[_0x33ef('0x35')](_0x49f76c['query']['sort']);_0x130d92[_0x33ef('0x36')]=qs['filters'](_[_0x33ef('0x37')](_0x49f76c[_0x33ef('0x2d')],_0x1460e0['filters']),_0x4771ab);if(_0x49f76c['query'][_0x33ef('0x38')]){_0x130d92[_0x33ef('0x36')]=_['merge'](_0x130d92[_0x33ef('0x36')],{'$or':_[_0x33ef('0x27')](_0x4771ab,function(_0x228897){if(_0x228897['type']!==_0x33ef('0x39')){var _0x376ab1={};_0x376ab1[_0x228897['name']]={'$like':'%'+_0x49f76c[_0x33ef('0x2d')]['filter']+'%'};return _0x376ab1;}})});}_0x130d92=_[_0x33ef('0x3a')]({},_0x130d92,_0x49f76c['options']);var _0x3de77c={'where':_0x130d92[_0x33ef('0x36')]};return db['MemberReport']['count'](_0x3de77c)[_0x33ef('0x1f')](function(_0x549b56){_0x1ecd6d[_0x33ef('0x18')]=_0x549b56;if(_0x49f76c[_0x33ef('0x2d')][_0x33ef('0x3b')]){_0x130d92[_0x33ef('0x3c')]=[{'all':!![]}];}return db[_0x33ef('0x3d')]['findAll'](_0x130d92);})['then'](function(_0x2d1627){_0x1ecd6d[_0x33ef('0x3e')]=_0x2d1627;return _0x1ecd6d;})[_0x33ef('0x1f')](respondWithFilteredResult(_0x1d3714,_0x130d92))['catch'](handleError(_0x1d3714,null));};exports['show']=function(_0x287a71,_0x3acc66){var _0x59627d={'raw':!![],'where':{'id':_0x287a71[_0x33ef('0x3f')]['id']}},_0x1c942b={};_0x1c942b[_0x33ef('0x2c')]=_[_0x33ef('0x2e')](db[_0x33ef('0x3d')][_0x33ef('0x28')]);_0x1c942b[_0x33ef('0x2d')]=_['keys'](_0x287a71[_0x33ef('0x2d')]);_0x1c942b[_0x33ef('0x2f')]=_[_0x33ef('0x30')](_0x1c942b[_0x33ef('0x2c')],_0x1c942b['query']);_0x59627d['attributes']=_[_0x33ef('0x30')](_0x1c942b[_0x33ef('0x2c')],qs['fields'](_0x287a71[_0x33ef('0x2d')][_0x33ef('0x31')]));_0x59627d['attributes']=_0x59627d['attributes']['length']?_0x59627d[_0x33ef('0x32')]:_0x1c942b[_0x33ef('0x2c')];if(_0x287a71[_0x33ef('0x2d')]['includeAll']){_0x59627d[_0x33ef('0x3c')]=[{'all':!![]}];}_0x59627d=_[_0x33ef('0x3a')]({},_0x59627d,_0x287a71['options']);return db[_0x33ef('0x3d')][_0x33ef('0x40')](_0x59627d)['then'](handleEntityNotFound(_0x3acc66,null))[_0x33ef('0x1f')](respondWithResult(_0x3acc66,null))[_0x33ef('0x41')](handleError(_0x3acc66,null));};exports[_0x33ef('0x42')]=function(_0x23855c,_0x1d6d61){return db['MemberReport'][_0x33ef('0x42')](_0x23855c[_0x33ef('0x43')],{})['then'](respondWithResult(_0x1d6d61,0xc9))['catch'](handleError(_0x1d6d61,null));};exports[_0x33ef('0x1e')]=function(_0x564719,_0x12a1ad){if(_0x564719['body']['id']){delete _0x564719['body']['id'];}return db[_0x33ef('0x3d')][_0x33ef('0x40')]({'where':{'id':_0x564719[_0x33ef('0x3f')]['id']}})['then'](handleEntityNotFound(_0x12a1ad,null))['then'](saveUpdates(_0x564719['body'],null))[_0x33ef('0x1f')](respondWithResult(_0x12a1ad,null))[_0x33ef('0x41')](handleError(_0x12a1ad,null));};exports[_0x33ef('0x20')]=function(_0x491185,_0xa85748){return db[_0x33ef('0x3d')][_0x33ef('0x40')]({'where':{'id':_0x491185[_0x33ef('0x3f')]['id']}})['then'](handleEntityNotFound(_0xa85748,null))[_0x33ef('0x1f')](removeEntity(_0xa85748,null))[_0x33ef('0x41')](handleError(_0xa85748,null));};exports[_0x33ef('0x44')]=function(_0xa25397,_0x144220){return db[_0x33ef('0x3d')][_0x33ef('0x44')]()[_0x33ef('0x1f')](respondWithResult(_0x144220,null))[_0x33ef('0x41')](handleError(_0x144220,null));};
\ No newline at end of file
+var _0x9c44=['catch','params','find','create','body','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','sendStatus','stack','name','send','index','map','MemberReport','rawAttributes','fieldName','type','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','then','includeAll','include','findAll','rows'];(function(_0x314f69,_0x5bd79e){var _0x2cbdfa=function(_0xf083c){while(--_0xf083c){_0x314f69['push'](_0x314f69['shift']());}};_0x2cbdfa(++_0x5bd79e);}(_0x9c44,0x178));var _0x49c4=function(_0x2064e5,_0x4f6fa2){_0x2064e5=_0x2064e5-0x0;var _0x21a233=_0x9c44[_0x2064e5];return _0x21a233;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x49c4('0x0'));var jsonpatch=require(_0x49c4('0x1'));var rp=require(_0x49c4('0x2'));var moment=require(_0x49c4('0x3'));var BPromise=require(_0x49c4('0x4'));var Mustache=require(_0x49c4('0x5'));var util=require('util');var path=require('path');var sox=require(_0x49c4('0x6'));var csv=require('to-csv');var ejs=require(_0x49c4('0x7'));var fs=require('fs');var fs_extra=require(_0x49c4('0x8'));var _=require(_0x49c4('0x9'));var squel=require(_0x49c4('0xa'));var crypto=require(_0x49c4('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x49c4('0xc'));var toCsv=require(_0x49c4('0xd'));var querystring=require(_0x49c4('0xe'));var Papa=require(_0x49c4('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x49c4('0x10'));var as=require(_0x49c4('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x49c4('0x12'))(_0x49c4('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x49c4('0x14'));var db=require(_0x49c4('0x15'))['db'];function respondWithStatusCode(_0x5487cd,_0x7df3a9){_0x7df3a9=_0x7df3a9||0xcc;return function(_0x403bfb){if(_0x403bfb){return _0x5487cd['sendStatus'](_0x7df3a9);}return _0x5487cd[_0x49c4('0x16')](_0x7df3a9)[_0x49c4('0x17')]();};}function respondWithResult(_0x21f15a,_0x2decee){_0x2decee=_0x2decee||0xc8;return function(_0x12777c){if(_0x12777c){return _0x21f15a[_0x49c4('0x16')](_0x2decee)[_0x49c4('0x18')](_0x12777c);}};}function respondWithFilteredResult(_0x3de397,_0x58d177){return function(_0x3acd06){if(_0x3acd06){var _0x141003=typeof _0x58d177[_0x49c4('0x19')]===_0x49c4('0x1a')&&typeof _0x58d177[_0x49c4('0x1b')]==='undefined';var _0x44e607=_0x3acd06[_0x49c4('0x1c')];var _0x4c3253=_0x141003?0x0:_0x58d177['offset'];var _0x3c782d=_0x141003?_0x3acd06[_0x49c4('0x1c')]:_0x58d177[_0x49c4('0x19')]+_0x58d177['limit'];var _0x24856d;if(_0x3c782d>=_0x44e607){_0x3c782d=_0x44e607;_0x24856d=0xc8;}else{_0x24856d=0xce;}_0x3de397['status'](_0x24856d);return _0x3de397[_0x49c4('0x1d')](_0x49c4('0x1e'),_0x4c3253+'-'+_0x3c782d+'/'+_0x44e607)[_0x49c4('0x18')](_0x3acd06);}return null;};}function patchUpdates(_0x291526){return function(_0x382040){try{jsonpatch[_0x49c4('0x1f')](_0x382040,_0x291526,!![]);}catch(_0x280893){return BPromise[_0x49c4('0x20')](_0x280893);}return _0x382040[_0x49c4('0x21')]();};}function saveUpdates(_0x578447,_0x527126){return function(_0x57f502){if(_0x57f502){return _0x57f502[_0x49c4('0x22')](_0x578447)['then'](function(_0x592bb8){return _0x592bb8;});}return null;};}function removeEntity(_0x2263ae,_0x15581b){return function(_0x26c640){if(_0x26c640){return _0x26c640[_0x49c4('0x23')]()['then'](function(){_0x2263ae['status'](0xcc)[_0x49c4('0x17')]();});}};}function handleEntityNotFound(_0x9cb797,_0x565423){return function(_0x207358){if(!_0x207358){_0x9cb797[_0x49c4('0x24')](0x194);}return _0x207358;};}function handleError(_0x210159,_0xa7a826){_0xa7a826=_0xa7a826||0x1f4;return function(_0x531d92){logger['error'](_0x531d92[_0x49c4('0x25')]);if(_0x531d92['name']){delete _0x531d92[_0x49c4('0x26')];}_0x210159[_0x49c4('0x16')](_0xa7a826)[_0x49c4('0x27')](_0x531d92);};}exports[_0x49c4('0x28')]=function(_0x5987ae,_0x889909){var _0x2b2793={},_0x46e04d={},_0x4f28a2={'count':0x0,'rows':[]};var _0x6329b3=_[_0x49c4('0x29')](db[_0x49c4('0x2a')][_0x49c4('0x2b')],function(_0x17b50f){return{'name':_0x17b50f[_0x49c4('0x2c')],'type':_0x17b50f[_0x49c4('0x2d')]['key']};});_0x46e04d['model']=_['map'](_0x6329b3,_0x49c4('0x26'));_0x46e04d[_0x49c4('0x2e')]=_[_0x49c4('0x2f')](_0x5987ae[_0x49c4('0x2e')]);_0x46e04d[_0x49c4('0x30')]=_['intersection'](_0x46e04d[_0x49c4('0x31')],_0x46e04d[_0x49c4('0x2e')]);_0x2b2793[_0x49c4('0x32')]=_[_0x49c4('0x33')](_0x46e04d['model'],qs['fields'](_0x5987ae[_0x49c4('0x2e')][_0x49c4('0x34')]));_0x2b2793[_0x49c4('0x32')]=_0x2b2793[_0x49c4('0x32')][_0x49c4('0x35')]?_0x2b2793['attributes']:_0x46e04d[_0x49c4('0x31')];if(!_0x5987ae[_0x49c4('0x2e')][_0x49c4('0x36')]('nolimit')){_0x2b2793['limit']=qs[_0x49c4('0x1b')](_0x5987ae[_0x49c4('0x2e')][_0x49c4('0x1b')]);_0x2b2793[_0x49c4('0x19')]=qs[_0x49c4('0x19')](_0x5987ae[_0x49c4('0x2e')][_0x49c4('0x19')]);}_0x2b2793[_0x49c4('0x37')]=qs[_0x49c4('0x38')](_0x5987ae['query'][_0x49c4('0x38')]);_0x2b2793['where']=qs[_0x49c4('0x30')](_[_0x49c4('0x39')](_0x5987ae[_0x49c4('0x2e')],_0x46e04d[_0x49c4('0x30')]),_0x6329b3);if(_0x5987ae['query'][_0x49c4('0x3a')]){_0x2b2793[_0x49c4('0x3b')]=_[_0x49c4('0x3c')](_0x2b2793['where'],{'$or':_[_0x49c4('0x29')](_0x6329b3,function(_0x21d8c7){if(_0x21d8c7[_0x49c4('0x2d')]!==_0x49c4('0x3d')){var _0x1ba7a0={};_0x1ba7a0[_0x21d8c7[_0x49c4('0x26')]]={'$like':'%'+_0x5987ae[_0x49c4('0x2e')][_0x49c4('0x3a')]+'%'};return _0x1ba7a0;}})});}_0x2b2793=_[_0x49c4('0x3c')]({},_0x2b2793,_0x5987ae[_0x49c4('0x3e')]);var _0x1e506a={'where':_0x2b2793['where']};return db[_0x49c4('0x2a')][_0x49c4('0x1c')](_0x1e506a)[_0x49c4('0x3f')](function(_0x23aa32){_0x4f28a2[_0x49c4('0x1c')]=_0x23aa32;if(_0x5987ae[_0x49c4('0x2e')][_0x49c4('0x40')]){_0x2b2793[_0x49c4('0x41')]=[{'all':!![]}];}return db[_0x49c4('0x2a')][_0x49c4('0x42')](_0x2b2793);})[_0x49c4('0x3f')](function(_0xa3d59e){_0x4f28a2[_0x49c4('0x43')]=_0xa3d59e;return _0x4f28a2;})['then'](respondWithFilteredResult(_0x889909,_0x2b2793))[_0x49c4('0x44')](handleError(_0x889909,null));};exports['show']=function(_0x104efb,_0x4915bc){var _0x28d4fb={'raw':!![],'where':{'id':_0x104efb[_0x49c4('0x45')]['id']}},_0x1480da={};_0x1480da[_0x49c4('0x31')]=_['keys'](db['MemberReport'][_0x49c4('0x2b')]);_0x1480da[_0x49c4('0x2e')]=_[_0x49c4('0x2f')](_0x104efb[_0x49c4('0x2e')]);_0x1480da['filters']=_[_0x49c4('0x33')](_0x1480da[_0x49c4('0x31')],_0x1480da[_0x49c4('0x2e')]);_0x28d4fb[_0x49c4('0x32')]=_[_0x49c4('0x33')](_0x1480da[_0x49c4('0x31')],qs[_0x49c4('0x34')](_0x104efb[_0x49c4('0x2e')][_0x49c4('0x34')]));_0x28d4fb['attributes']=_0x28d4fb[_0x49c4('0x32')]['length']?_0x28d4fb[_0x49c4('0x32')]:_0x1480da[_0x49c4('0x31')];if(_0x104efb[_0x49c4('0x2e')][_0x49c4('0x40')]){_0x28d4fb[_0x49c4('0x41')]=[{'all':!![]}];}_0x28d4fb=_['merge']({},_0x28d4fb,_0x104efb[_0x49c4('0x3e')]);return db[_0x49c4('0x2a')][_0x49c4('0x46')](_0x28d4fb)[_0x49c4('0x3f')](handleEntityNotFound(_0x4915bc,null))[_0x49c4('0x3f')](respondWithResult(_0x4915bc,null))[_0x49c4('0x44')](handleError(_0x4915bc,null));};exports[_0x49c4('0x47')]=function(_0x4d89e0,_0x3bac1b){return db['MemberReport'][_0x49c4('0x47')](_0x4d89e0[_0x49c4('0x48')],{})[_0x49c4('0x3f')](respondWithResult(_0x3bac1b,0xc9))[_0x49c4('0x44')](handleError(_0x3bac1b,null));};exports[_0x49c4('0x22')]=function(_0x30bea5,_0x2c6be1){if(_0x30bea5['body']['id']){delete _0x30bea5[_0x49c4('0x48')]['id'];}return db[_0x49c4('0x2a')]['find']({'where':{'id':_0x30bea5[_0x49c4('0x45')]['id']}})[_0x49c4('0x3f')](handleEntityNotFound(_0x2c6be1,null))[_0x49c4('0x3f')](saveUpdates(_0x30bea5[_0x49c4('0x48')],null))['then'](respondWithResult(_0x2c6be1,null))['catch'](handleError(_0x2c6be1,null));};exports[_0x49c4('0x23')]=function(_0x4e8221,_0x4597c3){return db[_0x49c4('0x2a')][_0x49c4('0x46')]({'where':{'id':_0x4e8221[_0x49c4('0x45')]['id']}})[_0x49c4('0x3f')](handleEntityNotFound(_0x4597c3,null))[_0x49c4('0x3f')](removeEntity(_0x4597c3,null))[_0x49c4('0x44')](handleError(_0x4597c3,null));};exports['describe']=function(_0x1f26c2,_0x1550ce){return db[_0x49c4('0x2a')][_0x49c4('0x49')]()[_0x49c4('0x3f')](respondWithResult(_0x1550ce,null))[_0x49c4('0x44')](handleError(_0x1550ce,null));};
\ No newline at end of file