Built motion from commit (unavailable).|2.5.26
[motion2.git] / server / api / integrationReport / integrationReport.controller.js
index 76c6d27..b0e6451 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xce06=['zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','offset','set','json','save','update','then','sendStatus','error','stack','name','send','index','map','fieldName','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','where','filters','pick','merge','VIRTUAL','IntegrationReport','count','includeAll','catch','show','rawAttributes','include','find','create','body','params','destroy','describe','html-pdf','rimraf'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xce06,0x86));var _0x6ce0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xce06[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x6ce0('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6ce0('0x1'));var zipdir=require(_0x6ce0('0x2'));var jsonpatch=require(_0x6ce0('0x3'));var rp=require(_0x6ce0('0x4'));var moment=require('moment');var BPromise=require(_0x6ce0('0x5'));var Mustache=require(_0x6ce0('0x6'));var util=require(_0x6ce0('0x7'));var path=require(_0x6ce0('0x8'));var sox=require(_0x6ce0('0x9'));var csv=require(_0x6ce0('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x6ce0('0xb'));var crypto=require('crypto');var jsforce=require(_0x6ce0('0xc'));var deskjs=require(_0x6ce0('0xd'));var toCsv=require(_0x6ce0('0xa'));var querystring=require('querystring');var Papa=require(_0x6ce0('0xe'));var Redis=require('ioredis');var authService=require(_0x6ce0('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x6ce0('0x10'));var hardwareService=require(_0x6ce0('0x11'));var logger=require(_0x6ce0('0x12'))(_0x6ce0('0x13'));var utils=require(_0x6ce0('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x6ce0('0x15'));var db=require(_0x6ce0('0x16'))['db'];function respondWithStatusCode(_0x543436,_0x47babf){_0x47babf=_0x47babf||0xcc;return function(_0xd916f2){if(_0xd916f2){return _0x543436['sendStatus'](_0x47babf);}return _0x543436[_0x6ce0('0x17')](_0x47babf)['end']();};}function respondWithResult(_0x1c17b5,_0x7aec08){_0x7aec08=_0x7aec08||0xc8;return function(_0x18bc85){if(_0x18bc85){return _0x1c17b5[_0x6ce0('0x17')](_0x7aec08)['json'](_0x18bc85);}};}function respondWithFilteredResult(_0xa447fe,_0x378718){return function(_0x1de44d){if(_0x1de44d){var _0x21bbfc=_0x1de44d['count'],_0xd5fd47=_0x378718[_0x6ce0('0x18')],_0x3a2b60=_0x378718[_0x6ce0('0x18')]+_0x378718['limit'],_0x155ca0;if(_0x3a2b60>=_0x21bbfc){_0x3a2b60=_0x21bbfc;_0x155ca0=0xc8;}else{_0x155ca0=0xce;}_0xa447fe['status'](_0x155ca0);return _0xa447fe[_0x6ce0('0x19')]('Content-Range',_0xd5fd47+'-'+_0x3a2b60+'/'+_0x21bbfc)[_0x6ce0('0x1a')](_0x1de44d);}return null;};}function patchUpdates(_0x4849ae){return function(_0x17c165){try{jsonpatch['apply'](_0x17c165,_0x4849ae,!![]);}catch(_0x299881){return BPromise['reject'](_0x299881);}return _0x17c165[_0x6ce0('0x1b')]();};}function saveUpdates(_0x838979,_0x480d38){return function(_0x11cda3){if(_0x11cda3){return _0x11cda3[_0x6ce0('0x1c')](_0x838979)[_0x6ce0('0x1d')](function(_0x446b1a){return _0x446b1a;});}return null;};}function removeEntity(_0x57c6c4,_0x76afde){return function(_0xf5a002){if(_0xf5a002){return _0xf5a002['destroy']()[_0x6ce0('0x1d')](function(){_0x57c6c4[_0x6ce0('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0xdb2c1c,_0xfc00e8){return function(_0x4bade2){if(!_0x4bade2){_0xdb2c1c[_0x6ce0('0x1e')](0x194);}return _0x4bade2;};}function handleError(_0x100745,_0x19ca62){_0x19ca62=_0x19ca62||0x1f4;return function(_0x2491d5){logger[_0x6ce0('0x1f')](_0x2491d5[_0x6ce0('0x20')]);if(_0x2491d5[_0x6ce0('0x21')]){delete _0x2491d5[_0x6ce0('0x21')];}_0x100745[_0x6ce0('0x17')](_0x19ca62)[_0x6ce0('0x22')](_0x2491d5);};}exports[_0x6ce0('0x23')]=function(_0x57a6a5,_0x7078e){var _0x3f6938={},_0x58dd06={},_0x593982={'count':0x0,'rows':[]};var _0x381004=_[_0x6ce0('0x24')](db['IntegrationReport']['rawAttributes'],function(_0x5f381b){return{'name':_0x5f381b[_0x6ce0('0x25')],'type':_0x5f381b['type'][_0x6ce0('0x26')]};});_0x58dd06[_0x6ce0('0x27')]=_[_0x6ce0('0x24')](_0x381004,_0x6ce0('0x21'));_0x58dd06[_0x6ce0('0x28')]=_[_0x6ce0('0x29')](_0x57a6a5[_0x6ce0('0x28')]);_0x58dd06['filters']=_[_0x6ce0('0x2a')](_0x58dd06['model'],_0x58dd06['query']);_0x3f6938['attributes']=_[_0x6ce0('0x2a')](_0x58dd06['model'],qs['fields'](_0x57a6a5[_0x6ce0('0x28')][_0x6ce0('0x2b')]));_0x3f6938[_0x6ce0('0x2c')]=_0x3f6938[_0x6ce0('0x2c')][_0x6ce0('0x2d')]?_0x3f6938[_0x6ce0('0x2c')]:_0x58dd06[_0x6ce0('0x27')];if(!_0x57a6a5[_0x6ce0('0x28')][_0x6ce0('0x2e')](_0x6ce0('0x2f'))){_0x3f6938[_0x6ce0('0x30')]=qs[_0x6ce0('0x30')](_0x57a6a5[_0x6ce0('0x28')][_0x6ce0('0x30')]);_0x3f6938[_0x6ce0('0x18')]=qs[_0x6ce0('0x18')](_0x57a6a5['query'][_0x6ce0('0x18')]);}_0x3f6938[_0x6ce0('0x31')]=qs['sort'](_0x57a6a5[_0x6ce0('0x28')]['sort']);_0x3f6938[_0x6ce0('0x32')]=qs[_0x6ce0('0x33')](_[_0x6ce0('0x34')](_0x57a6a5['query'],_0x58dd06[_0x6ce0('0x33')]),_0x381004);if(_0x57a6a5['query']['filter']){_0x3f6938[_0x6ce0('0x32')]=_[_0x6ce0('0x35')](_0x3f6938[_0x6ce0('0x32')],{'$or':_[_0x6ce0('0x24')](_0x381004,function(_0x1eec78){if(_0x1eec78['type']!==_0x6ce0('0x36')){var _0x1e4e41={};_0x1e4e41[_0x1eec78[_0x6ce0('0x21')]]={'$like':'%'+_0x57a6a5['query']['filter']+'%'};return _0x1e4e41;}})});}_0x3f6938=_['merge']({},_0x3f6938,_0x57a6a5['options']);var _0x56eabe={'where':_0x3f6938[_0x6ce0('0x32')]};return db[_0x6ce0('0x37')][_0x6ce0('0x38')](_0x56eabe)[_0x6ce0('0x1d')](function(_0x244cb9){_0x593982[_0x6ce0('0x38')]=_0x244cb9;if(_0x57a6a5[_0x6ce0('0x28')][_0x6ce0('0x39')]){_0x3f6938['include']=[{'all':!![]}];}return db[_0x6ce0('0x37')]['findAll'](_0x3f6938);})['then'](function(_0x1ceabc){_0x593982['rows']=_0x1ceabc;return _0x593982;})['then'](respondWithFilteredResult(_0x7078e,_0x3f6938))[_0x6ce0('0x3a')](handleError(_0x7078e,null));};exports[_0x6ce0('0x3b')]=function(_0x2d596d,_0x3faaf4){var _0x547ca0={'raw':![],'where':{'id':_0x2d596d['params']['id']}},_0xc88963={};_0xc88963['model']=_['keys'](db[_0x6ce0('0x37')][_0x6ce0('0x3c')]);_0xc88963[_0x6ce0('0x28')]=_['keys'](_0x2d596d['query']);_0xc88963[_0x6ce0('0x33')]=_[_0x6ce0('0x2a')](_0xc88963[_0x6ce0('0x27')],_0xc88963[_0x6ce0('0x28')]);_0x547ca0[_0x6ce0('0x2c')]=_[_0x6ce0('0x2a')](_0xc88963[_0x6ce0('0x27')],qs[_0x6ce0('0x2b')](_0x2d596d[_0x6ce0('0x28')]['fields']));_0x547ca0['attributes']=_0x547ca0['attributes'][_0x6ce0('0x2d')]?_0x547ca0['attributes']:_0xc88963[_0x6ce0('0x27')];if(_0x2d596d['query']['includeAll']){_0x547ca0[_0x6ce0('0x3d')]=[{'all':!![]}];}_0x547ca0=_[_0x6ce0('0x35')]({},_0x547ca0,_0x2d596d['options']);return db[_0x6ce0('0x37')][_0x6ce0('0x3e')](_0x547ca0)[_0x6ce0('0x1d')](handleEntityNotFound(_0x3faaf4,null))[_0x6ce0('0x1d')](respondWithResult(_0x3faaf4,null))[_0x6ce0('0x3a')](handleError(_0x3faaf4,null));};exports['create']=function(_0x351a27,_0x1d1ef5){return db[_0x6ce0('0x37')][_0x6ce0('0x3f')](_0x351a27[_0x6ce0('0x40')],{})[_0x6ce0('0x1d')](respondWithResult(_0x1d1ef5,0xc9))['catch'](handleError(_0x1d1ef5,null));};exports['update']=function(_0x52e895,_0x2ee995){if(_0x52e895[_0x6ce0('0x40')]['id']){delete _0x52e895[_0x6ce0('0x40')]['id'];}return db['IntegrationReport'][_0x6ce0('0x3e')]({'where':{'id':_0x52e895[_0x6ce0('0x41')]['id']}})[_0x6ce0('0x1d')](handleEntityNotFound(_0x2ee995,null))[_0x6ce0('0x1d')](saveUpdates(_0x52e895['body'],null))[_0x6ce0('0x1d')](respondWithResult(_0x2ee995,null))[_0x6ce0('0x3a')](handleError(_0x2ee995,null));};exports[_0x6ce0('0x42')]=function(_0x52787f,_0xb0c528){return db['IntegrationReport'][_0x6ce0('0x3e')]({'where':{'id':_0x52787f['params']['id']}})[_0x6ce0('0x1d')](handleEntityNotFound(_0xb0c528,null))[_0x6ce0('0x1d')](removeEntity(_0xb0c528,null))[_0x6ce0('0x3a')](handleError(_0xb0c528,null));};exports[_0x6ce0('0x43')]=function(_0x26bb79,_0x5ac052){return db[_0x6ce0('0x37')][_0x6ce0('0x43')]()[_0x6ce0('0x1d')](respondWithResult(_0x5ac052,null))[_0x6ce0('0x3a')](handleError(_0x5ac052,null));};
\ No newline at end of file
+var _0x7f47=['rows','catch','rawAttributes','includeAll','include','find','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','count','offset','limit','status','Content-Range','json','apply','reject','save','update','then','destroy','error','name','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','where','merge','VIRTUAL','filter','options','IntegrationReport'];(function(_0x321248,_0x1bf881){var _0x32db83=function(_0x2321fc){while(--_0x2321fc){_0x321248['push'](_0x321248['shift']());}};_0x32db83(++_0x1bf881);}(_0x7f47,0x12e));var _0x77f4=function(_0x1d3791,_0x51c613){_0x1d3791=_0x1d3791-0x0;var _0x40fbf5=_0x7f47[_0x1d3791];return _0x40fbf5;};'use strict';var emlformat=require(_0x77f4('0x0'));var rimraf=require(_0x77f4('0x1'));var zipdir=require(_0x77f4('0x2'));var jsonpatch=require(_0x77f4('0x3'));var rp=require(_0x77f4('0x4'));var moment=require(_0x77f4('0x5'));var BPromise=require(_0x77f4('0x6'));var Mustache=require(_0x77f4('0x7'));var util=require('util');var path=require(_0x77f4('0x8'));var sox=require(_0x77f4('0x9'));var csv=require(_0x77f4('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x77f4('0xb'));var _=require('lodash');var squel=require(_0x77f4('0xc'));var crypto=require(_0x77f4('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x77f4('0xe'));var toCsv=require('to-csv');var querystring=require(_0x77f4('0xf'));var Papa=require(_0x77f4('0x10'));var Redis=require('ioredis');var authService=require(_0x77f4('0x11'));var qs=require(_0x77f4('0x12'));var as=require(_0x77f4('0x13'));var hardwareService=require(_0x77f4('0x14'));var logger=require('../../config/logger')(_0x77f4('0x15'));var utils=require(_0x77f4('0x16'));var config=require(_0x77f4('0x17'));var licenseUtil=require(_0x77f4('0x18'));var db=require(_0x77f4('0x19'))['db'];function respondWithStatusCode(_0x2a0243,_0x47428a){_0x47428a=_0x47428a||0xcc;return function(_0x15cce6){if(_0x15cce6){return _0x2a0243[_0x77f4('0x1a')](_0x47428a);}return _0x2a0243['status'](_0x47428a)[_0x77f4('0x1b')]();};}function respondWithResult(_0xd23097,_0x15a137){_0x15a137=_0x15a137||0xc8;return function(_0x2fadaf){if(_0x2fadaf){return _0xd23097['status'](_0x15a137)['json'](_0x2fadaf);}};}function respondWithFilteredResult(_0x2d2dbb,_0x18848d){return function(_0x249237){if(_0x249237){var _0x395bb1=_0x249237[_0x77f4('0x1c')],_0x5a8a43=_0x18848d[_0x77f4('0x1d')],_0x310435=_0x18848d[_0x77f4('0x1d')]+_0x18848d[_0x77f4('0x1e')],_0x9ed030;if(_0x310435>=_0x395bb1){_0x310435=_0x395bb1;_0x9ed030=0xc8;}else{_0x9ed030=0xce;}_0x2d2dbb[_0x77f4('0x1f')](_0x9ed030);return _0x2d2dbb['set'](_0x77f4('0x20'),_0x5a8a43+'-'+_0x310435+'/'+_0x395bb1)[_0x77f4('0x21')](_0x249237);}return null;};}function patchUpdates(_0xdf6582){return function(_0x3773a5){try{jsonpatch[_0x77f4('0x22')](_0x3773a5,_0xdf6582,!![]);}catch(_0x39e15c){return BPromise[_0x77f4('0x23')](_0x39e15c);}return _0x3773a5[_0x77f4('0x24')]();};}function saveUpdates(_0x49a688,_0x46ac19){return function(_0x2c7faa){if(_0x2c7faa){return _0x2c7faa[_0x77f4('0x25')](_0x49a688)[_0x77f4('0x26')](function(_0x4067a4){return _0x4067a4;});}return null;};}function removeEntity(_0x20cd71,_0x4ad47b){return function(_0x5ea739){if(_0x5ea739){return _0x5ea739[_0x77f4('0x27')]()[_0x77f4('0x26')](function(){_0x20cd71[_0x77f4('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12c3d5,_0x4a3e98){return function(_0x508076){if(!_0x508076){_0x12c3d5[_0x77f4('0x1a')](0x194);}return _0x508076;};}function handleError(_0x20519d,_0x560213){_0x560213=_0x560213||0x1f4;return function(_0x16c4a6){logger[_0x77f4('0x28')](_0x16c4a6['stack']);if(_0x16c4a6['name']){delete _0x16c4a6[_0x77f4('0x29')];}_0x20519d[_0x77f4('0x1f')](_0x560213)['send'](_0x16c4a6);};}exports['index']=function(_0x98b961,_0x3d487c){var _0x22a69d={},_0x4bef97={},_0x3f45a1={'count':0x0,'rows':[]};var _0x1542c8=_['map'](db['IntegrationReport']['rawAttributes'],function(_0x5c6c27){return{'name':_0x5c6c27['fieldName'],'type':_0x5c6c27[_0x77f4('0x2a')][_0x77f4('0x2b')]};});_0x4bef97[_0x77f4('0x2c')]=_[_0x77f4('0x2d')](_0x1542c8,_0x77f4('0x29'));_0x4bef97[_0x77f4('0x2e')]=_[_0x77f4('0x2f')](_0x98b961[_0x77f4('0x2e')]);_0x4bef97[_0x77f4('0x30')]=_[_0x77f4('0x31')](_0x4bef97[_0x77f4('0x2c')],_0x4bef97['query']);_0x22a69d[_0x77f4('0x32')]=_['intersection'](_0x4bef97[_0x77f4('0x2c')],qs[_0x77f4('0x33')](_0x98b961[_0x77f4('0x2e')][_0x77f4('0x33')]));_0x22a69d[_0x77f4('0x32')]=_0x22a69d[_0x77f4('0x32')][_0x77f4('0x34')]?_0x22a69d[_0x77f4('0x32')]:_0x4bef97['model'];if(!_0x98b961[_0x77f4('0x2e')][_0x77f4('0x35')](_0x77f4('0x36'))){_0x22a69d[_0x77f4('0x1e')]=qs['limit'](_0x98b961[_0x77f4('0x2e')][_0x77f4('0x1e')]);_0x22a69d[_0x77f4('0x1d')]=qs['offset'](_0x98b961[_0x77f4('0x2e')][_0x77f4('0x1d')]);}_0x22a69d['order']=qs[_0x77f4('0x37')](_0x98b961[_0x77f4('0x2e')][_0x77f4('0x37')]);_0x22a69d['where']=qs['filters'](_[_0x77f4('0x38')](_0x98b961[_0x77f4('0x2e')],_0x4bef97['filters']),_0x1542c8);if(_0x98b961[_0x77f4('0x2e')]['filter']){_0x22a69d[_0x77f4('0x39')]=_[_0x77f4('0x3a')](_0x22a69d[_0x77f4('0x39')],{'$or':_[_0x77f4('0x2d')](_0x1542c8,function(_0x4390e3){if(_0x4390e3['type']!==_0x77f4('0x3b')){var _0x398369={};_0x398369[_0x4390e3[_0x77f4('0x29')]]={'$like':'%'+_0x98b961['query'][_0x77f4('0x3c')]+'%'};return _0x398369;}})});}_0x22a69d=_[_0x77f4('0x3a')]({},_0x22a69d,_0x98b961[_0x77f4('0x3d')]);var _0x4be843={'where':_0x22a69d['where']};return db['IntegrationReport'][_0x77f4('0x1c')](_0x4be843)[_0x77f4('0x26')](function(_0x1ab721){_0x3f45a1[_0x77f4('0x1c')]=_0x1ab721;if(_0x98b961['query']['includeAll']){_0x22a69d['include']=[{'all':!![]}];}return db[_0x77f4('0x3e')]['findAll'](_0x22a69d);})['then'](function(_0x4b098a){_0x3f45a1[_0x77f4('0x3f')]=_0x4b098a;return _0x3f45a1;})[_0x77f4('0x26')](respondWithFilteredResult(_0x3d487c,_0x22a69d))[_0x77f4('0x40')](handleError(_0x3d487c,null));};exports['show']=function(_0x26fed3,_0x372618){var _0x4ed9c9={'raw':![],'where':{'id':_0x26fed3['params']['id']}},_0x56d0d8={};_0x56d0d8[_0x77f4('0x2c')]=_['keys'](db[_0x77f4('0x3e')][_0x77f4('0x41')]);_0x56d0d8['query']=_[_0x77f4('0x2f')](_0x26fed3[_0x77f4('0x2e')]);_0x56d0d8[_0x77f4('0x30')]=_[_0x77f4('0x31')](_0x56d0d8[_0x77f4('0x2c')],_0x56d0d8['query']);_0x4ed9c9['attributes']=_[_0x77f4('0x31')](_0x56d0d8[_0x77f4('0x2c')],qs[_0x77f4('0x33')](_0x26fed3[_0x77f4('0x2e')][_0x77f4('0x33')]));_0x4ed9c9[_0x77f4('0x32')]=_0x4ed9c9[_0x77f4('0x32')][_0x77f4('0x34')]?_0x4ed9c9[_0x77f4('0x32')]:_0x56d0d8[_0x77f4('0x2c')];if(_0x26fed3[_0x77f4('0x2e')][_0x77f4('0x42')]){_0x4ed9c9[_0x77f4('0x43')]=[{'all':!![]}];}_0x4ed9c9=_[_0x77f4('0x3a')]({},_0x4ed9c9,_0x26fed3[_0x77f4('0x3d')]);return db[_0x77f4('0x3e')][_0x77f4('0x44')](_0x4ed9c9)['then'](handleEntityNotFound(_0x372618,null))[_0x77f4('0x26')](respondWithResult(_0x372618,null))[_0x77f4('0x40')](handleError(_0x372618,null));};exports[_0x77f4('0x45')]=function(_0x5d4d06,_0x251dfe){return db[_0x77f4('0x3e')][_0x77f4('0x45')](_0x5d4d06['body'],{})[_0x77f4('0x26')](respondWithResult(_0x251dfe,0xc9))[_0x77f4('0x40')](handleError(_0x251dfe,null));};exports['update']=function(_0x39d7bb,_0x186bb8){if(_0x39d7bb[_0x77f4('0x46')]['id']){delete _0x39d7bb['body']['id'];}return db[_0x77f4('0x3e')][_0x77f4('0x44')]({'where':{'id':_0x39d7bb[_0x77f4('0x47')]['id']}})['then'](handleEntityNotFound(_0x186bb8,null))[_0x77f4('0x26')](saveUpdates(_0x39d7bb[_0x77f4('0x46')],null))[_0x77f4('0x26')](respondWithResult(_0x186bb8,null))[_0x77f4('0x40')](handleError(_0x186bb8,null));};exports['destroy']=function(_0x456f19,_0x92f207){return db[_0x77f4('0x3e')]['find']({'where':{'id':_0x456f19['params']['id']}})[_0x77f4('0x26')](handleEntityNotFound(_0x92f207,null))[_0x77f4('0x26')](removeEntity(_0x92f207,null))[_0x77f4('0x40')](handleError(_0x92f207,null));};exports[_0x77f4('0x48')]=function(_0xbb2a3a,_0x158e1c){return db[_0x77f4('0x3e')][_0x77f4('0x48')]()[_0x77f4('0x26')](respondWithResult(_0x158e1c,null))[_0x77f4('0x40')](handleError(_0x158e1c,null));};
\ No newline at end of file