Built motion from commit 00bf23f6.|2.6.16
[motion2.git] / server / api / chatQueueReport / chatQueueReport.controller.js
index 93d4a2f..733eb60 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x5496=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','index','ChatQueueReport','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','offset','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','rows','catch','show','params','keys','fields','include','options','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils'];(function(_0x5104a0,_0x3aa5a7){var _0x21346e=function(_0x5d1fe6){while(--_0x5d1fe6){_0x5104a0['push'](_0x5104a0['shift']());}};_0x21346e(++_0x3aa5a7);}(_0x5496,0x175));var _0x6549=function(_0x15b696,_0x2aeaf4){_0x15b696=_0x15b696-0x0;var _0x4a699b=_0x5496[_0x15b696];return _0x4a699b;};'use strict';var emlformat=require(_0x6549('0x0'));var rimraf=require(_0x6549('0x1'));var zipdir=require(_0x6549('0x2'));var jsonpatch=require(_0x6549('0x3'));var rp=require(_0x6549('0x4'));var moment=require('moment');var BPromise=require(_0x6549('0x5'));var Mustache=require('mustache');var util=require(_0x6549('0x6'));var path=require(_0x6549('0x7'));var sox=require(_0x6549('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6549('0x9'));var _=require(_0x6549('0xa'));var squel=require('squel');var crypto=require(_0x6549('0xb'));var jsforce=require(_0x6549('0xc'));var deskjs=require(_0x6549('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6549('0xe'));var Papa=require(_0x6549('0xf'));var Redis=require(_0x6549('0x10'));var authService=require(_0x6549('0x11'));var qs=require(_0x6549('0x12'));var as=require(_0x6549('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6549('0x14'));var utils=require(_0x6549('0x15'));var config=require(_0x6549('0x16'));var licenseUtil=require(_0x6549('0x17'));var db=require(_0x6549('0x18'))['db'];function respondWithStatusCode(_0x5bc018,_0x4dfb06){_0x4dfb06=_0x4dfb06||0xcc;return function(_0x3f844f){if(_0x3f844f){return _0x5bc018[_0x6549('0x19')](_0x4dfb06);}return _0x5bc018['status'](_0x4dfb06)[_0x6549('0x1a')]();};}function respondWithResult(_0x150fc8,_0x195d25){_0x195d25=_0x195d25||0xc8;return function(_0x12b068){if(_0x12b068){return _0x150fc8[_0x6549('0x1b')](_0x195d25)[_0x6549('0x1c')](_0x12b068);}};}function respondWithFilteredResult(_0x55c112,_0x5db86d){return function(_0x384f75){if(_0x384f75){var _0x25da29=typeof _0x5db86d['offset']===_0x6549('0x1d')&&typeof _0x5db86d[_0x6549('0x1e')]===_0x6549('0x1d');var _0x387e60=_0x384f75[_0x6549('0x1f')];var _0x53b12b=_0x25da29?0x0:_0x5db86d['offset'];var _0x26a212=_0x25da29?_0x384f75['count']:_0x5db86d['offset']+_0x5db86d[_0x6549('0x1e')];var _0x1e5079;if(_0x26a212>=_0x387e60){_0x26a212=_0x387e60;_0x1e5079=0xc8;}else{_0x1e5079=0xce;}_0x55c112[_0x6549('0x1b')](_0x1e5079);return _0x55c112[_0x6549('0x20')](_0x6549('0x21'),_0x53b12b+'-'+_0x26a212+'/'+_0x387e60)['json'](_0x384f75);}return null;};}function patchUpdates(_0x228117){return function(_0x4b40c1){try{jsonpatch[_0x6549('0x22')](_0x4b40c1,_0x228117,!![]);}catch(_0x72322b){return BPromise[_0x6549('0x23')](_0x72322b);}return _0x4b40c1[_0x6549('0x24')]();};}function saveUpdates(_0x22bcf8,_0x12d547){return function(_0x427b47){if(_0x427b47){return _0x427b47[_0x6549('0x25')](_0x22bcf8)[_0x6549('0x26')](function(_0x6ae00c){return _0x6ae00c;});}return null;};}function removeEntity(_0x40d3f9,_0x1fbfa4){return function(_0x23c0ba){if(_0x23c0ba){return _0x23c0ba['destroy']()[_0x6549('0x26')](function(){_0x40d3f9[_0x6549('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x126967,_0x29f89e){return function(_0x3768cb){if(!_0x3768cb){_0x126967['sendStatus'](0x194);}return _0x3768cb;};}function handleError(_0x31a95,_0xfb51a1){_0xfb51a1=_0xfb51a1||0x1f4;return function(_0x14de1f){logger[_0x6549('0x27')](_0x14de1f[_0x6549('0x28')]);if(_0x14de1f[_0x6549('0x29')]){delete _0x14de1f[_0x6549('0x29')];}_0x31a95[_0x6549('0x1b')](_0xfb51a1)['send'](_0x14de1f);};}exports[_0x6549('0x2a')]=function(_0x136518,_0x17fdfb){var _0x4c605c={},_0x3f1502={},_0x4acaf5={'count':0x0,'rows':[]};var _0x4f0ad1=_['map'](db[_0x6549('0x2b')][_0x6549('0x2c')],function(_0x4f3069){return{'name':_0x4f3069[_0x6549('0x2d')],'type':_0x4f3069[_0x6549('0x2e')][_0x6549('0x2f')]};});_0x3f1502[_0x6549('0x30')]=_[_0x6549('0x31')](_0x4f0ad1,_0x6549('0x29'));_0x3f1502[_0x6549('0x32')]=_['keys'](_0x136518[_0x6549('0x32')]);_0x3f1502[_0x6549('0x33')]=_[_0x6549('0x34')](_0x3f1502[_0x6549('0x30')],_0x3f1502[_0x6549('0x32')]);_0x4c605c[_0x6549('0x35')]=_['intersection'](_0x3f1502[_0x6549('0x30')],qs['fields'](_0x136518[_0x6549('0x32')]['fields']));_0x4c605c[_0x6549('0x35')]=_0x4c605c[_0x6549('0x35')][_0x6549('0x36')]?_0x4c605c['attributes']:_0x3f1502[_0x6549('0x30')];if(!_0x136518[_0x6549('0x32')][_0x6549('0x37')](_0x6549('0x38'))){_0x4c605c['limit']=qs['limit'](_0x136518['query'][_0x6549('0x1e')]);_0x4c605c[_0x6549('0x39')]=qs['offset'](_0x136518[_0x6549('0x32')][_0x6549('0x39')]);}_0x4c605c[_0x6549('0x3a')]=qs[_0x6549('0x3b')](_0x136518[_0x6549('0x32')]['sort']);_0x4c605c['where']=qs[_0x6549('0x33')](_[_0x6549('0x3c')](_0x136518[_0x6549('0x32')],_0x3f1502[_0x6549('0x33')]),_0x4f0ad1);if(_0x136518[_0x6549('0x32')][_0x6549('0x3d')]){_0x4c605c[_0x6549('0x3e')]=_[_0x6549('0x3f')](_0x4c605c[_0x6549('0x3e')],{'$or':_[_0x6549('0x31')](_0x4f0ad1,function(_0x525f82){if(_0x525f82[_0x6549('0x2e')]!==_0x6549('0x40')){var _0x2ea977={};_0x2ea977[_0x525f82[_0x6549('0x29')]]={'$like':'%'+_0x136518[_0x6549('0x32')]['filter']+'%'};return _0x2ea977;}})});}_0x4c605c=_['merge']({},_0x4c605c,_0x136518['options']);var _0x22b919={'where':_0x4c605c[_0x6549('0x3e')]};return db[_0x6549('0x2b')][_0x6549('0x1f')](_0x22b919)['then'](function(_0x56ce9f){_0x4acaf5[_0x6549('0x1f')]=_0x56ce9f;if(_0x136518[_0x6549('0x32')][_0x6549('0x41')]){_0x4c605c['include']=[{'all':!![]}];}return db[_0x6549('0x2b')]['findAll'](_0x4c605c);})[_0x6549('0x26')](function(_0x2ec614){_0x4acaf5[_0x6549('0x42')]=_0x2ec614;return _0x4acaf5;})[_0x6549('0x26')](respondWithFilteredResult(_0x17fdfb,_0x4c605c))[_0x6549('0x43')](handleError(_0x17fdfb,null));};exports[_0x6549('0x44')]=function(_0xbbfdc9,_0x4deaab){var _0x132625={'raw':!![],'where':{'id':_0xbbfdc9[_0x6549('0x45')]['id']}},_0x309f45={};_0x309f45[_0x6549('0x30')]=_[_0x6549('0x46')](db[_0x6549('0x2b')][_0x6549('0x2c')]);_0x309f45[_0x6549('0x32')]=_[_0x6549('0x46')](_0xbbfdc9[_0x6549('0x32')]);_0x309f45[_0x6549('0x33')]=_[_0x6549('0x34')](_0x309f45[_0x6549('0x30')],_0x309f45[_0x6549('0x32')]);_0x132625[_0x6549('0x35')]=_[_0x6549('0x34')](_0x309f45['model'],qs[_0x6549('0x47')](_0xbbfdc9[_0x6549('0x32')][_0x6549('0x47')]));_0x132625[_0x6549('0x35')]=_0x132625['attributes'][_0x6549('0x36')]?_0x132625['attributes']:_0x309f45[_0x6549('0x30')];if(_0xbbfdc9[_0x6549('0x32')]['includeAll']){_0x132625[_0x6549('0x48')]=[{'all':!![]}];}_0x132625=_[_0x6549('0x3f')]({},_0x132625,_0xbbfdc9[_0x6549('0x49')]);return db[_0x6549('0x2b')][_0x6549('0x4a')](_0x132625)['then'](handleEntityNotFound(_0x4deaab,null))['then'](respondWithResult(_0x4deaab,null))[_0x6549('0x43')](handleError(_0x4deaab,null));};exports[_0x6549('0x4b')]=function(_0x41d675,_0x1712f3){return db[_0x6549('0x2b')]['create'](_0x41d675[_0x6549('0x4c')],{})[_0x6549('0x26')](respondWithResult(_0x1712f3,0xc9))[_0x6549('0x43')](handleError(_0x1712f3,null));};exports[_0x6549('0x25')]=function(_0xa4c650,_0x25a6ee){if(_0xa4c650[_0x6549('0x4c')]['id']){delete _0xa4c650[_0x6549('0x4c')]['id'];}return db['ChatQueueReport'][_0x6549('0x4a')]({'where':{'id':_0xa4c650['params']['id']}})[_0x6549('0x26')](handleEntityNotFound(_0x25a6ee,null))[_0x6549('0x26')](saveUpdates(_0xa4c650[_0x6549('0x4c')],null))['then'](respondWithResult(_0x25a6ee,null))[_0x6549('0x43')](handleError(_0x25a6ee,null));};exports[_0x6549('0x4d')]=function(_0x2ef4d2,_0x5300c8){return db[_0x6549('0x2b')][_0x6549('0x4a')]({'where':{'id':_0x2ef4d2[_0x6549('0x45')]['id']}})[_0x6549('0x26')](handleEntityNotFound(_0x5300c8,null))[_0x6549('0x26')](removeEntity(_0x5300c8,null))[_0x6549('0x43')](handleError(_0x5300c8,null));};exports['describe']=function(_0x28af00,_0x4bbc61){return db[_0x6549('0x2b')][_0x6549('0x4e')]()[_0x6549('0x26')](respondWithResult(_0x4bbc61,null))[_0x6549('0x43')](handleError(_0x4bbc61,null));};
\ No newline at end of file
+var _0x0309=['describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','sox','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','status','end','offset','undefined','count','limit','set','json','apply','reject','then','destroy','sendStatus','stack','name','send','rawAttributes','fieldName','type','model','query','keys','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','merge','options','includeAll','ChatQueueReport','findAll','rows','show','create','body','update','find','catch','params'];(function(_0x3c05b2,_0x2a2dc3){var _0x586819=function(_0x52129b){while(--_0x52129b){_0x3c05b2['push'](_0x3c05b2['shift']());}};_0x586819(++_0x2a2dc3);}(_0x0309,0x8d));var _0x9030=function(_0x2ba3c5,_0x405d42){_0x2ba3c5=_0x2ba3c5-0x0;var _0x426eaf=_0x0309[_0x2ba3c5];return _0x426eaf;};'use strict';var emlformat=require(_0x9030('0x0'));var rimraf=require(_0x9030('0x1'));var zipdir=require(_0x9030('0x2'));var jsonpatch=require(_0x9030('0x3'));var rp=require(_0x9030('0x4'));var moment=require('moment');var BPromise=require(_0x9030('0x5'));var Mustache=require(_0x9030('0x6'));var util=require('util');var path=require('path');var sox=require(_0x9030('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9030('0x8'));var squel=require('squel');var crypto=require(_0x9030('0x9'));var jsforce=require(_0x9030('0xa'));var deskjs=require(_0x9030('0xb'));var toCsv=require(_0x9030('0xc'));var querystring=require(_0x9030('0xd'));var Papa=require(_0x9030('0xe'));var Redis=require(_0x9030('0xf'));var authService=require(_0x9030('0x10'));var qs=require(_0x9030('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9030('0x12'));var logger=require('../../config/logger')(_0x9030('0x13'));var utils=require(_0x9030('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x9030('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x21ded6,_0x5096a0){_0x5096a0=_0x5096a0||0xcc;return function(_0x444132){if(_0x444132){return _0x21ded6['sendStatus'](_0x5096a0);}return _0x21ded6[_0x9030('0x16')](_0x5096a0)[_0x9030('0x17')]();};}function respondWithResult(_0x438211,_0x142a9e){_0x142a9e=_0x142a9e||0xc8;return function(_0x551021){if(_0x551021){return _0x438211['status'](_0x142a9e)['json'](_0x551021);}};}function respondWithFilteredResult(_0x493b5f,_0x14eb75){return function(_0x3b61cc){if(_0x3b61cc){var _0x4b8351=typeof _0x14eb75[_0x9030('0x18')]===_0x9030('0x19')&&typeof _0x14eb75['limit']===_0x9030('0x19');var _0x4bc394=_0x3b61cc[_0x9030('0x1a')];var _0x4960fd=_0x4b8351?0x0:_0x14eb75['offset'];var _0x36f91d=_0x4b8351?_0x3b61cc[_0x9030('0x1a')]:_0x14eb75[_0x9030('0x18')]+_0x14eb75[_0x9030('0x1b')];var _0x42207a;if(_0x36f91d>=_0x4bc394){_0x36f91d=_0x4bc394;_0x42207a=0xc8;}else{_0x42207a=0xce;}_0x493b5f[_0x9030('0x16')](_0x42207a);return _0x493b5f[_0x9030('0x1c')]('Content-Range',_0x4960fd+'-'+_0x36f91d+'/'+_0x4bc394)[_0x9030('0x1d')](_0x3b61cc);}return null;};}function patchUpdates(_0x3e0d21){return function(_0x279cd1){try{jsonpatch[_0x9030('0x1e')](_0x279cd1,_0x3e0d21,!![]);}catch(_0x56c9a5){return BPromise[_0x9030('0x1f')](_0x56c9a5);}return _0x279cd1['save']();};}function saveUpdates(_0x50a924,_0x2d1041){return function(_0x350ef3){if(_0x350ef3){return _0x350ef3['update'](_0x50a924)[_0x9030('0x20')](function(_0x2c26ed){return _0x2c26ed;});}return null;};}function removeEntity(_0x39fd02,_0x303885){return function(_0x2cb254){if(_0x2cb254){return _0x2cb254[_0x9030('0x21')]()[_0x9030('0x20')](function(){_0x39fd02[_0x9030('0x16')](0xcc)[_0x9030('0x17')]();});}};}function handleEntityNotFound(_0x46f19c,_0x1ae92e){return function(_0x53dbc2){if(!_0x53dbc2){_0x46f19c[_0x9030('0x22')](0x194);}return _0x53dbc2;};}function handleError(_0x434152,_0x5864e1){_0x5864e1=_0x5864e1||0x1f4;return function(_0x1761ee){logger['error'](_0x1761ee[_0x9030('0x23')]);if(_0x1761ee[_0x9030('0x24')]){delete _0x1761ee[_0x9030('0x24')];}_0x434152['status'](_0x5864e1)[_0x9030('0x25')](_0x1761ee);};}exports['index']=function(_0x4ab6d4,_0x3e0c85){var _0x3af16a={},_0x1afa08={},_0x5328c5={'count':0x0,'rows':[]};var _0xf71255=_['map'](db['ChatQueueReport'][_0x9030('0x26')],function(_0x25410e){return{'name':_0x25410e[_0x9030('0x27')],'type':_0x25410e[_0x9030('0x28')]['key']};});_0x1afa08[_0x9030('0x29')]=_['map'](_0xf71255,_0x9030('0x24'));_0x1afa08[_0x9030('0x2a')]=_[_0x9030('0x2b')](_0x4ab6d4[_0x9030('0x2a')]);_0x1afa08['filters']=_['intersection'](_0x1afa08[_0x9030('0x29')],_0x1afa08['query']);_0x3af16a[_0x9030('0x2c')]=_[_0x9030('0x2d')](_0x1afa08[_0x9030('0x29')],qs[_0x9030('0x2e')](_0x4ab6d4[_0x9030('0x2a')][_0x9030('0x2e')]));_0x3af16a[_0x9030('0x2c')]=_0x3af16a['attributes']['length']?_0x3af16a[_0x9030('0x2c')]:_0x1afa08[_0x9030('0x29')];if(!_0x4ab6d4['query'][_0x9030('0x2f')](_0x9030('0x30'))){_0x3af16a[_0x9030('0x1b')]=qs[_0x9030('0x1b')](_0x4ab6d4[_0x9030('0x2a')][_0x9030('0x1b')]);_0x3af16a[_0x9030('0x18')]=qs['offset'](_0x4ab6d4[_0x9030('0x2a')][_0x9030('0x18')]);}_0x3af16a[_0x9030('0x31')]=qs['sort'](_0x4ab6d4[_0x9030('0x2a')][_0x9030('0x32')]);_0x3af16a[_0x9030('0x33')]=qs[_0x9030('0x34')](_[_0x9030('0x35')](_0x4ab6d4[_0x9030('0x2a')],_0x1afa08['filters']),_0xf71255);if(_0x4ab6d4[_0x9030('0x2a')]['filter']){_0x3af16a['where']=_['merge'](_0x3af16a['where'],{'$or':_['map'](_0xf71255,function(_0x232e53){if(_0x232e53[_0x9030('0x28')]!==_0x9030('0x36')){var _0x1ca60a={};_0x1ca60a[_0x232e53[_0x9030('0x24')]]={'$like':'%'+_0x4ab6d4[_0x9030('0x2a')][_0x9030('0x37')]+'%'};return _0x1ca60a;}})});}_0x3af16a=_[_0x9030('0x38')]({},_0x3af16a,_0x4ab6d4[_0x9030('0x39')]);var _0xa13cc6={'where':_0x3af16a['where']};return db['ChatQueueReport'][_0x9030('0x1a')](_0xa13cc6)[_0x9030('0x20')](function(_0x4f4b46){_0x5328c5[_0x9030('0x1a')]=_0x4f4b46;if(_0x4ab6d4[_0x9030('0x2a')][_0x9030('0x3a')]){_0x3af16a['include']=[{'all':!![]}];}return db[_0x9030('0x3b')][_0x9030('0x3c')](_0x3af16a);})[_0x9030('0x20')](function(_0x11ccb2){_0x5328c5[_0x9030('0x3d')]=_0x11ccb2;return _0x5328c5;})[_0x9030('0x20')](respondWithFilteredResult(_0x3e0c85,_0x3af16a))['catch'](handleError(_0x3e0c85,null));};exports[_0x9030('0x3e')]=function(_0x45e99f,_0x26bd68){var _0x4640dd={'raw':!![],'where':{'id':_0x45e99f['params']['id']}},_0x5c95ec={};_0x5c95ec[_0x9030('0x29')]=_[_0x9030('0x2b')](db[_0x9030('0x3b')][_0x9030('0x26')]);_0x5c95ec[_0x9030('0x2a')]=_[_0x9030('0x2b')](_0x45e99f[_0x9030('0x2a')]);_0x5c95ec[_0x9030('0x34')]=_[_0x9030('0x2d')](_0x5c95ec[_0x9030('0x29')],_0x5c95ec[_0x9030('0x2a')]);_0x4640dd[_0x9030('0x2c')]=_[_0x9030('0x2d')](_0x5c95ec[_0x9030('0x29')],qs[_0x9030('0x2e')](_0x45e99f[_0x9030('0x2a')]['fields']));_0x4640dd['attributes']=_0x4640dd[_0x9030('0x2c')]['length']?_0x4640dd[_0x9030('0x2c')]:_0x5c95ec[_0x9030('0x29')];if(_0x45e99f[_0x9030('0x2a')][_0x9030('0x3a')]){_0x4640dd['include']=[{'all':!![]}];}_0x4640dd=_[_0x9030('0x38')]({},_0x4640dd,_0x45e99f[_0x9030('0x39')]);return db[_0x9030('0x3b')]['find'](_0x4640dd)[_0x9030('0x20')](handleEntityNotFound(_0x26bd68,null))[_0x9030('0x20')](respondWithResult(_0x26bd68,null))['catch'](handleError(_0x26bd68,null));};exports['create']=function(_0x587cfb,_0x35978a){return db[_0x9030('0x3b')][_0x9030('0x3f')](_0x587cfb[_0x9030('0x40')],{})[_0x9030('0x20')](respondWithResult(_0x35978a,0xc9))['catch'](handleError(_0x35978a,null));};exports[_0x9030('0x41')]=function(_0x2340e1,_0x35d0a9){if(_0x2340e1[_0x9030('0x40')]['id']){delete _0x2340e1[_0x9030('0x40')]['id'];}return db['ChatQueueReport'][_0x9030('0x42')]({'where':{'id':_0x2340e1['params']['id']}})[_0x9030('0x20')](handleEntityNotFound(_0x35d0a9,null))['then'](saveUpdates(_0x2340e1[_0x9030('0x40')],null))[_0x9030('0x20')](respondWithResult(_0x35d0a9,null))[_0x9030('0x43')](handleError(_0x35d0a9,null));};exports[_0x9030('0x21')]=function(_0x446173,_0x55c8b8){return db['ChatQueueReport'][_0x9030('0x42')]({'where':{'id':_0x446173[_0x9030('0x44')]['id']}})[_0x9030('0x20')](handleEntityNotFound(_0x55c8b8,null))[_0x9030('0x20')](removeEntity(_0x55c8b8,null))[_0x9030('0x43')](handleError(_0x55c8b8,null));};exports['describe']=function(_0xd04274,_0x52d097){return db[_0x9030('0x3b')][_0x9030('0x45')]()['then'](respondWithResult(_0x52d097,null))['catch'](handleError(_0x52d097,null));};
\ No newline at end of file