var vip = 'cursor';
'use strict';
function _0x56bd(_0x5c6adf, _0x2aec85) {
  const _0x4ff48f = _0x4ff4();
  _0x56bd = function (_0x56bd90, _0x412597) {
    _0x56bd90 = _0x56bd90 - 0x107;
    let _0x4776f4 = _0x4ff48f[_0x56bd90];
    if (_0x56bd.ZJZefS === undefined) {
      var _0x46e223 = function (_0x4ddeef) {
        let _0x34ef1e = '';
        let _0x4ea471 = '';
        let _0x12b399 = 0x0;
        let _0x40e8b7;
        let _0x5a3ef0;
        for (let _0x2feb42 = 0x0; _0x5a3ef0 = _0x4ddeef.charAt(_0x2feb42++); ~_0x5a3ef0 && (_0x40e8b7 = _0x12b399 % 0x4 ? _0x40e8b7 * 0x40 + _0x5a3ef0 : _0x5a3ef0, _0x12b399++ % 0x4) ? _0x34ef1e += String.fromCharCode(0xff & _0x40e8b7 >> (-0x2 * _0x12b399 & 0x6)) : 0x0) {
          _0x5a3ef0 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/='.indexOf(_0x5a3ef0);
        }
        let _0x370a5 = 0x0;
        for (let _0x201ea2 = _0x34ef1e.length; _0x370a5 < _0x201ea2; _0x370a5++) {
          _0x4ea471 += '%' + ('00' + _0x34ef1e.charCodeAt(_0x370a5).toString(0x10)).slice(-0x2);
        }
        return decodeURIComponent(_0x4ea471);
      };
      const _0x4736c1 = function (_0x343f73, _0x40717f) {
        let _0x5a8ee0 = [];
        let _0x67147f = 0x0;
        let _0x11f2b9;
        let _0x3ddb74 = '';
        _0x343f73 = _0x46e223(_0x343f73);
        let _0x3e5510;
        for (_0x3e5510 = 0x0; _0x3e5510 < 0x100; _0x3e5510++) {
          _0x5a8ee0[_0x3e5510] = _0x3e5510;
        }
        for (_0x3e5510 = 0x0; _0x3e5510 < 0x100; _0x3e5510++) {
          _0x67147f = (_0x67147f + _0x5a8ee0[_0x3e5510] + _0x40717f.charCodeAt(_0x3e5510 % _0x40717f.length)) % 0x100;
          _0x11f2b9 = _0x5a8ee0[_0x3e5510];
          _0x5a8ee0[_0x3e5510] = _0x5a8ee0[_0x67147f];
          _0x5a8ee0[_0x67147f] = _0x11f2b9;
        }
        _0x3e5510 = 0x0;
        _0x67147f = 0x0;
        for (let _0xf4f8d = 0x0; _0xf4f8d < _0x343f73.length; _0xf4f8d++) {
          _0x3e5510 = (_0x3e5510 + 0x1) % 0x100;
          _0x67147f = (_0x67147f + _0x5a8ee0[_0x3e5510]) % 0x100;
          _0x11f2b9 = _0x5a8ee0[_0x3e5510];
          _0x5a8ee0[_0x3e5510] = _0x5a8ee0[_0x67147f];
          _0x5a8ee0[_0x67147f] = _0x11f2b9;
          _0x3ddb74 += String.fromCharCode(_0x343f73.charCodeAt(_0xf4f8d) ^ _0x5a8ee0[(_0x5a8ee0[_0x3e5510] + _0x5a8ee0[_0x67147f]) % 0x100]);
        }
        return _0x3ddb74;
      };
      _0x56bd.CwZZIb = _0x4736c1;
      _0x5c6adf = arguments;
      _0x56bd.ZJZefS = true;
    }
    const _0x40b8b2 = _0x4ff48f[0x0];
    const _0x5a5850 = _0x56bd90 + _0x40b8b2;
    const _0x1fb5f1 = _0x5c6adf[_0x5a5850];
    if (!_0x1fb5f1) {
      if (_0x56bd.AZcNUm === undefined) {
        _0x56bd.AZcNUm = true;
      }
      _0x4776f4 = _0x56bd.CwZZIb(_0x4776f4, _0x412597);
      _0x5c6adf[_0x5a5850] = _0x4776f4;
    } else {
      _0x4776f4 = _0x1fb5f1;
    }
    return _0x4776f4;
  };
  return _0x56bd(_0x5c6adf, _0x2aec85);
}
function _0x4ff4() {
  const _0x599248 = function () {
    return [vip, 'lcJurhsyyoYrjMKeLFMLOtOHwSRWUyPP==', 'xCosW60VWPJcO1tdU8k/W6LSrmokW5aXfCoIkCooW44', 'W7tcRx4iWOa', 'i8oeDSoLzSknntVcPCkkDW', 'W4/cP8kCydW', 'xgdcGmkJW7m', 'A8k7tq', 'nmoApbnM', 'xmkLW4PSCxpcOtJcHmo8', 'W4CuW4lcOSoZWQzNW6pcPtVdQmkD', 'vb5QW7TYlq5Po8kxWQPumSoMvSkaWR0XWR7cO8oJ', 'puXhmSoDg8kav8kPECoChqtdLIat', 'W5BcI38hWOO', 'kvDbjmoFh8kmuCkTymoy', 'WPtdNNzVW4y', 'W4q9WQ5NWQXJeSofW7NcNmkHrbW9W5vg', 'WQdcQc9UW6ZdKmo7hSohqCkdiSkYWPbwfmo3wSospILT', 'W6P9W73dNmo/', 'W4xcK2eRWRy', 'lIr2WRtdGW', 'DtZdImomWRT+W7zspKThWQruW6yIW69XxCoDk8ktWRa', 'WOdcGhZcKSkK', 'WRJdGeZdNrC', '5Rgq5P6l5yEY5ywS5PY26zQy', 'gSk5jCoIWQa', 'lSk1WPv8WRnqW5aLW5VcKeKgWO3dV2/cGvtdQua', 'gsHmWQtdGmkYhLm', 'c3uXW7/cHG', 'j8kOj8ouWPa', 'W7ORW4TgWRS', 'WP/dHZjHna', '5O2z5P+N56cb5PEJ5PEh', 'hSoWCCoSqa', 'wg3cHCkbW5O', 'vuFcUSk8W54', 'W48fh8o8W70', '5O2d5P2Y56o45PEh5Ps7', 'hCocbJPWW7xdSa', 'xdFdSuur', 'ymkXxG', 'b8opqmkcWRtdQG', 'aZKUW5NcNh7dSmoCW5VdQSotW6rHW77dI8oq', 'W4ldSv7cMa', 'W5O5WR8', 'pCkacSoTdW', 'pKlcOH19', '5RgY5yAa54kXFSo7WQBLRjlMLjJMGOlMOQhMNltNUOlOVjS', 'c3ibW4lcPW', 'WRJdJKNdIr1lBf3cHSo8W5NcGNCdWRuU', 'W47cSv4uWQC', 'WRlcJg/cOqe', 'mSoaC8oevW', 'qCooW5zh', 's8oxW7S9WOpcThhdUSkXWQbSB8ooW5G3bCovcSoBW5K', 'WPNcIIyLD8oYBmoHfCo+WOG', 'WOxcGfxcOahdGqxdPSoUWOfMW7/dK8kWq8ozW5xdSSo9sKqaW4q', 'WR3dG8o+W6RcV3xdLG', 'jSoNDmk5WPi', 'xSkmW7T1xa', 'fCo5iGrR', 'W65YW6xdOmov', 'qvDTq8kf', 'd8obvq', 'WQFdSSk/gSkK', 'WOldGM5uW4O', 'k8kjlmorWRy', 'j2ygW4JcGh/dUmoBW5tdPmkwW49TW7ZdMG', 'W7lcPSkltrtdMx8', 'z2mCcdS', 'y01CF8km', 'sCo2W495W7W', 'fc9DWQBdLmk7hG', 'W53cTL4IWOC', 'WPFdKSkdnSkIW4hcHcTh', '6i+05y6t55sQ6ysy5AAA6lsM', 'W7yiWP9oWOfsia', 'osKxuxe', 'W5iPfSo6W54bW7uCW78', 'W5iDW5TSWQKsrSkWW4NdPW', 'hYG2uvnLW4S/pruTW7SvWOGMWRpcStRcOXhdTCofW4ecWRldVCoPW4TuWPGS', '5O6Z5y2t5AsX6lsM', 'cqmFWQvT', 'WQxcQf3cS8kU', 'mCkEpmoxbq', 'jHemWR9zx8oPWOXeFYm95yIW5BMY5AAh5lQK5PER5lMD', 'BCooW6uUWRm', 'WQ/cU0JcLmky', '6k605ysn5R+c5RES5OYJ5P2a56kN', 'WP7dTX8', 'WRtcQ8khW5RcReWMwxK', 'xmotW5zDW6mlkSoVW7yRWOikWQ0', 'afmNiJL2n8kIgG0ljmo7iCk0ytC4W7ZdT8oUpSotW6/cUMlcL8kTBWBcLCk3WOVdKr0NWRO', 'xYLFWRZcMSk1dLlcS8kyWPWuCLWHDvzpp8oMWOyxtSkdWPm7pgqCWQnItsJcVmoYWOThW5C', 'W401gSo8W5i', 'WO7dL2HSW7GzWRj6B8kWWQyuWOZdRdJcICo+', 'WRVcOfJcQ8k5', 'h2aDW6tcNNddPColW6ZdOSkbW5fHW73dGmoq', 'b8oDA8o0Amkt', 'kL5ij8olh8kR', '5RIw55go5AAC6lsbvSoN', 'W7NdOexcIMHZWRtdNJymsCky', 'CMyNkWnQlCoaW4STW4Dk6AEV5QYn5zkm55wO77YI5lUk5AAF5lQE5Og25AsQ5BQD5ywR55MdWOLZwIFdP2NcM8ksW63cKqZMLydKU4K', 'C3nIBCkm', 'dYT1WP7dOa', 'fCoiW4hdVSkHW4ayWO9oiq', 'W6vqW5ddGmok', 'WP/cLJK', 'W78lW59MWQeOxmk6WP3cR8kXWOZcTa', 'hSkUdmo6', 'W7hcJCkkqIy', 'bmklW5yzWQXI', 'ALaGkH93', 'pCochZ91', 'WRldTSoVWPpdLa', 'yCkXW5Loza', 'W6JcV8kgxa/dVKVcVN1EDSkQW75+wW', '5P+B5OU85yMB', 'W7pdMwxcKxO', 'W6e3W716WOW', 'qvFcMmkDW6BcVSk2Ar1eWPJdPCoHWP/cS8o7CvldVmk1lM50W43LIyZMLjdLP53OTQaA'].concat(function () {
      return ['jHemWR9zx8oPWOXeFYm9FmofW4KAtoImNowmIoI1P+w+GUwLMoI1TG', 'WORcQ1FcOb8', 'WP3dRqW', 'Dmk9tCoiW6O1omkkFWVdUbG', 'WO/cUCkYW6BcUW', 'WQfxWR5EkW', 'zHD7', 'WP9yWO1On0hcMvDvWRJdJu0', 'WPxcQ1dcQCkPk8owWP5Xz8oxECkZ', 'wxxcQmkeW5W', 'WQBdICopWR7dQ0TIW4PuW6tdTMK', 'yNrlAW', 'B8opW4K1WRK', 'DK7cQSkOW5K', 'W7BdOK3cJwu', 'iJeyWQ5cvCo/WP9dyG1YwCoyW6eTba', 'DLu9kGrioSoJW4OJW70p', 'WQjeW5CWWR5Rhq', 'jSk6lmobcG', 'W64BW4XXWQiZqSkJW5lcRmk8W4NdRW', 'udv+W6DLlHLTjSkFWPay5lYO55AD55sB5OUw6yAD57YZ55MFW7ddK8otBSoWW5JcQXFOTkZLV7K2', 'W78lW5jTWQWLzCk4W5pdPSk4W5S', 'tSopW4K', 'W7dcIMeG', 'q8ogrSkbWQ3dT2LsthdcMCoSvmoHhSkQWRdcLCoVkmo5W5jxma', '5Qo55RAw54Iv5OcE5As06lsL', 'ngyEW6ZcG3tdO8oCW4pcQCkxW4D+W5BdI8ovFSk6aSkGCa', 'WPxcS17cTmk5cSowWR51B8oeFW', 'umoGWOVcGe3cI8kTWQLWBmoDcSkXbmoMCr8bgmo3tW', 'WPtdJ8kyma', 'WO7dH29UW782WQ9RumkZWR0eWOtdTZ/cLq', 'oCkLWOTQWRfhW6uIW5BdLGSeWO/dTg7cILxdS00btZfvW5JcI8kdoW', 'WOxdTColW77cKq', 'WRJdKr9+lq', 'WQ3cSCkmW4C', 'W5aFW57cVSoVWQDQ', 'FYrHW4zh', 'WRJdK8oUW6RcOMJdKCk/Aq', 'CxHZxmkpdYFdK8kwe8oXW6RMIAZLIy9jW57dHmo7tCo/WR7cNoElIUADP0S', '5BEy5zcu55sU', 'lSohCmoP', 'W705W5NcV8o1WQD2W5BcUJhdM8oj5Rg+5ys/6koJ5PQB5PwD5AA/6ls577YX6z2j6kAr566O55k95zod5PYd6zQh776n77+h5BAm6lw86l2z', 'W7NcQ2WcWRa', 'W7zPW4RdUCoi', 'l8k+WPvWWRbEW7CUW4ZdNq', 'kSofW4ldUSkx', '5O2L5yYJ5AsB6lAd', 'W4xcLM0GWQxdLCoQdCorba', 'WQldJg90W5WJWRX6C8kLWO0wWP8', 'W77cOmkQBsi', 'kSkMWQLxWQ4', 'WOtdQCoDWQ7dIa', 'cCoiW47dU8k6W48UWOu', 'nmoDASoV', 'gJOwmWO', 'iSoOaszIW7FdPY5lFgpcI+MNM+ASN+wsP+ExTE+8HEs5GEwNLos6GEAdREwMQ+w6OowhOoEyQcSWWQPWz8oqWQldVJfyW6RMLPZKUQa', 'fCokDmkSWO0', 'WO1jWOTahW', 'WQddNSohWRC', 'gxJcVqv3', 'WRf3WRzlfG', 'cKdcPsjp', 'WQxdLu1iW7u', 'CMnuxmkl', 'e8o/W4VdMSkm', 'ymoLWPxcMLy', 'W4rSW5xdGCo1', 'WPtcIsaP', 'hbKubIrvnSk+hH8WeG', 'WRZcHxhcSJC', 'rI9oWRCpWOlcQ8oKWRWOW58', 'wCoXWRVcUue', 'W47cTNWAWPu', '44cr6k2I5yAX5A2/5ywk5yAk6zsqW7TCt8oghmkPjSk05yAt6k68', 'gSo6FmksWOW', 'qCkUdmoGW6PYWP0gWQi6gCk8a8kNWR7dNCoe', 'F8o3W48yWRBcHwu', 'DWBdMfW+', 'BNxcOmkkW40', 'zmk1xSofW50', 'WQXFWOfMbG', 'x8ojW4HfW68', 'W70BW41Q', 'D8kHwCoo', 'y3lcNCkDW48', 'WOVdNmobWQNdMw9RW5X0W7ZdV28', 'oqG+WRXU', 'WR7dMhRdJGG', 'nCoeW77dVCkj', 'W5yTW4TWWR4UqmkbW4/dRCkkWOZKV6NNLO9WW7TyWRGmWRRcOMj0bmoNfCkc6iYw5y6z54Ul5PYvma', 'pmoCv8kuWRNdJdWbxglcQ8oKaSk/', 'W6GRW67cO8oZ', 'WPxdJSkqoSk0W7lcJs1begRcIhuqrCo9', 'jWGpfa', 'WPVdRqjN', 'evnpkmoAh8k6ySkPymoUeqVdKIirimkIxmkiAGq8WRu', 'WONdK8kvomkPW77cGW', 'WPbYWOXvahXiv8o8zSk/k8okW5vMW43cIdLHxYDFwSo7CtzDWRpdPqjp', 'W5RcQCkDubS', 'FmkwW7vrtW', 'W74deCo6W6CCW7GhW7r8', 'W73cJSk8Fca', 'WP7dSu5SW6C', 'jauufZf0amk5daOY', 'pSkhWOnlWQC', 'WPNdKMBcGWFdNtldSCo9WOeVW4RdICk1sCoe', 'W4iUeCoOW54w', 'hSo8dc5i', 'tNWQgau', 'rmodW6PGW4K', 'fCocESkXWR8', 'h8k3WPfBWO4', 'wu90r8ksbZZdPCkD', 'g8oyDSo0C8kSaZZcT8kFDxG', 'tSoqW40LWO4', 'W4JcU8k6zc8', 'xmoiW5eAWRq', 'E8oTWQhcV1e', 'p8kNdCox', 'WRFdNCoitta', 'mmoFpZT2'].concat(function () {
        return ['kCk1WO1TWRDBW4mKWOZdLfCiWOa', '6i2x5y2R5yAD5zcx5AEG6lAu', 'WQ3cPKxcImk6kCoJWR9PFSogAmkVkLDRW7veW4hcVJaKWPWw', 'WRtcJmk/W4FcVW', 'WPrwWPXtjhXiBmoSBmkmAmo2W6PGW57cJb0YvJTt', 'mmoACmoQ', 'p8oseG5q', 'WORdP3vXW7W4WQ9EDmk5WPjxWRNdTZBcGCo8WPpdNSk6W6JdMmkHWRxcRMZdGJdcPCoKtG', 'WPHlWOD3m2dcLrvAWPJdM01u', 'WQRcU8kwW5RcUvKQ', 'WOBcRSkvW4xcSv0Uq3FcHNfLW5ZdKmorWOlcGWNdGW', 'wXDjW71z', 'CCoaWRtcKhS', 'mG9/WQ/dUG', 'yCoxW6XyW6C', 'W73cGhW', 'W7NcR8kdxH0', 'iJOyWQnoxmo+WO5tyXTPzSoPW6mXbCofWRVdGwi', 'W4ldSvJcJNvq', 'wwhcN8kCW7RcOW', 'fuhcGcv2', 'uY9k', 'WQpdHw5NW6a6WP93CSkZWRW', 'WR3cKZS0ECoS', 'W4xdV1RcGfPxWR3dIbyuqmkE', 'W40DbCoeW6q', 'nCkycSoGWRzUWOC3WQiWA8o/bCkHWQldGmoxW6RcPhZcU8oXWQu+tEAyPoAvKEwNP+I2Uhe', 'smopW5HBW6a', 'WQv5WO9HmG', 'sSkOW4b8yhpcGq', 'WOldISk9lCke', '5PUa5PE66ywZ57615AwF6lEe', 'WRpcIJmwWP8', 'eYGW', 'dYOTvL9/W5KVkbbUW60sWOKBWQZcVXlcQa', 'WOxdHCkylSkLW4lcTJfmga', 'nIq6WRTc', 'W4muW5O', 'hmothsDLW6VdHGDxCa', 'WRhdJmooAZG', 'WOddO1rpW54', 'w0a0kXv2n8oeW5yPW78e', 'WO/dR8oBWQJdNK18W791W7ldHsPPWRfuk8kyW740W49oWROdWQGFW6/cR8kBw8kX', 'nSkrdmoyWPy', 'EafIW6f1ktLyoCkrWQrwpSoBva', 'WQRdMfZdRrC', 'WPldVCoDWQNdIq', 'k3bjf8oN', 'iZ4RteHYW7i+', 'gdWWqW', '5PEZ5Owx5O+p5y+t5BAE5zoO55sU77276k645ysK56A455EL5zcF5ywl5PIz5O+J5OYQ5PYD56ge', '5P2g5zMI56oo6yAN572R5OIT5yQr776T', 'ESotWP7cOLu', 'saVdMfyFWQH0jZ0dzmoT5l2U55EUW43dL8oXFGysvgPyFKRdKehOJ5FLJB3NI7/MNAJcGW', 'quS3idy', 'h2StW6FcIN3dSSoPW5/dS8kWW5D6W6hdGCorrCkScCkhFCo/WQlcL8kqo00', 'W5HpW6JdPCo2', 'WQNdKCooycPL', 'W705W5NcV8o1WQD2W5BcUJhdM8ojW7VdKSoOb8keW6b5uc0W5PAo5lMn5BwP5PQ05PwN', 'nJfKW7RcKW', 'nCkycSoGWRzUWOC3WQiWA8o/iCkNWQtdHSotWQ3cQt3cOSo2WRLWcmkIWPpcUCoVCq', 'ChVcHmkb', 'W7xdM2hcGwq', 'WRVcLcSgwq', 'W6FdM3H5W5VcISktWOhcQa', 'rJPkWReg', 'C8kzW4PyDq', 'WPZdO8o9WO7dVN1dW65vW5BdNvHHWOzZgW', 'WOlcVXqXWPC', '6l+35O6a5P2F5yU45zIy5As06lw6', 'cSk4c8okfSo7W4BcM8kqW43cIce', 'DuZcN8kiW5a', 'cSoEmXLb', 'W5xcOmkOrb0', 'rCoaW5jm', 'WR/cTHKdv8okFG', 'w8oaW5XcW6CQjSkTW7KlWPqk', 'n3eBW73cI1FdVSocW5/dLmkkW4XR', 'p8obW4JdO8khW4q4WOjteSoHW7NcNG', '5OYd5lMs5BEY5ygF55AN', 'xCk4W4v2A2xcOJpcHCoVf0nceq', 'Bbn/W4zZiazrmCkdWR5Ri8our8kuWQm', 'WPXRWObWiG', 'F8oKWPBcV2y', 'dCkZgSoXWQ5uWOygWRC6Dmk6emk6WR/dL8oLW7RcQcBcSSoQ', 'uGLrWQim', 'W6KpW4PJ', 'WPRcNIqXqa', 'u8kYW4PX', 'W5iGWQz5WRr1mSopW57cKq', 'kv5AbColaCkSsSk+rmoCaaldJa', 'qmo5WORcI3O', 'wSoMW5mMWOa', 'WQxcPtW1zCoXtCofbSoLWRdcJEwmU+wtUgJcI0bqWR1wWQJcNIVdKrZdPW', 'WPxcPftcS8kfm8oEWQffyConBSk+pwC', 'lCkNeCoOlW', 'h2StW6FcIN3dSSoPW5/dS8kGW4DPW7/dGSogzmkQnmkDDCoLWRdcTa', 'W5e+WO1bWOK', 'W7qFW5/cOSoZWRPNW6pcUW', 'W6GCW4XTWR8', 'W4TFW7BdQSol', 'mSorsSofxW', 'DKi3ltHQlmoKW4OsW7SEeq', 'nH8ZuxC', 'W6H1W5tdOmoJA2y', 'WPtdVLfPW7O', 'WQVdM8ox', 'W4ldUvNcMh5sWRtdUdujt8kjW6a', 'mdG9bJG', 'WQBdOSoBW5VcSW', 'qCknrmoqW7m', 'aIniW6JdLmkYhWddOSk/WQv3twubvwvPc8ocWQD9C8k+WOP3pMOmWQDLxHhdKCoQWOfyW40XmgeOo8k6i0ibBCkgr8oBF8odjtHCW5KRWOawjs7cNhWTWPK7WPe4wCkfW4vLzctcIW', 'WQ5FWO8', 'W65/W7pdRCoDz24Nyrv8W5G', 'tmonW5blW6CHemo3W7WkWPOdWQS', 'Dmo+W5XBW6mSn8oMW5erWPuaWQFdKmkp', 'maeuaGr3mSk+gq', 'W5iXW5TXWOaUvSkKW5hdPW', 'p8kOWPbQWQPgW7CUW4ZdNq', 'lWWveIrW', 'ehJcMJLm'].concat(function () {
          return ['bKP0cCo3', 'W4WEW45gWQW1uW', 'Fmk5W6X5sG', 'W7ypW67cUCoK', 'W4dcI8kAwH/dUwVcI2jqqSoK5yso5yw15PYq5z+R5Awh6lsOzG', 'kgyk', 'v8ojW7S5WO/cNKi', 'WQtdJMT1W4y', 'BSkwW4zyDq', 'vb5QW7TYlq56mCkeWOXBnmoArSkpWQqiWQJcSCo3W4m', '5BEH56Ej55Afbc/cSNqeib4z6isN5yQ55PIY5PwD', 'WOFdMmkf', 'lCkYWO1DWQG', 'zmoBWPpcV1q', '5l675PEXrmordCofW5FcM8od5PsR5lIz5Aw16lES77+c6kYh56oa5l2C5PYf56YF55g35zoM5PY66zU/', 'WQ3cGJmwWOW', 'WQNcJvVcVHNdLYBdSmovWOjLW6NdG8kTsCot', 'WRLuWOPibMfzySo9', 'WPpcHZK', 'vsvlWPG7', 'WP7cJCkiW6/cGG', 'kINdHSoxW7vXW7WpieT3WQK', 'lILaWRBdSW', 'W6pcR1KFWOu', 'DCkwq8oxW40', 'rsRdSW', 'WQ3cMJ03WPlcLSkBW4JdQW', 'fCoGFCk2WRK', 'EMjrzSkS', 'W5a0WQbOWQfQmSocW5hcHSkU', 'xvvHxCkP', 'W5ePb8oH', 'WPxcPftcS8kfkmoaWRL1xSocBSkZ', 'jre8pYq', 'l8ojfWfK', 'WQdcRfJcQq', 'WRddJLddOZ0', 'muNcJsvT', 'DmkJq8osW5yOf8k5yH/dOqK', 'A0Xnsmk6', 'rsvlWRG7', '5Rca5P2v5yET5yES5P+P6zIJ', 'WRZdNK/dUr1xEKBcJSkNW47cM3mdWQGLrWVdTSkn', 'WPpdUmobxqq', 'WPBdOLxdQZS', 'tgjsxCkv', 'WQhcSXaTWOe', 'F8orW5i/WRi', 'wf5Hr8kpfcFdUSkJcCofWQ4', 'WOpcSgNcGCky', 'j8kTfmova8ovW4y', 'WOpdPXHMamk6W7RcRIC', 'sCoiW603WPxcTeRdQSk4W6LOx8ooW5aShSkioSoFW4DuW5FdVIlcP3aVW6ST', 'dSoofXPP', 'gwtcUq', 'rwtcGSkCW6hcNmkHsHXkWQlcOa', 'W54CWQXBWRq', 'WPFdNmkdmW', 'WRBdIg9HW647WO56z8kIWQO', 'WQhcLIy0ySotwSoMb8oRWORdIa', 'zCoKW6OUWOtcVLBdMCkIWQHuhoAXKUweTEIGQ+AxIEAXS3NOJi3LJB3OT5tLVllLPQVOTza', 'WP3dLrHSgW', 'sCo0W7jkW58', 'WRhdHSojAG', 'WOz3WPntcW', 'bY9bW7VcHW', 'rZ7dVW', 'pZddJmopW6bLW4PyjfS', 'uJCbWQGkaSkLW7nsDqGYrCo9W6W1', 'dCkKhSoOaW', 'fYrnWQddTa', 'jCk0fmoxWOa', 'WRNcNuJcObRdGcxdSCoZW4jKW6NdMq', 'dSoofIj4W73dOG', 'lmkrnSo1WO4', 'l0i5W6BcNG', 'wJTpWOWP', 'fq8mgaa', 'dZ8QWRreuW', 'WRdcH1pcVq', 'WQNcILVcLtK', 'WPdcIZKpqq', 'W6RdMglcJg8', 'tSk0W417ANC', 'fsHz', 'pJqwWQH6', 'W6rEW5ZdN8o0', 'WQ5jWP5hn1lcNq', 'WPRdNxhdVGG', 'ud3dN1CdWRu', 'sSovW7yX', 'W7KsW43cO8oIWQrHW4/cPJtdO8kkW6ldOmoUdSkaW6j5sJO', 'WPtdTK9fW5W', 'WOtdMmkhgCk0W4FcJcThmLW', 'idbWWQtdHhe', 'FqiECmkmrmk8tSk1BCo2hW', 'WQ/dH8o4W7G', 'gwjNl8oS', 'WOZdQCoRW7/cLa', 'WQHEWPrkeN1EDa', 'jGqAhdW', 'W4tcQ8karHJdS2hcRW', 'W5ivW7NcVCo2WQ12W4xcQs3dOW', '5RoV5PYY5yA35ysJ5P+96zIJ', 'W4ldQL/cLu0', 'WPjLrmk/WPHeW78zW6fGWQZdNa', 'WOXwWOPM', 'WOpdImkdlSk+W4pcPd1weXFcN2mdw8oSghG7sNXJWQG', 'n8o9zSkAWOK', 'tX3dK1ir', 'oedcRsHP', 'yCoaW609WPNcPwZdPSkJWRn6A8oiW5a3fCo2lCoiW4zsW4xdQrZcOxa', 'WRZdLmoLW63cS1ZdKCk9A3JcLg7dJW', 'WQhdNCosAt9GW7W', 'W4u+mSofW7W', 'W7axWOfnWRu', 'WQJdMSokxZa', 'q1JcQmkNW58', 'cmohoH1y', 'aInFWQtdLmk1hG', '5PYT5RYu5Rsr5OYU5P+256gb'].concat(function () {
            return ['xYBdMM0N', 'W5GOW4PhWQq', 'mmokq8o3yG', 'W4mxW43cPmoQ', 'iuONW7VcLW', 'W7LIW7FdQG', 'WRhcImkGW7dcVW', 'jcLTWRxdIM/dTvaDW40m', 'W7RcGCk6wHu', 'W47dKCkEpSkWW53dIJTkgKRcIcKgxmo7gh8D', 'w0aInrfMoG', 'edvgWRldMG', 'BJbeWPud', 'hCokbIn4W7y', 'W7LIW7VdUSoVFve7xa8', 'i2lcRGrHuwVdOKFdKMVdMmkJWQ8bB8kYcHNcRSoOi8oohWJdOW', 'pvHbiSoB', 'i8ojW4pdO8kQW4u/WOu', 'mYLJWQpdJwZdLeK', 'W7m5b8oMW58bW78xW6S', 'W4nfW6hdRmoVq20MrWb3W785WOtdU2ddLru', 'stddO3m', 'WQVcKM3cPrG', 'W74AW5fWWQWMv8o/W47dP8kLW5RdV8oenCoGASo7j8k8WQHIhse', 'WQf5WQfEaG', 'FmknW6znsa', 'sr3dT2qr', 'W4pdOLJcLM4', 'dSolDSoQxW', 'E1nrDSkW', 'WQfEWPbj', 'WPhcHXS1Fq', 'BcrYWR7cHgddK1ypW5yBWOKqWQC/W4ZcK8klcSooWOtcNJSzWPfWiI9lWROhW47cSq', 'xYZdOMqpvsNcH8o5CwiFpCkFoMa', 'EtRdIvmU', 'WO/dG8oTW6RcJW', 'W4lcQ8kMBJ8', 'W4xdOLpcIwHr', 'hdvTWQtdN07dG1CpW5GoW4e', 'FGzVW7rIja', 'W70pW5PrWRKGqmkL', 'bcnNWPNdRa', 'W5i1WQ5JWQW', 'gJeRtu4', 'WQldK2L3W6W/WOjIB8k7WQyd', 'Eav9WPOIWQdcNSozWP0hW79A', 'CupcU8kyW6y', 't0L0qCko', 'lWCSqwG', 'WRlcSmkjW4dcTLuCtNdcIG', 'mSkodSoddq', 'iJvY', 'WRpdGmo/W4NcLq', 'u8ocW6WVWPBcTKe', 'kSoysSkSWQO', 'WRpcKZ8TWP4', 'WQdcU8kr', 'oSoGymkaWPW', '[encoded data, 88628 characters]', 'WQtcKIWXWPRcLCkB', 'kSkXWP1kWQPuW5yJ', 'W6mDW6dcP8o+', 'W7/cHmk+yGa', 'WO3dOfZdKd8', 'W77cNmkCud4', 'iL5aiCokgW', 'WR7dG8ohWRq', 'WOhdOfnzW6i', 'FbL5W750javEpmoEWQLDjmoEr8koWQbZWRBcSCo5W4GYW6NdHa', 'tY3dTxKU', 'pZ0VWQfL', 'WPZcOw/cIsy', 'W6VcVCkCqa', '5Rgq5P6l5yEY5ywS5PY26zQy776v6kY85z2857Qs56U95OI96kcxfqtcSL3cJSovW4lcKqVdUJdcSMWUW4RdGLRdHSk2A8k/WRxcNSodW4nfECoTW6CLW4XTWRXxWPBcRSoVqXxcRmoRb8oYWOC', 'lqiSWPrT', 'aSoOW47dLCkm', 'WQhdN8opWR3dIgfMW4PKW7BdIM9nWRzrkW', 'W68zW6r7WRW', 'h2StW6FcIN3dSSo8W5/dS8kbW5TlW73dGmonCSk6eW', 'WQ3cGvtcTXRdHq', 'jmo0f8kBWOH9DCo1saFdUG4YWOy9WR0QWRfVWPvyyGfZWRJdUCkXFhNcVSk+hrubEZxcHq', 'psVdMfyFWQH0', 'W70pW51PWQWMv8o/W5FdSCk4W4i', 'xI3dRNS', '4P6itSo9D8k/mL3cO8kD54YT5Agu5RQP55kq5AYR5OMa776S5BE55RQD55gjW7u', 'WRddGmogkMy', 'WQRcUIC4WQ4', 'ErnQW7fqkaDyb8kjWQnB', 'W4nZW6hdMSo+B28UvX9HW7iYWOJdV3BdJqtdIW', 'Dmk3rCocW5a', 'rLjOw8ke', 'uG9uWRGx', 'jLOOW7VcRq', 'f8opW4pcPmo9', 'W4PUW73dG8ou', 'wcvz', 'fYPaWQRdLmk6kftcOCkdWOS', 'D8oKWPtcMge', 'BCoiW4HGW7q', 'dCkUdCoHWQPZWRqsWQq3gCkTe8kZWR/dL8ofW6xcLt3cUSoNWQq', 'W4uvW4JcQa', 'WR7dKtXApG', 'WQpcO8kAqGFdGLa', 'W5akWODNWOK', 'f8odW4/dOCkMW448', 'W6JcP1KkWRC', 'jX4Xue94W7GAoXjFWQJMIj/LI4PVWOdcOqxcTrpdPCka54U75P2DW6a', 'nCkycSoGWRzUWOC3WQiWA8o/5B6D5O6I5Pw05B696kwv5PYD6i225y6e6ls+5BYg5AE76lw1', 'FgibnYO', 'CxHZxmkpdYFdK8kwe8oXW6ROJQxLJQNOVRlNQPBOTz7LVi3LPi/OTRxdTG', 'W4hcPN08WRldQCoSpmoxdSkmD+A7MEEtL+wKLoI0KCoGlq', 'mqL1WPddVa', '5ywk6A6a5Ro/5Bwu5B615zgV', 'WRdcSCkxW4lcULSHvhy', 'vmk8W4b3Bg7cLYJcJG', 'qGfvWQ86', 'wCoJW6OfWRq', 'dJG3tuLLW6KVoG', 'WQpcLdO6', 'W7tdVL/cNuS', 'W6RcSSk9qYS'].concat(function () {
              return ['5Ro75P2b5ys85yEz5P+x6zMg', 'W6ZcP8kDqW7dS3FcUhG', 'sa/dIuCF', 'WQXyWQTOhW', 'W6G7W79wWR8', 'laC0gZXXpCkOpGO2a8o3iCkdBdTLWQNdJG', 'W6S4W7/cH8oO', 'urDBW75v', 'bCoLW6ddHSk/', 'iY0RuuHAW685oHXLW60', 'zSk6W4zRrNxcGdlcHCoTo19fhb4PWR44W5VdHhe', 'WQDEWP4', 'wsTkWRGg', 'WQ7dSGr6aCkfW7ZcUcC7Dt8', 'W7pcJuC+WQK', 'W4FcLmoFcCkWW4pcGI1wk1NcMw5h', 'ASkTACoUW7K', 'jsaHWQ5T', 'WRJcOL/cO8kIkSoXWRrYA8oq', 'ntb9WOBdMq', 'amoBqmkgWRldTG', 'WQxdU1NdPXK', 'DhhcMCkyW7RcO8kVAHTkWRhcSmof', 'WOZdPmk1l8ki', 'bcndWQ3dMmkZd1lcUCozWP1kBxa2', 'umoIW4y0WRy', 'bmodW4VdVSkHW44BWOrpmSoLW7/cGMq', 'W5NcG8k/uIe', 'W4q2mSoaW4K', 'WRBdGxrmW7G5WO18ACkMWQOfWPNdOr/cH8o9WPpcJq', 'WOzkWOr6bG', 'W4VcU8kcqqy', 'WOxdJ8kdmSkJ', 'W419W5BdQmom', 'W7hcP8kgrG', 'B01ry8kq', 'W5y+iCoOW78', 'pmojv8kbWORdQYezsNtcG8oUbSkkx8k4WRFcUSoOFmoKW4m', 'DtFdPNG4tIxcOmoTCeuina', 'zYddHfDcWQnNaY4owmk+DmoOWORdPmowfZeyxxXqfJpcSa', 'W7O4W6DGWR0', 'imkdcCoZfq', 'FrRdO3um', 'WRj4W7pdQSoWE3i', 'cJmlWQm', 'WQFdMLBdPcS', 'EZPAW6v4', 'gILgWQy', 'nqDnWQtdVa', 'ldSDiqC', 'sfuI', 'vb5QW7TYlq56mCkeWP1komonsSkYWQq8WQ/cPCoJ', 'W6WBWRP4WRnPe8oMW4lcNCkwaqW9W59qW6nasKpcMCoUjxxdHEw0OUAzQUAvIG', 'W43dHNlcI3K', 'be7cGtXQ', 'pmo7mqzC', 'WRxdRNDjW6q', 'bwpcHdT1', 'kCoBFmolqW', 'uSkFqmohW6u', 'ymoWWPJcNK7cNmkoWQHnx8ohg8kPjSoXEG', 'i8kDlmo6ea', 'r1PLrSkvdJddQSka', 'et0E', 'WQxcIsWWWOK', 'W7zDW7tdRSoE', 'WORcOtaoWRG', 'W6yreCofW70', 'W4SZhCoN', 'lYvhWQ3dLSk9mK7cQSksWO1pzv0', 'WPlcIs4', 'W7GJW7vPWQK', 'lK8WW6VcQa', 'A8onWOVcLKq', 'W6ebW5K', 'smowWOZcGvhcLSkpWOTTvCoPt+AWRUwhMoIJVd4Kcr/dULqcW79uqCkaWORdI+w2TEAAIUAuPG', 'WRxcU8keW43cNLCJuK3cKheM', 'm2SDW77cUN7dTSoDW44', 'WPxcOf7cQCk5iSolWRK', 'h8kke8okkq', 'WQDbWQnwjW', 'WPpcHYOVF8oWwSoCea', 'nSonASoOCSktbsRcTW', 'W7f/W6hdUSo6AwC', 'rantWPem', 'daxdHSoRW4e', 'W5i0g8o+W74CW70bW6W', 'W4miW57cOSo0', '5PQu5Psw6yEG57+55AE+6lAo', 'rID/WRy0', 'WOf0WQD3dG', 'W4tcU8khrXVdMhBcR3LzDSkNW7zKvCk0gcv1WOjsW4BdUIyuheVcN8o6wmoMWRbEdgRdQmoVbfVcKSkisfLHW7TcW6/cVHXu', 'lCkIWPbTWRTZW407W4FdRv0jWO0', 'EmoXW7ziW4u', 'cSojW4tdUq', '56E955w16iAU5yQk5PUi5PAN5AA76lwVC10', 'h2ykW73cI3/dPmohW5xdQCkMW5bH', 'W6GRWQDLWRDidSocW5NcLmkIqH49W5LnW6WpbHBdNmk3iYVdJ8o/W6pcPwhcIZ/cOCo2s3i8uSouta7cRmkjE3FcOSktWOVdPfxdUa', 'oKLhkW', 'WRhcU8kxW5RcSveH', 'WRtcP8kFxepdLwZcQwnqBCoRW6v1t8k0a38/WPWoW4pdSMzoheBcOCoQw8oOWQb1txtdSSoMaW', 'WRBcNIWSWPlcL8kq', 'kIWguv4', 'W4uHW7nh', 'WQhcHseIDCo1DSo7hSoVWO7dMvVcTW', 'Emo2WRdcLuW', 'xGZdRuew', 'pIhdL8osW7v7W7W', 'oKxcRd1G', 'WQZdG8o4W5JcPNpdRCkJyG', 'iIiwWR5EFCo+WQ9fCrL4', 'W6ipW4tcV8oN', 'ft5gWRVdGCkLkfNcRSku', 'W6OlW4PdWR0Oz8kJW5e', '5P+k5O2T5l2Q6lw75yYM6ycF562u', 'tdJdGLCyWOPJbdWnxSkO', 'mbGxhcr9amkOgtW2a8oHoG', 'WQD2WPPQaq', 'WPxdNmoEWRBdHefVW5TUW7ldTNKrWQbilCkoWReU', 'W5qFW5/cOSoQWR5HW5hcRtZdSmkaW7pdHmoDbSkiW7K', 'DSo7WO8'].concat(function () {
                return ['5ys/5ysF5AAD6lEOWRZdQa', 'dCoAB8oYuW', 'cSoFfsb0', 'WPpdG8ovW73cOa', 'WQ7dO8oLW7BcVa', 'fXZdQ8ovW5S', 'ks3dHmorW7HZW6PsguX5WRnuW6C', 'WQRdHCo4W7dcOhVdJmk0AG', 'jCkKbConbmozW5hcHq', 'WQ3cM8kxW6tcIW', 'WP7dHNxdMbK', 'WQ3cSeJcTCkM', 'omkPemoAcG', 'W57cQai4bSoIWRy', 'WR9OWRXQgW', 'W7RcSGRdLfHBWQldMsWdt8kjW6WLpGhcI2G', 'mmk6fSowea', 'mSonA8o0BSkoca', 'W4qSWQTLWRvY', 'W7dcGCk5EYK', 'WPJdGw5aW4e', 'wmk3rCoiW4eLmmkH', 'W7NcKhO9WQ7dTmoUhSokt8k6mSkL', 'WPJcTSkeW4FcVfiQy3hcJNGPW6RdTSoeWPpcGrFdKSosdq', 'WQnYWRTjpa', 'zSkTW4XSCu3cLZlcMCo+fvq', '5P2W5Qcq5RAY', 'WPrzWPHjf39FqmoRFCkHFSoSW4LUW5JcTd01rW', 'bIeHgJy', 'WOVdMmki', 'za3dK24+', 'cIaqWRLpDSoYWRbtqWDZsa', 'rx3cNSk8W7dcSmkPvqPyWRBcJmoyWPZcUmo8AKddQW', 'qXZdVgSj', 'WPxcQbSnWQVcQSkXW6FdHGuU', 'W67cL2eJ', 'WO3dRCktmmkZ', 'nSk/WP4', '5O+45PYf56cU5PsO5PE9', 'osFdI8oAW71KW7rYpvfSWQrj', 'WR/cT1JcQW', 'WQ3dVSkfdmkf', 'WPxdPW1OamkKW60', 'W7pcI2SIWRtdOSo7hW', 'cKefW7RcPq', 'i8oQsCoRqG', 'wLaXoHv2la', 'W77cIxWRWOW', 'WRZdHfNdRW', 'jtCGWQLC', 'BGr5W7PK', 'W4OvW4S', 'AMhcNSkh', 'hcnbWQ/dGCk+', 'BN5EqSkR', 'WR/cKfpcOahdGqBdUSoYWO8', 'mcFdJmos', 'd0XLimo4', 'h3/cGsj9', 'CSooW70UWPBcO10', 'rCocW4voW5a', 'o8kwjCoXWOS', 'ESoMW6KDWRm', 'WORcNIO2Eq', 'W6XOW73dPmoYFwSKsW', 'WOxdHgVdIXm', 'WQ3dV0/dGtu', 'pmoDvCoDuq', 'WORcTZaErG', 'WO3dNCoNxXq', 'wK51rG', '5yAg6A2L5RcS5BEv5ysa6zE+', 'WQtdMCoDWRi', 'WOVdNSolWRVdIwPHW5XZW67dNMnsWQy', 'BmkyW5jWtq', 'egxcQa', 'dJaxw1j0', '5P2Q5R+d5Rwj5OYb5P6T56cq', 'WRxdJ8oAWRpdM0n6W4PJ', 'hSk0dmoMWOHKWOyuWRe4uW', 'WOxcMfxcOahdVZddSmoVWO1OW6K', 'gdW2vvv5', 'kt3dH8opW6bKW7bplq', 'WRRcR1dcS8kRkmobWQa', 'W4mYW7VcVmos', 'W7NcR8kLybK', 'AX3dHfizzaFcU8otu3ONeCkLaem3WO/dTWddSSoFWQVcPCkaxe53WRL3W5izW5jwcbtdP8opWQ97o33cNHSzW5hcKCo2gSo5m3JdTCkwWPFcJwisWQ01WRpcOq', 'A8kXrmobW4eO', 'ymoHWPJcH0FdL8klWQH8xSow', 'WRtcRSkjW4dcRa', 'W53cGmkeAW0', 'pmoDwSkAWQRdIJWgqxFcHmoUd8kUv8kJWRhdK8kYFG', 'iSoGyCkCWO8', 'W7BcH8krmMS4W7JdOc9uora', 'xua+pb1Gk8oIW4bSW7ClgMhdGIngBCo2bL1d', 'fMOrWR0', 'W7BcI0W4WOW', 'hLL8m8o9', 'CSkEBCosW7W', 'WPJdJqvTaa', 'WPJdRaHLamkSW7ZcUa', 'pCo5WPBcKepcLq', 'd8olW6VdO8km', 'WPVcQH8IxG', 'WRldMSokBHm', 'WOJcI8kNW4/cSW', 'WRddIM5SW7O5WR5RA8kZWQed', 'W6/cP8kBsqddG2RcUNDAxmkRW6j+sa', 'W7lcPSkmrbNdSNZcQa', 'WP/cKhtcLCkDfCo8WOTpqSoM', 'zSk1W4jXywZcLWlcGSo6evPJgX4IWRCQW5/dLNzDW4ZdQSk9W5niW5VdRW', 'pSktWObJWRa', 'WRJdJKNdIqDxEvVcK8oBW57cJw0dWRqNuWVdTSka', 'l0TE', 'eZiJw1S', 'WQ3cSZKexq', 'lCk0eCoMWQbVWOeu', 'W7yBWP1VWQy', 'rCovW5nzW7y', 'leidW4tcOa', 'j8kee8o+nq'].concat(function () {
                  return ['wJtdRNOWaM3cLCk6wKqzl8kepq', 'WRNcS13cRSk5', 'kWvAWRRdHSk5cxdcSSkyWRmB5RoO5yA16kc6oM5Cp8oRWPXwsSk0WPz9kcxLTO3MMlZMLRm', 'W6WBWRP4WRnPe8oMW4lcNCkwatyNW5PhW6ftdWJcGCoVjwNdNW', 'W4mcW4xcVSoYWRTxW7/cPJ0', 'oCkLWOTQWRfhW6uIW5BdLGSgWO3dTgpcNeldTeSnraO', 'zcNdN0O', 'uCoPW6zNW7m', 'W7v0W7BdRmoJqwq', 'rJbHW6fU', 'usddGeKp', 'cNZcUtjc', 'rZ1xWQ8nWONcKCoLWRaRW4jV', 'W4CQWQbYWRLteCosW5hcHSkUrq', 'jHSjgIi', 'WQ/cM1VcTba', 'W63cINOLWQpdO8oWd8ont8k1mSkVWRPrw8kQi8oEnJqHcZbf', 'aSkAfmoxmq', 'zCoKW6OUWOtcVLBdMCkIWQHuhmoPW6GpgCoslCkA5PEB5O2v5BIL5BwO5PQb5Pw+', 'msbXWRJdNNhdHuep', 'qSo2WOZcVLq', 'lYfkWRZdU8k5fupcPq', 'W74zW5D2WQ4PyCk0W5ZdR8k7W4NdPCoubmocymo9iq', 'BWX+W7Lh', 'W7lcNmklttu', 'BWLlWQKDWO7cVmozWQSPW7y75yY05zg2WP9aWPRcLdzQWO4YW4VdNmkcWQSBW6VcJ8oPbKRcIW', 'WPBdGmoiWOVdJG', 'jSoodcb0W7BdPHDwFwVdMsq', 'n1RcHX5g', 'WR5PWRPvia', 'FWLDWRmR', 'W7ZcJ8kMBYa', 'sCkKx8odW78', 'nYShvfq', 'WRRdHuS', 'amoFE8k2WO4', 'DxJcUCkjW54', 'WOBdOXLN', 'kaabaWK', 'fSk9fSokdCoe', 'WR/dJCkElSkLW7ZcGdTrgL/cIa', 'WRhdPCk3omkG', 'amobCSoSyW', 'W7m4W4hcTCoe', 'y8oGWORcMW', 'WOBcQv/cL8kF', 'brekDLe', 'xdddL34/', 'ktS0y1O', 'teGZmbW', 'pmoExCkgWQNdItybw3dcISoO', 'Eb5KW6jclGPoia', 'uZHoWOex', 'WQdcU8krW7ZcQ1S9zgNcGgSMW6FdTSovWPpcMa7dHa', 'WR9lWOfKjeFcKqO', '5O+l5PYQ56g65PAv5Psy', 'W5tdTu3dMx1AWRxcJwCLzCkXW4Gwa27cKr7dIgr3WPpcVmkmrha/wSohW7pcQXFcHwu8WQO9FSk+WQzWnmkrx8kaxCkWiHrsvSkNW5apW6nzvKZdRtvbWPhcGGxdRYtcKvVcJdT6WOPhq0zN', 'WOJcM8kUW5pcTW', 'fMxcPGq', 'tSokW4ldTmkUW4C', '5Rg05yw/54cRWRVcOs7LKk3LI6RML4q4FCoqoCkm5zkw5Q2W', 'bt7dJmozW6m', 'fxHBnmonhmkTDCk+E8oGvd3dSGC3C+InPUwpMEI0K+w+J+wLGEI1Rmo8', 'zCo9WO/cOg8', 'rmkTC8onW7O', 'wd7dQxiZtXxcPSotxq', 'gxlcPHLXtL3dNeZdHq', 'WP5OWOzBaa', 'mCk9WOHVWQG', 'WPtcKCkIW4ZcVa', 'WOzkWRfQoeZcMrPlWQ7dHG', 'gsHlWQ3dJCkzhq', 'WRJdICoaWR3dMuO', 'WRpcVmk/W5NcVq', 'cKZcHb9e', 'uCkUW4Xhsq', 'wCoOW5rIW5u', 'FxJcGSknW7tcVCkxtq5FWQa', 'EwhcN8kCW7RcO8k0sWa', 'W5GAg8oaW44', '5Rc65P+b5yw25ywn5PYV6zUg', 'WOddM1ldUqzOB0FcKSoOW4ZcHG', 'f8ojW5/dVmkTW44LWPvi', 'DCkrWOLPWRjCW4C2W5BdL0SjWP3cUexcMKpdK0SudWvvW7ZdNCkWms8dyCoCz8obFSo4cIbvsmkYW5auW4NdGCoeWR3cM20iWOu1WOVcO13dVCoSwadcRCknW5tdHwLfWO3dVSkhW60/WOtcHdn/WOxcM8ouWRNcMMVdKCo0vmkfe1Gmu8k+WOFdRW', 'Bbn/', 'WP/dTCo8W5lcSG', 'WPVcUcSTWOJcL8kmW7hdVsy2EGNdMSktWOLA6iY+5y626lsw5B6n5AEb6lA+', 'ov5mmmoxfSkO', 'W4GvlmoeW64', 'ps3dKCoPW6DZW6TYpvfSWQrjW4CLW6f3D8oA', 'aCowW4tcPmoHW4G+WOrtlCoYWQpcHxu', 'WRjvWQTVnq', 'w3m3v15KW744ibnLWQbrW5z+W7BdVvZdOvlcUCkoWPryWQFdQCkWWRDzWOaGbG0SdSodFmo3yCoF', 'e8orW4tdO8kSW4muWOrfl8oHW6tcMhrQWRi', 'tKaM', 'jdKYdqa', 'pCkKlCoGgW', 'hmkjWRndWQG', 'WP/cR8koW43cOq', 'WRJcOL/cO8kIkSoMWPHpsG', 'ftmkWOjDxSolWQ5zybTVx8oX', 'CmoGWOVcGe3cI8knWQLWfmoFcSk/', 'rZ5AWRqBWPu', 'rxZcJmkbW7hcVCkHFGPFWOBcSmoeWOxcSSoTtfddOCo7a05aWR0AW5tcHa', 'WPpcGZO0D8o5wG', 'WQxdVKH3W64', 'WOysW5JcUCo2WRS+WQBcRd/dSSkiWQZcImkRcCkcW6bOfdPIASkB', 'mCk4emo/WRvGWOCcWOy6rmkSh8k6WQpdGq', '56AR55w36iwT5yQ+5PQO5PAs5AwX6lEwWQa5', 'c8kJd8o7WRDKWQOdWReRuW', 'WRpdRZH+hq', 'WOhdUXLbla', 'pdfmWQFdSq', 'nH4jD1u', 'ksDBWRldRa', 'C8ocW6L9W54', 'oYecdYq', 'W7PWW5tdVCod', 'WQ3cNJm9WP7cISknW4NdPJK0lIFdP8k/', '5Rkl5PYY5yAF5ywl5P6/6zIW772z6k205z+m57Q056Md5OQT6kgEruNdRSoeW61rWRdcR8ouW68KfCoSWQ7dLCoEW5JcKCkFW4/dSCk5wX3dThOLBLBcMuBdSK5ZW7ZcH8kHgcuTW6FdSCkQsa', 'ugj1s8kS'].concat(function () {
                    return ['WOvwWODT', 'wcDhW7XIja', '[encoded data, 59528 characters]', 'W6ebWQDoWQ0', 'WRZdNK/dUr1xwLxcLCoH', '6lsa5B69W5q', 'WOxdV8kLgCkC', 'dmoted5N', 'CelcRSk7W5W', 'bsddHmosW7b6W7XMl0XiWRvoW6WOW5n3y8oDo8kn', 'WP3cKZS0ECoSeSoGbmoUWOZdMvVcOq', 'WPRdHftdSam', 'drOluNy', 'CcFdNv0QWQ5QeHWvv8kU', 'WQhdMmoiW7FcLq', 'W57cR8kKBWi', 'wGxdQh0V', 'WQhcHsyPySo7r8oH', 'CXb4W7bq', '6i2O5y2954M15P6M5Awd6lsa', 'W6zFW7VdOmok', 'WO7dN8kRpmkx', 'W4n5W7pdQSoZA2ybrX5HW5qUWRldU2hdKq', 'WO7dI25VW6y5WRHDCSk3WRScWP7dJt/cLCoLWPtcJCkPW6JdNSk7WQK', 'cbG0WRrt', 'jhPjd8oj', 'tmolrSkwW7ldRdWbxgi', '5Ro75P+z5ywG5yw85P6D6zML', 'WR5bWP1gb3y', 'dqfYfSomhmk4v8kTECkDmGpdKYShC8o5D8oepvK', 'kgiiW6pcHa', 'qYTmWRu', 'WPFcGx/cUcy', 'kt52WPldHq', 'WOpdPWWPbmk9W7ZcUs16mbiqBhhcNxVcHCoCWPBcHqldPtRcIGfQW7VcKalcGSoUlCoKWQJcUCoAW4fiDCo7W6aqW6b2WR0kWRdcTCoPzH/cRmk2d8oTWPKYm8obW73dJxTiosHVaaJcQwbvimoJkX4IbghdQqtcNcPwWRS/WRqVzshdRHCKCvalW5VdGSouygTLW7qcW6O1BSoIpmkuW5KHW7bZxvpdHq', 'lCk5WPCQW6W', 'WQibW452W6icr8kJW47dRCkLWOpdPmoci8ocFSoQlmkWWRuOntxdH3pdJCouo8kSt3NdR8kaWPfOWRpdV8ogtL4nWO7dJGNcSSkOg2O2E8k4ACkmfrP3WPNdJK5oWPaXCSoTct40', 'CSkGtmklWO0', 'WR7dSMDNW4W', 'cCosbHXi', 'W5FcMmkcwd8', '5Roc5P6N5yAR5yAq5P6E6zUu772F6k6f5l2x55s5W43dVHVcVLhdRoAENoMAQ+I9I+IHIEAkNos9JUAuJEAwL+s5RoACNoMzSW', 'W4u1bSoNW4SEW7K', 'WQVcI3/cTCk3', 'ws7cSCk4W7ZcV8kGvHHyWPNcLSopWOxcQCo6CXBcVCojdLjoWPSEW5lcN8ozrCk7WOxcKdTZdazn', 'j19lmmo6', 'DmocW5bhW7iOo8o3', 'w3JcU8knW5W', '5RYG5RAg56oW5BAV6lYw5P6U5OUZ5PAO5PwQ', 'hCkSfSoMWQzPWQOlWRKYx8kR', 'ceWHW53cVu7dMSoVW6JdJmk2W7bxW4hdUSoIrCkn', 'W4xdUhpcTu8', 'W7KQWO5cWRC', 'idbWWQtdHhhdLLytWPCcW4ei', 'B3PfBCk5mW', 'W6vUW6hdR8o6', 'BCk+qCoeW74', 'emoFxSkCWQNdOqaxxfpcJmo5dCkYhUI8MowyGCoBW71KW6BdK1e', 'wmojW5bEW48JjCoSW6evWPOqWQFdKCkgW7VcUmoMpvFcK8o4', 'hJZdOCoBW5u', 'p3/cVrLQtW', 'dCodW57dPmkUW4WU', 'nbixDM9iW4ClgZzhW5O+WQKBWOlcHIm', 'WOVcJciXxW', '5RUf55o95AwV6lw6W4hdMa', '6l6+5OYd5P6G5yI25zQN5AAA6lwU', 'x3BcR8kJW4i', 'WQ/dNK7dOG', 'ddWNsv1WW69KiW5TW6y', 'kMWBW6C', 'WQlcPSkmW5RcRe0CtNdcIG', 'xLC7lrvdnSo8W5WrW6megG', 'bJKDzfC', 'WO7dNg/dHt8', 'WPrsWPzjb3zcCW', 'dmoFeNKP', 'W7lcGSkxpMC8W4JdUJrvnaq', 'WPRcHZSWF8oW', 'WQ3dUSkNfSkI', 'WRRcOLlcRmkSimowW6nSFComDa', 'dYPLWQq', 'WRJdL8oGW7dcON/dQ8k0EMNcJhtdJ8k1jUI8QEwyQCkEaCo/uNyP', 'WQ3dP8ofWPZdUW', 'WQ7dLmo+W7BcPa', 'dJClWRTdu8o+WPfxCXz0rCoTW4K9', 'WQVcSCkc', 'WOXmWPXWovtcVqXlWQpcJubwedVcRaxdJsHasCkH', 'WQRdGr57bSkNW6VcMYy1t3RML5ZKU5NOT4VLVyus', 'WQRdGr57bSkNW6VcMYy1t3RLSyBOR7ROT4VLVyxLPjNOT4/cGa', 'W5pdOe7cMgHBWOhdNYOvv8k+W6OKnKJcSa', 'fb0VlYC', 'W5K1WR9cWPC', 'W5qVfCoUW48WW7qxW7TYWRxdKSkGo8kKsa', 'dZCyWQLSwCo3WRLLArb+', 'yd3dJKCjWRr1', '5P+u5RYM5RwY5O+p5P2v56kF', 'md4XBNG', 'wuqXmHfIoSk+W5mXW7ue', 'WORdJSkPlCkc', 'W63dLN/cU08', 'jfrhka', 'nmojymkmWRS', 'w3LtDSkQ', 'zSk+W4XXCwxcIJu', 'WRpdKCosDdDIW7FdIsPZpdO', 'tmocW68WWPBcSKe', 'rSocWOJcVw8', 'W6GaW4G', 'W6SVW5HxWPS', 'nZ8IBe0', 'rSoeW4XAW6CQjG', 'be7cHanl', 'WOpdJbPVnW', 'hYb5WOZdKG', 'mMS7W4/cRa', 'dHGtWPLJ', 'DSkdB8oHW7K', 'WP/dQmoDWPZdHW', 'l8oghXD7', 'xwmwpXy', 'f8oCw8ky'].concat(function () {
                      return ['CrnVWPGa', 'W4xcHMKTWQNdO8o6l8oqe8kIomkUWOfeqmkY', 'pK5DlG', 'W5JcTvahWRS', 'jWGjaJL2', 'W7b1W7u', 'W4NdTutcNNy', 'hCkVdCo7WQTMWPWbWQK', 'rczFWQ8iWO7cVmoK', 'CIVdMu0AWQzYeIS', 'W6TzW6FdOCoo', 'W5ldOKpcLa', 'W6FdGh42WPBcN8otW5ldVsPl', 'W4dcI8kAwH/dUwVcI2jqqSoK6iYG5y+ghmkya38VWPypW4ZLRjROO5pOT5hLVRFLPiFOT6xcSW', 'tSogW7W3WPBcTKhcP8k6WRrMuG', 'nmojA8o0yG', 'fmokda', 'nSonACoRzSkcaYlcOCkqzG', 'kmozDSolqW', 'WONcKqqzWRi', 'dCkUdCoHWQPZWOuvWR9XrCkOh8kHWQ7dMSoKW6JcRdpcUmoSWQm+cG', 'c8ooaczOW5VdUHbxDL3dNW', 'tCoxW7m1WOm', 'W5WoW5G1BXBcPJP+WQhdR2K', 'v8kfwZfPW6ZdSbbkELhdHq', 'gdGIq0L7W74', 'wcFdHMeP', 'rSoVW6yMWOm', 'jcb2WPtdNNhdLuSoW6KiW5azWRC', 'WPpdMmkqmmk9W5tcLJTRfvlcIgurtmoT', 'WOdcU8kTW4hcVG', 'CSoFWPpcIMa', 'br7dT2yWsYpcKSoUCf4fl8oedgyuWQ7dIYBcICoOWOZcJCo2rub7WQ52W5KlW4yrmXVdV8omWRDNn2JcNeylW5xcLmkVaSo0pI3cS8ouWORdItLvW7bGW67dTSkJcmk1WOpdNCogCJVcVSoXW7BdNbldOedcOmoJW6/dUrdcJmkUgmozySoKW6FcLq', 'WONcIYaKnSoUtCo6f8oVWP7dNH7cPcdcIvDbW5qaWQpcKJxcNaJdUHFdT8kcE8o0xLTnW6CAgg3cQd5Iyu7cUX1VlZZcJLK9nmo3WPPys8oMkSk2ktxcKX1aogHnWQ3dUmkzAmo/yCoJW5ez', 'W5GOW5HkWQG', 'WORdP3vXW7W4WQ9EDmk5WPjxWQhdSt/cK8oOW5BOJyNLJjZOVyhNQRZOTlBLVyJLPR/OTkZcIG', 'WO3cM0FcR8kl', 'WRXqWOTj', 'nCkGWPnTWQ8', 'omoTr8khWQ7dQYeIwN7cSmkT5PEP5lIS6lEr5B2iW6u', 'WQdcQN7cPCkM', 'WQ1BWODAmW', 'W7NcIMWR', 'kCouW5VdOSkB', 'p8kIWOT2WQW', 'DCk1rmocW5OThCkaqJy', 'WR/cT1FdQSo1', 'zSkUW4zXyvpcHIdcNSo6', 'utjxWQGAWPlcNCoWWRCL', 'WQpdGwfNW6m+WRnLjSo7WQLxW4ldQcpcICoZW5K', 'tSovW7aKWO7cGLddQmkKWRj6', 'kaVdTCoZW54', 'bCkZWPH6WRzqW4auW5FdJfCiWPZdH2FcM1K', 'WONdMCkIl8kv', 'wmomW61hW7C', 'WO7cSLBcI8k3', 'W5/cSf0gWOa', 'W60ti8oyW4i', 'fCoeeW', 'fIGls3K', 'cd8EuLK', 'WRJdJSoJW67cGNxdMCkIEG', 'f2/cTJLXxhRdKfhdPvBdJSkLWRy3Fa', 'zHddHfCqyXdcO8oEwguQ', 'fdXAWQtdPa', 'zSoLWP3cKLBcNa', 'WQRdGr57bSkNW6VcMYy1t3RLH4lLHyRMLQpKUlFLPjNOT4/cGa', 'yIRdRfiF', 'su50xCkteNJdTSkugmonWR53dq', 'WPBcPLxcHYu', 'CqT9WPGRWRi', 'WRpdOmovW4JcGG', 'uSocW7e7WOpcUq', 'BSobW5amWQi', 'smouW41AW6K/aSo2W6CqW5qhWQ/dNCkaW5pcUCoqi1FcNCoX', 'WOFdKSk9h8kE', 'm8obDmksWQu', 'pCk1WO0', '6k635Rgb5Awd6lAS', 'mg8tW73cIh7dPCod', 'W6HOW7VdPa', 'W6ewWRH4WQ4', 'DSoNWOVcNfa', 'btzlWQNdGCkZ', 'aSo+ASk3WQW', 'WQ/dN8kPcCkM', 'WRNcNuJcObRdGcxdSCoZW4j8W7VdICkTt8oFW57dQCoXtuq', 'W5eiW4xcUCoJWO5TW6RcRq3dV8khW7u', 'jhONW5/cIa', 'a8ohW4hdUW', 'cSoAtSoSya', 'l1a8W4RcOW', 'W4ZdV0pcLW', 'WQxdJHHXla', 'bsVdHmoFW7XZW71Ip0PRWQHtW4qWW7rR', '5O6B5PYl56kS5BEw6l6R5P+y77Yk5PAx5RkA5B2S5zcw5yAa6A2f5Rct', 'bCoNW5JdS8kS', 'WRFdG8oEWQpdQ0TIW4PuW6tdTMK', 'emolu8kyWRhdOsabENtcNSo5aCkOw8kO', 'FSoAWPFcLey', 'WO3cJv7cLJ8', 'W6CbW5DS', 'W7FdLMvLW70YWQ5Mo8kWWQ4BWP7dVq', 'WRtdSCkcjCki', 'WOhcQ2JcGCkg', 'W6WBWRP4WRnPe8oMW4lcNCkwas0SW5fgWQjpqb7cH8oUAN7cL8kIW7hcIcG', 'p3H9mSog', 'WQJdUSkFh8kN', 'wIvj', 'DmowW41aW7iOaSoGW7axWO4kWRRdQSkhW7RcSSo2l1O', 'qsxdO20o', 'kdddV8okW4q', 'ws7dQ38OrWFcLSoU', 'mSkXWOPwWQLBW7qLW43dJKevWPRdRG', '6k6T5Rks5AEi6ls8', 'WRhcVNJcIYa', 'WPVcId8', 'dSoRW5JdTCkR', 'BCk7q8oi', 'WRVdI2LT', 'haeAgZr0nSkzaHKWg8oNaSkYAYjY'].concat(function () {
                        return ['ymofWO/cVuS', '5P2w5OIJ5yM0', 'gNJcOaC', 'lZzaWRVdGCkBhLpcS8kwWOLE', 'WRZdJ8oIW73cUw0', 'WPVcLdSOza', 'WP/dVKfsW4m', 'sSoyW7ftW6i', 'WR9qWPXphq', 'mCojrmkLWPK', 'W7izWOXjWOvv', 'ur9/WO8C', 'aqfWWPldJG', 'uSkhB8o0W6usb8ktqJ7dJq', 'kLjCkmoFhSk6', 'WRBdGxraW7OLWQ5HDmkgWQ4dWOu', 'WQFdHmobWQ3dUu1VW5XZ', 'W6ilWOPyWPbulSoWW7NcVSko', 'WQVdKIbGhW', 'AWFdMgy0', 'fmoADSoGDCkacWNcRCksD24', 'oZJdLq', 'WRBdLSobqri', 'vazKW6zIda5oj8krWQPD', 'saD9W6Do', '5Rku5yAg6kkN', 'BSo4W5nDW5m', 'lu5CnCoraCkVv8kJoSooeqVdKIirimkItmkjEqiSWQJdQCoUW6/cNXBdKLeU', '5Rk75PYD5yw05yAk5P+w6zQb77+i6k+o5lYq55sdW6xcTSodWPlcSSk/5P2D6zM16l2F6koz5OM85l+o5PsE5PwQ5lQn5P+J6zQ8', 'qYvmWRamWOtcOmoQWRfOW49+qJBdI3dcMCosnhZcQtpcKCoFWPC', 'WQxdG8o4W67cUwJdK8kcEKRcMxxdNW', 'W4ldNMlcS2q', 'W4XOW73dRSoPB28ewWb3W4H0WPRcOIpcKa', 'W7ZcOexcJmk3nCo3', 'A8k0W7TiBG', '6lsE5BYguq', 'WRxcIZO+WO/cNq', '5zo+55Am5AsX6lsM', 'o8kDkSoDeW', 'EhHXE8kV', 'WQNcV8kiW4W', 'hmozbJTJ', 'W6eCW6TrWOq', 'W5bZW7ddU8o6FhS', 'WPldG8oVW77cUa', 'W6e+W5zVWOC', 'WRxcJmkKW6BcIG', 'WOhcQ0/cOqBdNsFdK8oUWOnsWQZOJjFLJi8mW7tdP8oYW69lqKxNI6JMNj3LPlVOTAVcSW', 'W6WBWRP4WRnPe8oMW4lcNCkwaEA5UUErJ+wMGEI0H8k4bW', 'h3mDW7RcMLZdSSoDW4NdPSkuW4C', 'WPRdHmopDcPaW7ZdUtf3odq', 'jxeaW6BcNa', 'BG5IW6zImJHeoSkt', 'WQXDWPzfeN9PC8oVFCkh', 'rZPsWRiA', 'W41UW73dSCob', 'eH1pWPhdMq', 'q0O7nW', 'WOldTuXQW7SY', 'xXJdLuCE', 'WPLCWPXWp0NcKG', 'W6GWWQ5KWQrQbmoXW5xcHSkkqHWMW4vmW7zYxaZcLmo4', 'WRVdLmoJW6hcR0/dImk1B1/cIgq', 'WQhcRfFcPCkQ', 'hCkSfSoMWQzPWPad', 'bdrgWQu', 'WONdOSogW7FcUG', 'gtmY', 'WQldH8kadmkc', 'oSkJc8okfa', 'bmolrG', 'CSodWPFcKKW', 'xf50xCkvdZS', 'FJXmW6fF', 'i3RcObLXCgVdLLhdH1NdJG', 'WQpdHCoaW6NcNW', 'W4eFW5JcJmo2WQfrW7tcPa', 'j8ojBCoKBW', 'dmk/WP5UWRi', 'WOjCWP1Wn0hcMq', 'WRFdSK1jW44', '[encoded data, 59756 characters]', 'xmoeW51FW68Ona', 'WQRdIvddHbq', 'WRhdNSoCWRxdNW', 'W5tdTvRcLx1DWRtdGcadwG', 'tSoiW6G5WOxcOKZdRmk8WQSPeCoTW5aTfmojp8oPW59cW5RdV1xcHNCVW6a/WPldS1q1Fxa7oauPWPJcOmo6W47cK2FcGIdcJNTBBKRdGelcQvC1W5XnW4tcMCkmWPX9iJf3v8kMWRSNWOyYxmk9eHRcM1OmWRKfrSofBXldOY5qWQZdRCoNnmo1us7dO0ClWOBcVJlcIWhcI8oMW6FdLrfBWOK7l8kmWP8WW5urWPRcTSkQzSokB2PxW5CN', 'y8k9wmoiW5qTlq', 'sSk4W4jYAwxcGtlcQCoWhfDFdYO1WRyjW47dLx0', 'AIroW5f7', 'W5epWR5DWQ0', 'zmo0WOVcNq', 'd2tcPa1D', 'sCkVW4XNFfpcHIdcNSoQaq', 'wLP0xCkz', 'A8kUB8oRW5q', 'EmofW5uzWR8', 'W6VdMa/dPudcGwpdQSoFWRL7W57dTq', 'DmocW5nmW6CJe8oXW7WaWOi3WQVdISkCW5/cS8oYpq', '6k6x5yEU5R2T5RAS5O2h5P+O56gk', 'WRddLha', 'WRFcRmkkW53cT0O2r3S', 'orqcBNm', 'W4C5WQXHWQfHbmkyW5RcGCkKtW', 'W7W4W4rQWOS', 'D8oHW4O+WRe', 'cSk6dCoLWQXV', 'FJfYW6DK', 'smocW601WPhcQg/dRmkP', 'BJ3dReu3', 'o0Tkj8okfSkmqmkTECorerNdJa0BpCk3zSkB', 'WO3cQ3JcQrS', 'i8ooqCoEDG', 'lYfkWRZdTSkJcvpcR8kfWQDvC00ZDK9TpCo3WP0', 'e8oCxCkbWRldScOctq', 'W6GwW5DXWRKYyCkOW5pdOq', 'WR/cQu/cTXy', 'EI3dQheUqY3cGa', '6ls75BYOWPq', 'iGzeWQddJq', 'WQhdLCosCdDJ'].concat(function () {
                          return ['wrn4W7PJmWHyjW', 'sqXBW71+', 'gdq2tf16W68', 'W63dNG3dQKZcGWtdS8oQWQ9KW5K', 'W4iOWQTRWRrJ', 'WPpcISkJW5JcJW', 'WO/dLmoQW7tcSa', 'xZHgWPqE', 'W6OcW5fGWQWTyCkLW5ZdTSkY', 'fWq6WPLJ', 'WPldSvjqW4afWOjksCkBWO4+WQpdIW', 'oCkLWOTQWRfhW5qLW43cKe8cWPC', 'san5W6z5mW', 'WPrbWPzub15FDmo9AmkfBG', 'WOlcPmktW4xcKq', 'pYBdKW', 'gaz3WQxdMgZdLhqoW5y0WOtLTOpMU4hNKzRcMCog', 'c045W7pcLG', 'DmocW55kW64Oj8oaW6ykWOGlWRZdRSkjW4lcTq', 'cCobw8kB', 'DgBcISoDW6r/WRzcjLf9WQLv', 'W5S3WQG', 'gvjaiSorbmkS', 'W4hcPN08WRldQCoSpmoxdSkmD+AFTUAkR+wiLEEASoAWSUwfQoEaIM0', 'WQZdISoJW7VcT3BdQ8kLB1/cIa', 'd01+eCow', 'WRhdM1JdHsC', 'WQFdICoCWQZdHefRW6jMW77dSgnqWQz0oW', '6ysx576g5PYa5zQ756g05AAd6lwWWRNcVa', 'omkjdSogWRq', 'dH5Ymb1ICSoJW4SHWRO', 'nSkJWPfiWPS', 'WPJcRhdcVrK', 'hb4jhcr9g8kIhGOKmCoRpSkL', 'W57dM1JcKgO', 'WP3cSmkJW6ZcKG', 'W6aDW43cJSoH', 'ew/cVbLKwMS', 'W57dGXT5gCkHW7RcQIaZFtqOagFcTfRcMCovWPddNaldPY8', 'ttL8W4bg', 'BhuxcZ0', 'BbFdRfu9', 'DwhcMq', 'WPlcN8koW4FcUG', 'WR9dWPbk', 'zCowW7DGW7a', 'hmkYWQTZWQS', 'W7BdIwtcVxy', 'WRHfWPzveNrFkCoKESknzq', 'CxHZxmkpdYFdK8kwe8oXW6RMO5lMNPRMVQNMTQBNORdNIl/MGl/LPQhOT6NcHG', 'gWubjde', 'omkPfa', 'd8olxmksWQNdRa', 'WQ/dHeRdRWbwyLhcJCoLWOVdJKafWRCTyGtdPSoip8kBqsxcO0FdGsBcNSkbymokn0fOiSoNW7X0kSkysJDdkCoPkmobW6dcJvClW6ddHSocCSkTk8oIWQNdHInapfH0WRPomSocyaZcVCknW50yamo0D8oyqCobW4ZcM2VcNbBdPgFcNrpdVa7cL8oUWO3cKmooW7/cNh3cH8kJrmoZncZdGbBcImoMWRtcL05DWRa', 'W7FcP8ki', 'xtBdQxiZvq', 'W4ulemoMW7G', 'WQ7cUudcMJm', 'fmodW4hdSSkIW44/WOrzBmoTW6ZcLxvTWRVdQgtcUa', 'WRhdGSoy', 'W5K5WQjV', 'WQpcT8kxW4FcUvmQ', 'WQ14WPzgiG', 'WPhcGetcTCk+kmobWP10yCo+oSkCixjGW7ihW5VcUdmKWObeFmkquCkZoSktFNldKZZcI3VdRCkrkmoXAG', 'a8otW5/dPmkGW5KBWPDukG', 'WRRdS1JdHtK', 'vZ9mWQGbWPm', 'fsPLWQddHW', 'WRlcIsOMEG', 'W6JcGhGIWQddPCo7', 'WRtcVCkCwKpdPxhcUMjAmmkNW6jIt8k0bciUWPWoWOpdPMrDvKxdR8oOqmo5W6HGaN3dQSoOcL3dNCkwuLLH', 'WOlcQ07cTce', 'W6/cUSkgrq', 'WRddJLpdRrG', 'rZ7dS3u0', 'bSows8kMWOG', 'ymo2WPBcL0C', 'WQRcMLxcQWZdPYxdP8o9WPHQW6G', 'WOtdIujjW4q', 'W6NcGhW6WQJdQmo5h8klc8kIomkY', 'WQJdKCotDd9QW7W', 'WQxcRKxcLmkg', 'aeXhbmov', 'AZZdL0uZ', '6i2J5y2654Iy5OoB5AAC6lsh', 'WPxdICkxCmoP', 'dqT0WOBdRG', 'k1vknCoPgSkRtq', 'zmkHwmovW5OYcCkGFXRcPW4PWOyeWR8GW5XzWRzZjYnYWR/dQmk4cexcOmk/', 'W6Csf8oUW64', 'WP/cIZeSWO/cTCkBW5ldVcGmpW', 'wM8WprO', 'zaVdNxaR', 'tCopW7aRWQpcVKxdUSkK', 'WQf/WR9unq', 'WRZdM8oWuqK', 'mmomu8oIFW', 'W6upW41nWROVySkJW5ldSSkYW57dOSoE', 'cCoxDmkZWQ4', 'aSk+eCo1WRfP', 'WPxdVg1pW6m', '5PAG5OsC5OYq5y2+5BsC5zc+55A/776I6k2n5yEp56wY55Ak5zcg5ysF5PMA5O+b5O6F5P6A56gM', 'CMyNkWnQlCoaW4STW4Dkk0NdKdrbDSo9q3fvWP3dHmk1WPm', 'jgiaW77cH38', 'WOtdUmk0g8ki', 'WOPcWRb9gq', 'svRcPmkWW4xcG8klytz0WOZcLq', 'W7KzW4pcO8oYWQ18W7i', 'ke/cGJO', 'lmojASoiCmkpnJ3cQ8koD2/dMZe', 'dYGNqvLKW7K', 'W44WimoVW6e', 'W5m5fCoTW6WAW7axW4TGWONdLa', 'pv5pk8osfSkSvSkfESoxeqNdIYSq', 'WRFdKCotAcT/W7RdRZe', 'nr00WOG', 'W5JcTeKlWPq', 'aCktWOXRWQ1AW5yhW5ddKxLh5l6r55A/55sU5OUy6yw857+o55QG6lAj5B6LxG', 'W7iOfCo7W55tW5exW7zS', 'gJCnWP5puCo2WRbtyW1ox8oPW7qShW', 'h8oRBmo1Dmkofb/cTSkrtZ3dVs0ZAv/cLSkGnCk8WOGMiCkyW67dNSk0mmkeW6TFW7y'].concat(function () {
                            return ['kCosW6BdUmkO', 'iN5cd8ov', 'W4mVW63cMCo0', 'WRldKxjWW6aLWQ18ACo4WQqsWPq', 'tf07kGr2dmoPW5CH', 'WPJcVCkkW4FcRfS3qW', '6i285y2W5AA96lA8', 'W7qnWP1yWOvinCoPW6BcT8kzCJygW74', 'W4hcV8kbxYC', 'FIxdM3m+', 'ksPRWRK', 'cc8TtW', 'WRf3WO1lcW', 'v1lcH8kBW60', 'W4W4eSoGW4qxWRXqW7nuWQpdVSkNk8kLF8owW5pdRMP/eCovquhcTJtcI8oJiCoRWOPuvCoSAt5uf8kuWQa9uNDTWOpdR8kAldxdKCkhWPyxWRFdPcDbW5NcNCoiWOWzmCo+W6lcOHTpxmkWW7VcG8oThSoiiCo1kKqhWQXaW6W', '5R+05RwX56c/5BsP6l6P5P++5OUy5PwP5PAr', 'nmoOgdzb', 'W4W9amoQW4i', 'W7GEW5PJWRKK', 'hSk6dCoHWQa', '6yE0576Z6ygl5yIz5As06lsLW4HH', 'WPFcOb/dJYKnW6FdHay4wSkVW5a', 'yhyMlIG', 'nSkneSoxWQi', 'WPJcRSkkW5RcRhmQrg3cIhGG', 'Ct/dOvq5', 'd8ksWPrHWPW', 'kmk+WPD4WQy', 'bCkGWPzQWQP4W4eKW5hdN0mc', 'tmkIACoqW50', 'jZW/WOHG', 'rZ1xWQ8nWONcKCo7WRWRW4PYxZtdKxG', 'WQ3dImkGgCkh', 'WONcJxdcOmkR', 'DK0ZnXrPoSorW5O2W7mCgfJdHG', 'W4/cL8kyBmkIWPVdIG', 'WPFdVNz0W6u', 'WQHzWPHvmMC', 'cNzwl8o1', 'D8o0WOVcHeVcLW', 'W5qFW5/cOSoZWRPNW6pcUW', 'W7eJW4pcOmoI', 'W5hdOKpcJxL4WRJdGsa+v8ktW6y', '6l6D5O+G5PYp5yM25zUd5AsY6lAd', 'W4NdIh/cOwq', 'W7TUW6FdNCow', 'j8kqk8oyiW', 'WRxcN8kXW6VcIa', 'j8kqhmoqWRe', 'ttRdS0i1tYu', 'iJewWQnEvCoJWQG', 'rCkUESooW50', 'sCoHW5aVWQ0', 'WONdV1RcJtn9WQtdNZycxa', 'fsynWR0eqmoPWRnoAs1Ow8o4W68Rga', 'x2XgW7RdKmo8va', 'WQJcQCkCW4xcOq', 'rCoeW4SjW7uOmmoWW7OxWPveW7ZcGmkgW4pcSq', 'D3hcNSkCW7tcTSkH', 'xXxdIM8L', 'WRpdGLpdVWO', 'wZhcUanRwwhdKGZdUwhdImk2WOS3ASkOfXxcQmkgz8kucbldVLjVcMnCh8oBkcJdQJTdWOLVEWNdUcCcWPCphSo6WOZcIXL0WOhcUfWDWRLKvhCsC8kSW7C', '5P205zMt56cV6yAl57+q5OMJ5yMa', 'ys3dNKSzWRvLeJW', 'tvDPtmkDdaBdT8kfcmoj', 'WPRcOwpcSSko', 'psL3WPldLW', 'WOlcJSkGW7VcLq', 'WRBdGxrkW7SYWRb9lSo/', 'cJmaqhG', 'kc3dHmoyW5j/W7veguf2WQq', 'WPVdJvDrW4y', 'W6apWOH4WOe', 'zCoWWOVcGeVcLSkt', 'dSkleColeCozW5hcUmkrW4pcSMtcUSk6WP/dNmoGA8oBx8oucSoaW4aP5BAj5PIg5PAJ', 'W4tdNKNcU18', 'W7JcQ2SmWOi', 'gSk+e8o3WQHKWOevWQLXrCkUg8kCWQK', 'ghOvW4xcJq', 'vxxcUmkOW68', 'qq95W7ba', 'qdddRNG', 'omojW7/dPCkI', 'nCkycSoGWRzUWOC3WQiWA8o/5Qk25RAE5PsT5OAT5O+u5y2654M35Ogt5AEG6lANW7a', 'WQBcPL/cOmk5lW', 'EanPW6zImWjtmW', 'mmoTW7NdLmkA', 'WPZdJmoBW7RcGq', 'ibWjbJ9Qi8k/aLaKamoRjSkJBaHUWQpdISoJiSotW7FcUa', 'W5WjWPHfjNBcQqK', 'v8kMrCobW4CHjCktyH7dRq4', 'ySkmsCo1W4a', 'WP/cKZ8XWP/cLmkBW6xdPJOkodldSSkpWROEW6GuWPW', 'sCogWRBcMe8', 'WRldILpdVXnjwvhcGmoKW4FcHNazWOK3AH7dOCka', 'WOldVM91W4a', '5yw25ywC5AEF6lsMBay', 'WRddHt5goa', 'WO7dG2v3W4CJWRbIrCk5WQedWOJdTIu', 'W6xdVSokW48', '5Rgb5P605ywO5ys45P6s6zUH77+P6k6/5zYk57QZ56Ux5OQk6kgkxWNdUH50aav0BSkRW5pdNmkkWRZcUCkgoH/cSSonmSohW7pcOmoDmmoHCwyEWP4zWQSjWQ7cQmoVvCkgbfiZW65r', 'bu51xmoteZ3dOSkwgCkdWQLNdrRdSSod', 'DIBdMW', 'kItdHmoiW7j5W6Tm', 'Fwjpr8kU', 'WOBcRtmVWPy', 'WQHEWP1c', 'W447W6XqWOGpzSkoW6VdH8kfW7/dN8oOhG', 'j8kTf8owf8oeW4dcJCkq', 'mSocW4JdGmkI', 'W4qKhCo6W54aW48lW7z6', 'WPpcSCkwW6hcIa', 'WRVcMfpdOvVdKsddSCoVWOn9WQldK8kX', 'oCkNaW', 'WRpdVgZdVaq', 'fw0xW7ZcTW', 'W6xcMSkyW6VcMXvLW5TlW63dJ2G', 'WRddUvldRGO', 'jb4WrwG', 'rb7dHLei', 'sCooW5DSW48'].concat(function () {
                              return ['W7BcIM8', 'mCkHfSoxa8oBW4y', '5zcg55sn5AwJ6lw8', 'rcTkWRm', 'wSoIW4G2WRe', 'gSoEbID+W6RdPqXwpu3dNcrkW6VcTuxdPSk+fCo7', 'WQZdVCo4sHO', 'W4xdO1RcQNnlWQpdJIa', 'WOtdQeJdUafkEgtcK8oMW7BdG24lWRKOAGtdP8kbECo85PUq5PEH5AA/6lsYWOK', 'xSoxW6vZW4i', 'l8kzWRnbWPm', 'dmkbWPG', 'm8k+WPP1WQTrW4eK', 'W4eaW4pcLmoP', 'ySk6xa', 'W57dUNZcRhm', 'omoHjczv', 'i3CWW4BcMq', '5P+f5OMh5yUE', 'lIyveJq', 'WRNcPKpcSCkKjmowWObNBColC8k1nLPQ', 'mHK9WO9J', 'W77cJMKYW6P9W7i', 'nCkycSoGWRzUWOC3WQiWA8o/5PEX5lIJ5AEQ5Bk9WOW', 'WPxdJCkvpmkLW5q', 'Eb5KW6jtmXLsjSk9WQHljmouvmke', 'b8oCW4ldJSkG', 'h2StW6FcIN3dSSoNW5tdRCkwW4f8W4hdI8ocESk1aSkAzW', '5P2/5RYi5RwF5OYX5PYH56k3', 'WONcKhlcVIq', 'WO7dU2vWW4i4WRL7ASkZ', 'WPrsWPfcehHXySo3wSkwASoQW49Y', 'yCoeW7aYWOpcTfZdVq', 'A03cVmknW54', 'W4ZdIxZcI04', 'm2xcGbXj', 'o0HlnmoTbmk2uCkVFmoUaaVdIZSh', 'bvVcIJ1D', 'WOldKY16hq', 'k8kxWQHpWRi', 'euTbnCokpSk6vSk/DCoAeq', 'yZbBW5Th', 'fmk6WQ9OWPW', 'uY9kWPGbWO/cQmoGWR4ZW5L6rttdKhe', 'eSoBwCk6WQ8', 'eeFcQq5X', 'jJKXnbO', 'WP/cHwxcL8kz', 'W6eRW5jlWQy', 'lYbSWRddN2S', 'WOBdRrLIf8kTW7FcQdX0DJ8OrfdcRLJdHmoxWOpcMW3cUtxcPq', 'o0Tkj8okfG', 'w8oQW5qoWOm', 'WOddJfJdVJfqEeFcJSo7W73cHNezWRmVBq', 'c8oobZTKW6RdTHTk', 'WPNcNuJcObRdGa', 'kstcM8kPW6xcGCkrsq', 'WQBcRSkv', 'ncPWWRZdIwBdIeCuWPCnW4ecWQ8OW4ZcLSole8oCW4lcGwawWPa', 'W740fCoNW44FW7KXW7b8WOtdNmkfk8k6t8o5W77dTq', 'lYu8WOHK', 'm8k+WPn8WR1bW7CYW4pdK0GcWP3dPa', 'dh/cVai', 'gJ4wWQ9lxmoiWQHxzbS', '5RoD5PYd5yww5ysp5P2g6zMT77Yc6k2s5zYk57MU56Ur5OUm6kkkW6DYA8kUgHxdPSoyp8ocbbNcSaXsrJffrmkuyehcVrbSWRbroJtdVYeyWO1bmCoMWOtcNriMW5JcSfGf', 'WQ5dWOTiaq', 'nH5iWQNdTa', 'WO5WWRPKnKa', 'hSkpgCo0WOy', 'WPhcIa0UCSomwSo2eCoJWPVdIhpcTJVcN0rdWPe', 'waZdNMig', 'W7/cIgKNWQ0', 'tcVdGKOyWQj+aW', 'kvCEW6/cUG', 'WRtcT8kmW7dcQG', 'jZr2WQ/dPW', 'pYZdLmopW4i', 'ltetqu0', 'pmojv8kbWPxdQYagw0hcJmo5bG', 'W45/W6hdPSoUFgeNqq', 'vmoiW7yY', 'yCopW74YWPpcVuhdISk8WQjOuSo/W5C1', 'W6JdQwBcJNu', 'WPxdG2FdMYy', 'l1HnkColhCkRCmk/DCoAeq', 'WO3dNmkfpSk5', 'WOlcN8kTW6xcSW', 'WPvKtmk7W7m3W6KhW7Lw', 'pmkmk8oYlW', 'WONcRf/cS8kOkCohWR4', 'WO7cLcy/B8olt8oXfCo+WOJdIq', 'FZhdLxiD', 'W7SbW65QWQ4', 'l8obuCkuWRe', 'WQBcT2xcHSkJ', 'j0NcUHH2uNZdTvddIwpcI8koWRiHBmkOxHZcR8oxmSkpgXJdOKXPfxuBhmoAB2FcVWfUWQ1xp2ddOIfwWOSDf8oHW4W', 'zaNdIfiQ', 'W74yW4RcHmoG', 'pfz9p8oqea', 'W6WwW7JcI8oF', 'W73dK1/cI29rWQpdVtCcC8oDW5uLj0tcPrNdT0bjWRRdGmkgsgDGzCogW7pcRGBcQLvU6i2K5y6B6lEL5B2v5AEW6lsN', 'W40Zo8o9W4K', 'ACklW5bWsW', 'W7JcVCkDwWpdPgNcQx8rBmkZW75Kx8kZoMqXWPaj', '5OYJ5lM05BAz6yEe57YB', 'D3xcJSkhW7ZcV8kHCaS', 'ECoWW4qKW6miWPL3W6hdI1yuWOhdPvBcNv7cGhCOAer1W77cNCklj2eKCmotyCogCCkxuM4haa', '5O2d5P2Y56o45BEv6l605PYm77Y25PEN5RgB5BYj5zon5ywg6A+k5RgV', 'EJVdQu0EWQjLaYaEqa', 'WOddJfJdVIvkEf/cG8oSW4xcGgS6WRS0AZNdU8kgFG', 'fLDuf8oF', 'p8owW4ldPmk7W6yUWOvti8oNW6G', 'W5SQWPPzWOK', 'W6OlW4O', 'W7qmWOvEWQK', 'W4lcS2aLWPy', 'WPRdTtHnbG', 'W4SwW4RcUCol', 'yZ1SW6zr', 'dSoDv8k5WPK', 'W5aiW5xcVmox'].concat(function () {
                                return ['wWrKW7jKiazo', 'WQn8WOTGgq', 'W6/cP8kBsqddLxBcQgrQtmka', 'WOFdImo7W5dcNq', 'fmoADSoGDCkacZW', 'WQpdGwzXW6OKWRvAACk9WQOz', 'h2StW7RcPN7dPmoAW4NdHmkCW4XUW7VdIq', 'zoAzNoAwQEwMTUI0OU+/REs5Q+w8VUwqIEs+GEEuUU+8La', 'lvPckG', 'yK5TASk/', 'gcOqWR5Eq8oiWQvyCW', 'yCoWWORcNfFcI8kEWR5S', 'WPtdHCoJW7FcON/dGmkL', 'rHVdQhy8WPvjmqyGFa', 'lGKsr0S', 'W6ZcQCkDrG', 'tmoLWPBcGfBcTmkyWQHSw8otcG', 'hwXKfmot', 'dCkUdCoHWQPZWQugWQq3', 'W4DzW6FdU8oOyxasqanpWPVMUzNNK6tcUMBdNbxdMX57aSkrfXb/W77cLcZKUQ3NKAVPHAxNVltLPQxOTBNcVG', 'gr4HWQnY', 'W7NcNCkIsZu', '6k6u5yEM5R+Y5REo5O2v5P+h56gs', 'cCombJfHWRJcUbGzmwxdIbblW7RcRMBdVCoXxmoZWOBcUKxdJw9NW6GZ', 'iMuvW4JcQq', 't8k4W5fSBg/cNalcGSo6evO', 'vCkNW5LOzW', 'CxHZxmkpdYFdK8kwe8oXW6Pceb7dUmodW5PwW7xcOmoqWQimfmk4WQ7dL8kmWOddHConWPZcRCoy6i6C5y676lw35B6x5Aw36lsQ', 'WOhdMmoaWOddMa', 'xSkXW4X9zgZcOtxcI8oRfW', 'WONcLcaZC8oyvSo5eCozWPtdG10', 'fLuXW4/cNq', 'W7NdUeVcL3HsWRtdVYaEwSksW7CVa0tcTIFdS0bwWQu', 'WONcSmkNW4VcJa', 'kGCygsv8nSk+', 'm8ojECkKWRe', 'neOwW4pcHq', 'W6RcJSkAxZq', 'W6FdH3riW7uLWPK', 'DCk5ECoFW5SJ', 'WRtcU8keW4tcTfS8rfFcH3uGW6ZdKCoeWPy', 'W6W4W5VcVSon', 'pxRcVY5Ksw8', 'W7/cQCkBsq', 'WOddG1ZdPbzjB2BcHmo9W5NcMKafWRqUzGNdTG', 'd8oXW6xdVmka', 'WPxcPftcS8kAkmobWQzKA8onECkZa3j6W65MW4dcRI4Z', 'wmkEW7L1Fa', 'DSoTWPdcGfBcISkUWQjXwq', 'WQBdHxjT', 'BWLlWQKDWO7cVmozWQSPW7y75RI055gB5AAo6ls6W5pdNa', 'i2lcRGrHuwVdQepdIeVdISkQWO43ECk2eH/cTCoibmoyaGNdS0K', 'xKSXidW', 'AYjFWRukWO3cQ8okWRuJW4P1DdpdIq', 'ytFdNLax', 'W7H7W6ddVSoYya', 'rZ7dPfS9qsJcMSo0FhGp', 'c8kKWRnWWPm', 'WQxcPtW1zCoXtCofbSoLWRdcJw3cGGtcHvfbW5tMLzlMJQpLUAdLTQRMMi3MLOu', 'ps3dKq', 'W6mvmSo4W6u', 'WQbyWP9ojq', 'CSojW7CVWPy', 'WRBdHComBIPOW57dRZy', 'WPhdG8omsZu', 'WPVcTamTvW', 'xtfeW4zc', 'W7KjW4NcO8oIWPTWW6FcVdS', 'ke3cHH5j', 'W5mSWOHlWPm', 'W7znW6VdK8oF', 'W7NdT0/cJvjrWR/dJIa', 'oCkLWOTQWRfh', 'keZcJJ1l', 'rs9GW7TX', 'aSoPq8oMDq', 'jSoigZPLW73dRqO', 'tdRdIeuiWO9PbdSFF8kKFCkJ', 'F8o6WP4', 'zmk7wSoFW7mPjmkWwaVdPH4', 'W5etW4ldVSk0', 'gSoEbID+W6RdLaTnEXhdIcXDW6dcUg3dISk+hCoMW4O', 'uNGqW79pgSk0', 'hmk3WPHAWRK', 'WQFcOL/cSSkSk8oGWQHNy8opF8kOieb5W69tW5dcVYu0', 'BSkAwCohW5a', 'mdVdNCosW4u', 'cSkFWQDUWQ7cLvhdVmkXWOG', 'W4iPbSo6W4ubW6WaW7DgWO/dMmkGoSk7y8oKW7tdTNq1cCoiFa', 'pLrzi8omamk3qmkGEmkDwt3dLIaqpmkMxmkiCHWSW6BdLCogW6JcMbZdIr93fLn1AJbvWQFcHJRdTMC0WR/dQLVdULffxfVcNcpdGt9ntmolW6aCWQmSgHrrW7f/iciYW5NdTcfjgCkWEd/dGSowW5VcNmkvWOCsBCkRW5G4W73cLd7cHmocW6BdTW1WnNdcJ8klW7xcTSk6WQbre3pdGCkNsCkZW4TNf8kFEq', 'tMfiW7GFbCo6WRzBuHHC', 'wbJdQviG', 'C3jUtmkj', 'g8oaEmoPy8knaX3cOCknD2K', 'jZWUibi', 'W7BcQSkwAJK', 'tCocW74XWPVcTfFdUSkcWQj6smovW4SMfa', 'W77cGg4VWRtdQSoQ', 'xIFdPgCZ', 'osFdI8oAW71XW6Xtk1P0WQi', 'pSk1cCotWR0', '5P2P5OI75yIY', '5Psr5OAD5OYj5y++5BAh5zoN55AX', 'WQhdImo1W6VcRW', 'ubddUeiV', 'vCk4W414CwG', 'WORdKSkymW', 'jHesbIrRamk0aX0', 'qexcOmk3W6u', 'lY5oWQBdKCk6hMpcQmksWO1qvuOZFuz/oCoLWPPksSkGWPr9ogyx', 'm8ojA8oP', 'sSkSW45wyq', 'hYG2uvnLWQqTlbnNW7OaWPzHWQFcVqtcPX7dU8ofW7SfWQ7dPmkR', 'oSkxm8oHWOC', 'WRNdH8okWRpdN3f3W4fK', 'nHhdPSoeW5u', 'ktf4WRddRa', 'wColW7a+WPBcVxFdVCkXWRnS', 'W6a/jmoAW4u', 'gSomySkTWQ4', 'WQRdVLFdJJO'].concat(function () {
                                  return ['b8ojxmoStG', 'hJmvWQe', 'w8oNWORcM2W', 'WQdcMLtcR8k0', 'WPxcQ1dcQCkPk8owWOPJESoIDmk1pgzGW6vcW57cSI4K', 'cuTiiSo3', 'yCoaW7OOWQdcVLBdOSkYWQjNx8osW6KIbmoocCojW5jvW5u', 'lXzNWOtdHG', 'W6NcKgO9WRxdTmo3aSoc', 'dmkhmSo9da', 'FIrVWPiL', 'hCk5pSo2kW', 'WRRcTKlcRW', 'WQVdRxNdRbq', 'ctOqWR4evmo6WQHxCH9UtSkMW6C8gmoIWQRdRwSAEWvUWQ5JkmojmSorWRyem8kIFqdcTmk3WOlcP8oIASkUggzfBfXzWO7dSg/dOwD7sCkrWPnttCoOeSopia3dSSoiW7TuWR1xdmoblSk9wdxdTSkXsmkEmLdcRYKNW7zjDeDFW4SiAmoWdgyirq3dQ8kXW6xcG8onW5xdR8oWW4BdKtpcQCkjW4hdPmohbCoEWPRcHSkQsSkAWQ7cMKVcP8oXW74hbCkjWRdcN03cHYdcIHhcML7cISo6guedo8k+B8kRWRxcJ2CWW4RcU8o7W6fPj8oEn8oXv8o2CmorWRdcRg7cT20VW7Pgh8kpWOOzW5mQW5FcM8kklCoXv8o2WPDeWRLCW5FdMCk9tYWQavpcTmo8W7ObWO0lWQdcGCoaWOiQW5G0kLSXlZ3cQZjvWQHpd2RdHZ5XW58oqtP9C8kJWQVdLmkTWRtcTX8afhhdML5JWOSPwSo+WRVdSmkHWQtcNmoiyvxcGSokW7HQw0ruWRxcG8oNrq3dUxRdUCkEWOmAB8kUWRZcNSoIpCoFhHBcKGqvlvfgng/cHSoHgtDvW6WiqSkNWO3cPW1BWPiBW6ardmkNsLS4z8o9WRXVWRBdOCkrW5PQW5PMfsr8juVcJe1/WR3dO8k8arlcRgL9W7/dTSkBomkBuCoVWQmJW6y3W7zuWPzCwhJcMrBdUmkNxaldMmkJBSkcWPddOCo4WP3dGaiJWO7cKuFcMKfTWOxcIaZdOSk2W5DeWQRdR1THWPNcNSkvW5hdN8kPDmojkuldQszNW7zIb8kDWOvGf39eagJdSMfKnmoLr0eJW4bZrCkzWQFcRHamW6LtWRfhs8oAqqKUomkwWPXIWPG4odjPW7rkC8o1bJSahCoGzmoOwmodBhFdSmosW4XIWRikC8kHW4BcR8k7W7NdL3WirbvHr8k4DfVcI8kSzepcRtWPW5NdJ8oumriOyhZcOJCcW68QWOmyW6ddLCkxW5SbdmoSimkRBI7cKSoqWROaA1pdSSoQWPPQx8o2WOXyWQ7dSg46W5udW6ddUmofdmorC8k6W4TSk2P7W4nrWPeqW57cOuFdS0hdMY/cUmogW5qBzmk8WODYbmk1w28HBCkGWOVdM8kIh8o6W7RdTGtcTCk6iX1nCmomhCovcaFdMX5blhldMSo7W71InmkqWQNcLrNcTur1WQ7cOSk+WOpcJuNdTWZdGqxdOmoeBt55WRNdItrSW6JdJCkkzSk0WR0arvCgWPCBcY5WW5ycWPJcOCkok8kcWP/cNsxdPK7dHHfpFSoRWOpcSSkKWPqCnmkctgWSW53cOZrylhldJ8o9drmvFu4iiCkwWQpcHsW8m1FcUwRdLHhcTmkdWRJdP8kmW6yoW6ekWODlC8o5W4rhaK5+p8oGnCkwW69UWPfvdbSLEu4hzeGKECkhWPOJ', 'h8ohgZTJ', 'mWrUWPZdRa', 'WQFdK8kDgmkA', 'lMygW77cGwpdVmo9W47dPSkhW5D7', '6k6x5RoK5AAC6lAY', 'WPtdRWPGgq', 't8kBz8oJ', 'WPVdGCoGW7JcNG', 'eSkSi8oFjW', 'taVdIxms', 'kmk1WOL1WR9wW4e', 'W6P1W4ldOCo4', 'evHbkmokfSkNuq', 'lsb2WQddHhhdJxCiW5GDW5ec', 'WO1OWRHYmq', 'chdcLszN', 'z8okW5KnWOe', 'lZVdHmoBW7fvW7fekvnkWQjsW6e9W7q', 'gCoQWQvjWQXAW4mLW4pdKWqHWOFdU2pcNbhcIfXEf00', 'W7tcLgenWOi', 'WQHcWOL0hgzizmoR', 'bcDmWQxdJW', 'iJfVWRRdKW', 'pCk8emojtmogW5hcH8kBW5xcVddcU8kNWPpdMSosx8oY', 'W78lW41TWRGZuCk0W44', 'W405gSoUW54B', 'fJiTta', 'AZPrWQGAWQZcQ8o6WQONW4X+', 'EsFdHeO', 'WQ3dHM7dSXXg', 'yNrvESkVpXJdGSk2n8oPWPHnoIFdMq', 'W4pcTMuiWPS', 'WQ7dOqrNaCkTW6hcVW', '6i+05y6t5AsZ6lEY', 'EKyXidu', 'ttpdQhq9tHpcH8o7Bvq', 'AdFdQNS/', 'nZDfWO/dRa', 'xvC7na', 'WQFdOmoeWONdNW', 'fZ0qWQm', 'W6ZdH8oBWRddHNzh', 'ncPWWRZdIwBdIeCu', 'vSkIumohW5G', 'WO7dLg9WW7SAWRH9DCk3WQGs', 'aqVdKmooW6D5W6TXofDfW6FMNiVMI6RLIAhcOeb3W5S9WPhcSSkE54UG5PYC77+X5BkS6k+b55I06lse5B+Tcq', 'rWbZWPm0', 'bCoDFmk7WPC', 'WRFcV8kxW5RcVq', 'jSkJjCoQWQ8', 'E3FcJSkkW6BcOSkqvGroWQS', 'FW4AAmknrCoXfmo5imktrvZcJa', 'WPtcSHW2ya', 'h07cLZ5o', 'aY5aWR/dVmk4hu/cSSkAWO9pAvy8v0zol8oIWPjD', 'ESkYW41Ryg7cHJi', 'WPlcGwlcUcm', 'lWyC', 'WQ7cLcyGzmo/uSothCoMWOJdNHBcQ3ddMGW', '6k6I5yAa5R6K5RAc5O+Q5P+156kI', 'W5FcSuyNWO4', 'CxHZxmkpdYFdK8kwe8oXW6RMNlJMIihLIzNNMjNMSzNLH6ZNGOFcQG', 'bIL/WQddLG', 'WRFdN0NdULXlzwtcK8oMW5pcMG', 'oCkEjCoXWQi', 'FNhcI8kgW7VcTmkusWbBWQdcT8ocWO8', 'tIzoW4DB', 'W7/cQCkDxWxdUa', 'gsTeWPldOq', 'dmoNsSotvmk+kW7cLSk1v0/dSbStwNtdOG', 'nJm+WP1D', 'dYPHWRBdHW', 'zXLS', 'W71dW6xdUCoC', 'WR3cRepcRmkViSoDWQ5UimohF8kOogDHW7yjW57cTIK+W50oFW', 'WRFdKCotCZf/W7ZdMsD3mJ0jpGq', 'i8k7b8owbSot', 'WQlcJbuNWQO', 'WQxcLhNcRmkc', 'WQJdK8o+W6RcUwJdImkJyqxcHMxdLq', 'wSovW7a2WPS', 'W6KWm8orW4S', 'WP7dJ8obWRFdTq', 'DSo4WPJcMK4', 'W5yOWR8', 'WOtdSG9OaCkT', 'WR/cKYG+CG', 'W77cJhOGWQddQ8o7', 'WQ/dH1ZdVHrkEfK', 'WO5jWP4', 'WQHeWOTuhgfkDCoHj8khC8oUW5nZW4/cOd01sG', 'W74Sg8o6W54+W7KbW6T4WOddKG', 'BYvyW7zK', 'WRZcN8orCmkxW57cLYThxbJdGfaaw8oRs0iAs1z1W6BcKCoVW4VdUmkFWOq', 'vHb8WO85', 'W6u/W61kWOe', 'WQxdI3rIW6muWRj9CSkdWPWZ', 'CSkSW5Tlyq', 'W7z1W7VdPW', 'gcOobYn3iCkDhXekv8ovh8kjr3ROJRZLJjJOTytLVi7LPB3OTP/cOW', 'kqysgW', 'WQNdR3jQW7K', 'WPhcScKEWRm', 'WQnfWO1xxwniAmo2Ca', 'WOtcRYySWQ8', '6lEe5BYLWOuj'].concat(function () {
                                    return ['W6GOWQb5WRrlbmofW4pcK8kSra', 'du5CnCoraq', 'j8kic8oLWP0', 'ssRdTwuZuahcHSoUCr4kp8kikMavWONdIZ/dGSoN', 'tSk8W5fX', '5P2w5R6D5Rw/5O6Q5P2/56cw', 'maeAbZu', 'WQRcNuNcUW', 'CHjzW51q', 'uSksxSoJW5W', 'WQdcLSkYW5pcLG', 'W4C0WQ5+WQzPe8oB', 'B2LjAmkV', '6i+u5y245ywE5zk/5AES6lAH', 'W68hW6zfWQe', 'pmonu8kwWRxdOtCXxwpcNSoIhmkkx8k4WRC', 'WRVdK8o/W7e', 'WO1nWQ9rfq', 'j2ygW4dcMNtdUSoDWPlcRG', 'W5yoW6pcHSoV', 'F1BcVmkEW6a', 'W5qxW7/cTmoOWQS', 'WQ/cRuC', 'hGfdWR7dRa', 'iCoqCmo0C8ksntBcQSkD', 'W6GQlSoyW5O', 'WQJcJv3dSWtdHZddSCoLW4WTW4tdQ8kvyCoRW4hdJ8oACgCKW7j0vGpdOdjrWR5mWRWlW4ieW7bvW4L1wmoAWQL9u8ozW4OZbbmMi8oqWR0Wemo1WRhcTSkqWPxcMKNdQgiuWRbWWRFdKW', 'wc9qWRWAWOK', 'W4CkW5W', 'W51PW5VdK8oX', 'W4pdVuVcKha', 'W6tdG8o4W7RdUxldL8kIELG', 'e8odW7NdJCkC', 'Cmo6WP3cLG', 'WRbjWOfWiMVcMqPmWQRdHuy', 'WOhdO2XBW4S', 'fqddL8orW5K', 'WOxdRNbeW6S', 'AmkNs8ovW5yYiCkLF1lcPrH9W5y', 'WPtdKSkfpmk9W7lcIJTwlMVcQq', 'iSkJW4/dGHtdJSkwWQ9tsSoJdq', 'wvjHqmkJfsxdNmkqbCoCWQ8', 'WQDzWPzUhW', 'fSo3W4OUycRdNw7dGmo2qeiCr0rTWRqDW5tdK21gW4BdL8oIWPnhW4/dRNBcSxddH8oxW7VcVh4HWQpcSsxdO8ofWPRcV8k2WORcKJGnW4P8W7FcR8oUW6aCW5/dIY3dG3CFWPTBW7FdHSoCz1f4DSkqW7yeW5BcLSkazgugoSo/W4q5W5uTW5xcLmo5o3NcS8o8FmkoWRhdQCoSFMb6W5VdImoZW5HmWORcOfWaWONcPtfhW63dL8kUySkIvMBdI1mxW4BdOZZdLSo/zmkHW4VdTmoNfSo9W5pcKSooWQRdSCk6u8onWQZcMSo7W5SIW53dMSovEJzAqe5gWPVcQ8oIW6LBrufMW6eAWPCkWOtdJmk5WRfJW7KMWR1znWebi17dMSkyW73dT8o/WP7dONNcSuboymo6W59nWQVcGN7cM3/dOmkzW6WhwutdSZiODmo6b8kKWRBdImkSBmoHgLqtoSk/vGiCWQWyBGHYW7f3bCkvahdcRKZdRLNcMeqrF1LNyLZdGNnDWQWYWQ5RvSk1mCkTFeuoW6hcRmoQWPeBW4WWW44FWRSxWO3cTSofm8oLd8kmhXu+B8kUW7pcS8oiW40jW6ddT8oBdHFcNeGOWQ3dI8kUWRVcIXxdRhhcHCkeWQVdUvubW5fAcZ4jWPdcI1xdL8ksW7xcJta7WQ48W4BdICo2sNPRWQxdS8ozDYlcL0hdGmoFW7ntW5XYWP4gdYBcLaDktXZcRSkItaNdQddcJZJdVSkrrMzOd2ZcISohiYdcK0lcImkmW4JdJqO0W48ue8k1g8owiHZcHSkWsN9TW610WQ/dRWNcH8kGW7qDWRBdGmkzWRlcL2xdSCkdW57cH8ope8okzXClWPxdNt9yWQZcPv00jSoRcComoXBcOgfCtfhcJmkSWRtcTCkJW5ZcL0xdJmocWRZdTx/dHH3cICoqW6tdQw7cPmokx8kBWQL6uCkzW6BcGs/dSCk1tCkBdCkqa8kxWPjcCLybWQ7cGmozW6yJkSoHtY/dLmkeWQjviwNcP8o+F8kdf8kGW5WODYeDW448WQBcKCoEuSkhWQNdISoOWQxcPNFcHgmkW7LQvI5kw2hcGK9NuLrbWO5CyKRdVSkIl8kKtSkhA3VcImkTWPFcILv4W6PbkYqNWOFcTCotb8klWOlcKSk7xspcUmoZib3dHCoiWR3cUmksDwdcOCosWRvJW4jNWO7dS2ZcPgZcPmkSBLVcH8oiW4XTBCotDGPKaviZW6/dLCoZWR8BWP1JW6BcMSoKW4udxGJdQhNcMX4xoZO0W43dJJiJW6zoW7vbWOGZlSkLshXQC8khxGNdHuJcH8kNWQjjWRRdVSo0W7ddO8kCW5C7ySkUWRGRW4hcSHrwWOxcH0pdOL/cJSooeCo+bYldTd4qySoDnmoUd2K9W73cP8owaNFcTd5EW77cICk8gh3cVv3cMSk5WO3dNmoWW43dUwauWR0jW5JdOWu0ss/dJSkVWRxdOL3cU13dVSojtCkhWQxdOSoJt8oVzCo+W5tcSf0jWOZcSmkGu8kArL0XWQpcGSkkWPStWRJcI8ozAWTLWPBdKKvtqCoIW4ibW4RdPCooW7jjWOJcJ8kJWQGFxs1tW5vMgaGmWPL+AX3dPMRdPSosWOXzBeBdM8kVW701WRzdbYi3W7dcRSoKWPW/e8oieWX6xvymohlcOXaBWRldI8oksJJdSLdcTSouW60oW5bUsmkBAgdcRSo5p3K5WR3cUmkAWPuYWOhdRcKkDxZdGSkOdmopfgNcJ8kov8kPrGdcVraVWPLlWRmFW4/dMN7dLYCxuqpdI2P7v8oKW4SuW6JdHNRcLMxcN1ZdPSo9WPxdUhK0meGAiSoiECklWRHbWPHTFYdcNeWBjx/cKCoLnHGlDmk5W4qwWPzpBSoIWOBdGmoqW53cMaVdLxxdTCkjoCkEACkSW6pcIZTJW5fGW6XFW7xcGMa+WRVdJmkvWQTkW7lcJSkTvX3dM0aTf2FdOmodqCoRW4L/mdxdK8kTWRDidbGQyCk1WRmNWOVdLgPVWR7dS8knWOFdT2/cMcxdOmoUW6vziaNcV8ovEICvWQhcO8kxWO1DvCkEu2dcUrL9W4Gcw8o+aSodF8kNyCkdWOXizCoQnmoodwNcL3mxBSkEWOjmW6vGW4tcI8oXWOHFWO3cMaxdRYJcOCocuMpcTCk9yCoqEeLwWPCVbhPEWPddUSo0DINdL8kbWRxcGmoKW5tcJmkky8kXW7DOCmoEW4xcNSoUamkpW7DMW7raECkAt8kKW6/dMmk7i0vrkrhcVXjlj8kVlvS6W4pcLrlcOSoQpcyeqJqrWQhcNr3dSCkCuCkDWOHoW6/dH8o2WO7dImkhcmo1W71hkq/cI0tdJbTAmh8PmCk5WPxcU8kMiWW6W5ntcGRcM8kkWRBcNh3cQ8ouWRnjz8kWgMVdNCkrhe/cNCoHW6HwW6/dOuG6uCkeyZ89hLZdU3ZdTr/cSCkjfCkoELdcTvVdUX7dLJVcSYJcQGNdJSoQW5pdQCkwDY0poCoSEetdGSoNWQddHLvWfKNcNrJdOsnzzmo8D1tdUu3dSflcUSoAkWu1gqJdQI5CESkentldTSk+jWtcQSoYF8olW4hdPWxdHCkjWOnruGCGtJPqt8oQW6lcLhdcHmo6WQveWP5vgSkJbSkVWOdcQZiZW67cMLZcQN8msqKDrd02gmkqWQDEW6P8dW9GWOyFwr/dTvXSW73dIgVdN8kwWOSJWRtdK8k5W6ZcPqvKWRy4j8kwiSorW41KW6ihWQK8lbjIk8obpa9JqJddGCoKFHhcQt16WP7dPSkoWPZcVSknWOy0WPL1omo6WPG2nmosW6FdLCkqkYxcSbhcLX7dKCkBWRCynmobW4nPW77cHa7cQCoybMVdOComomkPWRT7bSozbctcLfNdNSkJiKtdT0JdPwRcJ3tcKd04wmo2hsS8xmoiWPVdGCkmWRBcMCoVu8kXnSkvpmoyW4FcHYlcLgtcMX3cMCoSWPtcImkWifNcVSoxfGe3EmkNW6BdQmkzWO5yWQyzBrHus8kkje1RW7RdNY5vWQDrWOZdLmowhxdcHmoVWRVcShLfW61zm20zuCk6oCk0A1ZdI8o5dmkbW6FdUCoMmwf3cXHWWPpcJrhdPmkcEsP3WR5jWQJcKWZcISkbWP5GW5pdR3WKlcvQjeLrW502CCkoWO7dRvlcLSkgW6BcTgTvW7ebmdVdVSk3W6pdNLbfW7hdU8kPhmkYWQxcUmknW4eJWRboEmovgfxdGNJcSfSfbmosdxxcO8oxtSk5W7qGW4NdP8oyW5OsW5euoCosqtxcGHFcHqdcLCkfACkPWQZdK8oaW55SjSocW7uRW7iKWOXhWRBdHN3dQrRcJaVdIx0Ql0XHpSonW61ZW5DVfmk1EdFcIxqyWQ0cW7ddKH4wvmolWOVcJe/cTbq1pmopFxtcOCobWRf/W5a5A8oYi8ocWQnJWOxcUMNcMSkaWPxcKSoEWOfsW4DwF8kifSojfflcMmktD8oMqGxcGGFdGmorW71yW7/dVqtdTY0CWO7cLfBdSwFdRtiIgLddTZ7cIJCsW5ddOmogW4zLW5ZdGcNdGSkDuSkyp8ktW4RcVmoiWPNdKCo8WO99WOtdKuZdG8koemkeo8k7WRVcK8o7WR/dUHNdQmo7W5RcO0Wxx8knWQpcRSkNbmkGeXK/pvFcV8kEzmkamCk8WOySB8kxW5xdVSoI', 'W7L0W6q', 'tCotW7aUWPBcTKhcP8kJWQj7sSotW5OMpCohk8osW4jvW5pdKXe', 'W4q9WQ5NWQXJeSofW6pcHSkQvqO6', 'W715W7hdPSoUyhyxqq11W54', 'W6ZcOSknEZy', 'iSktnSo7WPC', 'AKO8lrvRk8oJ', 'WOJcLsOOCSo7', 'mmkMbCoBdSotW4C', 'WOJcGZS0F8oXuq', 'tmo2WPhcLKhcKSk2WR5MACoadSkYiCoN', 'kSkZWQXUWRW', 'W4dcI8kAwH/dUwVcI2jqqSoKW4v1xCk/vMuZWOOjWP/cS3nmqvNcSSkZ', 'h8k4f8oAWR0', 'W6u9WRXLWRv0aSotW4m', 'WQddMSow', 'WRpdGmobWRJdJe5DW5TMW6NdVq', 'hmoRBCoGuW', 'f35Od8or', 'W7GoWQbLWPy', 'DJddNu0EWQjzeY4yxa', 'chJcPGC', 'dYOTvL9/W5uMibbRW7W', 'W7qJW6pcJmoE', 'tcVdHuepWQXpgsujwSk5DmkI', 'aHvsWPpdQLFdPW', 'W6JcGgKQWOFdR8oYcCo2gmk/na', 'W6/dKtDUWP7dKSor', 'WQtcQ8kxW5RcT0W/rxhdH3qGW7y', 'WOFdJCoQAre', '5PEk5Owa5O+L5y+H5BAU56AJ55wO', 'pCk1WO1yWQ5CW7eLW44', 'y1dcQ8kMW5e', 'du5CnCoraCo/54MT5P+G5lIz5yEb5A+n772M5Rgx5ysR54on5P255OQV5yI/', 'W7ajW4RcMCoj', 'C8ksumoNW5e', 'W6KrW4SzxhDFCCkHz8kxz8oY', 'WRdcLZ8RWP3cL8kmW4W', 'W7KkW4pcVSoYWOvHW7xcUZ/dOCkm', 'WPlcSmkaW5ZcGq', 'fmkDWOXsWOC', 'ftrDWQFdHW', 'rYRdJ3el', 'W55sW5tdGCo3', 'WQpdJCoCWRq', 'tCkVW4PY', 'W4uEW5NcICof', 'FmoXW6vBW7u', 'udv+W6DLlHLTjSkFWPayimoDvSktWRv95zkM5lI06iYN5y2W6lEZ5BYh5AAg6lE8', 's8o5WOpcOKm', 'u8ogW6S/WP8', 'W7OhW5bMWQi2', 'W79oW6VdImov', 'gcOobYn3iCkDhXekv+ITUEwoHoI3PUwpS+wLQ+I0RSo0', 'WQhdLM97W7ycWQ1Qz8kIWQOt', 'WQNcT3pcImk6', 'axm3W5pcGW', 'WOxdHCkbnmkJW5tcUIXdd10', 'WQZdNL/dUqzxy1RcHG', 'WQddICocWR/dGeD6W51+WRpdVg9iWODykCkuWR05W6Lz', 'WRxcU8kwW4BcRuWSuM0', 'DmorW5bAW7iajSoWW6azWPWb', 'gdWp', 'nCo7gsrc', 'W5a9WRTzWRrNfCot', 'WQldTGP7aCoOW5tcRJOV', 'pCkaWQfyWRq', 'W44oW4hcOq', 'bYDDWQy', 'sKq+nq', 'WRTuWOnWpG', 'gsuTuuHKW5KZjX4', 'g8kNiCo+mW', 'WQjFWP1cc1XC', 'W6RcKhSM', 'lSkIWPb0', 'W7NcMCk5wqS'].concat(function () {
                                      return ['WQFdLmo3WQ/dQW', 'cqK8Cf0', 'jX4Xue94W7GAoXjFWQG2WOGMWRFcSvFcTqJdVSomW59rWRZdTCoWW7niWOXPfej3qCoyBCoIlSkcWONdIIVdVv/cGmoHW7FcRSklWPKeeq', 'kCkfWPfmWOG', 'AY1BWQ85WO7cVmoIWRSJW4v4wq3dNMVcGCk9kMtcRJ4', 'jSkGc8oonSozW4lcM8kx', 'W5a9WRS', 'etzF', 'adSvadi', 'WRldL3bqW6aIWQ9TyW', 'WRpdKCosDdDIW7C', 'WRtcQ8kgW4RcVu08', 'B8kmBCocW6u', 'WQ/cSupcQmk/', 'WPbYWOXvahXiv8o8zSk/k+s/OEEwKUEuQEAkNEMgQEE8SUEBHEI3Gow/KqO', 'fmouW4tdUG', 'lmoJvCooyq', 'r8ooW5G', 'WQbRWRzsbW', 'W7FcGhS9WQddOCo7', 'W6qRW63cImot', 'WRpcHLNcVWddLJddSa', 'pKLbpSohjSkVqCkTymoyea', 'WRhcI8kjW63cJa', 'xLrvwSkoctVdPa', 'W5iEW5fXWRKmv8kIW47dO8kWW4K', 'hCooaHb0W67dVb1CwLO', 'EeKmgIjZnSk/qa0LfmkIDCkUAZrUW6NcKmkOCSkWWRNdVZddHmonFHVcGSkhWOBcGc0MWRVcKSkSySoKdqRcJLBdV8khdw9kW5ddVmoiW6miW5fSeuhdMWBcHfdcHCoqW409WQnFbSok', 'gILrWRuiWOJcQq', 'W6NcOf4fWQS', 'WRhdHSodWPpdMW', 'lX3dJ8o4W5W', 'xtBdQsvU', 'WRJdNSo7WONdPa', 'WQZdNftdVHfnB1a', 'nSorEmoODa', 'WRldIL7dHXngyL3cJ8oSW6lcHW', 'bCkZWPz3WQPqW5WJ', 'fCosW4VcUSo3', 'WRVcI07cUGpdKYhdPSo4', 'WQNcTJmRzW', 'ua9PWReO', 'ht8WCeq', 'EafIW6f1ktrpmCkDWQXroCoCxCkg', 'bmolrSk5WRZdSdybxeFcImo/hCkZuCkI', 'xvr0rCkpedtdOmkb', 'tmoBqCkhW7ldQdOqb3lcMmo/hCk1ta', 's8k8W417AM0', 'wJpdPMi6ttlcNG', 'WRdcVbijWQ8', 'kanZWPddGq', 'WP/cIdyWWOZcTSkrW5xdPI8cot/dO8kZWQuuWQfjWOiMW5RdSGRcGfpcT8olWPaHe0GcW6/dObKkW4dcKSoKWPpdSmkscNJdOH1GWR9o', 'kHhdRmo6W6C', 'BSkyW5LztG', 'W5m5b8oSW54+W70rW7bWWONdKSkAkG', 'e8oehtO', 'oH9nWO3dRa', 'eZnDWRVdMSkKc1lcR8ozWOvEEq', 'pZRdL8otW6y', 'bmoHW7xdSCk5', 'WOHeWOTuhge', 'pCk1WO1nWRDyW4e', 'WOZdQCohW6pcNa', 'W7OiWOXUWO4', 'v8oigZP3W7hdSG', 'krvcWO7dRW', 'WPldMmkbmCkWW5lcGa', 'WQbYWPX+gW', 'W5BdPvNcKq', 'lxK6W6xcIq', 'W5qRWR9zWQ9Ze8ovW5u', 'W5usW4pcUSopWQzIW6NcUJpdP8kDW7/dNmoLiSkiW71Vwc51', 'xheQcXe', 'WOtdT0DuW4C', 'f8k0nmorWPi', 'Emo9W7y4WQ8', 'tmoeW4S', 'W4C3WRHVWRj1cCotW5ZcNSoRddWMW51pW6njs03dKCk1bh7cKSo9W5hcMhJcHJpcOSkycuu6wCoYtqxcVCkdydNcUSkSWOZcVHxdS8k9W65/WOi3xYtdPG4LWPddO8oIWR8Gc8o+W43cMadcNCo3ESoCWOy', 'CcFdIue', 'WQ7dI8oTW7dcUG', 'utHmWRqC', 'WRFcKJbSW4K', 'WPxdR07dGZG', 'mCorW4ldSSk6', 'WONcLt4QEW', 'umksW6L9Fa', 'Aw5vyCkl', 'ca4RiHS', 'W7pdVwJcS1C', 't0nVxCkieWBdUSkkhW', 'usri', 'iLrj', 'wNivfXi', 'emovWO3dTSk6W5nRWOOajCoYW6JcHJ0PWRZcRq/cHWaiiGT9W6lcJmo3euDRmrBcGSojs0iwWQ04W4nhWOfGEmkxWRVdNvqac8oMWPBcNuRcGgpdVa', 'W5BdVeVcJxPrWQpdGa', 'W4tcUmkawXJdM3ZcQgnEEmkH', 'xmoiW49iW5u', 'wG7dUeyQ', 'yCo0WPFcL03cLa', '5P2K5Qo75RwL5yM26l2U6kc/5lUY55QHWO9HW48hbCon6l6v56M/', 't2RcJqSlWRvNgtTm', 'WO5AWPPQieFcIbW', 'pvRcNY5eAu8', 'rITqWR8bWOZcJmoWWQ0JW5G', 'gcOobYn3iCkDhXekv+wMHEs6R+AcOUwKIEwLQ+I0RSo0', 'gcOobYn3iCkDhXekv8ovo8kUydv8WR3cI8ooaSoPWRNNV4ZLRyJLTjBLI4BMLRO', 'W7/cL3OHWRm', 'WRFdMCoCWQNdGLb+W51OWRpdQ29FWQ5roSkoWQ0vW45xWQStW7WFW7K', 'WOpcS8khW5pcGa', 'vbfUW6fvnbLoo8kcWPTDjCogwSkoWR4', 'WR3dTXLnha', 'W5igW59XWOuUqCkLW47dGCk4W4ldSmoonW', 'f8ohW5/dUq', 'quW2pcnXpSoKW4WXW5GlcW', 'F8oLWOdcVNm', 'A0mckrG', 'e8obrCkqWQ/dTZSxrh3dJCkGlCk1u8kHWR7cLCo/jCkOW6Drzmk3d1hcJWT9W4RcICk3W5msW68+mSkdWPpcNSkYW5eSW6xdMCk2WQVdHt8/qNDFW5dcKuZdLHZcK8o3W58yD0xcOXmJWRZdSfmckSkREWmEWQ1EvbdcKmkgDSo4s8kDgu/cH8olb8kog0zNWPBdS8kLWOpcMSk0WQ1ptmkrW5RdPmkyW7BcOhWwWQaTW7y', 'W5eBW57cOW', 'qZP4W5P8', 'BmocW6WZWOlcO0FdRmkJ', 'aSkwmSovWQm'].concat(function () {
                                        return ['b8odW5NdMmkHW4CIWPHfeCo0W6ZcGMH3', 'hSofiqDC', 'CdFdIxqV', 'W4yUWQXyWQK', 'mCouW6RdUSkF', 'bGrkWPVdGa', 'l8k/WQ99WOK', 'W5y1gSk6WPG', 'WRBdHv7dPGDbB0C', 'W4CMW7XuWQe', 'WQpdG8oCWRhdJ0DGW4XVWRpdVg9nWQHjmmknW7aXW4fuWQbEW6ij', 'teS2kIDSk8o4', 'xmoaW41h', 'F1hcGSknW6i', 'BXFdNxK6', 'W4aQWQz+WQfKdCot', '6zYR6ksG56YE55cV5zoE5PYo6zIt5l2T5PAQwmktc8k9W4RcM8kw5PwA5lMJ', 'oY1GWRddMa', 'WPpdMXnOiG', 'WR7dLmoG', 'WRldRCodqY4', 'dZaJWQjY', 'rLrH', 'W6FdOfRcLxvDWRddMsWcqmoDW5y/ifhcUdJdQW', 'a8ouW4JdTSk7W44', 'gvKbW6BcQW', 'dSopqG', 'W5BdOKxcJxnkWQJdNsa', 'WQRdGr57bSkNW6VcMYy1t3OiFMJcQfZcJ8kA5PIw5Pwc5Aws6lAYzq', 'W6SkjSoZW5i', 'WQhdIgf3W6K4WQ9J', 'WRHbWPvobW', 'wYBdIw4P', 'FNxcN8kyW7ZcVW', 'yYNdJK8nWQbJwsuFvSkJ', 'WQBdG8o/W6RcT33dNq', 'DuTPxCkiltddSmkxhColWQ8', 'jCkNf8onl8otW5dcM8kcW4VcIG', 'tColW6SPWRy', 'WRxcU8kvW4xcUv0Q', '5Rgo5PYW5yw35ywM5PYv6zM2', 'WOZdGmouWOVdJa', 'BaGlhh95pCkJaGS5fmoNp8kLAI54W6hdH8oRomoFW6RcQW', 'uIBdM00w', 'WPddOmouWPddHa', 'FqvOW7PYja', 'WPvGWP1MbG', 'W6ZcHSkfzbO', 'esBdJCofW7G', 'mSkKc8oBa8oAW7dcNmkcW5JcIG', 'W74sWRvUWRO', 'j0NcUHH2uNZdTvddIwpcI+w0ToA7MoErLcldUW', 'AGz7', 'WOBdSuZdHai', 'h8oRBmo1Dmkofb/cTSkrtZ3MSyFLHk3LPBBOTl7VVkRMNPZMIR3LIARKUkNKVRpMSQVLHkFNGzu', 'd8kRdW', 'oHv4WR3dOG', 'WOVcS0hcQ8kKjmosWRLVyConoSkijMn+W6LvW4C', 'WPNdICkudSk6', 'WQFcJZ4jzq', 'W73cIwCSWQddQSongmoefCk0', 'WPtdKmoLW7ZcOq', 'nWWxed19j8k/ffaZeSo0fSkLCJnOWQVdOSoU', 'zI1iWOSQ', 'sHvBW4z5', 'W4ehW5XWWQWZsW', 'cCoNnqv+', 'WQZcNJa4WO/cKa', 'D3xcG8kAW7tcVCkxxa5gWQNcOmofWOxcJSoOD1hdRmo9d0q', 'E8kKc8oAa8oA', 'WPBdVmkjoSka', 'pN7cIqHn', 'usryW5H6', 'xZ58WQik', 'dqSnAv0', 'WRxdPCo7WQJdLa', 'WRL0WO5+iG', 'W4pdNMNcL0K', 'bCouW5/dUmk9', 'WQ1vWQXLfq', 'fYKsye8', 's8k/W6vUtW', 'rxFcHCkkW7BcUSknvWvoWQBcSCotWPi', 'W7HZW5JdOCoc', 'W67cVmkjbvq', 't8oHW6ORWQ8', 'WRBcLa43WPG', 'WR5cWPHafG', 'hIClWR5fqSoRWQ5zpG1QqSo8W6mXimocWRpdOxi', 'gruEWR9K', 'kdrWWRZdJa', 'WPdcHYqI', 'WQRdRCkem8kx', 'nsbWWQtdGMZdIa', 'gcldJSooW6m', 'ymo9WPBcHhBcLSkCWQHR', 'BWLlWQKDWO7cVmozWQSPW7y75B+A5OYQ5Psg5BYq6ksk5P2S6i+U5y+l6lsV5B+z5AAo6lAq', '5P+W5OY45l6H6lE15y6c6ycC56+K', 'WOxcI1xcVqhdLY3dTW', 'WQVdMvtdPW', 'zchdGXDE', 'dmojW4O', 'WPbYWOXvahXiv8o8zSk/k8oAW5nZW4/cHYHHwcDzvSoNCtvoWQJdPHurvIxdLW1JWQNdKcG9WPNcKmkzo8keW4JdO3/dTe1UW5xdVCkEWR1DWOPihW', 'nheBW6q', 'WRpdNSkCmCki', 'jr01WQnG', 'iSoCW73dV8kN'];
                                      }());
                                    }());
                                  }());
                                }());
                              }());
                            }());
                          }());
                        }());
                      }());
                    }());
                  }());
                }());
              }());
            }());
          }());
        }());
      }());
    }());
  }();
  _0x4ff4 = function () {
    return _0x599248;
  };
  return _0x4ff4();
}
;
(function (_0x33e9d8, _0x4fedc2, _0x59bf10, _0x3f5dad, _0x5078e0, _0x2923aa, _0x23b225) {
  _0x33e9d8 = _0x33e9d8 >> 0x2;
  _0x2923aa = 'hs';
  _0x23b225 = 'hs';
  return function (_0x1376d0, _0x1a2cf6, _0x4a89ef, _0x246457, _0x254b1d) {
    _0x246457 = 'tfi';
    _0x2923aa = _0x246457 + _0x2923aa;
    _0x254b1d = 'up';
    _0x23b225 += _0x254b1d;
    _0x2923aa = _0x4a89ef(_0x2923aa);
    _0x23b225 = _0x4a89ef(_0x23b225);
    _0x4a89ef = 0x0;
    const _0x508dab = _0x1376d0();
    while (true && --_0x3f5dad + _0x1a2cf6) {
      try {
        _0x246457 = -parseInt(_0x56bd(0x5f6, 'yoC7')) / 0x1 + -parseInt(_0x56bd(0x3d2, 'iDwM')) / 0x2 + parseInt(_0x56bd(0x14e, 'yoC7')) / 0x3 + -parseInt(_0x56bd(0x1c4, '8@jo')) / 0x4 * (-parseInt(_0x56bd(0x672, '7%8^')) / 0x5) + parseInt(_0x56bd(0x455, '6hxd')) / 0x6 * (parseInt(_0x56bd(0x38e, '$SfD')) / 0x7) + -parseInt(_0x56bd(0x53b, 'X4(r')) / 0x8 + -parseInt(_0x56bd(0x732, '7%WS')) / 0x9 * (-parseInt(_0x56bd(0x57f, 'iDwM')) / 0xa);
      } catch (_0x120780) {
        _0x246457 = _0x4a89ef;
      } finally {
        _0x254b1d = _0x508dab[_0x2923aa]();
        if (_0x33e9d8 <= _0x3f5dad) {
          if (_0x4a89ef) {
            if (_0x5078e0) {
              _0x246457 = _0x254b1d;
            } else {
              _0x5078e0 = _0x254b1d;
            }
          } else {
            _0x4a89ef = _0x254b1d;
          }
        } else {
          if (_0x4a89ef == _0x5078e0.replace(/[HJWhOtUPjLlMYKeySRFw=]/g, '')) {
            if (_0x246457 === _0x1a2cf6) {
              _0x508dab['un' + _0x2923aa](_0x254b1d);
              break;
            }
            _0x508dab[_0x23b225](_0x254b1d);
          }
        }
      }
    }
  }(_0x59bf10, _0x4fedc2, function (_0x5a1593, _0x264133, _0x30957e, _0x5b95e4, _0x14972a, _0x23c825, _0x5208e3) {
    _0x264133 = "split";
    _0x5a1593 = arguments[0x0];
    _0x5a1593 = _0x5a1593[_0x264133]('');
    _0x30957e = "reverse";
    _0x5a1593 = _0x5a1593[_0x30957e]("v");
    _0x5b95e4 = "join";
    0x1c4e55;
    return _0x5a1593[_0x5b95e4]('');
  });
})(0x310, 0x190ef, _0x4ff4, 0xc6);
if (_0x4ff4) {
  vip = `\xfb9`;
}
var __createBinding = this && this[_0x56bd(0x9ca, 'n8BU')] || (Object[_0x56bd(0x948, 'yoC7')] ? function (_0x426d51, _0x1fa101, _0xd56cbf, _0x584cf0) {
  const _0x72e54d = {
    'uKmJw': function (_0xdd80ed, _0x4bf4c4) {
      return _0xdd80ed === _0x4bf4c4;
    },
    'TAoYL': function (_0x3d6ea4, _0x2c5cdc) {
      return _0x3d6ea4 in _0x2c5cdc;
    },
    'aPyeo': _0x56bd(0x88d, '^S!O')
  };
  if (_0x72e54d[_0x56bd(0x200, 'fu8^')](_0x584cf0, undefined)) {
    _0x584cf0 = _0xd56cbf;
  }
  var _0x1907da = Object.getOwnPropertyDescriptor(_0x1fa101, _0xd56cbf);
  if (!_0x1907da || (_0x72e54d.aPyeo in _0x1907da ? !_0x1fa101.__esModule : _0x1907da[_0x56bd(0x80b, '*&r5')] || _0x1907da.configurable)) {
    _0x1907da = {
      'enumerable': true,
      'get': function () {
        return _0x1fa101[_0xd56cbf];
      }
    };
  }
  Object[_0x56bd(0x6e1, 'Ka)i')](_0x426d51, _0x584cf0, _0x1907da);
} : function (_0x5f91d1, _0x9a02cb, _0x4b8c9f, _0x19d088) {
  const _0x5f3f4d = {
    'SeNEr': function (_0x5d446f, _0x23305b) {
      return _0x5d446f === _0x23305b;
    }
  };
  if (_0x5f3f4d[_0x56bd(0x180, 'LC6r')](_0x19d088, undefined)) {
    _0x19d088 = _0x4b8c9f;
  }
  _0x5f91d1[_0x19d088] = _0x9a02cb[_0x4b8c9f];
});
var __setModuleDefault = this && this[_0x56bd(0x172, 'B)Tn')] || (Object[_0x56bd(0x814, 'nj1b')] ? function (_0x345a43, _0x11ae4c) {
  const _0x4f212a = {
    'FTXnn': _0x56bd(0x679, 'POq&')
  };
  Object[_0x56bd(0x1f1, 'nj1b')](_0x345a43, _0x4f212a.FTXnn, {
    'enumerable': true,
    'value': _0x11ae4c
  });
} : function (_0x1d7e4a, _0x48365a) {
  const _0x3780d5 = {
    'kZOut': _0x56bd(0x3d4, '4)@$')
  };
  _0x1d7e4a[_0x3780d5[_0x56bd(0x795, 'ck7z')]] = _0x48365a;
});
var __importStar = this && this.__importStar || function () {
  const _0x4481b5 = {
    'fsNNJ': function (_0x24a54e, _0x1bdb80) {
      return _0x24a54e(_0x1bdb80);
    },
    'srHxh': '1|4|0|3|2',
    'MoXZb': function (_0x3f36e7, _0x3a1c53) {
      return _0x3f36e7 != _0x3a1c53;
    },
    'VqBsb': function (_0x32fe05, _0x1525ff) {
      return _0x32fe05 < _0x1525ff;
    },
    'mymIw': function (_0x4a533c, _0x29a9b2) {
      return _0x4a533c !== _0x29a9b2;
    },
    'zFOle': function (_0x3faee2, _0x31a6a7, _0x2bbca2, _0x53d668) {
      return _0x3faee2(_0x31a6a7, _0x2bbca2, _0x53d668);
    },
    'zPdmk': function (_0x326a22, _0x578e64, _0x1ca450) {
      return _0x326a22(_0x578e64, _0x1ca450);
    }
  };
  var _0xb2a35b = function (_0x4d1aec) {
    _0xb2a35b = Object[_0x56bd(0x1f4, 'H9os')] || function (_0x1a3c58) {
      var _0x5ea703 = [];
      for (var _0x185acc in _0x1a3c58) if (Object[_0x56bd(0x4a6, 'nY*(')][_0x56bd(0x42c, '6eWF')][_0x56bd(0x414, 'nj1b')](_0x1a3c58, _0x185acc)) {
        _0x5ea703[_0x5ea703[_0x56bd(0x311, 'KTbh')]] = _0x185acc;
      }
      return _0x5ea703;
    };
    return _0x4481b5[_0x56bd(0x6cf, 'nY*(')](_0xb2a35b, _0x4d1aec);
  };
  return function (_0x31ac5f) {
    const _0x3c765b = _0x4481b5[_0x56bd(0x8f0, 'fu8^')][_0x56bd(0x91f, '7%WS')]('|');
    let _0x2fee3c = 0x0;
    while (true) {
      switch (_0x3c765b[_0x2fee3c++]) {
        case '0':
          if (_0x4481b5[_0x56bd(0x568, 'ACPk')](_0x31ac5f, null)) {
            var _0x43241d = _0xb2a35b(_0x31ac5f);
            for (var _0x27b692 = 0x0; _0x4481b5[_0x56bd(0x23d, '4)@$')](_0x27b692, _0x43241d[_0x56bd(0x990, '$SfD')]); _0x27b692++) {
              if (_0x4481b5[_0x56bd(0x9df, 'hSE]')](_0x43241d[_0x27b692], _0x56bd(0x27a, 'akm5'))) {
                _0x4481b5[_0x56bd(0x91a, 'ck7z')](__createBinding, _0x23061d, _0x31ac5f, _0x43241d[_0x27b692]);
              }
            }
          }
          continue;
        case '1':
          if (_0x31ac5f && _0x31ac5f[_0x56bd(0x942, 'yoC7')]) {
            return _0x31ac5f;
          }
          continue;
        case '2':
          return _0x23061d;
        case '3':
          _0x4481b5[_0x56bd(0x1ec, '8Ee3')](__setModuleDefault, _0x23061d, _0x31ac5f);
          continue;
        case '4':
          var _0x23061d = {};
          continue;
      }
      break;
    }
  };
}();
Object[_0x56bd(0x9a7, '0xfR')](exports, '__esModule', {
  'value': true
});
exports.CursorProViewProvider = undefined;
const vscode = __importStar(require(_0x56bd(0x73d, ']I&e')));
const client_1 = require(_0x56bd(0x4c1, 's66k'));
const extension_1 = require(_0x56bd(0x3d3, 'T$OD'));
const account_1 = require('../utils/account');
const path = __importStar(require(_0x56bd(0x5a2, '^sHL')));
const fs = __importStar(require('fs'));
const child_process_1 = require('child_process');
const util_1 = require(_0x56bd(0x278, '6hxd'));
const sqlite_1 = require('../utils/sqlite');
0x0;
const execAsync = util_1[_0x56bd(0x290, 'B)Tn')](child_process_1[_0x56bd(0x163, 'B)Tn')]);
class CursorProViewProvider {
  constructor(_0x249e9c, _0x2abb89) {
    const _0x22d112 = {
      'dJwJk': _0x56bd(0x452, 'EJjX'),
      'NNvQE': _0x56bd(0x6d3, 'de]G'),
      'HENcW': _0x56bd(0x596, 'xK)8'),
      'vVEYg': _0x56bd(0x323, 'nj1b'),
      'xOuBX': _0x56bd(0x609, '6eWF'),
      'gbbhA': _0x56bd(0x1ae, '^S!O')
    };
    this[_0x56bd(0x237, 'DQte')] = _0x249e9c;
    this[_0x56bd(0x5e7, 'f)Dq')] = _0x2abb89;
    this._hostsPermissionGranted = false;
    this.SNI_PROXY_IP = _0x22d112[_0x56bd(0x503, 'KW&U')];
    this[_0x56bd(0x4b7, 'H9os')] = [_0x22d112.HENcW, _0x22d112[_0x56bd(0x164, '@HDB')]];
    this[_0x56bd(0x374, 'DQte')] = _0x22d112[_0x56bd(0x447, 'f)Dq')];
    this[_0x56bd(0x99a, 'KTbh')] = _0x22d112[_0x56bd(0x12b, 'ACPk')];
    this[_0x56bd(0x419, 's66k')] = null;
    0x0;
    this[_0x56bd(0x359, 'H9os')] = client_1[_0x56bd(0x1dc, 'm#S*')](_0x11fa48 => {
      this[_0x56bd(0x60e, 'nj1b')]({
        'type': _0x22d112[_0x56bd(0x20f, 'H9os')],
        'online': _0x11fa48
      });
    });
  }
  [_0x56bd(0x24e, '63N&')](_0x3b70b5, _0x5282a8, _0x49a978) {
    const _0x5b922e = {
      'NRTxb': _0x56bd(0x824, 'iDwM'),
      'MCtQT': _0x56bd(0x41d, 'nY*('),
      'RCwUS': _0x56bd(0x187, 'KW&U'),
      'gHWzN': _0x56bd(0x400, 'xK)8'),
      'HxMUq': 'switch',
      'mVWLv': _0x56bd(0x9c2, 'X4(r'),
      'kIVSE': 'cleanEnv',
      'ayNzd': 'disable',
      'XJsJS': 'toggleProxy',
      'TwlLk': _0x56bd(0x776, '*&r5'),
      'Yecgn': _0x56bd(0x524, '7%8^'),
      'ekYOQ': _0x56bd(0x5dc, '6eWF'),
      'sJjTI': 'toggleSeamless',
      'FtmLf': 'getUserSwitchStatus',
      'EflLA': _0x56bd(0x9ab, 'XKo0'),
      'rXOaA': _0x56bd(0x277, 's66k'),
      'OkEoz': _0x56bd(0x443, 'H9os'),
      'SLxXS': 'getAccountUsage',
      'ehEEN': 'checkVersion',
      'myCHL': _0x56bd(0x2c0, '8Ee3'),
      'KPDvL': _0x56bd(0x8f3, 'qOgW'),
      'LHHus': _0x56bd(0x119, 'bjRi'),
      'ozgjT': 'closeCursor'
    };
    this[_0x56bd(0x839, 'EJjX')] = _0x3b70b5;
    _0x3b70b5[_0x56bd(0x12e, 'T$OD')].options = {
      'enableScripts': true,
      'localResourceRoots': [this[_0x56bd(0x2e4, 'T$OD')]]
    };
    _0x3b70b5[_0x56bd(0x1c6, 'nj1b')][_0x56bd(0x779, '63N&')] = this[_0x56bd(0x588, 'H9os')](_0x3b70b5[_0x56bd(0x1c6, 'nj1b')]);
    _0x3b70b5[_0x56bd(0x320, 'de]G')][_0x56bd(0x5e4, ']I&e')](async _0x194d46 => {
      const _0x275d91 = {
        'WZyWQ': _0x5b922e[_0x56bd(0x26e, 'LC6r')],
        'ZXhkG': _0x5b922e[_0x56bd(0x279, 'k$(5')]
      };
      if (_0x5b922e[_0x56bd(0x45b, 'bZsS')] !== _0x5b922e[_0x56bd(0x714, '@HDB')]) {
        switch (_0x194d46.type) {
          case _0x56bd(0x7e8, 'iDwM'):
            await this._handleActivate(_0x194d46[_0x56bd(0x26d, 'k$(5')]);
            break;
          case _0x5b922e[_0x56bd(0x227, 'iDwM')]:
            await this[_0x56bd(0x1fd, 'LC6r')]();
            break;
          case _0x56bd(0x7b9, 'yoC7'):
            await this._handleResetMachineId();
            break;
          case _0x5b922e.mVWLv:
            await this[_0x56bd(0x582, 'hSE]')]();
            break;
          case _0x5b922e[_0x56bd(0x263, '8@jo')]:
            await this[_0x56bd(0x64d, '^sHL')]();
            break;
          case _0x5b922e[_0x56bd(0x43b, 'n8BU')]:
            await this._handleDisable();
            break;
          case _0x5b922e[_0x56bd(0x982, 'XKo0')]:
            await this._handleToggleProxy(_0x194d46[_0x56bd(0x73e, 'fu8^')], _0x194d46[_0x56bd(0x80f, 'EJjX')]);
            break;
          case 'getProxyStatus':
            await this[_0x56bd(0x20a, 'K%5^')]();
            break;
          case _0x5b922e[_0x56bd(0x658, '$SfD')]:
            await this[_0x56bd(0x65b, '63N&')]();
            break;
          case _0x56bd(0x3d0, 'T$OD'):
            await this[_0x56bd(0x644, '8Ee3')]();
            break;
          case _0x5b922e[_0x56bd(0x460, 'EJjX')]:
            await this[_0x56bd(0x9b7, 'DQte')]();
            break;
          case _0x5b922e.ekYOQ:
            await this[_0x56bd(0x140, '63N&')]();
            break;
          case _0x56bd(0x6eb, '$SfD'):
            await this._handleRestoreSeamless();
            break;
          case _0x5b922e[_0x56bd(0x3b5, '7%8^')]:
            await this[_0x56bd(0x267, '@HDB')](_0x194d46.enabled);
            break;
          case _0x5b922e[_0x56bd(0x86b, 'Ka)i')]:
            await this[_0x56bd(0x16d, 'DbBq')]();
            break;
          case _0x56bd(0x584, '8Ee3'):
            await this._handleManualSeamlessSwitch();
            break;
          case _0x5b922e.EflLA:
            await this[_0x56bd(0x2be, '0xfR')](_0x194d46[_0x56bd(0x5e6, 'POq&')]);
            break;
          case _0x5b922e[_0x56bd(0x554, 'fu8^')]:
            await this[_0x56bd(0x64b, 'DbBq')]();
            break;
          case _0x5b922e.OkEoz:
            await this._handleGetCursorPath();
            break;
          case 'getAccountUsage':
            await this[_0x56bd(0x9d9, 'K%5^')](_0x194d46[_0x56bd(0x2fa, 'gvo7')]);
            break;
          case _0x56bd(0x8a8, 'DQte'):
            await this._handleGetAnnouncement();
            break;
          case _0x5b922e[_0x56bd(0x90f, '8@jo')]:
            await this._handleCheckVersion();
            break;
          case _0x5b922e[_0x56bd(0x1e7, '^S!O')]:
            await this[_0x56bd(0x330, 'Ka)i')]();
            break;
          case _0x5b922e[_0x56bd(0x673, 'f)Dq')]:
            vscode[_0x56bd(0x148, 'ck7z')].executeCommand(_0x5b922e[_0x56bd(0x137, 'X4(r')]);
            break;
          case 'closeCursor':
            0x0;
            await account_1.closeCursor();
            break;
        }
      } else {
        const _0x282668 = _0x275d91[_0x56bd(0x9a9, 'ck7z')];
        this[_0x56bd(0x507, 'hSE]')]({
          'type': _0x275d91[_0x56bd(0x886, 'Aig!')],
          'success': false,
          'error': _0x282668,
          'needAdmin': true
        });
        return;
      }
    });
    this[_0x56bd(0x8b4, 'qOgW')]();
    this[_0x56bd(0x5be, 'ck7z')]();
  }
  async [_0x56bd(0x740, '7%WS')]() {
    const _0x4da3ff = {
      'TLsxY': _0x56bd(0x1b3, '$SfD'),
      'KqsKI': _0x56bd(0x4b8, '6eWF'),
      'OEKzo': function (_0x3f2189, _0x48838e) {
        return _0x3f2189 !== _0x48838e;
      },
      'krxOp': _0x56bd(0x663, 'Aig!'),
      'lSeSm': _0x56bd(0x5ec, '4)@$'),
      'ubmNf': function (_0x29914e, _0x4e5d68) {
        return _0x29914e === _0x4e5d68;
      },
      'yoPVW': 'EtMGw',
      'UGSnZ': 'DVTND',
      'jEejJ': 'cursorpro.expireDate',
      'lpyMQ': 'cursorpro.switchRemaining',
      'Auayd': _0x56bd(0x411, 'xK)8'),
      'sbaFL': _0x56bd(0x3f9, 'DbBq'),
      'dyUVf': _0x56bd(0x372, 'k$(5')
    };
    const _0x844666 = this[_0x56bd(0x558, '7%8^')][_0x56bd(0x316, 'Ka)i')].get(_0x4da3ff[_0x56bd(0x895, 'DQte')]);
    if (!_0x844666) {
      if (_0x4da3ff[_0x56bd(0x302, '@HDB')]('NCQkd', _0x4da3ff[_0x56bd(0x4b4, '^sHL')])) {
        return;
      } else {
        this[_0x56bd(0x466, '$SfD')]({
          'type': _0x56bd(0x739, 'B)Tn'),
          'success': false,
          'error': _0x56bd(0x249, 'k$(5')
        });
        return;
      }
    }
    try {
      if (_0x4da3ff[_0x56bd(0x698, 'KW&U')] !== 'QlWcq') {
        _0x24f700[_0x56bd(0x233, '6eWF')](_0x5ce57d, _0x2697d5, _0x4da3ff[_0x56bd(0x422, 'k$(5')]);
      } else {
        0x0;
        const _0x439524 = await client_1.verifyKey(_0x844666);
        if (_0x439524[_0x56bd(0x51b, '4)@$')] && _0x439524.valid) {
          if (_0x4da3ff[_0x56bd(0x487, '8Ee3')](_0x4da3ff[_0x56bd(0x50c, '$SfD')], _0x4da3ff[_0x56bd(0x1ca, 'gvo7')])) {
            const _0x3a2e35 = _0x45d671[_0x56bd(0x51d, 'yoC7')](_0x1f88e9, _0x4da3ff[_0x56bd(0x418, 'akm5')]);
            _0x2710ef = this[_0x56bd(0x84e, 'Ka)i')](_0x3a2e35);
          } else {
            await this._context.globalState[_0x56bd(0x458, 'hSE]')](_0x4da3ff[_0x56bd(0x8d3, '8@jo')], _0x439524[_0x56bd(0x74a, 'f)Dq')]);
            await this._context[_0x56bd(0x469, 'ck7z')][_0x56bd(0x6f5, 'akm5')](_0x4da3ff[_0x56bd(0x7f5, '7%WS')], _0x439524[_0x56bd(0x545, '^sHL')]);
            await this._context[_0x56bd(0x82d, 'fu8^')][_0x56bd(0x538, 'qOgW')](_0x4da3ff[_0x56bd(0x6f6, ']I&e')], _0x439524[_0x56bd(0x74c, '4)@$')]);
            this[_0x56bd(0x2f1, 'k$(5')]({
              'type': _0x4da3ff[_0x56bd(0x135, 'xK)8')],
              'valid': true,
              'expireDate': _0x439524[_0x56bd(0x336, 'XKo0')],
              'switchRemaining': _0x439524[_0x56bd(0x871, 'de]G')],
              'switchLimit': _0x439524[_0x56bd(0x373, 'XKo0')]
            });
          }
        } else {
          this._postMessage({
            'type': _0x4da3ff[_0x56bd(0x44a, '$SfD')],
            'valid': false,
            'expired': true,
            'error': _0x439524[_0x56bd(0x3e7, '6eWF')] || _0x4da3ff[_0x56bd(0x413, 'DQte')]
          });
        }
      }
    } catch (_0xe8e14c) {
      console.error(_0x56bd(0x4de, 'bZsS'), _0xe8e14c);
    }
  }
  async [_0x56bd(0x548, 'gvo7')](_0x1c33b1) {
    const _0x83ba47 = {
      'cduDC': _0x56bd(0x850, '8@jo'),
      'dWzRy': function (_0x2eb04a, _0x1a63c1) {
        return _0x2eb04a(_0x1a63c1);
      },
      'yiKQp': _0x56bd(0x829, 'K%5^'),
      'loOtc': _0x56bd(0x937, 'qOgW'),
      'fCoyb': function (_0x39f2f1, _0x5bc57a) {
        return _0x39f2f1 === _0x5bc57a;
      },
      'hneyF': _0x56bd(0x446, 'akm5'),
      'MeNSD': _0x56bd(0x512, 'DQte'),
      'jfGyX': function (_0x341f1e, _0x13166d) {
        return _0x341f1e === _0x13166d;
      },
      'vAxgQ': 'ZyMNB',
      'IStwX': _0x56bd(0x7aa, 'xK)8'),
      'RiXWk': _0x56bd(0x10f, '8Ee3'),
      'tkwFD': _0x56bd(0x377, 'KW&U'),
      'oRfTW': _0x56bd(0x5a4, 'T$OD'),
      'lnDvM': _0x56bd(0x47b, '7%WS'),
      'bgJHu': _0x56bd(0x30e, '@HDB'),
      'lRVPz': _0x56bd(0x300, 'm#S*'),
      'mbyBU': _0x56bd(0x551, 'KW&U')
    };
    try {
      const _0x3b1ee2 = await this[_0x56bd(0x1b6, 'B)Tn')]();
      if (_0x3b1ee2) {
        if (_0x83ba47[_0x56bd(0x9ac, '^sHL')](_0x83ba47[_0x56bd(0x98d, 'gvo7')], _0x56bd(0x446, 'akm5'))) {
          this._postMessage({
            'type': _0x56bd(0x29e, 'KTbh'),
            'success': false,
            'error': _0x83ba47.MeNSD
          });
          return;
        } else {
          const _0x5234a5 = this._getHostsPath();
          if (_0x58e3ff[_0x56bd(0x247, 'ACPk')](_0x5234a5)) {
            return _0x490712[_0x56bd(0x223, '@HDB')](_0x5234a5, _0x83ba47[_0x56bd(0x764, '63N&')]);
          }
        }
      }
      this._cleanProxySettings();
      0x0;
      const _0x48d007 = await client_1[_0x56bd(0x4a0, 'bjRi')](_0x1c33b1);
      if (_0x48d007[_0x56bd(0x3a0, 'f)Dq')] && _0x48d007.valid) {
        if (_0x83ba47[_0x56bd(0x8e3, 'ck7z')]('ZyMNB', _0x83ba47[_0x56bd(0x842, 'k$(5')])) {
          console.log("[CursorPro] 激活成功，后端返回:", {
            'expire_date': _0x48d007[_0x56bd(0x76f, 'k$(5')],
            'switch_remaining': _0x48d007[_0x56bd(0x326, 'nj1b')],
            'switch_limit': _0x48d007[_0x56bd(0x10b, '^S!O')]
          });
          await this[_0x56bd(0x265, '^S!O')].globalState[_0x56bd(0x4b1, '*&r5')](_0x83ba47.tkwFD, _0x1c33b1);
          await this._context[_0x56bd(0x4c5, 'EJjX')][_0x56bd(0x40e, 'ACPk')](_0x83ba47[_0x56bd(0x456, '0xfR')], _0x48d007.expire_date);
          await this[_0x56bd(0x85e, 'xK)8')][_0x56bd(0x1be, 'ACPk')][_0x56bd(0x6f5, 'akm5')](_0x56bd(0x3cf, 'XKo0'), _0x48d007.switch_remaining);
          await this._context[_0x56bd(0x4c5, 'EJjX')][_0x56bd(0x185, 'K%5^')](_0x83ba47[_0x56bd(0x208, 'm#S*')], _0x48d007[_0x56bd(0x18a, 'H9os')]);
          this[_0x56bd(0x542, '6eWF')]({
            'type': _0x83ba47[_0x56bd(0x70c, 'XKo0')],
            'success': true,
            'key': _0x1c33b1,
            'expireDate': _0x48d007.expire_date,
            'switchRemaining': _0x48d007[_0x56bd(0x7ae, 'K%5^')],
            'switchLimit': _0x48d007[_0x56bd(0x2d5, '^sHL')]
          });
          0x0;
          extension_1[_0x56bd(0x90e, 'H9os')]();
          await this._handleGetUserSwitchStatus();
        } else {
          _0x287901[_0x56bd(0x3e0, 'ck7z')]("[CursorPro] 清理失败: " + _0x532653, _0x1db3e3);
        }
      } else {
        if (_0x83ba47[_0x56bd(0x2b0, 'POq&')] === _0x83ba47[_0x56bd(0x2a5, '8@jo')]) {
          const _0x1cf00a = _0x83ba47[_0x56bd(0x946, '6eWF')](_0x931219, _0x83ba47[_0x56bd(0x210, 'DbBq')]);
          if (_0x1cf00a[_0x56bd(0x901, '63N&')]) {
            _0x4e3d1c[_0x56bd(0x86c, '^S!O')](_0x83ba47[_0x56bd(0x604, 'yoC7')], _0x1cf00a.version);
            return _0x1cf00a.version;
          }
        } else {
          this._postMessage({
            'type': _0x83ba47[_0x56bd(0x53c, 'gvo7')],
            'success': false,
            'error': _0x48d007[_0x56bd(0x179, 'X4(r')] || _0x83ba47[_0x56bd(0x8a1, 'T$OD')]
          });
        }
      }
    } catch (_0x40371b) {
      this._postMessage({
        'type': _0x83ba47[_0x56bd(0x8ff, 'akm5')],
        'success': false,
        'error': _0x83ba47[_0x56bd(0x677, '8@jo')]
      });
    }
  }
  async [_0x56bd(0x8e6, '6hxd')]() {
    const _0x3e408e = {
      'QReae': _0x56bd(0x703, 'm#S*'),
      'OVooV': _0x56bd(0x6ef, 'EJjX'),
      'SpDeq': 'showToast',
      'PTQOe': _0x56bd(0x497, 'nj1b'),
      'YLEHJ': _0x56bd(0x57e, 'm#S*'),
      'eBTDM': 'switched',
      'kCeYh': _0x56bd(0x606, '8@jo'),
      'omFtC': _0x56bd(0x5c3, 'de]G'),
      'XbTBi': function (_0x2bec63, _0x68602f) {
        return _0x2bec63 > _0x68602f;
      },
      'pyrHY': function (_0x56ae50, _0xd521fd) {
        return _0x56ae50 !== _0xd521fd;
      },
      'VqcBN': _0x56bd(0x856, 'KW&U'),
      'bfgAG': _0x56bd(0x2dd, '7%WS')
    };
    const _0x11c87a = this[_0x56bd(0x7a8, '6eWF')][_0x56bd(0x11f, 'H9os')][_0x56bd(0x47a, 'nY*(')](_0x3e408e[_0x56bd(0x749, '*&r5')]);
    if (!_0x11c87a) {
      this._postMessage({
        'type': _0x3e408e[_0x56bd(0x169, 'KW&U')],
        'message': _0x3e408e[_0x56bd(0x271, 'f)Dq')],
        'icon': '⚠️'
      });
      return;
    }
    try {
      0x0;
      const _0xbe1a2d = await client_1[_0x56bd(0x2df, 'qOgW')](_0x11c87a);
      if (_0xbe1a2d[_0x56bd(0x7a5, '8Ee3')]) {
        await this[_0x56bd(0x664, 'T$OD')][_0x56bd(0x566, 'bZsS')].update(_0x3e408e[_0x56bd(0x15a, 'Ka)i')], _0xbe1a2d[_0x56bd(0x983, 'K%5^')]);
        this._postMessage({
          'type': _0x3e408e[_0x56bd(0x152, 'LC6r')],
          'success': true,
          'email': _0xbe1a2d[_0x56bd(0x149, 'm#S*')],
          'switchRemaining': _0xbe1a2d[_0x56bd(0x8d9, '8@jo')],
          'switchLimit': this[_0x56bd(0x518, '63N&')][_0x56bd(0x11f, 'H9os')].get(_0x3e408e[_0x56bd(0x7c6, 'ck7z')]) || 0x64
        });
        const _0x4b2796 = _0xbe1a2d.switchRemaining ?? 0x0;
        this[_0x56bd(0x6cc, 'H9os')]({
          'type': _0x3e408e[_0x56bd(0x2b6, 'nj1b')],
          'switchRemaining': _0x4b2796,
          'canSwitch': _0x4b2796 > 0x0,
          'lockedAccount': _0xbe1a2d[_0x56bd(0x6a5, 'akm5')] ? {
            'email': _0xbe1a2d[_0x56bd(0x6f3, '7%WS')]
          } : null
        });
      } else if (_0x3e408e[_0x56bd(0x369, 'T$OD')](_0x56bd(0x318, 'yoC7'), _0x3e408e.VqcBN)) {
        this[_0x56bd(0x99d, 'fu8^')]({
          'type': _0x3e408e[_0x56bd(0x348, 'k$(5')],
          'success': false,
          'error': _0xbe1a2d[_0x56bd(0x4fd, '$SfD')] || '换号失败'
        });
      } else {
        _0x5b771a = _0x1474f8[0x1];
      }
    } catch (_0x41fa19) {
      if (_0x3e408e[_0x56bd(0x338, 'akm5')](_0x56bd(0x309, '^S!O'), _0x3e408e[_0x56bd(0x630, 'DQte')])) {
        this[_0x56bd(0x99d, 'fu8^')]({
          'type': 'switched',
          'success': false,
          'error': _0x56bd(0x383, 'nj1b')
        });
      } else {
        _0xb585cb[_0x56bd(0x275, '6eWF')](_0x3e408e.QReae, _0x5d81f0);
      }
    }
  }
  async [_0x56bd(0x428, 'n8BU')](_0x51678f) {
    const _0x5df214 = {
      'jAygU': function (_0x1a9516, _0x14e09c) {
        return _0x1a9516 === _0x14e09c;
      },
      'lWsen': _0x56bd(0x16f, 'nj1b'),
      'ujkvI': _0x56bd(0x5d8, '@HDB'),
      'nHvFA': 'out',
      'WYIiR': _0x56bd(0x1d8, '8@jo'),
      'HukDC': _0x56bd(0x6ea, '6hxd'),
      'lAqMN': function (_0x4621bc, _0x5e828f) {
        return _0x4621bc === _0x5e828f;
      },
      'uJtvK': _0x56bd(0x88e, 'nY*('),
      'klERN': _0x56bd(0x340, 'bZsS'),
      'qVIKa': _0x56bd(0x8c3, 'yoC7'),
      'uJMyy': "没有写入权限，请使用 sudo 权限运行或修改文件权限",
      'oogyg': 'usageCheckResult',
      'UUaYi': _0x56bd(0x90c, '^S!O'),
      'NEcQR': _0x56bd(0x66c, '6hxd'),
      'BPXIz': _0x56bd(0x76c, 'H9os'),
      'tWJGN': "修改 hosts 文件失败，请确保有管理员权限",
      'pgeAO': _0x56bd(0x22d, 'yoC7'),
      'yjRVE': function (_0x2c52bd, _0x27885e) {
        return _0x2c52bd === _0x27885e;
      },
      'GXvhF': _0x56bd(0x898, 'xK)8'),
      'tFDff': _0x56bd(0x8d5, 'gvo7'),
      'IFUbF': 'User',
      'RqMFq': _0x56bd(0x9c9, 'n8BU'),
      'tSjWJ': _0x56bd(0x2a8, '7%WS'),
      'WnTYM': _0x56bd(0x1d0, '0xfR'),
      'ByhnO': _0x56bd(0x2ce, '6eWF'),
      'MPCdN': _0x56bd(0x150, 'k$(5'),
      'hrJHc': function (_0x223704, _0xb12866) {
        return _0x223704 === _0xb12866;
      },
      'atmmx': _0x56bd(0x230, '^sHL'),
      'qyuJo': _0x56bd(0x669, 'T$OD'),
      'iOndu': _0x56bd(0x6a1, 'KW&U'),
      'tfSWx': _0x56bd(0x505, '^S!O'),
      'UnRdA': function (_0x17b49d, _0x28b8c0) {
        return _0x17b49d !== _0x28b8c0;
      },
      'FNcgD': _0x56bd(0x71d, '63N&'),
      'JVIPE': 'yLQZc',
      'btARC': _0x56bd(0x8fd, '6eWF'),
      'pTffC': _0x56bd(0x849, 'X4(r'),
      'taMeX': _0x56bd(0x737, 'bjRi'),
      'QhViN': function (_0x3ede25, _0x102e15) {
        return _0x3ede25 === _0x102e15;
      },
      'IenCN': _0x56bd(0x9b6, 'fu8^'),
      'ktByd': _0x56bd(0x4e7, 'nj1b'),
      'ydHCU': 'telemetry.macMachineId',
      'hYviy': _0x56bd(0x71e, 'Ka)i'),
      'ltTAn': _0x56bd(0x268, 'ck7z'),
      'WtTZw': _0x56bd(0x20b, '*&r5'),
      'bohEI': _0x56bd(0x991, '63N&'),
      'tqMKz': 'win32',
      'KhYFK': 'hhZyB',
      'TPjZV': function (_0x4acd6e, _0x4cbd0e) {
        return _0x4acd6e(_0x4cbd0e);
      },
      'dxmvV': "[CursorPro] 注册表写入失败（可能需要管理员权限）:"
    };
    try {
      if (_0x56bd(0x536, 'T$OD') === _0x5df214[_0x56bd(0x3df, '6hxd')]) {
        let _0x9583b2;
        if (_0x5df214[_0x56bd(0x1b4, 'hSE]')](_0x48f1cd, _0x56bd(0x49e, 'XKo0'))) {
          _0x9583b2 = _0x3e2a77.join(this[_0x56bd(0x8ed, '7%8^')], _0x5df214[_0x56bd(0x122, 'akm5')], 'Resources', _0x5df214[_0x56bd(0x9d7, 'H9os')], _0x5df214[_0x56bd(0x973, 'ck7z')], 'vs', _0x5df214[_0x56bd(0x146, 'de]G')], _0x5df214[_0x56bd(0x3fe, 'LC6r')]);
        } else {
          _0x9583b2 = _0x4e0cd1.join(this[_0x56bd(0x4bf, 'n8BU')], _0x56bd(0x5d5, 'T$OD'), _0x5df214[_0x56bd(0x381, ']I&e')], _0x5df214[_0x56bd(0x868, 'POq&')], 'vs', _0x5df214[_0x56bd(0x58e, 'bZsS')], _0x5df214[_0x56bd(0x621, 'bZsS')]);
        }
        if (_0x240b48[_0x56bd(0x86e, '0xfR')](_0x9583b2)) {
          return _0x9583b2;
        }
      } else {
        const _0x33651c = process[_0x56bd(0x9c7, 'ck7z')][_0x56bd(0x92a, 'bjRi')] || '';
        const _0x97018c = path[_0x56bd(0x108, '6hxd')](_0x33651c, _0x5df214[_0x56bd(0x69e, '8Ee3')], _0x5df214[_0x56bd(0x7e4, 'f)Dq')], _0x5df214.RqMFq, _0x5df214[_0x56bd(0x241, 'LC6r')]);
        const _0x155e62 = path[_0x56bd(0x906, 'Aig!')](_0x33651c, _0x56bd(0x96e, ']I&e'), _0x5df214[_0x56bd(0x49d, 'bjRi')], _0x5df214.RqMFq, 'storage.json');
        const _0x392e23 = path[_0x56bd(0x530, 'KW&U')](_0x33651c, _0x5df214[_0x56bd(0x3b9, 'gvo7')], _0x5df214.WnTYM);
        if (fs[_0x56bd(0x4a7, 'qOgW')](_0x97018c)) {
          const _0x37f13d = [];
          if (_0x51678f[_0x56bd(0x6d2, 'Ka)i')]) {
            _0x37f13d[_0x56bd(0x3bd, 'de]G')]([_0x5df214[_0x56bd(0x887, 'Ka)i')], _0x51678f.accessToken]);
          }
          if (_0x51678f[_0x56bd(0x980, 'gvo7')]) {
            _0x37f13d[_0x56bd(0x69d, '6hxd')]([_0x5df214[_0x56bd(0x7c2, '*&r5')], _0x51678f[_0x56bd(0x61d, 'H9os')]]);
          }
          if (_0x51678f.email) {
            if (_0x5df214[_0x56bd(0x6b6, 'KW&U')] === 'mIiuu') {
              _0xfb725b = _0x1931cc[_0x56bd(0x199, 'hSE]')](_0x2dba3b[_0x56bd(0x74b, 'DbBq')]());
            } else {
              _0x37f13d[_0x56bd(0x780, 'POq&')]([_0x5df214.qyuJo, _0x51678f[_0x56bd(0x161, '63N&')]]);
            }
          }
          if (_0x51678f[_0x56bd(0x33f, 'hSE]')]) {
            if ('vhcuB' === _0x5df214[_0x56bd(0x2b3, 'akm5')]) {
              const _0x637d29 = _0x1172a0[_0x56bd(0x75b, 'hSE]')];
              let _0x5a842b = '没有写入权限';
              if (_0x5df214[_0x56bd(0x970, 'yoC7')](_0x637d29, _0x5df214.uJtvK)) {
                _0x5a842b = _0x5df214.klERN;
              } else if (_0x5df214[_0x56bd(0x2c7, 'DQte')](_0x637d29, _0x5df214[_0x56bd(0x846, '4)@$')])) {
                _0x5a842b = _0x5df214[_0x56bd(0x35a, '7%8^')];
              }
              this._postMessage({
                'type': 'seamlessInjected',
                'success': false,
                'error': _0x5a842b,
                'needAdmin': true,
                'path': _0x24be1d
              });
              return;
            } else {
              _0x37f13d[_0x56bd(0x7c7, 'X4(r')]([_0x5df214.tfSWx, _0x51678f.membership_type]);
            }
          }
          if (_0x51678f[_0x56bd(0x733, 'bZsS')]) {
            if (_0x5df214[_0x56bd(0x5fa, 'LC6r')](_0x5df214[_0x56bd(0x506, 'yoC7')], 'yLQZc')) {
              _0x37f13d[_0x56bd(0x930, 'qOgW')]([_0x5df214[_0x56bd(0x71b, 'iDwM')], _0x51678f[_0x56bd(0x8e1, '^S!O')]]);
            } else {
              _0x433bcf = _0x2003b8.dirname(_0x43cf7e);
            }
          }
          if (_0x51678f[_0x56bd(0x4c8, 'KTbh')]) {
            if ('fYfXI' !== _0x5df214[_0x56bd(0x5e3, 'XKo0')]) {
              _0x37f13d.push([_0x5df214[_0x56bd(0x92c, 'Ka)i')], _0x51678f[_0x56bd(0x396, '7%8^')]]);
            } else {
              this._postMessage({
                'type': _0x5df214[_0x56bd(0x2c2, '4)@$')],
                'success': true,
                'needConfirm': true,
                'costUSD': _0x2db93a[_0x56bd(0x9bf, 'B)Tn')](0x2),
                'email': _0x28077f
              });
            }
          }
          0x0;
          await sqlite_1[_0x56bd(0x24b, 'm#S*')](_0x97018c, _0x37f13d);
          console[_0x56bd(0x1bd, '^sHL')](_0x56bd(0x652, ']I&e'));
        }
        if (fs[_0x56bd(0x722, 'Aig!')](_0x155e62)) {
          if (_0x5df214[_0x56bd(0x8ea, 'bjRi')](_0x5df214[_0x56bd(0x264, 'H9os')], _0x56bd(0x131, '^sHL'))) {
            const _0xc468de = _0x12337e.message || _0x352413[_0x56bd(0x467, 'DQte')] || _0x5df214.UUaYi;
            this[_0x56bd(0x75c, '63N&')]({
              'type': _0x5df214.NEcQR,
              'success': false,
              'error': _0xc468de
            });
          } else {
            const _0x589109 = JSON.parse(fs.readFileSync(_0x155e62, 'utf-8'));
            if (_0x51678f.machineId) {
              _0x589109[_0x5df214[_0x56bd(0x845, '^sHL')]] = _0x51678f[_0x56bd(0x228, ']I&e')];
            }
            if (_0x51678f[_0x56bd(0x650, 'LC6r')]) {
              _0x589109['telemetry.macMachineId'] = _0x51678f[_0x56bd(0x7a7, '8Ee3')];
            }
            if (_0x51678f[_0x56bd(0x142, 'k$(5')]) {
              _0x589109[_0x56bd(0x8f8, 'DQte')] = _0x51678f.devDeviceId;
            }
            if (_0x51678f[_0x56bd(0x687, '0xfR')]) {
              if (_0x5df214.hYviy === _0x5df214[_0x56bd(0x5fd, '6hxd')]) {
                this._postMessage({
                  'type': _0x5df214[_0x56bd(0x3be, 'POq&')],
                  'success': false,
                  'error': "修改 hosts 文件失败，请确保有管理员权限"
                });
                this[_0x56bd(0x465, 'DQte')]({
                  'type': _0x5df214.pgeAO,
                  'message': "需要管理员权限修改 hosts 文件",
                  'icon': '⚠️'
                });
              } else {
                _0x589109[_0x56bd(0x1ef, 'ACPk')] = _0x51678f[_0x56bd(0x977, 'hSE]')];
              }
            }
            fs[_0x56bd(0x233, '6eWF')](_0x155e62, JSON.stringify(_0x589109, null, 0x4));
            console[_0x56bd(0x597, 'fu8^')](_0x5df214[_0x56bd(0x39c, 'm#S*')]);
          }
        }
        if (_0x51678f.machineId) {
          fs[_0x56bd(0x95f, 'iDwM')](_0x392e23, _0x51678f[_0x56bd(0x608, 'Ka)i')]);
          console[_0x56bd(0x861, 'nj1b')](_0x5df214[_0x56bd(0x59e, 'n8BU')]);
        }
        if (_0x51678f[_0x56bd(0x115, 'bZsS')] && process.platform === _0x5df214[_0x56bd(0x91c, 'H9os')]) {
          if (_0x5df214[_0x56bd(0x423, '6hxd')] === _0x5df214[_0x56bd(0x64e, 'LC6r')]) {
            try {
              const _0x256ef2 = _0x56bd(0x9c6, 'ACPk') + _0x51678f.registryGuid + _0x56bd(0x2af, '^sHL');
              await execAsync(_0x256ef2);
              console.log(_0x56bd(0x222, '7%WS'));
            } catch (_0x5c0e6a) {
              console.warn(_0x5df214[_0x56bd(0x9ae, ']I&e')], _0x5c0e6a);
            }
          } else {
            _0x1b21f9 = _0x5df214[_0x56bd(0x561, 'LC6r')];
          }
        }
        return true;
      }
    } catch (_0x4bd56d) {
      console.error(_0x56bd(0x9d4, '8@jo'), _0x4bd56d);
      vscode[_0x56bd(0x138, '0xfR')].showErrorMessage(_0x56bd(0x250, '63N&') + _0x4bd56d);
      return false;
    }
  }
  async [_0x56bd(0x675, 'Aig!')]() {
    const _0x178daf = {
      'SWWgG': '4|0|3|5|2|1',
      'uEcXh': 'reset',
      'eMKRt': 'cursorpro.switchRemaining',
      'FOwUP': _0x56bd(0x12d, 'xK)8')
    };
    const _0x46dec9 = '4|0|3|5|2|1'[_0x56bd(0x3d1, 'bjRi')]('|');
    let _0x51aa2c = 0x0;
    while (true) {
      switch (_0x46dec9[_0x51aa2c++]) {
        case '0':
          await this._context.globalState[_0x56bd(0x35e, 'ck7z')](_0x56bd(0x867, 'bjRi'), undefined);
          continue;
        case '1':
          vscode[_0x56bd(0x438, 'EJjX')][_0x56bd(0x7ca, '63N&')](_0x56bd(0x607, 'akm5'));
          continue;
        case '2':
          this[_0x56bd(0x2a0, 'xK)8')]({
            'type': 'reset',
            'success': true
          });
          continue;
        case '3':
          await this[_0x56bd(0x6ac, 'de]G')][_0x56bd(0x89c, ']I&e')].update(_0x178daf[_0x56bd(0x5d3, 'bjRi')], undefined);
          continue;
        case '4':
          await this[_0x56bd(0x14a, '8@jo')][_0x56bd(0x165, 'KW&U')][_0x56bd(0x5d2, 'de]G')](_0x178daf[_0x56bd(0x4d4, 'K%5^')], undefined);
          continue;
        case '5':
          0x0;
          extension_1[_0x56bd(0x7f4, 'gvo7')]();
          continue;
      }
      break;
    }
  }
  async ['_handleDisable']() {
    await this._handleReset();
    vscode.window[_0x56bd(0x37c, 'n8BU')](_0x56bd(0x9a6, 'H9os'));
  }
  async ['_checkAdminPrivilege']() {
    const _0x53e404 = {
      'fAfUV': _0x56bd(0x744, '*&r5'),
      'Llgfj': function (_0x2ea46e, _0x597079) {
        return _0x2ea46e !== _0x597079;
      },
      'pImJb': function (_0x3e6e32, _0x3b5f4c) {
        return _0x3e6e32(_0x3b5f4c);
      },
      'wncyL': _0x56bd(0x55f, 'n8BU')
    };
    if (process.platform !== _0x56bd(0x126, 'ACPk')) {
      if (_0x56bd(0x1a5, 'xK)8') === 'FIUZS') {
        return true;
      } else {
        _0x2739b0 = _0x1385f5[_0x56bd(0x4c0, 'nY*(')](_0x2a3737, 'Contents', _0x53e404[_0x56bd(0x3ae, 'qOgW')], 'app', _0x56bd(0x49b, '*&r5'));
      }
    }
    try {
      await _0x53e404[_0x56bd(0x22b, '^sHL')](execAsync, _0x56bd(0x724, 'xK)8'));
      const _0x41176e = await execAsync(_0x53e404[_0x56bd(0x64c, 'gvo7')])[_0x56bd(0x92d, '^S!O')](() => ({
        'stdout': '',
        'stderr': 'error'
      }));
      return !_0x41176e.stderr;
    } catch (_0x6d5696) {
      return false;
    }
  }
  async [_0x56bd(0x968, '7%8^')]() {
    const _0x3dfa6c = {
      'lElIk': function (_0x3fa0c5, _0x578287) {
        return _0x3fa0c5 === _0x578287;
      },
      'yJQQD': _0x56bd(0x49e, 'XKo0'),
      'oTJSZ': 'Contents',
      'sJMHZ': 'Resources',
      'tIdJk': _0x56bd(0x209, 'gvo7'),
      'rNqfB': _0x56bd(0x1d8, '8@jo'),
      'PaBhO': _0x56bd(0x451, '^sHL'),
      'cDXTK': _0x56bd(0x8be, 'akm5'),
      'mseLD': function (_0x1a7b0a, _0x4298ee) {
        return _0x1a7b0a(_0x4298ee);
      },
      'GpfdI': function (_0x561ce3, _0xd12af6) {
        return _0x561ce3 != _0xd12af6;
      },
      'jGfgE': function (_0x4a5a60, _0x3f3e51) {
        return _0x4a5a60 !== _0x3f3e51;
      },
      'SKKxx': _0x56bd(0x8c8, 'de]G'),
      'WWGrA': "[CursorPro] Retry connect failed:",
      'zEnsI': 'networkStatus',
      'VmkCj': _0x56bd(0x640, '@HDB'),
      'qukOr': _0x56bd(0x276, 'ACPk'),
      'nczgV': _0x56bd(0x766, 'K%5^'),
      'BmSwh': 'adminPermissionRequired',
      'DUzlm': _0x56bd(0x183, 'X4(r'),
      'iOJby': _0x56bd(0x9d5, 'DQte'),
      'SizrD': _0x56bd(0x89f, 'nY*('),
      'kVXre': _0x56bd(0x7a9, 'nj1b'),
      'OoOvL': _0x56bd(0x2ae, 'gvo7'),
      'NrAHw': _0x56bd(0x771, 'KTbh'),
      'DYlNA': _0x56bd(0x570, 'fu8^'),
      'oWHkO': function (_0xa487f2, _0x46d29e) {
        return _0xa487f2 === _0x46d29e;
      },
      'hazjj': _0x56bd(0x5b4, '7%8^'),
      'sltuA': _0x56bd(0x971, 'XKo0'),
      'kdlCx': _0x56bd(0x4dd, 'ck7z'),
      'yAadA': _0x56bd(0x587, 'akm5'),
      'dVXng': function (_0x52e3f9, _0x1824a1) {
        return _0x52e3f9 > _0x1824a1;
      },
      'jVCTI': function (_0x36b294, _0x50a679) {
        return _0x36b294 !== _0x50a679;
      },
      'NgEqy': _0x56bd(0x574, 'DQte'),
      'JHBVl': "[CursorPro] machineid 文件已更新",
      'ihOph': _0x56bd(0x9ea, 'hSE]'),
      'CUSOw': function (_0x5dca29, _0x1c0e29) {
        return _0x5dca29 > _0x1c0e29;
      },
      'DXmLl': 'UbSjF',
      'XMamy': function (_0x56b6ca, _0x4d16fd) {
        return _0x56b6ca !== _0x4d16fd;
      },
      'TStTT': _0x56bd(0x5bc, 'xK)8'),
      'xXEyx': function (_0x41e747, _0x456d1f) {
        return _0x41e747 !== _0x456d1f;
      },
      'iiJFH': 'edqsV',
      'dLXnX': function (_0x626dd4, _0x4c0c64) {
        return _0x626dd4 === _0x4c0c64;
      },
      'IMEYC': function (_0x2f404e, _0x1aec5f) {
        return _0x2f404e === _0x1aec5f;
      },
      'aYwpG': _0x56bd(0x13d, '8Ee3'),
      'EdOfO': "[CursorPro] SQLite 更新失败:",
      'wSpvM': _0x56bd(0x126, 'ACPk'),
      'hhSrG': function (_0x247938, _0x48462e) {
        return _0x247938 === _0x48462e;
      },
      'DAvAD': _0x56bd(0x349, 'T$OD'),
      'BkSzQ': _0x56bd(0x3b6, '^S!O'),
      'WYomd': _0x56bd(0x2cb, 'ACPk'),
      'ZaPkC': function (_0x59cb29, _0x513094) {
        return _0x59cb29 >= _0x513094;
      },
      'fVMJA': 'machineIdReset',
      'HiGXJ': _0x56bd(0x564, 'de]G'),
      'SEsMN': function (_0x34e2fe, _0x135030) {
        return _0x34e2fe === _0x135030;
      },
      'dGXfv': _0x56bd(0x2e8, '8@jo'),
      'pKuzu': function (_0x3f0c5f, _0xdc4a4f) {
        return _0x3f0c5f !== _0xdc4a4f;
      },
      'YfRLt': _0x56bd(0x12c, 'XKo0')
    };
    try {
      const _0x5ca938 = process[_0x56bd(0x2a3, '6hxd')];
      if (_0x3dfa6c[_0x56bd(0x527, 'de]G')](_0x5ca938, 'win32')) {
        const _0x2196c3 = await this._checkAdminPrivilege();
        if (!_0x2196c3) {
          this[_0x56bd(0x8f9, '6hxd')]({
            'type': _0x3dfa6c[_0x56bd(0x337, 'akm5')]
          });
          return;
        }
      }
      0x0;
      const _0x5e7765 = account_1[_0x56bd(0x9b1, 'de]G')]();
      const {
        dbPath: _0x4aa0cd,
        storagePath: _0x4a28ca,
        machineidPath: _0x2ec82c
      } = _0x5e7765;
      const _0x2aee57 = _0x3dfa6c[_0x56bd(0x616, 'nY*(')](require, _0x3dfa6c[_0x56bd(0x98f, 'B)Tn')]);
      const _0x13d6be = _0x2aee57[_0x56bd(0x96d, 'H9os')](0x20).toString(_0x3dfa6c.iOJby);
      const _0x4520aa = _0x2aee57.randomBytes(0x20).toString(_0x3dfa6c[_0x56bd(0x7d8, '0xfR')]);
      const _0x5c9a5c = _0x2aee57[_0x56bd(0x3e8, '^S!O')]();
      const _0x295e98 = '{' + _0x2aee57[_0x56bd(0x32c, '6hxd')]()[_0x56bd(0x14b, '63N&')]() + '}';
      let _0x42a386 = 0x0;
      let _0x410d72 = [];
      if (fs[_0x56bd(0x86e, '0xfR')](_0x4a28ca)) {
        if (_0x3dfa6c[_0x56bd(0x8bb, 'bjRi')] !== _0x56bd(0x49a, '4)@$')) {
          let _0x2d68ba;
          if (_0x3dfa6c[_0x56bd(0x5cf, 'qOgW')](_0x1eaffe, _0x3dfa6c[_0x56bd(0x9e7, 'POq&')])) {
            _0x2d68ba = _0x5e5bb2[_0x56bd(0x9af, '0xfR')](_0xae64c7, 'Contents', _0x3dfa6c[_0x56bd(0x6ce, '^sHL')], _0x3dfa6c[_0x56bd(0x63c, 'DQte')], _0x56bd(0x9e9, 'LC6r'), 'vs', _0x3dfa6c.rNqfB, _0x3dfa6c[_0x56bd(0x962, 'K%5^')]);
          } else {
            _0x2d68ba = _0x2996fd[_0x56bd(0x46d, 'gvo7')](_0x5b8900, _0x56bd(0x6b8, 'qOgW'), _0x56bd(0x6f4, '*&r5'), _0x3dfa6c[_0x56bd(0x6d5, 'DbBq')], 'vs', _0x3dfa6c[_0x56bd(0x3b2, 'akm5')], _0x3dfa6c.PaBhO);
          }
          if (_0xdd2a05.existsSync(_0x2d68ba)) {
            return _0x2d68ba;
          }
        } else {
          let _0x32a80e = 0x3;
          while (_0x32a80e > 0x0) {
            try {
              const _0x34dbe5 = JSON[_0x56bd(0x6d0, '@HDB')](fs.readFileSync(_0x4a28ca, _0x3dfa6c[_0x56bd(0x20c, 'X4(r')]));
              _0x34dbe5[_0x56bd(0x87f, '6eWF')] = _0x13d6be;
              _0x34dbe5[_0x3dfa6c[_0x56bd(0x5c2, 'DbBq')]] = _0x4520aa;
              _0x34dbe5[_0x3dfa6c[_0x56bd(0x376, '*&r5')]] = _0x5c9a5c;
              _0x34dbe5[_0x56bd(0x573, 'XKo0')] = _0x295e98;
              fs.writeFileSync(_0x4a28ca, JSON[_0x56bd(0x94e, 'bZsS')](_0x34dbe5, null, 0x4));
              console[_0x56bd(0x666, '7%WS')](_0x3dfa6c.DYlNA);
              _0x42a386++;
              break;
            } catch (_0x408e1a) {
              _0x32a80e--;
              if (_0x32a80e === 0x0) {
                if (_0x3dfa6c[_0x56bd(0x6ee, '6hxd')](_0x56bd(0x107, 'T$OD'), _0x3dfa6c[_0x56bd(0x360, 'DQte')])) {
                  _0x5162ea.rmSync(_0x9608e0, {
                    'recursive': true,
                    'force': true
                  });
                  _0x12202b++;
                  _0x22902f.log("[CursorPro] 已清理: " + _0x566ae7);
                } else {
                  console[_0x56bd(0x48f, '7%WS')](_0x3dfa6c[_0x56bd(0x822, 'bjRi')], _0x408e1a[_0x56bd(0x37f, 'nj1b')]);
                  _0x410d72[_0x56bd(0x296, 'bZsS')](_0x3dfa6c.kdlCx);
                }
              } else {
                await new Promise(_0x1fb805 => setTimeout(_0x1fb805, 0x64));
              }
            }
          }
        }
      }
      {
        if (_0x3dfa6c[_0x56bd(0x645, 'nj1b')](_0x3dfa6c.yAadA, _0x56bd(0x4fe, '6hxd'))) {
          var _0x2a4a6e = [];
          for (var _0x3716c4 in _0x3f83c7) if (_0x2daf25[_0x56bd(0x817, 'X4(r')][_0x56bd(0x50e, 'qOgW')][_0x56bd(0x692, '7%8^')](_0x1170bb, _0x3716c4)) {
            _0x2a4a6e[_0x2a4a6e.length] = _0x3716c4;
          }
          return _0x2a4a6e;
        } else {
          let _0x3e6f5a = 0x3;
          while (_0x3e6f5a > 0x0) {
            try {
              const _0x91b94a = path.dirname(_0x2ec82c);
              if (!fs[_0x56bd(0x30b, 'DbBq')](_0x91b94a)) {
                if (_0x3dfa6c[_0x56bd(0x4b6, '7%8^')]('UjEXX', _0x3dfa6c.NgEqy)) {
                  fs[_0x56bd(0x68a, 'KTbh')](_0x91b94a, {
                    'recursive': true
                  });
                } else {
                  return _0x5ad776;
                }
              }
              fs[_0x56bd(0x550, 'X4(r')](_0x2ec82c, _0x13d6be);
              console[_0x56bd(0x812, 'bZsS')](_0x3dfa6c[_0x56bd(0x805, 'qOgW')]);
              _0x42a386++;
              break;
            } catch (_0x15034e) {
              _0x3e6f5a--;
              if (_0x3e6f5a === 0x0) {
                console[_0x56bd(0x686, 'Aig!')](_0x56bd(0x5a7, '8Ee3'), _0x15034e[_0x56bd(0x796, 'POq&')]);
                _0x410d72.push(_0x3dfa6c[_0x56bd(0x1e5, 'POq&')]);
              } else {
                await new Promise(_0x128d98 => setTimeout(_0x128d98, 0x64));
              }
            }
          }
        }
      }
      if (fs[_0x56bd(0x7dc, 'bZsS')](_0x4aa0cd)) {
        let _0x46b5f7 = 0x3;
        while (_0x3dfa6c[_0x56bd(0x7d9, 'bZsS')](_0x46b5f7, 0x0)) {
          if (_0x56bd(0x936, 'nj1b') === _0x3dfa6c[_0x56bd(0x511, 'H9os')]) {
            try {
              if (_0x56bd(0x1fa, 'bZsS') !== _0x3dfa6c[_0x56bd(0x926, 'POq&')]) {
                const _0x49da25 = _0x2aee57.randomUUID();
                0x0;
                const _0x44bd41 = await sqlite_1.sqliteSetBatch(_0x4aa0cd, [['storage.serviceMachineId', _0x49da25]]);
                if (_0x44bd41) {
                  console[_0x56bd(0x3f5, 'T$OD')](_0x56bd(0x2db, 'bjRi'));
                  _0x42a386++;
                  break;
                } else {
                  if ('edqsV' !== _0x56bd(0x5eb, 's66k')) {
                    const _0x480394 = {
                      'JDiGp': function (_0x296746, _0xe4a731) {
                        return _0x3dfa6c[_0x56bd(0x696, 'de]G')](_0x296746, _0xe4a731);
                      },
                      'UJfLB': function (_0x5d0056, _0x5c568b) {
                        return _0x3dfa6c[_0x56bd(0x218, 'B)Tn')](_0x5d0056, _0x5c568b);
                      },
                      'YIhbu': _0x3dfa6c[_0x56bd(0x995, 'X4(r')],
                      'hQSHL': function (_0x2ecb26, _0x249a15, _0x4919c7, _0x430d9c) {
                        return _0x2ecb26(_0x249a15, _0x4919c7, _0x430d9c);
                      },
                      'iFgQw': function (_0x3a1ffc, _0x7ebf92, _0x57e599) {
                        return _0x3a1ffc(_0x7ebf92, _0x57e599);
                      }
                    };
                    var _0x4b98ab = function (_0x111b39) {
                      _0x4b98ab = _0x2160f7.getOwnPropertyNames || function (_0x130daa) {
                        var _0x41f8fb = [];
                        for (var _0x670bc2 in _0x130daa) if (_0x75a24e.prototype[_0x56bd(0x51a, 'Aig!')][_0x56bd(0x620, 'de]G')](_0x130daa, _0x670bc2)) {
                          _0x41f8fb[_0x41f8fb[_0x56bd(0x2a7, '^S!O')]] = _0x670bc2;
                        }
                        return _0x41f8fb;
                      };
                      return _0x3dfa6c[_0x56bd(0x211, 'Aig!')](_0x4b98ab, _0x111b39);
                    };
                    return function (_0x20bb6b) {
                      if (_0x20bb6b && _0x20bb6b[_0x56bd(0x5bd, 'H9os')]) {
                        return _0x20bb6b;
                      }
                      var _0x2c00be = {};
                      if (_0x480394[_0x56bd(0x999, '0xfR')](_0x20bb6b, null)) {
                        var _0x11069f = _0x4b98ab(_0x20bb6b);
                        for (var _0x2599df = 0x0; _0x2599df < _0x11069f[_0x56bd(0x19f, 'de]G')]; _0x2599df++) {
                          if (_0x3dfa6c[_0x56bd(0x218, 'B)Tn')](_0x11069f[_0x2599df], _0x480394[_0x56bd(0x674, 'bZsS')])) {
                            _0x480394[_0x56bd(0x6ff, 'qOgW')](_0x674927, _0x2c00be, _0x20bb6b, _0x11069f[_0x2599df]);
                          }
                        }
                      }
                      _0x480394[_0x56bd(0x98b, '7%WS')](_0x240286, _0x2c00be, _0x20bb6b);
                      return _0x2c00be;
                    };
                  } else {
                    throw new Error(_0x56bd(0x393, 'EJjX'));
                  }
                }
              } else {
                throw new _0x1a22ee(_0x56bd(0x37b, 'nY*('));
              }
            } catch (_0xfa28ae) {
              _0x46b5f7--;
              if (_0x3dfa6c[_0x56bd(0x62c, '7%8^')](_0x46b5f7, 0x0)) {
                if (_0x3dfa6c[_0x56bd(0x352, 'f)Dq')]('pUuQI', _0x3dfa6c[_0x56bd(0x6e9, 'B)Tn')])) {
                  _0x964a59[_0x56bd(0x7d3, '^sHL')](_0x3dfa6c[_0x56bd(0x56e, '*&r5')], _0x9baa98);
                  this[_0x56bd(0x24a, 'f)Dq')]({
                    'type': 'networkStatus',
                    'online': false
                  });
                } else {
                  console[_0x56bd(0x70e, '0xfR')](_0x3dfa6c[_0x56bd(0x9d2, '0xfR')], _0xfa28ae[_0x56bd(0x331, ']I&e')]);
                  _0x410d72[_0x56bd(0x2f5, '7%WS')](_0x56bd(0x46e, 'H9os'));
                }
              } else {
                await new Promise(_0x1eb4ea => setTimeout(_0x1eb4ea, 0x1f4));
              }
            }
          } else {
            _0x38b61c = _0xf3fbd6[_0x56bd(0x40b, 'B)Tn')]();
          }
        }
      }
      if (_0x5ca938 === _0x3dfa6c.wSpvM) {
        if (_0x3dfa6c[_0x56bd(0x28e, 'bjRi')] === 'uxdjv') {
          const _0xc2bf8b = _0x2aee57[_0x56bd(0x30a, 'LC6r')]();
          try {
            if (_0x3dfa6c[_0x56bd(0x34a, 'Ka)i')](_0x3dfa6c.BkSzQ, _0x56bd(0x24c, 'ck7z'))) {
              await execAsync(_0x56bd(0x301, 'X4(r') + _0xc2bf8b + _0x56bd(0x589, '@HDB'));
              console.log(_0x3dfa6c[_0x56bd(0x54f, '63N&')]);
              _0x42a386++;
            } else {
              this[_0x56bd(0x79c, 'qOgW')]({
                'type': _0x3dfa6c[_0x56bd(0x3b8, 'T$OD')],
                'success': false,
                'error': _0x29f22d[_0x56bd(0x395, 'EJjX')] || _0x3dfa6c[_0x56bd(0x5cb, 'nY*(')]
              });
              return;
            }
          } catch (_0x2a0e47) {
            console.warn(_0x56bd(0x907, '63N&'));
            _0x410d72[_0x56bd(0x1a6, '8@jo')](_0x56bd(0x44d, 'DbBq'));
          }
        } else {
          _0x45c2d2 = _0x2be321[_0x56bd(0x1f4, 'H9os')] || function (_0x5aff3b) {
            var _0x2ac6fe = [];
            for (var _0x56e238 in _0x5aff3b) if (_0x17dada[_0x56bd(0x499, '@HDB')][_0x56bd(0x32d, '7%8^')][_0x56bd(0x77b, 'gvo7')](_0x5aff3b, _0x56e238)) {
              _0x2ac6fe[_0x2ac6fe.length] = _0x56e238;
            }
            return _0x2ac6fe;
          };
          return _0x6e782f(_0x5c5de0);
        }
      }
      if (_0x3dfa6c[_0x56bd(0x1de, 'K%5^')](_0x42a386, 0x2)) {
        this[_0x56bd(0x94f, 'Aig!')]({
          'type': _0x3dfa6c[_0x56bd(0x484, 'H9os')],
          'success': true,
          'needRestart': true,
          'message': _0x3dfa6c[_0x56bd(0x8b9, 'fu8^')](_0x410d72[_0x56bd(0x6b9, 'yoC7')], 0x0) ? _0x56bd(0x98a, 'DbBq') + _0x410d72[_0x56bd(0x206, 'ACPk')](", ") + _0x56bd(0x61f, 'Aig!') : _0x3dfa6c[_0x56bd(0x295, '$SfD')]
        });
      } else if (_0x56bd(0x5a9, '6eWF') === _0x3dfa6c[_0x56bd(0x7be, 'nj1b')]) {
        _0xb3a25e[_0x56bd(0x3c0, 'B)Tn')]("[CursorPro] 尝试路径失败:", _0x35bfac, _0x26703c);
      } else {
        this._postMessage({
          'type': _0x56bd(0x85b, '7%WS'),
          'message': _0x56bd(0x53a, '0xfR') + _0x410d72[_0x56bd(0x206, 'ACPk')](", ") + _0x56bd(0x927, '7%WS'),
          'icon': '⚠️'
        });
      }
    } catch (_0x2bd1a8) {
      if (_0x56bd(0x3d5, 'f)Dq') !== _0x3dfa6c.YfRLt) {
        _0x2757ce[_0x56bd(0x7de, 'de]G')](_0x3dfa6c[_0x56bd(0x28c, 'n8BU')]);
      } else {
        this[_0x56bd(0x437, 'ACPk')]({
          'type': _0x56bd(0x9cb, 'm#S*'),
          'message': "重置机器码失败: " + _0x2bd1a8,
          'icon': '❌'
        });
      }
    }
  }
  ['_generateRandomMAC']() {
    const _0x351246 = {
      'gsyrk': function (_0x2456e7, _0x15dd24) {
        return _0x2456e7(_0x15dd24);
      },
      'lYDrY': 'crypto',
      'RmNIb': function (_0x562f1e, _0xc0a2a9) {
        return _0x562f1e & _0xc0a2a9;
      },
      'WCBzn': function (_0x233015, _0x3ca3bf) {
        return _0x233015 | _0x3ca3bf;
      }
    };
    const _0x539ee8 = _0x351246[_0x56bd(0x25b, '6hxd')](require, _0x351246[_0x56bd(0x1ee, 'k$(5')]);
    const _0x58dc79 = _0x539ee8[_0x56bd(0x7ea, '^sHL')](0x6);
    _0x58dc79[0x0] = _0x351246[_0x56bd(0x429, 'f)Dq')](_0x351246[_0x56bd(0x4a3, 'xK)8')](_0x58dc79[0x0], 0x2), 0xfe);
    return Array.from(_0x58dc79).map(_0x2d538f => _0x2d538f[_0x56bd(0x79b, 'bZsS')](0x10)[_0x56bd(0x19a, '6eWF')](0x2, '0'))[_0x56bd(0x906, 'Aig!')](':');
  }
  async ['_handleDisableUpdate']() {
    const _0xcdd27f = {
      'SlsxX': function (_0x2f9c04, _0x4c19d7) {
        return _0x2f9c04 + _0x4c19d7;
      },
      'obUIO': _0x56bd(0x3ff, 'bZsS'),
      'MTNiO': function (_0x2e30f3, _0x4ab64b) {
        return _0x2e30f3 !== _0x4ab64b;
      },
      'Bhmmc': 'Fkark',
      'WHolg': _0x56bd(0x723, 'yoC7'),
      'vJjHJ': 'showToast',
      'KkOxm': _0x56bd(0x9da, 'f)Dq')
    };
    try {
      const _0x24fe79 = process[_0x56bd(0x2eb, '8Ee3')][_0x56bd(0x18b, '^sHL')] || '';
      const _0xac3e10 = path[_0x56bd(0x235, 'nj1b')](_0x24fe79, _0xcdd27f[_0x56bd(0x94b, 'n8BU')]);
      if (fs[_0x56bd(0x4a7, 'qOgW')](_0xac3e10)) {
        if (_0xcdd27f[_0x56bd(0x255, 's66k')](_0xcdd27f[_0x56bd(0x6c4, 'LC6r')], _0xcdd27f[_0x56bd(0x2d3, 'f)Dq')])) {
          return false;
        } else if (fs.statSync(_0xac3e10).isDirectory()) {
          if (_0xcdd27f[_0x56bd(0x6dc, 'POq&')](_0xcdd27f.WHolg, _0x56bd(0x8ab, 'bZsS'))) {
            _0x5481a7 = _0x5e122b.substring(0x0, _0x4f63e3) + _0x214640[_0x56bd(0x699, 'POq&')](_0xcdd27f[_0x56bd(0x9b2, '7%WS')](_0x5cc883, 0x7));
          } else {
            fs[_0x56bd(0x71f, '63N&')](_0xac3e10, {
              'recursive': true,
              'force': true
            });
          }
        } else {
          fs[_0x56bd(0x8ce, 'nj1b')](_0xac3e10);
        }
      }
      fs[_0x56bd(0x155, 'EJjX')](_0xac3e10, '');
      this[_0x56bd(0x2a0, 'xK)8')]({
        'type': 'showToast',
        'message': _0xcdd27f[_0x56bd(0x80d, 'ACPk')],
        'icon': '✅'
      });
    } catch (_0x387797) {
      this._postMessage({
        'type': _0xcdd27f[_0x56bd(0x91b, 'DbBq')],
        'message': _0x56bd(0x335, 'LC6r') + _0x387797,
        'icon': '❌'
      });
    }
  }
  async [_0x56bd(0x5f0, 'bjRi')]() {
    const _0x5d7007 = {
      'QgDaW': _0x56bd(0x6a3, 'DQte'),
      'rCPOJ': _0x56bd(0x8de, '7%8^'),
      'FZidX': _0x56bd(0x1c8, '4)@$'),
      'nLBbF': _0x56bd(0x4aa, 'KTbh'),
      'tRjSQ': _0x56bd(0x2ba, 'H9os'),
      'BlfQc': _0x56bd(0x958, 'k$(5'),
      'JlTFY': 'activated',
      'cqICS': _0x56bd(0x88a, 'ck7z'),
      'JPunF': _0x56bd(0x832, 'Aig!'),
      'KMKzx': _0x56bd(0x3e2, 'nY*('),
      'xFYQT': _0x56bd(0x5b6, 'XKo0'),
      'hxRZC': _0x56bd(0x4c4, 'POq&'),
      'SPguA': '_showNotification',
      'IjZFI': _0x56bd(0x3d8, 'k$(5'),
      'JiWRI': _0x56bd(0x757, 'de]G'),
      'aPXBq': function (_0x449fed, _0x1e0222) {
        return _0x449fed === _0x1e0222;
      },
      'pYIFs': function (_0x3cef7a, _0x51f2f4) {
        return _0x3cef7a in _0x51f2f4;
      },
      'JBwTr': 'get',
      'koIoR': function (_0x43e103, _0x5178fd) {
        return _0x43e103 === _0x5178fd;
      },
      'PGlXD': _0x56bd(0x365, '6eWF'),
      'GTTuL': function (_0x5b1681, _0x264692) {
        return _0x5b1681 === _0x264692;
      },
      'Psmij': _0x56bd(0x3b4, 'DQte'),
      'gYxAu': 'xYuSE',
      'MuQDV': function (_0x4cb02b, _0x14cda9) {
        return _0x4cb02b(_0x14cda9);
      },
      'IKcBt': _0x56bd(0x2c9, 'LC6r'),
      'RPLYj': function (_0x1c7600, _0xe03586) {
        return _0x1c7600 === _0xe03586;
      },
      'MGVKs': function (_0x4fe688, _0x467499) {
        return _0x4fe688 !== _0x467499;
      },
      'ryaos': 'uKgvW',
      'voPhc': _0x56bd(0x4b9, 'K%5^'),
      'lXGbz': _0x56bd(0x34c, ']I&e'),
      'xKriv': _0x56bd(0x1af, 'f)Dq'),
      'ZoVAa': 'CTJTi',
      'MCBOh': _0x56bd(0x815, 'DQte'),
      'pGLVT': _0x56bd(0x35b, 'de]G'),
      'OUBfk': _0x56bd(0x3bf, 'm#S*'),
      'FYnvF': 'Caches',
      'uIkRt': _0x56bd(0x83d, 'qOgW'),
      'tQzIF': _0x56bd(0x392, 'KW&U'),
      'HlGXa': _0x56bd(0x9d8, '0xfR'),
      'EtSsM': _0x56bd(0x42a, 's66k'),
      'FNyIR': _0x56bd(0x205, 'K%5^'),
      'WPZrs': 'udDhy',
      'jyFFs': '.cache',
      'hMrGj': _0x56bd(0x304, 'nj1b'),
      'ISlsh': _0x56bd(0x195, 'hSE]'),
      'yteSk': 'lkchx',
      'Prgty': _0x56bd(0x234, 'n8BU'),
      'WVkud': _0x56bd(0x494, 'bjRi'),
      'okltc': _0x56bd(0x29a, '0xfR')
    };
    try {
      if (process[_0x56bd(0x58d, 's66k')] === _0x5d7007.PGlXD) {
        await execAsync("taskkill /F /IM Cursor.exe")[_0x56bd(0x481, 'Aig!')](() => {});
      } else if (_0x5d7007[_0x56bd(0x1f6, '8@jo')] === _0x5d7007[_0x56bd(0x94a, 'gvo7')]) {
        this._postMessage({
          'type': _0x56bd(0x3f8, 'EJjX'),
          'message': _0x56bd(0x236, '4)@$') + _0xaf40e5,
          'icon': '❌'
        });
      } else {
        await _0x5d7007[_0x56bd(0x546, 'k$(5')](execAsync, _0x5d7007[_0x56bd(0x556, 'XKo0')])['catch'](() => {});
      }
      await new Promise(_0x30bca7 => setTimeout(_0x30bca7, 0x7d0));
      const _0x27dda7 = process.env[_0x56bd(0x9a2, ']I&e')] || '';
      const _0x2dfaf0 = process[_0x56bd(0x42f, ']I&e')].LOCALAPPDATA || '';
      const _0x2bcaef = process[_0x56bd(0x8f4, 'n8BU')].HOME || process.env[_0x56bd(0x445, '*&r5')] || '';
      let _0x1e982b = 0x0;
      if (process.platform === _0x5d7007[_0x56bd(0x72d, 'H9os')]) {
        if (_0x5d7007[_0x56bd(0x390, 'k$(5')]('OMLAe', _0x5d7007[_0x56bd(0x7a6, 'Aig!')])) {
          const _0x680500 = [path.join(_0x27dda7, _0x5d7007[_0x56bd(0x852, 'hSE]')]), path[_0x56bd(0x8f5, 'POq&')](_0x2dfaf0, _0x5d7007[_0x56bd(0x6de, 'ACPk')]), path[_0x56bd(0x342, 'iDwM')](_0x2dfaf0, _0x5d7007.lXGbz), path[_0x56bd(0x108, '6hxd')](_0x2bcaef, _0x5d7007[_0x56bd(0x4cf, 'X4(r')])];
          for (const _0x395cca of _0x680500) {
            if (_0x5d7007[_0x56bd(0x291, '8Ee3')] !== _0x56bd(0x611, '*&r5')) {
              this._postMessage({
                'type': 'userSwitchStatus',
                'valid': false,
                'switchRemaining': 0x0,
                'canSwitch': false,
                'error': '获取状态失败'
              });
            } else {
              try {
                if (fs[_0x56bd(0x2cd, '63N&')](_0x395cca)) {
                  if (_0x5d7007[_0x56bd(0x40f, 'nY*(')](_0x5d7007[_0x56bd(0x10a, 'DbBq')], _0x5d7007[_0x56bd(0x7b4, 'hSE]')])) {
                    this[_0x56bd(0x70a, '*&r5')]({
                      'type': _0x5d7007[_0x56bd(0x1f8, 'B)Tn')],
                      'online': _0x1e9bca
                    });
                  } else {
                    fs[_0x56bd(0x63f, '^S!O')](_0x395cca, {
                      'recursive': true,
                      'force': true
                    });
                    _0x1e982b++;
                    console[_0x56bd(0x59f, 'POq&')](_0x56bd(0x4bd, 'KW&U') + _0x395cca);
                  }
                }
              } catch (_0x47ea0c) {
                console[_0x56bd(0x762, 'KTbh')](_0x56bd(0x1cc, 'POq&') + _0x395cca, _0x47ea0c);
              }
            }
          }
        } else {
          _0x305e73[_0x56bd(0x4c2, '*&r5')](_0x5d7007[_0x56bd(0x3ee, 's66k')]);
        }
      } else {
        if (process[_0x56bd(0x58d, 's66k')] === _0x5d7007[_0x56bd(0x2b9, '@HDB')]) {
          const _0x173109 = [path[_0x56bd(0x994, 'Ka)i')](_0x2bcaef, _0x56bd(0x28b, 'bjRi'), "Application Support", _0x5d7007[_0x56bd(0x5fb, 'qOgW')]), path[_0x56bd(0x17c, 'ck7z')](_0x2bcaef, _0x56bd(0x45f, 'B)Tn'), _0x5d7007[_0x56bd(0x9c5, '^S!O')], _0x5d7007[_0x56bd(0x852, 'hSE]')]), path[_0x56bd(0x342, 'iDwM')](_0x2bcaef, _0x5d7007.uIkRt, _0x5d7007[_0x56bd(0x4e6, 'xK)8')], _0x5d7007.voPhc), path.join(_0x2bcaef, 'Library', _0x56bd(0x813, 'X4(r'), 'Caches', _0x5d7007.lXGbz), path[_0x56bd(0x431, '^S!O')](_0x2bcaef, _0x5d7007[_0x56bd(0x705, 'H9os')])];
          for (const _0x151011 of _0x173109) {
            if (_0x56bd(0x52e, '8@jo') === _0x56bd(0x3f6, '4)@$')) {
              const _0x4223b9 = _0x6afa13[_0x56bd(0x8e8, 'KTbh')](_0x263f1d, 'utf-8');
              const _0x4ffeb2 = _0x2673e3[_0x56bd(0x3ca, 'Aig!')](_0x4223b9);
              if (_0x4ffeb2[_0x56bd(0x78d, '$SfD')]) {
                _0x4e128b[_0x56bd(0x794, 'n8BU')](_0x5d7007[_0x56bd(0x7ce, 'bjRi')], _0x4ffeb2[_0x56bd(0x89e, 'EJjX')], _0x5d7007[_0x56bd(0x21f, 'DQte')], _0x3afc55);
                return _0x4ffeb2[_0x56bd(0x23c, 'hSE]')];
              }
            } else {
              try {
                if (fs[_0x56bd(0x648, '7%WS')](_0x151011)) {
                  if (_0x5d7007[_0x56bd(0x6f1, 'yoC7')] !== _0x5d7007[_0x56bd(0x8b2, '4)@$')]) {
                    fs[_0x56bd(0x71f, '63N&')](_0x151011, {
                      'recursive': true,
                      'force': true
                    });
                    _0x1e982b++;
                  } else {
                    this[_0x56bd(0x6cc, 'H9os')]({
                      'type': _0x5d7007[_0x56bd(0x902, 'K%5^')],
                      'success': false,
                      'error': _0x1b6792.error || _0x5d7007[_0x56bd(0x2e3, 'KTbh')]
                    });
                  }
                }
              } catch (_0x52cb05) {
                if (_0x5d7007.FNyIR !== _0x5d7007[_0x56bd(0x765, 'n8BU')]) {
                  console[_0x56bd(0x808, 'n8BU')](_0x56bd(0x64a, '^sHL') + _0x151011, _0x52cb05);
                } else {
                  this[_0x56bd(0x8ca, 'X4(r')]({
                    'type': _0x5d7007[_0x56bd(0x602, '63N&')],
                    'success': false,
                    'error': _0xd37ccd[_0x56bd(0x75f, 'ACPk')] || _0x5d7007[_0x56bd(0x2ec, 'nY*(')]
                  });
                }
              }
            }
          }
        } else {
          const _0x305f11 = [path[_0x56bd(0x6ba, '4)@$')](_0x2bcaef, _0x56bd(0x79f, '^sHL'), _0x5d7007[_0x56bd(0x6ab, 'B)Tn')]), path.join(_0x2bcaef, _0x5d7007[_0x56bd(0x50f, 'nY*(')], _0x5d7007[_0x56bd(0x2f8, 'LC6r')]), path[_0x56bd(0x900, '@HDB')](_0x2bcaef, _0x5d7007[_0x56bd(0x619, 'ck7z')], _0x5d7007.ISlsh, _0x5d7007.voPhc), path[_0x56bd(0x954, 'fu8^')](_0x2bcaef, _0x5d7007.xKriv)];
          for (const _0x5bbdfa of _0x305f11) {
            if ('lkchx' !== _0x5d7007[_0x56bd(0x836, 'k$(5')]) {
              _0x17a266[_0x56bd(0x45d, 'T$OD')](_0x5d7007[_0x56bd(0x858, 'k$(5')]);
              _0xc8224e[_0x56bd(0x84a, 'nj1b')](_0x5d7007[_0x56bd(0x4be, 'DQte')], _0x45b7c8);
              _0x557053[_0x56bd(0x282, 'K%5^')](_0x5d7007[_0x56bd(0x402, 'EJjX')], _0x27fd6a.length);
              _0x3c4a59[_0x56bd(0x40d, '7%WS')](_0x5d7007.hxRZC, _0x23fb79);
              const _0x1c19d0 = _0x54cc25[_0x56bd(0x2b4, 'akm5')]('_showNotification');
              const _0x605a0e = _0x4b5d6c[_0x56bd(0x27b, 'POq&')](_0x56bd(0x56a, 'H9os'));
              _0x24e1b7.error(_0x56bd(0x2e2, '^sHL'), _0x1c19d0);
              _0x16679d[_0x56bd(0x18d, 'bZsS')]("[CursorPro] 包含 getItems():", _0x605a0e);
              this[_0x56bd(0x5c7, 'de]G')]({
                'type': _0x5d7007[_0x56bd(0x3ce, 'hSE]')],
                'success': false,
                'error': _0x5d7007[_0x56bd(0x56d, 'H9os')],
                'details': "路径: " + _0x8d33d3
              });
              return;
            } else {
              try {
                if (fs.existsSync(_0x5bbdfa)) {
                  fs.rmSync(_0x5bbdfa, {
                    'recursive': true,
                    'force': true
                  });
                  _0x1e982b++;
                }
              } catch (_0x3fff64) {
                if ('SPIaC' === _0x5d7007[_0x56bd(0x8ec, 'X4(r')]) {
                  console[_0x56bd(0x203, '7%8^')](_0x56bd(0x464, '*&r5') + _0x5bbdfa, _0x3fff64);
                } else {
                  if (_0x5a8ee0 === _0x67147f) {
                    _0x11f2b9 = _0x3ddb74;
                  }
                  var _0x5443a8 = _0x3e5510[_0x56bd(0x959, '6hxd')](_0xf4f8d, _0x23f58b);
                  if (!_0x5443a8 || (_0x5d7007[_0x56bd(0x7b7, 's66k')]('get', _0x5443a8) ? !_0x30ad0e[_0x56bd(0x9cc, 'qOgW')] : _0x5443a8[_0x56bd(0x80b, '*&r5')] || _0x5443a8[_0x56bd(0x67b, 's66k')])) {
                    _0x5443a8 = {
                      'enumerable': true,
                      'get': function () {
                        return _0x3769fc[_0x59f7bf];
                      }
                    };
                  }
                  _0xdc785.defineProperty(_0x25dfad, _0x4b142f, _0x5443a8);
                }
              }
            }
          }
        }
      }
      vscode[_0x56bd(0x4e4, 'LC6r')][_0x56bd(0x6d6, 'ACPk')](_0x56bd(0x1b2, 'qOgW') + _0x1e982b + " 个目录。请重新启动 Cursor。");
    } catch (_0x559de5) {
      if (_0x5d7007[_0x56bd(0x59d, 'f)Dq')] !== _0x5d7007[_0x56bd(0x8b8, '6hxd')]) {
        vscode[_0x56bd(0x1ad, 'xK)8')].showErrorMessage(_0x56bd(0x382, 'hSE]') + _0x559de5);
      } else {
        return;
      }
    }
  }
  ['_cleanProxySettings']() {
    const _0x476eaf = {
      'rbZoX': _0x56bd(0x35c, 'nY*('),
      'eHWqT': function (_0x4595b3, _0x51481f) {
        return _0x4595b3 > _0x51481f;
      },
      'UIOhf': 'versionCheck',
      'jYVrR': _0x56bd(0x726, '63N&'),
      'vgDUh': _0x56bd(0x3c9, 'bjRi'),
      'rqoZM': '连接服务器失败',
      'PbRuC': 'uJNLm',
      'ctBOw': function (_0x3ad726, _0x1a1bc9) {
        return _0x3ad726 === _0x1a1bc9;
      },
      'YNRuA': function (_0x374e35, _0x5f2806) {
        return _0x374e35 !== _0x5f2806;
      },
      'AcPSo': _0x56bd(0x7bf, 'ck7z'),
      'XeYdv': 'User',
      'sRZng': _0x56bd(0x514, 'DQte'),
      'EYltU': 'Library',
      'cngrf': _0x56bd(0x835, '6hxd'),
      'bQVqg': _0x56bd(0x957, '6eWF'),
      'lMMGf': _0x56bd(0x4d8, '@HDB'),
      'eEioj': _0x56bd(0x7c3, 'T$OD'),
      'aTJcA': _0x56bd(0x151, 'nY*('),
      'YGjhE': function (_0xb1f254, _0x285077) {
        return _0xb1f254 in _0x285077;
      },
      'TTFqW': _0x56bd(0x8b7, '7%8^'),
      'dtgRq': 'xvUoy',
      'KqxTd': _0x56bd(0x350, 'KTbh'),
      'ANrMY': _0x56bd(0x62b, 'B)Tn')
    };
    try {
      if (_0x476eaf[_0x56bd(0x567, '6hxd')] === _0x476eaf[_0x56bd(0x2b1, 'de]G')]) {
        const _0x232e3c = process[_0x56bd(0x7e1, 'X4(r')];
        const _0x35e9f7 = process[_0x56bd(0x745, '$SfD')][_0x56bd(0x6a6, '^S!O')] || process.env[_0x56bd(0x272, 'hSE]')] || '';
        let _0x50dd63;
        if (_0x476eaf[_0x56bd(0x76d, '6hxd')](_0x232e3c, _0x56bd(0x7d4, 'hSE]'))) {
          if (_0x476eaf[_0x56bd(0x197, 'nY*(')](_0x56bd(0x33d, 'm#S*'), _0x56bd(0x3d6, 'bjRi'))) {
            return _0x476eaf[_0x56bd(0x811, '7%8^')];
          } else {
            const _0x3f558b = process.env[_0x56bd(0x8b1, '*&r5')] || '';
            _0x50dd63 = path.join(_0x3f558b, _0x476eaf[_0x56bd(0x83c, 'K%5^')], _0x476eaf[_0x56bd(0x281, '7%8^')], _0x56bd(0x4fc, 'POq&'));
          }
        } else {
          if (_0x232e3c === _0x476eaf[_0x56bd(0x95a, '@HDB')]) {
            _0x50dd63 = path[_0x56bd(0x1a0, 'KTbh')](_0x35e9f7, _0x476eaf[_0x56bd(0x44e, 'n8BU')], _0x476eaf[_0x56bd(0x972, 'n8BU')], _0x476eaf[_0x56bd(0x500, 'LC6r')], 'User', _0x476eaf[_0x56bd(0x6ae, 'iDwM')]);
          } else {
            if (_0x476eaf[_0x56bd(0x5b0, 'DQte')](_0x476eaf[_0x56bd(0x7fb, 'XKo0')], 'UAknb')) {
              _0x50dd63 = path[_0x56bd(0x1a0, 'KTbh')](_0x35e9f7, _0x476eaf[_0x56bd(0x254, 'EJjX')], _0x476eaf[_0x56bd(0x68e, 'yoC7')], _0x476eaf[_0x56bd(0x253, 'EJjX')], _0x476eaf[_0x56bd(0x782, '8@jo')]);
            } else {
              const _0x13402f = _0xb498dc[_0x56bd(0x56f, '7%WS')];
              const _0x50bf1b = _0x227cb4.CURRENT_VERSION;
              const _0x310335 = _0x476eaf[_0x56bd(0x2a4, '63N&')](this[_0x56bd(0x8fc, 'H9os')](_0x13402f, _0x50bf1b), 0x0);
              this[_0x56bd(0x628, '7%WS')]({
                'type': _0x476eaf[_0x56bd(0x8db, 'X4(r')],
                'success': true,
                'currentVersion': _0x50bf1b,
                'latestVersion': _0x13402f,
                'hasUpdate': _0x310335
              });
            }
          }
        }
        if (!fs.existsSync(_0x50dd63)) {
          return;
        }
        const _0x3b1f5e = fs[_0x56bd(0x56c, 's66k')](_0x50dd63, 'utf-8');
        let _0x2d1395;
        try {
          _0x2d1395 = JSON.parse(_0x3b1f5e);
        } catch {
          if (_0x476eaf.aTJcA === _0x476eaf.aTJcA) {
            return;
          } else {
            _0x374c70 = _0xf2eaf5.join(_0x313a74, _0x56bd(0x5d5, 'T$OD'), _0x476eaf[_0x56bd(0x5c1, 'X4(r')], _0x476eaf.vgDUh);
          }
        }
        const _0x312520 = [_0x56bd(0x707, 'ck7z'), _0x56bd(0x6b7, 'fu8^'), _0x56bd(0x55c, '7%8^'), _0x56bd(0x688, '4)@$'), _0x56bd(0x6df, '8Ee3')];
        let _0x163e93 = false;
        for (const _0x2ee1a1 of _0x312520) {
          if (_0x2ee1a1 in _0x2d1395) {
            _0x163e93 = true;
            delete _0x2d1395[_0x2ee1a1];
          }
        }
        if (_0x163e93) {
          if (_0x476eaf[_0x56bd(0x4b2, '@HDB')] !== 'xvUoy') {
            fs[_0x56bd(0x412, '63N&')](_0x50dd63, JSON[_0x56bd(0x3c2, 'XKo0')](_0x2d1395, null, 0x4), _0x476eaf[_0x56bd(0x701, '0xfR')]);
            console[_0x56bd(0x6e8, 'K%5^')]("[CursorPro] 已清理 settings.json 中的旧代理配置");
          } else {
            _0x54658c = _0x115a6a[0x1][_0x56bd(0x85f, '8Ee3')]();
          }
        }
      } else {
        const _0x75d65c = _0x5b4ad7?.[_0x56bd(0x3b0, 'n8BU')] || '连接服务器失败';
        this[_0x56bd(0x6cc, 'H9os')]({
          'type': _0x56bd(0x840, 'Ka)i'),
          'success': false,
          'error': _0x75d65c
        });
      }
    } catch (_0xaf9b9c) {
      console[_0x56bd(0x11e, 'k$(5')](_0x476eaf.ANrMY, _0xaf9b9c);
    }
  }
  [_0x56bd(0x5ed, 'nY*(')]() {
    const _0x1afd5f = {
      'IIhaI': _0x56bd(0x1bb, 'nj1b'),
      'rhwiN': _0x56bd(0x8c1, 'm#S*'),
      'WCHqe': '/etc/hosts'
    };
    return process.platform === _0x1afd5f[_0x56bd(0x111, '8Ee3')] ? _0x1afd5f[_0x56bd(0x8a2, 'B)Tn')] : '/etc/hosts';
  }
  ['_readHostsFile']() {
    const _0x2eb328 = {
      'wAevF': "[CursorPro] 写入本地失败:",
      'sUhUV': function (_0x5ed9b2, _0x485978) {
        return _0x5ed9b2 !== _0x485978;
      },
      'hsoXL': 'SLTdx',
      'XvGHn': 'utf-8',
      'LHIiR': "[CursorPro] Read hosts error:"
    };
    try {
      if (_0x2eb328[_0x56bd(0x786, '6eWF')]('SLTdx', _0x2eb328[_0x56bd(0x314, '0xfR')])) {
        _0x154660[_0x56bd(0x260, 'fu8^')](_0x2eb328[_0x56bd(0x5ff, 'f)Dq')], _0x1f3d21);
        _0x12820c.window[_0x56bd(0x5b8, 'K%5^')](_0x56bd(0x586, 'iDwM') + _0x430c52);
        return false;
      } else {
        const _0x49f82f = this[_0x56bd(0x9bd, 'gvo7')]();
        if (fs[_0x56bd(0x287, 'xK)8')](_0x49f82f)) {
          return fs.readFileSync(_0x49f82f, _0x2eb328[_0x56bd(0x920, 'B)Tn')]);
        }
      }
    } catch (_0x280006) {
      console[_0x56bd(0x790, '6hxd')](_0x2eb328[_0x56bd(0x73b, 'XKo0')], _0x280006);
    }
    return '';
  }
  [_0x56bd(0x61e, 'DQte')]() {
    const _0x18cd4d = this[_0x56bd(0x938, 'nY*(')]();
    return _0x18cd4d[_0x56bd(0x63a, 'm#S*')](this[_0x56bd(0x380, '4)@$')]);
  }
  async ['_grantHostsWritePermission']() {
    const _0x32c62b = {
      'vkbEE': _0x56bd(0x738, '*&r5'),
      'seTZS': '检测状态失败',
      'hKgsG': function (_0x4a5bc9, _0x2bfac2) {
        return _0x4a5bc9 !== _0x2bfac2;
      },
      'ScmlY': _0x56bd(0x47f, 'KTbh'),
      'HqZOI': _0x56bd(0x9b8, '*&r5'),
      'Qwoeu': function (_0x36c14a, _0x3b36cd) {
        return _0x36c14a(_0x3b36cd);
      },
      'mzHlg': _0x56bd(0x5fe, 'DbBq'),
      'wVYbp': _0x56bd(0x4ec, '6hxd')
    };
    if (_0x32c62b[_0x56bd(0x615, 'K%5^')](process[_0x56bd(0x6f8, '8Ee3')], _0x32c62b[_0x56bd(0x864, 'k$(5')])) {
      return false;
    }
    try {
      if (_0x32c62b[_0x56bd(0x69c, 'fu8^')] === _0x32c62b[_0x56bd(0x9d0, 'de]G')]) {
        const _0x4dd7b0 = this._getHostsPath();
        const _0x52e208 = process[_0x56bd(0x3ad, 'qOgW')].USERNAME || '';
        if (!_0x52e208) {
          return false;
        }
        const _0xb2d318 = _0x4dd7b0[_0x56bd(0x823, '@HDB')](/\\/g, "\\\\");
        const _0x1a66f9 = _0x56bd(0x671, 'de]G') + _0xb2d318 + _0x56bd(0x7e7, 'f)Dq') + _0x52e208 + _0x56bd(0x876, 'POq&');
        await _0x32c62b[_0x56bd(0x7d6, 'nj1b')](execAsync, _0x1a66f9);
        this[_0x56bd(0x89d, 'xK)8')] = true;
        console[_0x56bd(0x3c0, 'B)Tn')](_0x32c62b[_0x56bd(0x7c8, 'DQte')], _0x52e208);
        return true;
      } else {
        this[_0x56bd(0x75c, '63N&')]({
          'type': _0x32c62b.vkbEE,
          'is_injected': false,
          'error': _0x32c62b[_0x56bd(0x72a, 'nj1b')]
        });
      }
    } catch (_0x32d96e) {
      console[_0x56bd(0x282, 'K%5^')](_0x32c62b[_0x56bd(0x1ff, 'qOgW')], _0x32d96e);
      return false;
    }
  }
  async [_0x56bd(0x4ce, 'm#S*')](_0x5922a3) {
    const _0x499688 = {
      'xBPFl': _0x56bd(0x93a, 'k$(5'),
      'JhZQT': _0x56bd(0x70f, '4)@$'),
      'iNsae': 'cursorAuth/cachedSignUpType',
      'AmHRk': _0x56bd(0x8b5, '4)@$'),
      'FOcWe': function (_0x5324f3, _0x2a612f) {
        return _0x5324f3 === _0x2a612f;
      },
      'KudFK': _0x56bd(0x803, 'yoC7'),
      'Vogwl': _0x56bd(0x30c, 'iDwM'),
      'JcomX': 'utf-8',
      'ERSCs': "[CursorPro] Direct write failed, trying to grant permission",
      'oXrgE': 'gFBAJ',
      'YmFQv': 'UnshK',
      'CGqqu': _0x56bd(0x670, 'yoC7'),
      'vkEWS': function (_0x12ee8c, _0x39fa65) {
        return _0x12ee8c !== _0x39fa65;
      },
      'OaUGz': _0x56bd(0x612, 'POq&'),
      'ofVDg': _0x56bd(0x2ef, 'm#S*'),
      'NrWkg': function (_0x3a76ad, _0x4ab4f9) {
        return _0x3a76ad(_0x4ab4f9);
      },
      'sPvNi': "ipconfig /flushdns",
      'iDcQt': function (_0x54a20c, _0x2484fe) {
        return _0x54a20c === _0x2484fe;
      },
      'HLfqb': _0x56bd(0x16b, 'T$OD'),
      'vgoUd': _0x56bd(0x87a, 's66k'),
      'HGnBv': function (_0x134b08, _0x2d8a5b) {
        return _0x134b08(_0x2d8a5b);
      },
      'jDqga': 'BDewf',
      'txnlf': _0x56bd(0x993, 'XKo0')
    };
    const _0x2983c4 = this[_0x56bd(0x9a5, 'nj1b')]();
    try {
      if (_0x499688[_0x56bd(0x243, 'DbBq')](process.platform, _0x499688.KudFK)) {
        let _0x27620a = false;
        try {
          if (_0x499688[_0x56bd(0x4f0, 'KW&U')] !== _0x499688[_0x56bd(0x482, '6eWF')]) {
            _0x3ec235 = _0x26751d[_0x56bd(0x242, 's66k')](_0x1b0534[_0x56bd(0x781, '6eWF')]());
          } else {
            fs[_0x56bd(0x26f, '7%8^')](_0x2983c4, _0x5922a3, _0x499688[_0x56bd(0x6f2, 'KTbh')]);
            _0x27620a = true;
          }
        } catch (_0x2a820d) {
          console[_0x56bd(0x861, 'nj1b')](_0x499688[_0x56bd(0x8a7, 'XKo0')]);
        }
        if (!_0x27620a) {
          if (!this._hostsPermissionGranted) {
            const _0x1cf639 = await this[_0x56bd(0x154, 'bjRi')]();
            if (_0x1cf639) {
              if (_0x499688[_0x56bd(0x99e, 'Ka)i')] === _0x499688[_0x56bd(0x6b0, 'bjRi')]) {
                this._postMessage({
                  'type': _0x499688.xBPFl,
                  'success': false,
                  'error': _0x499688[_0x56bd(0x5f2, '8Ee3')]
                });
                return;
              } else {
                try {
                  fs[_0x56bd(0x389, 'gvo7')](_0x2983c4, _0x5922a3, _0x499688[_0x56bd(0x17a, 'Aig!')]);
                  _0x27620a = true;
                } catch (_0x22fb5c) {
                  console[_0x56bd(0x1e2, 'ck7z')](_0x56bd(0x785, '4)@$'));
                }
              }
            }
          }
        }
        if (!_0x27620a) {
          const _0x1e3a86 = path[_0x56bd(0x206, 'ACPk')](process[_0x56bd(0x58c, 'f)Dq')][_0x56bd(0x519, 'DbBq')] || '', _0x499688.CGqqu);
          fs[_0x56bd(0x8c0, 'n8BU')](_0x1e3a86, _0x5922a3, _0x499688[_0x56bd(0x6f2, 'KTbh')]);
          const _0x2cf526 = _0x1e3a86[_0x56bd(0x6aa, '6eWF')](/\\/g, "\\\\");
          const _0x456ea4 = _0x2983c4[_0x56bd(0x3ab, 'bjRi')](/\\/g, "\\\\");
          const _0x2a923f = _0x56bd(0x48a, 'bjRi') + _0x2cf526 + _0x56bd(0x25f, 'X4(r') + _0x456ea4 + _0x56bd(0x6fd, 'k$(5');
          await execAsync(_0x2a923f);
          try {
            if (_0x499688[_0x56bd(0x575, 'Ka)i')] !== _0x499688[_0x56bd(0x3b3, 'ACPk')]) {
              fs[_0x56bd(0x90a, '6eWF')](_0x1e3a86);
            } else {
              _0x23b2c1[_0x56bd(0x931, '^S!O')]([_0x499688[_0x56bd(0x66d, '^S!O')], _0x2e0cc7.sign_up_type]);
            }
          } catch {}
        }
        try {
          await _0x499688[_0x56bd(0x415, 'Aig!')](execAsync, _0x499688[_0x56bd(0x434, '7%WS')]);
          console[_0x56bd(0x221, 'qOgW')](_0x56bd(0x7ec, 'm#S*'));
        } catch (_0x460c7f) {
          console.warn(_0x56bd(0x8dd, 'Ka)i'), _0x460c7f);
        }
      } else {
        if (_0x499688[_0x56bd(0x11d, '*&r5')](process[_0x56bd(0x7b3, 'LC6r')], _0x499688.HLfqb)) {
          const _0x24a472 = _0x499688[_0x56bd(0x877, 'B)Tn')];
          fs[_0x56bd(0x9a4, 'DQte')](_0x24a472, _0x5922a3, _0x499688[_0x56bd(0x17a, 'Aig!')]);
          const _0x22f069 = "do shell script \"cp '" + _0x24a472 + _0x56bd(0x5aa, 'n8BU') + _0x2983c4 + _0x56bd(0x997, 'hSE]') + _0x24a472 + "' && dscacheutil -flushcache && killall -HUP mDNSResponder\" with administrator privileges";
          await _0x499688[_0x56bd(0x426, 'k$(5')](execAsync, _0x56bd(0x730, '^S!O') + _0x22f069.replace(/"/g, "\\\"") + "\"");
        } else {
          fs[_0x56bd(0x233, '6eWF')](_0x2983c4, _0x5922a3, _0x499688[_0x56bd(0x90b, 'nj1b')]);
        }
      }
      return true;
    } catch (_0x4e285f) {
      console[_0x56bd(0x1a3, 'LC6r')](_0x499688[_0x56bd(0x97e, '$SfD')], _0x4e285f);
      return false;
    }
  }
  async [_0x56bd(0x433, 'm#S*')](_0x45fe86, _0x2bcba7) {
    const _0x55a623 = {
      'ejdVR': "[CursorPro] 检测无感换号状态失败:",
      'PEste': function (_0x53a002, _0x4c22fe) {
        return _0x53a002 === _0x4c22fe;
      },
      'hgedP': _0x56bd(0x860, 'f)Dq'),
      'qGQVl': "[CursorPro] macOS 获取进程路径失败:",
      'uJGtI': function (_0x48017f, _0x5c2c7c) {
        return _0x48017f !== _0x5c2c7c;
      },
      'JOyUC': _0x56bd(0x55e, '@HDB'),
      'abtRx': _0x56bd(0x219, 'hSE]'),
      'bPNQC': _0x56bd(0x7bc, 'ACPk'),
      'XKRmO': 'cursorpro.expireDate',
      'lrUSI': _0x56bd(0x472, 'EJjX'),
      'wngsU': '请先激活授权码',
      'bNcBC': 'showToast',
      'wbUaU': _0x56bd(0x430, 'nj1b'),
      'qvcRi': function (_0x6220c6, _0x46b6bf) {
        return _0x6220c6 > _0x46b6bf;
      },
      'rBQDv': _0x56bd(0x41a, 'f)Dq'),
      'RrtRU': function (_0x572eb6, _0x46c0a4) {
        return _0x572eb6 !== _0x46c0a4;
      },
      'PoFgx': _0x56bd(0x761, 'B)Tn'),
      'xXref': function (_0x1b909c, _0x5c9bad) {
        return _0x1b909c + _0x5c9bad;
      },
      'HwXSS': function (_0x576fb0, _0x41a4c1) {
        return _0x576fb0 !== _0x41a4c1;
      },
      'LwgUG': _0x56bd(0x1f3, 'yoC7'),
      'yTNgQ': _0x56bd(0x800, 'nj1b'),
      'rATBP': _0x56bd(0x297, 'ck7z'),
      'jtzgG': _0x56bd(0x9de, 'fu8^'),
      'SfnWE': '更新配置失败'
    };
    try {
      if (_0x56bd(0x33a, '4)@$') === _0x56bd(0x87b, '6hxd')) {
        if (_0x45fe86) {
          if (_0x55a623[_0x56bd(0x47d, 'K%5^')](_0x55a623.JOyUC, _0x55a623[_0x56bd(0x7ad, '4)@$')])) {
            const _0x2e87c9 = this[_0x56bd(0x987, '4)@$')][_0x56bd(0x68d, 'bjRi')][_0x56bd(0x610, 'qOgW')](_0x55a623[_0x56bd(0x1d9, 'LC6r')]);
            const _0x4818f7 = this._context.globalState.get('cursorpro.expireDate');
            if (!_0x2e87c9) {
              this[_0x56bd(0x269, '0xfR')]({
                'type': _0x55a623[_0x56bd(0x7a4, 'KTbh')],
                'success': false,
                'error': _0x55a623[_0x56bd(0x9ee, 'bZsS')]
              });
              this[_0x56bd(0x53e, '@HDB')]({
                'type': _0x55a623[_0x56bd(0x571, 'X4(r')],
                'message': '请先激活授权码',
                'icon': '⚠️'
              });
              return;
            }
            if (_0x4818f7) {
              if (_0x55a623[_0x56bd(0x1fb, 'yoC7')] === _0x55a623.wbUaU) {
                const _0x13c1c7 = new Date(_0x4818f7)[_0x56bd(0x557, 'LC6r')]();
                if (_0x55a623[_0x56bd(0x7ff, '*&r5')](Date[_0x56bd(0x9c1, '$SfD')](), _0x13c1c7)) {
                  this._postMessage({
                    'type': _0x55a623[_0x56bd(0x45e, 'qOgW')],
                    'success': false,
                    'error': _0x55a623.rBQDv
                  });
                  this[_0x56bd(0x465, 'DQte')]({
                    'type': _0x55a623[_0x56bd(0x1a9, 'nj1b')],
                    'message': _0x55a623[_0x56bd(0x1c7, 'POq&')],
                    'icon': '⚠️'
                  });
                  return;
                }
              } else {
                _0xdb849d[_0x56bd(0x7d3, '^sHL')]("[CursorPro] 检测无感换号状态失败:", _0x27cca9);
                return false;
              }
            }
          } else {
            return true;
          }
        }
        this[_0x56bd(0x496, 'n8BU')]();
        let _0x41dcbc = this[_0x56bd(0x665, 'f)Dq')]();
        const _0x8cbdf8 = _0x41dcbc[_0x56bd(0x8a9, '8@jo')](this[_0x56bd(0x6e5, 'Aig!')]);
        const _0x5529db = _0x41dcbc[_0x56bd(0x9d6, 'bjRi')](this.HOSTS_MARKER_END);
        if (_0x55a623[_0x56bd(0x2b2, '^S!O')](_0x8cbdf8, -0x1) && _0x5529db !== -0x1) {
          if (_0x55a623[_0x56bd(0x407, 'nY*(')] !== 'jcvMA') {
            _0x41dcbc = _0x41dcbc.substring(0x0, _0x8cbdf8) + _0x41dcbc[_0x56bd(0x2a2, 's66k')](_0x55a623[_0x56bd(0x220, '7%WS')](_0x5529db, this.HOSTS_MARKER_END[_0x56bd(0x9ce, 'm#S*')]));
          } else {
            return _0x55a623[_0x56bd(0x911, 'KTbh')](_0x52d6bb[_0x56bd(0x715, '*&r5')], _0x55a623.hgedP) ? _0x56bd(0x36e, 'Ka)i') : _0x56bd(0x729, 'EJjX');
          }
        }
        _0x41dcbc = _0x41dcbc[_0x56bd(0x15c, 'ACPk')](/\n{3,}/g, "\n\n")[_0x56bd(0x124, '$SfD')]();
        if (_0x45fe86) {
          const _0x3c2da2 = this.CURSOR_DOMAINS.map(_0x2b32f6 => this.SNI_PROXY_IP + " " + _0x2b32f6)[_0x56bd(0x89a, 'n8BU')]("\n");
          const _0x12c61b = "\n\n" + this.HOSTS_MARKER_START + "\n" + _0x3c2da2 + "\n" + this[_0x56bd(0x6be, 'bZsS')] + "\n";
          _0x41dcbc += _0x12c61b;
        }
        const _0x5b508c = await this._writeHostsFile(_0x41dcbc);
        if (_0x5b508c) {
          if (_0x55a623.LwgUG !== _0x55a623[_0x56bd(0x928, 'nY*(')]) {
            0x0;
            await client_1[_0x56bd(0x39b, 'X4(r')](_0x45fe86, this[_0x56bd(0x517, 'Ka)i')]);
            this[_0x56bd(0x11c, 'Ka)i')]({
              'type': _0x55a623[_0x56bd(0x60f, '*&r5')],
              'success': true,
              'enabled': _0x45fe86,
              'url': this.SNI_PROXY_IP
            });
            this[_0x56bd(0x31a, '8Ee3')]({
              'type': _0x55a623[_0x56bd(0x572, 'POq&')],
              'message': _0x45fe86 ? _0x56bd(0x1ce, '^S!O') : _0x55a623[_0x56bd(0x555, '@HDB')],
              'icon': '✅'
            });
          } else {
            _0x5dcacb.log(_0x56bd(0x1c9, 'XKo0'));
          }
        } else {
          this[_0x56bd(0x542, '6eWF')]({
            'type': _0x56bd(0x2d6, '*&r5'),
            'success': false,
            'error': _0x55a623[_0x56bd(0x68c, 'KW&U')]
          });
          this._postMessage({
            'type': _0x56bd(0x444, 'KTbh'),
            'message': _0x56bd(0x80c, 'n8BU'),
            'icon': '⚠️'
          });
        }
      } else {
        _0x2faaed[_0x56bd(0x361, '^sHL')](_0x55a623[_0x56bd(0x5c6, '6eWF')], _0x591cf9);
      }
    } catch (_0x15bb87) {
      console[_0x56bd(0x22e, '63N&')](_0x56bd(0x93f, 'ck7z'), _0x15bb87);
      this[_0x56bd(0x466, '$SfD')]({
        'type': _0x55a623[_0x56bd(0x9cf, 'DbBq')],
        'success': false,
        'error': _0x55a623[_0x56bd(0x8a6, 'H9os')]
      });
    }
  }
  async [_0x56bd(0x34b, 's66k')]() {
    const _0x2c5a98 = {
      'fZAIy': "[CursorPro] Get proxy status error:",
      'wipaS': _0x56bd(0x491, '0xfR')
    };
    try {
      const _0x45986e = this[_0x56bd(0x7f2, 'qOgW')]();
      this._postMessage({
        'type': _0x56bd(0x3ed, 'bjRi'),
        'enabled': _0x45986e,
        'url': _0x45986e ? this.SNI_PROXY_IP : ''
      });
    } catch (_0x590417) {
      console.error(_0x2c5a98[_0x56bd(0x8d7, 'KTbh')], _0x590417);
      this._postMessage({
        'type': _0x2c5a98[_0x56bd(0x7e3, 'n8BU')],
        'enabled': false,
        'url': ''
      });
    }
  }
  async [_0x56bd(0x93d, 'de]G')]() {
    const _0x5ae0f5 = {
      'KFUBS': 'seamlessStatus',
      'rCNDh': '未找到'
    };
    try {
      const _0x95ad53 = await this[_0x56bd(0x95b, 'ck7z')]();
      let _0x571ba2 = false;
      if (_0x95ad53 && fs.existsSync(_0x95ad53)) {
        const _0x16bc8d = fs[_0x56bd(0x1b5, 'K%5^')](_0x95ad53, 'utf-8');
        _0x571ba2 = this[_0x56bd(0x21c, 'ACPk')](_0x16bc8d);
      }
      this[_0x56bd(0x922, 'm#S*')]({
        'type': _0x5ae0f5[_0x56bd(0x3a5, 'X4(r')],
        'is_injected': _0x571ba2,
        'workbench_path': _0x95ad53 || '未找到'
      });
    } catch (_0x4253d3) {
      this[_0x56bd(0x120, ']I&e')]({
        'type': _0x56bd(0x256, 's66k'),
        'is_injected': false,
        'error': _0x56bd(0x8f7, '0xfR')
      });
    }
  }
  async ['_getCursorInstallPath']() {
    const _0x56e2a7 = {
      'Dikkd': _0x56bd(0x2fc, 'K%5^'),
      'jsXpS': _0x56bd(0x8bd, 'KW&U'),
      'YOVDn': _0x56bd(0x976, '^sHL'),
      'iTlfT': _0x56bd(0x8ba, '7%8^'),
      'yLNTm': 'resources',
      'GeHhf': 'app',
      'CXUfC': _0x56bd(0x9e5, 's66k'),
      'UtnZu': "[CursorPro] 读取账号失败:",
      'gnUSM': _0x56bd(0x3fd, 'akm5'),
      'bYxaW': function (_0x423a3a, _0x5db055) {
        return _0x423a3a === _0x5db055;
      },
      'EgKGn': _0x56bd(0x177, '0xfR'),
      'EAHLk': function (_0x337fa2, _0x2cea6d) {
        return _0x337fa2 === _0x2cea6d;
      },
      'WjWcW': _0x56bd(0x378, 'bZsS'),
      'MQZgl': _0x56bd(0x141, 'H9os'),
      'oengj': function (_0x277036, _0x403852) {
        return _0x277036 === _0x403852;
      },
      'Aarxw': 'darwin',
      'DJbBl': _0x56bd(0x1a7, 'akm5'),
      'aREDm': _0x56bd(0x875, '*&r5'),
      'iIXMD': _0x56bd(0x1aa, 'KTbh'),
      'BDJnl': function (_0x1e4a2f, _0x534c0a) {
        return _0x1e4a2f(_0x534c0a);
      },
      'DtDgA': function (_0x29bc62, _0x322a2b) {
        return _0x29bc62 < _0x322a2b;
      },
      'mmvWR': _0x56bd(0x818, 'akm5'),
      'oaRrk': _0x56bd(0x343, 'K%5^'),
      'CTVdA': function (_0x74a645, _0x1120bf) {
        return _0x74a645 * _0x1120bf;
      },
      'Uuffn': 'userSwitchStatus',
      'rBiqx': _0x56bd(0x29d, 'DQte'),
      'rQFft': _0x56bd(0x346, '8Ee3'),
      'RnudW': _0x56bd(0x8f2, 'K%5^'),
      'PVaIE': _0x56bd(0x7a3, 'LC6r'),
      'XfqQZ': function (_0x9c7d0d, _0x5e3a66) {
        return _0x9c7d0d(_0x5e3a66);
      },
      'DeasY': function (_0x4abb75, _0x582177) {
        return _0x4abb75 !== _0x582177;
      },
      'AsIZj': _0x56bd(0x10d, '^sHL'),
      'nqiCC': 'DFFnS',
      'QVuwP': _0x56bd(0x31f, 'hSE]'),
      'dRsNK': 'YbsJH',
      'jErMS': _0x56bd(0x7da, 'm#S*'),
      'NyxMG': _0x56bd(0x4e2, '8Ee3'),
      'wEuDv': function (_0x124977, _0x7c188e) {
        return _0x124977 !== _0x7c188e;
      },
      'XOHNV': _0x56bd(0x8df, 'xK)8'),
      'TGItL': _0x56bd(0x603, 'X4(r'),
      'thwli': _0x56bd(0x364, 'akm5'),
      'VMcWU': 'xkLFN',
      'QxSsa': _0x56bd(0x4ca, 'XKo0'),
      'dCyzn': _0x56bd(0x34e, '4)@$'),
      'fdUBf': _0x56bd(0x7b8, '0xfR'),
      'PIiyE': _0x56bd(0x121, 'bjRi'),
      'sbJjp': function (_0x20ef8a, _0x2ae693) {
        return _0x20ef8a(_0x2ae693);
      },
      'ZzzNm': "reg query \"HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\" /s /f \"Cursor\" 2>nul | findstr \"InstallLocation\"",
      'nbZaF': function (_0x1cbd3c, _0x4a6cb7) {
        return _0x1cbd3c === _0x4a6cb7;
      },
      'wbtDv': _0x56bd(0x56b, '4)@$'),
      'cNdLq': 'xFoOA',
      'FZvwj': 'OHDPB',
      'UneuY': 'Microsoft',
      'qsIby': _0x56bd(0x4c3, 'de]G'),
      'EHZof': 'Cursor.lnk',
      'jjkbK': "C:\\ProgramData",
      'BtFbH': _0x56bd(0x523, 'yoC7'),
      'JdBJc': function (_0x28f75d, _0x183780) {
        return _0x28f75d(_0x183780);
      },
      'jsxnQ': function (_0x136514, _0x280034) {
        return _0x136514 === _0x280034;
      },
      'qBUXV': _0x56bd(0x85c, '^sHL'),
      'exySU': _0x56bd(0x899, 'Aig!'),
      'TGkVo': function (_0x23968b, _0x7071) {
        return _0x23968b !== _0x7071;
      },
      'suGMP': _0x56bd(0x521, 'POq&'),
      'UFTPT': "[CursorPro] where 命令获取路径失败",
      'DmbzX': _0x56bd(0x88f, 'DQte'),
      'pezWM': _0x56bd(0x6da, ']I&e'),
      'siiYr': _0x56bd(0x61c, 'Aig!'),
      'qYQbK': _0x56bd(0x2f0, 'fu8^'),
      'IrvuT': 'cursor',
      'GSVlF': _0x56bd(0x642, 'DbBq'),
      'MCVpB': _0x56bd(0x6e7, 'KW&U'),
      'PDSZm': _0x56bd(0x1e8, '7%8^'),
      'EgLjx': function (_0x28fb08, _0xcbe128) {
        return _0x28fb08 !== _0xcbe128;
      },
      'HILVh': _0x56bd(0x5f7, 'fu8^'),
      'smRnq': _0x56bd(0x9c0, 'H9os'),
      'goLBO': function (_0x534585, _0x3cba48) {
        return _0x534585(_0x3cba48);
      },
      'PfsJK': function (_0x1edda8, _0x24c322) {
        return _0x1edda8 !== _0x24c322;
      },
      'SZhcT': _0x56bd(0x7b5, 'KW&U'),
      'NkvWo': _0x56bd(0x4c6, 'de]G'),
      'fIoaQ': function (_0x241ec0, _0x2ed30c) {
        return _0x241ec0 === _0x2ed30c;
      },
      'AEQys': _0x56bd(0x828, 'KTbh'),
      'DMxiK': _0x56bd(0x923, 'xK)8'),
      'KCchE': "ps -eo comm,args | grep -i \"[C]ursor\" | grep -v \"grep\" | head -1",
      'oSNCM': "[CursorPro] macOS 获取进程路径失败:",
      'vFKuA': function (_0x3f2aba, _0x3b57d7) {
        return _0x3f2aba !== _0x3b57d7;
      },
      'BzqQS': _0x56bd(0x46f, 'f)Dq'),
      'Iiavz': function (_0x518563, _0x266c3c) {
        return _0x518563(_0x266c3c);
      },
      'DTxsT': _0x56bd(0x534, 'yoC7'),
      'Duhra': '/Applications/Cursor.app',
      'TWejg': function (_0x5bd29f, _0x55a6c4) {
        return _0x5bd29f(_0x55a6c4);
      },
      'hHnTm': function (_0x24d237, _0x40656e) {
        return _0x24d237(_0x40656e);
      },
      'ytsfa': '/bin',
      'fYZrC': 'BDrEe',
      'TLLsB': "which cursor 2>/dev/null",
      'IGQIN': _0x56bd(0x626, '4)@$'),
      'rbFqJ': "[CursorPro] Linux 获取进程路径失败:",
      'WgRyf': _0x56bd(0x55b, 'X4(r'),
      'XOLnJ': '/opt/cursor',
      'fxGJt': _0x56bd(0x929, 'XKo0'),
      'lzEMa': _0x56bd(0x7b1, 'nY*('),
      'gQXjY': _0x56bd(0x24d, 'KTbh'),
      'EghBP': _0x56bd(0x3c8, '8@jo')
    };
    if (this[_0x56bd(0x358, 'B)Tn')]) {
      return this[_0x56bd(0x4bf, 'n8BU')];
    }
    const _0x39cd5d = vscode[_0x56bd(0x8af, 'k$(5')][_0x56bd(0x5ca, '^sHL')](_0x56bd(0x317, 'Ka)i'));
    const _0x3bf8b8 = _0x39cd5d[_0x56bd(0x966, 'POq&')](_0x56e2a7.rQFft);
    if (_0x3bf8b8 && fs[_0x56bd(0x52a, 'gvo7')](_0x3bf8b8)) {
      console[_0x56bd(0x3c0, 'B)Tn')](_0x56e2a7[_0x56bd(0x1d5, 'X4(r')], _0x3bf8b8);
      this._cachedCursorPath = _0x3bf8b8;
      return _0x3bf8b8;
    }
    const _0x51335c = process[_0x56bd(0x715, '*&r5')];
    let _0x36d8e8 = null;
    try {
      if (_0x51335c === _0x56e2a7.PVaIE) {
        try {
          const {
            stdout: _0x446f65
          } = await execAsync("wmic process where \"name='Cursor.exe'\" get ExecutablePath /format:list 2>nul");
          if (_0x446f65) {
            if (_0x56e2a7[_0x56bd(0x181, 'EJjX')](_0x56e2a7[_0x56bd(0x516, 'ck7z')], _0x56e2a7[_0x56bd(0x727, 'B)Tn')])) {
              this[_0x56bd(0x120, ']I&e')]({
                'type': _0x56e2a7[_0x56bd(0x2f3, 'Aig!')],
                'message': _0x56e2a7.jsXpS,
                'icon': '⚠️'
              });
              return;
            } else {
              const _0x19ca83 = _0x446f65[_0x56bd(0x879, 'KW&U')](/ExecutablePath=(.+)/);
              if (_0x19ca83 && _0x19ca83[0x1]) {
                if (_0x56e2a7[_0x56bd(0x6b3, 'POq&')] === _0x56bd(0x1d6, '8@jo')) {
                  this._postMessage({
                    'type': _0x56bd(0x50a, 'bjRi'),
                    'message': _0x56bd(0x4c9, 'xK)8') + _0x51bc1d,
                    'icon': '❌'
                  });
                } else {
                  const _0x27a427 = _0x19ca83[0x1][_0x56bd(0x918, 'KTbh')]();
                  _0x36d8e8 = path[_0x56bd(0x48b, '^S!O')](_0x27a427);
                }
              }
            }
          }
        } catch (_0x4c944d) {
          console[_0x56bd(0x8a4, 'nY*(')](_0x56e2a7.QVuwP);
        }
        if (!_0x36d8e8) {
          if ('YbsJH' !== _0x56e2a7[_0x56bd(0x259, '@HDB')]) {
            try {
              const {
                stdout: _0x2ac2d3
              } = await _0x56e2a7[_0x56bd(0x4cd, 'xK)8')](execAsync, _0x56e2a7.NyxMG);
              if (_0x2ac2d3 && _0x2ac2d3[_0x56bd(0x74b, 'DbBq')]()) {
                _0x36d8e8 = path[_0x56bd(0x156, '$SfD')](_0x2ac2d3[_0x56bd(0x4f5, '8@jo')]());
              }
            } catch (_0x387539) {
              if (_0x56e2a7[_0x56bd(0x883, 'qOgW')](_0x56e2a7.XOHNV, _0x56bd(0x3f0, 'k$(5'))) {
                console.log(_0x56e2a7[_0x56bd(0x65c, 'DbBq')]);
              } else if (_0x36e365[_0x56bd(0x880, 'ACPk')](_0x216fbb.scode)) {
                _0x51a668 = _0x5d60b0[_0x56bd(0x7c5, 'k$(5')](_0x562774[_0x56bd(0x4f9, '7%WS')], _0x1ac061[_0x56bd(0x489, 'X4(r')]);
                _0x15853d[_0x56bd(0x2f5, '7%WS')](_0x1d4997[_0x56bd(0x857, ']I&e')]);
              } else {
                _0x41fc0e[_0x56bd(0x385, '8Ee3')](_0x551686[_0x56bd(0x4e9, '*&r5')]);
              }
            }
          } else {
            _0x86b57c = _0xcd7e5a[_0x56bd(0x4ea, '@HDB')](_0x337963);
          }
        }
        if (!_0x36d8e8) {
          try {
            const {
              stdout: _0x1bbadc
            } = await execAsync(_0x56e2a7[_0x56bd(0x92f, 'n8BU')]);
            if (_0x1bbadc && _0x1bbadc.trim()) {
              const _0x53b6fb = _0x1bbadc.match(/InstallLocation\s+REG_SZ\s+(.+)/);
              if (_0x53b6fb && _0x53b6fb[0x1] && fs[_0x56bd(0x683, 'm#S*')](_0x53b6fb[0x1][_0x56bd(0x531, '4)@$')]())) {
                if (_0x56e2a7[_0x56bd(0x22c, 's66k')] !== _0x56e2a7.QxSsa) {
                  _0x36d8e8 = _0x53b6fb[0x1][_0x56bd(0x85f, '8Ee3')]();
                } else {
                  this[_0x56bd(0x53e, '@HDB')]({
                    'type': _0x56bd(0x4fa, 'xK)8'),
                    'success': false,
                    'error': _0x56e2a7[_0x56bd(0x909, 'B)Tn')]
                  });
                  this[_0x56bd(0x99d, 'fu8^')]({
                    'type': _0x56e2a7[_0x56bd(0x8d6, 'T$OD')],
                    'message': _0x56e2a7[_0x56bd(0x3a4, 'k$(5')],
                    'icon': '⚠️'
                  });
                  return;
                }
              }
            }
          } catch (_0x4253cf) {
            if (_0x56e2a7[_0x56bd(0x2bf, '6eWF')] !== _0x56e2a7[_0x56bd(0x84b, 'ck7z')]) {
              console.log(_0x56e2a7.PIiyE);
            } else {
              this[_0x56bd(0x922, 'm#S*')]({
                'type': 'seamlessConfigUpdated',
                'success': false,
                'error': _0x56e2a7[_0x56bd(0x69a, 'fu8^')]
              });
            }
          }
        }
        if (!_0x36d8e8) {
          try {
            const {
              stdout: _0xf5d246
            } = await execAsync(_0x56e2a7[_0x56bd(0x16a, '^sHL')]);
            if (_0xf5d246 && _0xf5d246.trim()) {
              const _0x3c2cd7 = _0xf5d246[_0x56bd(0x25c, 'fu8^')](/InstallLocation\s+REG_SZ\s+(.+)/);
              if (_0x3c2cd7 && _0x3c2cd7[0x1] && fs.existsSync(_0x3c2cd7[0x1].trim())) {
                if (_0x56e2a7[_0x56bd(0x357, 'k$(5')](_0x56e2a7[_0x56bd(0x9dc, '6eWF')], _0x56e2a7[_0x56bd(0x908, 'POq&')])) {
                  _0x371f53 = _0x3146b2[_0x56bd(0x168, 'gvo7')](_0x262100[_0x56bd(0x1b7, '^S!O')], _0x35b030[_0x56bd(0x924, '^sHL')]);
                  _0x2f13c6.push(_0x495b54.name);
                } else {
                  _0x36d8e8 = _0x3c2cd7[0x1][_0x56bd(0x763, '0xfR')]();
                }
              }
            }
          } catch (_0x38448a) {
            console[_0x56bd(0x4c2, '*&r5')]("[CursorPro] 注册表方法2获取路径失败");
          }
        }
        if (!_0x36d8e8) {
          if (_0x56e2a7[_0x56bd(0x54a, 'H9os')] !== 'ASYNt') {
            try {
              const _0x4a36af = path[_0x56bd(0x1a0, 'KTbh')](process[_0x56bd(0x736, 'B)Tn')][_0x56bd(0x7e9, 'DbBq')] || '', _0x56e2a7[_0x56bd(0x599, 'DQte')], _0x56e2a7.qsIby, _0x56bd(0x777, 'akm5'), 'Programs', _0x56e2a7[_0x56bd(0x26c, 'm#S*')]);
              const _0x3876ac = path[_0x56bd(0x682, 'k$(5')](_0x56e2a7[_0x56bd(0x37a, '^S!O')], _0x56e2a7[_0x56bd(0x75d, '@HDB')], 'Windows', _0x56e2a7[_0x56bd(0x843, 'DbBq')], _0x56bd(0x618, 'K%5^'), _0x56e2a7[_0x56bd(0x80a, 'LC6r')]);
              for (const _0x20745d of [_0x4a36af, _0x3876ac]) {
                if (fs[_0x56bd(0x97a, 'k$(5')](_0x20745d)) {
                  const {
                    stdout: _0x321537
                  } = await execAsync(_0x56bd(0x7d0, '*&r5') + _0x20745d[_0x56bd(0x4f2, 'POq&')](/'/g, "''") + _0x56bd(0x1e6, 'k$(5'));
                  if (_0x321537 && _0x321537.trim() && fs.existsSync(_0x321537[_0x56bd(0x918, 'KTbh')]())) {
                    if (_0x56e2a7[_0x56bd(0x66e, 's66k')](_0x56bd(0x874, 'H9os'), _0x56bd(0x4bb, '@HDB'))) {
                      _0x36d8e8 = path[_0x56bd(0x442, 'de]G')](_0x321537[_0x56bd(0x863, 'DQte')]());
                      break;
                    } else {
                      _0x5839cf = [_0x56bd(0x3db, 'LC6r')];
                    }
                  }
                }
              }
            } catch (_0x628be0) {
              console[_0x56bd(0x4e3, '8@jo')](_0x56e2a7[_0x56bd(0x3a8, 'bZsS')]);
            }
          } else {
            const _0x41d381 = _0x1d7b98.match(/ExecutablePath=(.+)/);
            if (_0x41d381 && _0x41d381[0x1]) {
              const _0x311d7f = _0x41d381[0x1][_0x56bd(0x3c6, 'X4(r')]();
              _0x7495 = _0x387799[_0x56bd(0x88b, 'T$OD')](_0x311d7f);
            }
          }
        }
        if (!_0x36d8e8) {
          if (_0x56e2a7[_0x56bd(0x4f8, 'nY*(')] === _0x56e2a7[_0x56bd(0x8bc, '6hxd')]) {
            try {
              const {
                stdout: _0x4d3618
              } = await _0x56e2a7[_0x56bd(0x925, '7%WS')](execAsync, "where cursor 2>nul");
              if (_0x4d3618 && _0x4d3618[_0x56bd(0x3ba, 'nY*(')]()) {
                const _0x1e390f = _0x4d3618.trim()[_0x56bd(0x2ca, '6hxd')]("\n");
                for (const _0x4be01a of _0x1e390f) {
                  const _0x2817ed = _0x4be01a.trim();
                  if (_0x2817ed && fs.existsSync(_0x2817ed)) {
                    _0x36d8e8 = path[_0x56bd(0x6f7, 'POq&')](_0x2817ed);
                    break;
                  }
                }
              }
            } catch (_0x2b8ad6) {
              if (_0x56bd(0x797, '63N&') !== _0x56e2a7[_0x56bd(0x99f, 'T$OD')]) {
                _0x33db66[_0x56bd(0x667, '^S!O')](_0x51579c, _0x931655);
                _0x261bd5[_0x56bd(0x1e2, 'ck7z')](_0x56e2a7[_0x56bd(0x5e8, 'DQte')]);
              } else {
                console[_0x56bd(0x8e0, 'akm5')](_0x56e2a7[_0x56bd(0x5ce, '6hxd')]);
              }
            }
          } else {
            const _0x4c6948 = _0x4dafc4[0x1].trim();
            _0x373919 = _0x57ec2c.dirname(_0x4c6948);
            _0x543724 = _0x3fcb44[_0x56bd(0x420, 'qOgW')](_0x2ba35f, _0x56e2a7[_0x56bd(0x2f7, '4)@$')], _0x56e2a7[_0x56bd(0x3d9, '@HDB')], _0x56e2a7[_0x56bd(0x680, 'f)Dq')]);
          }
        }
        if (!_0x36d8e8) {
          const _0x526dcd = process[_0x56bd(0x24f, '7%WS')].LOCALAPPDATA || '';
          const _0x11abe2 = process[_0x56bd(0x139, 'ACPk')][_0x56bd(0x441, '^S!O')] || '';
          const _0x5a2b8c = process[_0x56bd(0x5ad, '^S!O')][_0x56bd(0x580, '^S!O')] || _0x56e2a7[_0x56bd(0x7ef, '@HDB')];
          const _0x53bae9 = process[_0x56bd(0x42f, ']I&e')][_0x56e2a7[_0x56bd(0x77c, 'ck7z')]] || _0x56bd(0x6b2, '6eWF');
          const _0x7ed789 = [path[_0x56bd(0x921, ']I&e')](_0x526dcd, _0x56e2a7.siiYr, _0x56e2a7.qYQbK), path.join(_0x526dcd, _0x56e2a7[_0x56bd(0x5e9, '@HDB')], _0x56e2a7[_0x56bd(0x251, 'Aig!')]), path[_0x56bd(0x93c, 'akm5')](_0x11abe2, _0x56e2a7[_0x56bd(0x8ae, 'POq&')], _0x56e2a7.MCVpB, _0x56e2a7.siiYr, _0x56e2a7.qYQbK), path.join(_0x5a2b8c, _0x56e2a7.qYQbK), path[_0x56bd(0x900, '@HDB')](_0x53bae9, _0x56bd(0x37e, 'DbBq')), path.join(_0x526dcd, _0x56e2a7[_0x56bd(0x5c0, 'Ka)i')]), path[_0x56bd(0x1f9, '8@jo')](_0x526dcd, _0x56e2a7[_0x56bd(0x3e6, 'nj1b')])];
          for (const _0x5e748e of _0x7ed789) {
            if (_0x56e2a7[_0x56bd(0x801, 'KW&U')](_0x56bd(0x9c4, 'EJjX'), _0x56e2a7[_0x56bd(0x1a1, 'H9os')])) {
              _0x4e428d.error(_0x56e2a7[_0x56bd(0x634, 'KTbh')], _0x4ee69e);
              return [];
            } else {
              if (_0x5e748e && fs[_0x56bd(0x722, 'Aig!')](_0x5e748e)) {
                _0x36d8e8 = _0x5e748e;
                break;
              }
            }
          }
        }
      } else {
        if (_0x51335c === _0x56e2a7[_0x56bd(0x940, '8@jo')]) {
          if (_0x56e2a7[_0x56bd(0x19b, '63N&')](_0x56e2a7.HILVh, _0x56bd(0x274, 'k$(5'))) {
            try {
              if (_0x56bd(0x345, '*&r5') === _0x56e2a7[_0x56bd(0x3f1, 'n8BU')]) {
                _0x3f27c6.error(_0x56e2a7[_0x56bd(0x7fd, 'T$OD')], _0x16e0a9);
                if (_0x56e2a7[_0x56bd(0x80e, 'akm5')](_0x3fa137[_0x56bd(0x173, 'LC6r')], _0x56e2a7[_0x56bd(0x351, '8@jo')]) || _0x56e2a7[_0x56bd(0x5f5, '@HDB')](_0x50c56a[_0x56bd(0x590, 'ck7z')], _0x56e2a7[_0x56bd(0x57d, 'EJjX')]) || _0x2fdaaf.code === _0x56e2a7.MQZgl) {
                  const _0x2f5e07 = _0xf7d812[_0x56bd(0x258, 'fu8^')];
                  let _0xee0d40 = _0x56bd(0x35d, '6eWF');
                  if (_0x56e2a7[_0x56bd(0x3c1, 'X4(r')](_0x2f5e07, 'darwin')) {
                    _0xee0d40 = _0x56e2a7[_0x56bd(0x153, 'DbBq')];
                  } else if (_0x2f5e07 === _0x56bd(0x1b8, 'bZsS')) {
                    _0xee0d40 = _0x56bd(0x36b, 'nY*(');
                  }
                  this[_0x56bd(0x933, 'KTbh')]({
                    'type': _0x56e2a7[_0x56bd(0x48d, 'K%5^')],
                    'success': false,
                    'error': _0xee0d40,
                    'needAdmin': true,
                    'path': _0x4f0e82
                  });
                  return;
                }
                throw _0x47d908;
              } else {
                const {
                  stdout: _0x369a56
                } = await _0x56e2a7[_0x56bd(0x406, 'k$(5')](execAsync, "lsof -c Cursor 2>/dev/null | grep \"txt\" | grep -i \"Cursor.app\" | head -1 | awk '{print $9}'");
                if (_0x369a56 && _0x369a56.trim()) {
                  if (_0x56e2a7.SZhcT !== _0x56e2a7[_0x56bd(0x18e, '4)@$')]) {
                    this[_0x56bd(0x507, 'hSE]')]({
                      'type': _0x56bd(0x39e, 'yoC7'),
                      'success': true,
                      'needConfirm': false
                    });
                  } else {
                    const _0x257e0d = _0x369a56.trim()[_0x56bd(0x1e3, '^sHL')](/(.+\.app)/);
                    if (_0x257e0d) {
                      if (_0x56e2a7[_0x56bd(0x80e, 'akm5')](_0x56e2a7.NkvWo, 'hsffN')) {
                        this[_0x56bd(0x269, '0xfR')]({
                          'type': _0x56e2a7[_0x56bd(0x321, 'yoC7')],
                          'success': true,
                          'needConfirm': false
                        });
                        return;
                      } else {
                        _0x36d8e8 = _0x257e0d[0x1];
                      }
                    }
                  }
                }
              }
            } catch (_0x1b82a1) {}
            if (!_0x36d8e8) {
              try {
                if (_0x56e2a7[_0x56bd(0x4eb, 'ck7z')](_0x56e2a7.AEQys, _0x56e2a7[_0x56bd(0x54c, 'de]G')])) {
                  const _0x3b6ec9 = _0x4396d5.data[_0x56bd(0x853, 'ck7z')] || {};
                  const _0x318ca7 = _0x56e2a7[_0x56bd(0x476, 'EJjX')](_0x5a3f82, _0x3b6ec9[_0x56bd(0x700, 'H9os')] || 0x0);
                  if (_0x56e2a7[_0x56bd(0x37d, 's66k')](_0x318ca7, 0xa)) {
                    this[_0x56bd(0x7e2, '8@jo')]({
                      'type': _0x56e2a7.iIXMD,
                      'success': true,
                      'needConfirm': true,
                      'costUSD': _0x318ca7.toFixed(0x2),
                      'email': _0x430d08
                    });
                  } else {
                    this[_0x56bd(0x820, 'bZsS')]({
                      'type': _0x56e2a7[_0x56bd(0x5a5, '$SfD')],
                      'success': true,
                      'needConfirm': false
                    });
                  }
                } else {
                  const {
                    stdout: _0x58b89f
                  } = await execAsync(_0x56e2a7[_0x56bd(0x2e7, '^sHL')]);
                  if (_0x58b89f && _0x58b89f.trim()) {
                    const _0x488389 = _0x58b89f[_0x56bd(0x537, 'yoC7')](/(\/.+\.app)/);
                    if (_0x488389) {
                      _0x36d8e8 = _0x488389[0x1];
                    }
                  }
                }
              } catch (_0x58c36b) {
                console.warn(_0x56e2a7[_0x56bd(0x416, 'DQte')], _0x58c36b);
              }
            }
            if (!_0x36d8e8) {
              if (_0x56e2a7[_0x56bd(0x313, 'DbBq')](_0x56bd(0x46f, 'f)Dq'), _0x56e2a7[_0x56bd(0x478, 'k$(5')])) {
                _0x178033.error(_0x56bd(0x981, 'KTbh'), _0x1a091f);
                return false;
              } else {
                try {
                  const {
                    stdout: _0x45fa41
                  } = await execAsync(_0x56e2a7[_0x56bd(0x708, 'hSE]')]);
                  if (_0x45fa41 && _0x45fa41.trim() && fs.existsSync(_0x45fa41[_0x56bd(0x40b, 'B)Tn')]())) {
                    _0x36d8e8 = _0x45fa41.trim();
                  }
                } catch (_0x141dcf) {}
              }
            }
            if (!_0x36d8e8 && fs[_0x56bd(0x594, 'yoC7')]('/Applications/Cursor.app')) {
              _0x36d8e8 = _0x56e2a7[_0x56bd(0x246, '63N&')];
            }
          } else {
            _0x221adf[_0x56bd(0x7f8, '63N&')](_0x56e2a7[_0x56bd(0x52f, 'f)Dq')], _0x45ce1f.message);
            _0x2ae3cb[_0x56bd(0x8d2, 'XKo0')](_0x56e2a7[_0x56bd(0x17d, ']I&e')]);
          }
        } else {
          try {
            const {
              stdout: _0x11564d
            } = await execAsync(_0x56bd(0x62f, 'T$OD'));
            const _0x5dd0f3 = _0x11564d && _0x11564d.trim();
            if (_0x5dd0f3) {
              const {
                stdout: _0x447245
              } = await _0x56e2a7[_0x56bd(0x892, 'fu8^')](execAsync, _0x56bd(0x3ec, 'H9os') + _0x5dd0f3 + _0x56bd(0x129, '7%8^'));
              if (_0x447245 && _0x447245[_0x56bd(0x792, 'nj1b')]()) {
                const _0x11b963 = _0x447245[_0x56bd(0x6c6, 'gvo7')]();
                _0x36d8e8 = path.dirname(_0x11b963);
                if (_0x36d8e8[_0x56bd(0x504, 'de]G')](_0x56e2a7[_0x56bd(0x379, 'B)Tn')])) {
                  _0x36d8e8 = path[_0x56bd(0x199, 'hSE]')](_0x36d8e8);
                }
              }
            }
          } catch (_0x27a28d) {}
          if (!_0x36d8e8) {
            if (_0x56bd(0x440, 'KW&U') !== _0x56e2a7[_0x56bd(0x1ba, 'DQte')]) {
              let _0x34acf5 = '';
              const _0x3634b6 = _0x56bd(0x2a6, 'LC6r');
              for (let _0x1963ff = 0x0; _0x1963ff < 0x20; _0x1963ff++) {
                _0x34acf5 += _0x3634b6.charAt(_0x5a7f9b[_0x56bd(0x189, '4)@$')](_0x142a7a[_0x56bd(0x7e5, '7%WS')]() * _0x3634b6[_0x56bd(0x725, '^sHL')]));
              }
              return _0x34acf5;
            } else {
              try {
                const {
                  stdout: _0x400a70
                } = await _0x56e2a7[_0x56bd(0x99b, 'hSE]')](execAsync, _0x56e2a7[_0x56bd(0x689, 'XKo0')]);
                if (_0x400a70 && _0x400a70.trim()) {
                  const _0x44bb60 = await execAsync(_0x56bd(0x8d1, 'qOgW') + _0x400a70.trim() + _0x56bd(0x75a, 'ck7z'));
                  if (_0x44bb60.stdout && _0x44bb60[_0x56bd(0x32f, '^sHL')].trim()) {
                    _0x36d8e8 = path[_0x56bd(0x5a0, 'fu8^')](_0x44bb60[_0x56bd(0x262, '*&r5')].trim());
                    if (_0x36d8e8[_0x56bd(0x807, 'gvo7')]('/bin')) {
                      if (_0x56e2a7[_0x56bd(0x4f6, '8Ee3')](_0x56e2a7.IGQIN, _0x56bd(0x844, 'K%5^'))) {
                        this[_0x56bd(0x2fb, 'nY*(')]({
                          'type': 'userSwitchStatus',
                          'valid': false,
                          'switchRemaining': 0x0,
                          'canSwitch': false,
                          'error': _0x56e2a7[_0x56bd(0x9e8, '^S!O')]
                        });
                        return;
                      } else {
                        _0x36d8e8 = path[_0x56bd(0x8ad, 'ACPk')](_0x36d8e8);
                      }
                    }
                  }
                }
              } catch (_0x1d7835) {
                console[_0x56bd(0x649, 'H9os')](_0x56e2a7[_0x56bd(0x84d, '0xfR')], _0x1d7835);
              }
            }
          }
          if (!_0x36d8e8) {
            const _0x38357a = [_0x56e2a7[_0x56bd(0x3a7, 'nY*(')], _0x56e2a7[_0x56bd(0x865, '7%8^')], _0x56e2a7[_0x56bd(0x9f1, 'm#S*')], _0x56e2a7[_0x56bd(0x493, '^S!O')], path[_0x56bd(0x900, '@HDB')](process[_0x56bd(0x774, '7%8^')][_0x56bd(0x8e9, 'bZsS')] || '', _0x56bd(0x167, 'k$(5')), path.join(process[_0x56bd(0x8f4, 'n8BU')][_0x56bd(0x520, '7%8^')] || '', _0x56e2a7[_0x56bd(0x8a0, '0xfR')])];
            for (const _0x3a8856 of _0x38357a) {
              if (fs.existsSync(_0x3a8856)) {
                _0x36d8e8 = _0x3a8856;
                break;
              }
            }
          }
        }
      }
    } catch (_0x2440bb) {
      console[_0x56bd(0x467, 'DQte')](_0x56e2a7[_0x56bd(0x94d, '6eWF')], _0x2440bb);
    }
    if (_0x36d8e8) {
      this._cachedCursorPath = _0x36d8e8;
    }
    return _0x36d8e8;
  }
  ['_getWorkbenchPath']() {
    return this[_0x56bd(0x60c, '8Ee3')]();
  }
  ['_getWorkbenchPathSync']() {
    const _0x45dfd9 = {
      'UfpAf': _0x56bd(0x175, 'qOgW'),
      'Anviz': "[CursorPro] machineid 更新失败:",
      'VVCFs': _0x56bd(0x215, 'bZsS'),
      'JyreV': function (_0x2669b9, _0x3af5b1) {
        return _0x2669b9(_0x3af5b1);
      },
      'LuKVI': 'crypto',
      'SWJRm': function (_0xc6cc6a, _0x1e79ba) {
        return _0xc6cc6a & _0x1e79ba;
      },
      'FQssd': function (_0x36d4a3, _0x3f9411) {
        return _0x36d4a3 !== _0x3f9411;
      },
      'eUATr': function (_0x5176f0, _0x2f72df) {
        return _0x5176f0 === _0x2f72df;
      },
      'jTUqv': _0x56bd(0x4ac, '$SfD'),
      'VLslV': 'xuLZV',
      'UWqNM': _0x56bd(0x8d0, ']I&e'),
      'sQFsh': _0x56bd(0x4d7, 'Ka)i'),
      'eRJjA': _0x56bd(0x1cf, '@HDB'),
      'gkqWe': _0x56bd(0x1a2, 'K%5^'),
      'ZSOkm': function (_0x45c79f, _0x381d17) {
        return _0x45c79f !== _0x381d17;
      },
      'SccyE': _0x56bd(0x18c, 'Ka)i'),
      'dVhNW': _0x56bd(0x118, 'akm5'),
      'VfwmP': function (_0x239346, _0xe3f08f) {
        return _0x239346 === _0xe3f08f;
      },
      'NyLwi': _0x56bd(0x31c, '6eWF'),
      'aJjyB': 'qRWfN',
      'bWpPz': _0x56bd(0x366, 'qOgW')
    };
    const _0x476275 = process[_0x56bd(0x170, 'KW&U')];
    if (this._cachedCursorPath) {
      if (_0x45dfd9[_0x56bd(0x985, 'KTbh')]('zZyLK', _0x56bd(0x25e, 'iDwM'))) {
        let _0x3205e4;
        if (_0x45dfd9[_0x56bd(0x528, '63N&')](_0x476275, _0x45dfd9[_0x56bd(0x6d4, ']I&e')])) {
          if (_0x45dfd9[_0x56bd(0x1db, 'qOgW')](_0x56bd(0x293, 'Aig!'), 'xuLZV')) {
            _0x3205e4 = path.join(this[_0x56bd(0x719, 'nY*(')], 'Contents', _0x56bd(0x7fa, 'bjRi'), _0x45dfd9[_0x56bd(0x3ac, '7%WS')], _0x45dfd9[_0x56bd(0x9c3, 'm#S*')], 'vs', _0x45dfd9.eRJjA, _0x45dfd9[_0x56bd(0x87c, '8Ee3')]);
          } else {
            _0x3e2976[_0x56bd(0x8d2, 'XKo0')]([_0x45dfd9[_0x56bd(0x2f9, '4)@$')], _0x4568af[_0x56bd(0x5b3, '6hxd')]]);
          }
        } else if (_0x45dfd9[_0x56bd(0x583, '7%WS')](_0x56bd(0x600, '63N&'), _0x45dfd9[_0x56bd(0x6c2, 'gvo7')])) {
          _0x3205e4 = path[_0x56bd(0x93c, 'akm5')](this[_0x56bd(0x3bc, 'POq&')], _0x45dfd9.dVhNW, _0x56bd(0x449, 's66k'), _0x45dfd9[_0x56bd(0x5c5, 'akm5')], 'vs', _0x45dfd9[_0x56bd(0x659, ']I&e')], _0x56bd(0x5d1, 'akm5'));
        } else {
          _0x575999[_0x56bd(0x2cf, 'f)Dq')](_0x45dfd9[_0x56bd(0x827, 'f)Dq')], _0x58392c.message);
          _0x8af8ae[_0x56bd(0x71a, 'EJjX')](_0x45dfd9[_0x56bd(0x637, 'DQte')]);
        }
        if (fs.existsSync(_0x3205e4)) {
          return _0x3205e4;
        }
      } else {
        return [];
      }
    }
    if (_0x45dfd9[_0x56bd(0x43f, '^sHL')](_0x476275, 'win32')) {
      return null;
    }
    let _0x5a8c19 = [];
    if (_0x45dfd9[_0x56bd(0x132, 'm#S*')](_0x476275, _0x45dfd9.jTUqv)) {
      _0x5a8c19 = [_0x45dfd9[_0x56bd(0x5f1, 'X4(r')]];
    } else {
      if ('DESET' !== _0x45dfd9[_0x56bd(0x3da, '7%WS')]) {
        _0x5a8c19 = [_0x45dfd9[_0x56bd(0x8ac, 'n8BU')], '/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js'];
      } else {
        const _0x495a3b = _0x45dfd9[_0x56bd(0x576, 'K%5^')](_0x32b48c, 'crypto');
        const _0xfc487e = _0x495a3b[_0x56bd(0x1e9, '6hxd')](0x6);
        _0xfc487e[0x0] = _0x45dfd9[_0x56bd(0x629, 'de]G')](_0xfc487e[0x0] | 0x2, 0xfe);
        return _0x55363f[_0x56bd(0x436, 'DbBq')](_0xfc487e)[_0x56bd(0x816, 'nY*(')](_0x210fd8 => _0x210fd8.toString(0x10)[_0x56bd(0x186, 'qOgW')](0x2, '0'))[_0x56bd(0x906, 'Aig!')](':');
      }
    }
    for (const _0x3c46cb of _0x5a8c19) {
      if (fs[_0x56bd(0x9cd, '6eWF')](_0x3c46cb)) {
        return _0x3c46cb;
      }
    }
    return null;
  }
  async [_0x56bd(0x1fc, 'nY*(')]() {
    const _0x333f76 = {
      'diJhY': "C:\\Program Files",
      'BHmwx': _0x56bd(0x454, 'B)Tn'),
      'xDKiN': _0x56bd(0x35f, 'de]G'),
      'aIUry': _0x56bd(0x2ff, 'iDwM'),
      'oemiO': _0x56bd(0x96a, 'Ka)i'),
      'wNjLv': _0x56bd(0x9e1, 'ck7z'),
      'BzPhh': _0x56bd(0x1b0, 'qOgW'),
      'dNHJx': _0x56bd(0x660, '6eWF'),
      'JBwsK': _0x56bd(0x833, 'XKo0'),
      'NoEGQ': _0x56bd(0x9d1, 'qOgW'),
      'GOKzJ': _0x56bd(0x5fc, 'nY*('),
      'okosv': 'versionCheck',
      'ktVBs': function (_0x175f78, _0x5a924f) {
        return _0x175f78 === _0x5a924f;
      },
      'fYTsi': _0x56bd(0x3f3, 'POq&'),
      'idevD': _0x56bd(0x4ee, '8Ee3'),
      'SJHtk': function (_0x48c702, _0x410996) {
        return _0x48c702 === _0x410996;
      },
      'AJPrD': _0x56bd(0x64f, 'B)Tn'),
      'qcilt': function (_0x48c64d, _0x367af2) {
        return _0x48c64d === _0x367af2;
      },
      'yQEWX': _0x56bd(0x79a, '@HDB'),
      'Knhyl': _0x56bd(0x73c, 'gvo7'),
      'NPYXr': _0x56bd(0x5ee, 'B)Tn'),
      'xDNVo': _0x56bd(0x978, '4)@$'),
      'Lnhsa': _0x56bd(0x31b, 'nj1b'),
      'ejmIv': _0x56bd(0x806, 'KTbh'),
      'yfprZ': _0x56bd(0x65d, '*&r5')
    };
    const _0x4a5df6 = process.platform;
    const _0x1a6628 = await this[_0x56bd(0x4a5, 'ACPk')]();
    if (_0x1a6628) {
      if (_0x333f76[_0x56bd(0x84c, '4)@$')](_0x333f76[_0x56bd(0x112, 'bZsS')], _0x333f76[_0x56bd(0x36f, 'de]G')])) {
        const _0x56cab4 = _0x12c65b[0x1][_0x56bd(0x239, 'de]G')]();
        _0x13e8cf = _0x13c1c8[_0x56bd(0x36c, 'yoC7')](_0x56cab4);
      } else {
        let _0x469a72;
        if (_0x4a5df6 === _0x333f76[_0x56bd(0x5af, 'T$OD')]) {
          if (_0x333f76[_0x56bd(0x8c5, '6hxd')](_0x333f76[_0x56bd(0x5c4, 'DbBq')], _0x333f76.yQEWX)) {
            _0x469a72 = path[_0x56bd(0x387, 'DQte')](_0x1a6628, _0x333f76[_0x56bd(0x82c, 's66k')], _0x333f76.NPYXr, _0x333f76[_0x56bd(0x641, '63N&')], _0x333f76[_0x56bd(0x13b, 'B)Tn')], 'vs', _0x333f76.Lnhsa, _0x333f76[_0x56bd(0x7a1, 'KTbh')]);
          } else {
            const _0x2ee571 = _0x2f3785[_0x56bd(0x7dd, '^sHL')].LOCALAPPDATA || '';
            const _0x5b8a61 = _0x36b6d4[_0x56bd(0x4bc, 's66k')][_0x56bd(0x2bd, '6hxd')] || '';
            const _0x534e4d = _0x38e95c.env[_0x56bd(0x448, 'Aig!')] || _0x333f76[_0x56bd(0x84f, 'B)Tn')];
            const _0x5281b8 = _0x2279f9[_0x56bd(0x4e8, 'KTbh')][_0x333f76[_0x56bd(0x893, 'DbBq')]] || _0x333f76[_0x56bd(0x3b1, 'DbBq')];
            _0x344063[_0x56bd(0x7c7, 'X4(r')](_0x3b35ac[_0x56bd(0x8f5, 'POq&')](_0x2ee571, _0x333f76[_0x56bd(0x162, 'DQte')], _0x333f76.oemiO, _0x333f76.wNjLv, _0x56bd(0x2c1, 'de]G'), _0x333f76[_0x56bd(0x559, '^S!O')]), _0x1d0746[_0x56bd(0x5ef, 'bjRi')](_0x2ee571, _0x333f76[_0x56bd(0x847, 'KTbh')], _0x333f76[_0x56bd(0x453, 'X4(r')], _0x333f76[_0x56bd(0x9dd, '7%WS')], _0x333f76[_0x56bd(0x226, 'fu8^')], _0x333f76[_0x56bd(0x4ae, 'K%5^')]), _0x3cb2bc[_0x56bd(0x46d, 'gvo7')](_0x5b8a61, _0x333f76[_0x56bd(0x77e, 'fu8^')], _0x333f76[_0x56bd(0x7c1, 'EJjX')], _0x333f76[_0x56bd(0x166, '8@jo')], _0x333f76[_0x56bd(0x109, '8Ee3')], _0x56bd(0x772, '@HDB'), _0x333f76.JBwsK, _0x56bd(0x81e, 'f)Dq')), _0x2db72[_0x56bd(0x134, 'xK)8')](_0x534e4d, _0x56bd(0x13e, 'f)Dq'), _0x56bd(0x565, 'f)Dq'), _0x56bd(0x191, 'KW&U'), _0x333f76.BzPhh), _0x118213[_0x56bd(0x6c8, '7%8^')](_0x534e4d, _0x333f76.dNHJx, _0x333f76[_0x56bd(0x82b, '8@jo')], _0x333f76[_0x56bd(0x9be, '4)@$')], _0x333f76[_0x56bd(0x866, 'nj1b')]), _0x56d86f[_0x56bd(0x303, 'DbBq')](_0x5281b8, _0x333f76.oemiO, _0x56bd(0x2dc, 'KW&U'), _0x333f76[_0x56bd(0x27c, 'DQte')], _0x56bd(0x3a3, 'gvo7')));
          }
        } else {
          _0x469a72 = path[_0x56bd(0x89a, 'n8BU')](_0x1a6628, _0x333f76.wNjLv, _0x333f76.JBwsK, _0x333f76[_0x56bd(0x20d, 'DbBq')], 'vs', _0x333f76[_0x56bd(0x656, 'bjRi')], _0x56bd(0x2d9, 'POq&'));
        }
        if (fs[_0x56bd(0x388, '@HDB')](_0x469a72)) {
          if (_0x333f76.yfprZ === _0x333f76[_0x56bd(0x932, 'Ka)i')]) {
            return _0x469a72;
          } else {
            this._postMessage({
              'type': _0x333f76[_0x56bd(0x479, 'fu8^')],
              'success': false,
              'currentVersion': _0x13b64d.CURRENT_VERSION,
              'error': _0x1da786[_0x56bd(0x193, 'bjRi')] || _0x56bd(0x409, 'DQte')
            });
          }
        }
      }
    }
    return this._getWorkbenchPathSync();
  }
  [_0x56bd(0x23f, ']I&e')](_0x7082c6) {
    const _0x5ec24a = {
      'WkvEt': _0x56bd(0x8d4, 'n8BU')
    };
    return _0x7082c6[_0x56bd(0x804, '8Ee3')](_0x5ec24a.WkvEt) || _0x7082c6.includes('/*i1s*/');
  }
  async [_0x56bd(0x270, 'Ka)i')]() {
    const _0x29b677 = {
      'gPIxP': _0x56bd(0x992, 'KW&U'),
      'ntlpp': _0x56bd(0x579, 'XKo0')
    };
    try {
      const _0x1a2041 = await this._getWorkbenchPathAsync();
      if (_0x1a2041 && fs[_0x56bd(0x97d, 'T$OD')](_0x1a2041)) {
        const _0x432d66 = fs[_0x56bd(0x39f, '7%8^')](_0x1a2041, _0x29b677[_0x56bd(0x328, 'm#S*')]);
        return this[_0x56bd(0x21c, 'ACPk')](_0x432d66);
      }
      return false;
    } catch (_0x337782) {
      console.error(_0x29b677[_0x56bd(0x2c6, 'n8BU')], _0x337782);
      return false;
    }
  }
  ['_getInjectionConfig'](_0x1083ec, _0x19a8d2) {
    const _0x1829e6 = {
      'FgaCg': '_showNotification(){',
      'OHrmM': _0x56bd(0x7b6, 'hSE]'),
      'CRApk': "注入点1: 核心模块初始化",
      'YatzY': _0x56bd(0x1fe, 'f)Dq'),
      'MqHGw': _0x56bd(0x549, 'k$(5'),
      'OSWSK': _0x56bd(0x5b5, 'H9os'),
      'QXMFr': _0x56bd(0x305, 'B)Tn'),
      'hxXLs': _0x56bd(0x66a, '7%8^')
    };
    return [{
      'name': _0x56bd(0x894, 'POq&'),
      'scode': _0x1829e6[_0x56bd(0x66b, '6eWF')],
      'replacement': _0x56bd(0x232, '8@jo'),
      'restore': {
        'find': _0x1829e6[_0x56bd(0x72e, 's66k')],
        'replace_with': _0x1829e6[_0x56bd(0x4d1, '63N&')]
      }
    }, {
      'name': "注入点1: 核心模块初始化",
      'scode': _0x1829e6[_0x56bd(0x33b, 'ACPk')],
      'replacement': _0x56bd(0x69f, '7%8^') + _0x1083ec + "';window.__cpUserKey='" + _0x19a8d2 + _0x56bd(0x563, 'DbBq') + _0x19a8d2 + _0x56bd(0x325, '4)@$'),
      'restore': {
        'find_start': _0x1829e6[_0x56bd(0x86d, 'T$OD')],
        'find_end': _0x1829e6[_0x56bd(0x1c3, 'akm5')]
      }
    }, {
      'name': _0x1829e6[_0x56bd(0x46c, 'KW&U')],
      'scode': _0x1829e6[_0x56bd(0x888, 'Ka)i')],
      'replacement': _0x56bd(0x735, '0xfR'),
      'restore': {
        'find_start': _0x56bd(0x8ef, 'qOgW'),
        'find_end': _0x1829e6[_0x56bd(0x953, '7%WS')]
      }
    }];
  }
  async [_0x56bd(0x5ba, 'DQte')]() {
    const _0x4fdfb6 = {
      'eAudc': 'resources',
      'ZnFEJ': 'app',
      'QGTLQ': 'package.json',
      'yDFID': _0x56bd(0x535, '^sHL'),
      'XoRrm': _0x56bd(0x969, 'X4(r'),
      'zcMpa': _0x56bd(0x5f8, '6hxd'),
      'cTyAN': _0x56bd(0x4ad, 'K%5^'),
      'UNUES': _0x56bd(0x522, '6eWF'),
      'IJzdz': _0x56bd(0x7e6, 'de]G'),
      'VGOST': _0x56bd(0x3c4, 'f)Dq'),
      'vySBX': _0x56bd(0x989, 'f)Dq'),
      'OUNoh': _0x56bd(0x742, '8@jo'),
      'gzoYo': _0x56bd(0x7eb, 'm#S*'),
      'nmpHW': function (_0x5dd144, _0x2310ea) {
        return _0x5dd144 !== _0x2310ea;
      },
      'mZDVz': 'reoBh',
      'XlzQa': _0x56bd(0x9e0, 'xK)8'),
      'RKaZM': _0x56bd(0x885, 'H9os'),
      'wFOsZ': function (_0x6d21a5, _0x3149e3) {
        return _0x6d21a5 === _0x3149e3;
      },
      'uTxRa': _0x56bd(0x11a, 'T$OD'),
      'NQBnu': _0x56bd(0x5a1, 'gvo7'),
      'QwROM': function (_0x43ac94, _0xa61565) {
        return _0x43ac94 + _0xa61565;
      },
      'KPHtC': _0x56bd(0x202, 'B)Tn'),
      'BJIgK': _0x56bd(0x7ee, 'KTbh'),
      'asGDz': function (_0x58de12, _0x3456ca) {
        return _0x58de12 === _0x3456ca;
      },
      'AvMcE': _0x56bd(0x2fd, '^sHL'),
      'NFNQK': _0x56bd(0x8cb, 'gvo7'),
      'ApEZm': "[CursorPro] 备份恢复成功",
      'WEdcP': function (_0x1e1572, _0x389e03) {
        return _0x1e1572 === _0x389e03;
      },
      'NwiBk': _0x56bd(0x694, '6hxd'),
      'fWqWm': _0x56bd(0x1c5, '*&r5'),
      'PuBtb': function (_0x29c277, _0x1a6e1f) {
        return _0x29c277 === _0x1a6e1f;
      },
      'QPTVv': "[CursorPro] 注入失败，未找到任何注入点",
      'bwZyq': _0x56bd(0x399, 'akm5'),
      'isjyP': "[CursorPro] 文件大小:",
      'nGlvY': _0x56bd(0x8c4, 'H9os'),
      'eLVeH': _0x56bd(0x71c, 'DQte'),
      'JDsIJ': "[CursorPro] 包含 _showNotification:",
      'Spptx': _0x56bd(0x9b4, ']I&e'),
      'OaqMs': "Cursor 版本不兼容，注入点未找到",
      'CqvrX': function (_0x5599e0, _0x5736b6) {
        return _0x5599e0 > _0x5736b6;
      },
      'tdJex': _0x56bd(0x6dd, 'bZsS'),
      'IsXFU': function (_0x32bf90, _0x554c91) {
        return _0x32bf90 === _0x554c91;
      },
      'NpueJ': _0x56bd(0x67a, 'LC6r'),
      'chYLS': "[CursorPro] 写入文件失败:",
      'qFuwX': 'EACCES',
      'jWyZD': _0x56bd(0x58a, 'k$(5'),
      'nsFtB': function (_0x385d3c, _0x38d8b9) {
        return _0x385d3c === _0x38d8b9;
      },
      'vryqQ': _0x56bd(0x562, '8Ee3'),
      'FiwIr': _0x56bd(0x949, 'T$OD'),
      'NnBbT': _0x56bd(0x743, 'XKo0'),
      'kofbg': _0x56bd(0x450, 'Ka)i'),
      'WedEJ': _0x56bd(0x67e, 'akm5'),
      'jiObk': _0x56bd(0x45a, 'fu8^'),
      'chXsS': _0x56bd(0x2cc, '*&r5'),
      'PfOPU': _0x56bd(0x6e2, 'K%5^'),
      'GZrDV': function (_0x122af4, _0x148522) {
        return _0x122af4 === _0x148522;
      },
      'SUpCK': 'TKgrk',
      'JOonS': _0x56bd(0x315, 'n8BU'),
      'uvZZD': _0x56bd(0x319, '8@jo')
    };
    try {
      const _0x4a9f7b = this._context[_0x56bd(0x9ed, '*&r5')].get(_0x56bd(0x8f1, 'qOgW'));
      if (!_0x4a9f7b) {
        if (_0x4fdfb6[_0x56bd(0x136, ']I&e')](_0x56bd(0x27f, 'POq&'), 'reoBh')) {
          this[_0x56bd(0x4ba, 'ck7z')]({
            'type': _0x4fdfb6[_0x56bd(0x767, '7%WS')],
            'success': false,
            'error': _0x56bd(0x6db, 'fu8^')
          });
          return;
        } else {
          _0x548dfc.push(_0x3afbb1[_0x56bd(0x21b, 'yoC7')](_0x180fb4, _0x4fdfb6[_0x56bd(0x41b, 'nj1b')], _0x4fdfb6[_0x56bd(0x4d0, '@HDB')], _0x4fdfb6[_0x56bd(0x97f, 'H9os')]));
        }
      }
      0x0;
      const _0x358ad2 = await client_1[_0x56bd(0x2fe, '@HDB')](_0x4a9f7b);
      if (!_0x358ad2.valid) {
        this[_0x56bd(0x31a, '8Ee3')]({
          'type': _0x4fdfb6[_0x56bd(0x12a, 'fu8^')],
          'success': false,
          'error': _0x358ad2[_0x56bd(0x75f, 'ACPk')] || _0x4fdfb6[_0x56bd(0x19d, '8Ee3')]
        });
        return;
      }
      const _0x1f82b7 = await this[_0x56bd(0x697, 'bjRi')]();
      if (!_0x1f82b7) {
        if (_0x4fdfb6[_0x56bd(0x55a, 'bjRi')](_0x4fdfb6[_0x56bd(0x7cb, 'gvo7')], _0x4fdfb6[_0x56bd(0x784, '4)@$')])) {
          this[_0x56bd(0x6bb, '^sHL')]({
            'type': _0x4fdfb6[_0x56bd(0x8d8, '0xfR')],
            'success': false,
            'error': _0x4fdfb6[_0x56bd(0x939, '63N&')]
          });
          return;
        } else {
          this[_0x56bd(0x75c, '63N&')]({
            'type': 'keyStatusChecked',
            'valid': false,
            'expired': true,
            'error': _0x2b03db[_0x56bd(0x439, ']I&e')] || _0x4fdfb6[_0x56bd(0x756, 'Ka)i')]
          });
        }
      }
      const _0xcc733a = _0x4fdfb6[_0x56bd(0x38b, '8Ee3')](_0x1f82b7, _0x4fdfb6[_0x56bd(0x2e5, 'DbBq')]);
      const _0x3dee3a = !this._context.globalState[_0x56bd(0x653, 's66k')](_0x4fdfb6[_0x56bd(0x12f, 'XKo0')]);
      if (_0x3dee3a && fs[_0x56bd(0x9b0, '*&r5')](_0xcc733a)) {
        if (_0x4fdfb6[_0x56bd(0x935, '8Ee3')](_0x56bd(0x354, 'K%5^'), _0x4fdfb6[_0x56bd(0x114, 'bjRi')])) {
          _0x41a723 = _0x4ad1c8;
          if (_0x53f68b === _0x4fdfb6[_0x56bd(0x578, 'nj1b')]) {
            _0x4d9364 = _0x1d4e3d[_0x56bd(0x6ba, '4)@$')](_0xea2f6b, _0x4fdfb6.zcMpa, _0x4fdfb6[_0x56bd(0x76a, 'B)Tn')], _0x4fdfb6[_0x56bd(0x6e4, 'KW&U')], 'package.json');
          } else {
            _0x4ea91b = _0x247fd6.join(_0x348c77, _0x4fdfb6[_0x56bd(0x4a8, 'xK)8')], _0x4fdfb6[_0x56bd(0x544, '7%8^')], 'package.json');
          }
          _0x43e5e3.log(_0x4fdfb6.UNUES, _0x5e9043);
        } else {
          console.log(_0x4fdfb6[_0x56bd(0x8aa, 'gvo7')]);
          try {
            fs[_0x56bd(0x96f, 'X4(r')](_0xcc733a, _0x1f82b7);
            console.log(_0x4fdfb6[_0x56bd(0x76e, 'DQte')]);
          } catch (_0x35600a) {
            console.error(_0x4fdfb6[_0x56bd(0x5b9, 'nj1b')], _0x35600a);
          }
        }
      }
      let _0x293b2f = fs[_0x56bd(0x39f, '7%8^')](_0x1f82b7, 'utf-8');
      if (this._checkInjected(_0x293b2f)) {
        this[_0x56bd(0x628, '7%WS')]({
          'type': _0x56bd(0x788, 'fu8^'),
          'message': _0x56bd(0x905, 'bZsS'),
          'icon': '✅'
        });
        return;
      }
      if (!fs[_0x56bd(0x16c, 'B)Tn')](_0xcc733a)) {
        fs[_0x56bd(0x34f, 'f)Dq')](_0x1f82b7, _0xcc733a);
        console[_0x56bd(0x6e8, 'K%5^')]("[CursorPro] 创建备份文件");
      }
      0x0;
      const _0x4d5a34 = client_1.getApiUrl();
      const _0x4868b5 = this._getInjectionConfig(_0x4d5a34, _0x4a9f7b);
      const _0x576180 = [];
      const _0x51a1cd = [];
      for (const _0x334c21 of _0x4868b5) {
        if (_0x4fdfb6[_0x56bd(0x4ff, 'de]G')] === _0x4fdfb6[_0x56bd(0x48e, '*&r5')]) {
          _0xf54d53 = _0x4fdfb6[_0x56bd(0x82e, '*&r5')];
        } else if (_0x293b2f.includes(_0x334c21.scode)) {
          _0x293b2f = _0x293b2f[_0x56bd(0x117, 'fu8^')](_0x334c21[_0x56bd(0x16e, 'de]G')], _0x334c21[_0x56bd(0x3cc, 'Aig!')]);
          _0x576180.push(_0x334c21[_0x56bd(0x9a1, 'n8BU')]);
        } else {
          _0x51a1cd[_0x56bd(0x284, 'Ka)i')](_0x334c21[_0x56bd(0x45c, '@HDB')]);
        }
      }
      if (_0x4fdfb6[_0x56bd(0x9d3, '63N&')](_0x576180[_0x56bd(0x5d0, 'KW&U')], 0x0)) {
        console[_0x56bd(0x282, 'K%5^')](_0x4fdfb6[_0x56bd(0x2e6, 'iDwM')]);
        console.error(_0x4fdfb6[_0x56bd(0x1ab, 'qOgW')], _0x1f82b7);
        console[_0x56bd(0x919, 'DbBq')](_0x4fdfb6[_0x56bd(0x1f5, 'iDwM')], _0x293b2f[_0x56bd(0x57a, '6hxd')]);
        console[_0x56bd(0x18d, 'bZsS')]("[CursorPro] 未找到的注入点:", _0x51a1cd);
        const _0x163732 = _0x293b2f[_0x56bd(0x2bc, '8@jo')](_0x4fdfb6[_0x56bd(0x721, 'ACPk')]);
        const _0xaf63e8 = _0x293b2f[_0x56bd(0x5ab, '6eWF')](_0x4fdfb6[_0x56bd(0x2b7, ']I&e')]);
        console[_0x56bd(0x7bd, 's66k')](_0x4fdfb6[_0x56bd(0x7d5, '8Ee3')], _0x163732);
        console.error(_0x4fdfb6.Spptx, _0xaf63e8);
        this._postMessage({
          'type': _0x4fdfb6[_0x56bd(0x60d, 'de]G')],
          'success': false,
          'error': _0x4fdfb6[_0x56bd(0x655, 'iDwM')],
          'details': _0x56bd(0x709, 'n8BU') + _0x1f82b7
        });
        return;
      }
      console[_0x56bd(0x812, 'bZsS')]("[CursorPro] 注入成功，应用的注入点:", _0x576180);
      if (_0x4fdfb6[_0x56bd(0x44c, 'K%5^')](_0x51a1cd[_0x56bd(0x83f, 'hSE]')], 0x0)) {
        console[_0x56bd(0x627, '8@jo')](_0x4fdfb6[_0x56bd(0x50d, 'Aig!')], _0x51a1cd);
      }
      try {
        if (_0x4fdfb6[_0x56bd(0x882, 'XKo0')](_0x56bd(0x889, 'yoC7'), _0x56bd(0x130, 'DQte'))) {
          _0x5d5216[_0x56bd(0x686, 'Aig!')](_0x56bd(0x1cb, 'bZsS'), _0x5973ff);
        } else {
          fs[_0x56bd(0x233, '6eWF')](_0x1f82b7, _0x293b2f, _0x56bd(0x367, '^S!O'));
        }
      } catch (_0x3a91bb) {
        if (_0x4fdfb6[_0x56bd(0x39d, '*&r5')](_0x56bd(0x28f, ']I&e'), _0x4fdfb6[_0x56bd(0x2e9, '^S!O')])) {
          this[_0x56bd(0x2fb, 'nY*(')]({
            'type': _0x4fdfb6[_0x56bd(0x65a, 'K%5^')],
            'success': false,
            'error': _0x4fdfb6[_0x56bd(0x9bc, 'Aig!')]
          });
          return;
        } else {
          console[_0x56bd(0x5e0, 'ck7z')](_0x4fdfb6[_0x56bd(0x375, 'X4(r')], _0x3a91bb);
          if (_0x4fdfb6[_0x56bd(0x116, '6hxd')](_0x3a91bb.code, _0x56bd(0x4d5, 'gvo7')) || _0x4fdfb6[_0x56bd(0x201, 'LC6r')](_0x3a91bb[_0x56bd(0x14f, 'iDwM')], _0x4fdfb6[_0x56bd(0x63d, '8@jo')]) || _0x3a91bb[_0x56bd(0x72b, '7%WS')] === _0x56bd(0x716, 'bZsS')) {
            const _0x24004b = process[_0x56bd(0x81a, 'H9os')];
            let _0xccdd73 = _0x56bd(0x10e, 'yoC7');
            if (_0x4fdfb6[_0x56bd(0x9bb, 'B)Tn')](_0x24004b, _0x4fdfb6.XoRrm)) {
              _0xccdd73 = _0x4fdfb6[_0x56bd(0x65e, 'B)Tn')];
            } else if (_0x24004b === _0x4fdfb6[_0x56bd(0x617, '63N&')]) {
              if (_0x4fdfb6[_0x56bd(0x1c0, 'n8BU')] === _0x4fdfb6[_0x56bd(0x639, '@HDB')]) {
                _0x21b463.error(_0x4fdfb6[_0x56bd(0x944, 'H9os')], _0x3e51df);
              } else {
                _0xccdd73 = _0x4fdfb6[_0x56bd(0x473, '6hxd')];
              }
            }
            this[_0x56bd(0x60e, 'nj1b')]({
              'type': _0x4fdfb6[_0x56bd(0x12a, 'fu8^')],
              'success': false,
              'error': _0xccdd73,
              'needAdmin': true,
              'path': _0x1f82b7
            });
            return;
          }
          throw _0x3a91bb;
        }
      }
      await this._context[_0x56bd(0x746, 'KTbh')][_0x56bd(0x3fc, '7%WS')](_0x4fdfb6.BJIgK, true);
      this[_0x56bd(0x11c, 'Ka)i')]({
        'type': 'seamlessInjected',
        'success': true,
        'applied': _0x576180,
        'needRestart': true,
        'message': _0x4fdfb6[_0x56bd(0x41f, 'xK)8')]
      });
    } catch (_0xc2dc2b) {
      if (_0x4fdfb6[_0x56bd(0x3e3, '6hxd')] !== 'nUNdq') {
        const _0x4ee293 = this[_0x56bd(0x299, 'KTbh')]();
        return _0x4ee293[_0x56bd(0x912, 'nj1b')](this.HOSTS_MARKER_START);
      } else {
        console.error(_0x4fdfb6.chXsS, _0xc2dc2b);
        if (_0xc2dc2b[_0x56bd(0x3e5, 'POq&')] === _0x4fdfb6[_0x56bd(0x404, 'bjRi')] || _0xc2dc2b[_0x56bd(0x280, '8Ee3')] === _0x4fdfb6[_0x56bd(0x851, 'bjRi')]) {
          if (_0x4fdfb6[_0x56bd(0x2c3, ']I&e')] === _0x4fdfb6.JOonS) {
            _0x5ec281.error(_0x4fdfb6[_0x56bd(0x5ac, '63N&')], _0x36fa8d);
          } else {
            const _0x2429c3 = _0x4fdfb6[_0x56bd(0x5a8, 'n8BU')];
            this._postMessage({
              'type': _0x4fdfb6[_0x56bd(0x825, 'KTbh')],
              'success': false,
              'error': _0x2429c3,
              'needAdmin': true
            });
            return;
          }
        }
        this[_0x56bd(0x44b, 'K%5^')]({
          'type': _0x4fdfb6[_0x56bd(0x4df, 'm#S*')],
          'success': false,
          'error': _0xc2dc2b[_0x56bd(0x4d2, 'DbBq')] || '注入失败'
        });
      }
    }
  }
  async [_0x56bd(0x638, 'X4(r')]() {
    const _0x5d9144 = {
      'fNFwN': function (_0x4677dc, _0x3f836a) {
        return _0x4677dc === _0x3f836a;
      },
      'qzWvm': _0x56bd(0x778, '6eWF'),
      'iIeEk': _0x56bd(0x3e9, '6hxd'),
      'hXGdP': _0x56bd(0x238, '*&r5'),
      'TTVZf': _0x56bd(0x2ab, 'nY*('),
      'gtuTM': _0x56bd(0x751, 'hSE]'),
      'GRbOi': function (_0x496f84, _0x59be80) {
        return _0x496f84 !== _0x59be80;
      },
      'SIJlB': function (_0xa1dd05, _0x2b05d1) {
        return _0xa1dd05 + _0x2b05d1;
      },
      'lhoIl': '/*i2s*/',
      'rihJn': _0x56bd(0x55d, 'ACPk'),
      'UKjaP': function (_0x2caba4, _0x4c1323) {
        return _0x2caba4 !== _0x4c1323;
      },
      'gfXYq': _0x56bd(0x30d, '6eWF'),
      'oXUXx': function (_0x3c695c, _0x1ab82c) {
        return _0x3c695c + _0x1ab82c;
      },
      'hFPNQ': function (_0x55b01d, _0x32e339) {
        return _0x55b01d === _0x32e339;
      },
      'iKOOs': function (_0x2379b9, _0x2b53a3) {
        return _0x2379b9 === _0x2b53a3;
      },
      'yKkFV': _0x56bd(0x802, '6eWF'),
      'uxIzt': _0x56bd(0x6af, 'DbBq'),
      'PVsoN': _0x56bd(0x14c, 'de]G'),
      'dzulQ': _0x56bd(0x213, '7%WS'),
      'wYcDp': _0x56bd(0x513, 'gvo7'),
      'yoKCW': _0x56bd(0x20e, 'T$OD'),
      'dGgrN': function (_0x635b, _0x11e947) {
        return _0x635b === _0x11e947;
      },
      'ybPXs': _0x56bd(0x401, '^sHL')
    };
    try {
      const _0x52b18d = await this._getWorkbenchPathAsync();
      if (!_0x52b18d) {
        if (_0x56bd(0x69b, '^sHL') === _0x5d9144[_0x56bd(0x174, 'xK)8')]) {
          return _0x1ef303;
        } else {
          this[_0x56bd(0x6cc, 'H9os')]({
            'type': _0x56bd(0x678, 'bjRi'),
            'success': false,
            'error': '未找到Cursor安装目录'
          });
          return;
        }
      }
      let _0x3f0257 = fs[_0x56bd(0x8e8, 'KTbh')](_0x52b18d, _0x5d9144.iIeEk);
      if (!this[_0x56bd(0x74e, 'f)Dq')](_0x3f0257)) {
        return;
      }
      _0x3f0257 = _0x3f0257.replace(_0x5d9144[_0x56bd(0x78f, '^S!O')], _0x5d9144[_0x56bd(0x897, 'POq&')]);
      const _0x1b150c = _0x3f0257[_0x56bd(0x2d1, 'B)Tn')](_0x56bd(0x25d, 'akm5'));
      const _0x1689e0 = _0x3f0257[_0x56bd(0x93e, 'k$(5')](_0x5d9144[_0x56bd(0x553, 'B)Tn')]);
      if (_0x1b150c !== -0x1 && _0x1689e0 !== -0x1) {
        _0x3f0257 = _0x3f0257.substring(0x0, _0x1b150c) + _0x3f0257[_0x56bd(0x8b3, 'yoC7')](_0x1689e0 + 0x7);
      }
      const _0x17d1df = _0x3f0257[_0x56bd(0x310, 'ACPk')](_0x5d9144[_0x56bd(0x734, 'ck7z')]);
      const _0x260da1 = _0x3f0257[_0x56bd(0x77f, 'ck7z')](_0x5d9144[_0x56bd(0x955, '$SfD')]);
      if (_0x17d1df !== -0x1 && _0x260da1 !== -0x1) {
        if (_0x5d9144[_0x56bd(0x212, '^S!O')]('kmqvv', _0x5d9144[_0x56bd(0x4a4, 'Aig!')])) {
          _0x1c40a3.unlinkSync(_0x4225bd);
        } else {
          _0x3f0257 = _0x5d9144[_0x56bd(0x552, 'X4(r')](_0x3f0257[_0x56bd(0x770, '8Ee3')](0x0, _0x17d1df), _0x3f0257[_0x56bd(0x57b, 'K%5^')](_0x260da1 + 0x7));
        }
      }
      try {
        fs.writeFileSync(_0x52b18d, _0x3f0257, _0x5d9144.iIeEk);
      } catch (_0x1ea8dd) {
        if (_0x5d9144[_0x56bd(0x5c8, 'K%5^')](_0x1ea8dd[_0x56bd(0x1d4, 'hSE]')], _0x56bd(0x569, '@HDB')) || _0x1ea8dd[_0x56bd(0x7d1, 'f)Dq')] === _0x56bd(0x43e, '*&r5')) {
          if (_0x5d9144[_0x56bd(0x96b, 'DbBq')](_0x5d9144[_0x56bd(0x394, 'KTbh')], _0x5d9144.uxIzt)) {
            _0x2edff2 = _0x55fda2[0x1];
          } else {
            const _0x32b396 = _0x5d9144[_0x56bd(0x605, '0xfR')];
            this[_0x56bd(0x70a, '*&r5')]({
              'type': _0x5d9144[_0x56bd(0x2e0, 'K%5^')],
              'success': false,
              'error': _0x32b396,
              'needAdmin': true
            });
            return;
          }
        }
        throw _0x1ea8dd;
      }
      this[_0x56bd(0x184, 'KW&U')]({
        'type': _0x5d9144[_0x56bd(0x3fb, 'ACPk')],
        'success': true,
        'needRestart': true,
        'message': _0x56bd(0x754, 'LC6r')
      });
    } catch (_0x5a1405) {
      console[_0x56bd(0x439, ']I&e')](_0x5d9144[_0x56bd(0x810, '$SfD')], _0x5a1405);
      if (_0x5a1405.code === _0x5d9144[_0x56bd(0x7cd, 'XKo0')] || _0x5d9144[_0x56bd(0x855, '7%8^')](_0x5a1405.code, _0x5d9144[_0x56bd(0x68f, 'nY*(')])) {
        const _0x5de741 = _0x56bd(0x87d, 'akm5');
        this._postMessage({
          'type': _0x5d9144[_0x56bd(0x14d, 'X4(r')],
          'success': false,
          'error': _0x5de741,
          'needAdmin': true
        });
        return;
      }
      this[_0x56bd(0x466, '$SfD')]({
        'type': _0x5d9144.dzulQ,
        'success': false,
        'error': _0x5a1405[_0x56bd(0x960, '@HDB')] || '还原失败'
      });
    }
  }
  async [_0x56bd(0x870, 'K%5^')](_0x1772fb) {
    const _0x595d47 = {
      'uMKkd': _0x56bd(0x6fc, 'K%5^'),
      'puuTf': 'OoEdP',
      'GMeLW': _0x56bd(0x48c, '0xfR'),
      'xfsPC': function (_0x594de1, _0x4d93aa) {
        return _0x594de1 === _0x4d93aa;
      },
      'gwHNY': _0x56bd(0x585, 'H9os'),
      'DbkSk': _0x56bd(0x22f, 'nj1b')
    };
    try {
      if (_0x595d47[_0x56bd(0x21e, 'qOgW')] === 'OoEdP') {
        try {
          if (_0x2c90c5[_0x56bd(0x128, 's66k')](_0x4f880f)) {
            _0x40d342.rmSync(_0x56e280, {
              'recursive': true,
              'force': true
            });
            _0x108655++;
          }
        } catch (_0x5f07e2) {
          _0x49f06e[_0x56bd(0x77a, 'ACPk')]("[CursorPro] 清理失败: " + _0x860525, _0x5f07e2);
        }
      } else {
        0x0;
        await client_1[_0x56bd(0x4a2, 'de]G')]({
          'enabled': _0x1772fb
        });
        this[_0x56bd(0x245, '7%8^')]({
          'type': _0x595d47[_0x56bd(0x21a, 'yoC7')],
          'success': true,
          'enabled': _0x1772fb
        });
      }
    } catch (_0x4b5076) {
      if (_0x595d47[_0x56bd(0x192, 'EJjX')](_0x56bd(0x632, '0xfR'), _0x595d47.gwHNY)) {
        return this._getWorkbenchPathSync();
      } else {
        this[_0x56bd(0x922, 'm#S*')]({
          'type': _0x595d47.GMeLW,
          'success': false,
          'error': _0x595d47[_0x56bd(0x4a1, 'LC6r')]
        });
      }
    }
  }
  async ['_handleGetUserSwitchStatus']() {
    const _0x7a74ee = {
      'iTdeY': _0x56bd(0x759, '^S!O'),
      'sJbdj': 'userSwitchStatus',
      'Bzqze': 'TSpKd',
      'HRNLC': function (_0xf71d5d, _0x1fbc3a) {
        return _0xf71d5d !== _0x1fbc3a;
      },
      'BIPgO': _0x56bd(0x75e, '6eWF'),
      'zFtlx': _0x56bd(0x501, 'KTbh')
    };
    try {
      if (_0x7a74ee[_0x56bd(0x2e1, '8@jo')] !== _0x7a74ee.iTdeY) {
        _0x5ec7da[_0x56bd(0x711, 'xK)8')]([_0x56bd(0x398, 'iDwM'), _0x4c815c[_0x56bd(0x7d2, 'EJjX')]]);
      } else {
        const _0x8fa174 = this[_0x56bd(0x624, 'EJjX')][_0x56bd(0x873, 'de]G')].get('cursorpro.key');
        if (!_0x8fa174) {
          this._postMessage({
            'type': _0x7a74ee[_0x56bd(0x508, 'gvo7')],
            'valid': false,
            'switchRemaining': 0x0,
            'canSwitch': false,
            'error': _0x56bd(0x5bb, 'fu8^')
          });
          return;
        }
        0x0;
        const _0x55ca3b = await client_1[_0x56bd(0x322, 's66k')](_0x8fa174);
        let _0x1b9794 = false;
        try {
          if ('TSpKd' === _0x56bd(0x31e, 'EJjX')) {
            0x0;
            const _0x3f529b = await client_1[_0x56bd(0x9a8, 'K%5^')]();
            _0x1b9794 = _0x3f529b[_0x56bd(0x30f, 'iDwM')] || false;
          } else {
            _0x3d9b73[_0x56bd(0x2ee, 'akm5')]("[CursorPro] 清理失败: " + _0x151b0c, _0x57f0b8);
          }
        } catch (_0x12015a) {}
        this._postMessage({
          'type': 'userSwitchStatus',
          ..._0x55ca3b,
          'seamlessEnabled': _0x1b9794
        });
      }
    } catch (_0x831a4b) {
      if (_0x56bd(0x410, 'k$(5') !== _0x7a74ee[_0x56bd(0x964, 'ACPk')]) {
        this._postMessage({
          'type': _0x56bd(0x17f, 'LC6r'),
          'valid': false,
          'switchRemaining': 0x0,
          'canSwitch': false,
          'error': _0x7a74ee[_0x56bd(0x532, 'ck7z')]
        });
      } else {
        const _0x2c52f0 = this._getNonce();
        return "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'none'; style-src 'unsafe-inline'; script-src 'nonce-" + _0x2c52f0 + _0x56bd(0x3c7, 'hSE]') + _0x2ff1db[_0x56bd(0x78c, 'H9os')] + _0x56bd(0x8f6, 'nY*(') + _0x1bed45[_0x56bd(0x5a6, 'X4(r')] + "; worker-src 'none';\">\n    <title>CursorPro</title>\n    <script nonce=\"" + _0x2c52f0 + _0x56bd(0x344, '*&r5') + _0x2c52f0 + "\">\n        const vscode = acquireVsCodeApi();\n        \n        // 元素引用\n        const keyInput = document.getElementById('keyInput');\n        const activateBtn = document.getElementById('activateBtn');\n        const switchBtn = document.getElementById('switchBtn');\n        const resetBtn = document.getElementById('resetBtn');\n        const disableUpdateBtn = document.getElementById('disableUpdateBtn');\n        const cleanEnvBtn = document.getElementById('cleanEnvBtn');\n        const disableBtn = document.getElementById('disableBtn');\n        const authStatus = document.getElementById('authStatus');\n        const accountStatus = document.getElementById('accountStatus');\n        const keyDisplay = document.getElementById('keyDisplay');\n        const switchCount = document.getElementById('switchCount');\n        const expireDate = document.getElementById('expireDate');\n        const cursorVersion = document.getElementById('cursorVersion');\n        const cursorPath = document.getElementById('cursorPath');\n        \n        // 离线状态元素\n        const offlineBanner = document.getElementById('offlineBanner');\n        const retryConnectBtn = document.getElementById('retryConnectBtn');\n        \n        // 无感换号元素\n        const seamlessStatus = document.getElementById('seamlessStatus');\n        const seamlessProxySwitch = document.getElementById('seamlessProxySwitch');\n        const enableSeamlessBtn = document.getElementById('enableSeamlessBtn');\n        const disableSeamlessBtn = document.getElementById('disableSeamlessBtn');\n        const manualSwitchBtn = document.getElementById('manualSwitchBtn');\n        const seamlessResetMachineBtn = document.getElementById('seamlessResetMachineBtn');\n        const seamlessSwitchRemaining = document.getElementById('seamlessSwitchRemaining');\n        const seamlessCurrentAccount = document.getElementById('seamlessCurrentAccount');\n        \n        // 用量显示元素\n        const usageSection = document.getElementById('usageSection');\n        const refreshUsageBtn = document.getElementById('refreshUsageBtn');\n        const usageMemberType = document.getElementById('usageMemberType');\n        const usageTrialDays = document.getElementById('usageTrialDays');\n        const usageRequestCount = document.getElementById('usageRequestCount');\n        const usageCostUSD = document.getElementById('usageCostUSD');\n        const usageUpdateTime = document.getElementById('usageUpdateTime');\n        \n        // 公告元素\n        const announcementSection = document.getElementById('announcementSection');\n        const announcementIcon = document.getElementById('announcementIcon');\n        const announcementBadge = document.getElementById('announcementBadge');\n        const announcementTitle = document.getElementById('announcementTitle');\n        const announcementContent = document.getElementById('announcementContent');\n        const announcementTime = document.getElementById('announcementTime');\n        \n        // 版本元素\n        const versionSection = document.getElementById('versionSection');\n        const versionStatus = document.getElementById('versionStatus');\n        const currentVersionEl = document.getElementById('currentVersion');\n        const latestVersionEl = document.getElementById('latestVersion');\n        const latestVersionRow = document.getElementById('latestVersionRow');\n        const updateHint = document.getElementById('updateHint');\n        \n        // 顶部更新提醒条\n        const updateBanner = document.getElementById('updateBanner');\n        const updateBannerVersion = document.getElementById('updateBannerVersion');\n        const updateBannerClose = document.getElementById('updateBannerClose');\n        \n        // Toast 元素\n        const toast = document.getElementById('toast');\n        const toastIcon = document.getElementById('toastIcon');\n        const toastMessage = document.getElementById('toastMessage');\n        let toastTimer = null;\n        \n        // 显示 Toast 通知\n        function showToast(message, icon = '✅', duration = 10000) {\n            // 清除之前的定时器\n            if (toastTimer) {\n                clearTimeout(toastTimer);\n            }\n            \n            toastIcon.textContent = icon;\n            toastMessage.textContent = message;\n            toast.classList.add('show');\n            \n            // 设置自动隐藏\n            toastTimer = setTimeout(() => {\n                toast.classList.remove('show');\n            }, duration);\n        }\n        \n        // 禁用换号按钮并显示倒计时\n        let switchBtnCountdownTimer = null;\n        const originalSwitchBtnText = '一键换号(扣1积分)';\n        \n        function disableSwitchBtnWithCountdown(seconds) {\n            // 清除之前的定时器\n            if (switchBtnCountdownTimer) {\n                clearInterval(switchBtnCountdownTimer);\n            }\n            \n            let remaining = seconds;\n            manualSwitchBtn.disabled = true;\n            manualSwitchBtn.querySelector('.btn-text').textContent = remaining + '秒后可用';\n            \n            switchBtnCountdownTimer = setInterval(() => {\n                remaining--;\n                if (remaining <= 0) {\n                    clearInterval(switchBtnCountdownTimer);\n                    switchBtnCountdownTimer = null;\n                    manualSwitchBtn.disabled = false;\n                    manualSwitchBtn.querySelector('.btn-text').textContent = originalSwitchBtnText;\n                } else {\n                    manualSwitchBtn.querySelector('.btn-text').textContent = remaining + '秒后可用';\n                }\n            }, 1000);\n        }\n        \n        // 弹窗元素\n        const adminModal = document.getElementById('adminModal');\n        const adminModalClose = document.getElementById('adminModalClose');\n        const resetPermissionModal = document.getElementById('resetPermissionModal');\n        const resetPermissionClose = document.getElementById('resetPermissionClose');\n        const restartModal = document.getElementById('restartModal');\n        const restartModalTitle = document.getElementById('restartModalTitle');\n        const restartNowBtn = document.getElementById('restartNowBtn');\n        const restartLaterBtn = document.getElementById('restartLaterBtn');\n        const expiredModal = document.getElementById('expiredModal');\n        const expiredModalClose = document.getElementById('expiredModalClose');\n        const cleanEnvModal = document.getElementById('cleanEnvModal');\n        const cleanEnvConfirmBtn = document.getElementById('cleanEnvConfirmBtn');\n        const cleanEnvCancelBtn = document.getElementById('cleanEnvCancelBtn');\n        \n        // 换号确认弹窗元素\n        const switchConfirmModal = document.getElementById('switchConfirmModal');\n        const switchConfirmEmail = document.getElementById('switchConfirmEmail');\n        const switchConfirmCost = document.getElementById('switchConfirmCost');\n        const switchConfirmBtn = document.getElementById('switchConfirmBtn');\n        const switchCancelBtn = document.getElementById('switchCancelBtn');\n        \n        // 显示管理员权限弹窗\n        function showAdminModal() {\n            adminModal.classList.add('show');\n        }\n        \n        // 显示重置机器码权限提示弹窗\n        function showAdminPermissionModal() {\n            resetPermissionModal.classList.add('show');\n        }\n        \n        // 重置机器码权限弹窗 - 关闭按钮\n        resetPermissionClose.addEventListener('click', () => {\n            resetPermissionModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭权限提示弹窗\n        resetPermissionModal.addEventListener('click', (e) => {\n            if (e.target === resetPermissionModal) {\n                resetPermissionModal.classList.remove('show');\n            }\n        });\n        \n        // 显示重启提示弹窗\n        let restartModalAction = 'reload'; // 'reload' 或 'close'\n        \n        function showRestartModal(title, action = 'reload') {\n            restartModalTitle.textContent = title || '操作成功';\n            restartModalAction = action;\n            // 根据操作类型更新按钮文字\n            restartNowBtn.textContent = action === 'close' ? '立即关闭 Cursor' : '立即重启';\n            restartModal.classList.add('show');\n        }\n        \n        // 显示过期弹窗\n        function showExpiredModal() {\n            expiredModal.classList.add('show');\n        }\n        \n        // 关闭管理员弹窗\n        adminModalClose.addEventListener('click', () => {\n            adminModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭管理员弹窗\n        adminModal.addEventListener('click', (e) => {\n            if (e.target === adminModal) {\n                adminModal.classList.remove('show');\n            }\n        });\n        \n        // 立即重启/关闭按钮\n        restartNowBtn.addEventListener('click', () => {\n            restartModal.classList.remove('show');\n            if (restartModalAction === 'close') {\n                // 完全关闭 Cursor\n                vscode.postMessage({ type: 'closeCursor' });\n            } else {\n                // 重新加载窗口\n            vscode.postMessage({ type: 'reloadWindow' });\n            }\n        });\n        \n        // 稍后手动按钮\n        restartLaterBtn.addEventListener('click', () => {\n            restartModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭重启弹窗\n        restartModal.addEventListener('click', (e) => {\n            if (e.target === restartModal) {\n                restartModal.classList.remove('show');\n            }\n        });\n        \n        // 关闭过期弹窗\n        expiredModalClose.addEventListener('click', () => {\n            expiredModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭过期弹窗\n        expiredModal.addEventListener('click', (e) => {\n            if (e.target === expiredModal) {\n                expiredModal.classList.remove('show');\n            }\n        });\n        \n        // 当前账号邮箱（用于查询用量）\n        let currentAccountEmail = '';\n        let usageRefreshInterval = null;\n        // 存储完整激活码（用于复制）\n        let fullActivationKey = '';\n        // 当前剩余换号次数\n        let currentSwitchRemaining = 0;\n        // 当前到期时间\n        let currentExpireDate = '';\n        \n        // 检查卡密是否已过期\n        function isKeyExpired() {\n            if (!currentExpireDate) return true;\n            try {\n                const expireTime = new Date(currentExpireDate).getTime();\n                return Date.now() > expireTime;\n            } catch {\n                return true;\n            }\n        }\n        \n        // 格式化到期时间为北京时间\n        function formatExpireDate(dateStr) {\n            if (!dateStr) return '';\n            try {\n                // 后端返回的时间没有时区标识，假设是 UTC 时间\n                // 将空格替换为T，并添加Z表示UTC\n                let utcStr = dateStr;\n                if (!dateStr.includes('T') && !dateStr.includes('Z') && !dateStr.includes('+')) {\n                    utcStr = dateStr.replace(' ', 'T') + 'Z';\n                }\n                const date = new Date(utcStr);\n                \n                // 使用中国时区格式化（UTC+8）\n                return date.toLocaleString('zh-CN', {\n                    timeZone: 'Asia/Shanghai',\n                    year: 'numeric',\n                    month: '2-digit',\n                    day: '2-digit',\n                    hour: '2-digit',\n                    minute: '2-digit',\n                    second: '2-digit',\n                    hour12: false\n                });\n            } catch {\n                return dateStr;  // 格式化失败返回原始值\n            }\n        }\n        \n        // 隐藏激活码后几位\n        function maskKey(key) {\n            if (!key || key.length <= 8) return key;\n            return key.substring(0, key.length - 4) + '****';\n        }\n        \n        // 点击激活码复制\n        keyDisplay.addEventListener('click', () => {\n            if (!fullActivationKey) return;\n            navigator.clipboard.writeText(fullActivationKey).then(() => {\n                keyDisplay.classList.add('copied');\n                const originalText = keyDisplay.textContent;\n                keyDisplay.textContent = '已复制!';\n                setTimeout(() => {\n                    keyDisplay.textContent = maskKey(fullActivationKey);\n                    keyDisplay.classList.remove('copied');\n                }, 1000);\n            }).catch(() => {\n                // 降级方案\n                const textarea = document.createElement('textarea');\n                textarea.value = fullActivationKey;\n                document.body.appendChild(textarea);\n                textarea.select();\n                document.execCommand('copy');\n                document.body.removeChild(textarea);\n                keyDisplay.classList.add('copied');\n                keyDisplay.textContent = '已复制!';\n                setTimeout(() => {\n                    keyDisplay.textContent = maskKey(fullActivationKey);\n                    keyDisplay.classList.remove('copied');\n                }, 1000);\n            });\n        });\n        \n        // Loading 状态控制\n        function setButtonLoading(btn, loading) {\n            if (loading) {\n                btn.classList.add('loading');\n                btn.disabled = true;\n            } else {\n                btn.classList.remove('loading');\n                // 注意：某些按钮可能需要保持禁用状态，由调用方控制\n            }\n        }\n        \n        function setRefreshLoading(btn, loading) {\n            if (loading) {\n                btn.classList.add('loading');\n            } else {\n                btn.classList.remove('loading');\n            }\n        }\n        \n        // 获取初始状态\n        vscode.postMessage({ type: 'getState' });\n        vscode.postMessage({ type: 'getSeamlessStatus' });\n        vscode.postMessage({ type: 'getUserSwitchStatus' });\n        vscode.postMessage({ type: 'getProxyStatus' });\n        vscode.postMessage({ type: 'getAnnouncement' });\n        vscode.postMessage({ type: 'checkVersion' });\n        vscode.postMessage({ type: 'getCursorRunningPath' });\n        \n        // 激活按钮\n        activateBtn.addEventListener('click', () => {\n            const key = keyInput.value.trim();\n            if (!key) {\n                return;\n            }\n            setButtonLoading(activateBtn, true);\n            vscode.postMessage({ type: 'activate', key });\n        });\n        \n        // 换号按钮\n        switchBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'switch' });\n        });\n        \n        // 重置机器码按钮\n        resetBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'resetMachineId' });\n        });\n        \n        // 禁用自动更新按钮\n        disableUpdateBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'disableUpdate' });\n        });\n        \n        // 清理Cursor环境按钮 - 显示确认弹窗\n        cleanEnvBtn.addEventListener('click', () => {\n            cleanEnvModal.classList.add('show');\n        });\n        \n        // 确认清理\n        cleanEnvConfirmBtn.addEventListener('click', () => {\n            cleanEnvModal.classList.remove('show');\n            vscode.postMessage({ type: 'cleanEnv' });\n        });\n        \n        // 取消清理\n        cleanEnvCancelBtn.addEventListener('click', () => {\n            cleanEnvModal.classList.remove('show');\n        });\n        \n        // 点击遮罩关闭清理弹窗\n        cleanEnvModal.addEventListener('click', (e) => {\n            if (e.target === cleanEnvModal) {\n                cleanEnvModal.classList.remove('show');\n            }\n        });\n        \n        // 停用按钮\n        disableBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'disable' });\n        });\n        \n        // 关闭更新提醒条\n        updateBannerClose.addEventListener('click', () => {\n            updateBanner.classList.remove('show');\n        });\n        \n        // 免魔法开关\n        seamlessProxySwitch.addEventListener('change', (e) => {\n            const wantEnabled = e.target.checked;\n            \n            // 如果要开启免魔法，检查卡密是否过期（只要没过期就可以用，不管换号次数）\n            if (wantEnabled && isKeyExpired()) {\n                e.target.checked = false;\n                showToast('授权码已过期，无法开启免魔法', '⚠️', 3000);\n                return;\n            }\n            \n            vscode.postMessage({ \n                type: 'toggleProxy', \n                enabled: wantEnabled,\n                url: ''\n            });\n        });\n        \n        // 无感换号 - 启用按钮\n        enableSeamlessBtn.addEventListener('click', () => {\n            setButtonLoading(enableSeamlessBtn, true);\n            vscode.postMessage({ type: 'injectSeamless' });\n        });\n        \n        // 无感换号 - 禁用按钮\n        disableSeamlessBtn.addEventListener('click', () => {\n            setButtonLoading(disableSeamlessBtn, true);\n            vscode.postMessage({ type: 'restoreSeamless' });\n        });\n        \n        // 无感换号 - 手动换号按钮（先检查用量）\n        manualSwitchBtn.addEventListener('click', () => {\n            setButtonLoading(manualSwitchBtn, true);\n            // 传递当前显示的账号邮箱\n            vscode.postMessage({ type: 'checkUsageBeforeSwitch', email: currentAccountEmail });\n        });\n        \n        // 换号确认弹窗 - 确认按钮\n        switchConfirmBtn.addEventListener('click', () => {\n            switchConfirmModal.classList.remove('show');\n            setButtonLoading(manualSwitchBtn, true);\n            vscode.postMessage({ type: 'confirmSwitch' });\n        });\n        \n        // 换号确认弹窗 - 取消按钮\n        switchCancelBtn.addEventListener('click', () => {\n            switchConfirmModal.classList.remove('show');\n            setButtonLoading(manualSwitchBtn, false);\n            manualSwitchBtn.disabled = false;\n        });\n        \n        // 换号确认弹窗 - 点击遮罩关闭\n        switchConfirmModal.addEventListener('click', (e) => {\n            if (e.target === switchConfirmModal) {\n                switchConfirmModal.classList.remove('show');\n                setButtonLoading(manualSwitchBtn, false);\n                manualSwitchBtn.disabled = false;\n            }\n        });\n        \n        // 无感换号区域 - 重置机器码按钮\n        seamlessResetMachineBtn.addEventListener('click', () => {\n            vscode.postMessage({ type: 'resetMachineId' });\n        });\n        \n        // 刷新用量按钮\n        refreshUsageBtn.addEventListener('click', () => {\n            if (currentAccountEmail) {\n                setRefreshLoading(refreshUsageBtn, true);\n                vscode.postMessage({ type: 'getAccountUsage', email: currentAccountEmail });\n            }\n        });\n        \n        // 刷新用量函数\n        function refreshUsage() {\n            if (currentAccountEmail) {\n                vscode.postMessage({ type: 'getAccountUsage', email: currentAccountEmail });\n            }\n        }\n        \n        // 启动用量定时刷新 (每分钟一次)\n        function startUsageRefresh() {\n            if (usageRefreshInterval) {\n                clearInterval(usageRefreshInterval);\n            }\n            // 立即刷新一次\n            refreshUsage();\n            // 每60秒刷新一次\n            usageRefreshInterval = setInterval(refreshUsage, 60000);\n        }\n        \n        // 停止用量刷新\n        function stopUsageRefresh() {\n            if (usageRefreshInterval) {\n                clearInterval(usageRefreshInterval);\n                usageRefreshInterval = null;\n            }\n        }\n        \n        // 更新用量显示\n        function updateUsageDisplay(data) {\n            if (!data) return;\n            \n            const subscription = data.subscription || {};\n            const usage = data.usage || {};\n            \n            // 会员类型\n            const memberTypeMap = {\n                'free_trial': '免费试用',\n                'pro': 'Pro会员',\n                'free': '免费版',\n                'business': '商业版'\n            };\n            usageMemberType.textContent = memberTypeMap[subscription.membershipType] || subscription.membershipType || '-';\n            \n            // 试用剩余天数\n            if (subscription.daysRemainingOnTrial !== undefined && subscription.daysRemainingOnTrial !== null) {\n                usageTrialDays.textContent = subscription.daysRemainingOnTrial + ' 天';\n                usageTrialDays.style.color = subscription.daysRemainingOnTrial <= 3 ? '#f87171' : '#4ade80';\n            } else {\n                usageTrialDays.textContent = '-';\n                usageTrialDays.style.color = '#fff';\n            }\n            \n            // 请求次数\n            usageRequestCount.textContent = (usage.totalUsageCount || 0) + ' 次';\n            \n            // 已用额度\n            const costUSD = usage.totalCostUSD || 0;\n            usageCostUSD.textContent = '$' + costUSD.toFixed(2);\n            usageCostUSD.style.color = costUSD > 5 ? '#f87171' : (costUSD > 2 ? '#fbbf24' : '#4ade80');\n            \n            // 更新时间\n            usageUpdateTime.textContent = '更新于 ' + new Date().toLocaleTimeString();\n        }\n        \n        // 解析公告内容中的链接 {文字URL}\n        function parseAnnouncementContent(content) {\n            if (!content) return '';\n            \n            // 转义 HTML 特殊字符\n            let escaped = content\n                .replace(/&/g, '&amp;')\n                .replace(/</g, '&lt;')\n                .replace(/>/g, '&gt;')\n                .replace(/\"/g, '&quot;');\n            \n            // 匹配 {文字https://...} 或 {文字http://...} 格式\n            const linkRegex = /\\{([^}]+?)(https?:\\/\\/[^}]+)\\}/g;\n            \n            escaped = escaped.replace(linkRegex, function(match, text, url) {\n                return '<a href=\"' + url + '\" class=\"announcement-link\" target=\"_blank\">' + text + '</a>';\n            });\n            \n            // 将换行符转换为 <br>\n            escaped = escaped.replace(/\\n/g, '<br>');\n            \n            return escaped;\n        }\n        \n        // 更新公告显示\n        function updateAnnouncementDisplay(data) {\n            if (!data || !data.is_active) {\n                announcementSection.style.display = 'none';\n                return;\n            }\n            \n            // 显示公告区域\n            announcementSection.style.display = 'block';\n            \n            // 设置图标和类型徽章\n            const typeConfig = {\n                'info': { icon: '📢', text: '通知', class: 'info' },\n                'warning': { icon: '⚠️', text: '警告', class: 'warning' },\n                'error': { icon: '🚨', text: '重要', class: 'error' },\n                'success': { icon: '✅', text: '好消息', class: 'success' }\n            };\n            \n            const config = typeConfig[data.type] || typeConfig['info'];\n            announcementIcon.textContent = config.icon;\n            announcementBadge.textContent = config.text;\n            announcementBadge.className = 'announcement-badge ' + config.class;\n            \n            // 设置标题和内容（解析链接）\n            announcementTitle.textContent = data.title || '';\n            announcementContent.innerHTML = parseAnnouncementContent(data.content || '');\n            \n            // 设置时间\n            if (data.created_at) {\n                const date = new Date(data.created_at);\n                announcementTime.textContent = date.toLocaleDateString('zh-CN', {\n                    year: 'numeric',\n                    month: '2-digit',\n                    day: '2-digit',\n                    hour: '2-digit',\n                    minute: '2-digit'\n                });\n            } else {\n                announcementTime.textContent = '';\n            }\n        }\n        \n        // 处理来自扩展的消息\n        window.addEventListener('message', event => {\n            const message = event.data;\n            \n            switch (message.type) {\n                case 'state':\n                    updateUI(message);\n                    break;\n                case 'activated':\n                    setButtonLoading(activateBtn, false);\n                    activateBtn.disabled = false;\n                    if (message.success) {\n                        // 调试日志\n                        console.log('[CursorPro] 前端收到激活成功消息:', message);\n                        \n                        authStatus.textContent = '已授权';\n                        authStatus.className = 'status-badge active';\n                        accountStatus.textContent = '已激活';\n                        accountStatus.className = 'status-badge active';\n                        switchBtn.disabled = false;\n                        // 更新激活码显示（使用后端返回的 key）\n                        fullActivationKey = message.key || keyInput.value;\n                        keyDisplay.textContent = maskKey(fullActivationKey);\n                        // 更新到期时间\n                        console.log('[CursorPro] 更新到期时间:', message.expireDate);\n                        currentExpireDate = message.expireDate || '';\n                        expireDate.textContent = formatExpireDate(currentExpireDate) || '未知';\n                        // 更新换号次数\n                        if (message.switchRemaining !== undefined) {\n                            currentSwitchRemaining = message.switchRemaining;\n                            switchCount.textContent = message.switchRemaining + '/' + (message.switchLimit || 100);\n                        }\n                        // 清空输入框\n                        keyInput.value = '';\n                        showToast('授权码激活成功！', '✅', 10000);\n                    } else {\n                        showToast(message.error || '激活失败', '❌', 10000);\n                    }\n                    break;\n                case 'switched':\n                    if (message.success) {\n                        switchCount.textContent = message.switchRemaining + '/' + (message.switchLimit || 100);\n                        showToast('换号成功: ' + (message.email || ''), '✅', 10000);\n                    } else {\n                        showToast(message.error || '换号失败', '❌', 10000);\n                    }\n                    break;\n                case 'reset':\n                    authStatus.textContent = '未授权';\n                    authStatus.className = 'status-badge inactive';\n                    accountStatus.textContent = '未激活';\n                    accountStatus.className = 'status-badge inactive';\n                    switchBtn.disabled = true;\n                    keyInput.value = '';\n                    fullActivationKey = '';\n                    keyDisplay.textContent = '尚未激活';\n                    expireDate.textContent = '尚未激活';\n                    break;\n                \n                // 激活码状态检查结果\n                case 'keyStatusChecked':\n                    if (message.valid) {\n                        // 激活码有效，更新显示\n                        currentExpireDate = message.expireDate || '';\n                        currentSwitchRemaining = message.switchRemaining || 0;\n                        expireDate.textContent = formatExpireDate(currentExpireDate);\n                        switchCount.textContent = message.switchRemaining + '/' + (message.switchLimit || 100);\n                    } else if (message.expired) {\n                        // 激活码已过期，显示提示并重置状态\n                        currentExpireDate = '';\n                        currentSwitchRemaining = 0;\n                        authStatus.textContent = '已过期';\n                        authStatus.className = 'status-badge inactive';\n                        authStatus.style.background = '#6e3232';\n                        authStatus.style.color = '#ff6b6b';\n                        expireDate.textContent = '已过期';\n                        expireDate.style.color = '#f87171';\n                        switchBtn.disabled = true;\n                        enableSeamlessBtn.disabled = true;\n                        // 如果免魔法已开启，自动关闭\n                        if (seamlessProxySwitch.checked) {\n                            seamlessProxySwitch.checked = false;\n                            vscode.postMessage({ type: 'toggleProxy', enabled: false, url: '' });\n                        }\n                        // 显示过期弹窗\n                        showExpiredModal();\n                    }\n                    break;\n                \n                // 用户换号状态\n                case 'userSwitchStatus':\n                    const remaining = message.switchRemaining || 0;\n                    const canSwitch = remaining > 0;\n                    \n                    // 更新全局变量\n                    currentSwitchRemaining = remaining;\n                    \n                    seamlessSwitchRemaining.textContent = remaining.toString();\n                    seamlessSwitchRemaining.style.color = canSwitch ? '#4ade80' : '#f87171';\n                    \n                    if (message.lockedAccount) {\n                        seamlessCurrentAccount.textContent = message.lockedAccount.email;\n                        \n                        // 设置当前账号邮箱并启动用量刷新\n                        if (message.lockedAccount.email && message.lockedAccount.email !== currentAccountEmail) {\n                            currentAccountEmail = message.lockedAccount.email;\n                            usageSection.style.display = 'block';\n                            startUsageRefresh();\n                        }\n                    } else {\n                        seamlessCurrentAccount.textContent = '未分配';\n                        \n                        // 没有锁定账号时隐藏用量区域\n                        currentAccountEmail = '';\n                        usageSection.style.display = 'none';\n                        stopUsageRefresh();\n                    }\n                    \n                    // 根据剩余次数控制手动换号按钮状态\n                    if (!canSwitch) {\n                        manualSwitchBtn.disabled = true;\n                    }\n                    // 启用无感换号按钮不受积分限制，只有过期才禁用\n                    enableSeamlessBtn.disabled = isKeyExpired();\n                    \n                    // 如果无感换号已启用，显示手动换号按钮和重置机器码按钮\n                    if (message.seamlessEnabled && canSwitch) {\n                        manualSwitchBtn.style.display = 'block';\n                        manualSwitchBtn.disabled = false;\n                        setButtonLoading(manualSwitchBtn, false);\n                        seamlessResetMachineBtn.style.display = 'block';\n                    }\n                    break;\n                \n                // 账号用量\n                case 'accountUsage':\n                    setRefreshLoading(refreshUsageBtn, false);\n                    if (message.success && message.data) {\n                        updateUsageDisplay(message.data);\n                    } else {\n                        usageUpdateTime.textContent = '获取失败: ' + (message.error || '未知错误');\n                        usageUpdateTime.style.color = '#f87171';\n                    }\n                    break;\n                \n                // 无感换号状态\n                case 'seamlessStatus':\n                    if (message.is_injected) {\n                        seamlessStatus.textContent = '已启用';\n                        seamlessStatus.className = 'status-badge active';\n                        enableSeamlessBtn.style.display = 'none';\n                        disableSeamlessBtn.style.display = 'block';\n                        disableSeamlessBtn.disabled = false;\n                        setButtonLoading(disableSeamlessBtn, false);\n                        manualSwitchBtn.style.display = 'block';\n                        manualSwitchBtn.disabled = false;\n                        setButtonLoading(manualSwitchBtn, false);\n                        seamlessResetMachineBtn.style.display = 'block';\n                    } else {\n                        seamlessStatus.textContent = '未启用';\n                        seamlessStatus.className = 'status-badge inactive';\n                        enableSeamlessBtn.style.display = 'block';\n                        setButtonLoading(enableSeamlessBtn, false);\n                        // 启用按钮不受积分限制，只有过期才禁用\n                        enableSeamlessBtn.disabled = isKeyExpired();\n                        disableSeamlessBtn.style.display = 'none';\n                        manualSwitchBtn.style.display = 'none';\n                        seamlessResetMachineBtn.style.display = 'none';\n                    }\n                    break;\n                \n                case 'seamlessInjected':\n                    setButtonLoading(enableSeamlessBtn, false);\n                    enableSeamlessBtn.disabled = false;\n                    if (message.success) {\n                        seamlessStatus.textContent = '已启用';\n                        seamlessStatus.className = 'status-badge active';\n                        enableSeamlessBtn.style.display = 'none';\n                        disableSeamlessBtn.style.display = 'block';\n                        manualSwitchBtn.style.display = 'block';\n                        seamlessResetMachineBtn.style.display = 'block';\n                        // 刷新用户状态\n                        vscode.postMessage({ type: 'getUserSwitchStatus' });\n                        // 显示重启提示弹窗\n                        if (message.needRestart) {\n                            showRestartModal(message.message || '无感换号已启用');\n                        }\n                    } else {\n                        // 如果是权限错误，显示自定义弹窗\n                        if (message.needAdmin) {\n                            // Mac/Linux 权限问题，显示详细提示\n                            var errorMsg = message.error || '没有写入权限';\n                            if (message.path) {\n                                errorMsg += '\\n路径: ' + message.path;\n                            }\n                            showToast(errorMsg, '🔐', 15000);\n                        } else {\n                            // 显示详细错误\n                            var detailMsg = message.error || '启用失败';\n                            if (message.details) {\n                                detailMsg += '\\n' + message.details;\n                            }\n                            showToast(detailMsg, '❌', 15000);\n                        }\n                    }\n                    break;\n                \n                case 'seamlessRestored':\n                    setButtonLoading(disableSeamlessBtn, false);\n                    disableSeamlessBtn.disabled = false;\n                    if (message.success) {\n                        seamlessStatus.textContent = '未启用';\n                        seamlessStatus.className = 'status-badge inactive';\n                        enableSeamlessBtn.style.display = 'block';\n                        disableSeamlessBtn.style.display = 'none';\n                        manualSwitchBtn.style.display = 'none';\n                        seamlessResetMachineBtn.style.display = 'none';\n                        // 显示重启提示弹窗\n                        if (message.needRestart) {\n                            showRestartModal(message.message || '无感换号已禁用');\n                        }\n                    } else {\n                        // 如果是权限错误，显示自定义弹窗\n                        if (message.needAdmin) {\n                            showAdminModal();\n                        } else {\n                            showToast(message.error || '禁用失败', '❌', 10000);\n                        }\n                    }\n                    break;\n                \n                // 用量检查结果\n                case 'usageCheckResult':\n                    if (message.success) {\n                        if (message.needConfirm) {\n                            // 需要确认，显示弹窗（按钮保持可用状态，等用户选择）\n                            setButtonLoading(manualSwitchBtn, false);\n                            manualSwitchBtn.disabled = false;\n                            switchConfirmEmail.textContent = message.email || '';\n                            switchConfirmCost.textContent = '$' + (message.costUSD || '0.00');\n                            switchConfirmModal.classList.add('show');\n                        } else {\n                            // 不需要确认，直接换号\n                            vscode.postMessage({ type: 'confirmSwitch' });\n                        }\n                    } else {\n                        setButtonLoading(manualSwitchBtn, false);\n                        manualSwitchBtn.disabled = false;\n                        showToast(message.error || '检查失败', '❌', 5000);\n                    }\n                    break;\n                \n                case 'manualSeamlessSwitched':\n                    setButtonLoading(manualSwitchBtn, false);\n                    if (message.success) {\n                        seamlessSwitchRemaining.textContent = (message.switchRemaining || 0).toString();\n                        seamlessCurrentAccount.textContent = message.email || '未知';\n                        // 显示 Toast 通知，10秒后消失\n                        showToast('已切换到: ' + (message.email || '新账号') + '，约10秒内自动生效', '✅', 10000);\n                        // 刷新状态\n                        vscode.postMessage({ type: 'getUserSwitchStatus' });\n                        // 禁用按钮10秒，显示倒计时\n                        disableSwitchBtnWithCountdown(10);\n                    } else {\n                        manualSwitchBtn.disabled = false;\n                        showToast(message.error || '换号失败', '❌', 5000);\n                    }\n                    break;\n                \n                case 'proxyStatus':\n                    // 设置免魔法开关状态\n                    seamlessProxySwitch.checked = message.enabled;\n                    break;\n                \n                // 公告\n                case 'announcement':\n                    if (message.success && message.data) {\n                        updateAnnouncementDisplay(message.data);\n                    } else {\n                        announcementSection.style.display = 'none';\n                    }\n                    break;\n                \n                // 版本检查\n                case 'versionCheck':\n                    currentVersionEl.textContent = message.currentVersion || '-';\n                    if (message.success && message.hasUpdate) {\n                        // 有更新\n                        latestVersionEl.textContent = message.latestVersion;\n                        latestVersionRow.style.display = 'flex';\n                        versionStatus.style.display = 'inline-block';\n                        versionStatus.style.background = '#ff9800';\n                        updateHint.style.display = 'block';\n                        \n                        // 显示顶部更新提醒条\n                        updateBannerVersion.textContent = 'v' + message.latestVersion;\n                        updateBanner.classList.add('show');\n                    } else if (message.success) {\n                        // 已是最新版\n                        versionStatus.textContent = '最新';\n                        versionStatus.style.display = 'inline-block';\n                        versionStatus.style.background = '#4caf50';\n                        latestVersionRow.style.display = 'none';\n                        updateHint.style.display = 'none';\n                        updateBanner.classList.remove('show');\n                    }\n                    break;\n                \n                // Cursor 运行路径\n                case 'cursorRunningPath':\n                    if (message.path) {\n                        const pathText = message.path + (message.packageExists ? ' ✓' : ' ✗');\n                        cursorPath.textContent = pathText;\n                        cursorPath.style.color = message.packageExists ? '#4ade80' : '#f87171';\n                        // 同时更新版本号\n                        if (message.cursorVersion) {\n                            cursorVersion.textContent = message.cursorVersion;\n                        }\n                    } else {\n                        cursorPath.textContent = '未找到';\n                        cursorPath.style.color = '#f87171';\n                    }\n                    break;\n                \n                // 管理员权限不足提示\n                case 'adminPermissionRequired':\n                    showAdminPermissionModal();\n                    break;\n                \n                // 机器码重置\n                case 'machineIdReset':\n                    if (message.success && message.needRestart) {\n                        // 机器码重置需要完全关闭 Cursor，不是 reload\n                        showRestartModal(message.message || '机器码重置成功', 'close');\n                    }\n                    break;\n                \n                // 通用 Toast 消息\n                case 'showToast':\n                    showToast(message.message || '', message.icon || '📢', 10000);\n                    break;\n                \n                // 网络状态\n                case 'networkStatus':\n                    updateOfflineStatus(!message.online);\n                    break;\n            }\n        });\n        \n        // 离线状态显示/隐藏\n        let wasOffline = false; // 跟踪之前是否离线\n        function updateOfflineStatus(isOffline) {\n            if (isOffline) {\n                offlineBanner.classList.add('show');\n                wasOffline = true;\n            } else {\n                offlineBanner.classList.remove('show');\n                // 只有从离线恢复到在线时才刷新状态\n                if (wasOffline) {\n                    wasOffline = false;\n                    vscode.postMessage({ type: 'getState' });\n                    vscode.postMessage({ type: 'getUserSwitchStatus' });\n                }\n            }\n        }\n        \n        // 重试连接按钮\n        retryConnectBtn.addEventListener('click', async () => {\n            retryConnectBtn.classList.add('loading');\n            retryConnectBtn.textContent = '连接中...';\n            \n            // 发起真正的网络请求来测试网络\n            vscode.postMessage({ type: 'retryConnect' });\n            \n            // 5秒后恢复按钮状态（给网络请求足够时间）\n            setTimeout(() => {\n                retryConnectBtn.classList.remove('loading');\n                retryConnectBtn.textContent = '重试';\n            }, 5000);\n        });\n        \n        function updateUI(state) {\n            if (state.isActivated) {\n                authStatus.textContent = '已授权';\n                authStatus.className = 'status-badge active';\n                accountStatus.textContent = '已激活';\n                accountStatus.className = 'status-badge active';\n                switchBtn.disabled = false;\n                fullActivationKey = state.key;\n                keyDisplay.textContent = maskKey(fullActivationKey);\n                // 更新到期时间\n                currentExpireDate = state.expireDate || '';\n                expireDate.textContent = formatExpireDate(currentExpireDate);\n                // 更新换号次数\n                if (state.switchRemaining !== undefined) {\n                    currentSwitchRemaining = state.switchRemaining;\n                    switchCount.textContent = state.switchRemaining + '/' + (state.switchLimit || 100);\n                }\n                // 启用无感换号按钮（只有过期才禁用）\n                enableSeamlessBtn.disabled = isKeyExpired();\n            }\n            cursorVersion.textContent = state.cursorVersion || '0.0.0';\n            \n            // 根据网络状态显示/隐藏离线提示\n            if (state.isOnline === false) {\n                offlineBanner.classList.add('show');\n                wasOffline = true;\n            } else if (state.isOnline === true) {\n                // 网络恢复，隐藏离线提示\n                offlineBanner.classList.remove('show');\n                wasOffline = false;\n            }\n        }\n    </script>\n</body>\n</html>";
      }
    }
  }
  async [_0x56bd(0x471, '*&r5')](_0x1b796a) {
    const _0x312bb1 = {
      'kwSDs': _0x56bd(0x95e, 'H9os'),
      'cuNHx': _0x56bd(0x5f9, ']I&e'),
      'AlVbI': '更新配置失败',
      'cBprM': _0x56bd(0x5f3, 'de]G'),
      'pLAQo': _0x56bd(0x85d, 'xK)8'),
      'XCtgT': function (_0x51bb3f, _0x5ae513) {
        return _0x51bb3f(_0x5ae513);
      },
      'LcuLD': _0x56bd(0x8b0, 'KW&U'),
      'JvSqa': _0x56bd(0x662, 'K%5^'),
      'rptjh': _0x56bd(0x409, 'DQte')
    };
    try {
      if (!_0x1b796a) {
        this._postMessage({
          'type': _0x312bb1.cBprM,
          'success': false,
          'error': _0x312bb1[_0x56bd(0x83e, 'T$OD')]
        });
        return;
      }
      0x0;
      const _0x58b290 = client_1[_0x56bd(0x755, '6eWF')]() + _0x56bd(0x17e, 'KW&U') + _0x312bb1[_0x56bd(0x59c, '4)@$')](encodeURIComponent, _0x1b796a) + '&refresh=true';
      const _0x507bbc = await _0x312bb1[_0x56bd(0x4f4, 'xK)8')](fetch, _0x58b290);
      const _0x46ba2b = await _0x507bbc.json();
      if (_0x46ba2b[_0x56bd(0x974, '0xfR')] && _0x46ba2b[_0x56bd(0x643, '8@jo')]) {
        this[_0x56bd(0x2fb, 'nY*(')]({
          'type': _0x312bb1[_0x56bd(0x178, 'LC6r')],
          'success': true,
          'data': _0x46ba2b[_0x56bd(0x93b, 'm#S*')]
        });
        const _0x4cf6e5 = _0x46ba2b[_0x56bd(0x890, 'X4(r')][_0x56bd(0x984, '8Ee3')] || {};
        const _0x3d3ce3 = _0x4cf6e5[_0x56bd(0x2bb, '8@jo')] || 0x0;
        const _0x1f779f = _0x312bb1[_0x56bd(0x747, 'Aig!')](parseFloat, _0x4cf6e5[_0x56bd(0x731, 'k$(5')] || 0x0);
        0x0;
        extension_1[_0x56bd(0x89b, 'bjRi')](_0x3d3ce3, _0x1f779f);
      } else {
        this[_0x56bd(0x11c, 'Ka)i')]({
          'type': _0x312bb1.cBprM,
          'success': false,
          'error': _0x46ba2b[_0x56bd(0x488, 'KTbh')] || _0x312bb1[_0x56bd(0x3a2, '4)@$')]
        });
      }
    } catch (_0x3c8684) {
      if (_0x312bb1[_0x56bd(0x965, 'n8BU')] !== 'NYkng') {
        _0x496ef8[_0x56bd(0x488, 'KTbh')](_0x312bb1[_0x56bd(0x613, 'akm5')], _0x4d4142);
        this[_0x56bd(0x6cc, 'H9os')]({
          'type': _0x312bb1[_0x56bd(0x28a, 'DbBq')],
          'success': false,
          'error': _0x312bb1[_0x56bd(0x371, 'Ka)i')]
        });
      } else {
        this[_0x56bd(0x507, 'hSE]')]({
          'type': _0x312bb1[_0x56bd(0x178, 'LC6r')],
          'success': false,
          'error': _0x3c8684.message || _0x312bb1[_0x56bd(0x998, '^sHL')]
        });
      }
    }
  }
  async [_0x56bd(0x695, '6hxd')]() {
    const _0x507cc2 = {
      'eXcSu': _0x56bd(0x32e, '7%WS'),
      'wCuhU': _0x56bd(0x6fa, 'ck7z'),
      'tQyYP': '请先激活授权码',
      'fEjcy': function (_0x14a329, _0x3ca24d) {
        return _0x14a329 > _0x3ca24d;
      },
      'GLUmw': _0x56bd(0x799, 'de]G'),
      'Bjkrw': '授权码已过期，无法开启免魔法',
      'trGXG': 'showToast',
      'aCZjy': function (_0x85327, _0x557946) {
        return _0x85327(_0x557946);
      },
      'aHNrz': 'announcement',
      'PynOc': function (_0x4e3da2, _0x27c602) {
        return _0x4e3da2 === _0x27c602;
      },
      'LjnPR': 'ysOwe',
      'RdeWm': _0x56bd(0x717, 'nY*('),
      'XcVTX': _0x56bd(0x42d, '6eWF')
    };
    try {
      0x0;
      const _0x2127d9 = client_1[_0x56bd(0x480, '63N&')]() + _0x56bd(0x826, 'm#S*');
      const _0x59851a = await _0x507cc2[_0x56bd(0x647, '0xfR')](fetch, _0x2127d9);
      const _0x1529e0 = await _0x59851a.json();
      if (_0x1529e0[_0x56bd(0x78e, '@HDB')] && _0x1529e0[_0x56bd(0x145, 'EJjX')]) {
        this._postMessage({
          'type': _0x507cc2[_0x56bd(0x36d, '6hxd')],
          'success': true,
          'data': _0x1529e0[_0x56bd(0x9ad, 'qOgW')]
        });
      } else {
        if ('ysOwe' === _0x507cc2[_0x56bd(0x2f6, '6hxd')]) {
          this._postMessage({
            'type': _0x56bd(0x86f, '63N&'),
            'success': false,
            'error': _0x1529e0[_0x56bd(0x217, 'hSE]')] || _0x507cc2[_0x56bd(0x593, 'nj1b')]
          });
        } else {
          const _0x2213b8 = this[_0x56bd(0x3a9, '0xfR')].globalState.get(_0x507cc2[_0x56bd(0x581, '^S!O')]);
          const _0x3fde55 = this[_0x56bd(0x225, '6hxd')][_0x56bd(0x869, 'Aig!')][_0x56bd(0x408, '6eWF')](_0x507cc2[_0x56bd(0x3c5, 'B)Tn')]);
          if (!_0x2213b8) {
            this[_0x56bd(0x47e, 'DbBq')]({
              'type': 'proxyUpdated',
              'success': false,
              'error': '请先激活授权码'
            });
            this[_0x56bd(0x465, 'DQte')]({
              'type': _0x56bd(0x224, 'DQte'),
              'message': _0x507cc2[_0x56bd(0x294, ']I&e')],
              'icon': '⚠️'
            });
            return;
          }
          if (_0x3fde55) {
            const _0x88cb25 = new _0x3cd6be(_0x3fde55)[_0x56bd(0x7c0, '6eWF')]();
            if (_0x507cc2[_0x56bd(0x1b9, '^sHL')](_0x4cae44[_0x56bd(0x427, '^sHL')](), _0x88cb25)) {
              this._postMessage({
                'type': _0x507cc2.GLUmw,
                'success': false,
                'error': _0x507cc2[_0x56bd(0x85a, 's66k')]
              });
              this._postMessage({
                'type': _0x507cc2[_0x56bd(0x6c5, 'KW&U')],
                'message': _0x56bd(0x60a, 'ck7z'),
                'icon': '⚠️'
              });
              return;
            }
          }
        }
      }
    } catch (_0x2ebc04) {
      this[_0x56bd(0x72c, 'iDwM')]({
        'type': _0x507cc2[_0x56bd(0x113, 'hSE]')],
        'success': false,
        'error': _0x2ebc04.message || _0x507cc2[_0x56bd(0x33c, 'n8BU')]
      });
    }
  }
  async [_0x56bd(0x5da, 'yoC7')]() {
    const _0x250fa3 = {
      'HgWOc': "[CursorPro] 使用用户配置的 Cursor 路径:",
      'QXFeq': function (_0x28c00c, _0x55597c) {
        return _0x28c00c > _0x55597c;
      },
      'lYCxA': _0x56bd(0x631, '0xfR'),
      'QtoxZ': function (_0x5cd3f7, _0x1bb416) {
        return _0x5cd3f7 === _0x1bb416;
      },
      'xqknY': _0x56bd(0x214, 'fu8^'),
      'GbNrd': _0x56bd(0x6a4, 'nj1b')
    };
    try {
      0x0;
      const _0xcbd93e = await client_1[_0x56bd(0x7af, 'nY*(')]();
      if (_0xcbd93e.success && _0xcbd93e.version) {
        const _0x59dc2f = _0xcbd93e[_0x56bd(0x859, 'KW&U')];
        const _0x1a5d58 = CursorProViewProvider[_0x56bd(0x591, 'qOgW')];
        const _0x4acb32 = _0x250fa3[_0x56bd(0x2f2, 'k$(5')](this[_0x56bd(0x8c6, 'DQte')](_0x59dc2f, _0x1a5d58), 0x0);
        this[_0x56bd(0x466, '$SfD')]({
          'type': _0x250fa3[_0x56bd(0x68b, 's66k')],
          'success': true,
          'currentVersion': _0x1a5d58,
          'latestVersion': _0x59dc2f,
          'hasUpdate': _0x4acb32
        });
      } else {
        this[_0x56bd(0x47e, 'DbBq')]({
          'type': _0x250fa3[_0x56bd(0x8dc, 'qOgW')],
          'success': false,
          'currentVersion': CursorProViewProvider.CURRENT_VERSION,
          'error': _0xcbd93e[_0x56bd(0x18d, 'bZsS')] || _0x56bd(0x355, '8Ee3')
        });
      }
    } catch (_0x5d97b6) {
      if (_0x250fa3[_0x56bd(0x46b, 'B)Tn')](_0x250fa3[_0x56bd(0x204, '8Ee3')], _0x56bd(0x3f4, 'yoC7'))) {
        _0x21c480[_0x56bd(0x21d, ']I&e')](_0x250fa3[_0x56bd(0x8e2, '@HDB')], _0x41f567);
        this[_0x56bd(0x3ef, '6eWF')] = _0x3c3681;
        return _0xb7920c;
      } else {
        this._postMessage({
          'type': _0x56bd(0x3aa, '$SfD'),
          'success': false,
          'currentVersion': CursorProViewProvider.CURRENT_VERSION,
          'error': _0x5d97b6[_0x56bd(0x560, 'Ka)i')] || _0x250fa3[_0x56bd(0x6b5, 'KW&U')]
        });
      }
    }
  }
  [_0x56bd(0x334, 'XKo0')](_0x2c35a0, _0x3e2c58) {
    const _0x576d14 = {
      'PMKNW': function (_0x2cee68, _0x17cabb) {
        return _0x2cee68 < _0x17cabb;
      },
      'qyNxu': function (_0xbd034d, _0x5b41) {
        return _0xbd034d > _0x5b41;
      },
      'HZvmu': function (_0x1f686e, _0x307d8c) {
        return _0x1f686e < _0x307d8c;
      }
    };
    const _0xbaec2f = _0x2c35a0[_0x56bd(0x81b, 'ck7z')]('.')[_0x56bd(0x8e4, 'K%5^')](Number);
    const _0x52cf6d = _0x3e2c58[_0x56bd(0x2a9, '@HDB')]('.')[_0x56bd(0x9e2, ']I&e')](Number);
    const _0x23e911 = Math[_0x56bd(0x127, 'LC6r')](_0xbaec2f[_0x56bd(0x4e1, 'nY*(')], _0x52cf6d[_0x56bd(0x403, 'bjRi')]);
    for (let _0x2d8ca5 = 0x0; _0x2d8ca5 < _0x23e911; _0x2d8ca5++) {
      const _0x237a97 = _0xbaec2f[_0x2d8ca5] || 0x0;
      const _0x266b01 = _0x52cf6d[_0x2d8ca5] || 0x0;
      if (_0x576d14[_0x56bd(0x81c, 'LC6r')](_0x237a97, _0x266b01)) {
        return 0x1;
      }
      if (_0x237a97 < _0x266b01) {
        return -0x1;
      }
    }
    return 0x0;
  }
  async [_0x56bd(0x98e, 'DQte')]() {
    const _0x46ebbb = {
      'SsULC': _0x56bd(0x98c, 'f)Dq'),
      'AwKfF': 'utf-8',
      'zAvXx': _0x56bd(0x2f4, '63N&'),
      'QhWXL': _0x56bd(0x67d, 'KW&U'),
      'bZBTW': 'cursorpro',
      'vlHDb': 'cursorPath',
      'ONVXL': function (_0x45b9b2, _0x3d0419) {
        return _0x45b9b2 === _0x3d0419;
      },
      'JPYoo': _0x56bd(0x38f, ']I&e'),
      'nEYhA': 'Contents',
      'EbBLW': _0x56bd(0x9b9, '63N&'),
      'lMfdt': _0x56bd(0x498, 'H9os'),
      'MFjtx': _0x56bd(0x8e5, 'iDwM'),
      'NjVqB': _0x56bd(0x791, 'ck7z'),
      'Wxyfp': _0x56bd(0x1bb, 'nj1b'),
      'JSWuW': _0x56bd(0x3e4, 'iDwM'),
      'ACRef': _0x56bd(0x3dc, ']I&e'),
      'ydRHF': _0x56bd(0x623, '7%WS'),
      'ANYDK': function (_0x3ac49f, _0x3550a9) {
        return _0x3ac49f === _0x3550a9;
      },
      'rEwYQ': _0x56bd(0x490, 'DbBq'),
      'YxYZp': _0x56bd(0x1a4, '7%8^'),
      'Qvzam': function (_0x5c6915, _0xdddb6e) {
        return _0x5c6915 === _0xdddb6e;
      },
      'FyfZA': function (_0x35b4f7, _0x394159) {
        return _0x35b4f7 !== _0x394159;
      },
      'eCMQp': 'DZGqD',
      'QKwAH': 'Programs',
      'eEobw': _0x56bd(0x143, 'KW&U'),
      'aouCU': _0x56bd(0x7fe, 'LC6r'),
      'XXRrw': _0x56bd(0x5ea, 'ACPk'),
      'biXGl': _0x56bd(0x4d3, 'akm5'),
      'ErbAO': _0x56bd(0x58b, 'bZsS'),
      'vvvXG': _0x56bd(0x841, 'fu8^'),
      'kVBXU': _0x56bd(0x710, 'm#S*'),
      'sxYuF': _0x56bd(0x159, '$SfD'),
      'sYfMC': _0x56bd(0x2da, 'fu8^'),
      'UFfHe': "[CursorPro] 从路径获取 Cursor 版本:",
      'HLsOj': 'cursorRunningPath',
      'stZTh': "获取失败: "
    };
    try {
      if (_0x56bd(0x540, '6eWF') !== _0x46ebbb.zAvXx) {
        return [{
          'email': _0x7e9b73,
          'access_token': _0x4f7a33,
          'refresh_token': _0x32c653 || _0x23d4b2
        }];
      } else {
        const _0x1b946c = process[_0x56bd(0x3c3, '^sHL')];
        let _0x306e39 = _0x46ebbb.QhWXL;
        let _0x260237 = '';
        const _0x36a669 = vscode[_0x56bd(0x7b0, 'bZsS')][_0x56bd(0x896, '8Ee3')](_0x46ebbb[_0x56bd(0x6fe, '^sHL')]);
        const _0x49eda3 = _0x36a669[_0x56bd(0x196, '@HDB')](_0x46ebbb[_0x56bd(0x94c, 'nY*(')]);
        if (_0x49eda3 && fs.existsSync(_0x49eda3)) {
          _0x306e39 = _0x49eda3;
          if (_0x1b946c === _0x46ebbb.JPYoo) {
            _0x260237 = path[_0x56bd(0x704, 'm#S*')](_0x49eda3, _0x46ebbb[_0x56bd(0x884, 'akm5')], _0x46ebbb[_0x56bd(0x384, 'Ka)i')], _0x46ebbb[_0x56bd(0x5cc, 'DbBq')], _0x46ebbb[_0x56bd(0x2d2, 'K%5^')]);
          } else {
            _0x260237 = path[_0x56bd(0x134, 'xK)8')](_0x49eda3, _0x56bd(0x1d3, '4)@$'), _0x46ebbb.lMfdt, _0x46ebbb[_0x56bd(0x125, 'ck7z')]);
          }
          console.log(_0x46ebbb[_0x56bd(0x5c9, '6eWF')], _0x49eda3);
        } else {
          if (_0x1b946c === _0x46ebbb.Wxyfp) {
            try {
              if (_0x46ebbb[_0x56bd(0x834, 'ACPk')] === _0x56bd(0x986, 'de]G')) {
                _0x2258e6 = true;
                delete _0x2dff6a[_0x1d391b];
              } else {
                const {
                  stdout: _0x1a7f66
                } = await execAsync(_0x46ebbb[_0x56bd(0x2c5, '*&r5')]);
                const _0xa3209b = _0x1a7f66[_0x56bd(0x4f7, 'LC6r')](/ExecutablePath=(.+)/);
                if (_0xa3209b && _0xa3209b[0x1]) {
                  const _0x5d0249 = _0xa3209b[0x1][_0x56bd(0x1b1, 'LC6r')]();
                  _0x306e39 = path.dirname(_0x5d0249);
                  _0x260237 = path[_0x56bd(0x9af, '0xfR')](_0x306e39, _0x46ebbb.ydRHF, _0x46ebbb.lMfdt, _0x46ebbb.MFjtx);
                }
              }
            } catch (_0x48a57c) {
              if (_0x46ebbb[_0x56bd(0x848, 'ck7z')] === _0x46ebbb[_0x56bd(0x363, 'ACPk')]) {
                _0x15013a[_0x56bd(0x1e2, 'ck7z')](_0x46ebbb[_0x56bd(0x951, '8@jo')], _0x3e70a4.version);
                return _0x1800fc.version;
              } else {
                console.log(_0x56bd(0x307, 'de]G'), _0x48a57c);
              }
            }
            if (_0x306e39 === _0x46ebbb[_0x56bd(0x17b, 'bZsS')]) {
              if (_0x46ebbb[_0x56bd(0x95d, 'T$OD')](_0x56bd(0x934, '7%8^'), _0x46ebbb[_0x56bd(0x1df, 'nj1b')])) {
                try {
                  const _0x378439 = this[_0x56bd(0x9f0, '6hxd')]();
                  if (_0x1530ba[_0x56bd(0x722, 'Aig!')](_0x378439)) {
                    return _0x4386be[_0x56bd(0x750, 'POq&')](_0x378439, _0x46ebbb[_0x56bd(0x289, 'de]G')]);
                  }
                } catch (_0xba9c07) {
                  _0x79d384[_0x56bd(0x1f7, 'k$(5')](_0x56bd(0x424, '*&r5'), _0xba9c07);
                }
                return '';
              } else {
                const _0x17a391 = process[_0x56bd(0x745, '$SfD')][_0x56bd(0x3fa, 'LC6r')] || '';
                const _0x6b3334 = [path[_0x56bd(0x387, 'DQte')](_0x17a391, _0x46ebbb[_0x56bd(0x706, 'hSE]')], 'cursor'), path[_0x56bd(0x9af, '0xfR')](_0x17a391, _0x46ebbb[_0x56bd(0x809, 'Ka)i')])];
                for (const _0x516d23 of _0x6b3334) {
                  const _0x495418 = path[_0x56bd(0x577, 'LC6r')](_0x516d23, _0x46ebbb[_0x56bd(0x712, 'K%5^')], _0x56bd(0x6f9, 'iDwM'), _0x46ebbb[_0x56bd(0x533, 'Ka)i')]);
                  if (fs.existsSync(_0x495418)) {
                    _0x306e39 = _0x516d23;
                    _0x260237 = _0x495418;
                    break;
                  }
                }
              }
            }
          } else {
            if (_0x1b946c === _0x56bd(0x6e3, '8@jo')) {
              if (_0x46ebbb[_0x56bd(0x6cb, '^S!O')](_0x46ebbb[_0x56bd(0x9e3, '^sHL')], _0x46ebbb[_0x56bd(0x91d, 'bZsS')])) {
                return null;
              } else {
                _0x306e39 = (await this[_0x56bd(0x1e1, '0xfR')]()) || _0x46ebbb[_0x56bd(0x718, 'qOgW')];
                _0x260237 = path[_0x56bd(0x108, '6hxd')](_0x306e39, _0x46ebbb[_0x56bd(0x1f0, 'bjRi')], _0x46ebbb.EbBLW, 'app', _0x46ebbb.MFjtx);
              }
            } else {
              const _0x1071f5 = process.env[_0x56bd(0x23e, 'qOgW')] || '';
              const _0x34c761 = [_0x46ebbb[_0x56bd(0x996, ']I&e')], path.join(_0x1071f5, _0x46ebbb[_0x56bd(0x2d4, 'DbBq')], _0x46ebbb[_0x56bd(0x42e, 'xK)8')], _0x46ebbb.eEobw)];
              for (const _0x1aac5b of _0x34c761) {
                if (fs.existsSync(_0x1aac5b)) {
                  _0x306e39 = _0x1aac5b;
                  _0x260237 = path[_0x56bd(0x702, 'B)Tn')](_0x1aac5b, _0x46ebbb[_0x56bd(0x324, 'ck7z')], 'app', _0x56bd(0x9e5, 's66k'));
                  break;
                }
              }
            }
          }
        }
        const _0x3c9745 = _0x260237 && fs[_0x56bd(0x622, '7%8^')](_0x260237);
        let _0xd636a6 = '';
        if (_0x3c9745) {
          try {
            if (_0x46ebbb[_0x56bd(0x783, 'KTbh')] === _0x46ebbb[_0x56bd(0x91e, 'nj1b')]) {
              if (_0x343ee2[_0x56bd(0x3eb, '^sHL')](_0x44179b)) {
                return _0x52b912;
              }
            } else {
              const _0x4c9fc9 = fs.readFileSync(_0x260237, _0x46ebbb[_0x56bd(0x10c, 'bZsS')]);
              const _0x4056ed = JSON[_0x56bd(0x539, 'XKo0')](_0x4c9fc9);
              _0xd636a6 = _0x4056ed.version || '';
              console[_0x56bd(0x29b, 'DbBq')](_0x46ebbb[_0x56bd(0x3dd, 'qOgW')], _0xd636a6);
            }
          } catch (_0x15526b) {
            console.log("[CursorPro] 读取 package.json 失败:", _0x15526b);
          }
        }
        this._postMessage({
          'type': 'cursorRunningPath',
          'path': _0x306e39,
          'packageJsonPath': _0x260237,
          'packageExists': _0x3c9745,
          'cursorVersion': _0xd636a6
        });
      }
    } catch (_0x1da737) {
      this._postMessage({
        'type': _0x46ebbb[_0x56bd(0x7f9, 'K%5^')],
        'path': "获取失败: " + (_0x1da737[_0x56bd(0x81f, 'EJjX')] || _0x1da737),
        'packageJsonPath': '',
        'packageExists': false,
        'cursorVersion': ''
      });
    }
  }
  async [_0x56bd(0x685, 'ACPk')](_0x423ed0) {
    const _0x46be7a = {
      'sEVKj': _0x56bd(0x633, 'bZsS'),
      'kcIfn': _0x56bd(0x862, 'ck7z'),
      'qVzhF': function (_0x1030be, _0x3ef0ad) {
        return _0x1030be === _0x3ef0ad;
      },
      'NTZfw': _0x56bd(0x8a3, 'bZsS'),
      'LnwIK': 'usageCheckResult',
      'yCHku': _0x56bd(0x3a1, ']I&e'),
      'wnjiM': function (_0x5ba0af, _0x167687) {
        return _0x5ba0af === _0x167687;
      },
      'FHkCa': _0x56bd(0x43c, 'ck7z'),
      'Elfrz': function (_0x4cea4c, _0x4a5432) {
        return _0x4cea4c(_0x4a5432);
      },
      'uXXMl': function (_0x4a7089, _0x1a8977) {
        return _0x4a7089(_0x1a8977);
      },
      'rMdug': _0x56bd(0x4b3, 'EJjX'),
      'KaGPw': _0x56bd(0x8eb, 'Ka)i'),
      'DqgLz': function (_0x3614c7, _0x5a56ba) {
        return _0x3614c7 < _0x5a56ba;
      },
      'nMItX': _0x56bd(0x4ab, 'KW&U'),
      'YHdCp': 'MhURV',
      'zYseP': function (_0x315829, _0x209dfd) {
        return _0x315829 !== _0x209dfd;
      },
      'XaQBc': _0x56bd(0x63b, 'nY*('),
      'PYWHP': 'hlMgj',
      'EKVNJ': _0x56bd(0x38a, '4)@$')
    };
    try {
      if ('pydTE' !== _0x46be7a[_0x56bd(0x509, 'LC6r')]) {
        const _0x265715 = this[_0x56bd(0x5bf, 'bjRi')][_0x56bd(0x4b5, 'qOgW')][_0x56bd(0x789, '*&r5')](_0x56bd(0x529, 'H9os'));
        if (!_0x265715) {
          this[_0x56bd(0x2a0, 'xK)8')]({
            'type': _0x46be7a[_0x56bd(0x8cd, 'KW&U')],
            'success': false,
            'error': _0x46be7a.yCHku
          });
          return;
        }
        if (!_0x423ed0) {
          if (_0x46be7a[_0x56bd(0x4d6, 'LC6r')] === _0x46be7a[_0x56bd(0x2aa, '8@jo')]) {
            this[_0x56bd(0x75c, '63N&')]({
              'type': _0x56bd(0x6b1, 's66k'),
              'success': true,
              'needConfirm': false
            });
            return;
          } else {
            _0x4ade37[_0x56bd(0x769, 'qOgW')].showErrorMessage(_0x56bd(0x8c9, 'f)Dq') + _0x39dd6b);
          }
        }
        0x0;
        const _0xe4de04 = client_1[_0x56bd(0x244, 'EJjX')]() + '/api/cursor-accounts/query?email=' + encodeURIComponent(_0x423ed0) + _0x56bd(0x421, 'H9os');
        const _0x4e6615 = await fetch(_0xe4de04);
        const _0xa38d3b = await _0x4e6615.json();
        if (_0xa38d3b[_0x56bd(0x27e, 'gvo7')] && _0xa38d3b.data) {
          if (_0x46be7a.rMdug !== _0x46be7a[_0x56bd(0x6e6, '7%8^')]) {
            const _0x1a9459 = _0xa38d3b[_0x56bd(0x988, '4)@$')][_0x56bd(0x2d8, 'xK)8')] || {};
            const _0x54f98 = parseFloat(_0x1a9459[_0x56bd(0x61a, '8@jo')] || 0x0);
            if (_0x46be7a[_0x56bd(0x3f2, '6hxd')](_0x54f98, 0xa)) {
              if (_0x46be7a[_0x56bd(0x2b8, '$SfD')](_0x46be7a[_0x56bd(0x231, 'iDwM')], _0x46be7a[_0x56bd(0x8cc, 'bZsS')])) {
                _0x36aa30[_0x56bd(0x397, '@HDB')](_0x46be7a[_0x56bd(0x7a0, 'POq&')]);
              } else {
                this[_0x56bd(0x8ee, 'gvo7')]({
                  'type': _0x46be7a[_0x56bd(0x872, 'POq&')],
                  'success': true,
                  'needConfirm': true,
                  'costUSD': _0x54f98.toFixed(0x2),
                  'email': _0x423ed0
                });
              }
            } else {
              this._postMessage({
                'type': _0x46be7a[_0x56bd(0x15e, 'f)Dq')],
                'success': true,
                'needConfirm': false
              });
            }
          } else {
            _0x11939f[_0x56bd(0x133, '7%8^')](_0x5a5124, {
              'recursive': true,
              'force': true
            });
            _0x5829eb++;
          }
        } else if (_0x46be7a[_0x56bd(0x82a, 'iDwM')]('GbpRm', _0x46be7a.XaQBc)) {
          this[_0x56bd(0x1e0, '4)@$')]({
            'type': _0x46be7a[_0x56bd(0x61b, 'EJjX')],
            'success': true,
            'needConfirm': false
          });
        } else {
          _0x34b65e[_0x56bd(0x275, '6eWF')](_0x46be7a[_0x56bd(0x240, '7%WS')]);
        }
      } else {
        if (_0x46be7a[_0x56bd(0x49c, 'qOgW')](_0x12d7bd, _0x4c400f)) {
          _0x2cc937 = _0x34b272;
        }
        _0x370969[_0x2f7e57] = _0x496a29[_0x21aa14];
      }
    } catch (_0xc3e637) {
      if (_0x46be7a[_0x56bd(0x341, 'bZsS')](_0x46be7a[_0x56bd(0x9ec, 'bZsS')], _0x46be7a[_0x56bd(0x941, '0xfR')])) {
        this[_0x56bd(0x1e4, 'akm5')]({
          'type': 'usageCheckResult',
          'success': true,
          'needConfirm': false
        });
      } else {
        _0xd7775[_0x56bd(0x7c7, 'X4(r')](_0x5f24a2.name);
      }
    }
  }
  async ['_handleManualSeamlessSwitch']() {
    const _0x239b7a = {
      'BIFqO': _0x56bd(0x38d, 'T$OD'),
      'BfPph': _0x56bd(0x3de, 'H9os'),
      'loKNV': 'cursorRunningPath',
      'HrshN': function (_0x5b042b, _0x3fb2de) {
        return _0x5b042b + _0x3fb2de;
      },
      'ByJnO': "获取失败: ",
      'yJBIQ': 'exYVj',
      'KvCvh': 'manualSeamlessSwitched',
      'VLaZZ': _0x56bd(0x15d, '^S!O'),
      'tbDpF': function (_0x5a9370, _0x36f88c) {
        return _0x5a9370 !== _0x36f88c;
      },
      'yPImL': 'ingEM',
      'mlftM': function (_0x148013, _0x58777f) {
        return _0x148013 !== _0x58777f;
      },
      'jnyry': _0x56bd(0x32a, '6eWF'),
      'HxZxj': _0x56bd(0x8b6, 'H9os'),
      'sLjSr': _0x56bd(0x99c, 'gvo7')
    };
    try {
      if (_0x239b7a[_0x56bd(0x8cf, 'B)Tn')] === 'exYVj') {
        const _0x204f37 = this[_0x56bd(0x38c, 'ck7z')][_0x56bd(0x635, '0xfR')][_0x56bd(0x327, 'gvo7')](_0x56bd(0x266, 'POq&'));
        if (!_0x204f37) {
          this[_0x56bd(0x11c, 'Ka)i')]({
            'type': _0x239b7a[_0x56bd(0x2ea, '4)@$')],
            'success': false,
            'error': _0x239b7a[_0x56bd(0x110, '$SfD')]
          });
          return;
        }
        0x0;
        const _0x4d82f2 = await client_1[_0x56bd(0x979, '4)@$')](_0x204f37);
        if (_0x4d82f2[_0x56bd(0x474, 'XKo0')]) {
          if (_0x4d82f2[_0x56bd(0x6f3, '7%WS')]) {
            await this[_0x56bd(0x52b, '@HDB')].globalState[_0x56bd(0x5b7, 'k$(5')](_0x56bd(0x44f, 'de]G'), _0x4d82f2[_0x56bd(0x728, 'X4(r')]);
          }
          this[_0x56bd(0x70a, '*&r5')]({
            'type': _0x239b7a[_0x56bd(0x97b, '7%8^')],
            'success': true,
            'email': _0x4d82f2[_0x56bd(0x188, '*&r5')],
            'switchRemaining': _0x4d82f2.switchRemaining
          });
        } else {
          if (_0x239b7a[_0x56bd(0x614, '63N&')](_0x56bd(0x7bb, 'ACPk'), _0x239b7a[_0x56bd(0x67f, 'EJjX')])) {
            const _0x1d8cc3 = _0x4d82f2[_0x56bd(0x960, '@HDB')] || _0x4d82f2[_0x56bd(0x2d7, 'm#S*')] || _0x239b7a[_0x56bd(0x6d1, 'XKo0')];
            this._postMessage({
              'type': _0x239b7a[_0x56bd(0x881, 'DQte')],
              'success': false,
              'error': _0x1d8cc3
            });
          } else {
            _0x48d9fc.warn(_0x239b7a[_0x56bd(0x7f6, 'gvo7')], _0x2600b5);
          }
        }
      } else {
        this[_0x56bd(0x6fb, 'yoC7')]({
          'type': 'cursorRunningPath',
          'path': _0x239b7a[_0x56bd(0x693, '7%WS')](_0x239b7a[_0x56bd(0x753, '$SfD')], _0x2ae8a1[_0x56bd(0x22a, 'B)Tn')] || _0x13ffd1),
          'packageJsonPath': '',
          'packageExists': false,
          'cursorVersion': ''
        });
      }
    } catch (_0x56a0cb) {
      const _0x38f43a = _0x56a0cb?.['message'] || _0x239b7a[_0x56bd(0x6c7, 'KTbh')];
      this._postMessage({
        'type': _0x239b7a[_0x56bd(0x543, '^S!O')],
        'success': false,
        'error': _0x38f43a
      });
    }
  }
  async [_0x56bd(0x26b, 'ck7z')]() {
    const _0x38acb3 = {
      'tbZpe': function (_0x46700e, _0x216ec6) {
        return _0x46700e === _0x216ec6;
      },
      'pcUwb': _0x56bd(0x177, '0xfR'),
      'WPzlq': _0x56bd(0x1d7, 's66k'),
      'drojl': 'seamlessRestored',
      'fTNeN': _0x56bd(0x257, 'EJjX'),
      'TbbUg': _0x56bd(0x5df, 'DbBq'),
      'NwHIv': _0x56bd(0x51e, 'de]G'),
      'jmXuW': _0x56bd(0x62e, 'nY*('),
      'rEDBm': 'utf-8',
      'bpeCI': _0x56bd(0x459, 'H9os'),
      'TFAWN': _0x56bd(0x952, 'n8BU'),
      'VsfTO': function (_0x5469b9, _0x18421f) {
        return _0x5469b9(_0x18421f);
      },
      'LurDi': "wmic process where \"name='Cursor.exe'\" get ExecutablePath /format:list 2>nul",
      'VtoJO': 'hKLIf',
      'KDsFj': function (_0x211f3c, _0x10fb3d) {
        return _0x211f3c === _0x10fb3d;
      },
      'rLwGW': _0x56bd(0x1f2, '8@jo'),
      'ePJAJ': 'ATCVo',
      'WxyNi': _0x56bd(0x4cc, '6eWF'),
      'lqoLD': "[CursorPro] 获取进程路径失败:",
      'oVgdC': _0x56bd(0x70b, 'de]G'),
      'USGWH': "ps aux | grep -i \"[C]ursor\" | head -1 | awk '{print $11}'",
      'gDuYC': _0x56bd(0x7e0, 'nj1b'),
      'bwLpU': _0x56bd(0x72f, 'H9os'),
      'sWGNb': '.config',
      'KbfNq': _0x56bd(0x541, '6eWF'),
      'dALzw': '未检测到运行中的Cursor进程',
      'mOngd': _0x56bd(0x26a, '6eWF'),
      'GdGfE': function (_0x3b944e, _0x2c32f1) {
        return _0x3b944e !== _0x2c32f1;
      },
      'vdFYP': _0x56bd(0x78a, 'ACPk'),
      'UmBJK': 'out',
      'NSGgG': 'workbench',
      'dEWjF': _0x56bd(0x5d9, 'KW&U'),
      'AVeQH': _0x56bd(0x83b, '^sHL'),
      'lEdrt': _0x56bd(0x6d7, '0xfR'),
      'mlBaX': _0x56bd(0x943, '8@jo'),
      'xjVUo': _0x56bd(0x51f, '$SfD'),
      'NFQWc': _0x56bd(0x339, 'ACPk'),
      'IvxYw': _0x56bd(0x6ed, 'hSE]'),
      'UFtEi': _0x56bd(0x8da, 'akm5'),
      'lWQvv': function (_0x273ac0, _0x5f39b) {
        return _0x273ac0 !== _0x5f39b;
      },
      'EYQCn': _0x56bd(0x1ea, 'ACPk'),
      'MiEkS': _0x56bd(0x62a, 'XKo0'),
      'HiXkV': function (_0xd0ebf9, _0x4cfcad) {
        return _0xd0ebf9 || _0x4cfcad;
      },
      'hlIYy': 'ZzJmG',
      'GONGu': '获取失败'
    };
    try {
      const _0x2f8924 = process.platform;
      let _0x46d162 = '';
      let _0x3fe4eb = '';
      if (_0x38acb3[_0x56bd(0x87e, 'XKo0')](_0x2f8924, _0x38acb3.TFAWN)) {
        try {
          const {
            stdout: _0x19a5fc
          } = await _0x38acb3[_0x56bd(0x758, '63N&')](execAsync, _0x38acb3[_0x56bd(0x7f1, 'akm5')]);
          const _0x1f42c2 = _0x19a5fc[_0x56bd(0x768, 'bjRi')](/ExecutablePath=(.+)/);
          if (_0x1f42c2 && _0x1f42c2[0x1]) {
            const _0x4dbd9f = _0x1f42c2[0x1][_0x56bd(0x13f, 'bjRi')]();
            _0x46d162 = path.dirname(_0x4dbd9f);
          }
        } catch (_0x1aba5f) {
          if (_0x38acb3[_0x56bd(0x1bc, 'B)Tn')] !== _0x56bd(0x793, 'Aig!')) {
            if (_0x38acb3[_0x56bd(0x3f7, '4)@$')](_0x763182[_0x56bd(0x72b, '7%WS')], _0x38acb3[_0x56bd(0x741, '6eWF')]) || _0x38acb3[_0x56bd(0x160, 'Aig!')](_0x1d6dfe[_0x56bd(0x1c2, '63N&')], _0x56bd(0x5e2, 'ck7z'))) {
              const _0x5910ed = _0x38acb3[_0x56bd(0x7ab, ']I&e')];
              this[_0x56bd(0x94f, 'Aig!')]({
                'type': _0x38acb3[_0x56bd(0x6f0, 'bjRi')],
                'success': false,
                'error': _0x5910ed,
                'needAdmin': true
              });
              return;
            }
            throw _0x25718f;
          } else {
            try {
              if (_0x38acb3[_0x56bd(0x5e5, 'f)Dq')](_0x38acb3[_0x56bd(0x2c8, 'fu8^')], _0x38acb3[_0x56bd(0x1cd, 'KW&U')])) {
                const {
                  stdout: _0x54d048
                } = await execAsync(_0x56bd(0x7f7, 'nY*('));
                if (_0x54d048[_0x56bd(0x8fb, 'k$(5')]()) {
                  if (_0x38acb3[_0x56bd(0x5cd, 'm#S*')] !== _0x38acb3.WxyNi) {
                    _0x46d162 = path[_0x56bd(0x4af, '4)@$')](_0x54d048[_0x56bd(0x4f5, '8@jo')]());
                  } else {
                    this._postMessage({
                      'type': _0x38acb3[_0x56bd(0x6a9, 'LC6r')],
                      'success': false,
                      'error': '连接服务器失败'
                    });
                  }
                }
              } else {
                _0x4bf468 = _0x1e8026[_0x56bd(0x8bf, '@HDB')](0x0, _0x40d01d) + _0x57a9ae[_0x56bd(0x903, 'EJjX')](_0x17b950 + this.HOSTS_MARKER_END[_0x56bd(0x285, 'ACPk')]);
              }
            } catch (_0x215316) {
              console.warn(_0x38acb3[_0x56bd(0x3cd, 'Aig!')], _0x215316);
            }
          }
        }
        const _0x268111 = process[_0x56bd(0x11b, 'DbBq')][_0x56bd(0x74f, 'KW&U')] || '';
        _0x3fe4eb = path[_0x56bd(0x93c, 'akm5')](_0x268111, _0x38acb3.oVgdC);
      } else {
        if (_0x2f8924 === _0x56bd(0x54d, '7%WS')) {
          try {
            const {
              stdout: _0x4f065d
            } = await _0x38acb3[_0x56bd(0x758, '63N&')](execAsync, _0x38acb3[_0x56bd(0x7cc, 'H9os')]);
            if (_0x4f065d.trim()) {
              const _0x5ebf8f = _0x4f065d[_0x56bd(0x531, '4)@$')]();
              const _0x228acb = _0x5ebf8f.match(/(.+\.app)/);
              if (_0x228acb) {
                _0x46d162 = _0x228acb[0x1];
              } else {
                _0x46d162 = path.dirname(_0x5ebf8f);
              }
            }
          } catch (_0x2b309c) {
            console[_0x56bd(0x7f3, 'nj1b')]("[CursorPro] 获取进程路径失败:", _0x2b309c);
          }
          const _0x6ea467 = process[_0x56bd(0x4bc, 's66k')].HOME || '';
          _0x3fe4eb = path.join(_0x6ea467, 'Library', _0x56bd(0x961, '@HDB'), _0x38acb3.oVgdC);
        } else {
          try {
            const {
              stdout: _0x522bb9
            } = await execAsync(_0x38acb3[_0x56bd(0x1d2, 'bjRi')]);
            if (_0x522bb9[_0x56bd(0x475, 'ACPk')]()) {
              if (_0x38acb3[_0x56bd(0x312, '@HDB')](_0x38acb3[_0x56bd(0x975, 'k$(5')], _0x38acb3[_0x56bd(0x53f, 'f)Dq')])) {
                _0x46d162 = path.dirname(_0x522bb9[_0x56bd(0x273, 'POq&')]());
              } else {
                _0x3596e8 = _0x38acb3[_0x56bd(0x760, 'f)Dq')];
              }
            }
          } catch (_0x22983f) {
            console[_0x56bd(0x203, '7%8^')](_0x38acb3[_0x56bd(0x9aa, '7%WS')], _0x22983f);
          }
          const _0x456726 = process[_0x56bd(0x97c, '63N&')].HOME || '';
          _0x3fe4eb = path[_0x56bd(0x431, '^S!O')](_0x456726, _0x38acb3[_0x56bd(0x7df, 'gvo7')], _0x38acb3[_0x56bd(0x368, 'H9os')]);
        }
      }
      if (!_0x46d162) {
        if (_0x56bd(0x4e5, 'yoC7') === _0x38acb3[_0x56bd(0x3af, '4)@$')]) {
          this[_0x56bd(0x773, 'n8BU')]({
            'type': _0x38acb3[_0x56bd(0x4da, 'n8BU')],
            'success': false,
            'error': _0x38acb3.jmXuW
          });
          return;
        } else {
          _0x46d162 = _0x38acb3[_0x56bd(0x9b3, 'bjRi')];
        }
      }
      let _0x121b7c = '';
      if (_0x46d162 && !_0x46d162.includes(_0x38acb3[_0x56bd(0x41e, '7%WS')])) {
        if (_0x2f8924 === _0x38acb3[_0x56bd(0x661, 'DbBq')]) {
          if (_0x38acb3[_0x56bd(0x6a8, 'fu8^')]('lPhmJ', _0x56bd(0x461, 'qOgW'))) {
            _0x1588d9[_0x56bd(0x83a, 'm#S*')] = _0x11e099[_0x56bd(0x79d, 'T$OD')];
          } else {
            _0x121b7c = path[_0x56bd(0x921, ']I&e')](_0x46d162, 'resources', _0x38acb3.vdFYP, 'out', 'vs', 'workbench', _0x38acb3[_0x56bd(0x7ac, '^sHL')]);
          }
        } else {
          if (_0x2f8924 === _0x56bd(0x2a1, '4)@$')) {
            if (_0x38acb3[_0x56bd(0x3b7, 'KTbh')](_0x56bd(0x43d, 'nY*('), _0x38acb3.AVeQH)) {
              _0x121b7c = path[_0x56bd(0x3a6, 'de]G')](_0x46d162, _0x38acb3.lEdrt, _0x56bd(0x5ee, 'B)Tn'), _0x38acb3.vdFYP, _0x38acb3[_0x56bd(0x4fb, 'H9os')], 'vs', _0x38acb3[_0x56bd(0x8fe, 'EJjX')], 'workbench.desktop.main.js');
            } else {
              _0x37d2a5[_0x56bd(0x636, ']I&e')](_0x3c282c, _0x4bc83c, 'utf-8');
              _0x3e6238 = true;
            }
          } else {
            if (_0x56bd(0x4dc, 'X4(r') === _0x38acb3[_0x56bd(0x9e6, 'KW&U')]) {
              this[_0x56bd(0x8ca, 'X4(r')]({
                'type': _0x56bd(0x3d8, 'k$(5'),
                'success': false,
                'error': _0x38acb3[_0x56bd(0x917, 'iDwM')]
              });
              return;
            } else {
              _0x121b7c = path[_0x56bd(0x530, 'KW&U')](_0x46d162, _0x38acb3[_0x56bd(0x5ae, 'X4(r')], _0x38acb3[_0x56bd(0x916, 'nY*(')], _0x38acb3[_0x56bd(0x7db, 'X4(r')], 'vs', _0x56bd(0x6ca, 'KW&U'), _0x38acb3[_0x56bd(0x5a3, 'bjRi')]);
            }
          }
        }
        if (!fs[_0x56bd(0x388, '@HDB')](_0x121b7c)) {
          if (_0x38acb3[_0x56bd(0x50b, 'iDwM')] !== _0x38acb3[_0x56bd(0x194, 'nY*(')]) {
            _0x121b7c = (await this[_0x56bd(0x787, '^sHL')]()) || _0x38acb3[_0x56bd(0x713, '^S!O')];
          } else {
            const _0x984d92 = _0x84f583[_0x56bd(0x5f4, 'k$(5')](/InstallLocation\s+REG_SZ\s+(.+)/);
            if (_0x984d92 && _0x984d92[0x1] && _0x529792[_0x56bd(0x77d, '4)@$')](_0x984d92[0x1][_0x56bd(0x4d9, 'ck7z')]())) {
              _0x36e7db = _0x984d92[0x1][_0x56bd(0x95c, 'Aig!')]();
            }
          }
        }
      } else {
        if (_0x38acb3[_0x56bd(0x598, '8Ee3')](_0x38acb3[_0x56bd(0x3bb, '^sHL')], _0x56bd(0x4c7, '8Ee3'))) {
          _0x121b7c = (await this[_0x56bd(0x646, '6hxd')]()) || _0x56bd(0x435, '4)@$');
        } else {
          return;
        }
      }
      const _0xbd859c = _0x46d162 && !_0x46d162[_0x56bd(0x798, 'xK)8')](_0x38acb3[_0x56bd(0x5b2, 'm#S*')]) ? fs.existsSync(_0x46d162) : false;
      const _0x354cf1 = _0x3fe4eb ? fs[_0x56bd(0x2cd, '63N&')](_0x3fe4eb) : false;
      this[_0x56bd(0x75c, '63N&')]({
        'type': _0x38acb3[_0x56bd(0x362, 'xK)8')],
        'cursorPath': _0xbd859c ? _0x46d162 : _0x38acb3[_0x56bd(0x6d8, 'xK)8')](_0x46d162, _0x56bd(0x5b1, 'iDwM')),
        'dataPath': _0x354cf1 ? _0x3fe4eb : _0x38acb3[_0x56bd(0x15f, 'qOgW')],
        'workbenchPath': _0x121b7c,
        'platform': _0x2f8924
      });
    } catch (_0x5c0ff6) {
      if (_0x38acb3[_0x56bd(0x6a8, 'fu8^')](_0x38acb3[_0x56bd(0x329, 'fu8^')], _0x56bd(0x6a2, 'k$(5'))) {
        this[_0x56bd(0x184, 'KW&U')]({
          'type': _0x38acb3.MiEkS,
          'cursorPath': _0x38acb3[_0x56bd(0x158, '*&r5')],
          'dataPath': '获取失败',
          'workbenchPath': _0x38acb3[_0x56bd(0x8a5, 'k$(5')],
          'error': _0x5c0ff6[_0x56bd(0x483, 'iDwM')]
        });
      } else {
        this[_0x56bd(0x306, 's66k')]?.['webview'][_0x56bd(0x821, 'fu8^')](_0x1b6a0f);
      }
    }
  }
  async ['_loadAccountsFromDB']() {
    const _0xefdab9 = {
      'oRodx': "[CursorPro] 找到 Cursor 版本:",
      'pvPNp': _0x56bd(0x347, 'iDwM'),
      'wjbSZ': _0x56bd(0x70d, 'LC6r'),
      'YZqNp': _0x56bd(0x1c1, 'XKo0'),
      'dbFLV': _0x56bd(0x405, 'n8BU'),
      'zHYNu': function (_0x3aff44, _0x103caf) {
        return _0x3aff44 && _0x103caf;
      },
      'rTrKG': function (_0x26321b, _0x5690c1) {
        return _0x26321b || _0x5690c1;
      }
    };
    try {
      0x0;
      const _0x3d6d98 = account_1[_0x56bd(0x3d7, 'KW&U')]();
      const {
        dbPath: _0x22a865
      } = _0x3d6d98;
      if (!fs[_0x56bd(0x468, 'K%5^')](_0x22a865)) {
        return 'OIoiO' === _0x56bd(0x748, 'de]G') ? (_0x4484c3.log(_0xefdab9[_0x56bd(0x59b, '8Ee3')], _0xa4ee3f[_0x56bd(0x470, 'iDwM')], _0xefdab9[_0x56bd(0x910, '6eWF')], _0x4c184d), _0x4e0899[_0x56bd(0x261, 'Aig!')]) : [];
      }
      0x0;
      const _0x483399 = await sqlite_1.sqliteGet(_0x22a865, _0xefdab9[_0x56bd(0x73a, '8@jo')]);
      0x0;
      const _0x207002 = await sqlite_1[_0x56bd(0x42b, 'LC6r')](_0x22a865, _0xefdab9[_0x56bd(0x831, '8Ee3')]);
      0x0;
      const _0x1c5151 = await sqlite_1[_0x56bd(0x657, '$SfD')](_0x22a865, _0xefdab9[_0x56bd(0x157, 'yoC7')]);
      if (_0xefdab9[_0x56bd(0x2d0, 'n8BU')](_0x483399, _0x1c5151)) {
        return [{
          'email': _0x1c5151,
          'access_token': _0x483399,
          'refresh_token': _0xefdab9[_0x56bd(0x292, '8Ee3')](_0x207002, _0x483399)
        }];
      }
      return [];
    } catch (_0x7a83d1) {
      console.error(_0x56bd(0x76b, 'm#S*'), _0x7a83d1);
      return [];
    }
  }
  async [_0x56bd(0x90d, 'POq&')]() {
    const _0xd6358c = {
      'vIjoy': 'cursorpro.expireDate',
      'PnvAx': 'cursorpro.switchRemaining',
      'WEZcg': _0x56bd(0x854, '7%8^'),
      'MBSJn': _0x56bd(0x252, 'T$OD'),
      'CNAgf': function (_0x34bf6b, _0x520b84) {
        return _0x34bf6b || _0x520b84;
      },
      'dNuxR': function (_0x289948, _0x9f1b8e) {
        return _0x289948 || _0x9f1b8e;
      },
      'tZHta': function (_0x216c5e, _0x1ac055) {
        return _0x216c5e ?? _0x1ac055;
      }
    };
    const _0x32793c = this[_0x56bd(0x353, ']I&e')][_0x56bd(0x6c3, 'LC6r')][_0x56bd(0x9db, 'k$(5')](_0x56bd(0x752, '@HDB'));
    const _0x59a0ae = this[_0x56bd(0x38c, 'ck7z')].globalState[_0x56bd(0x7cf, 'n8BU')]('cursorpro.expireDate');
    const _0x769674 = this[_0x56bd(0x14a, '8@jo')][_0x56bd(0x5de, '7%8^')][_0x56bd(0x31d, 'K%5^')](_0xd6358c[_0x56bd(0x67c, 'XKo0')]);
    const _0x340d3f = this[_0x56bd(0x370, 'n8BU')][_0x56bd(0x838, 'POq&')][_0x56bd(0x96c, '^sHL')](_0xd6358c[_0x56bd(0x6e0, 'XKo0')]);
    const _0x440ba5 = await this[_0x56bd(0x7f0, 'K%5^')]();
    0x0;
    const _0x5026a1 = client_1[_0x56bd(0x7fc, 'nj1b')]();
    this[_0x56bd(0x245, '7%8^')]({
      'type': _0xd6358c[_0x56bd(0x1dd, '63N&')],
      'isActivated': !!_0x32793c,
      'key': _0xd6358c[_0x56bd(0x547, '6hxd')](_0x32793c, ''),
      'expireDate': _0xd6358c[_0x56bd(0x92b, 'f)Dq')](_0x59a0ae, ''),
      'switchRemaining': _0x769674 ?? 0x0,
      'switchLimit': _0xd6358c[_0x56bd(0x332, 'H9os')](_0x340d3f, 0x64),
      'cursorVersion': _0x440ba5,
      'isOnline': _0x5026a1
    });
  }
  async [_0x56bd(0x1ac, 'DQte')]() {
    const _0x229eab = {
      'rRAOR': function (_0x37df60, _0x561596) {
        return _0x37df60 < _0x561596;
      },
      'dLQJl': function (_0x4e9578, _0x5e18f6) {
        return _0x4e9578 < _0x5e18f6;
      },
      'vBOsW': 'cursorpro.key',
      'NhGlq': function (_0x10685c, _0x39a256) {
        return _0x10685c === _0x39a256;
      },
      'uUjDH': _0x56bd(0x43a, 'H9os'),
      'PglaH': function (_0x2bd5d8, _0x594963) {
        return _0x2bd5d8 !== _0x594963;
      },
      'zwtrx': _0x56bd(0x2ac, 'nY*('),
      'vNOCd': _0x56bd(0x1a8, '7%8^'),
      'vKktT': function (_0x1fc5b2, _0x4589aa, _0x33e731) {
        return _0x1fc5b2(_0x4589aa, _0x33e731);
      },
      'ZQDbk': _0x56bd(0x1ed, 'Ka)i'),
      'FbRju': _0x56bd(0x525, 'Aig!')
    };
    try {
      const _0x38b05a = this[_0x56bd(0x6c0, 'akm5')][_0x56bd(0x945, 'm#S*')][_0x56bd(0x47a, 'nY*(')](_0x229eab[_0x56bd(0x207, 'KW&U')]);
      if (_0x38b05a) {
        if (_0x229eab[_0x56bd(0x9a0, '8@jo')](_0x229eab[_0x56bd(0x690, '8Ee3')], _0x229eab[_0x56bd(0x7a2, 's66k')])) {
          0x0;
          await client_1.verifyKey(_0x38b05a);
        } else {
          const _0x32a796 = _0x54cc32.split('.')[_0x56bd(0x891, '*&r5')](_0x4b9729);
          const _0x2142ee = _0x996c39[_0x56bd(0x46a, '^sHL')]('.')[_0x56bd(0x4e0, 'fu8^')](_0x1e92ec);
          const _0xa1e4e2 = _0x523189[_0x56bd(0x3cb, 'T$OD')](_0x32a796[_0x56bd(0x510, 'XKo0')], _0x2142ee[_0x56bd(0x681, '0xfR')]);
          for (let _0x509f14 = 0x0; _0x229eab[_0x56bd(0x462, '@HDB')](_0x509f14, _0xa1e4e2); _0x509f14++) {
            const _0x563ae1 = _0x32a796[_0x509f14] || 0x0;
            const _0x3a3596 = _0x2142ee[_0x509f14] || 0x0;
            if (_0x563ae1 > _0x3a3596) {
              return 0x1;
            }
            if (_0x229eab[_0x56bd(0x19c, '8@jo')](_0x563ae1, _0x3a3596)) {
              return -0x1;
            }
          }
          return 0x0;
        }
      } else {
        if (_0x229eab[_0x56bd(0x6a7, 'EJjX')](_0x229eab.zwtrx, _0x229eab[_0x56bd(0x9eb, 'nY*(')])) {
          0x0;
          const _0x4f7f5e = client_1[_0x56bd(0x248, 'qOgW')]() + '/api/announcements/latest';
          await _0x229eab[_0x56bd(0x1d1, '^sHL')](fetch, _0x4f7f5e, {
            'method': 'GET'
          });
        } else {
          _0x1df13e = _0x281b54[0x1].trim();
        }
      }
      await this[_0x56bd(0x3ea, '0xfR')]();
      this._postMessage({
        'type': _0x229eab.ZQDbk,
        'online': true
      });
    } catch (_0x46319e) {
      console[_0x56bd(0x7ed, 'POq&')](_0x229eab[_0x56bd(0x4db, '6eWF')], _0x46319e);
      this[_0x56bd(0x79c, 'qOgW')]({
        'type': _0x56bd(0x6ad, 'KW&U'),
        'online': false
      });
    }
  }
  async [_0x56bd(0x5d4, '8Ee3')]() {
    const _0x4f58a2 = {
      'PTNWv': _0x56bd(0x915, 'T$OD'),
      'wswmm': "[CursorPro] 备份恢复成功",
      'QtJiM': "[CursorPro] 备份恢复失败:",
      'Xqkdy': _0x56bd(0x4ed, 'nj1b'),
      'ItKog': _0x56bd(0x52c, 'EJjX'),
      'YSmFZ': function (_0x4ecad8, _0x2cb4f2) {
        return _0x4ecad8 !== _0x2cb4f2;
      },
      'bglvq': 'LtYMm',
      'YXUju': _0x56bd(0x5e1, 'ACPk'),
      'vhvSM': function (_0xf9bd4a, _0x1405ae) {
        return _0xf9bd4a === _0x1405ae;
      },
      'bBFPC': _0x56bd(0x2c4, 'XKo0'),
      'gBPlE': _0x56bd(0x171, 'yoC7'),
      'bUMcY': 'app',
      'CaEkI': _0x56bd(0x386, '4)@$'),
      'CfoeP': _0x56bd(0x4a9, 'LC6r'),
      'pwRyy': _0x56bd(0x5d6, 'xK)8'),
      'TosHP': _0x56bd(0x592, 'fu8^'),
      'LPmpS': _0x56bd(0x1eb, 'nY*('),
      'RYOAX': _0x56bd(0x13c, 'iDwM'),
      'qCStx': _0x56bd(0x4f1, ']I&e'),
      'DEXlW': _0x56bd(0x54d, '7%WS'),
      'VNwrn': '/Applications/Cursor.app/Contents/Resources/app/package.json',
      'fjFtX': _0x56bd(0x4f3, '8@jo'),
      'jHXyq': _0x56bd(0x23b, '8@jo'),
      'WWWWp': _0x56bd(0x2b5, '7%WS'),
      'dUUUB': _0x56bd(0x2ed, 'Ka)i'),
      'JVRzx': 'gPJxP',
      'uGyrr': _0x56bd(0x1bf, '7%WS'),
      'RwEEN': _0x56bd(0x502, 'k$(5'),
      'PKTCU': _0x56bd(0x34d, '8Ee3'),
      'CRnub': _0x56bd(0x182, '8@jo'),
      'ZQMXp': _0x56bd(0x457, 'akm5'),
      'dEEFY': _0x56bd(0x39a, 'akm5'),
      'opjtq': function (_0xd9c47c, _0x4fb652) {
        return _0xd9c47c(_0x4fb652);
      },
      'zEiiQ': _0x56bd(0x6ec, 'fu8^'),
      'GjUNd': "[CursorPro] 使用 VS Code API 获取版本:",
      'qlNII': _0x56bd(0x6cd, 's66k'),
      'GOgfB': _0x56bd(0x463, 'xK)8')
    };
    try {
      const _0x574db7 = process[_0x56bd(0x40a, 'DQte')];
      const _0x369839 = [];
      const _0x4065be = await this._getCursorInstallPath();
      if (_0x4065be) {
        if (_0x4f58a2[_0x56bd(0x6bf, 'POq&')](_0x4f58a2[_0x56bd(0x967, '8@jo')], _0x4f58a2.YXUju)) {
          if (_0x4f58a2[_0x56bd(0x88c, 'LC6r')](_0x574db7, _0x56bd(0x81d, 'Ka)i'))) {
            _0x369839[_0x56bd(0x913, 'Aig!')](path.join(_0x4065be, _0x4f58a2.bBFPC, _0x4f58a2[_0x56bd(0x27d, 'Aig!')], _0x4f58a2[_0x56bd(0x963, '7%WS')], 'package.json'));
          } else {
            _0x369839[_0x56bd(0x5dd, 'DbBq')](path[_0x56bd(0x7ba, 'T$OD')](_0x4065be, _0x56bd(0x54e, '63N&'), 'app', _0x4f58a2.CaEkI));
          }
        } else {
          _0x219157[_0x56bd(0x29c, '4)@$')](_0x1a5f35, {
            'recursive': true,
            'force': true
          });
        }
      }
      if (_0x4f58a2[_0x56bd(0x308, '7%WS')](_0x574db7, _0x56bd(0x668, '63N&'))) {
        const _0x2ff2ee = process[_0x56bd(0x720, '6hxd')].LOCALAPPDATA || '';
        const _0x55e816 = process[_0x56bd(0x477, '4)@$')][_0x56bd(0x625, 'f)Dq')] || '';
        const _0x1f7bd3 = process[_0x56bd(0x97c, '63N&')].ProgramFiles || _0x56bd(0x947, 'xK)8');
        const _0x1defa4 = process[_0x56bd(0x720, '6hxd')]['ProgramFiles(x86)'] || "C:\\Program Files (x86)";
        _0x369839[_0x56bd(0x1a6, '8@jo')](path[_0x56bd(0x288, 's66k')](_0x2ff2ee, _0x4f58a2[_0x56bd(0x13a, '7%8^')], _0x4f58a2[_0x56bd(0x950, 'bjRi')], _0x4f58a2.TosHP, _0x56bd(0x830, 'K%5^'), _0x56bd(0x391, '6hxd')), path[_0x56bd(0x702, 'B)Tn')](_0x2ff2ee, _0x4f58a2.CfoeP, _0x4f58a2[_0x56bd(0x36a, '8@jo')], _0x4f58a2.TosHP, 'app', _0x4f58a2.CaEkI), path[_0x56bd(0x417, 'X4(r')](_0x55e816, _0x4f58a2[_0x56bd(0x74d, '63N&')], _0x4f58a2[_0x56bd(0x425, 'de]G')], _0x4f58a2[_0x56bd(0x92e, 'iDwM')], _0x4f58a2[_0x56bd(0x950, 'bjRi')], _0x4f58a2[_0x56bd(0x86a, '8@jo')], _0x4f58a2[_0x56bd(0x62d, '8@jo')], _0x4f58a2[_0x56bd(0x8e7, 'Ka)i')]), path[_0x56bd(0x6bc, 'f)Dq')](_0x1f7bd3, _0x4f58a2.pwRyy, _0x4f58a2.TosHP, 'app', _0x56bd(0x9a3, 'n8BU')), path[_0x56bd(0x21b, 'yoC7')](_0x1f7bd3, _0x4f58a2[_0x56bd(0x775, 'T$OD')], _0x56bd(0x229, 'Aig!'), _0x4f58a2[_0x56bd(0x963, '7%WS')], _0x4f58a2[_0x56bd(0x691, 'Aig!')]), path[_0x56bd(0x432, 'H9os')](_0x1defa4, _0x56bd(0x8c7, 'Aig!'), _0x4f58a2.TosHP, _0x4f58a2[_0x56bd(0x123, 'n8BU')], _0x4f58a2[_0x56bd(0x1da, 'iDwM')]));
      } else {
        if (_0x574db7 === _0x4f58a2[_0x56bd(0x286, 'bZsS')]) {
          _0x369839.push(_0x4f58a2[_0x56bd(0x40c, '*&r5')]);
        } else {
          const _0x221758 = process.env.HOME || '';
          _0x369839[_0x56bd(0x9ef, 'yoC7')](_0x4f58a2[_0x56bd(0x33e, 'B)Tn')], _0x4f58a2[_0x56bd(0x176, 'ck7z')], _0x56bd(0x8c2, 'ACPk'), path[_0x56bd(0x417, 'X4(r')](_0x221758, _0x4f58a2.WWWWp, 'share', _0x56bd(0x4ef, '^sHL'), _0x4f58a2[_0x56bd(0x595, '@HDB')], 'app', _0x4f58a2.CaEkI));
        }
      }
      for (const _0x339dc7 of _0x369839) {
        if (_0x4f58a2[_0x56bd(0x7c4, 'ACPk')](_0x56bd(0x51c, 'yoC7'), _0x4f58a2[_0x56bd(0x676, 'm#S*')])) {
          return;
        } else {
          try {
            if (_0x4f58a2[_0x56bd(0x819, 'yoC7')] !== _0x56bd(0x19e, '8@jo')) {
              if (fs.existsSync(_0x339dc7)) {
                if (_0x4f58a2[_0x56bd(0x914, 'm#S*')](_0x4f58a2[_0x56bd(0x49f, 'K%5^')], _0x4f58a2.uGyrr)) {
                  _0x14c38f[_0x56bd(0x216, '7%8^')](_0x4f58a2.PTNWv);
                  try {
                    _0x4ace07[_0x56bd(0x41c, 'KTbh')](_0x1facd8, _0xbb494e);
                    _0x2425e0[_0x56bd(0x21d, ']I&e')](_0x4f58a2[_0x56bd(0x7d7, ']I&e')]);
                  } catch (_0x5ee7d8) {
                    _0x18ad92[_0x56bd(0x9ba, 'qOgW')](_0x4f58a2[_0x56bd(0x651, '6eWF')], _0x5ee7d8);
                  }
                } else {
                  const _0x3621b8 = fs[_0x56bd(0x39f, '7%8^')](_0x339dc7, _0x4f58a2[_0x56bd(0x5db, '7%8^')]);
                  const _0x1f565f = JSON[_0x56bd(0x492, 'bZsS')](_0x3621b8);
                  if (_0x1f565f[_0x56bd(0x47c, 'bZsS')]) {
                    if (_0x4f58a2[_0x56bd(0x9e4, '@HDB')](_0x4f58a2[_0x56bd(0x57c, 'nj1b')], _0x4f58a2[_0x56bd(0x78b, 'm#S*')])) {
                      console[_0x56bd(0x6d9, 'm#S*')](_0x56bd(0x904, 'bZsS'), _0x1f565f[_0x56bd(0x23c, 'hSE]')], _0x4f58a2[_0x56bd(0x684, 'Ka)i')], _0x339dc7);
                      return _0x1f565f[_0x56bd(0x73f, ']I&e')];
                    } else {
                      this[_0x56bd(0x2fb, 'nY*(')]({
                        'type': _0x4f58a2[_0x56bd(0x32b, '@HDB')],
                        'cursorPath': _0x56bd(0x6c1, 'KW&U'),
                        'dataPath': _0x4f58a2[_0x56bd(0x956, 'T$OD')],
                        'workbenchPath': _0x4f58a2[_0x56bd(0x526, 'nj1b')],
                        'error': _0x130c99[_0x56bd(0x483, 'iDwM')]
                      });
                    }
                  }
                }
              }
            } else if (_0x1bada8.statSync(_0x1e9bf4)[_0x56bd(0x60b, 'f)Dq')]()) {
              _0x56260a[_0x56bd(0x6bd, '8Ee3')](_0x74e730, {
                'recursive': true,
                'force': true
              });
            } else {
              _0x309108[_0x56bd(0x18f, '@HDB')](_0x19d74d);
            }
          } catch (_0x2af808) {
            console[_0x56bd(0x283, '63N&')](_0x4f58a2[_0x56bd(0x515, 'k$(5')], _0x339dc7, _0x2af808);
          }
        }
      }
      try {
        const _0xe1f1d3 = _0x4f58a2[_0x56bd(0x3e1, '6eWF')](require, _0x4f58a2[_0x56bd(0x356, 'B)Tn')]);
        if (_0xe1f1d3.version) {
          console[_0x56bd(0x794, 'n8BU')]("[CursorPro] 使用 VS Code API 获取版本:", _0xe1f1d3[_0x56bd(0x23a, '@HDB')]);
          return _0xe1f1d3.version;
        }
      } catch (_0x35ddef) {}
      console[_0x56bd(0x216, '7%8^')](_0x4f58a2[_0x56bd(0x15b, 'T$OD')], _0x369839);
      return '未知';
    } catch (_0x311666) {
      console.error(_0x4f58a2[_0x56bd(0x147, 'EJjX')], _0x311666);
      return '未知';
    }
  }
  ['_postMessage'](_0x571950) {
    this[_0x56bd(0x878, 'POq&')]?.[_0x56bd(0x486, 'n8BU')][_0x56bd(0x29f, 'XKo0')](_0x571950);
  }
  [_0x56bd(0x2de, 'ACPk')]() {
    const _0x323fa5 = {
      'YiwNs': 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
      'FVmpm': function (_0x262e06, _0x566f52) {
        return _0x262e06 < _0x566f52;
      },
      'XVmEg': function (_0x892c66, _0x1cd020) {
        return _0x892c66 === _0x1cd020;
      },
      'gFjzo': 'UMZcN',
      'RjXnp': function (_0xd635ba, _0x484045) {
        return _0xd635ba * _0x484045;
      }
    };
    let _0x14dd44 = '';
    const _0x44199d = _0x323fa5[_0x56bd(0x837, ']I&e')];
    for (let _0x5ece7c = 0x0; _0x323fa5[_0x56bd(0x58f, 'hSE]')](_0x5ece7c, 0x20); _0x5ece7c++) {
      if (_0x323fa5[_0x56bd(0x53d, 'XKo0')](_0x323fa5[_0x56bd(0x190, 'fu8^')], _0x56bd(0x28d, 'XKo0'))) {
        _0x14dd44 += _0x44199d[_0x56bd(0x54b, 'ck7z')](Math[_0x56bd(0x6a0, 'T$OD')](Math[_0x56bd(0x7b2, '0xfR')]() * _0x44199d[_0x56bd(0x9ce, 'm#S*')]));
      } else if (_0x56e4a8[_0x56bd(0x97d, 'T$OD')](_0x2ed688)) {
        _0x2ab3fb[_0x56bd(0x601, 'de]G')](_0x258880, {
          'recursive': true,
          'force': true
        });
        _0x3de72a++;
        _0x1d3455[_0x56bd(0x6d9, 'm#S*')](_0x56bd(0x82f, 'DbBq') + _0x202472);
      }
    }
    return _0x14dd44;
  }
  [_0x56bd(0x9b5, '6hxd')](_0x504c5f) {
    const _0x1d6267 = this[_0x56bd(0x65f, 'X4(r')]();
    return "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'none'; style-src 'unsafe-inline'; script-src 'nonce-" + _0x1d6267 + _0x56bd(0x4cb, 'gvo7') + _0x504c5f[_0x56bd(0x7c9, '*&r5')] + _0x56bd(0x333, '63N&') + _0x504c5f[_0x56bd(0x6b4, 'ck7z')] + _0x56bd(0x79e, 'm#S*') + _0x1d6267 + _0x56bd(0x485, '^sHL') + _0x1d6267 + _0x56bd(0x198, 'B)Tn');
  }
}
exports[_0x56bd(0x8fa, '7%WS')] = CursorProViewProvider;
CursorProViewProvider[_0x56bd(0x52d, '*&r5')] = '0.4.5';