@naarang/ccc 1.2.0-beta.5 → 1.2.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/claude/manager.js +1 -1
- package/dist/claude/project-setup.js +1 -1
- package/dist/claude/session-manager.js +1 -1
- package/dist/claude/session-message-parser.js +1 -1
- package/dist/claude/session.js +1 -1
- package/dist/claude/stream-parser.js +1 -1
- package/dist/firebase/admin.js +1 -0
- package/dist/hooks/notification_hook.js +306 -0
- package/dist/index.js +1 -1
- package/dist/mdns/service.js +1 -1
- package/dist/mqtt/client.js +1 -1
- package/dist/mqtt-broker.js +1 -1
- package/dist/ngrok/manager.js +1 -1
- package/dist/notifications/handlers.js +1 -0
- package/dist/notifications/index.js +1 -0
- package/dist/notifications/manager.js +1 -0
- package/dist/notifications/preferences-manager.js +1 -0
- package/dist/notifications/preferences-storage.js +1 -0
- package/dist/notifications/sender.js +1 -0
- package/dist/notifications/storage.js +1 -0
- package/dist/notifications/types.js +1 -0
- package/dist/proxy/router.js +1 -1
- package/dist/qr/generator.js +1 -1
- package/dist/terminal/server.js +1 -1
- package/dist/types/index.js +1 -1
- package/dist/utils/auto-update.js +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/version.js +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x4f01fa,_0x12df7f){const _0x39010e={_0x5d5cdb:0x10,_0x3426aa:0x65,_0x544cf3:0x2e,_0x59ada8:0x5d,_0xda7186:0x26,_0xdf0cc3:0x98,_0x2c7b94:0x23,_0x2ab09d:0x28,_0x591ee5:0x2,_0x57aa53:0x59,_0x48d328:0x21,_0xc2445b:0x5e,_0x32fd31:0x57,_0x409dd2:0x6a,_0x2670a8:0x84,_0xeee81f:0xa5,_0x40575d:0xd9,_0x35d790:0x38,_0x2bf1f2:0x46,_0x3f52cf:0x4b,_0x2c7c2a:0x76,_0x48c0c1:0x4c,_0x26b6f4:0x1b,_0x329ed1:0x0,_0x12c721:0x14},_0x51f5bb={_0x19d13b:0x16a},_0x32b020={_0x5ae9d2:0xcb},_0x4bedfd=_0x4f01fa();function _0x3d6e5d(_0x6ec148,_0x3327ca,_0x108d24,_0x2e2174){return _0x41ca(_0x108d24- -_0x32b020._0x5ae9d2,_0x6ec148);}function _0x54a23b(_0x34a850,_0x10c88f,_0x496a4d,_0x5f594c){return _0x41ca(_0x34a850- -_0x51f5bb._0x19d13b,_0x5f594c);}while(!![]){try{const _0x39039a=parseInt(_0x54a23b(-0x3f,-_0x39010e._0x5d5cdb,-_0x39010e._0x3426aa,-_0x39010e._0x544cf3))/(0x122e+0xb76+-0x34b*0x9)+-parseInt(_0x54a23b(-_0x39010e._0x59ada8,-0x2f,-_0x39010e._0xda7186,-_0x39010e._0xdf0cc3))/(-0x2139+-0x5*-0x53c+0x70f)*(-parseInt(_0x54a23b(-_0x39010e._0x2c7b94,-_0x39010e._0x2ab09d,-0x5a,_0x39010e._0x591ee5))/(0x23*-0xe6+0x3*0xa05+0x166))+parseInt(_0x3d6e5d(0xa4,_0x39010e._0x57aa53,0x91,0x7c))/(-0x19fc+-0x2*0x277+-0x6b*-0x4a)+-parseInt(_0x54a23b(-_0x39010e._0x48d328,-_0x39010e._0xc2445b,-0x39,-_0x39010e._0x32fd31))/(-0x22fb+0x469*0x6+0x2*0x445)+-parseInt(_0x3d6e5d(_0x39010e._0x409dd2,_0x39010e._0x2670a8,_0x39010e._0xeee81f,_0x39010e._0x40575d))/(-0xff3+-0x6*-0x29+0x3d*0x3f)+-parseInt(_0x3d6e5d(_0x39010e._0x35d790,_0x39010e._0x2bf1f2,0x6c,_0x39010e._0x3f52cf))/(0x15a+0x6aa+-0x1*0x7fd)+parseInt(_0x3d6e5d(0x30,_0x39010e._0x2c7c2a,_0x39010e._0x48c0c1,_0x39010e._0x26b6f4))/(-0x628+0x4*-0x1a1+0xcb4)*(parseInt(_0x54a23b(_0x39010e._0x329ed1,-0x33,_0x39010e._0x12c721,-_0x39010e._0x5d5cdb))/(0x16f0+0x16d*-0x16+0x877));if(_0x39039a===_0x12df7f)break;else _0x4bedfd['push'](_0x4bedfd['shift']());}catch(_0x4cb0a5){_0x4bedfd['push'](_0x4bedfd['shift']());}}}(_0x1579,-0x90b5*-0x1+0x787+0x2641b));function _0x1579(){const _0x2b8a90=['z2v0','BwLUoG','mNDKvMngwq','x19JCMvHDgvcAq','D2TSExO','zw51BwvYywjSzq','ChrVCG','qKT2q0m','z2v0rMLYzxn0BW','y3jLzgvUDgLHBa','BwvZC2fNAw5N','shbktgW','ofrUsvnNtW','zLDuwgy','DfrWv1m','uhvoBLi','qu1fq3e','yxbWBgLJyxrPBW','lMPZB24','ChjVDg90ExbL','y3DOrui','B0j0z2i','u2TAtvy','z2v0t3DUuhjVCa','B20GrKLsrujbuW','qvnHshy','rMLYzwjHC2vbza','Euj5uvC','BwLU','y2fSBa','uen2qKO','BgvUz3rO','mZy4nJmYEhnhENP2','zxj0Eq','zg1PBG','qwnJB3vUDeTLEq','zwzTreC','ywXPEMvKihDPDa','rxjYB3iGAw5PDa','rv9trvjwsunfxW','rMHvCLG','y3jLyxrL','y2vYDa','q2DcELC','nZm5mtnrrw9PCgm','vfbwueu','Dg9tDhjPBMC','z2v0rMLYzwjHCW','AwfSAxPPBMCGrG','yKHNAe8','qundt1vovf9qqq','Cgf0Aa','ywXZ','wNHjEuG','x19ZzxrnB2r1Ba','r0LSB3a','ugj6Bxm','DNDuuLu','Aw9UierLzMf1Ba','zxjYB3i','nJy3mJm2qKTSCM54','C2vYDMLJzufJyW','mtG4nZuZnwriwKTxua','zMLYzwjHC2uTyq','DMfSDwu','qwjHzhi','ue5ir1q','zgvMyxvSDa','qxbW','zxj0EurLC2nYAq','wefnv2W','CLbQq1K','kcGOlISPkYKRkq','DxDxBxu','A0H2wKi','CufTDxi','tfb0C2S','zMrzEee','AgfZt3DUuhjVCa','ENvUze8','y2vhv3q','mJGWnJe2seLgBMjI','wvPTCKq','Aw5PDgLHBgL6zq','wNLQtva','svzYuwm','BKrLzMf1Bhq','zxHPC3rZu3LUyW','zufKBwLU','zurLzMf1Bhq','C2vHCMnO','rKLsrujbu0vFuW','zNrLuei','AxjLyMfZzsbbza','s3D2Euy','mZKZmdaZrLHeBuvl','D3jPDgfIBgu','shHsBxy','veDTD0m','uhvtvve','s3LXv2u','nZi2nZy4ChrLDgjL','mNW0Fdn8mhWX','wujVCxu','CKvryxm','zg1PBIbPBML0Aq','rMLYzwjHC2uGqq','zxj0Eu5HBwvZ','rhbOAfK','C3bSAxq','Bg9N','ywnJB3vUDcbMCG','zgvMAw5LuhjVCa','y3DK','t1nMyKK','D0zZAhC','z2v0twvZC2fNAq','zw52','y29UzMLNDxjHyG','x19LC01VzhvSzq','zMLYzxn0B3jL'];_0x1579=function(){return _0x2b8a90;};return _0x1579();}var __createBinding=this&&this[_0x14c792(-0x277,-0x2b3,-0x278,-0x283)+'nding']||(Object[_0x246485(-0x25,0x20,-0x1b,0x21)]?function(_0x45250a,_0x43ab61,_0x30a05c,_0x151f6b){const _0xd1ad9a={_0x13ccc8:0x127,_0x3b7fa0:0xcd,_0x20c508:0x11f,_0x597daf:0x102,_0x14c873:0x10f,_0x40e82e:0xff,_0x96a72d:0xd3,_0xf0eecf:0xad,_0x2d0f9b:0x133,_0x50256f:0x10c,_0x5501ea:0xe3,_0x139521:0xda,_0x7a4b91:0x100,_0x1a06cc:0x10f,_0x2b0b2b:0x16c,_0x4418ce:0x145,_0x4674b3:0x126,_0x3355e0:0x107,_0x61d0bb:0x121,_0x16365b:0x179,_0x11c2db:0x13a,_0x4bbe2e:0x146,_0x3ea178:0x118,_0x294d9c:0xeb,_0x1cbff5:0x11c,_0x5b982f:0x11c,_0x4e4df7:0xc9,_0x311271:0xba,_0x37789b:0x122,_0x3e21d6:0x111,_0x45d801:0x11d,_0x1a40b8:0x115,_0x395dcf:0x12b,_0x2f1b54:0x148,_0x44a041:0x113,_0x3e68ed:0x132,_0x42f46c:0x155,_0x8215a1:0x12a,_0x542fcb:0xe4,_0x56d6b7:0x10b,_0x2967f6:0x139,_0x39b3cd:0x13e,_0xa42c13:0x73,_0x4288c1:0xbf,_0x3450bd:0x116,_0x3cf279:0xdf,_0x11b0e6:0xf9},_0x3cafcb={_0x3a6363:0x11f,_0x3a1b6a:0x108},_0x3cbcf6={_0x337a2b:0x7e},_0x33cc3c={};_0x33cc3c['BKvCC']=function(_0x1a067f,_0x27a7e8){return _0x1a067f===_0x27a7e8;};function _0x142ff7(_0x13464d,_0x2bb929,_0x5691df,_0xbcd76b){return _0x14c792(_0xbcd76b,_0x5691df-0x19c,_0x5691df-_0x3cbcf6._0x337a2b,_0xbcd76b-0x1c2);}_0x33cc3c[_0x64200c(-_0xd1ad9a._0x13ccc8,-0xdf,-_0xd1ad9a._0x3b7fa0,-0xfd)]='get',_0x33cc3c[_0x142ff7(-_0xd1ad9a._0x20c508,-_0xd1ad9a._0x597daf,-_0xd1ad9a._0x14c873,-0xf0)]=_0x142ff7(-0xea,-_0xd1ad9a._0x40e82e,-_0xd1ad9a._0x96a72d,-_0xd1ad9a._0xf0eecf),_0x33cc3c[_0x142ff7(-_0xd1ad9a._0x2d0f9b,-0xfb,-_0xd1ad9a._0x50256f,-0xf5)]=_0x64200c(-_0xd1ad9a._0x5501ea,-_0xd1ad9a._0x139521,-0x12e,-_0xd1ad9a._0x7a4b91);const _0x531b35=_0x33cc3c;if(_0x531b35[_0x64200c(-0x163,-_0xd1ad9a._0x1a06cc,-_0xd1ad9a._0x2b0b2b,-_0xd1ad9a._0x4418ce)](_0x151f6b,undefined))_0x151f6b=_0x30a05c;function _0x64200c(_0x41412e,_0x2b0eb7,_0x35e0e9,_0x10127f){return _0x246485(_0x41412e-_0x3cafcb._0x3a6363,_0x2b0eb7-0x91,_0x10127f- -_0x3cafcb._0x3a1b6a,_0x41412e);}var _0xe32e5a=Object['getOwnProp'+_0x64200c(-_0xd1ad9a._0x4674b3,-0xe1,-0x112,-_0xd1ad9a._0x3355e0)+_0x64200c(-_0xd1ad9a._0x61d0bb,-_0xd1ad9a._0x16365b,-_0xd1ad9a._0x11c2db,-_0xd1ad9a._0x4bbe2e)](_0x43ab61,_0x30a05c);if(!_0xe32e5a||(_0x531b35['zundO']in _0xe32e5a?!_0x43ab61[_0x142ff7(-_0xd1ad9a._0x3ea178,-_0xd1ad9a._0x294d9c,-_0xd1ad9a._0x1cbff5,-_0xd1ad9a._0x5b982f)]:_0xe32e5a[_0x142ff7(-0xc3,-_0xd1ad9a._0x4e4df7,-_0xd1ad9a._0x311271,-_0xd1ad9a._0xf0eecf)]||_0xe32e5a[_0x142ff7(-_0xd1ad9a._0x37789b,-_0xd1ad9a._0x3e21d6,-_0xd1ad9a._0x45d801,-_0xd1ad9a._0x1a40b8)+'le'])){if(_0x531b35['HpJLl']===_0x531b35[_0x64200c(-_0xd1ad9a._0x395dcf,-_0xd1ad9a._0x2f1b54,-_0xd1ad9a._0x44a041,-0x13e)]){const _0x4c1641={};_0x4c1641['enumerable']=!![],_0x4c1641[_0x142ff7(-_0xd1ad9a._0x3e68ed,-_0xd1ad9a._0x42f46c,-0x11a,-0xe2)]=function(){return _0x4ffbff[_0x1c389d];},_0x164c9f=_0x4c1641;}else{const _0x4586b4={};_0x4586b4[_0x142ff7(-_0xd1ad9a._0x8215a1,-_0xd1ad9a._0x542fcb,-_0xd1ad9a._0x1a40b8,-_0xd1ad9a._0x56d6b7)]=!![],_0x4586b4[_0x142ff7(-_0xd1ad9a._0x2967f6,-_0xd1ad9a._0x39b3cd,-0x11a,-0xf8)]=function(){return _0x43ab61[_0x30a05c];},_0xe32e5a=_0x4586b4;}}Object[_0x142ff7(-_0xd1ad9a._0xa42c13,-0xe4,-0xaa,-_0xd1ad9a._0x4288c1)+_0x142ff7(-_0xd1ad9a._0x3450bd,-_0xd1ad9a._0x3cf279,-_0xd1ad9a._0x11b0e6,-0xc2)](_0x45250a,_0x151f6b,_0xe32e5a);}:function(_0x38001b,_0x3365d0,_0x553751,_0x10b972){const _0x4ac058={_0x5173b2:0x11a,_0x95047c:0xeb,_0x180498:0x153,_0x3dc543:0xfe,_0x1eebeb:0x112},_0x366c47={_0x2b1b35:0xec,_0x42755e:0x37,_0x1a3114:0x10e},_0x22c32c={_0x3f008c:0x9f,_0x145067:0x156},_0x3afb85={};_0x3afb85[_0x36418d(_0x4ac058._0x5173b2,_0x4ac058._0x95047c,0x11c,_0x4ac058._0x180498)]=function(_0x1bff57,_0x6b498b){return _0x1bff57===_0x6b498b;};const _0x160799=_0x3afb85;function _0x5634f5(_0x1a1e41,_0x2cab0e,_0x115e31,_0x240475){return _0x246485(_0x1a1e41-_0x22c32c._0x3f008c,_0x2cab0e-_0x22c32c._0x145067,_0x1a1e41- -0x1a1,_0x240475);}if(_0x160799[_0x36418d(_0x4ac058._0x3dc543,0x145,0x11c,_0x4ac058._0x1eebeb)](_0x10b972,undefined))_0x10b972=_0x553751;function _0x36418d(_0x5d3ca8,_0x7bd7d5,_0x2ac1a9,_0x5db964){return _0x246485(_0x5d3ca8-_0x366c47._0x2b1b35,_0x7bd7d5-_0x366c47._0x42755e,_0x2ac1a9-_0x366c47._0x1a3114,_0x5d3ca8);}_0x38001b[_0x10b972]=_0x3365d0[_0x553751];}),__setModuleDefault=this&&this[_0x246485(0xc,0x3,-0xe,-0x37)+_0x14c792(-0x28b,-0x25d,-0x297,-0x22d)]||(Object[_0x246485(-0x4e,-0x27,-0x1b,-0xf)]?function(_0x3d5692,_0xded1bc){const _0x259601={_0xda0242:0x94,_0xbb3118:0x74,_0x52433a:0x86,_0x114ae7:0x67,_0x296c51:0x45,_0x5b8514:0x81,_0x2dc828:0x1fa,_0x44ad23:0x1ec,_0x561826:0x1cd,_0xdd774e:0x235,_0xdf91f9:0x26e,_0x43095d:0x21b,_0x5815a7:0x20,_0x4193fb:0x18,_0x26136c:0x93,_0x23dea9:0x56,_0x3a22a7:0x2d,_0x46009b:0x61,_0x7d5820:0x74},_0x3ab5e6={_0x5da5a7:0x59,_0xe67db2:0x18e},_0x307f20={_0x598aff:0x1c9,_0x41dd43:0xf0,_0x39d1df:0x239};function _0x1e920a(_0x31d799,_0x59ea70,_0xba0ed2,_0x1336be){return _0x246485(_0x31d799-_0x307f20._0x598aff,_0x59ea70-_0x307f20._0x41dd43,_0x31d799-_0x307f20._0x39d1df,_0x1336be);}const _0x343551={};_0x343551[_0x2eaa5c(-0x88,-_0x259601._0xda0242,-_0x259601._0xbb3118,-_0x259601._0x52433a)]=_0x2eaa5c(-_0x259601._0x114ae7,-0x42,-_0x259601._0x296c51,-_0x259601._0x5b8514);const _0x1def73=_0x343551,_0xdda54e={};_0xdda54e[_0x1e920a(_0x259601._0x2dc828,0x213,_0x259601._0x44ad23,_0x259601._0x561826)]=!![];function _0x2eaa5c(_0xefb50f,_0x3f2d1d,_0x3ee1bf,_0x2c2323){return _0x14c792(_0x3f2d1d,_0x3ee1bf-0x22e,_0x3ee1bf-_0x3ab5e6._0x5da5a7,_0x2c2323-_0x3ab5e6._0xe67db2);}_0xdda54e[_0x1e920a(_0x259601._0xdd774e,_0x259601._0xdf91f9,0x25f,_0x259601._0x43095d)]=_0xded1bc,Object[_0x2eaa5c(0x1,-_0x259601._0x5815a7,-_0x259601._0x4193fb,-0x20)+_0x2eaa5c(-_0x259601._0x26136c,-_0x259601._0x23dea9,-0x67,-_0x259601._0x3a22a7)](_0x3d5692,_0x1def73[_0x2eaa5c(-_0x259601._0x46009b,-0x64,-_0x259601._0x7d5820,-0x3e)],_0xdda54e);}:function(_0x727dc1,_0x4a25a4){const _0x51bfc2={_0x4b023b:0x163,_0x1939df:0x13a,_0x277f06:0x160,_0x1b7e1b:0x25e,_0x5d177f:0x236,_0x30d73d:0x245},_0x6a67e={_0x2661b4:0x20,_0x3abd86:0x181},_0x1b5d10={_0x250632:0x3c8,_0x412314:0x79,_0x315e2b:0x1ba},_0x52ac84={};_0x52ac84[_0x2bb089(0x152,_0x51bfc2._0x4b023b,_0x51bfc2._0x1939df,_0x51bfc2._0x277f06)]='default';const _0x27327c=_0x52ac84;function _0x2bb089(_0x49d8c2,_0x189a57,_0x5b06bf,_0xfc64bb){return _0x14c792(_0xfc64bb,_0x5b06bf-_0x1b5d10._0x250632,_0x5b06bf-_0x1b5d10._0x412314,_0xfc64bb-_0x1b5d10._0x315e2b);}function _0x20bc54(_0x2ed81e,_0x552e43,_0x252c0b,_0x599025){return _0x14c792(_0x252c0b,_0x599025-_0x6a67e._0x2661b4,_0x252c0b-0xf2,_0x599025-_0x6a67e._0x3abd86);}_0x727dc1[_0x27327c[_0x20bc54(-_0x51bfc2._0x1b7e1b,-_0x51bfc2._0x5d177f,-_0x51bfc2._0x30d73d,-0x26e)]]=_0x4a25a4;}),__importStar=this&&this['__importSt'+'ar']||(function(){const _0x47eaaa={_0x2e30e4:0x3c6,_0x5e2268:0x3eb,_0x552657:0x3f7,_0xabd07c:0x3e4,_0x29a574:0x3d4,_0x5aa780:0x3fe,_0xfcfd03:0x3cb,_0x23f818:0x3ba,_0x3a5add:0x3b5,_0x3bcb05:0x3b4,_0xb436f0:0x3a3,_0x5cada0:0x380,_0x18dd79:0x3af,_0x36e42c:0x3a0,_0x8e0f20:0x38d,_0x52ec10:0x376,_0x44a7af:0x3ce,_0x304572:0x374,_0x32210d:0x35d,_0xbf12cf:0x3ed,_0x34522e:0x3d7,_0x25f335:0x38a,_0x2ce488:0x3ac},_0x160ff8={_0x127050:0x4d2,_0x238c87:0x4b8,_0x36accb:0x4bd,_0xd3db0e:0x49b,_0x1e1d9d:0x521,_0x2b35c2:0x4e8,_0x21d825:0x540,_0x53ade3:0x4f3,_0x543606:0x4a7,_0x4bef14:0x4db,_0x3a149a:0x4c0,_0x5cae1b:0x523,_0x4791d9:0x538,_0x9955c6:0x506,_0xd74b57:0x51a,_0x5edb87:0x546,_0x531daf:0x501,_0x527e9b:0x513,_0x27f9f3:0x52f,_0x5c506e:0x51e,_0x46e5c5:0x4ff,_0x354935:0x4e3,_0x134676:0x4bb,_0x3c04eb:0x4cc,_0x387d6c:0x498,_0x533f5f:0x48f,_0x384669:0x490,_0x666588:0x49c,_0x7b184a:0x52a,_0x4b4514:0x50b,_0x28ad29:0x51b,_0x3005e1:0x4f5,_0x4685c8:0x48d,_0x2e6261:0x4b3,_0x5a871e:0x4e7,_0x3d9a90:0x50a,_0x179b6e:0x502,_0x230713:0x494},_0xca21b={_0x4d37ff:0x98,_0x1aac5f:0x189},_0x2dcabb={_0x91f982:0x657,_0x233c7d:0x1e5,_0x179afb:0x91},_0x39f06b={_0x4bcbe6:0x28b,_0x49d111:0x25c,_0x4d45d1:0x20c,_0x4bc306:0x1d9,_0x11e432:0x1f7,_0x19b4ec:0x1c3,_0x14d814:0x22f,_0x4fab25:0x1f6,_0x1137a6:0x1ff,_0x2bd422:0x1e9,_0x486aea:0x1fc,_0x1be4a4:0x1d5,_0x19905c:0x1c1,_0xfebf60:0x214,_0x5cd08b:0x1fb,_0x2d7d39:0x229,_0x2d62bd:0x239,_0x7859fb:0x302,_0x368809:0x2c1,_0x2ad8b6:0x299,_0x9f83c2:0x244,_0x598152:0x26f,_0x36bc1f:0x27c,_0x1b5e64:0x275,_0x583e0e:0x229,_0x5e6f98:0x1c4,_0x3c0e3a:0x1ff,_0x7abab0:0x1cd,_0x2cc361:0x220,_0xdce707:0x1ef,_0x278f03:0x1ce,_0x53c3df:0x1f1,_0x35779e:0x1ec,_0x9d25b5:0x226,_0x18ed1e:0x235,_0x54c645:0x255,_0x3a02a0:0x270,_0x5b91c3:0x1c7,_0x287969:0x1d3,_0x37aca5:0x19d},_0x5bd7e8={_0x48f68b:0x1de,_0x19c1d8:0x1b7,_0x138d54:0x1a0,_0x21176d:0x1dc,_0x2948e1:0x98,_0x1e0b58:0xdd,_0x1f7f12:0x65,_0x2e47e1:0xc0,_0x558c05:0x90},_0x50b2a8={_0x199d2c:0x23b,_0x1f25af:0x22e,_0x4534d5:0x207},_0x3c4feb={_0xe79276:0x21f,_0x38c8ce:0x230},_0x12530f={_0x2cd058:0x5f3,_0x3b2ad7:0x1bf,_0x26026f:0x1e2},_0x497e98={_0x46bbbf:0x3c8,_0x57fd77:0x3d3,_0x9bf356:0x3bc,_0x2fffc3:0x39e,_0x32564e:0x3d2,_0x1b6a8c:0x394,_0x3d1553:0x3cd,_0x266462:0x3c4,_0x5491cd:0x359,_0x35d593:0x32c,_0x31ecf0:0x36a,_0x28d5a8:0x38e,_0x3585cd:0x3c6,_0x437666:0x425,_0x313f63:0x39f,_0x4baf7f:0x387,_0x461104:0x3c1,_0x5839bb:0x389,_0xda84b4:0x2fa,_0x1f4eaa:0x2f9,_0x20d768:0x330,_0x195a64:0x2ef,_0x48c209:0x329,_0x123c69:0x30d},_0x5e3586={_0x3f3b76:0x174,_0x44007b:0xa4,_0x4456ae:0xa6},_0x463fa1={_0x31a429:0x327,_0x55c806:0x301,_0x2c6b3d:0x3ec,_0x5b5f79:0x3f4,_0xd1ad5c:0x3bb,_0x2d38a5:0x2d8,_0x4b4914:0x286,_0x32cea1:0x2b0,_0x1c129c:0x2e0},_0x193932={_0x29a590:0x96,_0x5c4037:0xfe},_0x467553={_0x215296:0x104,_0x1c68c3:0x137,_0xfa5365:0xee,_0x8634d5:0xcf},_0x3ac7ee={'KwvyF':_0x2fb0d6(_0x47eaaa._0x2e30e4,_0x47eaaa._0x5e2268,0x3c7,_0x47eaaa._0x552657)+'ializing\x20F'+_0x2fb0d6(_0x47eaaa._0xabd07c,_0x47eaaa._0x29a574,_0x47eaaa._0x5aa780,_0x47eaaa._0xfcfd03)+'min:','XAMWl':'fKUsE','vwTRU':function(_0x396ea0,_0x73abfd){return _0x396ea0!==_0x73abfd;},'fWTXf':'ePmNe','PuNnR':_0x2fb0d6(0x3a7,0x39b,_0x47eaaa._0x23f818,_0x47eaaa._0x3a5add),'AMECq':_0x4f9579(0x385,0x364,_0x47eaaa._0x3bcb05,_0x47eaaa._0xb436f0)+'+$','fdYxA':function(_0x4f9325,_0x560d3b){return _0x4f9325!=_0x560d3b;},'HxRmv':function(_0x5695eb,_0x3bf0c2){return _0x5695eb(_0x3bf0c2);},'PNHGT':function(_0x3672fc,_0x2b43b0){return _0x3672fc<_0x2b43b0;},'wFshw':_0x4f9579(_0x47eaaa._0x5cada0,_0x47eaaa._0x18dd79,0x355,0x369),'HDiIY':function(_0x246711,_0x1f61ad,_0x3ba379,_0x887ad9){return _0x246711(_0x1f61ad,_0x3ba379,_0x887ad9);},'ZxIyH':function(_0x122312,_0x2e5503,_0x1b8d4f){return _0x122312(_0x2e5503,_0x1b8d4f);},'Pbzms':_0x4f9579(_0x47eaaa._0x36e42c,_0x47eaaa._0x8e0f20,_0x47eaaa._0x52ec10,_0x47eaaa._0x44a7af),'xBRgj':function(_0x279126,_0x22a150){return _0x279126(_0x22a150);},'PCvBJ':function(_0x449d7d,_0x3c2e6a){return _0x449d7d===_0x3c2e6a;},'KyqWe':_0x4f9579(_0x47eaaa._0x304572,_0x47eaaa._0x32210d,0x34d,0x396),'DphhY':_0x2fb0d6(0x430,0x3ef,0x407,_0x47eaaa._0xbf12cf),'YBoqu':function(_0x1cc4e9,_0x110f56){return _0x1cc4e9<_0x110f56;},'yByQW':function(_0x156a3e,_0x8ce7f8,_0x123802){return _0x156a3e(_0x8ce7f8,_0x123802);}},_0x292847=(function(){const _0x37dc02={_0x1123d0:0x360,_0x59bfbc:0x383,_0x1a3ff3:0x32a,_0x1c533e:0x363,_0x30d40f:0x44b,_0x201f20:0x45c,_0x21e7f6:0x31b,_0x47beab:0x357,_0x3aa60f:0x2e2,_0x550d9a:0x31b,_0x2299a0:0x2f9,_0x2cc816:0x30b,_0x22f52c:0x2f3,_0x3ebdbf:0x45b,_0x518cf2:0x4bd,_0x80fce0:0x494,_0xd0e675:0x44a,_0x20e94f:0x484,_0x22fa87:0x48f,_0x5e12f:0x465},_0x17abe7={_0x570720:0x9,_0xfce60b:0x159},_0x32e853={_0x463f30:0x116,_0x848ed0:0x9d,_0x5b589d:0x2b7},_0x1dd1f7={'uwWmu':_0x3ac7ee[_0x520e3f(_0x463fa1._0x31a429,0x2f9,_0x463fa1._0x55c806,0x32c)],'efmDG':function(_0x40c195,_0x19183b){return _0x40c195!==_0x19183b;},'wklyz':_0x3ac7ee[_0x3ad132(_0x463fa1._0x2c6b3d,_0x463fa1._0x5b5f79,_0x463fa1._0xd1ad5c,0x3c8)],'ftePB':function(_0x15c668,_0x22e7ec){function _0xa4d18a(_0x1cbb7e,_0x1dd733,_0x83e0ad,_0x3d44a9){return _0x3ad132(_0x1cbb7e-_0x32e853._0x463f30,_0x3d44a9,_0x83e0ad-_0x32e853._0x848ed0,_0x1cbb7e- -_0x32e853._0x5b589d);}return _0x3ac7ee[_0xa4d18a(_0x467553._0x215296,_0x467553._0x1c68c3,_0x467553._0xfa5365,_0x467553._0x8634d5)](_0x15c668,_0x22e7ec);},'TPVPE':_0x3ac7ee[_0x520e3f(_0x463fa1._0x2d38a5,_0x463fa1._0x4b4914,_0x463fa1._0x32cea1,_0x463fa1._0x1c129c)]};function _0x520e3f(_0x1f66d5,_0x4d2b51,_0x1899e3,_0x509057){return _0x2fb0d6(_0x1f66d5-_0x193932._0x29a590,_0x4d2b51,_0x1899e3- -_0x193932._0x5c4037,_0x509057-0x151);}let _0x3230ec=!![];function _0x3ad132(_0x528288,_0x3ddde9,_0x34ce93,_0x4704fd){return _0x2fb0d6(_0x528288-_0x17abe7._0x570720,_0x3ddde9,_0x4704fd- -0x1f,_0x4704fd-_0x17abe7._0xfce60b);}return function(_0x166ffe,_0xa7e539){const _0x4803df=_0x3230ec?function(){const _0x1e2cab={_0x1f7281:0x20c};function _0x386643(_0x147a69,_0x650f79,_0x38ed03,_0x33e9f2){return _0x41ca(_0x147a69-_0x1e2cab._0x1f7281,_0x33e9f2);}const _0x9d1a11={};_0x9d1a11['GyWgK']=_0x1dd1f7[_0x386643(_0x37dc02._0x1123d0,_0x37dc02._0x59bfbc,_0x37dc02._0x1a3ff3,_0x37dc02._0x1c533e)];function _0x1cf647(_0x5c15f2,_0x2d3ae1,_0x577d3c,_0x28b0c1){return _0x41ca(_0x28b0c1-0x32d,_0x2d3ae1);}const _0x5675ed=_0x9d1a11;if(_0x1dd1f7[_0x1cf647(0x43a,_0x37dc02._0x30d40f,0x498,_0x37dc02._0x201f20)](_0x1dd1f7[_0x386643(_0x37dc02._0x21e7f6,_0x37dc02._0x47beab,_0x37dc02._0x3aa60f,0x30c)],_0x1dd1f7[_0x386643(_0x37dc02._0x550d9a,_0x37dc02._0x2299a0,_0x37dc02._0x2cc816,_0x37dc02._0x22f52c)])){_0x49f5d1['error'](_0x5675ed['GyWgK'],_0x445604);throw _0x376e06;}else{if(_0xa7e539){if(_0x1dd1f7[_0x1cf647(_0x37dc02._0x3ebdbf,_0x37dc02._0x518cf2,0x4a1,_0x37dc02._0x80fce0)](_0x1dd1f7['TPVPE'],_0x1dd1f7[_0x1cf647(_0x37dc02._0xd0e675,_0x37dc02._0x20e94f,_0x37dc02._0x22fa87,_0x37dc02._0x5e12f)]))return _0x1f3ad4[_0x26e006];else{const _0x9d7a6c=_0xa7e539['apply'](_0x166ffe,arguments);return _0xa7e539=null,_0x9d7a6c;}}}}:function(){};return _0x3230ec=![],_0x4803df;};}()),_0x260b22=_0x3ac7ee[_0x2fb0d6(_0x47eaaa._0x34522e,_0x47eaaa._0x25f335,0x3bc,_0x47eaaa._0x2ce488)](_0x292847,this,function(){const _0x691b6={_0x33eb74:0x52,_0x135a46:0x149,_0x5e93b8:0xae};function _0x2f89cf(_0x30b4e1,_0x2b5c32,_0x43f2d6,_0x5ae4c9){return _0x2fb0d6(_0x30b4e1-_0x5e3586._0x3f3b76,_0x43f2d6,_0x5ae4c9- -_0x5e3586._0x44007b,_0x5ae4c9-_0x5e3586._0x4456ae);}function _0x344788(_0x2348e9,_0x546cb9,_0x15b235,_0x206c14){return _0x4f9579(_0x2348e9-_0x691b6._0x33eb74,_0x546cb9-_0x691b6._0x135a46,_0x15b235,_0x206c14-_0x691b6._0x5e93b8);}if(_0x3ac7ee[_0x344788(_0x497e98._0x46bbbf,_0x497e98._0x57fd77,0x3fe,_0x497e98._0x9bf356)](_0x3ac7ee[_0x344788(_0x497e98._0x2fffc3,0x3b6,_0x497e98._0x32564e,_0x497e98._0x1b6a8c)],_0x3ac7ee[_0x344788(_0x497e98._0x2fffc3,0x383,_0x497e98._0x3d1553,_0x497e98._0x266462)])){const _0x1ea9f5=(-0x1*0xf2b+-0x692+-0x31b*-0x7,_0x21818e[_0x2f89cf(_0x497e98._0x5491cd,0x360,0x367,_0x497e98._0x35d593)+_0x2f89cf(_0x497e98._0x31ecf0,0x37a,_0x497e98._0x28d5a8,0x355)])();return _0x46c6bd['messaging'](_0x1ea9f5);}else return _0x260b22['toString']()[_0x344788(0x3e9,0x40f,_0x497e98._0x3585cd,_0x497e98._0x437666)](_0x3ac7ee[_0x344788(_0x497e98._0x313f63,_0x497e98._0x4baf7f,_0x497e98._0x461104,_0x497e98._0x5839bb)])[_0x2f89cf(0x347,_0x497e98._0xda84b4,_0x497e98._0x1f4eaa,0x32b)]()['constructo'+'r'](_0x260b22)['search'](_0x3ac7ee[_0x2f89cf(_0x497e98._0x20d768,_0x497e98._0x195a64,_0x497e98._0x48c209,_0x497e98._0x123c69)]);});_0x260b22();function _0x4f9579(_0x264802,_0xe54a8f,_0x18dfb5,_0x592996){return _0x14c792(_0x18dfb5,_0x264802-_0x12530f._0x2cd058,_0x18dfb5-_0x12530f._0x3b2ad7,_0x592996-_0x12530f._0x26026f);}var _0xd09d96=function(_0xcc14b3){const _0x1818a3={_0x5cc3f6:0x129,_0x58513d:0xc5,_0x18f3ac:0x14d},_0x1cfdf1={_0x5d6d35:0x252,_0x5ca0cc:0x29a,_0x460762:0x280},_0x305481={_0x360d4c:0x39c},_0xb345c7={_0x2f85d3:0x311,_0x10ab7d:0x304,_0x524f25:0x2d6},_0x34383c={_0x599b03:0x37,_0x358c85:0x1e3,_0x4df025:0xc2};function _0x5e7209(_0x2d003c,_0xf332f1,_0x2d9ad1,_0x57d24c){return _0x2fb0d6(_0x2d003c-_0x34383c._0x599b03,_0x57d24c,_0x2d9ad1- -_0x34383c._0x358c85,_0x57d24c-_0x34383c._0x4df025);}const _0x2d0f01={'ZyjMP':function(_0x4c677e,_0x4701c2){function _0x591ca4(_0x43e5bc,_0x335bca,_0x2c3a26,_0x532919){return _0x41ca(_0x2c3a26-0x1ac,_0x335bca);}return _0x3ac7ee[_0x591ca4(0x2e8,_0xb345c7._0x2f85d3,_0xb345c7._0x10ab7d,_0xb345c7._0x524f25)](_0x4c677e,_0x4701c2);},'Abadr':function(_0x1bc661,_0x2ccd2f){function _0xe38c21(_0x43911f,_0x16a4e9,_0x273454,_0x4658a6){return _0x41ca(_0x16a4e9- -_0x305481._0x360d4c,_0x4658a6);}return _0x3ac7ee[_0xe38c21(-_0x3c4feb._0xe79276,-_0x3c4feb._0x38c8ce,-0x200,-0x226)](_0x1bc661,_0x2ccd2f);},'bHghO':function(_0x2959a3,_0x29fa3f){function _0xb014a3(_0x436cb5,_0x91cfaa,_0x147cd7,_0x18695d){return _0x41ca(_0x91cfaa- -0x37b,_0x18695d);}return _0x3ac7ee[_0xb014a3(-_0x50b2a8._0x199d2c,-_0x50b2a8._0x1f25af,-0x269,-_0x50b2a8._0x4534d5)](_0x2959a3,_0x29fa3f);},'rEQas':_0x3ac7ee[_0x158ef2(-_0x39f06b._0x4bcbe6,-0x279,-_0x39f06b._0x49d111,-0x256)],'OSfbI':function(_0x4bb505,_0xe8e623,_0x3396af,_0x4c3f66){return _0x3ac7ee['HDiIY'](_0x4bb505,_0xe8e623,_0x3396af,_0x4c3f66);},'oBtgb':function(_0x31ef4a,_0x3b81db,_0x1cd673){const _0x5a1bb3={_0x927a3e:0x2d,_0x47e770:0x32};function _0x2894c7(_0x2e3d5e,_0x3f8e85,_0x4df4da,_0x5d1110){return _0x158ef2(_0x3f8e85,_0x3f8e85-_0x5a1bb3._0x927a3e,_0x4df4da-_0x5a1bb3._0x47e770,_0x5d1110-0x14);}return _0x3ac7ee[_0x2894c7(-0x2a3,-_0x1cfdf1._0x5d6d35,-_0x1cfdf1._0x5ca0cc,-_0x1cfdf1._0x460762)](_0x31ef4a,_0x3b81db,_0x1cd673);}};function _0x158ef2(_0x29d9db,_0x509beb,_0x2e8d91,_0x1a585a){return _0x4f9579(_0x1a585a- -0x606,_0x509beb-0x75,_0x29d9db,_0x1a585a-0x1af);}if(_0x3ac7ee[_0x5e7209(_0x39f06b._0x4d45d1,_0x39f06b._0x4bc306,_0x39f06b._0x11e432,_0x39f06b._0x19b4ec)]('bVezs',_0x3ac7ee[_0x5e7209(0x1d3,_0x39f06b._0x14d814,_0x39f06b._0x4fab25,_0x39f06b._0x1137a6)]))return _0xd09d96=Object[_0x5e7209(_0x39f06b._0x2bd422,_0x39f06b._0x486aea,_0x39f06b._0x1be4a4,_0x39f06b._0x19905c)+_0x5e7209(_0x39f06b._0xfebf60,_0x39f06b._0x5cd08b,_0x39f06b._0x2d7d39,_0x39f06b._0x2d62bd)]||function(_0x200ad3){const _0x3268ce={_0x3d2de1:0x4,_0x42c295:0xfa};function _0x1439d2(_0x5b7a81,_0x55907d,_0x3afdf7,_0xbbdc29){return _0x158ef2(_0x5b7a81,_0x55907d-_0x3268ce._0x3d2de1,_0x3afdf7-_0x3268ce._0x42c295,_0xbbdc29-0xda);}function _0x12f068(_0x339002,_0x47d22f,_0x1e07c7,_0x3767fa){return _0x5e7209(_0x339002-_0x1818a3._0x5cc3f6,_0x47d22f-_0x1818a3._0x58513d,_0x3767fa- -_0x1818a3._0x18f3ac,_0x1e07c7);}var _0x323403=[];for(var _0x18f2dc in _0x200ad3)if(Object[_0x1439d2(-_0x5bd7e8._0x48f68b,-_0x5bd7e8._0x19c1d8,-_0x5bd7e8._0x138d54,-_0x5bd7e8._0x21176d)][_0x12f068(0xc9,_0x5bd7e8._0x2948e1,_0x5bd7e8._0x1e0b58,0xbf)+'erty'][_0x12f068(0x74,0xca,0x8e,0x8e)](_0x200ad3,_0x18f2dc))_0x323403[_0x323403[_0x12f068(0xbc,_0x5bd7e8._0x1f7f12,_0x5bd7e8._0x2e47e1,_0x5bd7e8._0x558c05)]]=_0x18f2dc;return _0x323403;},_0x3ac7ee['xBRgj'](_0xd09d96,_0xcc14b3);else{if(_0x1a87f9&&_0x2347b0[_0x158ef2(-_0x39f06b._0x7859fb,-_0x39f06b._0x368809,-_0x39f06b._0x2ad8b6,-0x2cb)])return _0x3924cd;var _0x2f9c28={};if(_0x2d0f01[_0x158ef2(-_0x39f06b._0x9f83c2,-_0x39f06b._0x598152,-_0x39f06b._0x36bc1f,-_0x39f06b._0x1b5e64)](_0x575e85,null)){for(var _0x27511b=_0x2d0f01[_0x5e7209(_0x39f06b._0x583e0e,_0x39f06b._0x5e6f98,_0x39f06b._0x3c0e3a,0x211)](_0x29782a,_0x1417b0),_0x36ad52=-0x2399+0x1*-0x30d+0x66*0x61;_0x2d0f01[_0x5e7209(_0x39f06b._0x7abab0,_0x39f06b._0x2cc361,_0x39f06b._0xdce707,_0x39f06b._0x278f03)](_0x36ad52,_0x27511b['length']);_0x36ad52++)if(_0x27511b[_0x36ad52]!==_0x2d0f01[_0x5e7209(_0x39f06b._0x53c3df,_0x39f06b._0x35779e,_0x39f06b._0x9d25b5,_0x39f06b._0x18ed1e)])_0x2d0f01[_0x158ef2(-_0x39f06b._0x54c645,-_0x39f06b._0x3a02a0,-0x26e,-0x257)](_0x5ea4e0,_0x2f9c28,_0x67a075,_0x27511b[_0x36ad52]);}return _0x2d0f01[_0x5e7209(0x1a0,_0x39f06b._0x5b91c3,_0x39f06b._0x287969,_0x39f06b._0x37aca5)](_0x42f429,_0x2f9c28,_0x4d7b2c),_0x2f9c28;}};function _0x2fb0d6(_0x5421f3,_0x1c7b6d,_0x71fb30,_0xfee108){return _0x14c792(_0x1c7b6d,_0x71fb30-_0x2dcabb._0x91f982,_0x71fb30-_0x2dcabb._0x233c7d,_0xfee108-_0x2dcabb._0x179afb);}return function(_0x2b3dd2){const _0x5bd2eb={_0x5b0122:0x155,_0x21ea05:0x18,_0x7203e:0x17},_0x1e8fd4={};_0x1e8fd4[_0x6cbf93(_0x160ff8._0x127050,_0x160ff8._0x238c87,_0x160ff8._0x36accb,_0x160ff8._0xd3db0e)]=_0x3ac7ee[_0x12bbad(_0x160ff8._0x1e1d9d,_0x160ff8._0x2b35c2,_0x160ff8._0x21d825,_0x160ff8._0x53ade3)];const _0x4e921c=_0x1e8fd4;function _0x12bbad(_0x3dd7e6,_0x36a414,_0x34e05c,_0x390699){return _0x4f9579(_0x3dd7e6-0x171,_0x36a414-_0xca21b._0x4d37ff,_0x36a414,_0x390699-_0xca21b._0x1aac5f);}function _0x6cbf93(_0x39ae15,_0x151a6e,_0x401b98,_0x4ba0d6){return _0x4f9579(_0x401b98-_0x5bd2eb._0x5b0122,_0x151a6e-_0x5bd2eb._0x21ea05,_0x4ba0d6,_0x4ba0d6-_0x5bd2eb._0x7203e);}if(_0x3ac7ee[_0x6cbf93(_0x160ff8._0x543606,_0x160ff8._0x4bef14,0x4b0,_0x160ff8._0x3a149a)](_0x3ac7ee['KyqWe'],_0x3ac7ee[_0x12bbad(0x512,_0x160ff8._0x5cae1b,_0x160ff8._0x4791d9,_0x160ff8._0x9955c6)])){const _0x198a49=_0x3ac7ee[_0x12bbad(_0x160ff8._0xd74b57,_0x160ff8._0x5edb87,_0x160ff8._0x531daf,_0x160ff8._0x527e9b)][_0x6cbf93(_0x160ff8._0x27f9f3,_0x160ff8._0x5c506e,_0x160ff8._0x46e5c5,0x4e3)]('|');let _0x1b6ad2=-0x8ec+0x14c2*0x1+0xca*-0xf;while(!![]){switch(_0x198a49[_0x1b6ad2++]){case'0':_0x3ac7ee[_0x12bbad(_0x160ff8._0x354935,_0x160ff8._0x134676,0x4be,_0x160ff8._0x3c04eb)](__setModuleDefault,_0x41a8ff,_0x2b3dd2);continue;case'1':return _0x41a8ff;case'2':if(_0x2b3dd2&&_0x2b3dd2[_0x6cbf93(_0x160ff8._0x387d6c,_0x160ff8._0x533f5f,_0x160ff8._0x384669,_0x160ff8._0x666588)])return _0x2b3dd2;continue;case'3':if(_0x3ac7ee[_0x12bbad(0x4fb,_0x160ff8._0x7b184a,_0x160ff8._0x4b4514,_0x160ff8._0x28ad29)](_0x2b3dd2,null)){for(var _0x511a48=_0xd09d96(_0x2b3dd2),_0x3d3a9d=-0x17f2+0x10dd+-0x7*-0x103;_0x3ac7ee[_0x12bbad(0x515,0x545,0x519,_0x160ff8._0x3005e1)](_0x3d3a9d,_0x511a48[_0x6cbf93(_0x160ff8._0x4685c8,_0x160ff8._0x2e6261,0x4b1,_0x160ff8._0x3a149a)]);_0x3d3a9d++)if(_0x3ac7ee[_0x12bbad(_0x160ff8._0x5a871e,_0x160ff8._0x3d9a90,0x4b6,_0x160ff8._0x179b6e)](_0x511a48[_0x3d3a9d],_0x3ac7ee['wFshw']))__createBinding(_0x41a8ff,_0x2b3dd2,_0x511a48[_0x3d3a9d]);}continue;case'4':var _0x41a8ff={};continue;}break;}}else _0x41a326[_0x4e921c[_0x6cbf93(0x4a4,0x4e3,0x4bd,_0x160ff8._0x230713)]]=_0x4949f7;};}());const _0x466b3b={};function _0x14c792(_0x3a1054,_0x17358c,_0x341a4c,_0x2a92da){const _0x1227cc={_0x2fbc05:0x3c1};return _0x41ca(_0x17358c- -_0x1227cc._0x2fbc05,_0x3a1054);}function _0x246485(_0x407257,_0x5d0e13,_0x40acf0,_0x14b701){const _0x35f4f7={_0x40e7e8:0x14f};return _0x41ca(_0x40acf0- -_0x35f4f7._0x40e7e8,_0x14b701);}function _0x41ca(_0x595d75,_0x1a87f9){const _0x2347b0=_0x1579();return _0x41ca=function(_0x3924cd,_0x575e85){_0x3924cd=_0x3924cd-(-0x4b2+0x917+-0x35d);let _0x29782a=_0x2347b0[_0x3924cd];if(_0x41ca['atjZxt']===undefined){var _0x1417b0=function(_0x4d7b2c){const _0x2eb98e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x217b61='',_0x8a48a9='',_0x2341fa=_0x217b61+_0x1417b0;for(let _0x4f6ebd=-0xabd*0x2+0xed5+0x6a5,_0xa1606c,_0x36f751,_0x4c020a=-0x219*-0x5+0x5bf+0x4*-0x40f;_0x36f751=_0x4d7b2c['charAt'](_0x4c020a++);~_0x36f751&&(_0xa1606c=_0x4f6ebd%(-0x1ce5*-0x1+0xb45*0x1+0x6b1*-0x6)?_0xa1606c*(-0x1fca*0x1+-0x663+0x1*0x266d)+_0x36f751:_0x36f751,_0x4f6ebd++%(-0x4e4*-0x1+0x239*0x2+-0x952))?_0x217b61+=_0x2341fa['charCodeAt'](_0x4c020a+(0xc61*0x3+-0x97*-0x25+-0x3aec))-(0x163*-0xf+-0x1e39+-0x13*-0x2b0)!==-0xd7c+-0x2b*0x2b+-0x5d*-0x39?String['fromCharCode'](0x8*0x43+0xcc9+0x2*-0x6f1&_0xa1606c>>(-(0xe8e+-0xe0a+-0xd*0xa)*_0x4f6ebd&-0x19fe+0x10*0x155+0xe*0x56)):_0x4f6ebd:-0x2*-0xa7d+-0xa16+-0xae4){_0x36f751=_0x2eb98e['indexOf'](_0x36f751);}for(let _0x2e78eb=-0x11a6+-0xd98*-0x1+0x40e,_0x110e6b=_0x217b61['length'];_0x2e78eb<_0x110e6b;_0x2e78eb++){_0x8a48a9+='%'+('00'+_0x217b61['charCodeAt'](_0x2e78eb)['toString'](0x2558+-0x232f+-0x219))['slice'](-(-0x1*-0xb9e+0x30a+0x3*-0x4e2));}return decodeURIComponent(_0x8a48a9);};_0x41ca['sugTGy']=_0x1417b0,_0x595d75=arguments,_0x41ca['atjZxt']=!![];}const _0x5ea4e0=_0x2347b0[-0x221b*0x1+-0x13a*0xe+0x3347*0x1],_0x67a075=_0x3924cd+_0x5ea4e0,_0x42f429=_0x595d75[_0x67a075];if(!_0x42f429){const _0x4c9057=function(_0x3c5069){this['pImYFE']=_0x3c5069,this['YKrcdE']=[-0x177c+0x2*-0xc48+0x300d,0x223+-0x12*-0x1df+-0x23d1,-0x1*0xa33+-0x1b96+0x25c9],this['leDeKS']=function(){return'newState';},this['mLZaTw']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['nIJMyh']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x4c9057['prototype']['xSUjeY']=function(){const _0x4e93f6=new RegExp(this['mLZaTw']+this['nIJMyh']),_0x4a461f=_0x4e93f6['test'](this['leDeKS']['toString']())?--this['YKrcdE'][-0x15f4+-0x3*-0x503+0x6ec]:--this['YKrcdE'][0x140b+-0x47d*-0x4+0x25ff*-0x1];return this['hTnFQq'](_0x4a461f);},_0x4c9057['prototype']['hTnFQq']=function(_0x2dc478){if(!Boolean(~_0x2dc478))return _0x2dc478;return this['OJCxzZ'](this['pImYFE']);},_0x4c9057['prototype']['OJCxzZ']=function(_0x4d80ab){for(let _0x4a1c6b=-0x15*0x74+-0x1da5+0x2729,_0x15b296=this['YKrcdE']['length'];_0x4a1c6b<_0x15b296;_0x4a1c6b++){this['YKrcdE']['push'](Math['round'](Math['random']())),_0x15b296=this['YKrcdE']['length'];}return _0x4d80ab(this['YKrcdE'][-0x28*0x7c+0x2674+0x42*-0x4a]);},new _0x4c9057(_0x41ca)['xSUjeY'](),_0x29782a=_0x41ca['sugTGy'](_0x29782a),_0x595d75[_0x67a075]=_0x29782a;}else _0x29782a=_0x42f429;return _0x29782a;},_0x41ca(_0x595d75,_0x1a87f9);}_0x466b3b[_0x246485(-0xa,0xa,-0x4,-0x28)]=!![],Object['defineProp'+_0x246485(0xd,-0x16,-0x23,-0x4)](exports,'__esModule',_0x466b3b),exports['getFiresto'+'re']=exports[_0x14c792(-0x21d,-0x242,-0x229,-0x227)+'ng']=exports[_0x14c792(-0x2a1,-0x287,-0x29d,-0x289)+_0x246485(-0x10,-0x5,0x14,0x0)]=exports[_0x246485(0x3b,-0x2b,0xf,-0x16)+_0x14c792(-0x26f,-0x29c,-0x2aa,-0x28f)+_0x246485(-0x11,0x12,-0x28,-0x2d)]=void(-0x3c8*-0x5+0x9*0x1d8+-0x2380);const admin=__importStar(require(_0x14c792(-0x29a,-0x277,-0x26d,-0x248)+_0x14c792(-0x291,-0x294,-0x273,-0x298))),path=__importStar(require(_0x14c792(-0x2b2,-0x283,-0x288,-0x2b0))),fs=__importStar(require('fs'));let firebaseApp=null;const initializeFirebaseAdmin=()=>{const _0x23edeb={_0x137771:0xe8,_0x312a71:0xe6,_0x5a97ce:0xe2,_0x2ae7cb:0x24d,_0x283ff7:0x279,_0x11b430:0x267,_0x1938db:0x203,_0x8c8952:0x220,_0x3ecce0:0x206,_0x3cfc59:0x113,_0x3c90fe:0x11f,_0x3d11dd:0x133,_0x3d4424:0x10b,_0x1ce3a1:0x24b,_0x59a592:0x287,_0x4e0b0d:0x26c,_0x48ea87:0x242,_0x32f566:0xdd,_0x1cf3dd:0x119,_0x51fcb6:0x132,_0x51a820:0x109,_0x383ad3:0x10e,_0x420a54:0x10a,_0x4eeb04:0x1eb,_0x1024e7:0x222,_0x1ed42a:0x1e5,_0x563366:0x14e,_0x583ed6:0x126,_0x35f972:0x203,_0x4936e6:0x1f2,_0x591405:0x209,_0x459366:0x24f,_0x2734f0:0x244,_0x3fd6f2:0x24d,_0x3b8039:0x260,_0x2750f5:0x290,_0x5cb806:0x29b,_0x29f9e0:0x28f,_0x4e0537:0x105,_0x11a833:0xd2,_0x4155a2:0xe1,_0x586510:0xe5,_0x151926:0xd1,_0x1024ae:0x135,_0x3164e0:0x13c,_0x58e98d:0x161,_0x4f93c1:0xea,_0x1076bb:0x125,_0x2d9ad6:0x111,_0x3906ee:0xd5,_0x201b05:0x23e,_0x29eadd:0x231,_0x6ec2e9:0x24c,_0x41e8ea:0x212,_0x2a73c0:0x217,_0x874ba3:0x242,_0x26b2d6:0x235,_0x3c3f64:0x233,_0x16671c:0x215,_0x50d592:0x21f,_0x509213:0x230,_0x1d9ccf:0x271,_0x5c3dff:0x25a,_0x42402b:0x250,_0x55640c:0x240,_0x59060:0x132,_0x5981f9:0xd7,_0x46978d:0x101,_0x4326ab:0x210,_0x56f32c:0xc1,_0x5c2118:0xe9,_0x805e2c:0xdc,_0x8d4570:0x164,_0x44aa70:0x12f,_0x3247c7:0x116,_0x47aed9:0x1fd,_0x4f8933:0x1f7,_0xbef8ab:0x1d2,_0x355a6a:0x223,_0x5696a6:0xf3,_0x328811:0xf5,_0x209efb:0xf0,_0x51729f:0xd1,_0x3b1ba6:0x12c,_0x2084ee:0xf4,_0x58c49f:0x126,_0x1b3901:0x222,_0xd1bf36:0x25a,_0x3e3c42:0x1ff,_0x7accca:0x1ef,_0x559a4b:0xcf,_0x48efd3:0x22e,_0x162e7e:0x1fc,_0x1f0317:0x24c,_0x4d2731:0x248,_0x438ae3:0x20f,_0x58ef89:0x118,_0x41af23:0xd9,_0x49a857:0x21d,_0x4f8ca4:0x24b,_0x4ca301:0x1ed,_0x23253e:0x201,_0x477892:0x208,_0x43ffa1:0x239,_0x2c24cc:0x21b,_0x18bd41:0x254,_0x2c631a:0x163,_0x15347c:0x140,_0x22955b:0x142,_0x47f684:0x174,_0x156659:0x247,_0x213910:0x23f,_0x4516c7:0x204,_0x59eca5:0x1ed,_0x13a4a8:0x227,_0x293543:0x1f6,_0x5ece49:0x1f4,_0x1e5962:0x21f,_0xace726:0x1ec,_0x4cd542:0x221,_0x594fc2:0x258,_0x305cbd:0x25d,_0x5c8e37:0x269,_0x3b4556:0x25b,_0x44b7a3:0x24f,_0x5dd132:0x261,_0x57f1b9:0x298,_0x4d9ebb:0x22f,_0x36be76:0x272,_0x7a4f64:0x21c,_0x1ef1a4:0x228,_0x2c5eff:0x254,_0x389d56:0x209,_0x2b78a2:0xc3,_0x299c29:0xfc,_0xa5d35f:0xdd,_0xcf9c6c:0xaa,_0x145ee9:0xfb,_0x221b9d:0x107,_0x306c0c:0x110,_0x34bb09:0x10b,_0x2542dd:0x25c,_0x579d4f:0x291,_0x413f79:0x255,_0x5e4ae4:0x282},_0x59c0f2={_0x236b7b:0xad,_0x25ee50:0x22e},_0x1f37a3={_0x4d520f:0xc,_0x43fa8d:0xa2},_0x50bf39={'kHvZB':function(_0x47c83d,_0x1864a6){return _0x47c83d!==_0x1864a6;},'TGmwC':'cakxg','ceGWt':function(_0x539e11,_0xa1fdb5){return _0x539e11(_0xa1fdb5);},'IVrQc':'Firebase\x20A'+_0x551edc(-_0x23edeb._0x137771,-_0x23edeb._0x312a71,-_0x23edeb._0x5a97ce,-_0x23edeb._0x137771)+_0x51ea8d(-_0x23edeb._0x2ae7cb,-_0x23edeb._0x283ff7,-_0x23edeb._0x11b430,-0x25b)+'h\x20service\x20'+_0x51ea8d(-_0x23edeb._0x1938db,-_0x23edeb._0x8c8952,-0x202,-_0x23edeb._0x3ecce0)+_0x551edc(-_0x23edeb._0x3cfc59,-_0x23edeb._0x3c90fe,-_0x23edeb._0x3d11dd,-_0x23edeb._0x3d4424)+_0x51ea8d(-_0x23edeb._0x1ce3a1,-_0x23edeb._0x59a592,-_0x23edeb._0x4e0b0d,-_0x23edeb._0x48ea87)+_0x551edc(-_0x23edeb._0x32f566,-0x115,-_0x23edeb._0x1cf3dd,-_0x23edeb._0x51fcb6)+'TH','POzHo':_0x551edc(-0xeb,-_0x23edeb._0x51a820,-_0x23edeb._0x383ad3,-_0x23edeb._0x420a54)+'ountKey.js'+'on','jyQyu':function(_0x6c810f,_0x4259ab){return _0x6c810f(_0x4259ab);},'qAmur':'Firebase\x20A'+_0x51ea8d(-0x209,-_0x23edeb._0x4eeb04,-_0x23edeb._0x1024e7,-_0x23edeb._0x1ed42a)+_0x551edc(-_0x23edeb._0x51a820,-_0x23edeb._0x563366,-_0x23edeb._0x583ed6,-0xec)+'h\x20service\x20'+_0x51ea8d(-_0x23edeb._0x35f972,-_0x23edeb._0x4936e6,-_0x23edeb._0x591405,-0x1f9)+'om\x20service'+_0x51ea8d(-_0x23edeb._0x459366,-_0x23edeb._0x59a592,-_0x23edeb._0x2734f0,-_0x23edeb._0x3fd6f2)+_0x51ea8d(-_0x23edeb._0x3b8039,-_0x23edeb._0x2750f5,-_0x23edeb._0x5cb806,-_0x23edeb._0x29f9e0),'dRyju':_0x551edc(-_0x23edeb._0x4e0537,-_0x23edeb._0x11a833,-_0x23edeb._0x4155a2,-_0x23edeb._0x586510)+_0x551edc(-0xe7,-_0x23edeb._0x151926,-0xe2,-0x118)+_0x551edc(-_0x23edeb._0x1024ae,-_0x23edeb._0x3164e0,-0x126,-_0x23edeb._0x58e98d)+'h\x20Applicat'+_0x551edc(-_0x23edeb._0x4f93c1,-_0x23edeb._0x1076bb,-_0x23edeb._0x2d9ad6,-_0x23edeb._0x3906ee)+'t\x20Credenti'+_0x51ea8d(-_0x23edeb._0x201b05,-0x23e,-0x25f,-_0x23edeb._0x29eadd),'SkZMV':_0x51ea8d(-_0x23edeb._0x6ec2e9,-_0x23edeb._0x41e8ea,-0x224,-_0x23edeb._0x2a73c0)+_0x51ea8d(-_0x23edeb._0x874ba3,-_0x23edeb._0x26b2d6,-0x215,-_0x23edeb._0x3c3f64)+_0x51ea8d(-_0x23edeb._0x16671c,-_0x23edeb._0x50d592,-_0x23edeb._0x509213,-0x247)+_0x51ea8d(-_0x23edeb._0x1d9ccf,-_0x23edeb._0x5c3dff,-_0x23edeb._0x42402b,-_0x23edeb._0x55640c)};function _0x551edc(_0x3d1743,_0x68755b,_0x42a513,_0x5832ae){return _0x246485(_0x3d1743-_0x1f37a3._0x4d520f,_0x68755b-_0x1f37a3._0x43fa8d,_0x42a513- -0x107,_0x3d1743);}function _0x51ea8d(_0x184ba5,_0x23239c,_0x4973c8,_0x454c34){return _0x246485(_0x184ba5-_0x59c0f2._0x236b7b,_0x23239c-0xc8,_0x184ba5- -_0x59c0f2._0x25ee50,_0x23239c);}if(firebaseApp)return firebaseApp;try{if(_0x50bf39[_0x551edc(-_0x23edeb._0x59060,-_0x23edeb._0x5981f9,-_0x23edeb._0x46978d,-0x115)](_0x50bf39[_0x51ea8d(-0x210,-0x243,-_0x23edeb._0x4326ab,-0x229)],_0x50bf39[_0x551edc(-_0x23edeb._0x56f32c,-0x120,-_0x23edeb._0x5c2118,-_0x23edeb._0x805e2c)])){if(!_0x3e6d2b)return(-0x1*0x7c4+0x24b7+0x1*-0x1cf3,_0x3f6f06['initialize'+'FirebaseAd'+_0x551edc(-_0x23edeb._0x8d4570,-0xf8,-_0x23edeb._0x44aa70,-_0x23edeb._0x3247c7)])();return _0x4049ac;}else{const _0x3becbc=process[_0x51ea8d(-_0x23edeb._0x47aed9,-_0x23edeb._0x4f8933,-_0x23edeb._0xbef8ab,-_0x23edeb._0x355a6a)][_0x551edc(-_0x23edeb._0x5696a6,-_0x23edeb._0x328811,-_0x23edeb._0x209efb,-_0x23edeb._0x51729f)+'ERVICE_ACC'+'OUNT_PATH'];if(_0x3becbc&&fs[_0x551edc(-0xd8,-_0x23edeb._0x3b1ba6,-_0x23edeb._0x2084ee,-_0x23edeb._0x58c49f)](_0x3becbc)){const _0x4b9c3b=_0x50bf39[_0x51ea8d(-_0x23edeb._0x1b3901,-_0x23edeb._0xd1bf36,-_0x23edeb._0x3e3c42,-_0x23edeb._0x7accca)](require,_0x3becbc);return firebaseApp=admin[_0x551edc(-_0x23edeb._0x559a4b,-0x126,-0xf8,-0x11e)+_0x51ea8d(-_0x23edeb._0x48efd3,-_0x23edeb._0x162e7e,-_0x23edeb._0x1f0317,-_0x23edeb._0x4f8933)]({'credential':admin['credential'][_0x51ea8d(-_0x23edeb._0x4d2731,-_0x23edeb._0x201b05,-_0x23edeb._0x438ae3,-0x24f)](_0x4b9c3b)}),console[_0x551edc(-0xfd,-_0x23edeb._0x58ef89,-_0x23edeb._0x32f566,-_0x23edeb._0x41af23)](_0x50bf39[_0x51ea8d(-_0x23edeb._0x49a857,-_0x23edeb._0x4f8ca4,-_0x23edeb._0x509213,-_0x23edeb._0x4ca301)]),firebaseApp;}const _0x5678b5=path['join'](process[_0x51ea8d(-_0x23edeb._0x23253e,-_0x23edeb._0x477892,-_0x23edeb._0x43ffa1,-0x1d0)](),_0x50bf39['POzHo']);if(fs[_0x51ea8d(-_0x23edeb._0x2c24cc,-_0x23edeb._0x18bd41,-0x1fc,-_0x23edeb._0x50d592)](_0x5678b5)){const _0x334b63=_0x50bf39['jyQyu'](require,_0x5678b5);return firebaseApp=admin['initialize'+'App']({'credential':admin[_0x551edc(-_0x23edeb._0x2c631a,-_0x23edeb._0x15347c,-_0x23edeb._0x22955b,-_0x23edeb._0x47f684)][_0x51ea8d(-_0x23edeb._0x4d2731,-0x276,-_0x23edeb._0x156659,-_0x23edeb._0x213910)](_0x334b63)}),console[_0x51ea8d(-0x204,-_0x23edeb._0x4516c7,-_0x23edeb._0x59eca5,-0x1d2)](_0x50bf39[_0x51ea8d(-_0x23edeb._0x13a4a8,-0x206,-_0x23edeb._0x293543,-_0x23edeb._0x5ece49)]),firebaseApp;}return firebaseApp=admin[_0x51ea8d(-_0x23edeb._0x1e5962,-_0x23edeb._0xace726,-_0x23edeb._0x4cd542,-0x24d)+_0x51ea8d(-_0x23edeb._0x48efd3,-_0x23edeb._0x594fc2,-_0x23edeb._0x305cbd,-0x247)]({'credential':admin[_0x51ea8d(-_0x23edeb._0x5c8e37,-_0x23edeb._0x3b4556,-_0x23edeb._0x44b7a3,-0x29c)][_0x51ea8d(-_0x23edeb._0x5dd132,-_0x23edeb._0x57f1b9,-_0x23edeb._0x4d9ebb,-_0x23edeb._0x36be76)+_0x51ea8d(-_0x23edeb._0x7a4f64,-_0x23edeb._0x1ef1a4,-_0x23edeb._0x2c5eff,-_0x23edeb._0x389d56)]()}),console[_0x551edc(-_0x23edeb._0x2b78a2,-_0x23edeb._0x299c29,-_0x23edeb._0xa5d35f,-_0x23edeb._0xcf9c6c)](_0x50bf39['dRyju']),firebaseApp;}}catch(_0x10c223){console[_0x551edc(-_0x23edeb._0x145ee9,-_0x23edeb._0x221b9d,-_0x23edeb._0x306c0c,-_0x23edeb._0x34bb09)](_0x50bf39[_0x51ea8d(-_0x23edeb._0x2542dd,-_0x23edeb._0x579d4f,-_0x23edeb._0x413f79,-_0x23edeb._0x5e4ae4)],_0x10c223);throw _0x10c223;}};exports[_0x246485(0x20,-0x19,0xf,0x3a)+'FirebaseAd'+'min']=initializeFirebaseAdmin;const getFirebaseAdmin=()=>{const _0x4613b8={_0x39222b:0x1,_0x2c19c8:0x7,_0xe555d9:0x2a,_0x5e9372:0x34,_0x304dda:0x32,_0x322640:0x28,_0x5050d2:0x36},_0x429bd0={_0x380375:0x77,_0x470761:0xe7},_0x5c8df5={_0x525ca4:0x2b4,_0x3135ec:0x54,_0x809675:0xb6};function _0x5550de(_0x39963d,_0x5a0d00,_0x4fcc80,_0x76ecf6){return _0x14c792(_0x39963d,_0x5a0d00-_0x5c8df5._0x525ca4,_0x4fcc80-_0x5c8df5._0x3135ec,_0x76ecf6-_0x5c8df5._0x809675);}function _0x1e80d9(_0x576baa,_0x53c25e,_0x50cdad,_0x332755){return _0x246485(_0x576baa-_0x429bd0._0x380375,_0x53c25e-_0x429bd0._0x470761,_0x53c25e- -0x8,_0x332755);}if(!firebaseApp)return(0x524+0x47e+0x2*-0x4d1,exports[_0x1e80d9(_0x4613b8._0x39222b,_0x4613b8._0x2c19c8,-_0x4613b8._0xe555d9,0x41)+_0x1e80d9(-_0x4613b8._0x5e9372,-_0x4613b8._0x304dda,-_0x4613b8._0x322640,0x8)+_0x5550de(_0x4613b8._0x5050d2,0x1a,0x38,0x35)])();return firebaseApp;};exports[_0x14c792(-0x28b,-0x287,-0x29f,-0x293)+_0x14c792(-0x23f,-0x25e,-0x223,-0x295)]=getFirebaseAdmin;const getMessaging=()=>{const _0x200cdb={_0x4f87b2:0x97,_0x1bfece:0x95,_0x52b38b:0xbd,_0x3dc15f:0xb4,_0x1957bd:0x3,_0x5c6f58:0x2,_0x548813:0x4a,_0x3c6682:0x23,_0x3da4cd:0xbf,_0x412b08:0xc8,_0x3a99fe:0xe2,_0x5478a0:0x10e},_0x457ee4={_0x28c125:0x23,_0x140a3b:0x14c},_0x3507a4={_0x35ab7c:0x11,_0xb7142b:0xa8};function _0x50b5d1(_0x701c8a,_0x5aafdd,_0x51e91d,_0x5a5fc0){return _0x246485(_0x701c8a-0x12c,_0x5aafdd-_0x3507a4._0x35ab7c,_0x51e91d- -_0x3507a4._0xb7142b,_0x5aafdd);}function _0xf7cdef(_0x367528,_0x434bad,_0x7c428b,_0x149520){return _0x246485(_0x367528-_0x457ee4._0x28c125,_0x434bad-_0x457ee4._0x140a3b,_0x149520- -0x37,_0x367528);}const _0x20fc1f=(0x1f05+-0x135+-0x9f*0x30,exports[_0x50b5d1(-_0x200cdb._0x4f87b2,-_0x200cdb._0x1bfece,-_0x200cdb._0x52b38b,-_0x200cdb._0x3dc15f)+_0xf7cdef(-_0x200cdb._0x1957bd,-_0x200cdb._0x5c6f58,-_0x200cdb._0x548813,-_0x200cdb._0x3c6682)])();return admin[_0x50b5d1(-_0x200cdb._0x3da4cd,-_0x200cdb._0x412b08,-_0x200cdb._0x3a99fe,-_0x200cdb._0x5478a0)](_0x20fc1f);};exports['getMessagi'+'ng']=getMessaging;const getFirestore=()=>{const _0x377d2f={_0x1f25a3:0x2a1,_0x449be2:0x29b,_0x159172:0x294,_0x30c9f7:0x281,_0x351f86:0x2c8,_0x556d31:0x2d0,_0x26f1d6:0x2e9,_0x1cd885:0x2da},_0x2cb9a2={_0x4ba3f5:0x1e8,_0x31563e:0x1e0},_0x589350={_0x4a3470:0x22b,_0x53b490:0x76,_0xb9cac4:0xe};function _0x5f2a9c(_0x49d9e2,_0x5396db,_0x37a3ef,_0xcd4ca5){return _0x14c792(_0xcd4ca5,_0x49d9e2-_0x589350._0x4a3470,_0x37a3ef-_0x589350._0x53b490,_0xcd4ca5-_0x589350._0xb9cac4);}function _0x4dcb2d(_0x189c71,_0x3db3b8,_0x1a7d74,_0xd63245){return _0x246485(_0x189c71-_0x2cb9a2._0x4ba3f5,_0x3db3b8-_0x2cb9a2._0x31563e,_0xd63245- -0x295,_0x1a7d74);}const _0x470142=(0x1f2e+-0x18c9+0x1*-0x665,exports['getFirebas'+_0x4dcb2d(-_0x377d2f._0x1f25a3,-_0x377d2f._0x449be2,-_0x377d2f._0x159172,-_0x377d2f._0x30c9f7)])();return admin[_0x4dcb2d(-_0x377d2f._0x351f86,-_0x377d2f._0x556d31,-_0x377d2f._0x26f1d6,-_0x377d2f._0x1cd885)](_0x470142);};exports[_0x246485(-0x24,-0x67,-0x3c,-0x4b)+'re']=getFirestore,exports[_0x14c792(-0x254,-0x273,-0x27b,-0x24c)]={'initializeFirebaseAdmin':exports[_0x14c792(-0x23a,-0x263,-0x25b,-0x274)+_0x14c792(-0x262,-0x29c,-0x2a9,-0x28b)+_0x246485(-0x57,-0x59,-0x28,-0x62)],'getFirebaseAdmin':exports[_0x14c792(-0x2b2,-0x287,-0x2a3,-0x263)+_0x246485(-0x1a,0xc,0x14,-0x24)],'getMessaging':exports[_0x14c792(-0x24f,-0x242,-0x258,-0x23d)+'ng'],'getFirestore':exports['getFiresto'+'re']};
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Notification Hook for Claude Code
|
|
5
|
+
*
|
|
6
|
+
* CURRENTLY DISABLED - Coming Soon
|
|
7
|
+
*
|
|
8
|
+
* This hook will send push notifications to mobile devices when Claude Code
|
|
9
|
+
* needs user attention (e.g., idle >60s, permission requests).
|
|
10
|
+
*
|
|
11
|
+
* Disabled due to FCM service account security concerns when distributing
|
|
12
|
+
* the backend as an npm package. Will be re-enabled once notification
|
|
13
|
+
* architecture is finalized (cloud relay, Expo push service, or MQTT-based).
|
|
14
|
+
*
|
|
15
|
+
* Communication Flow (when enabled):
|
|
16
|
+
* 1. Receives notification event from Claude via stdin
|
|
17
|
+
* 2. Reads session-to-project mapping from sessions.json
|
|
18
|
+
* 3. Gets all device tokens registered for that project
|
|
19
|
+
* 4. Sends "needs attention" notifications to devices via backend API
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
// Exit immediately - feature disabled
|
|
23
|
+
process.exit(0);
|
|
24
|
+
|
|
25
|
+
/* DISABLED CODE BELOW - DO NOT USE UNTIL NOTIFICATION ARCHITECTURE IS FINALIZED
|
|
26
|
+
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// EVERYTHING BELOW THIS LINE IS COMMENTED OUT
|
|
29
|
+
// ============================================================================
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
|
|
33
|
+
const fs = require('fs');
|
|
34
|
+
const path = require('path');
|
|
35
|
+
|
|
36
|
+
// Load environment variables from .env file in hooks folder (silent mode)
|
|
37
|
+
require('dotenv').config({ path: path.join(__dirname, '.env'), quiet: true });
|
|
38
|
+
|
|
39
|
+
// ============================================================================
|
|
40
|
+
// Configuration
|
|
41
|
+
// ============================================================================
|
|
42
|
+
|
|
43
|
+
// Sessions.json is in .claude folder (same folder as hooks folder)
|
|
44
|
+
// Hook runs from $CLAUDE_PROJECT_DIR/.claude/hooks, so go up 1 level to .claude
|
|
45
|
+
const SESSION_MAPPING_FILE = path.join(__dirname, '..', 'sessions.json');
|
|
46
|
+
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Helper Functions
|
|
49
|
+
// ============================================================================
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Logs to stderr (so it doesn't interfere with stdout JSON output)
|
|
53
|
+
*/
|
|
54
|
+
function log(message, data = null) {
|
|
55
|
+
const timestamp = new Date().toISOString();
|
|
56
|
+
const logMsg = data
|
|
57
|
+
? `[${timestamp}] [NotificationHook] ${message}: ${JSON.stringify(data)}`
|
|
58
|
+
: `[${timestamp}] [NotificationHook] ${message}`;
|
|
59
|
+
console.error(logMsg);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Reads session-to-project mapping from sessions.json
|
|
64
|
+
* Returns projectId for given sessionId
|
|
65
|
+
*/
|
|
66
|
+
function getProjectIdFromSession(sessionId) {
|
|
67
|
+
try {
|
|
68
|
+
if (!fs.existsSync(SESSION_MAPPING_FILE)) {
|
|
69
|
+
log('Session mapping file not found', { path: SESSION_MAPPING_FILE });
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const data = fs.readFileSync(SESSION_MAPPING_FILE, 'utf8');
|
|
74
|
+
const mapping = JSON.parse(data);
|
|
75
|
+
|
|
76
|
+
if (mapping[sessionId]) {
|
|
77
|
+
log('Found project ID for session', { sessionId, projectId: mapping[sessionId] });
|
|
78
|
+
return mapping[sessionId];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
log('Session ID not found in mapping', { sessionId });
|
|
82
|
+
return null;
|
|
83
|
+
|
|
84
|
+
} catch (error) {
|
|
85
|
+
log('Error reading session mapping', { error: error.message });
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Reads JSON input from stdin
|
|
92
|
+
*/
|
|
93
|
+
function readStdin() {
|
|
94
|
+
return new Promise((resolve, reject) => {
|
|
95
|
+
let data = '';
|
|
96
|
+
|
|
97
|
+
process.stdin.setEncoding('utf8');
|
|
98
|
+
|
|
99
|
+
process.stdin.on('data', (chunk) => {
|
|
100
|
+
data += chunk;
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
process.stdin.on('end', () => {
|
|
104
|
+
try {
|
|
105
|
+
const parsed = JSON.parse(data);
|
|
106
|
+
resolve(parsed);
|
|
107
|
+
} catch (error) {
|
|
108
|
+
reject(new Error(`Failed to parse stdin JSON: ${error.message}`));
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
process.stdin.on('error', (error) => {
|
|
113
|
+
reject(new Error(`Error reading stdin: ${error.message}`));
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Sends notification to all devices registered for the project
|
|
120
|
+
* Uses the sendNotificationWithPreferenceCheck API from the backend
|
|
121
|
+
*/
|
|
122
|
+
async function sendNotificationsToDevices(projectId, notificationMessage) {
|
|
123
|
+
try {
|
|
124
|
+
// Import the backend notification module
|
|
125
|
+
// Path from hooks folder: ../src/notifications/sender.ts
|
|
126
|
+
const senderPath = path.join(__dirname, '..', 'src', 'notifications', 'sender.js');
|
|
127
|
+
const tokenManagerPath = path.join(__dirname, '..', 'src', 'notifications', 'token-manager.js');
|
|
128
|
+
|
|
129
|
+
// Check if compiled JS files exist (TypeScript backend needs to be compiled)
|
|
130
|
+
if (!fs.existsSync(senderPath) || !fs.existsSync(tokenManagerPath)) {
|
|
131
|
+
log('Backend notification modules not found - TypeScript may not be compiled', {
|
|
132
|
+
senderPath,
|
|
133
|
+
tokenManagerPath
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// Try to require from dist folder if it exists
|
|
137
|
+
const distSenderPath = path.join(__dirname, '..', 'dist', 'notifications', 'sender.js');
|
|
138
|
+
const distTokenManagerPath = path.join(__dirname, '..', 'dist', 'notifications', 'token-manager.js');
|
|
139
|
+
|
|
140
|
+
if (!fs.existsSync(distSenderPath) || !fs.existsSync(distTokenManagerPath)) {
|
|
141
|
+
log('Compiled backend modules not found in dist folder either');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const { sendNotificationWithPreferenceCheck } = require(distSenderPath);
|
|
146
|
+
const { getDeviceTokensByProject } = require(distTokenManagerPath);
|
|
147
|
+
|
|
148
|
+
// Get all devices registered for this project
|
|
149
|
+
const deviceTokens = getDeviceTokensByProject(projectId);
|
|
150
|
+
|
|
151
|
+
if (!deviceTokens || deviceTokens.length === 0) {
|
|
152
|
+
log('No devices registered for project', { projectId });
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
log('Sending notifications to devices', {
|
|
157
|
+
projectId,
|
|
158
|
+
deviceCount: deviceTokens.length
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// Send notification to each device with preference check
|
|
162
|
+
const notificationPromises = deviceTokens.map(async (device) => {
|
|
163
|
+
return sendNotificationWithPreferenceCheck(
|
|
164
|
+
device.deviceId,
|
|
165
|
+
'needsAttention',
|
|
166
|
+
{
|
|
167
|
+
title: 'Claude Code Needs Attention',
|
|
168
|
+
body: notificationMessage || 'Claude is waiting for your input',
|
|
169
|
+
data: {
|
|
170
|
+
type: 'needsAttention',
|
|
171
|
+
projectId,
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
{ priority: 'high' }
|
|
175
|
+
);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
const results = await Promise.allSettled(notificationPromises);
|
|
179
|
+
const successCount = results.filter(r => r.status === 'fulfilled' && r.value.success).length;
|
|
180
|
+
|
|
181
|
+
log('Notification sending completed', {
|
|
182
|
+
total: deviceTokens.length,
|
|
183
|
+
successful: successCount,
|
|
184
|
+
failed: deviceTokens.length - successCount
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Use regular path if compiled files exist
|
|
191
|
+
const { sendNotificationWithPreferenceCheck } = require(senderPath);
|
|
192
|
+
const { getDeviceTokensByProject } = require(tokenManagerPath);
|
|
193
|
+
|
|
194
|
+
// Get all devices registered for this project
|
|
195
|
+
const deviceTokens = getDeviceTokensByProject(projectId);
|
|
196
|
+
|
|
197
|
+
if (!deviceTokens || deviceTokens.length === 0) {
|
|
198
|
+
log('No devices registered for project', { projectId });
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
log('Sending notifications to devices', {
|
|
203
|
+
projectId,
|
|
204
|
+
deviceCount: deviceTokens.length
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// Send notification to each device with preference check
|
|
208
|
+
const notificationPromises = deviceTokens.map(async (device) => {
|
|
209
|
+
return sendNotificationWithPreferenceCheck(
|
|
210
|
+
device.deviceId,
|
|
211
|
+
'needsAttention',
|
|
212
|
+
{
|
|
213
|
+
title: 'Claude Code Needs Attention',
|
|
214
|
+
body: notificationMessage || 'Claude is waiting for your input',
|
|
215
|
+
data: {
|
|
216
|
+
type: 'needsAttention',
|
|
217
|
+
projectId,
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
{ priority: 'high' }
|
|
221
|
+
);
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
const results = await Promise.allSettled(notificationPromises);
|
|
225
|
+
const successCount = results.filter(r => r.status === 'fulfilled' && r.value.success).length;
|
|
226
|
+
|
|
227
|
+
log('Notification sending completed', {
|
|
228
|
+
total: deviceTokens.length,
|
|
229
|
+
successful: successCount,
|
|
230
|
+
failed: deviceTokens.length - successCount
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
} catch (error) {
|
|
234
|
+
log('Error sending notifications', {
|
|
235
|
+
error: error.message,
|
|
236
|
+
stack: error.stack
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// ============================================================================
|
|
242
|
+
// Main Execution
|
|
243
|
+
// ============================================================================
|
|
244
|
+
|
|
245
|
+
async function main() {
|
|
246
|
+
try {
|
|
247
|
+
log('Notification hook started');
|
|
248
|
+
|
|
249
|
+
// Read hook input from stdin
|
|
250
|
+
const hookInput = await readStdin();
|
|
251
|
+
log('Received hook input', hookInput);
|
|
252
|
+
|
|
253
|
+
// Validate hook event
|
|
254
|
+
if (hookInput.hook_event_name !== 'Notification') {
|
|
255
|
+
log('Not a Notification event, ignoring', { event: hookInput.hook_event_name });
|
|
256
|
+
process.exit(0);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Validate required fields
|
|
260
|
+
if (!hookInput.session_id || !hookInput.message) {
|
|
261
|
+
throw new Error('Missing required fields in hook input (session_id or message)');
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
// Get project ID from session mapping file
|
|
265
|
+
const projectId = getProjectIdFromSession(hookInput.session_id);
|
|
266
|
+
|
|
267
|
+
// If session is not in sessions.json, this is a native Claude Code session
|
|
268
|
+
// (not managed by CCC backend). Skip notification.
|
|
269
|
+
if (!projectId) {
|
|
270
|
+
log('Session not found in sessions.json - this is a native Claude Code session');
|
|
271
|
+
log('Skipping notification (no mobile devices registered)');
|
|
272
|
+
process.exit(0);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
log('Resolved project ID', { projectId });
|
|
276
|
+
|
|
277
|
+
// Send notifications to all devices
|
|
278
|
+
await sendNotificationsToDevices(projectId, hookInput.message);
|
|
279
|
+
|
|
280
|
+
// Exit successfully
|
|
281
|
+
log('Notification hook completed successfully');
|
|
282
|
+
process.exit(0);
|
|
283
|
+
|
|
284
|
+
} catch (error) {
|
|
285
|
+
log('Hook execution failed', { error: error.message, stack: error.stack });
|
|
286
|
+
|
|
287
|
+
// Exit with 0 even on error (don't block Claude Code execution)
|
|
288
|
+
process.exit(0);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// Handle process signals
|
|
293
|
+
process.on('SIGINT', () => {
|
|
294
|
+
log('Received SIGINT, exiting');
|
|
295
|
+
process.exit(0);
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
process.on('SIGTERM', () => {
|
|
299
|
+
log('Received SIGTERM, exiting');
|
|
300
|
+
process.exit(0);
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
// Run the hook
|
|
304
|
+
main();
|
|
305
|
+
|
|
306
|
+
END OF DISABLED CODE */
|