Built motion from commit 70c527640.|1.0.24
[motion.git] / server / api / mail_queue / mail_queue.controller.js
index 8905d5f..66f4d87 100644 (file)
@@ -1 +1 @@
-var _0x7fca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x55\x73\x65\x72","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x4D\x61\x69\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","\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","\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","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x6E\x61\x6D\x65","\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","\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","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73"];_0x7fca[0];var _=require(_0x7fca[1]);var util=require(_0x7fca[2]);var Util=require(_0x7fca[3]);var sequelize=require(_0x7fca[5])[_0x7fca[4]];var MailQueue=require(_0x7fca[5])[_0x7fca[6]];var User=require(_0x7fca[5])[_0x7fca[7]];var UserHasMailQueue=require(_0x7fca[5])[_0x7fca[8]];exports[_0x7fca[9]]=function(_0xaccfx8,_0xaccfx9){switch(_0xaccfx8[_0x7fca[17]][_0x7fca[23]]){case _0x7fca[17]:return User[_0x7fca[18]](_0xaccfx8[_0x7fca[17]][_0x7fca[16]],{attributes:[_0x7fca[16]]})[_0x7fca[13]](Util[_0x7fca[15]](_0xaccfx8[_0x7fca[14]]))[_0x7fca[13]](function(_0xaccfxb){_0xaccfx9[_0x7fca[12]](200)[_0x7fca[11]](_0xaccfxb)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)});default:return MailQueue[_0x7fca[22]](_0x7fca[21])[_0x7fca[20]](Util[_0x7fca[19]](_0xaccfx8[_0x7fca[14]]))[_0x7fca[13]](function(_0xaccfxb){_0xaccfx9[_0x7fca[12]](200)[_0x7fca[11]](_0xaccfxb)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})}};exports[_0x7fca[24]]=function(_0xaccfx8,_0xaccfx9){return MailQueue[_0x7fca[22]](_0x7fca[21])[_0x7fca[18]](_0xaccfx8[_0x7fca[26]][_0x7fca[16]])[_0x7fca[13]](function(_0xaccfxc){if(!_0xaccfxc){return _0xaccfx9[_0x7fca[25]](404)};return _0xaccfx9[_0x7fca[11]](_0xaccfxc)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})};exports[_0x7fca[27]]=function(_0xaccfx8,_0xaccfx9){return MailQueue[_0x7fca[27]](_0xaccfx8[_0x7fca[30]])[_0x7fca[13]](function(_0xaccfxc){return _0xaccfx9[_0x7fca[12]](201)[_0x7fca[11]](_0xaccfxc)})[_0x7fca[10]](sequelize.UniqueConstraintError,function(_0xaccfxa){return Util[_0x7fca[29]][_0x7fca[28]](_0xaccfx9,_0xaccfxa)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})};exports[_0x7fca[31]]=function(_0xaccfx8,_0xaccfx9){if(_0xaccfx8[_0x7fca[30]][_0x7fca[16]]){delete _0xaccfx8[_0x7fca[30]][_0x7fca[16]]};return MailQueue[_0x7fca[18]](_0xaccfx8[_0x7fca[26]][_0x7fca[16]])[_0x7fca[13]](function(_0xaccfxc){if(!_0xaccfxc){return _0xaccfx9[_0x7fca[25]](404)};var _0xaccfxd=_[_0x7fca[32]](_0xaccfxc,_0xaccfx8[_0x7fca[30]]);return _0xaccfxd[_0x7fca[33]]()})[_0x7fca[13]](function(_0xaccfxc){return _0xaccfx9[_0x7fca[12]](200)[_0x7fca[11]](_0xaccfxc)})[_0x7fca[10]](sequelize.UniqueConstraintError,function(_0xaccfxa){return Util[_0x7fca[29]][_0x7fca[28]](_0xaccfx9,_0xaccfxa)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})};exports[_0x7fca[34]]=function(_0xaccfx8,_0xaccfx9,_0xaccfxe){return MailQueue[_0x7fca[18]](_0xaccfx8[_0x7fca[26]][_0x7fca[16]])[_0x7fca[13]](function(_0xaccfxc){if(!_0xaccfxc){return _0xaccfx9[_0x7fca[25]](404)};var _0xaccfxf=_[_0x7fca[38]](_0xaccfx8[_0x7fca[30]][_0x7fca[35]],function(_0xaccfx10){return {UserId:_0xaccfx10,penalty:_0xaccfx8[_0x7fca[30]][_0x7fca[36]],MailQueueId:_0xaccfxc[_0x7fca[16]],queue:_0xaccfxc[_0x7fca[37]]}});return UserHasMailQueue[_0x7fca[39]](_0xaccfxf,{individualHooks:true})})[_0x7fca[13]](function(){return _0xaccfx9[_0x7fca[25]](200)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})};exports[_0x7fca[40]]=function(_0xaccfx8,_0xaccfx9){return MailQueue[_0x7fca[18]](_0xaccfx8[_0x7fca[26]][_0x7fca[16]])[_0x7fca[13]](function(_0xaccfx11){if(!_0xaccfx11){return _0xaccfx9[_0x7fca[25]](404)};return _0xaccfx11[_0x7fca[41]](_0xaccfx8[_0x7fca[14]][_0x7fca[35]],{individualHooks:true})})[_0x7fca[13]](function(){return _0xaccfx9[_0x7fca[25]](200)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})};exports[_0x7fca[42]]=function(_0xaccfx8,_0xaccfx9){var _0xaccfx12;return MailQueue[_0x7fca[18]](_0xaccfx8[_0x7fca[26]][_0x7fca[16]])[_0x7fca[13]](function(_0xaccfxc){_0xaccfx12=_0xaccfxc;if(!_0xaccfxc){return _0xaccfx9[_0x7fca[25]](404)};return _0xaccfxc[_0x7fca[42]]()})[_0x7fca[13]](function(){return _0xaccfx9[_0x7fca[25]](204)})[_0x7fca[10]](sequelize.ForeignKeyConstraintError,function(_0xaccfxa){return Util[_0x7fca[29]][_0x7fca[46]](_0xaccfx9,_0x7fca[45],_0xaccfx12[_0x7fca[37]],_0xaccfxa)})[_0x7fca[10]](function(_0xaccfxa){console[_0x7fca[44]](_0x7fca[43],_0xaccfxa);return handleError(_0xaccfx9,_0xaccfxa)})};exports[_0x7fca[47]]=function(_0xaccfx8,_0xaccfx9){return MailQueue[_0x7fca[42]]({where:{id:_0xaccfx8[_0x7fca[14]][_0x7fca[48]]},individualHooks:true})[_0x7fca[13]](function(){return _0xaccfx9[_0x7fca[25]](204)})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})};exports[_0x7fca[49]]=function(_0xaccfx8,_0xaccfx9){return MailQueue[_0x7fca[18]](_0xaccfx8[_0x7fca[26]][_0x7fca[16]])[_0x7fca[13]](function(_0xaccfx11){if(!_0xaccfx11){return _0xaccfx9[_0x7fca[25]](404)};return _0xaccfx11[_0x7fca[54]]({where:{role:_0x7fca[51]},attributes:[_0x7fca[16],_0x7fca[37],_0x7fca[52],_0x7fca[53]]})})[_0x7fca[13]](function(_0xaccfx13){return _0xaccfx9[_0x7fca[12]](200)[_0x7fca[11]]({rows:_0xaccfx13,count:_0xaccfx13[_0x7fca[50]]})})[_0x7fca[10]](function(_0xaccfxa){return handleError(_0xaccfx9,_0xaccfxa)})};function handleError(_0xaccfx9,_0xaccfxa){return _0xaccfx9[_0x7fca[12]](500)[_0x7fca[11]](_0xaccfxa)}
\ No newline at end of file
+var _0x31f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\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","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x55\x73\x65\x72","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x4D\x61\x69\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","\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","\x6E\x61\x6D\x65","\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","\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","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x73\x74\x61\x63\x6B","\x65\x72\x72\x6F\x72"];_0x31f5[0];var _=require(_0x31f5[1]);var util=require(_0x31f5[2]);var Util=require(_0x31f5[3]);var logger=require(_0x31f5[5])(_0x31f5[4]);var sequelize=require(_0x31f5[7])[_0x31f5[6]];var MailQueue=require(_0x31f5[7])[_0x31f5[8]];var User=require(_0x31f5[7])[_0x31f5[9]];var UserHasMailQueue=require(_0x31f5[7])[_0x31f5[10]];exports[_0x31f5[11]]= function(_0x1f2fx9,_0x1f2fxa){switch(_0x1f2fx9[_0x31f5[19]][_0x31f5[26]]){case _0x31f5[19]:return User[_0x31f5[20]](_0x1f2fx9[_0x31f5[19]][_0x31f5[18]],{attributes:[_0x31f5[18]]})[_0x31f5[15]](Util[_0x31f5[17]](_0x1f2fx9[_0x31f5[16]]))[_0x31f5[15]](function(_0x1f2fxc){_0x1f2fxa[_0x31f5[14]](200)[_0x31f5[13]](_0x1f2fxc)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)});default:return MailQueue[_0x31f5[25]](_0x31f5[24])[_0x31f5[23]](_[_0x31f5[22]](Util[_0x31f5[21]](_0x1f2fx9[_0x31f5[16]]),{distinct:true}))[_0x31f5[15]](function(_0x1f2fxc){_0x1f2fxa[_0x31f5[14]](200)[_0x31f5[13]](_0x1f2fxc)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})}};exports[_0x31f5[27]]= function(_0x1f2fx9,_0x1f2fxa){return MailQueue[_0x31f5[25]](_0x31f5[24])[_0x31f5[20]](_0x1f2fx9[_0x31f5[29]][_0x31f5[18]])[_0x31f5[15]](function(_0x1f2fxd){if(!_0x1f2fxd){return _0x1f2fxa[_0x31f5[28]](404)};return _0x1f2fxa[_0x31f5[13]](_0x1f2fxd)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};exports[_0x31f5[30]]= function(_0x1f2fx9,_0x1f2fxa){var _0x1f2fxe;return MailQueue[_0x31f5[30]](_0x1f2fx9[_0x31f5[34]])[_0x31f5[15]](function(_0x1f2fxd){_0x1f2fxe= _0x1f2fxd;if(_0x1f2fx9[_0x31f5[34]][_0x31f5[33]]){return _0x1f2fxe[_0x31f5[37]](_0x1f2fx9[_0x31f5[34]][_0x31f5[33]],{penalty:_0x1f2fx9[_0x31f5[34]][_0x31f5[35]]|| 0,queue:_0x1f2fxe[_0x31f5[36]]})}})[_0x31f5[15]](function(){return _0x1f2fxa[_0x31f5[14]](201)[_0x31f5[13]](_0x1f2fxe)})[_0x31f5[12]](sequelize.UniqueConstraintError,function(_0x1f2fxb){return Util[_0x31f5[32]][_0x31f5[31]](_0x1f2fxa,_0x1f2fxb)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};exports[_0x31f5[38]]= function(_0x1f2fx9,_0x1f2fxa){if(_0x1f2fx9[_0x31f5[34]][_0x31f5[18]]){delete _0x1f2fx9[_0x31f5[34]][_0x31f5[18]]};return MailQueue[_0x31f5[20]](_0x1f2fx9[_0x31f5[29]][_0x31f5[18]])[_0x31f5[15]](function(_0x1f2fxd){if(!_0x1f2fxd){return _0x1f2fxa[_0x31f5[28]](404)};var _0x1f2fxf=_[_0x31f5[22]](_0x1f2fxd,_0x1f2fx9[_0x31f5[34]]);return _0x1f2fxf[_0x31f5[39]]()})[_0x31f5[15]](function(_0x1f2fxd){return _0x1f2fxa[_0x31f5[14]](200)[_0x31f5[13]](_0x1f2fxd)})[_0x31f5[12]](sequelize.UniqueConstraintError,function(_0x1f2fxb){return Util[_0x31f5[32]][_0x31f5[31]](_0x1f2fxa,_0x1f2fxb)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};exports[_0x31f5[40]]= function(_0x1f2fx9,_0x1f2fxa,_0x1f2fx10){return MailQueue[_0x31f5[20]](_0x1f2fx9[_0x31f5[29]][_0x31f5[18]])[_0x31f5[15]](function(_0x1f2fxd){if(!_0x1f2fxd){return _0x1f2fxa[_0x31f5[28]](404)};var _0x1f2fx11=_[_0x31f5[41]](_0x1f2fx9[_0x31f5[34]][_0x31f5[33]],function(_0x1f2fx12){return {UserId:_0x1f2fx12,penalty:_0x1f2fx9[_0x31f5[34]][_0x31f5[35]],MailQueueId:_0x1f2fxd[_0x31f5[18]],queue:_0x1f2fxd[_0x31f5[36]]}});return UserHasMailQueue[_0x31f5[42]](_0x1f2fx11,{individualHooks:true})})[_0x31f5[15]](function(){return _0x1f2fxa[_0x31f5[28]](200)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};exports[_0x31f5[43]]= function(_0x1f2fx9,_0x1f2fxa){return MailQueue[_0x31f5[20]](_0x1f2fx9[_0x31f5[29]][_0x31f5[18]])[_0x31f5[15]](function(_0x1f2fx13){if(!_0x1f2fx13){return _0x1f2fxa[_0x31f5[28]](404)};return _0x1f2fx13[_0x31f5[44]](_0x1f2fx9[_0x31f5[16]][_0x31f5[33]],{individualHooks:true})})[_0x31f5[15]](function(){return _0x1f2fxa[_0x31f5[28]](200)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};exports[_0x31f5[45]]= function(_0x1f2fx9,_0x1f2fxa){var _0x1f2fxe;return MailQueue[_0x31f5[20]](_0x1f2fx9[_0x31f5[29]][_0x31f5[18]])[_0x31f5[15]](function(_0x1f2fxd){_0x1f2fxe= _0x1f2fxd;if(!_0x1f2fxd){return _0x1f2fxa[_0x31f5[28]](404)};return _0x1f2fxd[_0x31f5[45]]()})[_0x31f5[15]](function(){return _0x1f2fxa[_0x31f5[28]](204)})[_0x31f5[12]](sequelize.ForeignKeyConstraintError,function(_0x1f2fxb){return Util[_0x31f5[32]][_0x31f5[47]](_0x1f2fxa,_0x31f5[46],_0x1f2fxe[_0x31f5[36]],_0x1f2fxb)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};exports[_0x31f5[48]]= function(_0x1f2fx9,_0x1f2fxa){return MailQueue[_0x31f5[45]]({where:{id:_0x1f2fx9[_0x31f5[16]][_0x31f5[49]]},individualHooks:true})[_0x31f5[15]](function(){return _0x1f2fxa[_0x31f5[28]](204)})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};exports[_0x31f5[50]]= function(_0x1f2fx9,_0x1f2fxa){return MailQueue[_0x31f5[20]](_0x1f2fx9[_0x31f5[29]][_0x31f5[18]])[_0x31f5[15]](function(_0x1f2fx13){if(!_0x1f2fx13){return _0x1f2fxa[_0x31f5[28]](404)};return _0x1f2fx13[_0x31f5[55]]({where:{role:_0x31f5[52]},attributes:[_0x31f5[18],_0x31f5[36],_0x31f5[53],_0x31f5[54]]})})[_0x31f5[15]](function(_0x1f2fx14){return _0x1f2fxa[_0x31f5[14]](200)[_0x31f5[13]]({rows:_0x1f2fx14,count:_0x1f2fx14[_0x31f5[51]]})})[_0x31f5[12]](function(_0x1f2fxb){return handleError(_0x1f2fxa,_0x1f2fxb)})};function handleError(_0x1f2fxa,_0x1f2fxb){logger[_0x31f5[57]](_0x1f2fxb[_0x31f5[56]]);return _0x1f2fxa[_0x31f5[14]](500)[_0x31f5[13]](_0x1f2fxb)}
\ No newline at end of file