Built motion from commit 2238b68.|1.0.18
[motion.git] / server / api / sms_queue / sms_queue.controller.js
index 80dccb4..c2f458b 100644 (file)
@@ -1 +1 @@
-var _0xf3cf=["\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","\x53\x6D\x73\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\x53\x6D\x73\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\x53\x6D\x73\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","\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","\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","\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","\x53\x6D\x73\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"];_0xf3cf[0];var _=require(_0xf3cf[1]);var Util=require(_0xf3cf[2]);var SmsQueue=require(_0xf3cf[4])[_0xf3cf[3]];var User=require(_0xf3cf[4])[_0xf3cf[5]];var sequelize=require(_0xf3cf[4])[_0xf3cf[6]];var UserHasSmsQueue=require(_0xf3cf[4])[_0xf3cf[7]];function handleError(_0x1cbfx8,_0x1cbfx9){return _0x1cbfx8[_0xf3cf[9]](500)[_0xf3cf[8]](_0x1cbfx9)}exports[_0xf3cf[10]]=function(_0x1cbfxa,_0x1cbfx8){switch(_0x1cbfxa[_0xf3cf[16]][_0xf3cf[22]]){case _0xf3cf[16]:return User[_0xf3cf[17]](_0x1cbfxa[_0xf3cf[16]][_0xf3cf[15]],{attributes:[_0xf3cf[15]]})[_0xf3cf[12]](Util[_0xf3cf[14]](_0x1cbfxa[_0xf3cf[13]]))[_0xf3cf[12]](function(_0x1cbfxb){_0x1cbfx8[_0xf3cf[9]](200)[_0xf3cf[8]](_0x1cbfxb)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)});default:return SmsQueue[_0xf3cf[21]](_0xf3cf[20])[_0xf3cf[19]](Util[_0xf3cf[18]](_0x1cbfxa[_0xf3cf[13]]))[_0xf3cf[12]](function(_0x1cbfxb){_0x1cbfx8[_0xf3cf[9]](200)[_0xf3cf[8]](_0x1cbfxb)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})}};exports[_0xf3cf[23]]=function(_0x1cbfxa,_0x1cbfx8){return SmsQueue[_0xf3cf[21]](_0xf3cf[20])[_0xf3cf[17]](_0x1cbfxa[_0xf3cf[25]][_0xf3cf[15]])[_0xf3cf[12]](function(_0x1cbfxc){if(!_0x1cbfxc){return _0x1cbfx8[_0xf3cf[24]](404)};return _0x1cbfx8[_0xf3cf[8]](_0x1cbfxc)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})};exports[_0xf3cf[26]]=function(_0x1cbfxa,_0x1cbfx8){return SmsQueue[_0xf3cf[17]](_0x1cbfxa[_0xf3cf[25]][_0xf3cf[15]])[_0xf3cf[12]](function(_0x1cbfxe){if(!_0x1cbfxe){return _0x1cbfx8[_0xf3cf[24]](404)};return _0x1cbfxe[_0xf3cf[32]]({where:{role:_0xf3cf[28]},attributes:[_0xf3cf[15],_0xf3cf[29],_0xf3cf[30],_0xf3cf[31]]})})[_0xf3cf[12]](function(_0x1cbfxd){return _0x1cbfx8[_0xf3cf[9]](200)[_0xf3cf[8]]({rows:_0x1cbfxd,count:_0x1cbfxd[_0xf3cf[27]]})})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})};exports[_0xf3cf[33]]=function(_0x1cbfxa,_0x1cbfx8){return SmsQueue[_0xf3cf[33]](_0x1cbfxa[_0xf3cf[36]])[_0xf3cf[12]](function(_0x1cbfxc){return _0x1cbfx8[_0xf3cf[9]](201)[_0xf3cf[8]](_0x1cbfxc)})[_0xf3cf[11]](sequelize.UniqueConstraintError,function(_0x1cbfx9){return Util[_0xf3cf[35]][_0xf3cf[34]](_0x1cbfx8,_0x1cbfx9)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})};exports[_0xf3cf[37]]=function(_0x1cbfxa,_0x1cbfx8){if(_0x1cbfxa[_0xf3cf[36]][_0xf3cf[15]]){delete _0x1cbfxa[_0xf3cf[36]][_0xf3cf[15]]};return SmsQueue[_0xf3cf[17]](_0x1cbfxa[_0xf3cf[25]][_0xf3cf[15]])[_0xf3cf[12]](function(_0x1cbfxc){if(!_0x1cbfxc){return _0x1cbfx8[_0xf3cf[24]](404)};var _0x1cbfxf=_[_0xf3cf[38]](_0x1cbfxc,_0x1cbfxa[_0xf3cf[36]]);return _0x1cbfxf[_0xf3cf[39]]()})[_0xf3cf[12]](function(_0x1cbfxc){return _0x1cbfx8[_0xf3cf[9]](200)[_0xf3cf[8]](_0x1cbfxc)})[_0xf3cf[11]](sequelize.UniqueConstraintError,function(_0x1cbfx9){return Util[_0xf3cf[35]][_0xf3cf[34]](_0x1cbfx8,_0x1cbfx9)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})};exports[_0xf3cf[40]]=function(_0x1cbfxa,_0x1cbfx8,_0x1cbfx10){return SmsQueue[_0xf3cf[17]](_0x1cbfxa[_0xf3cf[25]][_0xf3cf[15]])[_0xf3cf[12]](function(_0x1cbfxc){if(!_0x1cbfxc){return _0x1cbfx8[_0xf3cf[24]](404)};var _0x1cbfx11=_[_0xf3cf[43]](_0x1cbfxa[_0xf3cf[36]][_0xf3cf[41]],function(_0x1cbfx12){return {UserId:_0x1cbfx12,penalty:_0x1cbfxa[_0xf3cf[36]][_0xf3cf[42]],SmsQueueId:_0x1cbfxc[_0xf3cf[15]],queue:_0x1cbfxc[_0xf3cf[29]]}});return UserHasSmsQueue[_0xf3cf[44]](_0x1cbfx11,{individualHooks:true})})[_0xf3cf[12]](function(){return _0x1cbfx8[_0xf3cf[24]](200)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})};exports[_0xf3cf[45]]=function(_0x1cbfxa,_0x1cbfx8){return SmsQueue[_0xf3cf[17]](_0x1cbfxa[_0xf3cf[25]][_0xf3cf[15]])[_0xf3cf[12]](function(_0x1cbfxc){if(_0x1cbfxc){return _0x1cbfxc[_0xf3cf[46]](_0x1cbfxa[_0xf3cf[13]][_0xf3cf[41]],{individualHooks:true})}else {throw  new Error(_0xf3cf[47])}})[_0xf3cf[12]](function(){return _0x1cbfx8[_0xf3cf[24]](202)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})};exports[_0xf3cf[48]]=function(_0x1cbfxa,_0x1cbfx8){var _0x1cbfx13;return SmsQueue[_0xf3cf[17]](_0x1cbfxa[_0xf3cf[25]][_0xf3cf[15]])[_0xf3cf[12]](function(_0x1cbfxc){_0x1cbfx13=_0x1cbfxc;if(!_0x1cbfxc){return _0x1cbfx8[_0xf3cf[24]](404)};return _0x1cbfxc[_0xf3cf[48]]()})[_0xf3cf[12]](function(){return _0x1cbfx8[_0xf3cf[24]](204)})[_0xf3cf[11]](sequelize.ForeignKeyConstraintError,function(_0x1cbfx9){return Util[_0xf3cf[35]][_0xf3cf[52]](_0x1cbfx8,_0xf3cf[51],_0x1cbfx13[_0xf3cf[29]],_0x1cbfx9)})[_0xf3cf[11]](function(_0x1cbfx9){console[_0xf3cf[50]](_0xf3cf[49],_0x1cbfx9);return handleError(_0x1cbfx8,_0x1cbfx9)})};exports[_0xf3cf[53]]=function(_0x1cbfxa,_0x1cbfx8){return SmsQueue[_0xf3cf[48]]({where:{id:_0x1cbfxa[_0xf3cf[13]][_0xf3cf[54]]},individualHooks:true})[_0xf3cf[12]](function(){return _0x1cbfx8[_0xf3cf[24]](204)})[_0xf3cf[11]](function(_0x1cbfx9){return handleError(_0x1cbfx8,_0x1cbfx9)})}
\ No newline at end of file
+var _0x1852=["\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","\x53\x6D\x73\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\x53\x6D\x73\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\x53\x6D\x73\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","\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","\x6D\x65\x72\x67\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","\x53\x6D\x73\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"];_0x1852[0];var _=require(_0x1852[1]);var Util=require(_0x1852[2]);var logger=require(_0x1852[4])(_0x1852[3]);var SmsQueue=require(_0x1852[6])[_0x1852[5]];var User=require(_0x1852[6])[_0x1852[7]];var sequelize=require(_0x1852[6])[_0x1852[8]];var UserHasSmsQueue=require(_0x1852[6])[_0x1852[9]];function handleError(_0x30d3x9,_0x30d3xa){logger[_0x1852[11]](er[_0x1852[10]]);return _0x30d3x9[_0x1852[13]](500)[_0x1852[12]](_0x30d3xa)}exports[_0x1852[14]]= function(_0x30d3xb,_0x30d3x9){switch(_0x30d3xb[_0x1852[20]][_0x1852[26]]){case _0x1852[20]:return User[_0x1852[21]](_0x30d3xb[_0x1852[20]][_0x1852[19]],{attributes:[_0x1852[19]]})[_0x1852[16]](Util[_0x1852[18]](_0x30d3xb[_0x1852[17]]))[_0x1852[16]](function(_0x30d3xc){_0x30d3x9[_0x1852[13]](200)[_0x1852[12]](_0x30d3xc)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)});default:return SmsQueue[_0x1852[25]](_0x1852[24])[_0x1852[23]](Util[_0x1852[22]](_0x30d3xb[_0x1852[17]]))[_0x1852[16]](function(_0x30d3xc){_0x30d3x9[_0x1852[13]](200)[_0x1852[12]](_0x30d3xc)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})}};exports[_0x1852[27]]= function(_0x30d3xb,_0x30d3x9){return SmsQueue[_0x1852[25]](_0x1852[24])[_0x1852[21]](_0x30d3xb[_0x1852[29]][_0x1852[19]])[_0x1852[16]](function(_0x30d3xd){if(!_0x30d3xd){return _0x30d3x9[_0x1852[28]](404)};return _0x30d3x9[_0x1852[12]](_0x30d3xd)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})};exports[_0x1852[30]]= function(_0x30d3xb,_0x30d3x9){return SmsQueue[_0x1852[21]](_0x30d3xb[_0x1852[29]][_0x1852[19]])[_0x1852[16]](function(_0x30d3xf){if(!_0x30d3xf){return _0x30d3x9[_0x1852[28]](404)};return _0x30d3xf[_0x1852[36]]({where:{role:_0x1852[32]},attributes:[_0x1852[19],_0x1852[33],_0x1852[34],_0x1852[35]]})})[_0x1852[16]](function(_0x30d3xe){return _0x30d3x9[_0x1852[13]](200)[_0x1852[12]]({rows:_0x30d3xe,count:_0x30d3xe[_0x1852[31]]})})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})};exports[_0x1852[37]]= function(_0x30d3xb,_0x30d3x9){var _0x30d3x10;return SmsQueue[_0x1852[37]](_0x30d3xb[_0x1852[41]])[_0x1852[16]](function(_0x30d3xd){_0x30d3x10= _0x30d3xd;if(_0x30d3xb[_0x1852[41]][_0x1852[40]]){return _0x30d3x10[_0x1852[43]](_0x30d3xb[_0x1852[41]][_0x1852[40]],{penalty:_0x30d3xb[_0x1852[41]][_0x1852[42]]|| 0,queue:_0x30d3x10[_0x1852[33]]})}})[_0x1852[16]](function(){return _0x30d3x9[_0x1852[13]](201)[_0x1852[12]](_0x30d3x10)})[_0x1852[15]](sequelize.UniqueConstraintError,function(_0x30d3xa){return Util[_0x1852[39]][_0x1852[38]](_0x30d3x9,_0x30d3xa)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})};exports[_0x1852[44]]= function(_0x30d3xb,_0x30d3x9){if(_0x30d3xb[_0x1852[41]][_0x1852[19]]){delete _0x30d3xb[_0x1852[41]][_0x1852[19]]};return SmsQueue[_0x1852[21]](_0x30d3xb[_0x1852[29]][_0x1852[19]])[_0x1852[16]](function(_0x30d3xd){if(!_0x30d3xd){return _0x30d3x9[_0x1852[28]](404)};var _0x30d3x11=_[_0x1852[45]](_0x30d3xd,_0x30d3xb[_0x1852[41]]);return _0x30d3x11[_0x1852[46]]()})[_0x1852[16]](function(_0x30d3xd){return _0x30d3x9[_0x1852[13]](200)[_0x1852[12]](_0x30d3xd)})[_0x1852[15]](sequelize.UniqueConstraintError,function(_0x30d3xa){return Util[_0x1852[39]][_0x1852[38]](_0x30d3x9,_0x30d3xa)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})};exports[_0x1852[47]]= function(_0x30d3xb,_0x30d3x9,_0x30d3x12){return SmsQueue[_0x1852[21]](_0x30d3xb[_0x1852[29]][_0x1852[19]])[_0x1852[16]](function(_0x30d3xd){if(!_0x30d3xd){return _0x30d3x9[_0x1852[28]](404)};var _0x30d3x13=_[_0x1852[48]](_0x30d3xb[_0x1852[41]][_0x1852[40]],function(_0x30d3x14){return {UserId:_0x30d3x14,penalty:_0x30d3xb[_0x1852[41]][_0x1852[42]],SmsQueueId:_0x30d3xd[_0x1852[19]],queue:_0x30d3xd[_0x1852[33]]}});return UserHasSmsQueue[_0x1852[49]](_0x30d3x13,{individualHooks:true})})[_0x1852[16]](function(){return _0x30d3x9[_0x1852[28]](200)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})};exports[_0x1852[50]]= function(_0x30d3xb,_0x30d3x9){return SmsQueue[_0x1852[21]](_0x30d3xb[_0x1852[29]][_0x1852[19]])[_0x1852[16]](function(_0x30d3xd){if(_0x30d3xd){return _0x30d3xd[_0x1852[51]](_0x30d3xb[_0x1852[17]][_0x1852[40]],{individualHooks:true})}else {throw  new Error(_0x1852[52])}})[_0x1852[16]](function(){return _0x30d3x9[_0x1852[28]](202)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})};exports[_0x1852[53]]= function(_0x30d3xb,_0x30d3x9){var _0x30d3x10;return SmsQueue[_0x1852[21]](_0x30d3xb[_0x1852[29]][_0x1852[19]])[_0x1852[16]](function(_0x30d3xd){_0x30d3x10= _0x30d3xd;if(!_0x30d3xd){return _0x30d3x9[_0x1852[28]](404)};return _0x30d3xd[_0x1852[53]]()})[_0x1852[16]](function(){return _0x30d3x9[_0x1852[28]](204)})[_0x1852[15]](sequelize.ForeignKeyConstraintError,function(_0x30d3xa){return Util[_0x1852[39]][_0x1852[55]](_0x30d3x9,_0x1852[54],_0x30d3x10[_0x1852[33]],_0x30d3xa)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})};exports[_0x1852[56]]= function(_0x30d3xb,_0x30d3x9){return SmsQueue[_0x1852[53]]({where:{id:_0x30d3xb[_0x1852[17]][_0x1852[57]]},individualHooks:true})[_0x1852[16]](function(){return _0x30d3x9[_0x1852[28]](204)})[_0x1852[15]](function(_0x30d3xa){return handleError(_0x30d3x9,_0x30d3xa)})}
\ No newline at end of file