Built motion from commit 87cd5f02.|2.5.48
[motion2.git] / server / api / integrationReport / integrationReport.controller.js
index 41eade8..9fc9a63 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x38d3=['attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','length','options','find','create','body','params','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','limit','offset','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','IntegrationReport','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model'];(function(_0x57d997,_0x367ce4){var _0x2cb473=function(_0x5ed65f){while(--_0x5ed65f){_0x57d997['push'](_0x57d997['shift']());}};_0x2cb473(++_0x367ce4);}(_0x38d3,0x1a7));var _0x338d=function(_0x2cfb58,_0x3d9412){_0x2cfb58=_0x2cfb58-0x0;var _0xd99951=_0x38d3[_0x2cfb58];return _0xd99951;};'use strict';var emlformat=require(_0x338d('0x0'));var rimraf=require(_0x338d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x338d('0x2'));var rp=require(_0x338d('0x3'));var moment=require(_0x338d('0x4'));var BPromise=require(_0x338d('0x5'));var Mustache=require(_0x338d('0x6'));var util=require(_0x338d('0x7'));var path=require(_0x338d('0x8'));var sox=require(_0x338d('0x9'));var csv=require(_0x338d('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x338d('0xb'));var _=require(_0x338d('0xc'));var squel=require(_0x338d('0xd'));var crypto=require(_0x338d('0xe'));var jsforce=require(_0x338d('0xf'));var deskjs=require(_0x338d('0x10'));var toCsv=require(_0x338d('0xa'));var querystring=require('querystring');var Papa=require(_0x338d('0x11'));var Redis=require(_0x338d('0x12'));var authService=require(_0x338d('0x13'));var qs=require(_0x338d('0x14'));var as=require(_0x338d('0x15'));var hardwareService=require(_0x338d('0x16'));var logger=require('../../config/logger')(_0x338d('0x17'));var utils=require(_0x338d('0x18'));var config=require(_0x338d('0x19'));var licenseUtil=require(_0x338d('0x1a'));var db=require(_0x338d('0x1b'))['db'];function respondWithStatusCode(_0x6f23c2,_0x3a4b99){_0x3a4b99=_0x3a4b99||0xcc;return function(_0x2a45e2){if(_0x2a45e2){return _0x6f23c2['sendStatus'](_0x3a4b99);}return _0x6f23c2['status'](_0x3a4b99)['end']();};}function respondWithResult(_0x1259d4,_0x1e9895){_0x1e9895=_0x1e9895||0xc8;return function(_0x58f5d5){if(_0x58f5d5){return _0x1259d4[_0x338d('0x1c')](_0x1e9895)['json'](_0x58f5d5);}};}function respondWithFilteredResult(_0x33b0d7,_0x36b054){return function(_0x366514){if(_0x366514){var _0x4c5e67=typeof _0x36b054['offset']==='undefined'&&typeof _0x36b054[_0x338d('0x1d')]==='undefined';var _0x126e86=_0x366514['count'];var _0x5ab98c=_0x4c5e67?0x0:_0x36b054[_0x338d('0x1e')];var _0x316ffa=_0x4c5e67?_0x366514[_0x338d('0x1f')]:_0x36b054[_0x338d('0x1e')]+_0x36b054[_0x338d('0x1d')];var _0x48a620;if(_0x316ffa>=_0x126e86){_0x316ffa=_0x126e86;_0x48a620=0xc8;}else{_0x48a620=0xce;}_0x33b0d7[_0x338d('0x1c')](_0x48a620);return _0x33b0d7[_0x338d('0x20')](_0x338d('0x21'),_0x5ab98c+'-'+_0x316ffa+'/'+_0x126e86)['json'](_0x366514);}return null;};}function patchUpdates(_0x4213b0){return function(_0x4547d1){try{jsonpatch[_0x338d('0x22')](_0x4547d1,_0x4213b0,!![]);}catch(_0xde9c5c){return BPromise[_0x338d('0x23')](_0xde9c5c);}return _0x4547d1[_0x338d('0x24')]();};}function saveUpdates(_0xbd099e,_0x3ff406){return function(_0x22fc54){if(_0x22fc54){return _0x22fc54[_0x338d('0x25')](_0xbd099e)[_0x338d('0x26')](function(_0x223e1b){return _0x223e1b;});}return null;};}function removeEntity(_0x4e859f,_0xef4cf7){return function(_0x2a2877){if(_0x2a2877){return _0x2a2877[_0x338d('0x27')]()['then'](function(){_0x4e859f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x51a9f6,_0xbe316e){return function(_0x1fb38f){if(!_0x1fb38f){_0x51a9f6[_0x338d('0x28')](0x194);}return _0x1fb38f;};}function handleError(_0x336a41,_0xfb62d7){_0xfb62d7=_0xfb62d7||0x1f4;return function(_0x25cba2){logger[_0x338d('0x29')](_0x25cba2[_0x338d('0x2a')]);if(_0x25cba2[_0x338d('0x2b')]){delete _0x25cba2[_0x338d('0x2b')];}_0x336a41['status'](_0xfb62d7)[_0x338d('0x2c')](_0x25cba2);};}exports[_0x338d('0x2d')]=function(_0x6e99c4,_0x5038c9){var _0x113f32={},_0x23fee7={},_0x4bb176={'count':0x0,'rows':[]};var _0x3348f=_['map'](db[_0x338d('0x2e')][_0x338d('0x2f')],function(_0x385833){return{'name':_0x385833[_0x338d('0x30')],'type':_0x385833[_0x338d('0x31')][_0x338d('0x32')]};});_0x23fee7['model']=_[_0x338d('0x33')](_0x3348f,_0x338d('0x2b'));_0x23fee7['query']=_[_0x338d('0x34')](_0x6e99c4[_0x338d('0x35')]);_0x23fee7[_0x338d('0x36')]=_[_0x338d('0x37')](_0x23fee7[_0x338d('0x38')],_0x23fee7[_0x338d('0x35')]);_0x113f32[_0x338d('0x39')]=_[_0x338d('0x37')](_0x23fee7[_0x338d('0x38')],qs[_0x338d('0x3a')](_0x6e99c4[_0x338d('0x35')][_0x338d('0x3a')]));_0x113f32[_0x338d('0x39')]=_0x113f32['attributes']['length']?_0x113f32[_0x338d('0x39')]:_0x23fee7[_0x338d('0x38')];if(!_0x6e99c4[_0x338d('0x35')][_0x338d('0x3b')](_0x338d('0x3c'))){_0x113f32['limit']=qs['limit'](_0x6e99c4[_0x338d('0x35')]['limit']);_0x113f32[_0x338d('0x1e')]=qs[_0x338d('0x1e')](_0x6e99c4[_0x338d('0x35')][_0x338d('0x1e')]);}_0x113f32[_0x338d('0x3d')]=qs[_0x338d('0x3e')](_0x6e99c4[_0x338d('0x35')][_0x338d('0x3e')]);_0x113f32[_0x338d('0x3f')]=qs[_0x338d('0x36')](_[_0x338d('0x40')](_0x6e99c4[_0x338d('0x35')],_0x23fee7[_0x338d('0x36')]),_0x3348f);if(_0x6e99c4[_0x338d('0x35')][_0x338d('0x41')]){_0x113f32[_0x338d('0x3f')]=_[_0x338d('0x42')](_0x113f32['where'],{'$or':_[_0x338d('0x33')](_0x3348f,function(_0x2bebc4){if(_0x2bebc4['type']!==_0x338d('0x43')){var _0x46f2ae={};_0x46f2ae[_0x2bebc4[_0x338d('0x2b')]]={'$like':'%'+_0x6e99c4[_0x338d('0x35')][_0x338d('0x41')]+'%'};return _0x46f2ae;}})});}_0x113f32=_[_0x338d('0x42')]({},_0x113f32,_0x6e99c4['options']);var _0x1e7701={'where':_0x113f32['where']};return db[_0x338d('0x2e')][_0x338d('0x1f')](_0x1e7701)['then'](function(_0x1cc0fd){_0x4bb176['count']=_0x1cc0fd;if(_0x6e99c4[_0x338d('0x35')][_0x338d('0x44')]){_0x113f32[_0x338d('0x45')]=[{'all':!![]}];}return db[_0x338d('0x2e')][_0x338d('0x46')](_0x113f32);})[_0x338d('0x26')](function(_0x20000f){_0x4bb176[_0x338d('0x47')]=_0x20000f;return _0x4bb176;})['then'](respondWithFilteredResult(_0x5038c9,_0x113f32))[_0x338d('0x48')](handleError(_0x5038c9,null));};exports['show']=function(_0x2c0263,_0x232448){var _0x5bbabe={'raw':![],'where':{'id':_0x2c0263['params']['id']}},_0x332adc={};_0x332adc[_0x338d('0x38')]=_[_0x338d('0x34')](db[_0x338d('0x2e')]['rawAttributes']);_0x332adc[_0x338d('0x35')]=_['keys'](_0x2c0263[_0x338d('0x35')]);_0x332adc[_0x338d('0x36')]=_['intersection'](_0x332adc[_0x338d('0x38')],_0x332adc[_0x338d('0x35')]);_0x5bbabe['attributes']=_[_0x338d('0x37')](_0x332adc['model'],qs[_0x338d('0x3a')](_0x2c0263[_0x338d('0x35')][_0x338d('0x3a')]));_0x5bbabe['attributes']=_0x5bbabe[_0x338d('0x39')][_0x338d('0x49')]?_0x5bbabe['attributes']:_0x332adc[_0x338d('0x38')];if(_0x2c0263[_0x338d('0x35')]['includeAll']){_0x5bbabe['include']=[{'all':!![]}];}_0x5bbabe=_[_0x338d('0x42')]({},_0x5bbabe,_0x2c0263[_0x338d('0x4a')]);return db[_0x338d('0x2e')][_0x338d('0x4b')](_0x5bbabe)[_0x338d('0x26')](handleEntityNotFound(_0x232448,null))[_0x338d('0x26')](respondWithResult(_0x232448,null))[_0x338d('0x48')](handleError(_0x232448,null));};exports[_0x338d('0x4c')]=function(_0x46f792,_0x4f5a75){return db[_0x338d('0x2e')][_0x338d('0x4c')](_0x46f792['body'],{})['then'](respondWithResult(_0x4f5a75,0xc9))['catch'](handleError(_0x4f5a75,null));};exports['update']=function(_0x3cbff8,_0x4ad1dd){if(_0x3cbff8['body']['id']){delete _0x3cbff8[_0x338d('0x4d')]['id'];}return db[_0x338d('0x2e')][_0x338d('0x4b')]({'where':{'id':_0x3cbff8[_0x338d('0x4e')]['id']}})[_0x338d('0x26')](handleEntityNotFound(_0x4ad1dd,null))[_0x338d('0x26')](saveUpdates(_0x3cbff8[_0x338d('0x4d')],null))['then'](respondWithResult(_0x4ad1dd,null))[_0x338d('0x48')](handleError(_0x4ad1dd,null));};exports['destroy']=function(_0x4036bb,_0x198a9b){return db[_0x338d('0x2e')]['find']({'where':{'id':_0x4036bb['params']['id']}})['then'](handleEntityNotFound(_0x198a9b,null))['then'](removeEntity(_0x198a9b,null))[_0x338d('0x48')](handleError(_0x198a9b,null));};exports[_0x338d('0x4f')]=function(_0x51024e,_0x36dbdd){return db[_0x338d('0x2e')][_0x338d('0x4f')]()[_0x338d('0x26')](respondWithResult(_0x36dbdd,null))[_0x338d('0x48')](handleError(_0x36dbdd,null));};
\ No newline at end of file
+var _0x702c=['sort','where','pick','VIRTUAL','includeAll','include','catch','show','params','merge','options','find','create','body','describe','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','count','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','IntegrationReport','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order'];(function(_0x27ea2c,_0x3e9766){var _0x1322ac=function(_0xfde85){while(--_0xfde85){_0x27ea2c['push'](_0x27ea2c['shift']());}};_0x1322ac(++_0x3e9766);}(_0x702c,0x1d1));var _0xc702=function(_0xc3d773,_0x41d284){_0xc3d773=_0xc3d773-0x0;var _0x190f3d=_0x702c[_0xc3d773];return _0x190f3d;};'use strict';var emlformat=require(_0xc702('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xc702('0x1'));var rp=require(_0xc702('0x2'));var moment=require(_0xc702('0x3'));var BPromise=require(_0xc702('0x4'));var Mustache=require(_0xc702('0x5'));var util=require('util');var path=require(_0xc702('0x6'));var sox=require(_0xc702('0x7'));var csv=require(_0xc702('0x8'));var ejs=require(_0xc702('0x9'));var fs=require('fs');var fs_extra=require(_0xc702('0xa'));var _=require(_0xc702('0xb'));var squel=require(_0xc702('0xc'));var crypto=require('crypto');var jsforce=require(_0xc702('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc702('0x8'));var querystring=require(_0xc702('0xe'));var Papa=require(_0xc702('0xf'));var Redis=require(_0xc702('0x10'));var authService=require(_0xc702('0x11'));var qs=require(_0xc702('0x12'));var as=require(_0xc702('0x13'));var hardwareService=require(_0xc702('0x14'));var logger=require('../../config/logger')(_0xc702('0x15'));var utils=require(_0xc702('0x16'));var config=require(_0xc702('0x17'));var licenseUtil=require(_0xc702('0x18'));var db=require(_0xc702('0x19'))['db'];function respondWithStatusCode(_0x3c72cc,_0x2db8b5){_0x2db8b5=_0x2db8b5||0xcc;return function(_0x3902e7){if(_0x3902e7){return _0x3c72cc[_0xc702('0x1a')](_0x2db8b5);}return _0x3c72cc[_0xc702('0x1b')](_0x2db8b5)['end']();};}function respondWithResult(_0x2f40d2,_0x298d56){_0x298d56=_0x298d56||0xc8;return function(_0x3b0271){if(_0x3b0271){return _0x2f40d2[_0xc702('0x1b')](_0x298d56)[_0xc702('0x1c')](_0x3b0271);}};}function respondWithFilteredResult(_0x247bde,_0x59174a){return function(_0x2aa1e0){if(_0x2aa1e0){var _0x305c62=typeof _0x59174a[_0xc702('0x1d')]==='undefined'&&typeof _0x59174a[_0xc702('0x1e')]==='undefined';var _0x20a846=_0x2aa1e0['count'];var _0x973844=_0x305c62?0x0:_0x59174a[_0xc702('0x1d')];var _0x4f2311=_0x305c62?_0x2aa1e0[_0xc702('0x1f')]:_0x59174a[_0xc702('0x1d')]+_0x59174a['limit'];var _0x4b3714;if(_0x4f2311>=_0x20a846){_0x4f2311=_0x20a846;_0x4b3714=0xc8;}else{_0x4b3714=0xce;}_0x247bde[_0xc702('0x1b')](_0x4b3714);return _0x247bde['set'](_0xc702('0x20'),_0x973844+'-'+_0x4f2311+'/'+_0x20a846)[_0xc702('0x1c')](_0x2aa1e0);}return null;};}function patchUpdates(_0x32ff8f){return function(_0x5bb5f8){try{jsonpatch[_0xc702('0x21')](_0x5bb5f8,_0x32ff8f,!![]);}catch(_0x42e3d6){return BPromise['reject'](_0x42e3d6);}return _0x5bb5f8[_0xc702('0x22')]();};}function saveUpdates(_0x26a9ea,_0x17f0b6){return function(_0x3c0213){if(_0x3c0213){return _0x3c0213[_0xc702('0x23')](_0x26a9ea)[_0xc702('0x24')](function(_0x105ceb){return _0x105ceb;});}return null;};}function removeEntity(_0x4cb58a,_0x3aacd2){return function(_0x2d1bf4){if(_0x2d1bf4){return _0x2d1bf4[_0xc702('0x25')]()['then'](function(){_0x4cb58a[_0xc702('0x1b')](0xcc)[_0xc702('0x26')]();});}};}function handleEntityNotFound(_0x42fa12,_0x3156d6){return function(_0x54a074){if(!_0x54a074){_0x42fa12[_0xc702('0x1a')](0x194);}return _0x54a074;};}function handleError(_0x15ddd0,_0x1f2203){_0x1f2203=_0x1f2203||0x1f4;return function(_0x1bd946){logger[_0xc702('0x27')](_0x1bd946[_0xc702('0x28')]);if(_0x1bd946[_0xc702('0x29')]){delete _0x1bd946[_0xc702('0x29')];}_0x15ddd0[_0xc702('0x1b')](_0x1f2203)[_0xc702('0x2a')](_0x1bd946);};}exports['index']=function(_0x57a5b0,_0x1eed5c){var _0xcc903a={},_0x4d6022={},_0x4de42b={'count':0x0,'rows':[]};var _0xae393e=_['map'](db[_0xc702('0x2b')][_0xc702('0x2c')],function(_0x5ec36c){return{'name':_0x5ec36c[_0xc702('0x2d')],'type':_0x5ec36c[_0xc702('0x2e')][_0xc702('0x2f')]};});_0x4d6022['model']=_[_0xc702('0x30')](_0xae393e,_0xc702('0x29'));_0x4d6022[_0xc702('0x31')]=_[_0xc702('0x32')](_0x57a5b0[_0xc702('0x31')]);_0x4d6022[_0xc702('0x33')]=_[_0xc702('0x34')](_0x4d6022[_0xc702('0x35')],_0x4d6022[_0xc702('0x31')]);_0xcc903a[_0xc702('0x36')]=_[_0xc702('0x34')](_0x4d6022[_0xc702('0x35')],qs[_0xc702('0x37')](_0x57a5b0[_0xc702('0x31')]['fields']));_0xcc903a[_0xc702('0x36')]=_0xcc903a['attributes'][_0xc702('0x38')]?_0xcc903a[_0xc702('0x36')]:_0x4d6022[_0xc702('0x35')];if(!_0x57a5b0[_0xc702('0x31')][_0xc702('0x39')](_0xc702('0x3a'))){_0xcc903a[_0xc702('0x1e')]=qs['limit'](_0x57a5b0[_0xc702('0x31')]['limit']);_0xcc903a['offset']=qs[_0xc702('0x1d')](_0x57a5b0[_0xc702('0x31')][_0xc702('0x1d')]);}_0xcc903a[_0xc702('0x3b')]=qs[_0xc702('0x3c')](_0x57a5b0['query']['sort']);_0xcc903a[_0xc702('0x3d')]=qs['filters'](_[_0xc702('0x3e')](_0x57a5b0[_0xc702('0x31')],_0x4d6022[_0xc702('0x33')]),_0xae393e);if(_0x57a5b0[_0xc702('0x31')]['filter']){_0xcc903a[_0xc702('0x3d')]=_['merge'](_0xcc903a['where'],{'$or':_['map'](_0xae393e,function(_0x323f32){if(_0x323f32['type']!==_0xc702('0x3f')){var _0x3a11cd={};_0x3a11cd[_0x323f32[_0xc702('0x29')]]={'$like':'%'+_0x57a5b0[_0xc702('0x31')]['filter']+'%'};return _0x3a11cd;}})});}_0xcc903a=_['merge']({},_0xcc903a,_0x57a5b0['options']);var _0x4fe4f4={'where':_0xcc903a['where']};return db['IntegrationReport'][_0xc702('0x1f')](_0x4fe4f4)[_0xc702('0x24')](function(_0x5395d7){_0x4de42b['count']=_0x5395d7;if(_0x57a5b0[_0xc702('0x31')][_0xc702('0x40')]){_0xcc903a[_0xc702('0x41')]=[{'all':!![]}];}return db[_0xc702('0x2b')]['findAll'](_0xcc903a);})[_0xc702('0x24')](function(_0x9e9701){_0x4de42b['rows']=_0x9e9701;return _0x4de42b;})[_0xc702('0x24')](respondWithFilteredResult(_0x1eed5c,_0xcc903a))[_0xc702('0x42')](handleError(_0x1eed5c,null));};exports[_0xc702('0x43')]=function(_0x163819,_0x2a2875){var _0xe3a41d={'raw':![],'where':{'id':_0x163819[_0xc702('0x44')]['id']}},_0x5cb188={};_0x5cb188[_0xc702('0x35')]=_['keys'](db['IntegrationReport'][_0xc702('0x2c')]);_0x5cb188['query']=_['keys'](_0x163819[_0xc702('0x31')]);_0x5cb188[_0xc702('0x33')]=_[_0xc702('0x34')](_0x5cb188[_0xc702('0x35')],_0x5cb188[_0xc702('0x31')]);_0xe3a41d[_0xc702('0x36')]=_[_0xc702('0x34')](_0x5cb188['model'],qs['fields'](_0x163819[_0xc702('0x31')][_0xc702('0x37')]));_0xe3a41d[_0xc702('0x36')]=_0xe3a41d[_0xc702('0x36')]['length']?_0xe3a41d[_0xc702('0x36')]:_0x5cb188[_0xc702('0x35')];if(_0x163819[_0xc702('0x31')]['includeAll']){_0xe3a41d[_0xc702('0x41')]=[{'all':!![]}];}_0xe3a41d=_[_0xc702('0x45')]({},_0xe3a41d,_0x163819[_0xc702('0x46')]);return db[_0xc702('0x2b')][_0xc702('0x47')](_0xe3a41d)[_0xc702('0x24')](handleEntityNotFound(_0x2a2875,null))[_0xc702('0x24')](respondWithResult(_0x2a2875,null))['catch'](handleError(_0x2a2875,null));};exports[_0xc702('0x48')]=function(_0x431b0d,_0x19046a){return db[_0xc702('0x2b')][_0xc702('0x48')](_0x431b0d[_0xc702('0x49')],{})[_0xc702('0x24')](respondWithResult(_0x19046a,0xc9))[_0xc702('0x42')](handleError(_0x19046a,null));};exports[_0xc702('0x23')]=function(_0x53e69a,_0x4ef141){if(_0x53e69a[_0xc702('0x49')]['id']){delete _0x53e69a['body']['id'];}return db[_0xc702('0x2b')][_0xc702('0x47')]({'where':{'id':_0x53e69a['params']['id']}})['then'](handleEntityNotFound(_0x4ef141,null))[_0xc702('0x24')](saveUpdates(_0x53e69a[_0xc702('0x49')],null))[_0xc702('0x24')](respondWithResult(_0x4ef141,null))['catch'](handleError(_0x4ef141,null));};exports[_0xc702('0x25')]=function(_0x2dce63,_0x4f2530){return db[_0xc702('0x2b')][_0xc702('0x47')]({'where':{'id':_0x2dce63[_0xc702('0x44')]['id']}})[_0xc702('0x24')](handleEntityNotFound(_0x4f2530,null))['then'](removeEntity(_0x4f2530,null))[_0xc702('0x42')](handleError(_0x4f2530,null));};exports[_0xc702('0x4a')]=function(_0x53b056,_0x3805ae){return db['IntegrationReport']['describe']()['then'](respondWithResult(_0x3805ae,null))[_0xc702('0x42')](handleError(_0x3805ae,null));};
\ No newline at end of file