Built motion from commit 70c527640.|1.0.24
[motion.git] / server / api / openchannel_queue / openchannel_queue.controller.js
index 682fa36..e3cd4b8 100644 (file)
@@ -1 +1 @@
-var _0x9969=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x55\x73\x65\x72\x48\x61\x73\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x73\x49\x64\x42\x79\x55\x73\x65\x72","\x69\x64","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x51\x75\x65\x72\x79","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x72\x6F\x6C\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x61\x67\x65\x6E\x74\x73","\x62\x6F\x64\x79","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x55\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x20\x51\x75\x65\x75\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x72\x72","\x65\x72\x72\x6F\x72","\x71\x75\x65\x75\x65","\x68\x61\x6E\x64\x6C\x65\x46\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x9969[0];var _=require(_0x9969[1]);var Util=require(_0x9969[2]);var OpenchannelQueue=require(_0x9969[4])[_0x9969[3]];var User=require(_0x9969[4])[_0x9969[5]];var sequelize=require(_0x9969[4])[_0x9969[6]];var UserHasOpenchannelQueue=require(_0x9969[4])[_0x9969[7]];function handleError(_0xae17x8,_0xae17x9){return _0xae17x8[_0x9969[9]](500)[_0x9969[8]](_0xae17x9)}exports[_0x9969[10]]= function(_0xae17xa,_0xae17x8){switch(_0xae17xa[_0x9969[16]][_0x9969[23]]){case _0x9969[16]:return User[_0x9969[17]](_0xae17xa[_0x9969[16]][_0x9969[15]],{attributes:[_0x9969[15]]})[_0x9969[12]](Util[_0x9969[14]](_0xae17xa[_0x9969[13]]))[_0x9969[12]](function(_0xae17xb){_0xae17x8[_0x9969[9]](200)[_0x9969[8]](_0xae17xb)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)});default:return OpenchannelQueue[_0x9969[22]](_0x9969[21])[_0x9969[20]](_[_0x9969[19]](Util[_0x9969[18]](_0xae17xa[_0x9969[13]]),{distinct:true}))[_0x9969[12]](function(_0xae17xb){_0xae17x8[_0x9969[9]](200)[_0x9969[8]](_0xae17xb)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})}};exports[_0x9969[24]]= function(_0xae17xa,_0xae17x8){return OpenchannelQueue[_0x9969[22]](_0x9969[21])[_0x9969[17]](_0xae17xa[_0x9969[26]][_0x9969[15]])[_0x9969[12]](function(_0xae17xc){if(!_0xae17xc){return _0xae17x8[_0x9969[25]](404)};return _0xae17x8[_0x9969[8]](_0xae17xc)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})};exports[_0x9969[27]]= function(_0xae17xa,_0xae17x8){return OpenchannelQueue[_0x9969[17]](_0xae17xa[_0x9969[26]][_0x9969[15]])[_0x9969[12]](function(_0xae17xe){if(!_0xae17xe){return _0xae17x8[_0x9969[25]](404)};return _0xae17xe[_0x9969[33]]({where:{role:_0x9969[29]},attributes:[_0x9969[15],_0x9969[30],_0x9969[31],_0x9969[32]]})})[_0x9969[12]](function(_0xae17xd){return _0xae17x8[_0x9969[9]](200)[_0x9969[8]]({rows:_0xae17xd,count:_0xae17xd[_0x9969[28]]})})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})};exports[_0x9969[34]]= function(_0xae17xa,_0xae17x8){var _0xae17xf;return OpenchannelQueue[_0x9969[34]](_0xae17xa[_0x9969[38]])[_0x9969[12]](function(_0xae17x10){_0xae17xf= _0xae17x10;if(_0xae17xa[_0x9969[38]][_0x9969[37]]){return _0xae17xf[_0x9969[40]](_0xae17xa[_0x9969[38]][_0x9969[37]],{penalty:_0xae17xa[_0x9969[38]][_0x9969[39]]|| 0,queue:_0xae17xf[_0x9969[30]]})}})[_0x9969[12]](function(){return _0xae17x8[_0x9969[9]](201)[_0x9969[8]](_0xae17xf)})[_0x9969[11]](sequelize.UniqueConstraintError,function(_0xae17x9){return Util[_0x9969[36]][_0x9969[35]](_0xae17x8,_0xae17x9)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})};exports[_0x9969[41]]= function(_0xae17xa,_0xae17x8){if(_0xae17xa[_0x9969[38]][_0x9969[15]]){delete _0xae17xa[_0x9969[38]][_0x9969[15]]};return OpenchannelQueue[_0x9969[17]](_0xae17xa[_0x9969[26]][_0x9969[15]])[_0x9969[12]](function(_0xae17xc){if(!_0xae17xc){return _0xae17x8[_0x9969[25]](404)};var _0xae17x11=_[_0x9969[19]](_0xae17xc,_0xae17xa[_0x9969[38]]);return _0xae17x11[_0x9969[42]]()})[_0x9969[12]](function(_0xae17xc){return _0xae17x8[_0x9969[9]](200)[_0x9969[8]](_0xae17xc)})[_0x9969[11]](sequelize.UniqueConstraintError,function(_0xae17x9){return Util[_0x9969[36]][_0x9969[35]](_0xae17x8,_0xae17x9)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})};exports[_0x9969[43]]= function(_0xae17xa,_0xae17x8,_0xae17x12){return OpenchannelQueue[_0x9969[17]](_0xae17xa[_0x9969[26]][_0x9969[15]])[_0x9969[12]](function(_0xae17xc){if(!_0xae17xc){return _0xae17x8[_0x9969[25]](404)};var _0xae17x13=_[_0x9969[44]](_0xae17xa[_0x9969[38]][_0x9969[37]],function(_0xae17x14){return {UserId:_0xae17x14,penalty:_0xae17xa[_0x9969[38]][_0x9969[39]],OpenchannelQueueId:_0xae17xc[_0x9969[15]],queue:_0xae17xc[_0x9969[30]]}});return UserHasOpenchannelQueue[_0x9969[45]](_0xae17x13,{individualHooks:true})})[_0x9969[12]](function(){return _0xae17x8[_0x9969[25]](200)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})};exports[_0x9969[46]]= function(_0xae17xa,_0xae17x8){return OpenchannelQueue[_0x9969[17]](_0xae17xa[_0x9969[26]][_0x9969[15]])[_0x9969[12]](function(_0xae17xc){if(_0xae17xc){return _0xae17xc[_0x9969[47]](_0xae17xa[_0x9969[13]][_0x9969[37]],{individualHooks:true})}else {throw  new Error(_0x9969[48])}})[_0x9969[12]](function(){return _0xae17x8[_0x9969[25]](202)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})};exports[_0x9969[49]]= function(_0xae17xa,_0xae17x8){var _0xae17x15;return OpenchannelQueue[_0x9969[17]](_0xae17xa[_0x9969[26]][_0x9969[15]])[_0x9969[12]](function(_0xae17xc){_0xae17x15= _0xae17xc;if(!_0xae17xc){return _0xae17x8[_0x9969[25]](404)};return _0xae17xc[_0x9969[49]]()})[_0x9969[12]](function(){return _0xae17x8[_0x9969[25]](204)})[_0x9969[11]](sequelize.ForeignKeyConstraintError,function(_0xae17x9){return Util[_0x9969[36]][_0x9969[53]](_0xae17x8,_0x9969[52],_0xae17x15[_0x9969[30]],_0xae17x9)})[_0x9969[11]](function(_0xae17x9){console[_0x9969[51]](_0x9969[50],_0xae17x9);return handleError(_0xae17x8,_0xae17x9)})};exports[_0x9969[54]]= function(_0xae17xa,_0xae17x8){return OpenchannelQueue[_0x9969[49]]({where:{id:_0xae17xa[_0x9969[13]][_0x9969[55]]},individualHooks:true})[_0x9969[12]](function(){return _0xae17x8[_0x9969[25]](204)})[_0x9969[11]](function(_0xae17x9){return handleError(_0xae17x8,_0xae17x9)})}
\ No newline at end of file
+var _0x519d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72\x2E\x6A\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x55\x73\x65\x72\x48\x61\x73\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x73\x74\x61\x63\x6B","\x65\x72\x72\x6F\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x73\x49\x64\x42\x79\x55\x73\x65\x72","\x69\x64","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x51\x75\x65\x72\x79","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x72\x6F\x6C\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x61\x67\x65\x6E\x74\x73","\x62\x6F\x64\x79","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x55\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x20\x51\x75\x65\x75\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x71\x75\x65\x75\x65","\x68\x61\x6E\x64\x6C\x65\x46\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x519d[0];var _=require(_0x519d[1]);var Util=require(_0x519d[2]);var logger=require(_0x519d[4])(_0x519d[3]);var OpenchannelQueue=require(_0x519d[6])[_0x519d[5]];var User=require(_0x519d[6])[_0x519d[7]];var sequelize=require(_0x519d[6])[_0x519d[8]];var UserHasOpenchannelQueue=require(_0x519d[6])[_0x519d[9]];function handleError(_0x73dcx9,_0x73dcxa){logger[_0x519d[11]](_0x73dcxa[_0x519d[10]]);return _0x73dcx9[_0x519d[13]](500)[_0x519d[12]](_0x73dcxa)}exports[_0x519d[14]]= function(_0x73dcxb,_0x73dcx9){switch(_0x73dcxb[_0x519d[20]][_0x519d[27]]){case _0x519d[20]:return User[_0x519d[21]](_0x73dcxb[_0x519d[20]][_0x519d[19]],{attributes:[_0x519d[19]]})[_0x519d[16]](Util[_0x519d[18]](_0x73dcxb[_0x519d[17]]))[_0x519d[16]](function(_0x73dcxc){_0x73dcx9[_0x519d[13]](200)[_0x519d[12]](_0x73dcxc)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)});default:return OpenchannelQueue[_0x519d[26]](_0x519d[25])[_0x519d[24]](_[_0x519d[23]](Util[_0x519d[22]](_0x73dcxb[_0x519d[17]]),{distinct:true}))[_0x519d[16]](function(_0x73dcxc){_0x73dcx9[_0x519d[13]](200)[_0x519d[12]](_0x73dcxc)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})}};exports[_0x519d[28]]= function(_0x73dcxb,_0x73dcx9){return OpenchannelQueue[_0x519d[26]](_0x519d[25])[_0x519d[21]](_0x73dcxb[_0x519d[30]][_0x519d[19]])[_0x519d[16]](function(_0x73dcxd){if(!_0x73dcxd){return _0x73dcx9[_0x519d[29]](404)};return _0x73dcx9[_0x519d[12]](_0x73dcxd)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})};exports[_0x519d[31]]= function(_0x73dcxb,_0x73dcx9){return OpenchannelQueue[_0x519d[21]](_0x73dcxb[_0x519d[30]][_0x519d[19]])[_0x519d[16]](function(_0x73dcxf){if(!_0x73dcxf){return _0x73dcx9[_0x519d[29]](404)};return _0x73dcxf[_0x519d[37]]({where:{role:_0x519d[33]},attributes:[_0x519d[19],_0x519d[34],_0x519d[35],_0x519d[36]]})})[_0x519d[16]](function(_0x73dcxe){return _0x73dcx9[_0x519d[13]](200)[_0x519d[12]]({rows:_0x73dcxe,count:_0x73dcxe[_0x519d[32]]})})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})};exports[_0x519d[38]]= function(_0x73dcxb,_0x73dcx9){var _0x73dcx10;return OpenchannelQueue[_0x519d[38]](_0x73dcxb[_0x519d[42]])[_0x519d[16]](function(_0x73dcx11){_0x73dcx10= _0x73dcx11;if(_0x73dcxb[_0x519d[42]][_0x519d[41]]){return _0x73dcx10[_0x519d[44]](_0x73dcxb[_0x519d[42]][_0x519d[41]],{penalty:_0x73dcxb[_0x519d[42]][_0x519d[43]]|| 0,queue:_0x73dcx10[_0x519d[34]]})}})[_0x519d[16]](function(){return _0x73dcx9[_0x519d[13]](201)[_0x519d[12]](_0x73dcx10)})[_0x519d[15]](sequelize.UniqueConstraintError,function(_0x73dcxa){return Util[_0x519d[40]][_0x519d[39]](_0x73dcx9,_0x73dcxa)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})};exports[_0x519d[45]]= function(_0x73dcxb,_0x73dcx9){if(_0x73dcxb[_0x519d[42]][_0x519d[19]]){delete _0x73dcxb[_0x519d[42]][_0x519d[19]]};return OpenchannelQueue[_0x519d[21]](_0x73dcxb[_0x519d[30]][_0x519d[19]])[_0x519d[16]](function(_0x73dcxd){if(!_0x73dcxd){return _0x73dcx9[_0x519d[29]](404)};var _0x73dcx12=_[_0x519d[23]](_0x73dcxd,_0x73dcxb[_0x519d[42]]);return _0x73dcx12[_0x519d[46]]()})[_0x519d[16]](function(_0x73dcxd){return _0x73dcx9[_0x519d[13]](200)[_0x519d[12]](_0x73dcxd)})[_0x519d[15]](sequelize.UniqueConstraintError,function(_0x73dcxa){return Util[_0x519d[40]][_0x519d[39]](_0x73dcx9,_0x73dcxa)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})};exports[_0x519d[47]]= function(_0x73dcxb,_0x73dcx9,_0x73dcx13){return OpenchannelQueue[_0x519d[21]](_0x73dcxb[_0x519d[30]][_0x519d[19]])[_0x519d[16]](function(_0x73dcxd){if(!_0x73dcxd){return _0x73dcx9[_0x519d[29]](404)};var _0x73dcx14=_[_0x519d[48]](_0x73dcxb[_0x519d[42]][_0x519d[41]],function(_0x73dcx15){return {UserId:_0x73dcx15,penalty:_0x73dcxb[_0x519d[42]][_0x519d[43]],OpenchannelQueueId:_0x73dcxd[_0x519d[19]],queue:_0x73dcxd[_0x519d[34]]}});return UserHasOpenchannelQueue[_0x519d[49]](_0x73dcx14,{individualHooks:true})})[_0x519d[16]](function(){return _0x73dcx9[_0x519d[29]](200)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})};exports[_0x519d[50]]= function(_0x73dcxb,_0x73dcx9){return OpenchannelQueue[_0x519d[21]](_0x73dcxb[_0x519d[30]][_0x519d[19]])[_0x519d[16]](function(_0x73dcxd){if(_0x73dcxd){return _0x73dcxd[_0x519d[51]](_0x73dcxb[_0x519d[17]][_0x519d[41]],{individualHooks:true})}else {throw  new Error(_0x519d[52])}})[_0x519d[16]](function(){return _0x73dcx9[_0x519d[29]](202)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})};exports[_0x519d[53]]= function(_0x73dcxb,_0x73dcx9){var _0x73dcx16;return OpenchannelQueue[_0x519d[21]](_0x73dcxb[_0x519d[30]][_0x519d[19]])[_0x519d[16]](function(_0x73dcxd){_0x73dcx16= _0x73dcxd;if(!_0x73dcxd){return _0x73dcx9[_0x519d[29]](404)};return _0x73dcxd[_0x519d[53]]()})[_0x519d[16]](function(){return _0x73dcx9[_0x519d[29]](204)})[_0x519d[15]](sequelize.ForeignKeyConstraintError,function(_0x73dcxa){return Util[_0x519d[40]][_0x519d[55]](_0x73dcx9,_0x519d[54],_0x73dcx16[_0x519d[34]],_0x73dcxa)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})};exports[_0x519d[56]]= function(_0x73dcxb,_0x73dcx9){return OpenchannelQueue[_0x519d[53]]({where:{id:_0x73dcxb[_0x519d[17]][_0x519d[57]]},individualHooks:true})[_0x519d[16]](function(){return _0x73dcx9[_0x519d[29]](204)})[_0x519d[15]](function(_0x73dcxa){return handleError(_0x73dcx9,_0x73dcxa)})}
\ No newline at end of file