Загрузка данных


'use strict';
const odf943efb_P = odf943efb_b;
(function(a, b) {
    const O = odf943efb_b
      , c = a();
    while (!![]) {
        try {
            const d = -parseInt(O(0x87c)) / 0x1 + -parseInt(O(0x6fc)) / 0x2 + parseInt(O(0x665)) / 0x3 + parseInt(O(0x1cf)) / 0x4 + -parseInt(O(0x4c7)) / 0x5 * (parseInt(O(0x1e7)) / 0x6) + parseInt(O(0x458)) / 0x7 + -parseInt(O(0x530)) / 0x8 * (-parseInt(O(0x846)) / 0x9);
            if (d === b)
                break;
            else
                c['push'](c['shift']());
        } catch (e) {
            c['push'](c['shift']());
        }
    }
}(odf943efb_a, 0x802ea));
const {invoke, convertFileSrc} = window[odf943efb_P(0x8ce)]['core']
  , PAD_ICON_KEYS = ['note', odf943efb_P(0x278), odf943efb_P(0x42b), odf943efb_P(0x1ae), 'heart', odf943efb_P(0x66f), 'bomb', odf943efb_P(0x25e), odf943efb_P(0x7a9), 'speaker', odf943efb_P(0x3ad), odf943efb_P(0x5d4)]
  , DEFAULT_FUNPAY_URL = odf943efb_P(0x68c);
let purchaseUrl = DEFAULT_FUNPAY_URL
  , socialLinks = {
    'youtube': 'https://www.youtube.com/@vsdever',
    'telegram': 'https://t.me/vsdever',
    'discord': '',
    'funpay': DEFAULT_FUNPAY_URL
}
  , appInfo = {
    'version': odf943efb_P(0x767),
    'released': odf943efb_P(0x4d2)
};
const __abKeyPrimary = odf943efb_P(0x519)
  , __abKeyFallback = odf943efb_P(0x6cd)
  , OP_WS_MAX_BUFFERED = 0x2ee0;
let pendingUpdateVersion = ''
  , remoteAppConfig = null;
const LINE_ICONS = {
    'logo': odf943efb_P(0x191),
    'bolt': '<path\x20d=\x22M4\x2014a1\x201\x200\x200\x201-.78-1.63l9.9-10.2a.5.5\x200\x200\x201\x20.86.46l-1.92\x206.02A1\x201\x200\x200\x200\x2013\x2010h7a1\x201\x200\x200\x201\x20.78\x201.63l-9.9\x2010.2a.5.5\x200\x200\x201-.86-.46l1.92-6.02A1\x201\x200\x200\x200\x2011\x2014z\x22/>',
    'gear': '<path\x20d=\x22M12.22\x202h-.44a2\x202\x200\x200\x200-2\x202v.18a2\x202\x200\x200\x201-1\x201.73l-.43.25a2\x202\x200\x200\x201-2\x200l-.15-.08a2\x202\x200\x200\x200-2.73.73l-.22.38a2\x202\x200\x200\x200\x20.73\x202.73l.15.1a2\x202\x200\x200\x201\x201\x201.72v.51a2\x202\x200\x200\x201-1\x201.74l-.15.09a2\x202\x200\x200\x200-.73\x202.73l.22.38a2\x202\x200\x200\x200\x202.73.73l.15-.08a2\x202\x200\x200\x201\x202\x200l.43.25a2\x202\x200\x200\x201\x201\x201.73V20a2\x202\x200\x200\x200\x202\x202h.44a2\x202\x200\x200\x200\x202-2v-.18a2\x202\x200\x200\x201\x201-1.73l.43-.25a2\x202\x200\x200\x201\x202\x200l.15.08a2\x202\x200\x200\x200\x202.73-.73l.22-.39a2\x202\x200\x200\x200-.73-2.73l-.15-.08a2\x202\x200\x200\x201-1-1.74v-.5a2\x202\x200\x200\x201\x201-1.74l.15-.09a2\x202\x200\x200\x200\x20.73-2.73l-.22-.38a2\x202\x200\x200\x200-2.73-.73l-.15.08a2\x202\x200\x200\x201-2\x200l-.43-.25a2\x202\x200\x200\x201-1-1.73V4a2\x202\x200\x200\x200-2-2z\x22/><circle\x20cx=\x2212\x22\x20cy=\x2212\x22\x20r=\x223\x22/>',
    'speaker': odf943efb_P(0x3af),
    'quest': '<circle\x20cx=\x2212\x22\x20cy=\x2212\x22\x20r=\x229\x22/><path\x20d=\x22M9.1\x209a3\x203\x200\x200\x201\x205.8\x201c0\x202-3\x203-3\x203\x22/><path\x20d=\x22M12\x2017h.01\x22/>',
    'mic': '<path\x20d=\x22M12\x202a3\x203\x200\x200\x200-3\x203v7a3\x203\x200\x200\x200\x206\x200V5a3\x203\x200\x200\x200-3-3z\x22/><path\x20d=\x22M19\x2010v2a7\x207\x200\x200\x201-14\x200v-2\x22/><path\x20d=\x22M12\x2019v3\x22/>',
    'sliders': odf943efb_P(0x4b7),
    'bars': '<path\x20d=\x22M4\x2020V11M9\x2020V4M14\x2020V14M19\x2020V8\x22/>',
    'plug': '<path\x20d=\x22M12\x2022v-5M9\x208V2M15\x208V2\x22/><path\x20d=\x22M18\x208v5a4\x204\x200\x200\x201-4\x204h-4a4\x204\x200\x200\x201-4-4V8z\x22/>',
    'plus': odf943efb_P(0x111),
    'note': odf943efb_P(0x7ac),
    'star': '<path\x20d=\x22m12\x203\x202.6\x205.3\x205.8.8-4.2\x204.1\x201\x205.8L12\x2016.3\x206.8\x2019l1-5.8-4.2-4.1\x205.8-.8z\x22/>',
    'fire': odf943efb_P(0x3ca),
    'skull': odf943efb_P(0x1bf),
    'drum': '<circle\x20cx=\x2212\x22\x20cy=\x2212\x22\x20r=\x229\x22/><path\x20d=\x22m5.5\x207\x2013\x2010M18.5\x207l-13\x2010\x22/>',
    'bomb': '<circle\x20cx=\x2210\x22\x20cy=\x2214.5\x22\x20r=\x227.5\x22/><path\x20d=\x22m15.2\x209.2\x203-3\x22/><path\x20d=\x22m18\x206\x20.8-1.8\x201.8.8-.8\x201.8z\x22/>',
    'ghost': odf943efb_P(0x6b0),
    'coin': odf943efb_P(0x4aa),
    'heart': '<path\x20d=\x22M19\x2014c1.5-1.5\x203-3.3\x203-5.5A4.5\x204.5\x200\x200\x200\x2012\x205.5\x204.5\x204.5\x200\x200\x200\x202\x208.5c0\x202.2\x201.5\x204\x203\x205.5l7\x207z\x22/>',
    'clip': odf943efb_P(0x1e8),
    'pin': odf943efb_P(0x6a2),
    'shield': odf943efb_P(0x684),
    'rec': odf943efb_P(0x1b8),
    'gift': odf943efb_P(0x5f3),
    'wave': '<path\x20d=\x22M2\x2012h2M6\x2012h1M9\x2012h1M14\x2012h1M17\x2012h1M20\x2012h2\x22/><path\x20d=\x22M5\x207v10M8\x204v16M11\x209v6M16\x206v12M19\x209v6\x22/>',
    'chat': '<path\x20d=\x22M21\x2011.5a8\x208\x200\x200\x201-11.5\x207.2L4\x2020l1.3-5.5A8\x208\x200\x201\x201\x2021\x2011.5z\x22/><path\x20d=\x22M8.5\x2011.5h.01M12\x2011.5h.01M15.5\x2011.5h.01\x22/>',
    'users': odf943efb_P(0x889),
    'search': odf943efb_P(0x1c3),
    'refresh': odf943efb_P(0xf1),
    'close': odf943efb_P(0x8fb),
    'chevron': odf943efb_P(0x852),
    'key': '<circle\x20cx=\x227.5\x22\x20cy=\x2215.5\x22\x20r=\x224.5\x22/><path\x20d=\x22m10.7\x2012.3\x208.8-8.8M15\x208l3\x203M17\x206l2\x202\x22/>',
    'send': '<path\x20d=\x22M22\x202\x2011\x2013\x22/><path\x20d=\x22M22\x202\x2015\x2022l-4-9-9-4z\x22/>',
    'link': odf943efb_P(0xf6),
    'copy': odf943efb_P(0x36c),
    'trophy': odf943efb_P(0x632),
    'check': odf943efb_P(0x5c7),
    'store': odf943efb_P(0x266),
    'down': odf943efb_P(0x130),
    'play': '<path\x20d=\x22M8\x205v14l11-7z\x22/>',
    'pause': '<path\x20d=\x22M10\x204v16\x22/><path\x20d=\x22M14\x204v16\x22/>',
    'stop': odf943efb_P(0x6b1),
    'repeat': '<path\x20d=\x22m17\x202\x204\x204-4\x204\x22/><path\x20d=\x22M3\x2011V9a3\x203\x200\x200\x201\x203-3h15\x22/><path\x20d=\x22m7\x2022-4-4\x204-4\x22/><path\x20d=\x22M21\x2013v2a3\x203\x200\x200\x201-3\x203H3\x22/>',
    'key': odf943efb_P(0x3c4)
};
function lineSvg(a) {
    const Q = odf943efb_P;
    return '<svg\x20class=\x22ln\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22\x20xmlns=\x22http://www.w3.org/2000/svg\x22>' + LINE_ICONS[a] + Q(0x352);
}
function iconSvg(a) {
    return lineSvg(LINE_ICONS[a] ? a : 'note');
}
function injectIcons(a=document) {
    const R = odf943efb_P;
    a[R(0xb6)](R(0x60d))[R(0x78d)](b => {
        const S = R;
        b[S(0x870)] = iconSvg(b[S(0x2af)][S(0x60b)]);
    }
    );
}
const state = {
    'micGranted': !0x1,
    'micInputs': [],
    'sounds': [],
    'paneCount': 0x2,
    'paneSources': [],
    'folder': null
}
  , $ = (a, b=document) => b[odf943efb_P(0x577)](a)
  , $$ = (a, b=document) => [...b[odf943efb_P(0xb6)](a)]
  , APPEARANCE_PRESETS = {
    'classic': ['#6c8cff', odf943efb_P(0x733)],
    'mint': [odf943efb_P(0x43f), odf943efb_P(0x222)],
    'sunset': ['#f06276', odf943efb_P(0x8da)],
    'amber': [odf943efb_P(0x210), odf943efb_P(0x16a)],
    'mono': [odf943efb_P(0x57c), odf943efb_P(0x320)]
};
function cachedVipAppearance() {
    const T = odf943efb_P;
    return Math[T(0x29b)](0x1, Math[T(0x75f)](0x4, +(localStorage[T(0x6b6)](T(0x7f7)) || 0x2))) > 0x2;
}
function safeAppearanceColor(a, b=odf943efb_P(0x207)) {
    const U = odf943efb_P;
    return a = String(a || '')[U(0x407)](),
    /^#[0-9a-f]{6}$/i[U(0x7d0)](a) ? a[U(0x860)]() : b;
}
function relLum([a,c,d]) {
    const V = odf943efb_P
      , e = h => (h /= 0xff,
    h <= 0.03928 ? h / 12.92 : Math[V(0x571)]((h + 0.055) / 1.055, 2.4));
    return 0.2126 * e(a) + 0.7152 * e(c) + 0.0722 * e(d);
}
function contrastRatio(c, d) {
    const W = odf943efb_P
      , e = relLum(c)
      , f = relLum(d);
    return (Math[W(0x29b)](e, f) + 0.05) / (Math[W(0x75f)](e, f) + 0.05);
}
function hexToRgb(a) {
    const X = odf943efb_P
      , b = String(a || '')[X(0x8c0)]('#', '');
    return [0x0, 0x2, 0x4]['map'](c => parseInt(b[X(0x801)](c, c + 0x2), 0x10) || 0x0);
}
const rgbToHex = a => '#' + a[odf943efb_P(0x50d)](b => Math[odf943efb_P(0x29b)](0x0, Math[odf943efb_P(0x75f)](0xff, Math['round'](b)))[odf943efb_P(0x6dd)](0x10)[odf943efb_P(0x208)](0x2, '0'))[odf943efb_P(0x29a)]('');
function accentTextOn(a, b) {
    const Y = odf943efb_P
      , d = hexToRgb(b)
      , e = hexToRgb(a)
      , f = relLum(d) < 0.5 ? [0xff, 0xff, 0xff] : [0x0, 0x0, 0x0];
    for (let g = 0x0; g <= 0.72; g += 0.06) {
        const h = e[Y(0x50d)]( (j, l) => j + (f[l] - j) * g);
        if (contrastRatio(h, d) >= 4.5)
            return rgbToHex(h);
    }
    return rgbToHex(f);
}
function accentInkPair(a) {
    const Z = odf943efb_P
      , b = hexToRgb(a)
      , c = [0xff, 0xff, 0xff]
      , d = [0xc, 0xe, 0x16];
    for (let e = 0x0; e <= 0.36; e += 0.04) {
        const f = b[Z(0x50d)](g => g * (0x1 - e));
        if (contrastRatio(c, f) >= 4.5)
            return {
                'solid': rgbToHex(f),
                'ink': Z(0x1b1)
            };
    }
    return {
        'solid': a,
        'ink': contrastRatio(d, b) >= 4.5 ? Z(0x460) : Z(0x13c)
    };
}
function applyAppearance() {
    const a0 = odf943efb_P
      , a = document[a0(0x41c)];
    a['dataset'][a0(0x45d)] = localStorage[a0(0x6b6)]('theme') || a0(0x4c5);
    const b = cachedVipAppearance()
      , c = b && localStorage[a0(0x6b6)](a0(0x254)) || a0(0x354)
      , d = APPEARANCE_PRESETS[c] || [safeAppearanceColor(localStorage[a0(0x6b6)](a0(0x87d))), safeAppearanceColor(localStorage[a0(0x6b6)]('appearance_accent2'), '#c4b5fd')];
    a[a0(0x2af)]['appearance'] = c,
    a[a0(0x84b)][a0(0xdd)](a0(0x461), d[0x0]),
    a[a0(0x84b)][a0(0xdd)](a0(0x38b), a0(0x4d9) + d[0x0] + a0(0x5da)),
    a[a0(0x84b)][a0(0xdd)](a0(0xdb), d[0x1]);
    const e = accentInkPair(d[0x0]);
    a[a0(0x84b)]['setProperty'](a0(0x4f8), e[a0(0x409)]),
    a[a0(0x84b)]['setProperty'](a0(0x560), e[a0(0x394)]),
    a[a0(0x84b)][a0(0xdd)](a0(0x6a8), accentTextOn(d[0x0], a['dataset'][a0(0x45d)] === a0(0x2a6) ? a0(0x1b1) : a0(0x46c)));
    const f = b && localStorage['getItem'](a0(0x192)) || '';
    a[a0(0x84b)][a0(0xdd)](a0(0x7d9), f ? 'url(' + JSON[a0(0x53f)](convertFileSrc(f)) + ')' : a0(0x902));
    const g = Math[a0(0x29b)](0xa, Math[a0(0x75f)](0x64, +(localStorage['getItem'](a0(0x3dc)) || 0x30)))
      , h = Math[a0(0x29b)](0x0, Math[a0(0x75f)](0x14, +(localStorage[a0(0x6b6)](a0(0xe1)) || 0x0)));
    a['style'][a0(0xdd)](a0(0x20e), f ? String(g / 0x64) : '0'),
    a[a0(0x84b)][a0(0xdd)](a0(0x8ea), h + 'px');
}
function setTheme(a) {
    const a1 = odf943efb_P;
    localStorage['setItem'](a1(0x45d), a),
    document[a1(0x41c)][a1(0x2af)][a1(0x45d)] = a,
    invoke('set_theme', {
        'theme': a
    })[a1(0x375)]( () => {}
    );
}
applyAppearance();
let toastT;
function toast(a, b) {
    const a2 = odf943efb_P
      , c = $(a2(0x3cd));
    c[a2(0x333)] = a,
    c[a2(0x4a9)] = a2(0x46e) + (b ? a2(0x7d4) : ''),
    clearTimeout(toastT),
    toastT = setTimeout( () => c[a2(0x4a9)] = 'toast', 0xa28);
}
let recTimerInt = null
  , recTimerBase = 0x0
  , recTimerStart = 0x0;
function fmtDur(a) {
    const a3 = odf943efb_P;
    a = Math[a3(0x29b)](0x0, Math[a3(0x8a9)](a));
    const b = Math[a3(0x8a9)](a / 0x3c)
      , c = a % 0x3c;
    return (b < 0xa ? '0' : '') + b + ':' + (c < 0xa ? '0' : '') + c;
}
function fmtSize(a) {
    const a4 = odf943efb_P;
    return a >= 0x100000 ? (a / 0x100000)[a4(0x590)](0x1) + '\x20\u041C\u0411' : a >= 0x400 ? Math['round'](a / 0x400) + a4(0x3bc) : a + '\x20\u0411';
}
function startRecTimer(a) {
    const a5 = odf943efb_P;
    recTimerBase = a || 0x0,
    recTimerStart = performance[a5(0x2d3)]();
    const b = $(a5(0x4e3));
    if (!b)
        return;
    b[a5(0x3ef)] = !0x1;
    const c = () => {
        const a6 = a5;
        b[a6(0x333)] = fmtDur(recTimerBase + (performance[a6(0x2d3)]() - recTimerStart) / 0x3e8);
    }
    ;
    c(),
    clearInterval(recTimerInt),
    recTimerInt = setInterval(c, 0x1f4);
}
function stopRecTimer() {
    const a7 = odf943efb_P;
    clearInterval(recTimerInt),
    recTimerInt = null;
    const a = $(a7(0x4e3));
    a && (a[a7(0x3ef)] = !0x0,
    a[a7(0x333)] = '00:00');
}
async function loadRecList() {
    const a8 = odf943efb_P
      , a = $(a8(0x429));
    if (!a)
        return;
    let b = [];
    try {
        b = await invoke(a8(0x83d));
    } catch {
        b = [];
    }
    const c = $('#recEmpty');
    c && (c[a8(0x84b)][a8(0x390)] = b[a8(0x64f)] ? 'none' : ''),
    a[a8(0x870)] = b[a8(0x50d)](d => {
        const a9 = a8
          , e = d[a9(0x68e)] === a9(0x4b1) ? a9(0x493) : 'note'
          , f = d['kind'] === a9(0x4b1) ? a9(0x4b5) + fmtSize(d[a9(0x1ee)]) : fmtDur(d['secs']) + a9(0x3b5) + fmtSize(d['bytes']);
        return a9(0x1a4) + escapeHtml(d[a9(0x7ee)]) + a9(0x371) + e + a9(0x7aa) + escapeHtml(d['name']) + a9(0x413) + f + a9(0x61f);
    }
    )[a8(0x29a)](''),
    injectIcons(a),
    a['querySelectorAll'](a8(0x39f))[a8(0x78d)](d => {
        const aa = a8;
        d[aa(0x882)] = f => {
            const ab = aa;
            f[ab(0x766)][ab(0x43e)]('.rec-del') || invoke(ab(0x546), {
                'target': d[ab(0x2af)][ab(0x7ee)]
            })[ab(0x375)](g => toast('' + g, !0x0));
        }
        ;
        const e = d['querySelector']('.rec-del');
        e && (e[aa(0x882)] = async f => {
            const ac = aa;
            if (f[ac(0x6fa)](),
            e[ac(0x2af)][ac(0x285)] !== '1') {
                e['dataset'][ac(0x285)] = '1',
                e[ac(0x333)] = '\u0442\u043E\u0447\u043D\u043E?',
                e[ac(0x474)][ac(0x19d)](ac(0x285)),
                setTimeout( () => {
                    const ad = ac;
                    e['isConnected'] && (e[ad(0x2af)][ad(0x285)] = '0',
                    e[ad(0x333)] = '\u2715',
                    e['classList']['remove'](ad(0x285)));
                }
                , 0x9c4);
                return;
            }
            try {
                await invoke('delete_recording', {
                    'path': d[ac(0x2af)]['path']
                }),
                toast('\u0423\u0434\u0430\u043B\u0435\u043D\u043E');
            } catch (g) {
                toast('' + g, !0x0);
            }
            loadRecList();
        }
        );
    }
    );
}
const VID = {
    'on': !0x1,
    'mode': '',
    'display': null,
    'video': null,
    'canvas': null,
    'ac': null,
    'dest': null,
    'audioMixer': null,
    'ws': null,
    'raf': 0x0,
    'tInt': 0x0,
    'tStart': 0x0,
    'bg': null,
    'bgKey': '',
    'venc': null,
    'aenc': null,
    'muxer': null,
    'frameCount': 0x0,
    't0': 0x0,
    'audioReader': null,
    'audioPump': null,
    'finalizing': !0x1,
    'replay': null,
    'viaWorker': !0x1,
    'worker': null,
    'workerPending': null
}
  , vidFmt = () => localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x100)) || '9:16'
  , vidReplayMins = () => Math[odf943efb_P(0x29b)](0x1, Math['min'](0xa, +(localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x168)) || '3') || 0x3))
  , vidDims = () => vidFmt() === odf943efb_P(0x310) ? [0x500, 0x2d0] : [0x2d0, 0x500]
  , VID_FPS = 0x18
  , VID_BITRATE = 0x2625a0;
function readAccentColors() {
    const ae = odf943efb_P
      , a = getComputedStyle(document[ae(0x41c)]);
    return {
        'a1': (a[ae(0x664)](ae(0x461)) || ae(0x63d))[ae(0x407)](),
        'a2': (a[ae(0x664)]('--accent2') || ae(0x727))[ae(0x407)]()
    };
}
function vidWorkerSupported() {
    return typeof Worker < 'u' && typeof OffscreenCanvas < 'u' && typeof MediaStreamTrackProcessor < 'u' && typeof VideoEncoder < 'u' && typeof AudioEncoder < 'u';
}
function vidWorkerRequest(a) {
    return new Promise( (b, c) => {
        const af = odf943efb_b;
        if (!VID[af(0x2a4)]) {
            c(new Error(af(0x857)));
            return;
        }
        const d = setTimeout( () => {
            const ag = af;
            VID[ag(0xc3)] && (VID[ag(0xc3)] = null,
            c(new Error(ag(0x5af))));
        }
        , 0x1d4c0);
        VID[af(0xc3)] = {
            'resolve': e => {
                clearTimeout(d),
                b(e);
            }
            ,
            'reject': f => {
                clearTimeout(d),
                c(f);
            }
        },
        VID[af(0x2a4)][af(0x395)](a);
    }
    );
}
function onVidWorkerMessage(a) {
    const ah = odf943efb_P;
    a = a || {};
    const b = VID[ah(0xc3)];
    a['t'] === 'clip' ? (VID[ah(0xc3)] = null,
    b && b[ah(0x7fe)]({
        'buffer': a[ah(0x838)]
    })) : a['t'] === ah(0x42c) || a['t'] === 'stopped' ? (VID[ah(0xc3)] = null,
    b && b[ah(0x7fe)]({
        'buffer': null
    })) : a['t'] === ah(0x725) && (VID[ah(0xc3)] = null,
    b && b[ah(0x660)](new Error(a['msg'] || ah(0x376))));
}
function vidCastEase(a) {
    const ai = odf943efb_P;
    try {
        invoke(ai(0x69a), {
            'on': !!a
        })[ai(0x375)]( () => {}
        );
    } catch {}
}
async function startVideoWorker(a, b) {
    const aj = odf943efb_P;
    VID[aj(0x317)] = a,
    VID[aj(0x455)] = !0x0,
    VID[aj(0x390)] = b;
    const [c,d] = vidDims();
    VID[aj(0x2f8)] = 0x0,
    VID['t0'] = performance[aj(0x2d3)]();
    let f;
    try {
        f = new (window['AudioContext'] || window['webkitAudioContext'])({
            'sampleRate': 0xbb80
        });
    } catch {
        f = new (window['AudioContext'] || window[(aj(0x35a))])();
    }
    const g = f[aj(0x2e6)]
      , h = f[aj(0x7ed)]();
    try {
        h[aj(0xc1)] = 0x1,
        h[aj(0x678)] = aj(0xf2);
    } catch {}
    VID['ac'] = f,
    VID[aj(0x72a)] = h,
    VID['on'] = !0x0;
    try {
        await vidConnectRelayAudio(f, h);
        const i = b['getVideoTracks']()[0x0]
          , j = h[aj(0x4fb)][aj(0x11d)]()[0x0];
        if (!i || !j)
            throw new Error(aj(0x5d0));
        const k = new MediaStreamTrackProcessor({
            'track': i
        })[aj(0x405)]
          , l = new MediaStreamTrackProcessor({
            'track': j
        })['readable']
          , m = new Worker(aj(0x158));
        VID['worker'] = m,
        VID['workerPending'] = null;
        const n = new Promise( (o, p) => {
            const ak = aj
              , q = setTimeout( () => p(new Error('\u0432\u043E\u0440\u043A\u0435\u0440\x20\u043D\u0435\x20\u043E\u0442\u0432\u0435\u0442\u0438\u043B')), 0x1f40);
            m[ak(0x637)] = r => {
                const al = ak
                  , s = r[al(0x108)] || {};
                s['t'] === al(0x58e) ? (clearTimeout(q),
                o()) : s['t'] === 'error' && (clearTimeout(q),
                p(new Error(s[al(0x5bb)] || '\u043E\u0448\u0438\u0431\u043A\u0430\x20\u0432\u043E\u0440\u043A\u0435\u0440\u0430')));
            }
            ,
            m[ak(0x4df)] = r => {
                const am = ak;
                clearTimeout(q),
                p(new Error(r && r[am(0x835)] || am(0xe4)));
            }
            ;
        }
        );
        return m[aj(0x395)]({
            't': aj(0x27d),
            'mode': a,
            'W': c,
            'H': d,
            'fps': VID_FPS,
            'bitrate': VID_BITRATE,
            'audioRate': g,
            'colors': readAccentColors(),
            'nick': (localStorage['getItem']('lic_nick') || '')[aj(0x407)](),
            'replayMs': a === aj(0x1fa) ? vidReplayMins() * 0x3c * 0x3e8 : 0x0,
            'video': k,
            'audio': l
        }, [k, l]),
        await n,
        m[aj(0x637)] = o => onVidWorkerMessage(o[aj(0x108)]),
        m['onerror'] = o => {}
        ,
        vidCastEase(!0x0),
        vidTimerStart(),
        !0x0;
    } catch (o) {
        VID['on'] = !0x1,
        VID[aj(0x455)] = !0x1;
        try {
            VID[aj(0x2a4)] && VID[aj(0x2a4)][aj(0x8c1)]();
        } catch {}
        VID[aj(0x2a4)] = null,
        VID[aj(0xc3)] = null;
        try {
            VID['ws'] && VID['ws'][aj(0x416)]();
        } catch {}
        try {
            VID[aj(0x5a0)] && VID[aj(0x5a0)][aj(0x507)]();
        } catch {}
        try {
            VID['ac'] && VID['ac'][aj(0x416)]();
        } catch {}
        throw VID['ac'] = null,
        VID[aj(0x72a)] = null,
        VID[aj(0x5a0)] = null,
        VID[aj(0x317)] = '',
        o;
    }
}
async function stopVideoWorker(a) {
    const an = odf943efb_P;
    try {
        const {buffer: b} = await vidWorkerRequest({
            't': an(0x359)
        });
        if (a === an(0x493)) {
            if (b && b[an(0x221)]) {
                const c = await vidUpload(new Blob([b],{
                    'type': an(0x6b8)
                }), an(0x7b5));
                toast(an(0x854) + c[an(0x7d3)](/[\\/]/)['pop']()),
                loadRecList();
            } else
                toast(an(0x589), !0x0);
        }
    } catch (d) {
        toast('\u041D\u0435\x20\u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u043E\u0441\u044C:\x20' + d, !0x0);
    }
    vidCastEase(!0x1);
    try {
        VID[an(0x2a4)] && VID['worker'][an(0x8c1)]();
    } catch {}
    VID[an(0x2a4)] = null,
    VID[an(0xc3)] = null;
    try {
        VID[an(0x390)] && VID[an(0x390)][an(0x57d)]()[an(0x78d)](f => f['stop']());
    } catch {}
    try {
        VID['ws'] && VID['ws'][an(0x416)]();
    } catch {}
    try {
        VID[an(0x5a0)] && VID[an(0x5a0)]['disconnect']();
    } catch {}
    try {
        VID['ac'] && VID['ac'][an(0x416)]();
    } catch {}
    VID['video'] = null,
    VID[an(0x390)] = null,
    VID[an(0x5a0)] = null,
    VID[an(0x1fa)] = null,
    VID['ac'] = null,
    VID[an(0x72a)] = null,
    VID[an(0x455)] = !0x1;
}
async function saveReplayWorker() {
    const ao = odf943efb_P;
    if (!VID['on'] || VID[ao(0x317)] !== 'replay')
        return toast('\u0411\u0443\u0444\u0435\u0440\x20\u043D\u0435\x20\u0432\u043A\u043B\u044E\u0447\u0451\u043D', !0x0);
    if (!VID['finalizing']) {
        VID[ao(0x85c)] = !0x0;
        try {
            const {buffer: a} = await vidWorkerRequest({
                't': 'save'
            });
            if (!a || !a[ao(0x221)])
                throw new Error(ao(0x1a5));
            const b = await vidUpload(new Blob([a],{
                'type': 'video/mp4'
            }), 'mp4');
            toast(ao(0x8d8) + b[ao(0x7d3)](/[\\/]/)[ao(0x760)]()),
            loadRecList();
        } catch (c) {
            toast(ao(0x7cb) + c, !0x0);
        } finally {
            VID['finalizing'] = !0x1;
        }
    }
}
async function startVideoClip() {
    const ap = odf943efb_P;
    return startVideoDispatch(ap(0x493));
}
async function startVideoReplay() {
    const aq = odf943efb_P;
    return startVideoDispatch(aq(0x1fa));
}
async function startVideoDispatch(a) {
    const ar = odf943efb_P;
    if (VID['on'])
        return toast(ar(0x6a3), !0x0),
        !0x1;
    if (typeof VideoEncoder > 'u' || typeof AudioEncoder > 'u' || !window[ar(0x1af)])
        return toast(ar(0x340), !0x0),
        !0x1;
    if (a === ar(0x1fa) && (typeof EncodedVideoChunk > 'u' || typeof EncodedAudioChunk > 'u'))
        return toast('\u0411\u0443\u0444\u0435\u0440\x20\u0432\u0438\u0434\u0435\u043E\x20\u043D\u0435\x20\u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F', !0x0),
        !0x1;
    let b;
    try {
        b = await navigator[ar(0x4e1)]['getDisplayMedia']({
            'video': {
                'frameRate': VID_FPS
            },
            'audio': !0x1
        });
    } catch {
        return toast(ar(0x74a), !0x0),
        !0x1;
    }
    const c = b[ar(0x2ab)]()[0x0];
    if (c && c[ar(0x5e7)]('ended', () => {
        VID['on'] && (stopVideoClip(),
        reflectVideoControls());
    }
    ),
    vidWorkerSupported())
        try {
            return await startVideoWorker(a, b);
        } catch {
            try {
                b[ar(0x57d)]()[ar(0x78d)](d => d[ar(0x359)]());
            } catch {}
            return toast(ar(0x7d1), !0x0),
            !0x1;
        }
    return a === ar(0x493) ? startVideoClipLegacy(b) : startVideoReplayLegacy(b);
}
function odf943efb_a() {
    const lj = ['0jRqVTc0ingd0yhrGTcW0ydqTDc7lcdqV9c+0l/rGnc+0lhrG9c5inc10yNrKsdrGncW0lCU', '0khqUTga0yVrGTgm', 'i3vWzgf0zujHCG', '0j3qTsdrG9c00ldqU9c+0yhrJcdqV9c10ydqTDc00ldrGTgmingb0l7qVTcX0yNqTDc90lJqTsdrGDc+0lhqTDgb0lxqTnc90lJqUTgdia', 'zgL2', '0jpqVTgc0l7qSTc+', 'ChjLDMvUDerLzMf1Bhq', 'BxbLzW', '0j/rGnc+0llqTDga0yWG0lRqVTc0oIdqTnc+0lVqTTc90l4G0lhrI9gc0yWGmJaG0yhqUnc80llqVTc70l7qSG', 'i3jLy292zxjcDg4', 'inc00l0Upc9IpJXZCgfUpG', 'y2HHDc10B29SCW', 'rgLZy29Yza', 'C2v0x2jYB3DZzxjFCM90yxrL', 'l2fKBwLUl2nVzgvZ', 'cIaGica8zgL2ignSyxnZpsjHDs1TywLUiJ4kicaGicaGphnWyw4Gy2XHC3m9iMf1lwf2ysi', 'C2j2Awv3', '0jlrI9gf0l7qTcdqSTgl0l/qVTc70l3qTDc9', 'y3jLyxrLtwvKAwftDhjLyw1ezxn0Aw5HDgLVBG', 'Cgf0Aa', 'i3vZywDLqMXVy2S', 'pc9KAxy+pgrPDIbJBgfZCZ0Iy20TDgv4Dci+', '0l7rGTc60lVqVTc90lxqVDc+', 'i3rLEhrtzwfYy2HcB3rO', 'zMf2', 'iJ4kicaGicaGicaGidXVChrPB24GDMfSDwu9iM5LA3rViJ5UzwT0BZWVB3b0Aw9UpGOGicaGicaGicaGpg9WDgLVBIb2ywX1zt0IC3zVAsi+0yhqSTc+0lG8l29WDgLVBJ4kicaGicaGicaGidXVChrPB24GDMfSDwu9iMrPC2nVCMqIpKrPC2nVCMq8l29WDgLVBJ4kicaGicaGicaGidXVChrPB24GDMfSDwu9iMn1C3rVBsi+0yhqSTc+0lKGvvjm4OcMpc9VChrPB24+cIaGicaGicaGpc9ZzwXLy3q+', '0jRqVTgi0lxqU9gr0lOG0llrGnc10lZqTDc90l3qVIdqT9cW0lZqVTga0l7qTTc10l0', 'zMLSBfn0EwXL', 'BgLJx21HEf9Wyw5LCW', 'i2rVy2TdBg9Zzq', 'yM9UDxm', '0kpqTncW0lVqUngc0yWG0l3qSncX0l7rGcdcQW', 'y29KzvjLDM9Rzq', 'i2fWCgvHCMfUy2vcz0jSDxi', '0jdqSTgc0l7qV9c+0lJrGDc6incY0yVqUTc70y7rH9c10l0', 'CMvZB2X2zq', 'Cg9PBNrLCNvW', 'inc40lCG', 'C2XPy2u', '0khqU9c40yJqUTc+0lWG0lZqVDc+0lpqVIdqV9c+0l/rI9gc0l7qUI4G0j/qVTc/0ydqVTcX0ypqUsdqV9c+0lFqTTc1', '0jZqUnc60ydqVTge0l7qVsdqSTgl0lRqU9go0yFqTDc9incYifDPBMrVD3mUincE0ylqUTga0yVqSTcW0y4G0l3qSngb0ylrGnc+0lNqUTc44OcM', '0j7rH9c10ydqTDc00yW6ia', 'incYincY0lxrGTc60lu8l3nTywXSpG', 'y29WEvrV', 'BMTFC2vZCZ0', 'lIdqODc70lxqTngd0y7rIDcW0y8G0l3qSncZ0ydqSnc00laG4Ocuinc30laG', 'CgXHEwLUzW', 'i3jLy09Wzw5eAxi', 'yNv0Dg9Uw2rHDgeTChjLDMLLD10', 'zxHWAxjLCW', 'ChjVzW', 'i3rLEhrfBw9QAuj0BG', '0khqTDc50yFqSngbincY0lRqU9go0yFrKDc9incX0yprHnc10yaG0llqUnc00lxqVG', 'zgf0yvrYyw5ZzMvY', 'BgLJx3rVA2vU', 'y2XPCgjVyxjK', 'C2iTz3jPza', '0jZqUnc60ydqVTge0l7qVsa', 'y3rYBeTLEq', 'w2rHDgeTDgv4Dc1KAxnJyxjKxq', '0j/qSnc/0lRqUcdqV9ga0l7qV9gd0yNqTDc90ySG4Ocuinc00lVrJYdqV9cW0l/qUTc4inc90ldqTTc80lGGWQVqN9c+0ltqUTc70y7rH9c40ylrJcdqV9cW0l/qUTgdWRS', 'i2rVy2TmB2C', 'i2fKBuj1BgTdyxrLz29YEq', 'BgLTAxrnCW', 'y2XPzw50wa', 'CMvSzwfZzwq', 'pgrPDIbJBgfZCZ0Iy20TC291BMqIpJXIDxr0B24Gy2XHC3m9iMnTlxnVDw5KlxbSyxKIihr5Cgu9iMj1DhrVBIiGDgL0Bgu9iTcF0ydqVTgb0lVrG9gi0ldrGTgmiJ48C3bHBIbKyxrHlwLJB249iNbSyxKIpG', 'CMvJzwL2zwq', '0j3qTsdrG9c00ldqU9c+0yhrJcdrG9gb0ylqSnc90l7qSTc40ylrJdOG', 'pc9IpJXZCgfUignSyxnZpsjWAY1IywrNzsi+', 'z2v0uMvHzgvY', '0jhrG9ge0lxrGcdqVTgb0ylqSnc90l7qSTc70lxqVq', 'i3nIrMLSDgvYtw9Kzq', 'iZaWma', '0ylqVTc70yZqUTc+incX0ypqUTcY0ySSingg0lJrHnga0ySG0lGGxW', 'C29JAwfSx2XPBMTZ', 'ywrKzwq', '0jlrI9c50ylqUa', 'CgfJA1bYAwnLtw9Kzq', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVTgc0l/rGncW0llqUngc0yW6ia', 'y2HLDNjVBG', '0jlqVTc50ltqUcdqUnc70lGG0yhqVTc30ltqSnc5incW0lRqUTcW0ypqVDgclG', 'inc80l7qVDc10yi8l3n0CM9UzZ4kicaGidWVyNv0Dg9UpG', '0ylrGnc10lhrG9c10ylrGDgpinc60ldqV9gh0la', 'i3rYzwvdB2XSyxbZzq', 'pc9ZCgfUpJWVzgL2pGOGicaGica8zgL2ignSyxnZpsj0zxH0lwnVBNzLCNnHDgLVBI1IDwjIBguIpG', 'i3bHzefKza', 'CgfKt3jKzxi6', 'y29Kzq', 'i3rYzwvnB2rHBa', 'BwvZC2fNzq', 'i29UyM9HCMq', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qODc10ydqUnc5inc/0l7qUTcWinc90lxrGJWVC3bHBJ4', 'yNvMzMvY', 'Bwv0yuTLEq', 'CgvUzgLUz19YzxzPC2LVBG', '0jtqU9gpingh0ldrGTcWinc80l7qTTc90l4G0l7rGTc/0ydqSncY0lVrJ9gc0yWG0lFqSTgd0lOG0ltqVIaZincC0je', 'CMvHza', 'BgLZDf9YzwnVCMrPBMDZ', 'igXVy2TLza', 'i3zVAwnLC0vTChr5', 'i211DgvmAxn0', 'l2fKBwLUl3n0yxrZ', 'y2XPzw50x2LK', 'WRS6ia', 'y3jLyxrLr2fPBG', '0k3rGTc+0yiG0lVqVTcZ0lJqVsdrG9c20luG0lFqSnc90y/rGG', 'mJDSr2H0AvK', 'CMvJzw50', 'C3rHDhm', 'iIbKyxrHlxrYzwuTAwq9iG', 'DM9Sx3bLzxi', 'C3r5Bgu', 'lNzJlxjLBMfTzq', 'C2f2zv92AwrLBW', 'i2zVBgrLCLbPy2S', '0jRqU9c40l8G0l/qUngi0lxrGTgb0y8Sinc+0lhrIDcW0lNrGDgpinc60ldqUIdqVTcX0yVrH9c90l4', 'yMfSyw5Jzq', 'uMvMr3jHCgG', 'phbHDgGGzd0IBtKGmtGGnI02ltyTnIiVpG', 'CgvUzgLUzW', '0jRqU9c40l8G0yhqVTgf0ydqSnc90zhqVtOG', 'DMfYkc0TywnJzw50kq', 'CgvUzgLUz19SAw5RCW', '0l3qTDgcincY0l7rGnc60lxrGncW', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVDcW0yFqSngc0yWG0l/qVTc40yhqUJOG', 'y3jLyxrLrhLUyw1Py3ndB21WCMvZC29Y', '0j/qSnga0l7qU9gminc00l7qU9c20lxqVsdrGDc+0ltqTDga0lBqSngc0yWG0lZqUnc90lJqVngd0lWGmtaG0yhqUnc80llqVTc70l7qSG', '0jdrG9c00lJqVTge0ldqUDc70ySG0l3qTsdqVDcW0lNqTnc10l3rIW', 'zMLUywXPEMLUzW', 'lMLJB24TB3b0', '0jRqVTc0incY0l7rGDgb0ylqSnc90l7qSTc70lxqVDc40y8G0yhqUTc+0l/qUnga0l7qSTcW0l0', 'pc9ZCgfUpJXZCgfUignSyxnZpsj0BI1ZDgf0DxnLCYi+', 'Dg9mB3DLCKnHC2u', 'phnWyw4Gy2XHC3m9iNnYyY1UDw0IpG', 'i3nIsgLKzgvUvg9Nz2XL', '0ktqVTc9ingd0lhrGncW0l0', 'i2fWCgvHCMfUy2vcz0jSDxjmywjLBa', 'Dgv4Df9JAgf0x2fJDgLVBG', 'D3ndB25Uzwn0Aw5N', '0j/qSnc/0lRqSdOG', 'DgfIsw5KzxG', 'zxzLCNK', 'i2HLCM8', 'yxbWBhK', 'CM9Szq', 'yxzHDgfYs2LUzhm', 'jMnVDw50pq', 'ue9tva', 'Aw5Uzxjive1m', 'CMvHzhLtDgf0zq', 'C2v0x3rLEhrFD29YA3nWywnLx3DPzgu', 'i2nOyxrtzw5K', 'y3jLyxrLqMLXDwfKrMLSDgvY', '0j/qTDga0lxqVnc10yNqTDc90l4G0liGWQS', '0j7rGTc/0ydqSncY0lJrGTgmia', 'CMvJB3zLCL9Wyw5LCW', 'zhjHD0LTywDL', 'i3rOzw1Lu2vNigj1DhrVBG', 'i2vJzwzMyq', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qL9cW0y/qSTc+0lOG0l/qVTc60laG0l3qTDgcpc9ZCgfUpG', 'ntiYnZyZzKHUugP2', 'yxbWzwfYyw5Jzv9Hy2nLBNq', 'CMvSyxLtCG', 'imk3ifzjuca', 'i3nIrMLSzq', '0l3qScdqVnc+0ltqTDga0ldrHTc40lG', 'B25JBgLJAW', 'lMfKBs1ZDgf0', 'ywjZ', 'lMnOyxqTyM94oM5VDcHBzgf0ys1WCML2yxrLxsKG', 'i3nPzgvmB2DVDxq', 'l2nOyxqVC291BMq/Dg9Rzw49', '0jdqUTc60ldrG9c90yiG0yhqVTc30ltqSnc9', 'phbHDgGGzd0Itte2idiXDI0YytqGncaWidaGmc00ltrinMe0idqGmcaWidaTnca0DJiIlZ48y2LYy2XLign4psi5iIbJEt0InYiGCJ0InciVpJXWyxrOigq9iK0YmIaYmxyTmMe0idqGmcaWidaTmY0ZlJG3tte2idmUmtnHnca0idaGmcaXidaGnY43nsiVpG', 'z2v0x2jYB3DZzxjFCM90yxrL', 'i3bLzxjdAgf0vgL0Bgu', 'CgfJA19ZywXLCW', '0l/rGnc40lpqU9cW0yJrKDc9', 'inc00l4G', 'pgrPDIbJBgfZCZ0ICNqTBMvLzci+', 'BgLZDf9ZB3vUzhm', '0j7qV9ga0l7rGsdqT9cW0l/rG9gj0lxqVq', 'y2XLyxjszwn0', 'zgvSzxrLx3zVAwnL', 'C2vLBG', 'l3DHBgXLDc9IDxKTDMLW', 'y2vUDgvY', 'lMnOyxqTCg9SBc1JyxjK', 'AgLZDg9YEv9LBMq', 'CxvLDwvK', '0jlrGDc10lW', '0j/rGnc+0lhqVDgl0lKG0ltqVTgb0ylrG9c/', '0jFqSngp0llqUTc4', 'C3rHCNruAw1L', '0j/rGnc+0llqTDga0lJrGTgminc/0l7qTnc/0lJrGDc60ym', 'i2fKBunVzgvdB3vUDa', 'CMvWBgfJzvDPDgG', 'oIdrGDcY0l7qUsdqSnc00ydqTDgbiokaLcdqVTc60l3qVIdqV9c10ydqTDc30ldqV9gd0yhqUTcW0lxrGTgb0y8', 'zMLSBfjLy3q', 'i3DHDMvAB29Tt3v0', 'WRSG0l/qVTc00ldrGnc+0lOG0lFqScaXnsbtDgfYCZ8G0jhrG9c00lxrGIdrGDc/0lJrGDcW0l3qVIdqTnc+ia', 'phnWyw4Gy2XHC3m9iNbRlwjHzgDLiJ48C3bHBIbJBgfZCZ0IAw5SAw5LlwLJBYiGzgf0ys1Py29UpsjMAxjLiJ48l3nWyw4+ia', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVTgc0lRrGngl0ylrJcdqT9cY0ypqUG', 'zMLUywXPEMu', 'lNbHzc1WCM9N', 'zMXVB3i', 'CgvUzgLUz191CgrHDgu', '0j3qTsdrG9c00ldqU9c+0yhrJcdqSnc60ylqUncY0lJrGnc+0llqSngc0yWG0lRqVTc0', 'zw50CMLLCW', 'phnWyw4Gy2XHC3m9iNbRlwjHzgDLiJ4', '0j3qTDgcinc00l7rGDgc0ypqV9cWinc6inc80lJqUTga0l7rHnc+0l3rGW', '0l/qTDga0lxqV9c+0ltqUTc70y7rH9cW0y7rGDgm4OcM', 'i2jYB3DZzxjsB3rHDgvcDg4', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qNDc1ingd0ltqSnc70l7rGDgminc30ldqS9ga0ypqT9c40ylrJdOG', 'i3DHDMvtzwW', 'l2nOyxqVC291BMqV', '0l3qSncX0l7rGdOG', 'i2nOyxrtB3vUzenSB3nL', 'Ahr0Chm6lY9UzwT0BY5Tzs9HDwrPB2nOyxqJlW', 'i3DHBgXLDfrYyw5ZzMvYuMvJzwL2zq', 'BMfTzq', 'i3DHDMvAB29Tsw4', 'CgfUzxm', 'i3bLzxjdAgf0q2XVC2u', '0j3qTsdrG9c00ldqU9c+0yhrJcdrG9gb0ylqSnc90l7qSTc40ylrJa', 'vKLqinc00l4G', 'yxjPys1LEhbHBMrLza', 'iJ48l3nWyw4+phnWyw4Gy2XHC3m9iNbWCI1Uyw1LiJ4', 'CMvWBgfJzq', 'DgvYBwLUyxrL', 'iIbKyxrHlwDYB3vWlw5HBwu9iG', 'D2fSBgv0x2zYB3PLBG', 'i3bHy2TxywXSzxrwAxa', 'CMvSzwfZzq', '0lFqSTgd0lRqSa', 'B3bLBG', '0j3qUnc6inc+0lhqVDc+0llqU9gr0l06iea', 'C3DPDgnOAw5N', 'BwvUDs1VCgvU', 'lNbHzc5Tzw51lw9Wzw4', 'zgvMyxvSDa', 'inc80l7qVDc10yi8l2i+pc9KAxy+pgrPDIbJBgfZCZ0ID2fSBgv0lxzPCc1SAxn0iJ4', 'x19uqvvssv9F', '0l7qSDc90l7qSTc70y/rJIdqVTgc0l/qTDgh0ldrGTc+0lOG0lGG0ldqUTc60ldrG9c90ylIGky', 'i2fKBufUBLrLEhq', 'lNzPzxDBzgf0ys12Awv3psjHzg1PBIjD', 'C2vS', '0jFqSnc20lZqUcdqUTc90l7qV9c60ymG0lGG0lpqVTcY0l7rGnc4iq', 'w2rHDgeTCgfKlwfJDgLVBJ0NBw92zs1MB2XKzxiNxq', 'txv4zxi', 'C3r1y2S', 'z3vLC3q', '0jZqVTc80lxqVDgcingb0l7rHDga0ldqVDgr0l06ia', 'inc+0yhrGTcW0lVqVTgb0yWG', 'i2y2yJa0yG', 'C2jtzwW', 'C3rHDgu', 'i2zVBgrLCKDYB3vWCW', 'Cg9SBa', 'i3jLy292zxjdB2rL', 'Cg9YDa', 'i3rYzwvtzwfYy2G', 'Ew91DhvIzv9ZDwjZy3jPyMvY', 'inc80lJqVq', 'BgLJq29KzuLUChv0', 'phnTywXSpTc+0l/qU9cW0yi8l3nTywXSpJWVC3bHBJ48C3bHBJ4', '0jFqSngp0llqUTcWinc+0ylqUTc70l7qVDc10l3qSa', 'Ahr0Chm6lY8', '0jlqVTc30llrGncW0yNqSnc50yhrJYdqV9c+0yhqU9c1idXIpG', 'i3bLzxjqB3bdBg9Zzq', 'ls1HChaTyMCTyMX1CG', '0j/qVTc60ypqV9c60laG0l3qTsdrG9c00ldqU9cW0yhrJdOG', 'y2HHDf9Syxn0x3jLywrF', '0yhqSTgp0lFrJca', 'y3jLyxrLza', '0j3qTsdrG9c00ldqU9c+0yhrJcdqSTgl0lhrGncW0ylrJcdrHnc+0l06ia', '0khqVTcX0lxrGDc10ltqVDc40lOG', 'ChjVEhLdBgvHCG', 'zgfPBhLFBwf4', 'pgj1DhrVBIbJBgfZCZ0IDg4TDg9Nz2XLiIbKyxrHlxrYzwuTDg9Nz2XLpsi', 'pc9IpJXZCgfUignSyxnZpsj2y2f0y2GTC3vIiJ7qV9c+0yhqU9c10ltqVDc40luGmZaG0yhqTDc6iokgKJWVC3bHBJ4', 'i2f1DgHVCKnHBMnLBa', 'C29JAwfS', 'CMvZAxPL', 'CgfJAY1WCMv2Awv3lxjVDW', 'i2fKBunVzgvlAw5K', '0jdqSTgc0l7qV9c+0lJrGDc6incY0lRqU9go0yFrKDc9', 'phbHDgGGzd0Itte4idyGnIaXoe02idzSmtiGmtiIlZ4', 'w2rHDgeTzxH0xq', 'oMfJDgL2zq', 'i2fWCgvHCMfUy2vcz09WywnPDhLmywjLBa', 'Bg9VCa', 'i3jLy292zxj5q29WEq', 'yxv0Ag9Ytw9KywW', 'BM9Uzq', 'CgfJAY1JyxjK', 'w2rHDgeTChjVEhKTAw5WDxrD', 'y3jLyxrL', 'pc9VChrPB24+', 'CNuTuLu', 'i3rHBgTuyxjNzxrZ', '0j3qTDgcingb0llrJ9c30lGUincF0lxrGnc10l/qVTc00lRqU9go0yFqSnc10lZrGDgp4OcM', 'C2jnB25PDg9YvM9SDw1L', '0j3qTsdrG9c00ldqU9c+0yhrJcdqV9c+0ltqUTc70y7rH9c40ylrJngb0y8G0lOG0yhqTDga0llqTDga0ym', 'y29PBNm', 'x19LBNrwzxjPzMLLza', 'i3zVAwnLC0nHDgnO', 'DhmT', '0j7rGTc60lVqVTc90lxqVDc+', '0kdqTDc00ldqUTgc0lJrGnc+0llqSngc0yWG0l3qSncX0l7rGcdqT9cY0ypqUTc+0li', 'DMLWrgf5CW', 'BwLUx3zLCNnPB24', 'Ew91DhvIzv9WCM9TB19ZzwvU', 'iJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0ICgfUzs1WCM94Es1Hy3rPB25ZiJ4kicaGicaGicaGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGy2XHC3m9iMj0BIbWCMLTyxj5ihnTiIbKyxrHlxbYB3H5lxnHDMu9iG', 'i3rYzwvsB290CW', 'i2fJy3rtDgf0Dxm', 'i3LVDxr1yMvpCgvU', 'CMv3yxjKC19QC29U', '0khqSTc+0lG', 'zJmYlxbSyw5HCG', 'yMXVy2TLza', '0j3qTsdrG9c00ldqU9c+0yhrJcdqV9c10ydqTDc60lVrJTgh0lJrGTgminga0lxqTTc40lW6ia', 'zgv2AwnLy2HHBMDL', '0l/qTDga0lxqTncW0l3qVIdrGDc+0lhqTDgb0lxqTnc90lJqUTgdia', 'i3bHy2TxywXSzxruCMfUC2zLCG', 'i3bLzxjdAgf0tg9N', 'phnWyw4Gy2XHC3m9iNbRlwjHzgDLihDHCM4IpTc40lFqVnc10l3qTDc90lJrJYdqVDcWinc80l7qTnc10ydqSngg0lJqUdWVC3bHBJ4', 'C3bLywTLCG', 'z3jPza', '0jdqSTgc0l7qV9c10ydqTDgb0yVqU9c60laG', '0j3qTsdrG9c00ldqU9c+0yhrJcdrGncW0yhrGDgh0lJrGTcW0ylrJcdqV9c+0lVrG9gh0ldrGTc10lVqTDc5', 'zgLZywjSzwq', 'inc/0l7qU9gd0yFqUnc7ia', '0jRrG9c/0lJrGTgmifzjua', 'w2rHDgeTChjVEhKTC2f2zv0Sw2rHDgeTChjVEhKTy2XLyxjD', 'C2v0ug9PBNrLCKnHChr1CMu', 'i3nIuMvZDwX0q291BNq', 'zw5Kzwq', 'i2f2yxrHCLnLBNnPDgL2Axr5', 'l2f1DgGVCMvNAxn0zxi', 'AxnFCMvJB3jKAw5N', 'uKLgrG', 'CMvJx2vSyxbZzwrFC2vJCW', 'pc9ZCgfUpJWVyNv0Dg9UpG', 'i2nOyxrcB3G', 'zNjLzq', '0jtqVTgb0ylrG9c/inc10yhrGTgm', 'B3zLCNnHBxbSzq', 'Dg9Rzw4', 'CxvLCNLtzwXLy3rVCKfSBa', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLia', '0khqVTcX0lJrGncW0y4G0lGG0l7rGTc/0ydqSncY0lVrJ9goinc40lFqVnc10l3qTDc90lJrJ+kaPG', 'BM9Kzxm', 'CgfKvM9SoG', 'DgvSzwDYyw0', 'i3jLzKXPBMS', 'i2rPCMvJDfjLz2LZDgvYqNrU', 'y29SB3jty29Wzq', 'D2vIBq', 'ic8G', 'y2HHBM5LBenVDw50', 'lMnTlxnVDw5KlwnHBgW', 'D29YA2vYugvUzgLUzW', '0khrGDgl0lVqUTcWingb0lRqVTc/0lJrGnc+0llqSnc90la', 'y2fWDgnOyq', 'yMvNAw5qyxrO', 'zhvYyxrPB24', 'A2v5Dxa', 'C2f2zq', 'D2HLzwW', 'DMvUyW', 'C21VB3rO', 'inc30ldqSTc10ydrInc40lSG0ydqSnc30lpqVTcY0l7rGa', '0lBqTngr0lWG0yhqVTcX0lxrGDc10ltqVDc40lRqSokaPG', 'w2rHDgeTyNv5lwfJy2vZC10Sicn0CMLHBej1EsWGi2XPy0j1Eq', 'DgHLAxjZ', 'i2zMogfHnG', 'x3bHy2TjDgvT', 'i3DHBgXLDfrYyw5ZzMvYrxjYB3i', 'pc9ZCgfUpJXKAxyGy2XHC3m9iNbRlwjHzgDLCYi+phnWyw4Gy2XHC3m9iNbRlwjHzgDLiJ4', '0j7qTnc+0lhrGnc10l3qVG', 'l3bHy2TZl2j1Eq', 'inc30llrG9c60l7qSG', 'C2XVDff1zxvL', 'BwLJrgvUB2LZzq', '0jdqSTcW0ylqSnga0ySG0llrI9c60lS', 'ls1Hy2nLBNqY', 'CMvHBhrPBwu', 'C2v0uhjVCgvYDhK', 'i2f1DgHVCLn1yM1PDa', '0jpqVTc70l7rGq', 'i3bLzxjdAgf0', 'yxbWzwfYyw5Jzv9Iz19IBhvY', 'zMvLx3bLCMnLBNq', 'iJ4kicaGicaGpgrPDIbJBgfZCZ0IDgv4Dc1YzwXHEs1YB3v0zsi+cIaGicaGicaGpgi+', '0yhqSDc+0lKG0llqVTga0lRqTDga0la', 'CgfUzvnVDxjJzxm', 'i21Py1nLBgvJDa', 'zgvJB2rL', 'ingb0lxqUG', '0khqVTgf0ydqSnc90lxqVDc+oIa', 'Bw92zvrV', '0j/qVTc00lRqU9go0yFqTDc90lJqTEkaPG', 'phnWyw4Gy2XHC3m9iNbRlwjHzgDLihDHCM4IpTc40lFqVnc10l3qTDc90lJrJYdqTTc00yprGIdqV9ga0l7qSTc10ydqUTc4pc9ZCgfUpG', 'zgLZCgf0y2HfDMvUDa', 'A2v5', '0jtqVTgb0ylrG9c/0l3qVIdrGsbwsvaG0liGvgvSzwDYyw0T0lhqVTgc0lu', 'ChjLC2vUy2u', 'phbHDgGGzd0IttiWidz2nwGTnsiVpJXWyxrOigq9iK00ide4DI01AduIlZ48Cgf0AcbKpsjnmtGUnsa5qtCGnYaWidaGmca2lJiGnI4YtdqGoe01lJuGmtvbnYa3idaGmcaWide3lJGGmtCUoeWYmcaXnIiVpG', 'zxHWBgLJAxq', 'C2v0', 'zM9SzgvYlwDYB3vWlwjVzhK', 'i2fKBufUBK9MzG', 'phbHDgGGzd0ItteWideZytuGnsaWidaGmca3idbSmY0ZytuGnsaWidaGmc03ltDSlteGmsiVpJXWyxrOigq9iK0XncaXmwe1iduGmcaWidaTnYaWBc0ZidnHnsa1idaGmcaWidCGn2WXlteIlZ4', 'ywrKq29SB3jtDg9W', 'ywn0AxzLrwXLBwvUDa', '8j+uKIa', 'zxn0Aw1HDgvKx3n0yxjZ', 'zMf2B3jPDgu', '0klrIYdqT9cW0lhqU9c+0lRqUnga0l7qSTcW0l0', 'iIb0AxrSzt0I0j7rHTc10l3qUngc0yWIpJXZCgfUignSyxnZpsjIDg4TAwnViIbKyxrHlwLJB249iMzPCMuIpJWVC3bHBJ48C3bHBIbJBgfZCZ0ICgSTBgLRzs1JB3vUDci+', 'ywvUyW', 'Ahr0Chm6lY90lM1Ll3nOyxjLl3vYBd91CMW9', 'DMLKrM10', 'C2v0x3rLEhrFy2HHDf9TB2rL', 'imk3ingh0lxrGnc10lCG', 'l2nHCa', 'z2v0x3bHBMvFy291BNq', 'y3r4', 'i3rYzwvfEhbHBMq', 'i3bHy2TqCMLJzuHPBNq', 'zgf0yq', 'ChjPy2u', 'C2vHCMnOlxrPBwvVDxq', '0j3qSncX0l7rGcdrG9c00ldqU9gr0l0', '4PAGincH0ylqVTc/incX0yprHnc10ya', 'CMvHzf9HDwrPB19MAwXL', '0jlqVTc50ylqUa', 'Bw9KywWTyMC', 'i2f1DgHVCLrPA3rVAW', 'phbHDgGGzd0IttuGmtjOmtrnmtiGnxyXnciVpG', 'vKLqlDgb0ylqUnc70yWG0l7qSDc90l7qSTc70zhqVq', 'BgLJx2fKBwLU', 'BwLUzq', 'jMX0oW', 'CMvZzxrFyxq', 'ywfJ', '0jFqSncY0lxrGngi0lJrGTgm', 'i3bHy2TxywXSzxrcCMvHA2rVD24', 'D2fSBgv0rNjLzxPL', 'i2fWCgvHCMfUy2vcz09WywnPDhK', 'y3jLyxrLvgLTzq', 'z2v0qxvKAw9uCMfJA3m', 'i2fKBunVzgvhzw5LCMf0zq', 'CgfK', 'pc9ZDhjVBMC+pc9KAxy+', 'i3jLC2v0qwXSqNrU', 'i2f1DgHVCK1VzgfS', 'ChHpBG', 'CgfJA3m', 'pc9IpJXZCgfUignSyxnZpsjWAY1HDxrOB3iIpKa', 'C2jTB2rL', 'ywrKtw9KDwXL', 'C29YDa', 'w2rHDgeTy2XVC2uTD2fSBgv0xq', '0j/qVTc00l/qUngb0lRqScdqVDc1inc/0l7qTngc0llqTDga0lBqTnc10l3qSa', '0kprGDgc0ldqVDc+0llqU9c10l3qVIdqT9cY0ypqUTc+0li6ia', 'i3LVDxr1yMvqCM9TB0nSB3nL', 'iIbHCMLHlwXHyMvSpslqODcY0l7qUcdrGDc+0lhqTDgb0lxqTnc90lJqUIa', 'Ahr0Chm6', 'BgLUA3m', 'phbHDgGGzd0ItteYidn2mtiIlZ48Cgf0AcbKpsjTnYaXmsa1iduGns01iI8+phbHDgGGzd0IttuGmJfOmtqIlZ4', 'C3rHCNm', 'pc9KAxy+pc9KAxy+pgrPDIbJBgfZCZ0IyweTC3rHDhmIpJXZCgfUpG', 'pc9IpJXZBwfSBd7qVDcW0yFqUngb0lVqTDc90l48l3nTywXSpJWVC3bHBJ48C3bHBJ48yJ4', 'i3jLzKnVChK', '0l3qTDgcingb0l7qTDc00lJqVDc10l3qUngp', '0jRrG9c/0lJrGTgminc90ldqSDc+0yaGWQS', 'B25LBMrLza', 'yxvKAw9szwfKzxi', 'l2fKBwLUl3bHy2TZl2fJDa', 'i2fKBunVzgvcyxrJAgvZ', 'i2f1DgHVCLLVDxr1yMu', 'iZaWmdaWma', 'iZm0zdm5oq', 'l2fKBwLUl2jHBG', 'i3rYzwvby3rPDMu', '0k3rHDc+', 'Dgv4DfbHBMvS', 'i2rPCMvJDfjLy292zxjqyw5L', 'C3rHDgvZ', 'BgLJq29KzufJDgL2yxrL', 'ihbLBMrPBMCTy2HHBMDL', 'i3LVDxr1yMvqCM9TB09Wzw4', 'BNvTyMvYt2zdAgfUBMvSCW', 'pc9ZBwfSBd48l3nWyw4+phn0CM9UzYbJBgfZCZ0I', 'zM9SzgvYlwDYB3vWigLUC3rHBgXLzc1WywnRlwDYB3vW', 'DM9S', 'i3bHy2TqCMLJzq', 'w2rHDgeTCgfKlwfJDgLVBJ0NAg90A2v5j10', '0jJrIDgdingb0l7qSDc10yhqTDc00l3qUnc60l7qSIdqSIdrGDcY0l7qSDc+0ltqVDgl0yuG0l/qSnc90lxqU9gp0yu', 'CMvSyxLpBG', 'pc9LBt48l2j1DhrVBJ4', 'z3jHBNrLza', '0jlrGDc1inc60l7qTnglingb0lRqVTc/0lJrGnc+0llqSnc90yS', '0kBqTDc90laG0ltqVTc70lBqVDcWincX0yVrGTgminc+0yiGmcdqTnc+ideWidaWmcdqVnc+0l3qTDgc', 'rxnJyxbL', 'pgj1DhrVBIbKyxrHlwfJDd0IzgvSiIb0AxrSzt0I0kpqTncW0lVqUngc0yWG0yhqVTc+0lhrIDc10l3qUnc1iJ54pc9IDxr0B24+pgj1DhrVBIbKyxrHlwfJDd0IBxv0zsiGDgL0Bgu9iTcE0lprGncW0l3qUngh0lJrGTgmincW0llrGTc+0ydqScdqVDcWide1inc80lJqVDgd0yiIpM11Dgu8l2j1DhrVBJ48yNv0Dg9UigrHDgeTywn0psjIyw4IihrPDgXLpslqL9cW0lhqU9c+0lRqUnga0l7qSTcW0ylrJcdqSncY0ylqVTga0laIpMjHBJWVyNv0Dg9UpG', 'i3zVAwnLC0jVEa', 'DhqTy2HPCa', '0yFqSngcinc90lxqTnc+0yhrGTgd0l/qTDc9', 'DMLKlxDVCMTLCI5QCZ92pte', 'lNrYzwuTBM9Kzq', 'yxv0B05LEhq', 'i3rYzwvdBg9Zzq', 'i2fKBunVzgvpDxrWDxq', 'i3rLEhrszwXHEvrVz2DSzq', 'C2v0x2XPy2vUC2vK', 'Ew91DhvIzq', '0lFqSTgd0lO', 'Dgv4Df9WywLYx2f1Dg9ZzwfYy2G', '0kdqVTcX0l7rGG', 'yMf0y2HLCW', 'phnWyw4Gy2XHC3m9iNzJlwLJBYiGzgf0ys1Py29UpsjTAwmIpJWVC3bHBJ48C3bHBIbJBgfZCZ0IDMmTBwv0ysi+pgiGy2XHC3m9iNzJlw5HBwuIpG', 'i2fKBvjLzNjLC2G', 'Cg9PBNrLCKLK', '0j3qTsdrG9c00ldqU9c+0yhrJcdrGDc+0lFqTncW0ylrJcdqUTc+0ltrIW', 'DMLKuMvWBgf5twLUCW', 'i2XPy1nPz25Lza', 'iZC2yJDLnq', 'CgfJAZO', 'yxjJvg8', 'lNbRlxbYzxzPzxC', 'C25KoG', 'pgrPDIbJBgfZCZ0IDgv4Dc1JB252zxjZyxrPB24TC2vWiJ48C3bHBJ4', 'BMvRDg8', 'w2rHDgeTyxv0Ac1Wyw5LpsjKAxjLy3qIxq', 'zwfYBMvK', 'Ew91DhvIzv91BMf2ywLSywjSzq', 'l2f1DgHVCG', '0jFqSnc/0l7qU9c90lGG0llrGDc1inc/0l7qU9gplIdqNDc+0llrI9c5inc/0ldrGnc+0lVrJcdIGjqG0l7rGIaXmcdrGDc40lZqSTc+0lVqVTcY', 'pc9ZBwfSBd48l3nWyw4+pgvTigrHDgeTAwnVBJ0IC2vUzci+', 'w2rHDgeTDgv4Dc1ZDgf0zt0I', 'DMLWx3n0EwXL', 'yxnZAwDU', 'C2vUzgLUzW', 'i2HVBwvcDxLwAxa', 'CgfPzf91C2vYCW', 'pgrPDIbZDhLSzt0IBwf4lxDPzhrOoJqZmhb4iJ48zgL2ihn0EwXLpsjMB250lxnPEMu6ndzWEdTTyxjNAw4TyM90Dg9ToJe0ChGIpUkpSZWVzgL2pJXKAxyGC3r5Bgu9iMzVBNqTC2L6ztOYmhb4o21HCMDPBI1IB3r0B206mtbWEci+0j3qScdrGDc10lpqVTc00l3rJYdqU9c40lZqUngcinga0ldqT9cZ0l7qSTc+0ydqScdqUngb0yFqTDga0l/qSnc9pc9KAxy+pgrPDIbPzd0IDxnHz2vcBg9JA01ZzYiGy2XHC3m9iM11DgvKiIbZDhLSzt0IBgLUzs1OzwLNAhq6ms41nsi+pc9KAxy+pc9KAxy+', 'lNnIlwDYAwq', 'z2v0q29UDgv4Da', '0j3qSncX0l7rGcdqVTgc0l/rGncW0llqU9c10l0G0l3qScdqVnc+0ltqTDga0ldrHTc40y4', 'l2fKBwLUl2nSzwfYy2HHDa', 'zwnOBW', 'y2XVC2vZ', 'y2XLyw5Lza', '0khqUTga0yVrGTc+', '0jlqSTc10ltqUngc0luG0l3qSnc30llqSnc90lJqTsdqVDcW0lhqVTga0la', 'CgvYC29Umq', 'Ahr0Chm6lY9HCgKUBMvRDg9Tzs5Tzq', '0jFqSncX0lVqVTc60lJrGnc+0llqSngc0yW', 'i2f1DgHVCK9Wzw4', 'B25VCgvU', 'i2f1DgHVCLrLBgvNCMfT', 'i3DHDMvuB1bLzxi', 'i2nOyxrgywi', 'z2v0vwLUDdmY', 'ihjLDM9Rzwq', 'phbHDgGGzd0IttuGngGXngeYidiGmcaWideGmIaYDJHHmIaYidaGmcaXltiGmMGTn2WTncaZDI0ZsdvHmIaYidaGmcaXltiTmLy2ytiGmIaWidaGmsaYltj6iI8+phbHDgGGzd0IttGUnsa4lJv2m00XmIa3lJv2nu0Xns41idKUnxyXiI8+', 'yxbWzwfYyw5Jzv9Iz19WyxrO', '0l7qUTc90l4', '0lhqTDc3inc90lxqS9c+inc90luG0l/qVTc70yprH9c40ylrGDgpincZ0l7qSTc+0ydqUngc0yWG0lGG0lRqUnc00ldrGTgminc30llrG9c60lG', '0l3qTDc60l7rGnga0lxqUTgc0l3rI9c5inc90ldqSDc+0ya', '0kFqSngcinc90lxqTnc+0yhrGTgd0l/qTDc9', 'pgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTCg9SBc1JAg9Py2u9iG', '0l3qSnc/0ydrJ9c80yprJG', 'C2jnB25PDg9YvM9SDw1LtgfIzwW', 'w2rHDgeTCgfKlwfJDgLVBJ0NAgLKzsDD', '0j/qSnc/0lRrGYdqV9c10ydqTDgc0ldrIDc40ylrJcdqVDc10lVrJnc30y8G4Ocuinc90ldqTTc80lGGWQVqN9c+0ltqUTc70y7rH9c40ylrJcdqV9cW0l/qUTgdWRS', 'pc9ZCgfUpJXZCgfUignSyxnZpsjWAY1IywrNzsi+', 'ywrK', 'Ag9ZDa', 'i3zVAwnLrNHqCMvZzxq', 'i2LUC3rHBgXLzfbHy2ThCM91Chm', 'y3jLyxrLv2f2zvnOyxbLCG', 'yxzJms40mJaWmwy', '0j3qSncX0l7rGcdcQW', 'cIaGica8zgL2ignSyxnZpsjYzwmTAxrLBsiGzgf0ys1WyxrOpsi', '0liG0lhrG9ge0lxrGnc1inc/0l7qUTcWinc90lxrGIdqSTc40ltqTDc+', '0j3qSnc30llqSnc90lJqTsdqVTcX0l3qVTcY0lVqTDc90l4', 'pc9IDxr0B24+', 'lNbHzdPUB3qOlNbHzc1HzgqPlc5ZB3vUzc1TB3jL', '0khqVDcW0yFqSnc70laG0llqVTc50ltqUcdrH9c10ydqTDc3ifrLBgvNCMfT', 'ig9U', 'CxvLDwvFCg9ZAxrPB24', 'lNbRlwrLBgv0zq', 'x19UA1rHBxbLCMvK', 'C2T1BgW', 'txa0txv4zxi', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVTgc0l/rGncW0llqUngc0yWG0lFqSngp0llqUTgd', 'i2zMzMzMzG', 'pc9ZCgfUpJXIpG', 'DeLUDa', 'ig5LC3rLzc1NCM91Ca', '0j/qVTc70yZqT9c+0llqSngc0lxqU9gminc90luG0l3qSnc50ltqTDc9', 'yNvMzMvYzwrbBw91BNq', '0lhqU9c+0lRqUnga0l7qSTc60laG4OcuincX0lxrGngdinc90l7qSTgl0lKG0l7rGTc/0lxrH9cW0ylqVTc6inc4incW0lRqUTcW0ypqVDgcicG', 'pgnPCMnSzsbJEd0ImtiIign5psiXmIiGCJ0IosiVpJXJAxjJBguGy3G9iJeYiIbJEt0ImtiIihi9iJmUnsiGzMLSBd0Iy3vYCMvUDenVBg9YiIbZDhjVA2u9iM5VBMuIlZ4', 'i2fUBM91BMnLqM94', 'qxjYyxLcDwzMzxjuyxjNzxq', 'Ahr0Cf9LCNjVCG', 'yw5UB3vUy2vTzw50', '0jdqSTgc0l7qV9c+0lJrGDc6incY0lRqUW', '0jdqSTgc0l7qV9c+0lJrGDc6ia', 'phbHDgGGzd0IttmGmtfHosa5idaGmsaXide4idbJmcaYlteGmY42ltiUnsa0lJzwmtHHmsaXidaGmcaXlteGmwGToweXideGmcaWideTms0XDI0YlJrdncaXnc42idmGmtmGmYaXmxOIlZ48y2LYy2XLign4psi5iIbJEt0ImteIihi9iJeUnIiVpJXJAxjJBguGy3G9iJe1iIbJEt0ImteIihi9iJeUnIiVpJXWyxrOigq9iK0XmsaXoxyYtteZide5DJiIlZ4', 'DgDFAwq', 're9nq29UDgvUDeXVywrLza', 'ls1NCM91Cc1Kzxb0Aa', 'pgnPCMnSzsbJEd0ImteIign5psiXmsiGCJ0IociVpJXWyxrOigq9iM0YmsaYms00lJmTnc4ZiI8+', '0khqVDcW0yFqSnc70laG0l7rGDgc0ldqVDc+0llqUcdqT9cW0l/qUngb0yWG0lRqU9c40l/qSa', 'jImZotS', 'B2DN', 'DxjSCW', 'BNvTyMvYt2zgCMfTzxm', '0khqVTcX0lJrGncW0y4G0lGG0l7rGTc/0ydqSncY0lVrJ9goinc90ldqSDc+0ydIGky', 'CgvLCJe', 'C2HPzNrlzxK', 'i2fKBvbVBgXdBg9Zzq', '4PAGincH0ylqVTc/inc60lVqUnc/', 'CMvWzwf0', 'mJuWnZi5mLLtzK1zrG', '0jlqSTc10ltqUcdqUTc+0lqG0ldqUTgc0lJqSTcW0yBqUnc4lcdrH9gc0l7qSDglinc+0ylqUTga0yVrGTgminc00l7rGDgc0ypqVY4', 'iJ48C3bHBIbKyxrHlwLJB249iG', 'idyYjsa1mIuP', 'pgrPDIbJBgfZCZ0Iyxv0Ag9YlwnHCMqTAgvHzci+pgi+0jFqSngp0llqUTcWincW0llrGTc+0ydqSdWVyJ48C3bHBIbJBgfZCZ0IyxuTyMfKz2uGBxv0zsi+0l3qScdqV9ga0l7qSTc10ydqUTc1pc9ZCgfUpJWVzgL2pJXWignSyxnZpsjTDxrLzcbZBsi+0jdqTnc80lJqVsdqV9ga0l7qSTc10ydqUngcinc60ldqVDcW0lVrIY4G0j/qVTc60laG0lZqVTc20l3qVIdqVTcX0l3qVTcY0lJrGTgmingb0yhrI9c70lRqUcdqUcdqVTgc0l/rGncW0llqUngc0yWG0lFqSngp0llqUTgdinc30ldqVDc+0llqVI48l3a+pgj1DhrVBIbJBgfZCZ0IyNrUihnTiIbPzd0Iyxv0Ag9YrwrPDci+0jJqT9c80lxqVDc40ylrJcdrGDgb0yVqU9c60lG8l2j1DhrVBJ4', 'CgfJAY1TAw5LAxrLBsbTDxrLzcbZBq', 'pgrPDIbJBgfZCZ0IBw9KywWGy2HHDc1ZB3vUzc1WAwnRzxiIpGOGicaGica8Adm+0j7rGTc/0ydqSncY0lJrGTgminc30llrG9c6pc9OmZ4kicaGicaGpgLUChv0igLKpsjJAgf0u291BMrtzwfYy2GIignSyxnZpsjWCM94Es1PBNb1DciGCgXHy2vOB2XKzxi9iTcF0l7qUngb0lOG0lFqSTgd0lRqSciGyxv0B2nVBxbSzxrLpsjVzMyIihnWzwXSy2HLy2S9iMzHBhnLiJ4kicaGicaGpgrPDIbPzd0Iy2HHDfnVDw5KtgLZDciGy2XHC3m9iMnOyxqTC291BMqTBgLZDci+pc9KAxy+cIaGicaGidXKAxyGy2XHC3m9iM1VzgfSlwfJDgLVBNmIpJXIDxr0B24Gy2XHC3m9iMj0BIiGAwq9iMnOyxrtB3vUzenSB3nLiJ7qL9cW0lRrGngl0ylrJdWVyNv0Dg9UpJWVzgL2pGOGicaGpc9KAxy+', 'pc9IpJXZCgfUignSyxnZpsjTDxrLzcbZBsi+AwqG', 'i2fKBvbVBgXnAw51DgvZ', 'zNjVEMvU', 'BMSTDgfTCgvY', '8j+gLsdqNDc+0llqSngpinc70lJrH9c90l7rGDgc0yW6ingb0llqTDc20lJqUsdqVTgc0l/qTDgh0ldrGTc+0lOG0lGG0ldqUTc60ldrG9c90yiG0llqVIdqSTgb0lxrHsdqVTc60l3qSngf', 'B3rOzxi', 'yw1VDw50', 'ig5LEhq', '0lFqSnc/0yprGDc60ldqUsdqV9c+0lJrGDc6incYinc/0ldqVDc10lVrJ9gfingb0l/rGncW0llqSa', 'y2HLy2S', '0jdqSTgc0l7rGcdqT9cW0lhqU9c+0lRqUnga0l7qSTcW0l0', 'zMLSBgvK', 'ignVBgXHChnLza', 'lNbVBgWTAgLKzq', 'mtaW', 'lMHLCM8TDgL0Bgu', 'C2vHCMnOx2fSBf9Wyw5LCW', 'nJbqsKDotum', 'phjLy3qGEd0ImYiGEt0InsiGD2LKDgG9iJe4iIbOzwLNAhq9iJe0iIbYEd0ImYiVpJXWyxrOigq9iK0Xmca5lJj2ns42BdqUns0YlJH6iI8+', 'B3b0Aw9UCW', 'otKR', 'Dg1W', 'w2rHDgeTDgv4Dc10yxjNzxrD', '0j/qSnc/0lRqScdqSTc+0lFqSTga0ldrIDc10l3qSa', 'yNL0zxm', 'y29TBxvUAxr5', 'inc/0ydqVTc60yhqUcKU', '0l/qTDga0lxrGDgl0lVqUTcWingh0lxrGnc10lCG', 'C2HVCNq', 'i3rLEhrcCMLKz2vwAwv3', 'AxndB21WB3nPBMC', 'zM10', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLihbHAwqIpTc00l7rGDgc0ypqVZWVC3bHBJ4', 'i2fKBvn0yxrZ', 'lMnOyxqTyM94oM5VDcHBzgf0ys1WCML2yxrLxsK', 'yxr0ywnR', 'CMvWBgf5', '0j7rInc40lhqUTcWingd0ltqSnc70lxqVDc40y8', 'y2HHDejVEa', 'i3zPzfrPBwu', 'B25JAgfUz2u', 'phnWyw4Gy2XHC3m9iNrUlxn0yxr1CYbIyw5UzwqIpTcx0ldqSDc70l7qUTc40ydqVTcY0ldqVtWVC3bHBJ4', '0jtqVTcX0ldqSTc70y/rJUkaPG', 'y2XVC2vqyxrO', '0ylrIYdqT9cW0lhqU9c+0lRqUnga0l7qSTcW0l0', 'pc9ZCgfUpJXKAxyGy2XHC3m9iMf1lwjHzgDLCYi+', 'yxbWBgLJyxrPB24VB2n0zxqTC3rYzwfT', 'w2rHDgeTCgfKlwfJDgLVBJ0NzMf2B3jPDguNxq', 'B2zMBgLUzq', 'iZzJognMzG', 'CgfKu3rHCNq', 'BMf0DxjHBeHLAwDODa', 'BgfIzwW', 'yxv0Ag9Yx2PZB24', 'C29Tzq', 'i2rPCMvJDfbHC3n3B3jK', 'ls1HChaTyMCTB3bHy2L0Eq', '0jlrHDc+0lqG0llrI9c/0l7qU9c90lxqVsWG0l3qVIdqTnc+0yhrGTgd0l8G0l3qTsdqSnc60ylqUncY0lxqVq', 'i2u5ytiZyG', 'C29MDa', 'i2XHDgnOqNrU', '0jRqVTc0inc90luG0l3qSnc50ltqTDc9', 'CMDIysGXmcWXmIWYmcWWlJu4kq', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLiJ4', '0klrKDc80l3rI9c5incZ0l7qU9c+0ye', 'i2fKBvvZzxjZ', 'phnWyw4Gy2XHC3m9iNrUlxrVz2DSzs1ZCgfJzsi+pc9ZCgfUpG', 'C2v0vwLUDde2', '0jdqSTgc0l4T0yhqVnc10l3qScdqSDga0ldrG9c30lxrGncWincY0lRqU9go0yFqTDc90la', 'Dw5Iyw4', 'igHPzgrLBI1NCM91Ca', 'DMLWuhjPy2vZ', 'yxbWBgLJyxrPB24VANnVBG', '0j7rGTc+0lFqSTcW0ylrJcdqSTgb0luG0l3qTDc40yhqV9c+0lVrJnc30l7qSTcW0l3qVDgl0luG0lRqVTc00ySG0y3rGTc+0lKG0yhqTDga0lJqUd8', 'yxv0Ag9Y', 'yNL0zuXLBMD0Aa', 'iZzLztDJna', 'phnWyw4Gy2XHC3m9iNbRlwjHzgDLihbYAwnLiJ48C3bHBIbKyxrHlwLJB249iMnVAw4IpJWVC3bHBJ4', 'lMzNlwnVBg9Y', 'pc9ZCgfUpG', 'inc00ydrG9cZ', 'Bg9JywXhywLU', 'DxnHz2u', 'i3jLy0j0BG', 'i2fKBvbHy2TZsNvTCa', 'i2fKBvbHy2TZ', 'CgvLCG', 'Bw9UAxrVCK9U', '0j7rGTc+0lFqSTcW0l3qVIdqUTc+0ltqVTcYoIa', 'w2rHDgeTDgv4Dc1MB3j3yxjKxq', 'zwfYBMvKx3j1yG', 'zgLYzwn0', 'i2rVy2TtB3vUzej0BG', '0j7qV9ga0l7rGsdqT9cW0lRrGngl0yi', 'zgvZDgLUyxrPB24', 'DMfSDwvZ', 'ywrKqxvKAw9dAhvUAW', 'C2vHCMnOrMfSBgjHy2TZ', '0j3qTsdrG9c00ldqU9c+0yhrJdOG', '0j/qSnc/0lRqScdrGDc60ydrI9gc0la', 'l2fKBwLUl2fUBM91BMnL', 'i2f1DgHVCKnHCMq', 'w2rHDgeTChjVEhKTCg9Wpsi', 'BgLUzvrV', 'pc9IDxr0B24+cIaGicaGidXIDxr0B24Gy2XHC3m9iMj0BIbZBsb0B2DNBguGzgfUz2vY', 'BgLTAxq', '0j3qTsdrG9c00ldqU9c+0yhrJcdqT9cW0lprGngd0lFqUngc0yWG0lFqSTgd0lO', 'AgLZDg9YEuLK', 'y2HHBM5LBf91CMW', 'D2fSBgv0qwn0Aw9Utw9KywW', 'zM9Yy2vFDgv4Da', 'i2fKBuzPBMq', 'C2v0x3bHBMvFC2vYDMLJzq', 'y29KzuzPBhrLCG', 'y2HPBgrYzw4', '0ltqVTgb0ylrG9c/inc+0ylqUTga0yVrGG', 'C3zVAq', 'i2XPy01ZzW', 'ChjLC2v0', 'w2rHDgeTC29JAwfSxq', '0j/qVTc00ldrGnc60lGG0l7rGTc/0ydqSncY0lVqTDc90yS6ia', 'B3aTCMvSyxKTChjVyW', '0llrI9cX0ydqSnc90l3rI9c8icG', 'CMv2zxjZzq', '0j7qUTc90l4G', 'BgL2zq', 'yxbWzwfYyw5Jzv9WCMvZzxq', 'ChvZAa', 'B3bHy2L0Eq', 'Dg9mB2nHBgveyxrLu3rYAw5N', 'pgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTC29JAwfSpsi', '0jdqSTgc0l7rGngl', 'CgvLCJi', '0k3rGTcWinc60lVqSncY0lJrIncWingd0lBqTsdqT9cW0l3rJ9gc0la', 'ChjLDG', '0j3qSncX0l7rGa', 'z2HVC3q', 'i3jLy292zxj5vMfSDwu', '0jpqVTc70l7rGsdrGDc+0yxrGncW0l3rKDc9', 'i2fKBvnLyxjJAenSzwfY', 'pgrPDIbJBgfZCZ0IDhjLzs1JAgLSzhjLBG', 'lNbHzc1WBgf5y3rS', 'phnWyw4Gy2XHC3m9iNj0lxn0yxjZiJ7IMiuG', 'phnWyw4Gy2XHC3m9iNbWlwXVy2TLzciGzgf0ys1Py29UpsjSB2nRiJ48l3nWyw4+', 'phbHDgGGzd0IttmGosa0lJyGnc41qteGmsaWidaGmsa1lJuGngGXm2eXideGmcaWideGlJKUnuWYmsa5iI8+phbHDgGGzd0IttqGoxyXmgeXideGmcaWidaGmsaXAde0yteGmsaWidaGmcaXltfwosiVpJXWyxrOigq9iK0ZidLOmtGIlZ48Cgf0AcbKpsjnosaXm2G2iI8+', 'i3bHy2TqCMv2Awv3sw5ZDgfSBa', 'DMnHDgnOlwj0BG', 'pgj1DhrVBIbJBgfZCZ0Iy20TC3rHDguIihr5Cgu9iMj1DhrVBIi+', 'yNrUihnTigfKBs1JB2rLlw1VCMu', 'zg93BMXVywrZ', 'BwLJCM9WAg9Uzq', 'Dgv4DfnLyxjJAa', 'lNzJlwrLBa', 'i2fKBwLUtMf2', 'l2fKBwLUl3vZzxjZ', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ4', 'pgrPDIbJBgfZCZ0IDhjLzs1UB2rL', 'iJ48C3bHBIbKyxrHlwLJB249iMnOzxzYB24IpJWVC3bHBJ48l2j1DhrVBJ4', 'phnWyw4Gy2XHC3m9iMj0BI1Py28IigrHDgeTAwnVBJ0ICgX1zYi+pc9ZCgfUpTcH0lhrGnc+0yhqUngc0yWG0llrGDc10yu', 'C2vUDa', 'jMLKpq', 'y3jLyxrLtwvKAwftDhjLyw1tB3vYy2u', 'C3rHCG', 'i2XPy0XVz2LU', 'i2zMzdq3oq', 'lNbHza', '0jZqVTc90lxrGIdqSIdqVTcX0l7rGnc+0ylqTq', 'C3rHCNq', 'i3DHBgXLDefJDgLVBK1VzgfS', '0j7rGTc/0ydqSncY0lVrJ9c10ylrGDgplI4U', 'jNjLDMLZAw9Ux2LKpq', 'imk3inc00l7qU9cZia', 'pc9IpJXZBwfSBd4', 'mI1KAwDPDa', 'l2fKBwLUl3bVBgW', 'yxjTzwq', 'BwfUDwfSqNvZEq', '0jlqTDga0l3rG9gc0yW', 'x3bI', 'y29WEvrVq2HHBM5LBa', 'C2jnyxn0zxjwB2X1Bwu', 'x3bHzeTPBMq', 'CM90yxrLx3bHBMu', '0lZqUnc90lJqVngd0lWGmYdrGDc40lZqSTc+0lVqSa', 'i3rYzwvxCMfW', 'inc80l7qVDc10yi8l3nWyw4+', 'lNbHBMuTChjVEhKTCg9WlNnOB3C', 'yNL0zu9MzNnLDa', 'Dg90ywW', 'pgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsj0Dc1JAgLW', 'i3LVDxr1yMvqCM9TBW', 'i29UyM9HCMrbz2fPBG', 'ls1IB3jKzxi', 'AgLZDg9YEq', 'C3rYAw5N', '8j+sJIbwsvaG0l7rGDgc0ldqU9c+0yhrJca', 'AM9PBG', 'Bwf4', 'lNzPzxDBzgf0ys12Awv3psjJB21TDw5PDhKIxq', 'inc80lxrGDgc0l4Gknc70lJqVnc40yiG', 'pc9ZCgfUpJXZCgfUignSyxnZpsjWywqTBgfIzwWIihrPDgXLpsi', 'zgvSzxrL', 'y2HHDeP1Bxa', '0ldqUTc60ldrG9c90yi', 'C2v0x3nOB3DFAxa', 'lNbHzc1ZzwvR', 'D29YA2vY', 'B25SAw5L', 'BgLNAhq', 'l2fKBwLUl2DYyw50', 'y29UBMvJDgvK', 'pgrPDIbJBgfZCZ0ID2fSBgv0lw1VzgfSlwjHBgfUy2uIpTcr0ldqU9cW0l3rGsa8yJ4', 'lNbHzc1Tzw51lxzVBhvTzq', 'z2v0vMLKzw9uCMfJA3m', 'w2rHDgeTCgfJAY1WCMLJzs1TB2rLxq', 'lMnOyxqTBg9NlxDYyxa', 'C2vSzwn0', 'zgf0yxnLDa', 'i2fKBuj1BgTeyxLZ', 'DhjPywW', 'C2v0x2f2yxrHCL9VDMvYBgf5', '0j3qVTcY0l7qTsdqVDcW0lFqSTcW0l3qUnc1inc30llrG9c60la', 'vgvSzwDYyw0', '0j3qTsdrG9c00ldqU9c+0yhrJcdqV9c10ydqTDc40lZqTDc90l7qSTcW0ylrJdOG', 'pgj1DhrVBIbJBgfZCZ0ID2fSBgv0lxzPCc1YB3CIigrHDgeTDMLWlwrHExm9iG', 'pgrPDIbJBgfZCZ0IyxaTBwv0ysi+pgi+', 'yxvKAw8', 'WRSGWRCG', 'Cg9SBenOB2LJzq', 'C3rYB2TLu3r5Bgu', 'z2v0vxnLCK1LzgLH', 'zg93BG', 'i3jLD2fYze5VDgu', '0jpqVTcY0l7rGnc40ylrJca', 'i2fKBvrYzwvcDg4', 'Bg9VCgLUzW', 'zNjVBq', 'Bxa0ys40mc4Y', 'C3vIyxjYyxK', '0j3qVTcY0yVqUsdqVDcW0lhqVTgainc30llrG9c60l7qSG', 'zMLSzxm', 'i3bHy2TdB2XVCG', 'AgvPz2H0', 'A2v5CW', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLihbHAwqIpLzjudWVC3bHBJ4', 'y29UzMLNDxjLza', 'i2nOyxrjBNb1Da', 'lNbRlwXPA2u', 'l3r1CM4', '0l/qVTcY0ydqTDc20ltrKDc90l3rI9c5inc90ldqSDc+0ya', 'D2f2', 'WRS6incX0l7qU9gm0yJqTsa2ncdqNncr', 'yxzHDgfYt3zLCMXHEq', 'BM93', '0yhqU9c40yJqUTc+0lWG0lhqVTc70yZrInc+0luG0ydqSnc30ydqTDgi0lxqVDc40lu7inc80ldqUTgb0lJqVngd0lWGnIdqNnc/inc4idqWotyGChGG0l/qVIdrGDgc0l7rGnc+0l3qTq', 'zNvSBa', 'C2jwAwv3', 'phnWyw4Gy2XHC3m9iNrUlw1LDgeIpJXIpKa', 'CMv0CNLFywz0zxi', 'i3bHy2TpAW', '0jlrGDc10lpqVG', 'pc9KAxy+pgrPDIbJBgfZCZ0ICNqTC3vIiJ4', 'yxvKAw9PBNb1Da', 'DMLWx2nOyxrFC3r5Bgu', 'ywrTlwf1DgHVCG', 'zgvSDgfz', 'C291BMrZ', '0kdqSngg0lJrJW', 'Ew91DhvIzv9JAgfUBMvSx3vYBa', 'DxjS', 'jMfTCdS', 'yMfUBMvK', 'C2fTCgXLuMf0zq', 'C2vHCMnO', 'lNbHzc1SB29W', 'zw5JB2rL', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qL9cW0lprGngd0lFqUTcWlI4Upc9ZCgfUpG', 'C2vSzwn0Aw9Uu3rHCNq', 'CMvSyxK', 'w2rHDgeTDgv4Dc1WzwvYpsi', 'zM9UDa', 'lNbRlwXPA2uTy291BNq', 'yMDlzxK', 'AxneAxjLy3rVCNK', 'Dg0TAgfUzc0', 'D2fSBgv0x3n1ChbSEq', 'imk3inc00l4G', 'Dgv4Dc1ZAwrLyMfYlw9Wzw4', 'i3zPzej0BG', 'C3rVCf9YzwnVCMrPBMC', 'zNjHBwvdB3vUDa', 'i3LVDxr1yMvqCM9TB1zLCMLMEq', 'inc60l7qTnc+0liGWRCG', 'y2XPzw50swq', 'phnTywXSpTga0lxrHc48l3nTywXSpJWVC3bHBJ48C3bHBJ4', 'imk3idXRyMq+u1bbq0u8l2TIzd4', '0lZqVTc70yFqUngi0yW', '0khqU9c40yJqUTc+0lWG0lZqVDc+0lpqVIdqV9c+0l/rI9gc0l7qUI4G0j/qVTc/0ydqVTcX0ypqUsdqVDc10lZqVDc+0lpqVIdqV9c+0lFqTTc1', 'l2fKBwLUl2f1DgHVCNm', 'y2HHDc1WB2XSlwnHCMq', 'BgLRzwq', 'C2v0vwLUDdmY', 'Ew91DhvIzv9HDMfPBgfIBgu', 'i2fKze9R', 'zMXHC2G', 'iJ48yJ4', 'l2fKBwLUl21ZzW', '4O+XincH0lxqS9c+0ltqVDgpinc+0yhrGTcW0lVqVTgb0yWG', 'p3rVA2vUpq', 'y3jLyxrLq2HHBM5LBe1LCMDLCG', 'AxrLBxm', 'CgfUwa', 'C2v0vwLUDdG', '0khqTDga0llqTDgaincY0ydqTDc80lxqVDc90l4G0l3qTDc00l7rGDgc0ypqV9c10l0', 'mty6oq', '0kpqUTcW0lBqUcdrGDga0l7qUIdqVTgcideG0ltqVIaZnJuWinc00l3qTDc5', 'DMLWuhjPy2u', 'i2fKBvn0yxrZic5Hzg0TC3rHDa', '0l7qSDgl0yFqVDgl0luG', 'p3n0yxj0pwXVz2LUxW', '0l/rG9gb0ylqVTc5inc60lVqUnc/', 'Bw9Kzq', '0l7rGTc60lVqVTc90zhqVq', 'lMzVBgrLCI1NCM91Cc10AxrSzq', 'Dgv4Da', 'i2fKBvbVBgXqDwi', '0jpqVTgb0ylrJa', 'pgrPDIbJBgfZCZ0IBw9KywWGD2fSBgv0lwfJDgLVBI1TB2rHBci+cIaGica8zgL2ignSyxnZpsj3ywXSzxqTywn0Aw9UlwHLywqIpJXOmYbPzd0ID2fSBgv0qwn0Aw9UvgL0BguIpTcA0l7rInc10lVrKDc6pc9OmZ48yNv0Dg9UignSyxnZpsj3ywXSzxqTy2XVC2uIigrHDgeTD2fSBgv0lwnSB3nLihrPDgXLpslqL9cW0lRrGngl0ylrJciGyxjPys1SywjLBd0I0jFqSnc60ydrI9gc0yWIpJXZCgfUigrHDgeTAwnVBJ0Iy2XVC2uIpJWVC3bHBJ48l2j1DhrVBJ48l2rPDJ4kicaGidXKAxyGAwq9iNDHBgXLDefJDgLVBKjVzhKIpJWVzgL2pGOGidWVzgL2pG', 'phnTywXSpTc00l7rHDc+0lq8l3nTywXSpJWVC3bHBJ48l2rPDJ48zgL2ignSyxnZpsjHys1Hy3rPB25ZiJ48yNv0Dg9UignSyxnZpsjIDg4GC20GChjPBwfYEsiGzgf0ys1HDxrOB3iTywn0psjHChbYB3zLiJ7qNTc00l7qSDga0lJrGTgmpc9IDxr0B24+pgj1DhrVBIbJBgfZCZ0IyNrUihnTihrVz2DSzsbKyw5NzxiIigrHDgeTyxv0Ag9YlwfJDd0ICMvQzwn0iJ7qNTgc0lRqU9c+0l3qUngc0yW8l2j1DhrVBJ48l2rPDJ4', 'zMX1C2G', 'i2q3zgnLnG', 'ChjVDg9JB2W', '0ldqSTgc0l7qV9c10ydqTDgb0yVqU9c60laG0llrI9c60lVrJTgh0lxqVDcW', '0jlrI9c50ylqUcdqUnc3incW0lRqUTcW0ypqVDgc0laGqa', 'oIdqVDcW0l/rGngp0lZrG9go', 'ig1L', 'i2zHyKjHzgDL', 'CMvTywLUAw5N', 'BwLJr3jHBNrLza', 'lNzPzxC', '0ltqVTgb0ylrG9c/', 'iJ4kicaGicaGpgrPDIbJBgfZCZ0IDgv4Dc1JB252zxjZyxrPB24TBwv0ysi+phnWyw4+', 'WRSG0lJqTYdrGDcW0ypqVDc00lhqVTga0ltqSd8', 'iJ7qNTgc0l7qT9cY0ldrGTgmpc9IDxr0B24+pc9KAxy+', 'Dg9mB2nHBgvtDhjPBMC', '0lJqT9c80lxqVDc10l3qUngpoIdcQW', '0jJrGDgc0l7rH9c90lJqUIa', 'i3bHy2TqCMv2Awv3vgL0Bgu', 'y3vYCMvUDfrPBwu', 'Dgv4DenVBNrLBNq', 'C2v0x2vUDgL0BgvTzw50', 'i3zPzfjLCgXHEuj0BG', 'mda6mda', 'lMnVBNrLBNq', 'i2fJy291BNrdB2rLuM93', 'lNbHzc1Tzw51lc5WywqTBwvUDs1IDg4', 'l3bHy2TZl2DLDd90B2TLBJ0', '0lRqVTga0lxqVDgm', '0ldqSTgc0l7rGa', 'pc9ZCgfUpJWVC3bHBJ48C3bHBIbJBgfZCZ0ICgfJAY1TAw5PlwfJDgLVBNmIpJXIDxr0B24Gy2XHC3m9iMj0BIbZBsbWAY1LzgL0iJ7qOnc10ltqSnc60ylqUnga0l7qSTcW0ylrJdWVyNv0Dg9UpJXIDxr0B24Gy2XHC3m9iMj0BIbZBsbWAY1KzwXLDguIpTcJ0ltqSnc70lJrGTgmpc9IDxr0B24+pc9ZCgfUpG', 'DMLKzw9xAwr0Aa', 'DxbKyxrLx3rLEhq', '0jFqSnc/0lJrGDgmincY0lJqTnc10l4G0l3qTsdqV9c+0ltqTnc10ydqTTc40llqSnc10ylrGDgp', 'yxv0Ag9YCW', 'Cg9PBNrLCMrVD24', 'pc9KAxy+pc9KAxy+cIaGicaGia', 'lNn0yxr1CY1SywjLBa', 'CgfJA19JB2XVCG', 'Cgf5Bg9Hza', 'CMvSyxrLzfrHCMDLDa', 'i3zVAwnLrNHtDgf0zq', '0j3qSngh0ldrGTgminc/0l7qUngb0lO', 'z3jVDxbFy29SB3i', 'zMfPBgvK', 'i3bLzxjdAgf0u3rHDhvZ', 'yxv0Af9RAw5K', '0jZqS9c90l7qSTc10l3qVDcW0y8G0l/qTDga0lxrGDgl0lVqUTcWincY0lRqU9go0yFqTDc90la', 'C3f1yxjL', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qSTc+0lNqTnc4ingh0lxrGnc10lCGvgvSzwDYyw0Singh0ylqVTcX0ySG0l7rGTc60ydrI9gc0yWG0lZqSncZ0ldqT9c40l08l3nWyw4+', 'CMvMx2XPBMS', 'pc9ZDMC+', 'y2XVC2vK', 'y2XHC3nPyW', 'x3bHzhnszw5KzxjLza', 'pgj1DhrVBIbJBgfZCZ0IyNrUihnTihbWlxbSyxKIpJXZCgfUignSyxnZpsjIDg4TAwnViIbKyxrHlwLJB249iNbSyxKIpJWVC3bHBJ48l2j1DhrVBJ4', 'DhnLBa', 'i2rVy2TtDgf0Dxm', 'C3rVCa', 'D2vIA2L0qxvKAw9dB250zxH0', '0j3qTDc00l7rGDgc0ldrGTc+0yFqVDc+inc80l7qVDc10yi', 'DMLWx2j1Ev91CMW', 'lMnTlxnVDw5KlxnHDMu', 'DxnLza', 'BgLZDa', 'i3DHBgXLDefTB3vUDa', 'x3bSyxLuB2TLBG', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7rGDgb0yVqU9c+0lOG0l3qTDgcpc9ZCgfUpG', 'l2fKBwLUl3bHy2TZ', 'pc9KAxy+pgrPDIbJBgfZCZ0ICNqTyM9KEsi+pgrPDIbJBgfZCZ0ICNqTDgL0BguIpG', 'inghinga0ldqT9cZ0l7qSTc+0ydqSc4G', 'C3rHDhvZ', 'iJ7qKTgl0lhrGncW0l3qVDgl0lKG0lZqUnc60ydqVTge0l7qVtWVB3b0Aw9UpG', 'yMLUyxj5vhLWzq', 'i2fKBvbHy2TZugfUzwW', 'pc9IpJXZCgfUpMLKia', 'Aw50zxjHy3rPDMu', 'phjLy3qGEd0IosiGEt0IosiGD2LKDgG9iJeXiIbOzwLNAhq9iJeXiIbYEd0ImIiVpJXWyxrOigq9iK01ide1sdrHmIaYidaGmcaXltiTmLy0ytiGmIaWidaGmsaYltjOoweYidiGmcaWideGmIaYDJeIlZ4', 'i2rVy2Ttzw5K', 'BwLJrgv2AwnLswq', 'yNvMCW', 'DM9Py2u', 'iIb0AxrSzt0I0l7rGTc60ydrI9gc0yWG0ytqSnc50lSIpGOGicaGica8C3bHBIbJBgfZCZ0ICMvJlwLJBYiGzgf0ys1Py29Upsi', 'lM9Ilxn0zxa', 'BxmTC2v0DgLUz3m6ChjPDMfJEs1TAwnYB3bOB25L', 'y291BNq', 'y2f0y2G', '0l7rInc40lhqUTcWincY0l7rGnc60lxrGncW', '0l3qTsdrG9c00ldqU9c+0yhrJcdqV9ga0l7qSTc10ydqUngc0yWG0lJqT9c+0lhrGncW0lBqTDc90lJqTq', 'C2v0sxrLBq', 'ChvYy2HHC2vFDxjS', 'Ag90A2v5', 'pgrPDIbJBgfZCZ0ICNqTBwvKywWIpVcFL5pVUi88l2rPDJ4', '0jRqVTga0lxqVDgm', 'lMfJDgL2yxrPB24Ty29Kzs1PBNb1Da', '0l/qSnc/0lRqSdOG', 'ywrKx3nVDw5K', 'i3bLzxjdAgf0u2vUza', 'C2jqywnRoG', 'i3DHDMvuAxrSzq', 'y3nZvgv4Da', 'y3jLyxrLqNvMzMvY', 'y3j5ChrV', 'pc9WpJXIDxr0B24Gy2XHC3m9iMj0BIbZBsiGAwq9iMf1DgHVCKvKAxqIpTcE0ylqV9ga0ldqSTc40ylrJcdqT9cW0l3qVTcY0l48l2j1DhrVBJ4', 'vvjm', 'pc9IpG', 'zM9JDxm', 'BwLJtM9Kzq', 'ls1Hy2nLBNqTAa', '0keG0llqVTc30llrGncW0yNqTDc90lJqTDc8iq', 'zMXHyW', '0j7qTTc40ltqSnc90lJqTEkaPG', 'iJ48zgL2pJXIpG', 'zgLZCgXHEq', 'pc9IpJXPihn0EwXLpsj3Awr0AdO', 'i3nIr3jPza', 'i2nOyxrtDgf0Dxm', 'Aw5R', 'Cg9ZDe1LC3nHz2u', 'zgvJB2rLqxvKAw9eyxrH', '0klrIYdrG9c20luG0ldqUTgc0lJqSTc40ydqVTcY0ldqUYdqUTc+0lqG0lJqTYdrJDgc0l7qUsdrGDc10ydqUnc4', 'z2v0q2HHBM5LBerHDge', 'l3bHy2TZl2XPA2u', 'i2fJy3rcDg4', '4PEpincs0lJqTnc10l4', 'DxnLCM5HBwu', 'i2nOyxrtB3vUzeXPC3q', 'DgLRDg9R', 'lNjLyY1PDgvT', '0j/rGnc+0lhqVDgl0lKG0l/qTDga0lJqVTc0oIdqVTgb0ylqSnc70l7rGDgmih4', 'pgrPDIbJBgfZCZ0ICgfKlxbYB2CIpJWVzgL2pG', 'yMvHy29U', 'l3nSB3q', 'zM10ia', 'i2fKBvbHy2TZuMvMCMvZAa', 'inc80l7qVDc10yi', '0j3qSncX0l7rGcdqUTgd0l/qU9c10l0', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLihL0iJ5zB3vuDwjLpc9ZCgfUpG', 'C2nYB2XSsw50B1zPzxC', 'y29UzMLYBq', 'i2vTB2PPug9W', 'AxngAw5PDgu', 'yM9SDa', 'BgLJx3zPCf91BNrPBa', 'phbHDgGGzd0ItteXidqUn2eUnY43idaGmcaWlteUmI0UnuW2lJqGnY42qteUncaXlJqGmcaWideGns40idHim2eXideGmcaWidaTmsaXDJzHmsaXidaGmcaWideGmwGYlJrHms40ideUncaWidaGmsaXic40BdmUncaZlJrHlJCUnYaWidaGmcaXlJiTlJv6iI8+phbHDgGGzd0Itte2idLHnsa1idaGmcaXidaGnIiVpJXWyxrOigq9iK0Xos40iduUnMe5idKGmcaWideGmcaXmI43iI8+', 'y29SBgfWC2vK', 'C3bHBG', '0j3qSnc30llqSnc90lJqTsdqS9c+0lVqVTgb0la6', 'i293BMvKu291BMrhCM91Chm', 'tKTdDxjZB3i', 'imk3ia', 'pgj1DhrVBIbJBgfZCZ0IyNrUihnTihbWlxbSyxKIpJXZCgfUignSyxnZpsjIDg4TAwnViIbKyxrHlwLJB249iNbSyxKIpJWVC3bHBJ48l2j1DhrVBJ48C3bHBIbJBgfZCZ0ICgfKlwLJBYiGzgf0ys1Py29Upsi', 'CgvYBwLZC2LVBNm', 'pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguIpJXIpTcD0ldqSDc+0ydqVTcYinc/0l7qUTcWinc90lxrGJWVyJ48C3bHBJ7qODc+0lhqTDga0lGG0yhqSTc+0lKG0l/qTDga0llrI9c5inc90ldqSDc+0yaG0lGG0l7rGTc/0ydqSncY0yWG0lxqS9c+inc90laG0lZqVTc00lxrGncW0yBqUngolJWVC3bHBJ48yNv0Dg9UignSyxnZpsjIDg4GChjPBwfYEsbZBsiGzgf0ys1VCgvUlxbHy2S9iJeIpJXZCgfUignSyxnZpsjIDg4TAwnViIbKyxrHlwLJB249iNn0B3jLiJ48l3nWyw4+0khqVTcX0ydqSngc0yWG0l3qSncX0l7rGdWVyNv0Dg9UpJWVzgL2pG', 'y3jLyxrLt2jQzwn0vvjm', 'BgLJx2rLDMLJzq', 'vfvstIb1BMf2ywLSywjSzq', 'incA0je', '0kdqSnc30lhqU9c+0lRqUnga0l7qSTcW0ylrJa', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLig11DguIpTc+0lprGncW0l3qUngh0lxqVtWVC3bHBJ4', 'iJ48l3nWyw4+', 'zM9SzgvY', 'pgj1DhrVBIbJBgfZCZ0IyNrUihnTihbRlwvKAxqIpJXZCgfUignSyxnZpsjIDg4TAwnViIbKyxrHlwLJB249iMDLyxiIpJWVC3bHBJ7qOnc10ltqSnc60ylqUnga0l7qSTcW0ylrJdWVyNv0Dg9UpJXIDxr0B24Gy2XHC3m9iMj0BIbZBsbWAY1KzwXLDguIpTcJ0ltqSnc70lJrGTgmpc9IDxr0B24+', '0liG0y3rHnc40ydqTsdcTYa', 'nZaWia', 'phbHDgGGzd0IttiXidiGmteGmtiIlZ48y2LYy2XLign4psi3lJuIign5psiXnI41iIbYpsi1lJuIlZ48Cgf0AcbKpsjTmtuGocaZidmIlZ48Cgf0AcbKpsjTmtCGnIaZidmIlZ4', 'pc9ZCgfUpJWVyNv0Dg9UpGOGicaGpgj1DhrVBIbJBgfZCZ0ICgfKlwn0CMWGCgfKlxn0B3aIihrPDgXLpslqNTgb0ylqSnc90l7qSTc40ylrJci+phnWyw4Gzgf0ys1Py29UpsjZDg9WiJ4', 'pc9ZCgfUpJWVyNv0Dg9UpJXZCgfUignSyxnZpsjWywqTAwnViIbKyxrHlwLJB249iG', 'DhLWzq', 'ywXS', 'i2zYzxnOswrcDg4', 'phbHDgGGzd0IttGUnsaXnc41qtiUnsaYlJuGmcaWidaGmteGmtjJmc0XlJqTlJuTmI0XltmTms4XltiUms0UmI00idiTnIaUnsaYlJuGmIa0lJKGnca2lJuGmIaXlJyGmYaZlJuGmYa1lJvHnYa3idaGmsaXlte0idbJmc0XlJiUnc0YlJmGms0ZytiUnsaYlJuGmcaWidaGmI41idiUnxOIlZ4', 'i2fKBvbVBgXpChrPB25Z', 'l3bHy2TZl2XPC3q', 'i3rVyxn0', '0khqSTc+0lGG', 'Dg9Nz2XLqxr0CMLIDxrL', 'yM9VBgvHBG', 'z2v0vgLTzq', 'inc00l3qTDc5pc9IpJXZBwfSBd40inc+0lRqVDcWinc4ifzjuc3qSTc+0lFqVnc+0lBqVDc+0yhrGTc4pc9ZBwfSBd48l3nWyw4+cIaGicaGidXZDhjVBMC+', '0jlqSTc10ltqUngc0luG0ylqTDc60yhrGIdqVTcX0yRrJ9cY0lVqTDc90lJrJW', 'y3vZDg9T', 'zMLUza', 'pgeGAhjLzJ0IiYiGzgf0ys1VCgvUlxvYBd0I', 'i3rYAwfSqMfY', 'w2rHDgeTD2fSBgv0lwnSB3nLxq', 'pc9ZCgfUpJWVyNv0Dg9UpGOGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTCgfKlwfJDgLVBJ0ICMvUyw1LiJ7qN9c10ydqTDc40lZqTDc90l7qSTcW0ylrJdWVyNv0Dg9UpGOGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTCgfKlwfJDgLVBJ0IBw92zs1MB2XKzxiIpJXZCgfUpTcF0lxrGnc10lZqTDgb0ylqUngc0yWG0liG0l/qSnc/0lRrGZWVC3bHBJ48C3bHBIbKyxrHlwLJB249iMnOzxzYB24IpG', 'Bwv0yq', 'C3rHCNrFCMvJB3jKAw5N', 'yxbWzwfYyw5Jzv9Iz19VCgfJAxr5', 'DxnLCNm', 'ChvYy2HHC2vK', 'i29Iu2TPCa', '0jprGngd0lBrG+kaPG', 'B3DUlW', 'C3rYB2TL', '0l7rGTc80lxqVDc10l3qVG', '0khqVDcW0yFqSnc70laG0llqVTc50ltqUcdqSIdqV9ga0lJqU9c+0lBqTDc90lJqTsdrHDc+0ylrJYdqSDglinc+0ltqUnc9inga0ldqTW', '0jlrGDgrincZ0l7rGTc+0llqVG', 'oIdqVDc1ingd0ltqSnc70l7rGDgminc+0lhqVTc50ylqUcdqSDc70l7qUTc40ydqVTcY0lRrGYdqT9cWia', 'CgfU', 'Bg9HzgLUzW', 'yxv0B1bHAxjtzwfYy2G', 'iJ48C3bHBJ4', 'DMLWx3bYAwnLCW', 'inc+0lRqVDcWiokaLcdrJDgc0l4GvKLqlIdqNTge0l7rGnc80lGG0liG0lhqVTgc0luGknc00l7qV9c70ldrGTcWinc/0l7qUTga0yVqSTcW0lxrGIdqTDgj0zeG', 'i25Py2TtyxzL', 'i2fWCgvHCMfUy2vqCMvZzxrZigj1DhrVBG', 'AgLKzgvU', 'pc9ZBwfSBd4kicaGicaGicaGidXKAxyGy2XHC3m9iNbHBMuTChjVEhKTCg9WiIbKyxrHlxbYB3H5lxbVCd0I', 'DxbKyxrLx3nVDw5K', '0lJqT9c80lxqVDc10l3qVIdqUcdqV9c10ydqTDc00ldqVDc+ingb0l7qSDc10yhqTDc00l3qUnc60ymG', 'BwLUAw11Bq', 'iJ7qODc+0yxrGncW0l3qUngc0yW8l2j1DhrVBJ4kicaGicaGicaGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGy2XHC3m9iMj0BIbZBsiGzgf0ys1WCM94Es1JBgvHCJ0I', 'y29UDgfPBNm', 'Ag91CNm', 'i3DHBgXLDfjLy2LWAwvUDa', 'lNbRlwLUC3rHBgW', 'Ew91DhvIzv9WCM9TB190zxH0', '0kpqTTc1inc/0ydqUncZ0lVqSngi0lxqVDc+oIa', 'ingb0llqVTc40yuUincJ0lhqSncY0yWG0yhqSTc+0lJrHsdqUnc70lGG0lhqTDga0lGG0lZqTDc90yZrInc1ig5LA3rVlG', 'Bwv0zxjLza', 'cIaGicbJBgfZCYbwAwrnAxHqCM9Jigv4DgvUzhmGqxvKAw9xB3jRBgv0uhjVy2vZC29YihSkicaGicaGy29UC3rYDwn0B3iOksb7cIaGicaGicaGC3vWzxiOktSkicaGicaGicb0AgLZlNnYy3mGpsbUzxCGtwfWkcK7cIaGicaGicaGDgHPCY5WB3j0lM9UBwvZC2fNzsa9icHLksa9pIb7cIaGicaGicaGicbJB25ZDcbKid0Gzs5KyxrHihX8ihT9oWOGicaGicaGicaGAwyGkgqUDca9pt0GiMnSzwfYiIKGEWOGicaGicaGicaGicbPzIaOzc5ZCMmGpt0GBNvSBcKGDgHPCY5ZCMnZlMnSzwfYkcK7cIaGicaGicaGicaGigvSC2uGDgHPCY5ZCMnZlMrLBgv0zsHKlNnYyYa+pJ4GmcK7cIaGicaGicaGicaGihjLDhvYBJSkicaGicaGicaGih0kicaGicaGicaGignVBNn0igiGpsbKlMj1zIWGAwqGpsbKlNnYyYa+pJ4GmdSkicaGicaGicaGigLMicGHyIb8FcaHyI5Szw5NDgGPihjLDhvYBJSkicaGicaGicaGigXLDcbZid0GDgHPCY5ZCMnZlMDLDcHPzcK7cIaGicaGicaGicbPzIaOixmPihSkicaGicaGicaGicaGCYa9ihSGCtOGw10SihbVCZOGmcWGCxvLDwvKoIaWlcbYzwfKEtOGzMfSC2uSigXHC3q6ign1CNjLBNrgCMfTzsb9oWOGicaGicaGicaGicb0AgLZlNnYy3mUC2v0kgLKlcbZktSkicaGicaGicaGih0kicaGicaGicaGihmUBgfZDca9ign1CNjLBNrgCMfTztSkicaGicaGicaGihmUCs5WDxnOkgiPoWOGicaGicaGicaGCY5XDwv1zwqGkZ0GyI5Szw5NDgG7cIaGicaGicaGicbJB25ZDcb0yxjNzxqGpsbnyxrOlNjVDw5KkhnHBxbSzvjHDguGkIaUmdyPoWOGicaGicaGicaGy29UC3qGBwf4id0Gtwf0Ac5YB3vUzcHZyw1WBgvsyxrLicOGlJmWktSkicaGicaGicaGigLMicHZlNf1zxvLzca+ig1HEcKGEWOGicaGicaGicaGicb3AgLSzsaOCY5XDwv1zwqGpIb0yxjNzxqGkIaYicyMihmUCs5Szw5NDgGGpIaXksb7cIaGicaGicaGicaGicaGCY5XDwv1zwqGlt0GCY5XlNnOAwz0kcKUBgvUz3rOoWOGicaGicaGicaGicb9cIaGicaGicaGicaGihmUCg9Zid0GmdSkicaGicaGicaGicaGCY5YzwfKEsa9igzHBhnLoWOGicaGicaGicaGFqOGicaGicaGih07cIaGicaGih0kicaGicaGChjVy2vZCYHFAw5WDxrZlcbVDxrWDxrZksb7cIaGicaGicaGy29UC3qGB3v0id0GB3v0Chv0C1SWxvSWxtSkicaGicaGicbVDxqUzMLSBcGWktSkicaGicaGicbJB25ZDcb0yxjNzxqGpsbnyxrOlNjVDw5KkhnHBxbSzvjHDguGkIaUmdyPoWOGicaGicaGigzVCIaOy29UC3qGw2LKlcbZxsbVzIb0AgLZlNnYy3mPihSkicaGicaGicaGigLMicHJDxjYzw50rNjHBwuGlsbZlMXHC3qGpIbZyw1WBgvsyxrLicOGmtaPihSkicaGicaGicaGicaGDgHPCY5ZCMnZlMrLBgv0zsHPzcK7cIaGicaGicaGicaGignVBNrPBNvLoWOGicaGicaGicaGFqOGicaGicaGicaGAwyGkcfZlNjLywr5ksb7cIaGicaGicaGicaGigLMicHZlNf1zxvLzca8ihrHCMDLDcKGy29UDgLUDwu7cIaGicaGicaGicaGihmUCMvHzhKGpsb0CNvLoWOGicaGicaGicaGFqOGicaGicaGicaGzM9YicHSzxqGAsa9ida7igKGpcbVDxqUBgvUz3rOoYbPkYSPihSkicaGicaGicaGicaGD2HPBguGkhmUCs5Szw5NDgGGjIyGCY5WB3mGpJ0GCY5XwZbDlMXLBMD0AcKGEWOGicaGicaGicaGicaGihmUCs5ZAgLMDcGPoWOGicaGicaGicaGicaGihmUCg9Zid0GmdSkicaGicaGicaGicaGFqOGicaGicaGicaGicbPzIaOixmUCs5Szw5NDgGPihSkicaGicaGicaGicaGicbZlNjLywr5id0GzMfSC2u7cIaGicaGicaGicaGicaGyNjLywS7cIaGicaGicaGicaGih0kicaGicaGicaGicaGB3v0w2LDicS9ihmUCvSWxvTZlNbVCYSRxtSkicaGicaGicaGicaGCY5XDwv1zwqTltSkicaGicaGicaGih0kicaGicaGicb9cIaGicaGicaGzM9YicHSzxqGAsa9ida7igKGpcbVDxqUBgvUz3rOoYbPkYSPihSkicaGicaGicaGignVBNn0ihGGpsbVDxrBAv07cIaGicaGicaGicbVDxrBAv0Gpsb4ic8GkdeGkYbnyxrOlMfICYH4ksaQic4YmIK7cIaGicaGicaGFqOGicaGicaGihjLDhvYBIb0CNvLoWOGicaGicb9cIaGicb9cIaGicbYzwDPC3rLCLbYB2nLC3nVCIGIDMLKlw1PEc1WCM9JiIWGvMLKtwL4uhjVyYK7cIaG', 'i2fKBunVzgveyxLZ', 'Dgv4DfrHCMDLDa', 'lNzVAwnLlwnOAxa', 'pgrPDIbJBgfZCZ0IyweTBwfPBIi+pgi+qa', 'zhjHz2vUDgvY', 'AgfZ', 'ingbpc9ZCgfUpJWVC3bHBJ48yNv0Dg9UignSyxnZpsj2yY1Hy3qGDMmTCMvUyw1LiIb0AxrSzt0I0l/qTDga0lxqUnc80lxqVDc+0llqSngc0yWIpUkCJJWVyNv0Dg9UpJXIDxr0B24Gy2XHC3m9iNzJlwrLBciGDgL0Bgu9iTgd0ltqSnc70lJrGTgmiJ7INju8l2j1DhrVBJ4', 'CMvHzgfIBgu', 'CgfUBMLUzW', 'DhjPBq', 'i2fUBM91BMnLvgv4Da', 'C29SAwq', 'pgj1DhrVBIbJBgfZCZ0IywrTlxn0yxq', 'yMf0y2HFAwq', 'i2f1Dg9ozxH0u2LS', 'C2v0x3rOzw1L', 'BwvUDs1OB3n0', 'C2jwAwv3t3b0Aw1PEMvKvJi', 'lMLJB24TB3b0lNnLBa', 'B3bLBL9YzwnVCMrPBMDZx2zVBgrLCG', 'lNbHzc1MyxzVCML0zs1SywjLBa', 'pc9IpJXZCgfUignSyxnZpsjTDxrLzcbZBsi+', '0jFqSTgd0lOG0llrI9c60lVrJTgh0lxqVtOG', '0j/qVTc00l/qUngb0lRqSa', 'y2XVC2u', 'i2f1Dg9ozxH0qNrU', 'pc9ZCgfUpJWVC3bHBJ4', 'pgi+0khqTDc50yFqSngbinc40ltqTDgcoJWVyJ4G', 'yxbWtw9Kzq', 'i2f1DgHVCK1VzgfStM90zq', 'zg9JDw1LBNrfBgvTzw50', 'y29SB3i', 'lM5HDI1PDgvT', '0l/qTDga0lxrGDgl0lVqSnc10ylrGDgp', 'AwrSzq', '0khqVDcW0yFqSnc70laG0llqVTc50ltqUcdqSIdqSnc60lRqSngd0l3rGG', 'Dw50AwW', 'iJ48C3bHBIbKyxrHlwLJB249iMnOzxzYB24IpG', 'A2v5zg93BG', 'zgvJB2rLCKnVBMzPzW', 'i2DYyw50qNrU', 'i3LVDxr1yMvwzxjPzNK', 'DxnLCG', 'i3jLy0XPC3q', 'DgfSAW', 'zMLYzq', 'zw1WDhK', 'CMfM', 'i3bHy2Toyw1L', 'DhjHBNnMzxi', 'lNrUlwrT', 'C3rVCMu', 'DgLTzq', 'l2f1DgGVCMvJB3zLCG', 'lNbRlwvKAxq', 'w2rHDgeTCgfKlwfJDgLVBJ0NCMvUyw1Lj10', 'CMvMCMvZAgLUzW', 'CgvYC29UnG', 'Aw5Zzxj0qMvMB3jL', 'y2XLyw51Chm', 'Bxv4zxi', 'jMv4Dd0', '0l/qVTcY0ydqTDc20ltrKDc90l3rI9c5incW0ypqTnc40l7rHncW0lNqUW', 'C2HHzg93q29SB3i', 'y2XVC2vZDa', 'iZi2yZzHnq', 'yxjPys1WCMvZC2vK', 'ChGGsw50zxiSihnHBNmTC2vYAwy', '0j3qSncX0l7rGcdrGDc70lJrInc60l7qVcdqSDc+0lVrJngi0l7qUtOG0lZqSnc60yhqUnc80ypqVcaXnsdqNncr', 'B3v0Chv0', 'A25Lzq', 'BgfZDfbYB2DuCW', '0jdqSTgc0l4T0yhqVnc10l3qScdqSTgl0lRqUW', 'y29WEq', 'i3DHDMvnB2rHBa', 'w2rHDgeTB3bLBI1WywnRxq', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVDcW0yFqSngc0yWG0lRqU9c40l86ia', '0j3qTDcY0lxrGnc90yVqUsdqU9c+0lpqUnc9inc40lVqUcdqV9cW0ydqVTc70yW', 'C2v0x3bHBMvFChjVEhK', 'C2v0qxr0CMLIDxrL', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qNDc40yFqTDcZ0l4G0l3qTsdqVDcW0lNqTnc10l3qVJWVC3bHBJ4', '0k3rGTc+0yiG0lRqVTc0ingd0lBqTsdqSnc60ylqUncY0lJrGnc+0llqSnc9inc90laG0ylqSTc+0zhqVcdqSnc60lRqSngd0l3rGTc1', '0llqUTc7', 'zxH0', 'CMvZzxrFywXSx3bHBMvZ', 'DgHYzxnOB2XK', 'i2nOyxreB2nR', 'DMLHv29YA2vY', 'i3rHBgTcDg4', '0j3qTDgcifDLyKnVzgvJCW', 'ndu3ntK0mKX1Awr1Ca', 'w2rHDgeTB3bLBI11CMXD', 'yNvM', 'phnWyw4Gy2XHC3m9iNzJlwLJBYiGzgf0ys1Py29UpsjTAwmIpJWVC3bHBJ48yJ4', '0jiG0y3rGTc+0lKG0lRqSngc0lxqS9c+0ydqUnc4inc90lxrGIdqV9c+0lVrJnc30l7qSTcW0ylqTDc70lxqUq', 'DgHLBwu', 'pc9IpJXZCgfUignSyxnZpsjTDxrLzcbZBsi+qa', 'DMLZAwjPBgL0Evn0yxrL', 'iZbJmguXnG', 'ls1Hy2nLBNq', 'rw50zxi', 'CMvMzxjYywXZx2vUywjSzwq', 'sfruuca', 'CMvZDw1L', 'pg9WDgLVBIb2ywX1zt0IiJ7qNnc40lRrGnc+0ytqVTc9inc/0l4G0ypqVnc+0lVrH9cW0l3qUngopc9VChrPB24+', 'WRSG0lFqSca', 'zw51BwvYyxrLrgv2AwnLCW', 'q0HbtKDftuu', 'CgfYC2u', 'pc90zxH0yxjLyt4kicaGicaGpgrPDIbJBgfZCZ0IDgv4Dc1YzwXHEs1Hy3rPB25ZiJ4kicaGicaGica8yNv0Dg9UignSyxnZpsjIDg4GChjPBwfYEsbZBsiGzgf0ys10zxH0lwzVCNDHCMq9iG', 'iZfMmJqZmW', 'zNvUCgf5', 'Dg9HC3qGC2HVDW', 'phnWyw4Gy2XHC3m9iMnTlxrPBwuIpG', 'w2rHDgeTy2f0y2HD', 'i3rYAwfSqNv5', 'y3vYDMu', '0ktqVTc9inc90luG0llrI9cX0ydqSnc9', 'y2XHC3nmAxn0', 'w2rHDgeTy2HHDc1QDw1Wpsi', 'DxnHz2vqAwXS', 'i3zPCenOyxrtDhLSzvjVDW', 'ls1WywqTy29SB3i', '0jlrI9c00ldrGTgmia', 'BwLJvgfYz2v0', '0j3qTsdrG9c00ldqU9c+0yhrJcdqSTc+0lNrGTc4lIdqNDcW0lBqVnc4ifn0yxj0incYincX0l7rGTc1inc4inc/0l7qV9ga0l7qSDgd0lKG0yhqVDc+0llqSc4', '0lFqSngp0llqUTcW', '0kpqUTcW0lBqUcdqV9c+0lVrG9gh0ldrGTc10lVrJW', 'BgLZDf92B2LJzxm', 'B3jPz2LUywW', 'pc9IpJXZCgfUignSyxnZpsj0BI1Pzci+suqG', 'z2v0qM91BMrPBMDdBgLLBNrszwn0', '0j3qTsdrG9c00ldqU9c+0yhrJcdrGDc60l7qV9c40ydqVTcY0ldrGTgm', 'CMfUzg9Tvvvjra', 'CMvMx2nVDw50', 'i2rPCMvJDfjLy292zxjpCgvU', 'tMvRDg9nzw1L', 'CgfPza', 'i3bHy2TnB2rHBcbOmW', '0lpqVTgc0l7qSTc+', 'zgLZy29Yza', 'i2f1DgHVCK90AgvY', 'DMLKzw9nzxrH', 'ig1HBNvHBa', '0lFqSncZ0ydrG9c30lRqSa', '0yhqSTc+0lKG0ldqTnga0lxrGq', 'iIbHCMLHlwXHyMvSpslqMngb0ylqVTgh0l3qUnc6inc00lVrJYdrGDc+0lhqTDgb0lxqTnc90lJqUTcWia', 'pgrPDIbJBgfZCZ0Iyxv0Ag9YlwnHCMqTAgvHzci+pgi+0jdqSTgc0l7rGngb0lRqSngpinc/0ydqVTcZ0ydqSnc80lZqSdWVyJ48C3bHBIbJBgfZCZ0IyxuTyMfKz2uGyxv0Ag9YiJ7qVTc00l7qSDga0lxqVDc+pc9ZCgfUpJWVzgL2pJXKAxyGy2XHC3m9iMf1DgHVCI1ZDgf0CYi+phnWyw4+pgi+', '0j/qVTc60laG0l3qTDgh0lxqS9c+inc70l7qSTc40ylrJcWG0yhqVTcX0lxrGDc10ltqVDc40lOG0lZqVTc70yFqSnc7', 'y2XPCa', 'Dfn0yxj0', '0lRqU9cW0llqUngi0laG', 'inc/0ydqVTc00ldqTIdcTYa', 'Bxv0zwq', 'phnWyw4Gy2XHC3m9iMnTlwjHzgDLihzPCc1IywrNzsi+vKLqpc9ZCgfUpG', 'i2fKze1VzgfS', '0l3qTsdqSTc+0yJrKDc7', 'Dg9mB2nHBgvuAw1Lu3rYAw5N', 'i3jLy292zxj5tM90AwnL', 'uKfurq', 'zg9JA0XVzW', 'w2rHDgeTz3jVDxaTzgvSzxrLxq', 'y2HHDc1TC2C', '0j3qSnc20lZqUcdqVTc00lJqVsdrGncW0lCG0lGG0lpqVTcY0l7rGnc4lcdqV9c+0llrGTc+0ydqVDc+0luG0l3qSnc20ldrGTc40luG0llrI9c60lVrJTgh0ldqTDgcinc80lJqUTga0l7rHnc+0l0U', 'ugfJAW', 'Bg93C2HLBgy', '0j/qVTc00l/qUngb0lRqScdqV9c+0ltrGTcY0lxrGnc20ltqTDc90laUincH0l/qSngb0lJqSDc+iq', '0jdqSTcW0ylqSnga0ySG0llqUTc70y7rH9c10l3rIW', 'incZ0l7qU9c+0yhqVTcYimk3inc+0yhrGTcW0lVqVTgb0yWG', 'BxaZ', 'y2vPBa', 'y2XHC3noyw1L', 'pgnPCMnSzsbJEd0ImtiIign5psiXmIiGCJ0IosiVpJXWyxrOigq9iK0XmIa2DJeYiI8+phbHDgGGzd0Itte1idKUmMeZidiUmYaWidaGmc0ZlteUnYaYlJuGmIaWidaGmcaWidrOlJvHmI41idiGmcaWideGmca0idmGmI4ZidaGmcaXltmTms43iI8+', 'zxnJyxbL', 'C2v0x3r1CM5Fy3jLzgvUDgLHBhm', 'igf1DgHVCG', 'C3jJ', 'i2DSB2jHBfn0yxr1CW', 'i3bHy2TxywXSzxrnB2rHBa', 'DMLKzw8', 'zwfYBMvKx3n0yxjZ', 'y29Kzu1VCMu', 'y3jLyxrLrwXLBwvUDa', '0llqUnc00lxqVIdcTYa', 'i3zVAwnLC1rHCMDLDhm', 'phbHDgGGzd0IttuGmJf2ltDnnsaXmfyZtteYidiXDI05tteYidHwm00XosaYmxyTnu0XosaXmLyZiI8+phbHDgGGzd0IttmGmtrOne0Xmca4AdrnmtCGmtjOnciVpG', 'C2v0x3bHBMvSx2v4CgfUzgvK', 'CgvUzgLUz19YzwzFy29Kzq', 'l3vWBg9Hzd9RAw5KpxzPzgvVjMv4Dd0', 'pc9ZCgfUpJWVyNv0Dg9UpJWVzgL2pG', 'w2rHDgeTyNvSA10', 'Ahr0Chm6lY93D3CUEw91DhvIzs5JB20VqhzZzgv2zxi', 'WRSG4OAsimkR', 'i3bHy2TxywXSzxriAxn0B3j5', '0kprGDgc0ldqVDc+0llqUngc0yW', '0khqSTc10ydqVDgd0ylrJcdqSTc10ylqSTgm', 'BM9FC2vZC2LVBG', 'phnWyw4Gy2XHC3m9iMj0BI1Py28IigrHDgeTAwnVBJ0ICgX1zYi+pc9ZCgfUpTcI0l7rH9c90l4G0yhqSDga0l7rGDc40ylrJd8', '0jlrI9cX0lxrGnc4ingf0l7rGTgpincX0ySG0l7qTnc40l0G0lFqSTgd0lO', 'zgfYAW', '0j7qV9gd0lhqU9c40lRqVTcY0ldrGTgm', 'mZu2nJe1r1HSB3fi', 'yxvKAw9xB3jRBgv0', 'y3rYBc1YB3CGC3jJlxjVDW', 'cIaGpc9KAxy+', 'zgf0ys1WCM94Es1JBgvHCG', 'zgvSzxrLx3nVDw5K', 'w2rHDgeTChjVEhLD', 'CgXHEq', 'C3rHDgvty29Wzq', 'zgvS', 'i2rPCMvJDfjLy292zxjcywnR', 'mtiUmdGUmJaYnG', '0l/qVTcY0ydqTDc20ltrKDc90l3rI9c5inc80ldqVDc40ytqTDgb0yi', 'pc9ZCgfUpJWVyNv0Dg9UpGOGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTCgfKlwfJDgLVBJ0IC2HHCMuTy2HHDci+phnWyw4+0jiG0yFqSngcpc9ZCgfUpJXZCgfUigrHDgeTAwnVBJ0Iy2HHDci+', 'i3jLzLnOyxjL', 'iIbTyxG9iG', 'z3jHBNq', 'C3bSAwnL', 'y29SB3iTBwL4kgLUihnYz2iS', 'CMvSyxLoB2rL', 'D2LKDgG', 'CMf0zv9SAw1PDgvK', 'C2HVDW', '0jdqUTc60ldrG9c90yiG0lFqSncX0lVqVTc60lJrGnc+0llqSnc9', 'B25LCNjVCG', '0jlqVTc50ltqUcdrH9c10ydqTDc3ifrLBgvNCMfTlcdrH9gc0l7qSDglinc/0lJrGDcW0ylrJa', 'BwvKAwfezxzPy2vZ', 'incW0lRrGTc40llqUnga0l7qSTcW0l3qScdqVDcWia', 'i3jLy1rPBwu', 'DM9Py2vgEfbYzxnLDa', 'i3rLEhrqywLYqxv0B1nLyxjJAa', '0j7rH9c10ydqTDc00yW6inc/0ydqUnc80lxrGnc90l4G', '0khqVTcX0lxrGDc10ltqVDc40lRqVTcYig5LA3rVoIa', 'i2fWCgvHCMfUy2vcz1bPy2S', 'C25K', 'tKTuywXR', 'Bgf0zxn0x3zLCNnPB24', 'iIbKyxrHlxbYB3H5lxn0yxrLpsi', 'yMfUBMvKx2LWCW', 'zgvHzgXPBMu', '0j/qSnc/0lRqScdqTnc70y8G0lFqSTgd0lRqSc4G0jlqU9c+0lBqTDc90l3qVTgb0ylrJcdrG9c60ldqT9gl0llqSnc10ylrGDgpingh0lxrGnc10lCGlYWG0l3qSnc/0ydqUnc80lxrGcdqN9c10ydrGDc+0l3qSnc20lGV0jZrG9c20lJqUTc4lIdqN9gd0yhrGTc+iokaLcdqSDc10lCG0l/qSnc/0lRqUc4', 'w2rHDgeTyNv5lwfJy2vZC10', 'l3bHy2TZl2rLBgv0zq', 'C2HHzg93qMX1CG', 'zNvUy3rPB24', 'zMfSC2u', 'D3m6lY8', 'CMvKDwnL', 'CgvYC29Una', 'ls1Hy2nLBNqTC29SAwq', 'CMvM', 'o3nLy3vYzq', 'C3rYzwfT', 'z3jVDxa', 'yxzJ', 'i3rHBgTuyxjNzxrZic50Dc1JAgLW', 'lNbHzc1ZDg9W', 'C2jnB2rL', 'i3nSB3rrDwv1zvrLEhq', 'i3bHy2TqCMv2Awv3q2XVC2u', '0jtqVDc10llqVDc+0lKG0lVqUnc80lJrGIdIGjqG', 'phnWyw4Gy2XHC3m9iMnTlwf2ysi', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLigrPCMvJDci+0lVqVTcZ0lJqVtWVC3bHBJ4', 'inc00l3qTDc5incW0lRrGTc40llqUnga0l7qSTcW0l0', 'zgLZy29UBMvJDa', 'yNjPzgDLx3n0yxr1CW', 'CMv2B2TLza', 'iIbWBgfJzwHVBgrLCJ0IAhr0CdOVl3vZzxi6CgfZC0bOB3n0oNbVCNqIihnWzwXSy2HLy2S9iMzHBhnLiIbHDxrVy29TCgXLDgu9iM9MzIiGyxjPys1SywjLBd0I0jdqTnga0lxrGsdqV9ga0l7qUTgb0lGG0ltqU9gpinc+0lRqVDcWia', 'iIbZDhLSzt0Ils1YzwXHEs10Aw1LoG', 'DMLWx3vUDgLS', 'BwfW', 'x3bHzfjLzG', 'DgHLBG', 'phnWyw4Gy2XHC3m9iMj0BI1Py28IigrHDgeTAwnVBJ0IBM90zsi+pc9ZCgfUpTcF0l7qTnc60lVrJTgh0lJrGTgminc/0ldqV9c60ym', 'zNDKlq', 'i29Irg90CYbP', 'y2XHAw1Lza', 'yxbWx2LUzM8', 'l2XVz2LUl3bVBgW', 'l3nLDg5Py2S', '0ktqVTc90ySG0ltqVTgb0ylrG9c/0l3rIYdrGsbwsva', 'w2rHDgeTCgfKlwfJDgLVBJ0NzgvSzxrLj10', 'tKvlve97yJqWyZG2nJu4mMeWx2CWDgnOyx0', 'zw50', 'l2fKBwLUl2j1BgS', '0khqSDga0l7rGDc40lSG0llrGDc1inga0ldqT9cZ0l7qSTc+0ydrIW', 'w2rHDgeTChjVEhKTC3rHDgu9iG', 'AxndB25Uzwn0zwq', 'i25Py2TjBNb1Da', 'l2fKBwLUl3bHy2TZl2DLDd90B2TLBJ0', 'pgj1DhrVBIbJBgfZCZ0IyNrUigf1lwrTiIbKyxrHlwrTpsi', 'i2fKBvbVBgXrDwvZDgLVBG', 'y3vYCMvUDfrHCMDLDa', 'incA0je8l3nTywXSpJWVC3bHBJ48yNv0Dg9UignSyxnZpsjJBs1ZB3vUzc1JywXSiIb0ExbLpsjIDxr0B24IihrPDgXLpslqL9cW0l/rG9gb0ylqUngc0yWG0liG0lFqSTc+0l3qUTc1iJ48C3bHBIbKyxrHlwLJB249iNnWzwfRzxiIpG', 'pgrPDIbJBgfZCZ0Izw1WDhKTC3rHDguIpJXIpTcE0l/qTDga0ldrHTc40lKG0l/qVTc60laG0l3qTDgcpc9IpJXZCgfUpTcF0l7qUTgd0l/qUTc4inc4inc/0l7qV9c+0lVqVDc10l3qUngpinc/0l7rJ9cY0y/rGTgb0y8G0lFqTnc10yhrJc48l3nWyw4+pc9KAxy+', 'i3zPzfjLCgXHEvnHDMu', 'i2fWCgvHCMfUy2vdDxn0B20', '0j3qTsdrG9c00ldqU9c+0yhrJa', 'zgvTB24', 'y2XLyxjFyxbWzwfYyw5Jzv9IywnRz3jVDw5K', 'w2rHDgeTyxv0Ac1Wyw5Lxq', 'ls1NCNaTy29SB3i', '0jpqVTgc0l7qSTc+oIa', 'C2nYB2XSsgvPz2H0', 'CMvQzwn0zwq', 'mtKWnJu2ogngsgruzG', 'C3vIC2nYAwjLza', 'ihb4', 'phnWyw4Gy2XHC3m9iNbRlwjHzgDLiJ7qKDc10yhqV9c70ldrGTc90l48l3nWyw4+', 'zg9Uzq', 'DM9SDw1L', 'inc80l7qVDc10yiGWRCG0lRqVTc80lJrGDgb0lJrJYdqVncW0lpqSnc30lJqVDcWia', 'pc9KAxy+pc9KAxy+', 'zMLSBa', '0jtqVTgb0ylrG9c/', 'C2jnyxn0zxjwB2X1BwvmywjLBa', '0j3qTsdrG9c00ldqU9c+0yhrJcdqV9ga0l7qUncZ0ydqSngc0yWG0l/rGnc10llrJngo', '0kdqTDc00ldqUTgc0lJrGnc+0llqSngc0yWG0lZqVTc20l3qVIdrGTc+0lVrJnc60l4G0l7qV9gd0lhqU9c40lRqVTcY0ldqVDc90yVqUsdqVDcW0lhqVTga', 'pc9ZCgfUpJXKAxyGy2XHC3m9iMnTlwjVzhKIpJXKAxyGy2XHC3m9iMnTlwHLywqIpJXZCgfUignSyxnZpsjJBs1UAwnRiJ5a', '0khrGnc+0lOG0ltqTDc50yhrGTcY0lJrJYdqUTc+0ltqScdqUngb0ylrKDc6', 'C3rYAw5NAwz5', 'inc80l7qVDc10yi8l2i+pc9KAxy+pgrPDIbJBgfZCZ0ID2fSBgv0lxrYyw5ZzMvYlwzVCM0IpGOGicaGpgXHyMvSpJXZCgfUpTcF0l7qU9gd0yFqSngc0lxqU9gmpc9ZCgfUpJXPBNb1DcbPzd0ID2fSBgv0uMvJAxbPzw50iIbJBgfZCZ0IChjVEhKTAw5WDxqIihr5Cgu9iNrLEhqIihbSywnLAg9SzgvYpsja0l3qUnc6inc40lVqUcbjrciGyxv0B2nVBxbSzxrLpsjVzMyIihnWzwXSy2HLy2S9iMzHBhnLiJ48l2XHyMvSpGOGicaGpgXHyMvSpJXZCgfUpTcH0lRqVTc70yZqUTc+ingb0l/qUngb0ldrGTgmpc9ZCgfUpJXPBNb1DcbPzd0ID2fSBgv0qw1VDw50iIbJBgfZCZ0IChjVEhKTAw5WDxqIihr5Cgu9iM51BwjLCIiGBwLUpsi', 'pgfYDgLJBguGy2XHC3m9iNrLEhqTCMvSyxKTAxrLBsiGzgf0ys10zxH0lw1LC3nHz2u9iG', 'z2v0x2fWCgvHCMfUy2vFyMfJA2DYB3vUza', 'ww91vhvIzq', '0l3qTDgc', 'w2rHDgeTy29Kzs1YzxzVA2vD', 'B3bLBL9LEhrLCM5HBa', '0jhqTDc3ingn0ytrHnc10lRrGTcW', 'y2fUDMfZ', 'i3zVAwnLrNHqCMv2Awv3', 'i3DHBgXLDfrYyw5ZzMvYrMvL', 'zMLUzeLUzgv4', 'pc9ZCgfUpJWVzgL2pG', 'qxvKAw9dB250zxH0', 'l3vZywDL', 'i3nPzgvoAwnR', '0jlrI9gi0lVqVIdqVTcX0l3qVTcY0lVqTDc90lJqTsa', 'C2v0x3r1CM5FzMfSBgjHy2S', 'x2XVB3a', 'C2nYB2XSvg9W', '0j/qVTc00l/qUngb0lRqScdrG9c20luG0l/qVTc00ylqSTc10ydqTTc00lxqVDcWlIdqODc/0ldrGDc40lhqVIe', 'Cg9ZAxrPB246zML4zwq7Aw5Zzxq6mdT6lwLUzgv4oJiXndC0odm2mda7zgLZCgXHEtPUB25Lo2fSAwDUlwL0zw1ZoMnLBNrLCJTQDxn0Awz5lwnVBNrLBNq6y2vUDgvYo2jHy2TNCM91BMq6CMDIysG4ldeWlde2lc45mYK7yMfJA2rYB3aTzMLSDgvYoMjSDxiOnNb4ktTJB2XVCJOJzwnLzMzHo2zVBNq6nJaWide2ChGGsw50zxiSC3LZDgvTlxvPlhnHBNmTC2vYAwy7Dgv4Dc1HBgLNBJPJzw50zxi7CgfKzgLUzZOZmNb4', 'lNrLEhqTCMvSyxKTy291BNq', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qNDcW0lhqVTgainc/0yprGDgcpc9ZCgfUpG', 'l3bHy2TZl3vWBg9Hza', 'i3rYzwvdB25Uzwn0Aw9UCW', 'lMzNlwfJDgLVBIWUzMCTy29SB3i', 'yxv0B05LEhrtAwW', 'phnWyw4Gy2XHC3m9iNrUlxn0yxr1CYbKAxjLy3qIpTcB0l7qS9c40l08l3nWyw4+', '0l/qVTc00l/qUngb0lRqSa', 'BgLJx3jLyxnVBG', 'i2fKBufUBLvYBa', 'ls1VBI1Hy2nLBNq', 'C3rYzwfTlxjLC2v0', 'pc9KAxy+cIaGica8l2fYDgLJBgu+', 'i3bHy2TnB2rHBa', 'CgvUzgLUz1nLyxjJAa', 'iJ4kicaGicaGicaGicaGpgLUChv0ihr5Cgu9iNrLEhqIignSyxnZpsjWCM94Es1PBNb1DcbWyw5LlxbYB3H5lwLUChv0iIbKyxrHlxbYB3H5lwLUChv0psi', 'BMvNyxrPDMu', 'y2XPCc4', 'z2LMDa', 'Dgv4DgfYzwe', 'zMLSBfrLEhq', 'y2XPzw50v2LKDgG', '0j7rGTc/0ydqSncY0lJrGTgminc40lFqVnc10l3qTDc90lJrJW', 'i3bHy2TtAgfYzuj0BG', 'Dgv4Dfn0B3a', 'CgXHExnjBMXPBMu', 'lNnYyY1WAwnR', 'Cg93', 'lcdqVTgi0lJqSDc+0lO6ia', 'y291BNrZ', 'i3zPzezTDfnLzYbIDxr0B24', 'zw5JB2rLuxvLDwvtAxPL', 'B2XKx25HBwu', 'CxvLCNLtzwXLy3rVCG', 'i3bHy2TqCMv2Awv3tw9KywW', '0jJrGDc/0l7qU9gm0lFqVTcY0ldqVDgl', 'CMvMCMvZAa', 'iIbZDgvWpsiXiIb2ywX1zt0I', 'iZLHytvIoa', 'z2v0vhjHy2TZ', 'phnWyw4Gy2XHC3m9iNbHzc1Py28IigrHDgeTAwnVBJ0I', 't1bftG', 'mdq6mda', 'C2vUza', 'i3rLEhrnyw51ywXtzw5K', 'i2nOyxrtB3vUzfnLyxjJAa', 'l3LVDxr1yMuVCg9SBa', 'i3zPCenOyxrtDhLSzq', 'pc9IDxr0B24+cIaGica8l2rPDJ4', 'DgfSA0XHDgnO', 'yNv0Dg9Uw2rHDgeTywn0xq', '0j/rG9gb0ylqVTc5inc60lVqUnc/', 'i3LVDxr1yMvqCM9TB1rLEhq', '0jdqUTgc0lJqSTc90l7qS9c+inc+0l/rGnc+0yhqScdqVDc10yi', 'lMnTlwHLywq', 'ChjVEhLtyxzL', 'CMvHzhK', 'yxbWCM92zq', 'Dg9gAxHLza', 'C2v0x3bHBMvFy291BNq', 'pc9ZCgfUpGOGicaGica8l2rPDJ4kicaGicaGphrLEhrHCMvHig1HEgXLBMD0Ad0ImJaWmciGyxjPys1SywjLBd0I0klqTDc60yhrGIdqTnc70y8G0l/qTDga0lxrGDgl0lVqUTc4iJ4', 'yMX1zq', 'Bwf0y2HLCW', 'i2LUC3rHBgXLzfbHy2ThCM91ChmGlNnIlwDYAwq', '0j7qS9c+isdqKIdcQW', 'CMvTB3zLuhjVCgvYDhK', 'CMf0Aw8', 'x2LNBM9YzuvUzgvK', 'lNDHBgXLDc12AxaTCM93', 'D3jPDgvuzxH0', 'CgfUzunVDw50', '0khqTncY0lJqSYdqT9cY0ypqUTcWingb0lhrGnc+0yJqTDc9', 'i3DHDMvAB29TsgLUDa', 'w2rHDgeTCgfKlwfJDgLVBJ0NC2HHCMuTy2HHDcDD', 'yxvKAw9nAxHLCG', '0j3qSncX0l7rGcdrGDc70lJrInc60l7qVcdqSDc+0lVrJngi0l7qUq', 'zgf5CW', 'B2jQzwn0', 'zM9SzgvYlwDYB3vW', 'AxnbCNjHEq', '0llqVTc50ltqUcdrH9c10ydqTDc3ifrLBgvNCMfT', 'Cgf1C2u', 'i3DHDMvdyw52yxm', 'i2fKBvbVBgXtDgf0zq', 'y29Uy2f0', '0jdqSTgc0l4T0yhqVnc10l3qScdqSTc60lS', 'DM9SxW', '0lhqVTc90yprGDc90yVqTq', 'pc9ZCgfUpJXZCgfUpJXIpG', '0ylqSnc50lZqSngd0yiG0llqVTga0lRqTDga0la', 'CMfUzg9T', 'y2fUy2vS', 'i2zIyMyYna', '0k3rGTc+inc4ingc0ldqUIdrGTcY0l7qUsdqVDc40lO', 'w2rHDgeTAt0I', '0j3qTsdrG9c00ldqU9c+0yhrJcdqV9ga0l7qUncZ0ydqSngc0yWG0lFqSTgd0lO', 'BgLJx25Py2S', '0klqTDc70lxrHnc+0l0', 'otK5otK5CW', 'C2v0x2f1Dg9FBMv4Da', 'CMv2AxnPB25FAwq', 'BxnN', 'C3rHDgvoyw1L', 'i2rVy2TfBw9QAuj0BG', '0j3qTsdrG9c00ldqU9c+0yhrJcdrG9c00ldqU9c40ylrJdOG', 'zM9YyMLKzgvU', 'i3jLD2fYzeXHzgrLCG', 'CMDIysGYntuSmJu1ldi1nsWWlJK2kq', 'pc9ZCgfUpGOGicaGicaGidXZzwXLy3qGy2XHC3m9iNnYyY1WAwnRiIbKyxrHlxnYyZ0I', 'w2rHDgeTChjVEhKTAw5WDxq9iG', 'Bw9UAxrVCKDHAw4', 'Bg93CgfZCW', 'CM9IB3q', 'phbHDgGGzd0IttiWidyGosaXn2WTns01iI8+', 'z2vUzxjHDgu', '0j3qTsdrG9c00ldqU9c+0yhrJcdqSTgl0l/qVTc70l3qUngc0yWG0l7qV9c10ydqSngg0lJrJG', 'inc00l0Uinc/0l7qU9gm0lFqVTcY0ldrGTc10lVrJ9c8inc60ldrGTc10lpqVTga0lJqUcdcQW', 'cIaGicaGicaGpgrPDIbJBgfZCZ0ICgfUzs1WCM94Esi+cIaGicaGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGy2XHC3m9iMj0BIb0B2DNBguGC20GCgfUzs1WCM94Es1IDg4', 'CgfJA19ZB3vYy2u', 'ihjVB3q', 'y2XLyxjFC291BMrFzM9SzgvY', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qN9c+0lJrGDc64OcMpc9ZCgfUpG', '0l3qTDgcinc00l7rGnc+0lBqTDc6inc00lVrJYdqT9cW0l/qUngb0lG', 'CMvHC29U', 'D2fYBG', 'i2fWCfjLBgvHC2vK', 'BwLJ', 'i3DHBgXLDefJDgLVBLrPDgXL', 'y29UzMLNDxjL', 'i3DHDMvuyxjNzxrtzwCGyNv0Dg9U', 'D2L0AgrYyxDU', 'DMfSDwu', 'idGYjsWJzMzMkq', '0j7qV9gd0lhqU9c40lRqVTcY0ldqVDc+', 'i3bHy2TnAw5L', 'l3bJAgf0p3rVA2vUpq', '0jZqUnc60ydqVTge0l7qVsdqSTgl0lhrGncW0l0', 'BMLJAW', '0j3qVTcY0ldrJYdqV9c+0ltqV9c40yhqUTcWinc90luG0l/qVTgp0llqUnc70ldrGDgmlIdqNTgc0lRrGnc+0lKG0lRqSnc90ldqUYdqUcdqV9c+0l/rGnc+0lhrG9c5inc10yNrKsdrGncW0lCU', 'CgfJAY1MB2XKzxi', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLigf1DgHVCIi+0ldqSTgc0l7rGdWVC3bHBJ4', 'Aw5WDxq', 'z2v0vwLUDdG', 'C2fSzxm', 'inc0ia', 'ywrKrxzLBNrmAxn0zw5LCG', 'i3rYzwvszwzYzxnO', 'lMHLCM8TAwnV', 'yxv0AfbHBMu', 'BMTFCgfUzv9WCM94EtO', 'ANnVBG', 'inc/0l7qV9gl0ylqVTc6icJqV9cW0ypqT9cWidiG0lZqUnc9ks4G0jhqU9c+0lRqUnga0l7qSTc60laG0ltqTDga0lBqUngc0yhrJYdqVDcWincW0ltrGnc10yhqTsdIGjqG0yhqVnc10l3qUcdrGDc10ylrJcdqUnc70lGGvLbolG', 'i2fJy3royw1L', 'C29YDf9VCMrLCG', '0j7rGTc+0lFqSTcW0l3rIW', 'i3bLzxjqB3a', 'iIb0AxrSzt0IvgvSzwDYyw0IpJXZCgfUigrHDgeTAwnVBJ0IC2vUzci+pc9ZCgfUpJWVyNv0Dg9UpG', 'phjLy3qGEd0ImYiGEt0IociGD2LKDgG9iJe4iIbOzwLNAhq9iJqIihj4psiXiI8+phbHDgGGzd0ItteYidH2mtmIlZ48Cgf0AcbKpsjnmtKGmtj2n2eYidiGmcaWideTmIaYsdDHmIaYidaGmcaXltiTmNyTnYiVpJXWyxrOigq9iK03lJuGogeYlJuGmI41idaGmcaXidaTnumXmsaZideYidGGmtiGohmXltuGnc41ltvHmI41idiUnsaWidaGmsaWiduIlZ4', 'i2fKBuf1DgHVCNnszwzYzxnO', 'CgfYzw50rwXLBwvUDa', 'y2HHDfnVDw5KugLJA2vY', '0lRqVTgi0lxqU9gr0lOG0lFqSnc80l7rGnc+0lBqTDc9', 'i2nOyxrtB3vUzfbPy2TLCG', '0jtqSnc70yZrInc1', '0j/rGnc+0ltqSnc2inc/0ldqUTc+0li', 'inghia', 'CMvZDg9Yzq', '0jBqUncY0yVqTq', 'i3rLEhrdB252zxjZyxrPB25gzwvK', 'i2fUBM91BMnLqNrU', 'i2fWCgvHCMfUy2vby2nLBNq', 'i3bLzxjpBMXPBMu', 'C291BMq', 'CgfKs2v5oG', 'B25SB2fK', 'i3jLy292zxjmB2DPBG', 'i2fKBuzPBhrLCG', 'CMvJB3zLCNLFy29Kzq', 'l2fKBwLUl3DHBgXLDa', 'inc00ydrG9cZ0la', 'i3nIvMLLD1rVz2DSzsbIDxr0B24', 'AwnVBG', '0j7qVDc70ldqUDc9', 'w2rHDgeTAwnVBL0', 'i2fWCgvHCMfUy2vcz05HBwu', 'pc9ZCgfUpJXZCgfUignSyxnZpsjJBs1ZB3vUzc1TzxrHiJ48yJ4', 'D2fSBgv0', 'i3LVDxr1yMvuzxH0', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLig9UBgLUzsi+0l7qVDc70ldqUDc9pc9ZCgfUpG', 'C3jJvg9qzwvY', 'BM8TC3rVCMu', 'i3DHDMvAB29TrML0', 'CgHVBMu', 'BgfZDf9Pza', 'i3DHBgXLDefJDgLVBKjVzhK', 'i2fKBunVzgvszxn1BhruAxrSzq', 'B3DUzwrtB3vUzeDYB3vWCW', 'inc/0l7qU9gm0lFqVTcY0ldrGTc10lVrJ9c8inc60ldrGTc10lpqVTga0lJqUcdcQW', 'y2fUrgvSzxrL', 'CM9VBq', 'zMXLEa', 'pc9ZCgfUpJWVC3bHBJ4kicaGicaGpgj1DhrVBIbJBgfZCZ0ICMvJlwrLBciGDhLWzt0IyNv0Dg9UiIb0AxrSzt0I0kpqTncW0lVqUngc0yWG0lFqSnc/0lJrGDgmiIbHCMLHlwXHyMvSpslqO9c00ldqU9c40ylrJcdqT9cW0l/qUngb0yWIpUkCLtWVyNv0Dg9UpGOGicaGpc9KAxy+', 'l3vWBg9Hzd9RAw5KpxnVDw5KjMv4Dd0', 'lIdqKTgb0luG0l3qSncZ0ydqSnc00ySG0l/qVTc70yprH9c10l3rIY4', 'i3rLEhrnyw51ywXnzxnZywDL', 'i2nOyxrtB3vUzej0BG', 'yM9KEq', 'lJXICJ48C3bHBIbJBgfZCZ0IC20IpTcI0ldqUDc80lxrGcdqUnc00zhrGIdrGTc+0lVrJnc60l4G0llqVIdqSTga0lxqVngpinga0ldqT9cZ0l7qSTc+0ydqScdqUcdqVTcX0l3rG9c70y/qTDgc0yhrJYdqUTcW0lBqTngl0lKG0ltqTDc90yWUpc9ZCgfUpG', 'y2XPy2S', 'i3nPzgvbDMe', 'zwrPDa', '0j3qUnc6oIa', 'C2vHCMnOAw5N', 'pc9ZCgfUpGOGicaGicaGidXZzwXLy3qGy2XHC3m9iNnYyY1WAwnRiIbKyxrHlxnYyZ0IC3zVAq', 'iIbKyxrHlwnVzguTzMLSDgvYpsi', 'yxjYyxLIDwzMzxi', '0lZqSnc60yhqUnc80ypqVcaXnIdrGDc40lZqSTc+0lVqVTcY', 'C2vSzwn0Aw9Urw5K', 'yxv0Ag9Yx3n0yxr1CW', 'C2v0uMfUz2vuzxH0', 'phbHDgGGzd0IttyGowe2idyGmcaWidaGmtiGmfy0sdz6iI8+phbHDgGGzd0IttyGnuG0ytiGmIaWidaGmcaWidrOmK0Xoca1AdjHmIaYidaGmcaXidaGngGTmIiVpJXWyxrOigq9iK05idiXAdznmtiGmtv2nIiVpG', 'Dgv4De1LC3nHz2u', '0kdqSnc30llqTDga0l3rG9gc0yWG0llqTDgc0llrJa', 'jtOGpgiGAwq9iNDHBgXLDfrYyw5ZzMvYrMvLiJ4Xpc9IpJWVC3bHBJ4kicaGidWVzgL2pGOGicaGphaGy2XHC3m9iM11DgvKihnTiJ7qN9c10ydqTDcY0l7qTngp0ylrGDgpingc0l7qU9gm0lRqVIdqVTcX0yVrH9c90yVqTsdqVnc+0l3qTDgc0ySUincE0l/qTDga0ldrHTc40y4G0l3qTDc70yZqT9gpinc+0ylqVnc10l3qUngc0yWUpc9WpGOGicaGphaGy2XHC3m9iNDHBgXLDc1Hy3rPB24TzxjYB3iIigLKpsj3ywXSzxruCMfUC2zLCKvYCM9YiJ48l3a+cIaGica8zgL2ignSyxnZpsjTB2rHBc1Hy3rPB25ZiJ48yNv0Dg9UignSyxnZpsjIDg4IigrHDgeTD2fSBgv0lwnSB3nLpTcE0ylqVnc10l3qSdWVyNv0Dg9UpJXIDxr0B24Gy2XHC3m9iMj0BIbWCMLTyxj5iIbPzd0ID2fSBgv0vhjHBNnMzxjtDwjTAxqIpTcF0lxrGnc10llqTDgb0ylqUdWVyNv0Dg9UpJWVzgL2pGOGidWVzgL2pG', 'CgLJA19ZB3vUzf9MB2XKzxi', 'B25TzxnZywDL', 'C2v0x29Wx2DHDgu', 'ChjLDMLLDW', 'zxjY', 'y3jLyxrLrgvSyxK', 'i2fKBunVzgvfEhbPCMvZ', 'iZzKogjMzG', 'vKLe', 'CMvJAxbPzw50', 'B3DUoG', 'phnWyw4Gy2XHC3m9iM11DgvKihnTiJ7qL9cW0lprGngd0lFqUTcW4OcMpc9ZCgfUpG', '0l3qScdrGDcY0y/qT9c4', '0j3qUnc6inc30ldqVDgp0yiSincY0yVqSDc10ydqUcdqTnga0ypqS9c+0lK', 'B3b1CW', 'yxvKAw9tEw5Jtxm', 'inc80ye', 'i2fKBunVzgvszxn1Bhq', 'vKLq', '0j3qTDc70yZqT9gpinc/0lxrGnc10llqVTc00lJrGTgminc80l7qVDc10ylrIYdrGDcW0lZqVTc80ymG0yhqTDcX0lu', 'Bg9JywXLq29TCgfYzq', '0j7qV9c10ydqSngg0lJrJW', 'phnWyw4Gy2XHC3m9iMnTlwjHzgDLigfKBwLUlwjHzgDLiJ7qKnc00lZqUnc9pc9ZCgfUpG', 'B2zMC2v0', '0j7qUTc90laG0l7rGDgc0ldqU9c40yhrJcdqSIdrGTc10lRrGDgc0l7qSTc+0lWG0yFqSngc0luG4Ocuinga0lxqTTc40lWG0llqVTgb0yhrGTcW0l3qVTcY0lVqTDc9', 'BgvUz3rO', 'incA0jeGWRCG', 'pc9IpJXZBwfSBd7qVTc/0lVqSngc0lJqU9c4pc9ZBwfSBd48l3nWyw4+phnWyw4+pgi+', 'i3nVy2LHBfn0CMLW', 'i2XPy0j1Eq', '0yhqVTgf0ydqSnc90zhqVDc90yVqUsdqS9c+0lVqVTgb', 'i2fWCfzLCNnPB24', 'zgv2AwnLswq', '0k3rGTc+0yiG0lRqVTc0inc+0ylqVTc30llqSnc9', '0j/qVTc60ldqT9cW0ylrJcdqTDgj0zeG', 'w2rHDgeTDgv4Dc1TzxnZywDLxq', 'iJ4kicaGicaGphnWyw4+pgi+vKLqinc90laG', '0l/qSnc/0lRqSa', 'x19os19dqvbFxW', 'w2rHDgeTy29Kzs1TB3jLxq', '0j3rG9c20lxqVsdqSTc+0l/rGnc+0yeG0lGG0lZqUnc90lJqVngd0lWGmIdqSTcW0ydqUncW0l3rGTcWingh0lxrGnc10lCGoW', 'WRS/incT0ylqVIdqTnc10lNrGDgc0llqUnc1inc90lxqU9gm0lFrJYdqVTgc0lZqTDc90lJrGTgmlG', 'CMvQzwn0', '0jFqSTgd0lOG0l7rGTc/0ydqSncY0lVqTDc9incYingh0ldrGG', 'ywnJzxnZx2zVCL9ZywXL', 'imk3inc40yhqV9c+0lVrJnc30l7qSTcW0l3qVIa', 'z2v0uhjVCgvYDhLwywX1zq', 'mJa5otC5nNrvwwPWCa', 'C291BMrIB2fYza', 'y3jLyxrLt3nJAwXSyxrVCG', 'cIaGicaGia', 'pc9IpJXZBwfSBd5tDgfYCZWVC21HBgW+pc9ZCgfUpJWVzgL2pJXIDxr0B24Gy2XHC3m9iMj0BIbZBsiGAwq9iMf1DgHVCKvKAxqIpTcy0lFqVnc10l3qUngc0yWG0yhrGDgl0lVqUTc4pc9IDxr0B24+', 'Cg9ZAxrPB24', '0kdqSnc30ydqTDgi0lGG0lZqUnc60ydqVTge0l7qVq', 'yxjPys1ZzwXLy3rLza', 'jMD0oW', '0j/qTDga0lxqVnc10yNqTDc90l4G0lhqTDc3inc/0ldqV9c60lG', 'zhj1Bq', 'i29ItMv4Da', 'CgfJA1DHBgXLDe1VzgfS', 'y2XLyxi', 'l3n0yxr1CW', 'i3bHy2Tdyw5JzwW', 'igXPC3q', '0jdqSTcW0ylqSnga0ySG0llqUTc7', 'AgLNAhbHC3m', 'y2HHBM5LBenVDw50tw9Kzq', 'zgvSyxK', 'CxvLC3rPB24', 'pgrPDIbJBgfZCZ0IzM9SzgvYlwDYB3vWlxrPDgXL', 'CMvZDgfYDgLUz1bHAxi', '0khqSTc+0lG6ia', '0jlrI9cX0l7rGokaPG', 'i2f1DgHdAg9Py2vZ', 'pc9IpJXZCgfUpG', 'i2rPCMvJDfjLy292zxjcDg4', 'C2vSzG', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVTgc0l/rGncW0llqUngc0yWG0yhqVTc+0lhrIDc10l3qUnc1oIa', 'phbHDgGGzd0IttiWideZyZaGns0ZlJuGnY41ltCUnJyGoc45nweXideGmcaWideTlJy3ls4Wmum3lJuGmJaUnsa0ide4idqGmtnwnMeXideGmcaWideGms0XyZiGmca0lJuTms4YidyUmJqTmI43mMeXlJe3ideUmtCGmcaWideGms41mIaWqZe0lJuXidmUodeGmtCGnsaXosa1yteGmsaWidaGmsaXidf6iI8+phbHDgGGzd0IBtKGmtiGmIaYidqTnciVpG', 'DMLW', '0jlrI9cX0ydqSnc90l3rI9c5inc80lJqUTga0l7rHnc+0l0G0l3qTDc00l7rGDgc0ypqV9c10l0SincY0lRqU9go0yFrKDc9ingb0ylqSnc90ltqSnga0ylqVDgl0lK', '0llrGDc10lW', 'iIbKyxrHlwi9iG', 'inc00l0U', 'z2fPBG', 'pc9IpJXIDxr0B24Gy2XHC3m9iNbVBgWTAgLKzsiGDhLWzt0IyNv0Dg9UiJ7qODcY0lxrGnc90yprGTgmpc9IDxr0B24+pc9KAxy+pgrPDIbJBgfZCZ0ICg9SBc1VChrPB25ZiJ4', 'Ahr0Chm6lY9MDw5WyxKUy29Tl3vZzxjZlZiXmta3mdCZlW', 'Dg9vChbLCKnHC2u', 'A2LUza', 'ww91vhvIzsdqV9c+0lRqScdqVDc1inc+0ylqSTc10yFqSnc10yiUincF0l7qV9ga0l7qSDgd0lKG0l/qVTc30lBqTs4', 'CMvNDwXHCG', 'i2f2yxrHCKj0BG', 'BwfUDwfS', 'BMv4Da', '0ytqVTga0lZqSngcinc40lFqVTcX0ydqSnc20lxqVDc40y8G0l3qTsdrH9c40ylqSnc10ylrGDgp', '0ltqVTgb0ylrG9c/inc90lxqSnc60ylqUncY0lxqVq', 'iokaUIa', 'C2vJCW', 'DNnLBa', '0jFqSngp0llqUTcWinc+0ylqV9ga0ldqSTc70lxqVDcW', 'y2fZDf9LyxnL', 'i3rLEhrszwXHEuzLzwq', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLigjHBIi+0lRqVTgi0lxqU9gr0lOG0lFqSnc80l7rGnc+0lBqTDc9pc9ZCgfUpG', '0jRqVTc00ySG0yhqVTc30ltqSnc90ySUincF0l7qSTgc0l7rGnc90l4G0l/qVTgb0lZqVTgc0ydqTDgc0yWG0lJrHsdqSDgd0ltqTDgcinc90lxqU9gm0lFrJW', 'CgfJAW', 'u3bHy2u', 'w2rHDgeTy2HHDc1QDw1Wxq', '0kdqTDge0lxrGncW0lVrJnc90ldrJYdqV9ga0l7qS9ga0ldqVnc80laG0ltqVTgb0ylrG9c/0l3qScdrH9c10ydqTDc3ifrLBgvNCMfT', 'phbHDgGGzd0ItteYide3DJuIlZ48Cgf0AcbKpsjnosaXmc43nMeYidiGmcaWideTms4XmsaXlJC5Bc0XlJC4lJLbmIaYidaGmcaWiduGmtuUmJrwmtzHmsaXidaGmcaWideGmwGXmMeXideGmcaWidaGms0XDI0UnZzHmIaYidaGmcaWlteUmteTms43owWTms43oc0UoueYidiGmcaWideGmtuGmtaUnZzwn2eXideGmcaWideGms0XidiGmIaWidaGmcaWltriogeYidiGmcaWidaGmca0ideGmsaWidaGmsaXidf6iI8+', '0khqVDcW0yFqSnc70laG0l7rGDgc0ldqVDc+0llqUcdrGTc10lRrG9gj0yprJIdqT9cW0l/qUngb0yWG0llqUnc00lxqVG', 'D2vIA2L0r2v0qxnfBNrYEq', 'BwLUAq', 'CMv2B2TLt2jQzwn0vvjm', '0jlqVTc50ylqUcdrH9c10ydqTDc3ifrLBgvNCMfT', 'ls1Hy2nLBNqTDgv4Da', '0k3rGTc+0yiG0lRqVTc0ingd0lBqTsdqSnc60ylqUncY0lJrGnc+0llqSnc9', 'zxHLyW', 'lMHLCM8TC3vI', 'i2fKBufUBLb1yG', 'i2f1DgHnB2rLigj1DhrVBG', 'w2rHDgeTBxnNlwLKpsi', 'BM90zq', 'phbHDgGGzd0ItteYidjHoca4idaGmcaWltGGohyXmMWZltmGmI41idiUnuWXmIaXowWYlJuGmI41tde3ide5BdmGm1yXmge4idGGmcaWidaToc04EIiVpJXWyxrOigq9iK05ideWAc4Wmu0XnsaXmgGUmdeIlZ4', 'phjLy3qGEd0InIiGEt0InIiGD2LKDgG9iJeYiIbOzwLNAhq9iJeYiIbYEd0ImsiVpG', '0kpqSDga0ldrGTgminc40lCG0lJqT9cX0ydqSnc90l3qVTcZ0l4', 'i3bHy2TmAxn0', 'iIbKyxrHlxbYB3H5psi', 'DMLKlw1PEc1WCM9J', 'z2v0sxrLBq', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVTgc0l/rGncW0llqUngc0yWG0lFqSTgd0lO6ia', 'DMLKzw8VBxa0', 'y3jLyxrLtgLUzwfYr3jHzgLLBNq', 'y2fW', 'BgLJx3vUDgLS', 'BgLJx2vUDa', 'y29UBMvJDa', 'cIaGica8yNv0Dg9UignSyxnZpsjMzY1Hy3rPB24Iihr5Cgu9iMj1DhrVBIiGzgf0ys1NCM91Cc1OAwrLpsi', 'i3rYzwvuB3rHBa', 'ihzPCcb2AxaTC3r5BguT', 'l3DHBgXLDc90CMfUC2zLCG', 'mc4WmJG', 'y29VA2LL', '0lFqSTgd0lRqVTcY', 'DgLTzxi', 'mc40nq', 'iIbKyxrHlxrLEhqTAgLZDg9YEt0I', 'igzHAwXLza', 'DgfNtMfTzq', 'inc10yNrKsdqVDc1inc/0l7qTnc60lVrJTgh0zhqVq', '0j3qVTcY0yVqUsdqV9c+0lJrGDc6', 'lNbHy2STCgLJAY1YB3C', 'tKvlve97CZbFy2WWC2vFyZmXmMy4nZD9', 'jNbYAwnLpq', '0jlqUTc70y7rH9gr0l0G0lZqUnc60ydqVTge0l7qVsdqV9c+ingd0lZqVTc70yFqSnc90lJrJG', 'BgLRzxm', 'CMfKAw8', 'w2rHDgeTCgfKlwfJDgLVBJ0NBw92zs11CcDD', '0j/rGnc+0llqTDga0lRqScdqV9c+0lRqScdqVDc1inc90ldrGDgc0ydqVTc10l3qSa', 'ywnR', 'pgrPDIbJBgfZCZ0IDgv4Dc1JB252zxjZyxrPB24Tzw1WDhKIpTcH0l7qVTcX0yNqTDc90lJrJYdqVTcX0l7qUngfingb0l7qSDc10yhqTDc00l3qUnc60l7qSIdqV9c+0y/qSTgp0ylrGDgpinc30ltqTDgb0yW8l2rPDJ4', 'pgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTAt0I', 'zMfPBfrPBwvY', 'lNbHzcWUC291BMqTBw9Yzq', '0j/qU9cW0ylqVDgl0lKG0l3qSncX0l7rGcdqTnc+0lVqTTc10l0G0yhrGTc+0lJrGTgminc80lJqVDc40lZrG9c8idmWinc80l7qVDc10yi', 'CgfJA19Syxn0x2nVBg9Y', 'u0vdt05euW', 'oNnJB3bLid4GlNrYzwuTy2HPBgrYzw4', 'Dg9tDhjPBMC', 'y3jLyxrLqNvMzMvYu291CMnL', 'i2rPCMvJDeXVz2LUqNrU', 'z2v0x3nVDw5Kx2zVBgrLCG', '0lZqVTc5inc30llrG9c6', 'BMf0DxjHBfDPzhrO', 'iZDLztC4nW', 'phnWyw4Gy2XHC3m9iNrUlxn0yxr1CYbHy3rPDMuIpTcF0l7qTnc/0lJrGDc60la8l3nWyw4+', 'y2HHDeXPBMS', '0j7qV9c10ydqSngg0lJrJYdqVDc1incY0yVqV9c+0lVqVDc10l3qSa', 'B25JBg9Zzq', 'pc9KAxy+cIaGica8CcbJBgfZCZ0IBxv0zwqGC20IpTcH0l3qSngh0ldqU9cWingb0l/qUngi0yprGTgb0y8G0lhqVTc90yprGDc90yVqTsdqVnc+0l3qTDgc0ySSinc30ldrGTc10lWG0l7qSDgl0yFqVDgl0luUincE0yhrGTcW0llrInc40lxrGDgpinc00l3qUcbwsvaG0yhqVTgf0ydqSnc90y/rGTgb0y8Upc9WpGOGicaGphaGy2XHC3m9iNDHBgXLDc1Hy3rPB24TzxjYB3iIigLKpsj3ywXSzxrwAxbfCNjVCIi+pc9WpG', '0j/qVTc60ypqV9c60laG0l3qTsdrG9c00ldqU9cW0yhrJa', 'i2fKzeXHyMvS', '0khqU9c10ltrG9go0yNqUnc5inc60l7qTcdqVnc+0lBqVDc+incW0lRrGTc40llqUnga0l7qSTcW0ylrJcdqV9ga0lJqVnc10ydqVDc+ingh0lxrGnc10lCG', 'pgj1DhrVBIb0ExbLpsjIDxr0B24IpG', 'C2L6zq', 'Cg9PBNrLCM1VDMu', 'iJ48l2XHyMvSpGOGicaGpgrPDIbJBgfZCZ0ID2fSBgv0lxrYyw5ZzMvYlxn1Bw1HCNKIpGOGicaGica8C3bHBJ7qN9c+0lVrG9gh0ldrGTc10lVrJcdqV9c+0lVrG9gh0lJrGIa8yIbPzd0ID2fSBgv0vhjHBNnMzxjszwnLAxzLiJ45pc9IpJWVC3bHBJ4kicaGicaGphnWyw4+0jRqVTc80lJrGDgb0lJrJYa', 'CgfUzwLW', 'i2fWCgvHCMfUy2vcz0nSzwfY', 'CMvTB3zL', '0ltqSTc40lBqVTc6inc90luG0l/rGnc40l3rJ9c7inge0ldqUDc7icG', 'Cgf1C2vK', 'yMfU', 'inc00ydrG9c30lxqUq', 'y3rS', 'ywX0s2v5', 'zgvSyxLuAw1L', 'C3rVCfbYB3bHz2f0Aw9U', 'C2v0sw50mty', 'mtG2odC5nhbcDhnHzW', 'pc9ZCgfUpJWVyNv0Dg9UpGOGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTCgfKlwfJDgLVBJ0IBw92zs11Cci+0j/qVTc00l3rJ9gc0yWG0llrI9gi0lu8l2j1DhrVBJ4kicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbKyxrHlxbHzc1Hy3rPB249iM1VDMuTzg93BIi+0j7qV9gd0yhrGTc40ylrJcdqVDc40lBqTtWVyNv0Dg9UpGOGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IigrHDgeTCgfKlwfJDgLVBJ0IAg90A2v5iJ48C3bHBJ7qMTc70ldqSTc40yJqSdWVC3bHBJ48yIbJBgfZCZ0ICgfKlwHVDgTLEs1SywjLBci+pc9IpJWVyNv0Dg9UpGOGicaGpgXHyMvSpTct0ydqVTc80lRqVTgb0ylrJca8Aw5WDxqGy2XHC3m9iNbHzc1Tzw51lxzVBhvTzsiGDhLWzt0ICMfUz2uIig1PBJ0InsiGBwf4psiYmdaIihzHBhvLpsiXmdaIpJWVBgfIzwW+cIaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGzgf0ys1WywqTywn0Aw9UpsjOAwrLiJ7qODc60ydrI9gc0yW8l2j1DhrVBJ4kicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbJBgfZCZ0IzgfUz2vYiIbKyxrHlxbHzc1Hy3rPB249iMrLBgv0zsi+0kpqTncW0lVqUngc0yW8l2j1DhrVBJ4kica8l2rPDJ4', 'pgLUChv0ignSyxnZpsjMzY1JB2XVCIiGDhLWzt0Iy29SB3iIihzHBhvLpsi', '0ltqSTc40lBqVTc6inc90luG0llqTDga0l3rG9c7inc/0yprGTgminge0ldqUDc70la', 'w2rHDgeTy2XPzw50lwLKpsi', 'pg9WDgLVBIb2ywX1zt0I', 'ywXYzwfKEv9YzwrLzw1Lza', '0j7rGDgc0ldqVDc+0llqUngc0yW', 'zhjVChbPBMC', 'i2zVBgrLCKDYB3vWCYaUC2iTz3jPza', 'ChjVBxb0', '0j7qTTc40ltqSnc90lJqTsbuzwXLz3jHBEkaPG', 'C3vI', 'i3jLy292zxjqyxnZD29Yza', 'yMfUzhbHC3m', 'i3nIu2vHCMnO', '0jJqT9c80lxqVDc10l3qUngpoIa', 'C2v0u2vSzwn0Aw9UuMfUz2u', 'w2rHDgeTDgv4Dc1ZDg9Wxq', 'i3zPzfjLCgXHEu1PBNm', 'ww91vhvIzsdqVDc1inc+0ylqSTc10ylqUnc7lIdqN9c+0l/rGnc+0lhrG9c5inc90lxqVnc90l7qS9c+inc/0l7qT9c20luU', 'i2XPy0nOyw5NzufJy291BNq', 'i3bHy2TszwzYzxnO', 'C2v0x3bLzxjFz2fPBG', 'y2HHCKnVzgvbDa', 'rNvUugf5', 'CgfKrMf2oG', 'z2v0rwXLBwvUDej5swq', 'i3nIvgfYz2v0CW', 'yNv0Dg9Uw2rHDgeTyxbWlw1VzgvD', 'AgfZqxr0CMLIDxrL', 'CMvMx2j5', 'w2rHDgeTz290B10', '0j/qVTgb0lVqTsdqUnc30lZqTDc90lxqVDc40y8G0yhrGDgl0lVqVTc6incW0ltqVnc40l0G0yhqVDc+0llqScdqV9ga0l7qSTc10ydqUngcinc30ldrJ9cY0lRrGY4', '0jFqSTgd0lO', 'y2HHBMDL', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVDcW0yFqSngc0yWG0l/rGnc+0llqTDga0lRrGW', 'yxv0Ag9Yx3jLCxvLC3rZ', 'l2nOyxq/Dg9Rzw49', 'jM5HBwu9', 'yxzHDgfYvgHYzxnOB2XK', 'zxjYB3i', '0jlrGDc10lpqVIdqVTc60l7qVsdIIAqGndOG0ymG0ylqTDcX0y8G', 'iZiYzdnHnG', 'z3jLzw4', 'B3DUlwzVBgrLCG', 'zgvZDa', 'DgGT', '0lpqVTgc0l7qSG', 'iIbKyxrHlwnOyxqTBgLUAZ0I', '4PEpincx0ldqV9c40yhrJa', '0j7rInc40lhqUTcWoIa', 'z2v0', 'yxvKAw9nzxrH', 'pgrPDIbJBgfZCZ0I', 'i2m0yJvMza', 'pgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsjIDg4GC20GywrTlwnVzguTBw9YzsiGzgf0ys1JB2rLlw1VCMu9iM9MzIi+0khqSTc10ydqVDgd0ylrJdWVyNv0Dg9UpG', 'pc9IDxr0B24+cIaGica', 'i2vTB2PPqNrU', '0l/rGnc+0lhqVDgl0lKG0ltqVIa', 'BwLJsw5WDxrZ', 'zNjLCxvLBMn5', 'ywrTAw4', 'CgfYzw50tM9Kzq', 'y3rYBc1YB3CGC3jJlxjVDYbZDM9PlxjVDW', 'BgvU', 'pc9ZCgfUpJWVzgL2pJXKAxyGy2XHC3m9iMfWlwfJDgLVBNmIpJXIDxr0B24Gy2XHC3m9iMj0BIbZBsiGzgf0ys1WCMv2Awv3psiXiJ48C3bHBIbJBgfZCZ0IyNrUlwLJBYiGzgf0ys1Py29UpsjWBgf5iJ48l3nWyw4+0j/rGnc+0yhqVnc+0ylrGdWVyNv0Dg9UpJXIDxr0B24Gy2XHC3m9iMj0BIbWCMLTyxj5ihnTiIbKyxrHlwfJDd0IyxbWCM92zsi+0j7qTnc+0lhrGnc40ylrJdWVyNv0Dg9UpJXIDxr0B24Gy2XHC3m9iMj0BIbZBsiGzgf0ys1Hy3q9iNjLAMvJDci+0j7rGTc60lVqVTc90lJrGTgmpc9IDxr0B24+pc9KAxy+', 'yNv0Dg9U', 'i3bLzxjdAgf0sw5WDxq', 'C2v0x3n2B2LFy291BNq', 'Cg9PBNrLCMnHBMnLBa', 'Bwf0y2G', 'w2rHDgeTDgv4Dc1TzxnZywDLpsi', 'pgrPDIbJBgfZCZ0IywrTlwnVzguTyMf0y2GTCMLNAhqIpJXZCgfUignSyxnZpsjHDs1IywrNzsbWywLKiJ7qVTgb0ylqSnc70l7rGDgmia', 'i3nIvgfYz2v0CYaUDhqTy2HPCa', 'yxv0Aa', '0j7qSDc90l7qSTc70y/rJUkaPG', 'AhnSka', '0jFqSngf0llqSngcinc+0ylqVnc10l3rKDc9', '0j7rH9c40yhrGTc40ylrJcdqSTc10yhrJcdrH9cW0yi', 'lMzVBgrLCI1NCM91Cc5Tzw51lwHVC3q', 'zhjHz2DPBMC', 'Aw5JBhvKzxm', '0jiG0lJqT9cX0ydqSnc90l3qVTc1', 'zhvJAW', 'CMv2AxnPB24', '0kFqSngcingb0l4G0yhqSTc+0lJqVa', 'i2rVy2TjBNb1Da', '0jtqVTcX0ldqSTgminc30llrG9c60lGG0lJqU9c4ingb0l7rHDga0ldqVDc4incZ0l7qU9c+0yhqScdqV9c10ydqTDc0ingb0l7qT9c00ldqVDc40lxqVcdqVDcW0lhqVTga0la', 'yxbWzw5Kq2HPBgq', 'i3n0zxaTBwLJ', 'DgL0Bgu', 'A2LKCW', '0j3qTsdrG9c00ldqU9c+0yhrJcdqSTc60lVrJTgh0lJrGTgmincW0ypqTnc40l4T0llrI9gf0l7qTa', 'v0fwrq', 'tKTpCef1zgLV', 'inc90laG', '0j7qS9ga0ldqVDc40yFqTDc90lJqTsdqVDcWide1inc80lJqVDgd0yi', 'zhjVCevMzMvJDa', 'BwLU', 'Cg9W', 'phnTywXSpG', 'Dg0T', '4PAGincH0ylqVTc/', 'pc9HpG', 'C2nYB2XSvg8', 'DgfYz2v0', 'mI4WlJa', 'l2nVBw11BML0Eq', 'lcdrG9cY0lxqTnc+0lZqU9c10l3qUngpoIa', '0jtqVTcX0ldqSTc40lSG0lFqSTgd0lRqVTcYoIa', 'zM9SzgvYlwDYB3vWig5LC3rLzc1NCM91Ca', 'o3bHDgG9lZTTyxGTywDLpti1otiWmda7C2fTzxnPDgu9Bgf4', 'pc9ZCgfUpJXIDxr0B24Gy2XHC3m9iMj0BIbZBsb0B2DNBguGzgfUz2vYiIbKyxrHlwnVzguTCMv2B2TLpsi', '0yFqSngcinc30ldqVDgp0yiGkngd0lBqTsdqTncY0l7qTsK', 'phnWyw4Gy2XHC3m9iMnTlwjHzgDLigf1DgHVCI1IywrNzsi+0jdqSTgc0l7rGdWVC3bHBJ4', 'Aw5ZDgfSBgvKugfJA0DYB3vWCW', 'Dgv4Dc9QyxzHC2nYAxb0', 'yxvKAw9qDw1W', 'yxbWCM92zwq', 'DMLLDW', 'yMfYz2u', '0l7qSDc90l7qSTc70lxqVDc40luG', 'BwLJu3rYzwfT', '0jFqSnc80l7rGnc+0lFqUngc0yWG0lRqVTgi0lxqU9gr0lO', 'C3nLBa', '0khrG9gc0l7rH9c90yVqUsdqU9c40lZqUngclIdqNnc+0lBqVDc+inc+0ylqV9ga0ldqSTc40ylrJcdqTDgj0zeG', 'B3DU', 'EYjZDgf0DxmIoIjUB25LiN0', 'C2HPzNq', 'ywnJB3vUDenVzgvjBNb1Da', '0ltqUncW0lVqVTcZinc90ldrH9cW0yi', 'pc9KAxy+', 'lNzPzxDBzgf0ys12Awv3psjZB3vUzgjVyxjKiL0', '0lpqVTgc0l7qSIdqUIdqV9c+0lJrGDc60ym', 'w2rHDgeTCg9SBc1JAg9Py2vD', '0j3qTsdrG9c00ldqU9c+0yhrJcdqTnc+0lhqSncY0lJrGTgminc30llrG9c6oIa', 'C3LZ', 'i3bHy2TqCMv2Awv3tgLZDa', 'yNvJA2v0', '0khqVDgp0ylrJcdqVTcZ0ydqSnc90lJrH9c10l3qUnc1', 'C3jJt2jQzwn0', 'zhjVCa', 'lNr0lwnOAxa', 'D3nZoI8V', 'zM9YrwfJAa', 'Aw52AxrLza', 'i2XPy092zxjSyxK', 'yxvnB3jL', 'CMvTB3zLsxrLBq', 'BNvTyMvY', '0khqTncY0lJqSYdqT9cY0ypqUTcWoIa', '0jFqSTgd0lOG0yhqU9c40yJqUTc+0lWG0lhqVTc70yZrInc+0lK', 'DMvYC2LVBG', 'B2zM', 'yxvKAw8V', 'pgrPDIbJBgfZCZ0ICNqTC3rHDguIpG', 'yxjYyxLcDwzMzxi', '0jRrG9c/0lJrGTgminc30laG', 'phnWyw4Gy2XHC3m9iMf1lwjHzgDLigjVDci+0ylqVTc70yZqUTc+incYincX0l7rGTc1pc9ZCgfUpG', '0jtqVDc4oIaX4OctmZy1mcWG0lRqVTc70lJrH9c10yhrGTcY0l46idhIGjmXmda', 'tufyx1nbrKvFsu5uruDfuG', 'i3zVAwnLC1rHCMDLDhmGlNr0lwnOAxa', 'C2HVD1vj', 'inc+0l3qU9cW0lNqVq', 'zxzLBNq', '0jhrG9ge0lxrGa', 'y2HHDa', 'inc80lJqVs48l3nWyw4+', 'lNbWlxbSyxK', 'Bw9UBW', 'i2fKBvnLyxjJAa', 'zMLSDgvY', 'y29PBG', 'iJ48l3nWyw4+cIaGicaGidXZCgfUignSyxnZpsjYzwmTBwv0ysi+pgi+', 'zgfUz2vY', 'phbHDgGGzd0IttKGmtHwnwWXmI0YDJeZiI8+pgnPCMnSzsbJEd0InIiGy3K9iJe4iIbYpsiZiI8+pgnPCMnSzsbJEd0ImtGIign5psiXnIiGCJ0ImYiVpG', 'iJ7qO9c00ldqU9c40ylrJdWVyNv0Dg9UpG', 'BgvMDa', 'y3jLzgvUDgLHBa', 'i3rLEhrszwXHEurLBgf5', 'yNjHBMnOvg90ywW', 'Dhj1zq', '4PQG77Ipia', 'i2rPCMvJDeXVz2LU', 'Bxa0', 'i3nLyxjJAefSBej0BG', 'zgvIDa', 'pgrPDJ48zgL2ihn0EwXLpsjMB250lxnPEMu6ndjWEdTTyxjNAw4TyM90Dg9ToJeYChGIpUkpSZWVzgL2pJXKAxyGAwq9iNnSB3rrDwv1zvrLEhqIpTcE0yFqTDga0lxqTngm4OcMpc9KAxy+pgrPDIbJBgfZCZ0IBxv0zwqGC20Iihn0EwXLpsjTyxjNAw4TDg9WoJHWEdTTyxGTD2LKDgG6mZqWChGIpTcH0lxqUDgh0ldrGsdqVnc90l7qS9c+inc/0l7qU9gm0lFqVTcY0ldrGTc10lVqTDc5inc+0l3qU9cW0lNqVs4G0jRqSnc6ingc0l7qU9gm0lRqVIdqVTgb0llqVTcX0l7qTnc40ylrGDgpinc80lxrGDgc0l4G4Ocuinc/0ydqVTc00l7qU9c20lJrIngmincW0llrGTc+0lZqSngc0lJrH9c10yhqUTc4lJWVzgL2pJWVzgL2pG', 'pgrPDIbJBgfZCZ0ID2fSBgv0lwHPC3rVCNKTCM93iJ48C3bHBJ48yJ4', 'yxv0BW', 'Dg9Nz2XL', 'Bxv0zq', 'yxbWx3vZzwq', 'WQVqODcY0l7qUmk7inc00l7qSDcW0llqU9gp0y7rGTgb0y8G0yhrH9gr0ylrH9c40lRqVTc8imkR0khqSTc+0lJcUYdqSIdqN9gd0lVrJngc0luSinc90luG0l3qScdqVTc60l3qTsbUzwT0BY4', 'ywn0AxzL', 'Dg9Vx2jPzW', 'WRSG0yhqVTcX0lxrGDc10ltqVDc40lOG0ylqVTc20luG0lJrGDc/0l7qU9gm0lFrG9c10yiGtMvRDg9nzw1LlIdqNnc+0lBqTDgc0luG0l/qVTc+0lhrIDcW0ylrJngb0y8G0liG0yFqSngc0luG8j+yJG', 'ywrT', 'pgrPDIbJBgfZCZ0ID2fSBgv0lw1VzgfSlwjHBgfUy2uIpTcu0l7rGDgc0ypqV9c90l4G0ltqU9gpinc/0lxrGnc10llqVTc00laGpgi+', 'pc9IpGOGicaGicaGidXZCgfUignSyxnZpsj0zxH0lxjLBgf5lwnVDw50iJ4', 'Ag9Tzq', '0jlrGDc10lpqVIdqVTc60l7qVsdIIAqGncaOBMvRDg8GkYdrGDcY0l7qUcK', 'x3jLBMrLCLbHzhm', 'imk3incX0l7qVDgd0yhqVDgl0luG', 'CM91BMq', 'yxbWzwfYyw5Jzv9Hy2nLBNqY', '0j3qTsdrGDc+0yxrGncW0l3qUnc70l7rGDgmoIa', 'C2f2zv92B2LJzq', '0jlrI9c60lVrJTgh0lJrGTgminc/0ydqVTgb0lVrG9gi0lRrGW', '0khqU9c40yJqUTc+0lWG0lZqVDc+0lpqVIdqV9c+0l/rI9gc0l7qUG', '0j3qTsdrHDcY0ldrGTcW0lxrGIa', 'DgvZDa', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVDcW0yFqSngc0yWG0lFqSnc/0lJrGDgmincY0lJqTnc10l4Sinc/0l7qV9ga0l7qSDgd0lKG0lxrIDgringa0ldqTW', 'jNf1B3q7', 'C3bSAxq', 'igvYCG', 'i3rHBgTnB2rL', 'C2nYB2XS', 'ywn0', '0j3qTsdrG9c00ldqU9c+0yhrJcdqVTgc0lRrGngl0ylrJcdqS9c+0lVqVTgb', 'ls1HChaTyMCTAw1Hz2u', 'B25PBNb1Da'];
    odf943efb_a = function() {
        return lj;
    }
    ;
    return odf943efb_a();
}
function roundRectPath(a, b, c, d, e, f) {
    const as = odf943efb_P;
    a['beginPath'](),
    a[as(0xea)](b + f, c),
    a['arcTo'](b + d, c, b + d, c + e, f),
    a[as(0x16c)](b + d, c + e, b, c + e, f),
    a[as(0x16c)](b, c + e, b, c, f),
    a[as(0x16c)](b, c, b + d, c, f),
    a[as(0x201)]();
}
function vidPaintBg(a, b, c, d, e) {
    const at = odf943efb_P
      , f = getComputedStyle(document[at(0x41c)])
      , h = (f['getPropertyValue']('--accent') || '#6d8bff')[at(0x407)]()
      , i = (f['getPropertyValue'](at(0xdb)) || '#22d3a6')[at(0x407)]()
      , j = a[at(0x6b9)](0x0, 0x0, b, c);
    j[at(0xf7)](0x0, h),
    j[at(0xf7)](0x1, i),
    a[at(0x7f6)] = j,
    a[at(0x8a2)](0x0, 0x0, b, c),
    a[at(0x7f6)] = at(0x214),
    a['fillRect'](0x0, 0x0, b, c),
    a[at(0xc9)](),
    a[at(0x43d)] = 'rgba(0,0,0,0.55)',
    a[at(0x4f2)] = 0x1e,
    a['shadowOffsetY'] = 0xa,
    roundRectPath(a, d['dx'], d['dy'], d['dw'], d['dh'], 0x12),
    a[at(0x7f6)] = at(0x824),
    a[at(0x538)](),
    a['restore'](),
    a['textAlign'] = at(0x896),
    a[at(0x7f6)] = at(0x5c1),
    a[at(0x2ee)] = at(0x3c3) + Math[at(0x7c9)](b * 0.055) + at(0x441),
    a['fillText'](at(0x486), b / 0x2, Math[at(0x29b)](b * 0.09, d['dy'] - b * 0.04)),
    e && (a[at(0x7f6)] = 'rgba(255,255,255,0.82)',
    a[at(0x2ee)] = '600\x20' + Math[at(0x7c9)](b * 0.04) + at(0x441),
    a[at(0x56a)]('@' + e, b / 0x2, Math['min'](c - b * 0.05, d['dy'] + d['dh'] + b * 0.085)));
}
function vidDrawLoop(a, b, c, d, e) {
    const av = odf943efb_P
      , f = 0x3e8 / VID_FPS - 0x4;
    let h = 0x0;
    const i = j => {
        const au = odf943efb_b;
        if (VID['on'] && (VID['raf'] = requestAnimationFrame(i),
        !(j - h < f))) {
            h = j;
            try {
                const k = b[au(0x33e)] || 0x0
                  , l = b['videoHeight'] || 0x0;
                if (k && l) {
                    const n = Math[au(0x7c9)](c * 0.05);
                    let o = c - n * 0x2
                      , p = l * (o / k);
                    p > d - n * 0x2 && (p = d - n * 0x2,
                    o = k * (p / l));
                    const q = (c - o) / 0x2
                      , r = (d - p) / 0x2
                      , s = k + 'x' + l;
                    s !== VID[au(0x2f0)] && (vidPaintBg(a, c, d, {
                        'dx': q,
                        'dy': r,
                        'dw': o,
                        'dh': p
                    }, e),
                    VID[au(0x2f0)] = s),
                    a[au(0xc9)](),
                    roundRectPath(a, q, r, o, p, 0x12),
                    a[au(0x493)](),
                    a[au(0x878)](b, q, r, o, p),
                    a[au(0x5fc)]();
                } else
                    VID['bgKey'] || (a[au(0x7f6)] = '#0a0c14',
                    a[au(0x8a2)](0x0, 0x0, c, d));
                const m = VID[au(0xcb)];
                if (m && m[au(0x8dc)] === au(0x2cb) && m[au(0x575)] < 0x6) {
                    const t = new VideoFrame(VID['canvas'],{
                        'timestamp': Math['round']((performance[au(0x2d3)]() - VID['t0']) * 0x3e8)
                    });
                    m[au(0x2e9)](t, {
                        'keyFrame': VID['frameCount'] % (VID_FPS * 0x2) === 0x0
                    }),
                    t[au(0x416)](),
                    VID['frameCount']++;
                }
            } catch {}
        }
    }
    ;
    VID[av(0x42d)] = requestAnimationFrame(i);
}
async function vidConnectRelayAudio(a, b) {
    const aw = odf943efb_P
      , c = aw(0x3fd);
    let d;
    try {
        d = URL['createObjectURL'](new Blob([c],{
            'type': 'text/javascript'
        })),
        await a[aw(0x4c8)]['addModule'](d);
        const e = new AudioWorkletNode(a,aw(0x6b5),{
            'numberOfInputs': 0x0,
            'numberOfOutputs': 0x1,
            'outputChannelCount': [0x1]
        });
        e[aw(0x6bd)](b),
        VID[aw(0x5a0)] = e;
    } finally {
        d && URL[aw(0x6a6)](d);
    }
    try {
        VID['ws'] = new WebSocket((location[aw(0x321)] === 'https:' ? aw(0x78c) : aw(0x4f5)) + location[aw(0x19e)] + '/cap');
    } catch {
        return;
    }
    VID['ws'][aw(0x368)] = aw(0x62d),
    VID['ws']['onopen'] = () => {
        const ax = aw;
        try {
            VID['ws'][ax(0x581)](JSON[ax(0x53f)]({
                'role': 'op'
            }));
        } catch {}
    }
    ,
    VID['ws'][aw(0x637)] = g => {
        const ay = aw;
        if (typeof g[ay(0x108)] == ay(0x298)) {
            try {
                const j = JSON[ay(0x46a)](g[ay(0x108)]);
                j?.['t'] === ay(0x561) && typeof j[ay(0x4ae)] == 'number' && VID['audioMixer']?.[ay(0x8e0)][ay(0x395)]({
                    't': ay(0x672),
                    'src': j[ay(0x4ae)]
                });
            } catch {}
            return;
        }
        if (!(g['data']instanceof ArrayBuffer) || g[ay(0x108)][ay(0x221)] < 0xc)
            return;
        const h = new DataView(g['data'])['getUint32'](0x4);
        let i = new Float32Array(g[ay(0x108)],0x8);
        if (i['length']) {
            a[ay(0x2e6)] !== 0xbb80 && (i = resampleMono(i, 0xbb80, a[ay(0x2e6)]));
            try {
                VID[ay(0x5a0)]?.[ay(0x8e0)][ay(0x395)]({
                    'src': h,
                    'buf': i
                }, [i[ay(0x838)]]);
            } catch {
                VID[ay(0x5a0)]?.['port'][ay(0x395)]({
                    'src': h,
                    'buf': i
                });
            }
        }
    }
    ;
}
function startVidAudioPump(a) {
    const az = odf943efb_P
      , b = VID[az(0x72a)]?.[az(0x4fb)][az(0x11d)]()[0x0];
    if (!b)
        return;
    const c = new MediaStreamTrackProcessor({
        'track': b
    })[az(0x405)]['getReader']();
    VID['audioReader'] = c,
    VID['audioPump'] = ((async () => {
        const aA = az;
        try {
            for (; VID['on'] && VID[aA(0x317)] === a; ) {
                const {done: d, value: e} = await c['read']();
                if (d)
                    break;
                try {
                    const f = VID['aenc'];
                    f?.[aA(0x8dc)] === aA(0x2cb) && f[aA(0x575)] < 0x18 && f['encode'](e);
                } finally {
                    try {
                        e?.[aA(0x416)]();
                    } catch {}
                }
            }
        } catch {
            VID['on'];
        }
    }
    )());
}
function vidTimerStart() {
    const aB = odf943efb_P
      , a = $(aB(0x1fd));
    if (!a)
        return;
    VID[aB(0x494)] = performance[aB(0x2d3)](),
    a['hidden'] = !0x1;
    const b = () => {
        a['textContent'] = fmtDur((performance['now']() - VID['tStart']) / 0x3e8);
    }
    ;
    b(),
    clearInterval(VID[aB(0x1b3)]),
    VID['tInt'] = setInterval(b, 0x1f4);
}
function vidTimerStop() {
    const aC = odf943efb_P;
    clearInterval(VID['tInt']),
    VID[aC(0x1b3)] = 0x0;
    const a = $(aC(0x1fd));
    a && (a['hidden'] = !0x0,
    a[aC(0x333)] = aC(0x336));
}
function copyEncodedChunk(a) {
    const aD = odf943efb_P
      , b = new Uint8Array(a['byteLength']);
    return a[aD(0x806)](b),
    {
        'type': a[aD(0x3c7)],
        'timestamp': a['timestamp'],
        'duration': a[aD(0xc7)] || 0x0,
        'data': b,
        'at': performance['now']()
    };
}
function trimReplayBuffer() {
    const aE = odf943efb_P
      , a = VID['replay'];
    if (!a)
        return;
    const b = performance[aE(0x2d3)]() - a[aE(0x81a)];
    let c = 0x0;
    for (let e = a['video'][aE(0x64f)] - 0x1; e >= 0x0; e--)
        if (a[aE(0x4b1)][e]['at'] <= b && a[aE(0x4b1)][e][aE(0x3c7)] === 'key') {
            c = e;
            break;
        }
    c > 0x0 && a[aE(0x4b1)][aE(0x4d8)](0x0, c);
    const d = a[aE(0x4b1)][0x0]?.['at'] || b;
    for (; a['audio'][aE(0x64f)] && a[aE(0x2b8)][0x0]['at'] < d; )
        a[aE(0x2b8)][aE(0x77d)]();
}
function storeReplayVideo(a, b) {
    const aF = odf943efb_P
      , d = VID[aF(0x1fa)];
    if (!d)
        return;
    const e = copyEncodedChunk(a);
    b && (e['meta'] = b),
    b?.[aF(0x425)] && (d[aF(0x48c)] = b),
    d[aF(0x4b1)]['push'](e),
    trimReplayBuffer();
}
function storeReplayAudio(a, b) {
    const aG = odf943efb_P
      , d = VID[aG(0x1fa)];
    if (!d)
        return;
    const e = copyEncodedChunk(a);
    b && (e[aG(0x3da)] = b),
    b?.[aG(0x425)] && (d[aG(0x731)] = b),
    d[aG(0x2b8)][aG(0x255)](e),
    trimReplayBuffer();
}
function replayChunk(a, b) {
    const aH = odf943efb_P
      , c = b === 'video' ? EncodedVideoChunk : EncodedAudioChunk;
    return new c({
        'type': a[aH(0x3c7)] || aH(0xee),
        'timestamp': a['timestamp'],
        'duration': a['duration'] || void 0x0,
        'data': a['data']
    });
}
async function saveReplayClip() {
    const aI = odf943efb_P;
    if (VID[aI(0x455)])
        return saveReplayWorker();
    const a = VID[aI(0x1fa)];
    if (!a || !VID['on'] || VID[aI(0x317)] !== 'replay')
        return toast('\u0411\u0443\u0444\u0435\u0440\x20\u043D\u0435\x20\u0432\u043A\u043B\u044E\u0447\u0451\u043D', !0x0);
    if (!VID[aI(0x85c)]) {
        VID[aI(0x85c)] = !0x0;
        try {
            if (VID[aI(0xcb)] && VID['venc'][aI(0x8dc)] === aI(0x2cb) && await VID[aI(0xcb)][aI(0x31f)](),
            VID[aI(0xfe)] && VID[aI(0xfe)][aI(0x8dc)] === 'configured' && await VID[aI(0xfe)][aI(0x31f)](),
            trimReplayBuffer(),
            !a['video'][aI(0x64f)])
                throw new Error(aI(0x1a5));
            const [b,c] = vidDims()
              , d = new Mp4Muxer[(aI(0x8d5))]({
                'target': new Mp4Muxer[(aI(0x1ba))](),
                'video': {
                    'codec': aI(0x4fd),
                    'width': b,
                    'height': c
                },
                'audio': {
                    'codec': 'aac',
                    'sampleRate': a[aI(0x731)]?.[aI(0x425)]?.['sampleRate'] || 0xbb80,
                    'numberOfChannels': 0x1
                },
                'fastStart': 'in-memory',
                'firstTimestampBehavior': aI(0x64d)
            });
            a[aI(0x4b1)][aI(0x78d)]( (h, j) => d['addVideoChunk'](replayChunk(h, aI(0x4b1)), j === 0x0 ? h[aI(0x3da)] || a[aI(0x48c)] : h[aI(0x3da)])),
            a['audio'][aI(0x78d)]( (h, j) => d[aI(0x236)](replayChunk(h, aI(0x2b8)), j === 0x0 ? h['meta'] || a[aI(0x731)] : h[aI(0x3da)])),
            d['finalize']();
            const f = d[aI(0x766)][aI(0x838)];
            if (!f || !f['byteLength'])
                throw new Error(aI(0x316));
            const g = await vidUpload(new Blob([f],{
                'type': aI(0x6b8)
            }), 'mp4');
            toast('\u041C\u043E\u043C\u0435\u043D\u0442\x20\u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D:\x20' + g['split'](/[\\/]/)[aI(0x760)]()),
            loadRecList();
        } catch (h) {
            toast(aI(0x7cb) + h, !0x0);
        } finally {
            VID[aI(0x85c)] = !0x1;
        }
    }
}
async function startVideoClipLegacy(a) {
    const aJ = odf943efb_P;
    try {
        VID[aJ(0x317)] = aJ(0x493),
        VID[aJ(0x455)] = !0x1,
        VID[aJ(0x390)] = a;
        const b = a[aJ(0x2ab)]()[0x0]
          , c = document[aJ(0x4b4)](aJ(0x4b1));
        c[aJ(0x789)] = new MediaStream([b]),
        c[aJ(0x497)] = !0x0,
        c[aJ(0x56f)] = !0x0;
        try {
            await c['play']();
        } catch {}
        VID['video'] = c;
        const [d,f] = vidDims()
          , g = document[aJ(0x4b4)](aJ(0x548));
        g['width'] = d,
        g[aJ(0x2c8)] = f,
        VID[aJ(0x548)] = g,
        VID['bg'] = null,
        VID[aJ(0x2f0)] = '',
        VID[aJ(0x2f8)] = 0x0,
        VID['t0'] = performance[aJ(0x2d3)]();
        let h;
        try {
            h = new (window[(aJ(0x54d))] || window[(aJ(0x35a))])({
                'sampleRate': 0xbb80
            });
        } catch {
            h = new (window[(aJ(0x54d))] || window[(aJ(0x35a))])();
        }
        const i = h['sampleRate']
          , j = h[aJ(0x7ed)]();
        try {
            j[aJ(0xc1)] = 0x1,
            j[aJ(0x678)] = 'explicit';
        } catch {}
        VID['ac'] = h,
        VID[aJ(0x72a)] = j;
        const k = new Mp4Muxer[(aJ(0x8d5))]({
            'target': new Mp4Muxer[(aJ(0x1ba))](),
            'video': {
                'codec': aJ(0x4fd),
                'width': d,
                'height': f
            },
            'audio': {
                'codec': aJ(0x117),
                'sampleRate': i,
                'numberOfChannels': 0x1
            },
            'fastStart': 'in-memory',
            'firstTimestampBehavior': 'offset'
        });
        VID[aJ(0x43a)] = k;
        const l = new VideoEncoder({
            'output': (n, o) => {
                try {
                    k['addVideoChunk'](n, o);
                } catch {}
            }
            ,
            'error': n => {}
        });
        l[aJ(0x5d6)]({
            'codec': aJ(0x1a2),
            'width': d,
            'height': f,
            'bitrate': VID_BITRATE,
            'framerate': VID_FPS,
            'latencyMode': 'realtime'
        }),
        VID[aJ(0xcb)] = l;
        const m = new AudioEncoder({
            'output': (n, o) => {
                const aK = aJ;
                try {
                    k[aK(0x236)](n, o);
                } catch {}
            }
            ,
            'error': n => {}
        });
        return m[aJ(0x5d6)]({
            'codec': aJ(0x2c3),
            'sampleRate': i,
            'numberOfChannels': 0x1,
            'bitrate': 0x1f400
        }),
        VID['aenc'] = m,
        VID['on'] = !0x0,
        await vidConnectRelayAudio(h, j),
        startVidAudioPump(aJ(0x493)),
        vidDrawLoop(g[aJ(0x17f)]('2d'), c, d, f, (localStorage[aJ(0x6b6)](aJ(0x5b6)) || '')[aJ(0x407)]()),
        vidTimerStart(),
        !0x0;
    } catch (n) {
        return toast(aJ(0x44a) + n, !0x0),
        stopVideoClip(),
        !0x1;
    }
}
async function startVideoReplayLegacy(a) {
    const aL = odf943efb_P;
    try {
        VID[aL(0x317)] = aL(0x1fa),
        VID[aL(0x455)] = !0x1,
        VID['display'] = a,
        VID[aL(0x1fa)] = {
            'limitMs': vidReplayMins() * 0x3c * 0x3e8,
            'video': [],
            'audio': [],
            'videoMeta': null,
            'audioMeta': null
        };
        const b = a['getVideoTracks']()[0x0]
          , c = document[aL(0x4b4)](aL(0x4b1));
        c[aL(0x789)] = new MediaStream([b]),
        c[aL(0x497)] = !0x0,
        c[aL(0x56f)] = !0x0;
        try {
            await c[aL(0x4ce)]();
        } catch {}
        VID[aL(0x4b1)] = c;
        const [d,f] = vidDims()
          , g = document['createElement'](aL(0x548));
        g[aL(0x4db)] = d,
        g[aL(0x2c8)] = f,
        VID[aL(0x548)] = g,
        VID['bg'] = null,
        VID['bgKey'] = '',
        VID[aL(0x2f8)] = 0x0,
        VID['t0'] = performance[aL(0x2d3)]();
        let h;
        try {
            h = new (window['AudioContext'] || window[(aL(0x35a))])({
                'sampleRate': 0xbb80
            });
        } catch {
            h = new (window[(aL(0x54d))] || window[(aL(0x35a))])();
        }
        const i = h['sampleRate']
          , j = h[aL(0x7ed)]();
        try {
            j[aL(0xc1)] = 0x1,
            j[aL(0x678)] = aL(0xf2);
        } catch {}
        VID['ac'] = h,
        VID[aL(0x72a)] = j;
        const k = new VideoEncoder({
            'output': storeReplayVideo,
            'error': m => {}
        });
        k[aL(0x5d6)]({
            'codec': aL(0x1a2),
            'width': d,
            'height': f,
            'bitrate': VID_BITRATE,
            'framerate': VID_FPS,
            'latencyMode': aL(0xdc)
        }),
        VID[aL(0xcb)] = k;
        const l = new AudioEncoder({
            'output': storeReplayAudio,
            'error': m => {}
        });
        return l[aL(0x5d6)]({
            'codec': aL(0x2c3),
            'sampleRate': i,
            'numberOfChannels': 0x1,
            'bitrate': 0x1f400
        }),
        VID[aL(0xfe)] = l,
        VID['on'] = !0x0,
        await vidConnectRelayAudio(h, j),
        startVidAudioPump(aL(0x1fa)),
        vidDrawLoop(g[aL(0x17f)]('2d'), c, d, f, (localStorage[aL(0x6b6)](aL(0x5b6)) || '')[aL(0x407)]()),
        vidTimerStart(),
        !0x0;
    } catch (m) {
        return toast('\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C\x20\u0431\u0443\u0444\u0435\u0440:\x20' + m, !0x0),
        stopVideoClip(),
        !0x1;
    }
}
async function vidUpload(a, b) {
    const aM = odf943efb_P
      , c = aM(0x4ba) + encodeURIComponent(b) + aM(0x723) + encodeURIComponent(aM(0x567) + b)
      , d = await fetch(c, {
        'method': 'POST',
        'body': a
    })
      , e = await d[aM(0x5ec)]()['catch']( () => null);
    if (!d['ok'])
        throw new Error(e && e[aM(0x725)] || '\u0434\u0432\u0438\u0436\u043E\u043A\x20\u043D\u0435\x20\u043F\u0440\u0438\u043D\u044F\u043B\x20\u0444\u0430\u0439\u043B\x20(' + d[aM(0x366)] + ')');
    if (!e || !e['tmp'])
        throw new Error(aM(0x6ff));
    return await invoke(aM(0x84d), {
        'tmpPath': e[aM(0x1eb)],
        'ext': b
    });
}
async function vidFinalize() {
    const aN = odf943efb_P;
    if (VID[aN(0x43a)]) {
        try {
            VID[aN(0xcb)] && VID[aN(0xcb)][aN(0x8dc)] === aN(0x2cb) && await VID[aN(0xcb)][aN(0x31f)](),
            VID['aenc'] && VID[aN(0xfe)][aN(0x8dc)] === 'configured' && await VID[aN(0xfe)][aN(0x31f)](),
            VID['muxer'][aN(0x8a7)]();
            const a = VID['muxer']['target'][aN(0x838)];
            if (!a || !a[aN(0x221)]) {
                toast('\u041F\u0443\u0441\u0442\u043E\u0439\x20\u043A\u043B\u0438\u043F', !0x0);
                return;
            }
            const b = await vidUpload(new Blob([a],{
                'type': aN(0x6b8)
            }), 'mp4');
            toast(aN(0x854) + b[aN(0x7d3)](/[\\/]/)[aN(0x760)]());
        } catch (c) {
            toast(aN(0x7cb) + c, !0x0);
        }
        try {
            VID[aN(0xcb)] && VID[aN(0xcb)][aN(0x416)]();
        } catch {}
        try {
            VID[aN(0xfe)] && VID[aN(0xfe)][aN(0x416)]();
        } catch {}
        VID[aN(0xcb)] = VID[aN(0xfe)] = VID['muxer'] = null,
        loadRecList();
    }
}
async function stopVideoClip() {
    const aO = odf943efb_P;
    if (VID[aO(0x85c)])
        return;
    VID[aO(0x85c)] = !0x0;
    const a = VID['mode'];
    if (VID['on'] = !0x1,
    vidTimerStop(),
    VID[aO(0x455)]) {
        await stopVideoWorker(a),
        VID[aO(0x317)] = '',
        VID[aO(0x85c)] = !0x1,
        reflectVideoControls();
        return;
    }
    cancelAnimationFrame(VID['raf']),
    VID[aO(0x42d)] = 0x0;
    try {
        VID[aO(0x138)] && VID[aO(0x138)][aO(0x5b1)]();
    } catch {}
    VID[aO(0x138)] = null;
    try {
        await VID[aO(0x772)];
    } catch {}
    if (VID[aO(0x772)] = null,
    a === aO(0x493))
        await vidFinalize();
    else {
        try {
            VID[aO(0xcb)] && VID[aO(0xcb)]['close']();
        } catch {}
        try {
            VID['aenc'] && VID[aO(0xfe)][aO(0x416)]();
        } catch {}
        VID[aO(0xcb)] = VID[aO(0xfe)] = VID['muxer'] = null;
    }
    try {
        VID[aO(0x390)] && VID[aO(0x390)][aO(0x57d)]()['forEach'](b => b[aO(0x359)]());
    } catch {}
    try {
        VID['ws'] && VID['ws'][aO(0x416)]();
    } catch {}
    try {
        VID['audioMixer'] && VID[aO(0x5a0)][aO(0x507)]();
    } catch {}
    try {
        VID['ac'] && VID['ac'][aO(0x416)]();
    } catch {}
    VID[aO(0x4b1)] = null,
    VID[aO(0x390)] = null,
    VID[aO(0x5a0)] = null,
    VID[aO(0x1fa)] = null,
    VID[aO(0x317)] = '',
    VID[aO(0x85c)] = !0x1,
    reflectVideoControls();
}
function reflectVideoControls() {
    const aP = odf943efb_P
      , a = $(aP(0x2f6))
      , b = $(aP(0x335))
      , c = $(aP(0x526))
      , d = $(aP(0x70f));
    a && (a['classList'][aP(0x7bb)]('on', VID['on'] && VID[aP(0x317)] === 'clip'),
    a[aP(0x927)] = VID[aP(0x85c)] || VID['on'] && VID[aP(0x317)] !== aP(0x493),
    a[aP(0x333)] = VID['on'] && VID[aP(0x317)] === 'clip' ? aP(0x1cd) : aP(0x39b)),
    b && (b['classList']['toggle']('on', VID['on'] && VID[aP(0x317)] === aP(0x1fa)),
    b[aP(0x927)] = VID[aP(0x85c)] || VID['on'] && VID[aP(0x317)] !== aP(0x1fa),
    b[aP(0x333)] = VID['on'] && VID[aP(0x317)] === aP(0x1fa) ? aP(0x10c) : aP(0x7a2)),
    c && (c['disabled'] = VID['finalizing'] || !(VID['on'] && VID[aP(0x317)] === aP(0x1fa))),
    d && (d[aP(0x927)] = VID['on'] || VID[aP(0x85c)]);
}
const CAP = {
    'ws': null,
    'srcToPeer': Object[odf943efb_P(0x905)](null),
    'bufs': Object[odf943efb_P(0x905)](null),
    'talk': Object[odf943efb_P(0x905)](null),
    'RATE': 0xbb80,
    'SECONDS': 0x1e
}
  , capLen = () => CAP['RATE'] * CAP[odf943efb_P(0x6db)];
function capBufFor(a) {
    const aQ = odf943efb_P;
    return CAP[aQ(0x36f)][a] || (CAP[aQ(0x36f)][a] = {
        'data': new Float32Array(capLen()),
        'w': 0x0,
        'filled': !0x1
    }),
    CAP[aQ(0x36f)][a];
}
function capConnect() {
    const aR = odf943efb_P;
    if (!window['__NK_CAP__']) {
        setTimeout(capConnect, 0x190);
        return;
    }
    if (CAP['ws'] && (CAP['ws']['readyState'] === 0x0 || CAP['ws'][aR(0x871)] === 0x1))
        return;
    let a;
    try {
        a = new WebSocket((location[aR(0x321)] === aR(0x12e) ? aR(0x78c) : aR(0x4f5)) + location[aR(0x19e)] + aR(0x103));
    } catch {
        setTimeout(capConnect, 0x9c4);
        return;
    }
    a[aR(0x368)] = aR(0x62d),
    CAP['ws'] = a,
    a[aR(0x18b)] = () => {
        const aS = aR;
        try {
            a[aS(0x581)](JSON[aS(0x53f)]({
                'role': 'op',
                'cap': 0x1,
                'capToken': window[aS(0x65c)]
            }));
        } catch {}
    }
    ,
    a['onmessage'] = c => {
        const aT = aR
          , e = c[aT(0x108)];
        if (typeof e == 'string') {
            try {
                const o = JSON[aT(0x46a)](e);
                o && o['t'] === aT(0x4ae) && o[aT(0x22c)] && typeof o['src'] == aT(0x792) ? (Object['keys'](CAP[aT(0x613)])[aT(0x78d)](p => {
                    const aU = aT;
                    CAP[aU(0x613)][p] === o[aU(0x22c)] && +p !== o[aU(0x4ae)] && delete CAP[aU(0x613)][p];
                }
                ),
                CAP[aT(0x613)][o[aT(0x4ae)]] = o[aT(0x22c)]) : o && o['t'] === aT(0x561) && o[aT(0x22c)] ? delete CAP[aT(0x36f)][o[aT(0x22c)]] : o && o['t'] === aT(0x6f7) && o[aT(0x22c)] ? handlePaneCtl(o) : o && o['t'] === aT(0x3a2) && o[aT(0x22c)] ? handlePeerBeacon(o) : o && o['t'] === aT(0x6f5) ? onPaneBan(o[aT(0x22c)], o['ip'], o['until']) : o && o['t'] === aT(0x8d6) ? onPaneStuck(o[aT(0x22c)]) : o && o['t'] === aT(0x6f0) && o[aT(0x22c)] ? onPaneIp(o[aT(0x22c)], o['ip']) : o && o['t'] === aT(0x42a) && o['peer'] ? CAP['talk'][o[aT(0x22c)]] = {
                    'on': !!o['on'],
                    'ts': Date[aT(0x2d3)]()
                } : o && o['t'] === 'text-event' && o[aT(0x22c)] && handleTextBridgeEvent(o);
            } catch {}
            return;
        }
        if (!(e instanceof ArrayBuffer) || e[aT(0x221)] < 0xc)
            return;
        const g = new DataView(e);
        if (g[aT(0x5e4)](0x0) !== 0x0)
            return;
        const h = CAP[aT(0x613)][g['getUint32'](0x4)];
        if (!h)
            return;
        const j = new Float32Array(e,0x8)
          , k = capBufFor(h)
          , l = k['data']['length'];
        let n = k['w'];
        for (let p = 0x0; p < j[aT(0x64f)]; p++)
            k[aT(0x108)][n++] = j[p],
            n >= l && (n = 0x0,
            k[aT(0x1e1)] = !0x0);
        k['w'] = n;
    }
    ,
    a[aR(0x6e7)] = () => {
        CAP['ws'] = null,
        setTimeout(capConnect, 0x9c4);
    }
    ,
    a[aR(0x4df)] = () => {
        const aV = aR;
        try {
            a[aV(0x416)]();
        } catch {}
    }
    ;
}
const _banCool = {}
  , _banTries = {}
  , _banReset = {}
  , _banGiveUp = {}
  , BAN_MAX_ROTATE = 0x4
  , BAN_GIVEUP_MS = 0x1d4c0;
async function paneRecover(a, b=!0x1) {
    const aW = odf943efb_P
      , c = a ? peerLabel(a) : aW(0x193)
      , d = Date[aW(0x2d3)]();
    if (!b && (_banGiveUp[a] || 0x0) > d || !b && (_banCool[a] || 0x0) > d)
        return;
    _banCool[a] = d + 0x1f40;
    const e = b ? 0x1 : (_banTries[a] || 0x0) + 0x1;
    if (_banTries[a] = e,
    !b && e > BAN_MAX_ROTATE) {
        _banTries[a] = 0x0,
        _banGiveUp[a] = d + BAN_GIVEUP_MS,
        toast('\u26D4\x20' + c + aW(0x3e6) + BAN_MAX_ROTATE + aW(0x5ed), !0x0);
        return;
    }
    toast('\u{1F504}\x20' + c + ':\x20' + (b ? aW(0x8cf) : aW(0x1b7) + e + '/' + BAN_MAX_ROTATE + ')\u2026'));
    try {
        await invoke('rotate_pane', {
            'peer': a,
            'fresh': !0x0
        });
    } catch {}
    clearTimeout(_banReset[a]),
    _banReset[a] = setTimeout( () => {
        _banTries[a] = 0x0;
    }
    , 0x55f0);
}
let _banlist = new Set();
const _ipWarned = {};
function onPaneBan(a, b, c) {
    return paneRecover(a);
}
async function onPaneIp(a, b) {
    const aX = odf943efb_P;
    if (!/^peer[1-4]$/['test'](a || '') || !b || /[^0-9.:a-fA-F]/[aX(0x7d0)](b) || !_banlist['has'](b))
        return;
    const c = Date['now']();
    (_ipWarned[a] || 0x0) > c || (_ipWarned[a] = c + 0x927c0,
    toast(aX(0x7b3) + (a ? peerLabel(a) : aX(0x193)) + ':\x20\u0430\u0434\u0440\u0435\u0441\x20' + b + '\x20\u0443\u0436\u0435\x20\u043F\u043E\u043C\u0435\u0447\u0435\u043D\x20\u043A\u0430\u043A\x20\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439.\x20\u0421\u043C\u0435\u043D\u0438\x20\u0441\u0435\u0442\u044C\x20\u0438\u043B\u0438\x20\u0432\u043A\u043B\u044E\u0447\u0438\x20VPN\x20\u2014\x20\u0438\u0437\x20\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\x20IP\x20\u043D\u0435\x20\u043F\u043E\u043C\u0435\u043D\u044F\u0442\u044C.', !0x0));
}
const _stuckInform = {};
function onPaneStuck(a) {
    const aY = odf943efb_P
      , b = Date[aY(0x2d3)]();
    (_stuckInform[a] || 0x0) > b || (_stuckInform[a] = b + 0xea60);
}
function handlePaneCtl(a) {
    const aZ = odf943efb_P;
    if (a['a'] === aZ(0x775))
        setBarge(a['peer'], !!a['on']);
    else {
        if (a['a'] === aZ(0x21b))
            paneRecover(a[aZ(0x22c)], !0x0);
        else {
            if (a['a'] === aZ(0x14a)) {
                const b = Math[aZ(0x29b)](0x0, Math[aZ(0x75f)](0x96, +a['v'] || 0x0));
                localStorage[aZ(0x378)](aZ(0x5ac) + a['peer'], String(b));
            } else
                a['a'] === 'mute' && toast((a['on'] ? aZ(0x414) : '\u0417\u0432\u0443\u043A\x20\u0432\u043A\u043B\u044E\u0447\u0451\u043D:\x20') + peerLabel(a['peer']));
        }
    }
}
const peerMates = {}
  , peerPopAt = {};
function roomKeyOf(c, d) {
    const b0 = odf943efb_P;
    return [c >>> 0x0, d >>> 0x0][b0(0x128)]( (e, f) => e - f)[b0(0x29a)]('-');
}
function handlePeerBeacon(a) {
    const b1 = odf943efb_P
      , b = a['peer'];
    if (a[b1(0xd0)] == null || a[b1(0x114)] == null) {
        const e = peerMates[b];
        peerMates[b] = null;
        const f = $(b1(0x5f1));
        e && f && f['classList'][b1(0x3f5)]('show') && f[b1(0x2af)]['room'] === e[b1(0x61d)] && f['classList']['remove'](b1(0x4dd));
        return;
    }
    const c = roomKeyOf(a[b1(0x114)], a[b1(0xd0)]);
    if (peerMates[b] && peerMates[b][b1(0x61d)] === c)
        return;
    const d = peerLabel(b);
    peerMates[b] = {
        'room': c,
        'label': d
    },
    !(peerPopAt[c] && Date[b1(0x2d3)]() - peerPopAt[c] < 0xea60) && (peerPopAt[c] = Date[b1(0x2d3)](),
    showPeerPopup(c, d));
}
function showPeerPopup(a, b) {
    const b2 = odf943efb_P
      , c = $('#peerPop');
    c && ($('#peerPopText')[b2(0x333)] = b2(0x596) + b + b2(0x7c1),
    c[b2(0x2af)]['room'] = a,
    c[b2(0x2af)][b2(0x20a)] = b,
    c['classList'][b2(0x19d)](b2(0x4dd)));
}
function wirePeerPopup() {
    const b3 = odf943efb_P
      , a = $(b3(0x5f1));
    a && ($('#peerPopOpen') && ($('#peerPopOpen')[b3(0x882)] = () => {
        const b4 = b3;
        openPeerChat(a[b4(0x2af)][b4(0x61d)], a[b4(0x2af)]['label']),
        a[b4(0x474)]['remove']('show');
    }
    ),
    $(b3(0x8e9)) && ($('#peerPopClose')[b3(0x882)] = () => a[b3(0x474)]['remove'](b3(0x4dd))));
}
let peerWs = null
  , peerRoom = null
  , peerRetry = null
  , peerNoRetry = !0x1;
function peerChatStatus(a) {
    const b5 = odf943efb_P
      , b = $(b5(0x34c));
    b && (b[b5(0x333)] = a || '');
}
function addPeerMsg(a) {
    const b6 = odf943efb_P
      , b = $(b6(0x921));
    if (!b)
        return;
    const c = b[b6(0x52e)] - b[b6(0x553)] - b['clientHeight'] < 0x3c
      , e = document['createElement'](b6(0x7df));
    e[b6(0x4a9)] = b6(0x4a0) + (a[b6(0x682)] ? b6(0x325) : '');
    const f = a[b6(0x5df)] || '?'
      , g = a['ts'] ? new Date(a['ts'] * 0x3e8) : null
      , h = g && !isNaN(g) ? g['toLocaleTimeString'](b6(0x907), {
        'hour': b6(0x283),
        'minute': b6(0x283)
    }) : ''
      , i = a[b6(0x682)] ? '' : avaLook(f);
    for (e[b6(0x870)] = b6(0x504) + i + '>' + escapeHtml(initials(f)) + b6(0x53d) + escapeHtml(f) + '</span>' + (h ? b6(0x46f) + h + b6(0x225) : '') + '</div><div\x20class=\x22cm-text\x22>' + escapeHtml(a['text'] || '') + b6(0x537),
    b[b6(0x755)](e); b[b6(0x248)][b6(0x64f)] > 0xc8; )
        b['firstChild'][b6(0x6f2)]();
    c && (b[b6(0x553)] = b[b6(0x52e)]);
}
function openPeerChat(a, b) {
    const b7 = odf943efb_P;
    if (!a)
        return;
    const c = $(b7(0xe0));
    c && ($('#peerChatTitle') && ($(b7(0x88b))[b7(0x333)] = b ? '\u0427\u0430\u0442\x20\xB7\x20' + b : b7(0x752)),
    a !== peerRoom && $(b7(0x921)) && ($(b7(0x921))['innerHTML'] = ''),
    c['classList']['add'](b7(0x8c7)),
    connectPeerChat(a),
    setTimeout( () => $(b7(0x740))?.[b7(0x389)](), 0xf0));
}
function closePeerChat() {
    const b8 = odf943efb_P;
    $(b8(0xe0))?.[b8(0x474)][b8(0x6f2)]('open'),
    clearTimeout(peerRetry);
    try {
        peerWs && peerWs['close']();
    } catch {}
    peerWs = null,
    peerRoom = null;
}
function connectPeerChat(a) {
    const b9 = odf943efb_P;
    if (!localStorage[b9(0x6b6)]('lic_token')) {
        peerChatStatus(b9(0x5a6));
        return;
    }
    if (peerWs && peerRoom === a && (peerWs[b9(0x871)] === 0x0 || peerWs[b9(0x871)] === 0x1))
        return;
    clearTimeout(peerRetry);
    try {
        peerWs && peerWs[b9(0x416)]();
    } catch {}
    peerRoom = a,
    peerNoRetry = !0x1;
    const b = LICENSE_API[b9(0x8c0)](/^http/, 'ws')[b9(0x8c0)](/\/$/, '') + b9(0x5dd) + encodeURIComponent(localStorage[b9(0x6b6)](b9(0x811)) || '') + '&room=' + encodeURIComponent(a);
    try {
        peerWs = new WebSocket(b);
    } catch {
        return;
    }
    peerWs[b9(0x18b)] = () => peerChatStatus(''),
    peerWs[b9(0x637)] = d => {
        const ba = b9;
        try {
            const f = JSON[ba(0x46a)](d['data']);
            if (f['type'] === 'msg')
                addPeerMsg(f);
            else {
                if (f[ba(0x3c7)] === ba(0xf0)) {
                    const g = $(ba(0x601));
                    g && (g[ba(0x333)] = f[ba(0x2a5)] >= 0x2 ? ba(0x642) : ba(0xce));
                } else
                    f[ba(0x3c7)] === 'error' && (peerNoRetry = !0x0,
                    peerChatStatus(f[ba(0x5bb)] === ba(0x2e5) ? ba(0x202) : f[ba(0x5bb)] === ba(0x2d5) ? ba(0x76e) : ba(0x157)));
            }
        } catch {}
    }
    ,
    peerWs[b9(0x6e7)] = () => {
        const bb = b9;
        peerRoom !== a || peerNoRetry || !$('#peerChat')?.[bb(0x474)][bb(0x3f5)]('open') || (peerChatStatus(bb(0x8af)),
        clearTimeout(peerRetry),
        peerRetry = setTimeout( () => {
            peerRoom === a && connectPeerChat(a);
        }
        , 0xfa0));
    }
    ;
}
function wirePeerChat() {
    const bc = odf943efb_P;
    $('#peerChatClose') && ($(bc(0x8bb))[bc(0x882)] = closePeerChat);
    const a = () => {
        const bd = bc
          , b = $(bd(0x740))
          , c = (b?.[bd(0x5d9)] || '')[bd(0x407)]();
        if (c) {
            if (!peerWs || peerWs[bd(0x871)] !== 0x1) {
                peerRoom && connectPeerChat(peerRoom);
                return;
            }
            peerWs[bd(0x581)](JSON[bd(0x53f)]({
                'text': c
            })),
            b['value'] = '';
        }
    }
    ;
    $('#peerChatSend') && ($(bc(0x380))[bc(0x882)] = a),
    $(bc(0x740)) && $(bc(0x740))['addEventListener'](bc(0x424), b => {
        const be = bc;
        b[be(0xee)] === be(0x462) && (b[be(0x7e1)](),
        a());
    }
    );
}
const avatarOverlayOn = () => localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x2d2)) === '1'
  , avatarThreshold = () => Math[odf943efb_P(0x29b)](0.008, Math['min'](0.09, +(localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x724)) || odf943efb_P(0x6c2)) || 0.028))
  , AVATAR_KINDS = [odf943efb_P(0x187), 'person2', 'person3', odf943efb_P(0x4f7), 'person5', odf943efb_P(0x437), 'person7', 'person8', odf943efb_P(0x750)];
function avatarKinds() {
    const bf = odf943efb_P;
    try {
        const c = JSON[bf(0x46a)](localStorage[bf(0x6b6)](bf(0x86d)) || '[]');
        if (Array[bf(0x5a5)](c) && c[bf(0x64f)] >= 0x4 && c[bf(0x869)](d => AVATAR_KINDS[bf(0x74e)](d)))
            return c[bf(0x801)](0x0, 0x4);
    } catch {}
    const a = AVATAR_KINDS[bf(0x7a8)](d => d !== bf(0x750));
    for (let d = a['length'] - 0x1; d > 0x0; d--) {
        const e = Math[bf(0x8a9)](Math['random']() * (d + 0x1));
        [a[d],a[e]] = [a[e], a[d]];
    }
    const b = a['slice'](0x0, 0x4);
    return Math[bf(0x5b0)]() < 0.2 && (b[Math[bf(0x8a9)](Math[bf(0x5b0)]() * b['length'])] = 'duck'),
    localStorage[bf(0x378)](bf(0x86d), JSON[bf(0x53f)](b)),
    b;
}
function applyAvatarOverlay() {
    const bg = odf943efb_P;
    invoke(bg(0x2b2), {
        'on': avatarOverlayOn(),
        'threshold': avatarThreshold(),
        'kinds': avatarKinds()
    })[bg(0x375)]( () => {}
    );
}
function wireAvatarOverlay() {
    const bh = odf943efb_P
      , a = $(bh(0x691))
      , b = $(bh(0x92e));
    b && (b[bh(0x5d9)] = String(avatarThreshold()),
    b[bh(0x1fe)] = () => {
        const bi = bh;
        localStorage[bi(0x378)](bi(0x724), b[bi(0x5d9)]),
        applyAvatarOverlay();
    }
    );
    const c = () => {
        const bj = bh;
        if (!a)
            return;
        const d = avatarOverlayOn();
        a['classList'][bj(0x7bb)]('on', d),
        a[bj(0x333)] = d ? bj(0x676) : bj(0xda);
    }
    ;
    c(),
    applyAvatarOverlay(),
    a && (a['onclick'] = () => {
        const bk = bh;
        localStorage['setItem'](bk(0x2d2), avatarOverlayOn() ? '0' : '1'),
        c(),
        applyAvatarOverlay(),
        toast(avatarOverlayOn() ? bk(0x4a5) : '\u0410\u0432\u0430\u0442\u0430\u0440\u044B\x20\u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u044B');
    }
    );
}
function capGrabFloats(a) {
    const bl = odf943efb_P
      , c = CAP['bufs'][a];
    if (!c)
        return null;
    if (!c[bl(0x1e1)])
        return c['w'] > 0x0 ? c['data'][bl(0x801)](0x0, c['w']) : null;
    const d = new Float32Array(c[bl(0x108)][bl(0x64f)]);
    return d['set'](c[bl(0x108)][bl(0x2c4)](c['w'])),
    d[bl(0xf3)](c[bl(0x108)][bl(0x2c4)](0x0, c['w']), c['data'][bl(0x64f)] - c['w']),
    d;
}
function peerLabel(a) {
    const bm = odf943efb_P
      , b = +('' + a)[bm(0x8c0)]('peer', '') || 0x0
      , c = state['paneSources'] || [];
    try {
        if (typeof srcName == bm(0x4f3) && b)
            return srcName(c[b - 0x1], b);
    } catch {}
    return bm(0x8f0) + b;
}
async function playVoiceClip(a, b) {
    const bn = odf943efb_P;
    if (!a || !await opBase())
        return;
    try {
        await op['ctx'][bn(0x465)]();
    } catch {}
    await opGate(b || bn(0x3c8));
    const c = op[bn(0x105)][bn(0x6de)]();
    c[bn(0x838)] = a,
    c['connect'](opOutNode());
    try {
        c['connect'](op[bn(0x105)][bn(0x234)]);
    } catch {}
    op[bn(0x2e0)]++,
    op['sending'] = !0x0,
    c[bn(0x137)] = () => relSound(),
    c[bn(0x27d)](0x0);
}
function sliceBuffer(a, b, c) {
    const bo = odf943efb_P
      , d = a['length']
      , f = Math[bo(0x8a9)](b * d)
      , g = Math['max'](0x1, Math[bo(0x8a9)]((c - b) * d))
      , h = op[bo(0x105)][bo(0x384)](0x1, g, a[bo(0x2e6)]);
    return h[bo(0x289)](a[bo(0x398)](0x0)[bo(0x801)](f, f + g), 0x0),
    h;
}
function wavEncode(a, b) {
    const bp = odf943efb_P
      , c = a[bp(0x64f)]
      , d = new ArrayBuffer(0x2c + c * 0x2)
      , e = new DataView(d)
      , f = (h, j) => {
        const bq = bp;
        for (let k = 0x0; k < j[bq(0x64f)]; k++)
            e[bq(0x30e)](h + k, j[bq(0x714)](k));
    }
    ;
    f(0x0, bp(0xae)),
    e[bp(0x303)](0x4, 0x24 + c * 0x2, !0x0),
    f(0x8, bp(0x75a)),
    f(0xc, bp(0x3a4)),
    e[bp(0x303)](0x10, 0x10, !0x0),
    e[bp(0x219)](0x14, 0x1, !0x0),
    e[bp(0x219)](0x16, 0x1, !0x0),
    e[bp(0x303)](0x18, b, !0x0),
    e[bp(0x303)](0x1c, b * 0x2, !0x0),
    e[bp(0x219)](0x20, 0x2, !0x0),
    e['setUint16'](0x22, 0x10, !0x0),
    f(0x24, 'data'),
    e[bp(0x303)](0x28, c * 0x2, !0x0);
    let g = 0x2c;
    for (let h = 0x0; h < c; h++) {
        const j = Math[bp(0x29b)](-0x1, Math[bp(0x75f)](0x1, a[h]));
        e[bp(0x6fb)](g, j < 0x0 ? j * 0x8000 : j * 0x7fff, !0x0),
        g += 0x2;
    }
    return new Uint8Array(d);
}
const vSel = new Set();
function voicesTarget() {
    const br = odf943efb_P;
    return vSel[br(0x6ed)] ? [...vSel] : br(0x3c8);
}
function reflectVoicesTargets() {
    const bs = odf943efb_P;
    $$(bs(0x79e))['forEach'](a => a[bs(0x474)][bs(0x7bb)]('on', a['dataset'][bs(0x698)] === bs(0x3c8) ? vSel[bs(0x6ed)] === 0x0 : vSel[bs(0x403)](a[bs(0x2af)][bs(0x698)])));
}
async function voiceBuffer(a) {
    const bt = odf943efb_P;
    if (a[bt(0x838)])
        return a[bt(0x838)];
    if (!a[bt(0x7ee)] || !await opBase())
        return null;
    try {
        const b = await fetch(convertFileSrc(a['path']));
        return a[bt(0x838)] = await op[bt(0x105)][bt(0x396)](await b['arrayBuffer']()),
        a[bt(0x838)];
    } catch {
        return null;
    }
}
function addVoiceChip(a) {
    const bu = odf943efb_P
      , b = $('#voicesBox');
    if (!b)
        return;
    const c = $(bu(0x83f));
    c && (c[bu(0x84b)][bu(0x390)] = bu(0x902));
    const d = typeof a[bu(0x697)] == bu(0x792) ? a['secs'] : 0x0
      , e = document[bu(0x4b4)](bu(0x7df));
    e[bu(0x4a9)] = 'voice-chip',
    e[bu(0x2af)]['id'] = a['id'] || '',
    e['innerHTML'] = bu(0x164) + escapeHtml(a['name'] || bu(0xdf)) + bu(0x413) + d[bu(0x590)](0x1) + bu(0x404),
    injectIcons(e),
    e['onclick'] = async f => {
        const bv = bu;
        if (f[bv(0x766)][bv(0x43e)](bv(0x26e)) || f[bv(0x766)][bv(0x43e)](bv(0x84c)))
            return;
        const g = await voiceBuffer(a);
        if (!g)
            return toast(bv(0x7d8), !0x0);
        playVoiceClip(g, voicesTarget()),
        e['classList'][bv(0x19d)](bv(0x306)),
        setTimeout( () => e[bv(0x474)][bv(0x6f2)](bv(0x306)), 0x190);
    }
    ,
    e[bu(0x577)](bu(0x84c))[bu(0x882)] = f => {
        const bw = bu;
        f[bw(0x6fa)]();
        const g = (window[bw(0x706)] && window[bw(0x706)](bw(0x3b2), a[bw(0x8b8)] || bw(0xdf)) || '')[bw(0x407)]();
        g && (a[bw(0x8b8)] = g,
        e[bw(0x577)]('.vc-name')['textContent'] = g,
        a['id'] && invoke('rename_voice', {
            'id': a['id'],
            'name': g
        })[bw(0x375)]( () => {}
        ));
    }
    ,
    e['querySelector'](bu(0x26e))[bu(0x882)] = f => {
        const bx = bu;
        f[bx(0x6fa)](),
        a['id'] && invoke(bx(0x893), {
            'id': a['id']
        })[bx(0x375)]( () => {}
        ),
        e[bx(0x6f2)](),
        !b[bx(0x577)](bx(0x400)) && c && (c['style'][bx(0x390)] = '');
    }
    ,
    b[bu(0x755)](e);
}
async function loadVoices() {
    const by = odf943efb_P;
    let a = [];
    try {
        a = await invoke('list_voices');
    } catch {
        a = [];
    }
    const b = $(by(0x155));
    b && $$(by(0x400), b)[by(0x78d)](d => d[by(0x6f2)]()),
    a[by(0x78d)](c => addVoiceChip({
        'id': c['id'],
        'name': c[by(0x8b8)],
        'secs': c[by(0x697)],
        'path': c[by(0x7ee)]
    }));
}
async function saveCaughtVoice(a, b) {
    const bz = odf943efb_P;
    try {
        const c = wavEncode(a[bz(0x398)](0x0), a[bz(0x2e6)])
          , d = await invoke(bz(0x7cc), {
            'bytes': Array[bz(0x2c2)](c),
            'name': b
        });
        return addVoiceChip({
            'id': d['id'],
            'name': d['name'],
            'secs': d[bz(0x697)],
            'buffer': a
        }),
        !0x0;
    } catch (f) {
        return toast('\u041D\u0435\x20\u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u043E\u0441\u044C:\x20' + f, !0x0),
        !0x1;
    }
}
const WAVE = {
    'buf': null,
    'peer': null,
    's': 0x0,
    'e': 0x1,
    'v0': 0x0,
    'v1': 0x1,
    'prev': null,
    'dragging': null,
    'panX': 0x0,
    'target': odf943efb_P(0x22c)
}
  , waveTarget = () => WAVE[odf943efb_P(0x766)] === odf943efb_P(0x3c8) ? odf943efb_P(0x3c8) : WAVE['peer']
  , waveSpan = () => WAVE['v1'] - WAVE['v0'];
function reflectWaveTarget() {
    const bA = odf943efb_P;
    $$(bA(0x5d7))[bA(0x78d)](a => a[bA(0x474)][bA(0x7bb)]('on', a[bA(0x2af)]['wt'] === WAVE[bA(0x766)]));
}
async function catchVoice(a) {
    const bB = odf943efb_P;
    if (!await opBase())
        return;
    const b = capGrabFloats(a);
    if (!b || b['length'] < CAP[bB(0x49d)] * 0.3) {
        toast(bB(0x492), !0x0);
        return;
    }
    const c = op[bB(0x105)][bB(0x384)](0x1, b[bB(0x64f)], CAP[bB(0x49d)]);
    c[bB(0x289)](b, 0x0),
    WAVE[bB(0x45a)] = c,
    WAVE[bB(0x22c)] = a,
    WAVE['s'] = 0x0,
    WAVE['e'] = 0x1,
    WAVE['v0'] = 0x0,
    WAVE['v1'] = 0x1,
    WAVE[bB(0x766)] = 'peer',
    $(bB(0x382))[bB(0x333)] = '\u0413\u043E\u043B\u043E\u0441:\x20' + peerLabel(a),
    reflectWaveTarget(),
    $(bB(0x448))[bB(0x474)]['add'](bB(0x4dd)),
    requestAnimationFrame( () => {
        drawWave(),
        updateWaveSel();
    }
    );
}
function drawWave() {
    const bC = odf943efb_P
      , a = $(bC(0x5a8));
    if (!a || !WAVE[bC(0x45a)])
        return;
    const b = a[bC(0x4db)] = a[bC(0x56b)] || 0x258
      , c = a[bC(0x2c8)] = 0x82
      , d = a['getContext']('2d');
    d[bC(0x892)](0x0, 0x0, b, c);
    const e = WAVE['buf'][bC(0x398)](0x0)
      , f = e['length']
      , h = Math[bC(0x8a9)](WAVE['v0'] * f)
      , j = Math[bC(0x29b)](0x1, Math[bC(0x8a9)](waveSpan() * f))
      , k = getComputedStyle(document['documentElement']);
    d[bC(0x2bb)] = (k[bC(0x664)](bC(0x296)) || '#2b3245')[bC(0x407)](),
    d[bC(0xc6)](),
    d[bC(0xea)](0x0, c / 0x2 + 0.5),
    d[bC(0x23d)](b, c / 0x2 + 0.5),
    d[bC(0x3e2)](),
    d[bC(0x2bb)] = (k['getPropertyValue'](bC(0x461)) || bC(0x63d))[bC(0x407)](),
    d['lineWidth'] = 0x1,
    d[bC(0xc6)]();
    const l = j / b;
    for (let p = 0x0; p < b; p++) {
        let q = 0x1
          , r = -0x1;
        const s = h + Math[bC(0x8a9)](p * l)
          , t = Math[bC(0x29b)](0x1, Math[bC(0x8a9)](l));
        for (let u = 0x0; u < t; u++) {
            const w = e[s + u] || 0x0;
            w < q && (q = w),
            w > r && (r = w);
        }
        d['moveTo'](p + 0.5, (0x1 - (r * 0.92 + 0x1) / 0x2) * c),
        d[bC(0x23d)](p + 0.5, (0x1 - (q * 0.92 + 0x1) / 0x2) * c);
    }
    d['stroke']();
    const m = $(bC(0x59e));
    m && (m['textContent'] = (0x1 / waveSpan())['toFixed'](waveSpan() > 0.5 ? 0x0 : 0x1) + '\xD7');
}
function updateWaveSel() {
    const bD = odf943efb_P
      , a = $('#waveWrap');
    if (!a || !WAVE[bD(0x45a)])
        return;
    const b = a[bD(0x56b)] || 0x258
      , c = $(bD(0x8b2))
      , d = waveSpan()
      , e = Math['max'](-0x8, (WAVE['s'] - WAVE['v0']) / d * b)
      , f = Math[bD(0x75f)](b + 0x8, (WAVE['e'] - WAVE['v0']) / d * b);
    c['style'][bD(0x390)] = f < 0x0 || e > b ? bD(0x902) : '',
    c[bD(0x84b)]['left'] = e + 'px',
    c[bD(0x84b)]['width'] = Math[bD(0x29b)](0x0, f - e) + 'px',
    $('#waveDur')[bD(0x333)] = ((WAVE['e'] - WAVE['s']) * WAVE['buf'][bD(0xc7)])[bD(0x590)](0x2) + '\x20\u0441';
}
function waveZoom(a, b) {
    const bE = odf943efb_P
      , d = waveSpan()
      , e = Math[bE(0x75f)](0x1, Math[bE(0x29b)](0.003, d * a))
      , f = b ?? WAVE['v0'] + d / 0x2
      , g = d > 0x0 ? (f - WAVE['v0']) / d : 0.5;
    let h = f - g * e
      , i = h + e;
    h < 0x0 && (i -= h,
    h = 0x0),
    i > 0x1 && (h -= i - 0x1,
    i = 0x1,
    h = Math[bE(0x29b)](0x0, h)),
    WAVE['v0'] = h,
    WAVE['v1'] = i,
    drawWave(),
    updateWaveSel();
}
function wireWaveEditor() {
    const bH = odf943efb_P
      , a = $('#waveWrap');
    if (!a)
        return;
    const b = f => {
        const bF = odf943efb_b
          , g = a[bF(0x481)]()
          , h = Math['min'](0x1, Math[bF(0x29b)](0x0, (f - g[bF(0x7ae)]) / g[bF(0x4db)]));
        return WAVE['v0'] + h * waveSpan();
    }
      , c = g => {
        const bG = odf943efb_b;
        g = Math[bG(0x75f)](0x1, Math['max'](0x0, g));
        const h = Math[bG(0x29b)](0.005, waveSpan() * 0.01);
        WAVE['dragging'] === 's' ? WAVE['s'] = Math[bG(0x75f)](g, WAVE['e'] - h) : WAVE['e'] = Math[bG(0x29b)](g, WAVE['s'] + h),
        updateWaveSel();
    }
    ;
    a[bH(0x5e7)]('pointerdown', g => {
        const bI = bH;
        try {
            a[bI(0x92b)](g['pointerId']);
        } catch {}
        if (g[bI(0x73f)] === 0x1 || g[bI(0x1cb)]) {
            WAVE['dragging'] = bI(0x3e7),
            WAVE[bI(0x30d)] = g[bI(0x81b)],
            a[bI(0x474)][bI(0x19d)](bI(0x406)),
            g[bI(0x7e1)]();
            return;
        }
        const h = b(g[bI(0x81b)]);
        WAVE['dragging'] = Math[bI(0x884)](h - WAVE['s']) <= Math[bI(0x884)](h - WAVE['e']) ? 's' : 'e',
        c(h);
    }
    ),
    a['addEventListener'](bH(0x6ee), f => {
        const bJ = bH;
        if (WAVE['dragging']) {
            if (WAVE[bJ(0x74d)] === 'pan') {
                const g = a[bJ(0x481)]()
                  , h = (WAVE[bJ(0x30d)] - f[bJ(0x81b)]) / g[bJ(0x4db)] * waveSpan();
                WAVE['panX'] = f[bJ(0x81b)];
                let i = WAVE['v0'] + h
                  , j = WAVE['v1'] + h;
                i < 0x0 && (j -= i,
                i = 0x0),
                j > 0x1 && (i -= j - 0x1,
                j = 0x1),
                WAVE['v0'] = i,
                WAVE['v1'] = j,
                drawWave(),
                updateWaveSel();
                return;
            }
            c(b(f['clientX']));
        }
    }
    );
    const d = () => {
        const bK = bH;
        WAVE[bK(0x74d)] = null,
        a[bK(0x474)][bK(0x6f2)](bK(0x406));
    }
    ;
    a[bH(0x5e7)](bH(0x7ff), d),
    a[bH(0x5e7)](bH(0x742), d),
    a[bH(0x5e7)](bH(0xca), f => {
        const bL = bH;
        WAVE[bL(0x45a)] && (f[bL(0x7e1)](),
        waveZoom(f[bL(0x2df)] > 0x0 ? 1.25 : 0.8, b(f[bL(0x81b)])));
    }
    , {
        'passive': !0x1
    }),
    $(bH(0x8b9)) && ($(bH(0x8b9))[bH(0x882)] = () => waveZoom(0.6, (WAVE['s'] + WAVE['e']) / 0x2)),
    $(bH(0x8a3)) && ($(bH(0x8a3))['onclick'] = () => waveZoom(1.7)),
    $(bH(0x615)) && ($(bH(0x615))['onclick'] = () => {
        WAVE['v0'] = 0x0,
        WAVE['v1'] = 0x1,
        drawWave(),
        updateWaveSel();
    }
    );
    const e = () => {
        const bM = bH;
        try {
            WAVE['prev'] && WAVE[bM(0x25c)]['stop']();
        } catch {}
        WAVE[bM(0x25c)] = null;
    }
    ;
    $$(bH(0x5d7))['forEach'](f => f[bH(0x882)] = () => {
        const bN = bH;
        WAVE[bN(0x766)] = f[bN(0x2af)]['wt'],
        reflectWaveTarget();
    }
    ),
    $('#wavePreview')['onclick'] = () => {
        const bO = bH;
        e();
        const f = sliceBuffer(WAVE[bO(0x45a)], WAVE['s'], WAVE['e'])
          , g = op['ctx'][bO(0x6de)]();
        g[bO(0x838)] = f,
        g[bO(0x6bd)](op[bO(0x105)][bO(0x234)]),
        g[bO(0x27d)](0x0),
        WAVE[bO(0x25c)] = g;
    }
    ,
    $(bH(0x18d))['onclick'] = () => playVoiceClip(sliceBuffer(WAVE[bH(0x45a)], WAVE['s'], WAVE['e']), waveTarget()),
    $('#waveSave')[bH(0x882)] = async () => {
        const bP = bH
          , f = sliceBuffer(WAVE[bP(0x45a)], WAVE['s'], WAVE['e'])
          , g = peerLabel(WAVE[bP(0x22c)]) + '\x20' + new Date()[bP(0x49b)](bP(0x907), {
            'hour': bP(0x283),
            'minute': bP(0x283)
        });
        e(),
        $('#waveModal')['classList'][bP(0x6f2)]('show'),
        await saveCaughtVoice(f, g) && toast(bP(0x260));
    }
    ,
    $('#waveClose')[bH(0x882)] = () => {
        const bQ = bH;
        e(),
        $(bQ(0x448))[bQ(0x474)][bQ(0x6f2)](bQ(0x4dd));
    }
    ,
    window[bH(0x5e7)](bH(0x8f7), () => {
        const bR = bH;
        $('#waveModal')[bR(0x474)][bR(0x3f5)](bR(0x4dd)) && (drawWave(),
        updateWaveSel());
    }
    );
}
function showView(a) {
    const bS = odf943efb_P;
    $$(bS(0x329))['forEach'](c => {
        const bT = bS;
        c['style']['removeProperty'](bT(0x390)),
        c[bT(0x474)][bT(0x7bb)]('active', c[bT(0x2af)][bT(0x774)] === a);
    }
    ),
    $$(bS(0x41e))[bS(0x78d)](c => c[bS(0x474)][bS(0x7bb)]('active', c[bS(0x2af)]['view'] === a)),
    document[bS(0x624)][bS(0x474)][bS(0x19d)](bS(0x2f5)),
    document[bS(0x624)][bS(0x2af)][bS(0x141)] = bS(0x774);
    const b = $('#textBridgeView');
    b && (b[bS(0x3ef)] = !0x0),
    TEXT_BRIDGE[bS(0x317)] === 'text' && invoke('set_text_workspace_wide', {
        'on': !0x1
    })[bS(0x375)]( () => {}
    ),
    $(bS(0x337))[bS(0x553)] = 0x0,
    a === bS(0x73a) && admLoad(),
    a === bS(0x431) && storeLoad(),
    a === bS(0x1ef) && onChatSurfaceOpened(bS(0x1fc));
}
function selectedMicId() {
    const bU = odf943efb_P;
    return localStorage[bU(0x6b6)](bU(0x36e)) || '';
}
function setSelectedMicId(a) {
    const bV = odf943efb_P;
    a ? localStorage[bV(0x378)](bV(0x36e), a) : localStorage[bV(0x791)]('micDeviceId');
}
function micDenoiseOn() {
    const bW = odf943efb_P;
    try {
        return localStorage[bW(0x6b6)](bW(0xd9)) !== '0';
    } catch {
        return !0x0;
    }
}
function micConstraints() {
    const a = selectedMicId()
      , b = micDenoiseOn()
      , c = {
        'channelCount': {
            'ideal': 0x1
        },
        'sampleRate': {
            'ideal': 0xbb80
        },
        'sampleSize': {
            'ideal': 0x10
        },
        'latency': {
            'ideal': 0.01
        },
        'echoCancellation': !0x1,
        'noiseSuppression': b,
        'autoGainControl': b
    };
    return a && (c['deviceId'] = {
        'exact': a
    }),
    {
        'audio': c
    };
}
function renderMicSelect(a=state[odf943efb_P(0x738)]) {
    const bX = odf943efb_P
      , b = $(bX(0xe6));
    if (!b)
        return;
    const c = selectedMicId()
      , d = a['filter'](f => f[bX(0x656)] && f[bX(0x656)] !== bX(0x8cc))
      , e = [bX(0x466)];
    d[bX(0x78d)]( (f, g) => e['push'](bX(0x701) + escapeHtml(f[bX(0x656)]) + '\x22>' + escapeHtml(f['label'] || bX(0x814) + (g + 0x1)) + bX(0x906))),
    c && !d['some'](f => f[bX(0x656)] === c) && e[bX(0x255)](bX(0x701) + escapeHtml(c) + bX(0x367)),
    b[bX(0x870)] = e[bX(0x29a)](''),
    b['value'] = c;
}
async function refreshDevices() {
    const bY = odf943efb_P;
    let a = [];
    try {
        a = await navigator[bY(0x4e1)][bY(0x468)]();
    } catch {}
    state[bY(0x738)] = a[bY(0x7a8)](c => c[bY(0x68e)] === bY(0x2dc)),
    state['micGranted'] = state[bY(0x738)]['some'](c => c[bY(0x20a)]);
    const b = selectedMicId();
    b && state[bY(0x328)] && !state[bY(0x738)][bY(0x20c)](c => c['deviceId'] === b) && (setSelectedMicId(''),
    (op['micNode'] || op[bY(0x777)]) && reloadOpMic()[bY(0x375)]( () => {}
    )),
    renderMicSelect(),
    updateReadiness();
}
function updateReadiness() {
    const bZ = odf943efb_P;
    $(bZ(0x756))['classList'][bZ(0x7bb)]('done', state[bZ(0x328)]),
    state['micGranted'] && ($('#grantBtn')[bZ(0x333)] = 'OK');
    let a, b, c, d, e;
    state[bZ(0x328)] ? (a = 'ok',
    b = bZ(0x489),
    c = bZ(0x3ad),
    d = bZ(0x3e5),
    e = bZ(0x1de)) : (a = 'warn',
    b = '\u043D\u0443\u0436\u0435\u043D\x20\u043C\u0438\u043A\u0440\u043E\u0444\u043E\u043D',
    c = 'plug',
    d = bZ(0x66b),
    e = bZ(0x194));
    const f = $(bZ(0x4af));
    f[bZ(0x2af)][bZ(0x8dc)] = a,
    $('.status-label', f)[bZ(0x333)] = b;
    const g = $(bZ(0x86a));
    g[bZ(0x2af)]['state'] = a,
    $(bZ(0x5e9), g)[bZ(0x2af)]['icon'] = c,
    $(bZ(0x5e9), g)[bZ(0x870)] = iconSvg(c),
    $(bZ(0x1e5), g)['textContent'] = d,
    $(bZ(0x6ab), g)[bZ(0x333)] = e,
    $('[data-goto=\x22setup\x22]', g)[bZ(0x84b)][bZ(0x390)] = a === 'ok' ? bZ(0x902) : '',
    $('#setupBadge')[bZ(0x474)][bZ(0x7bb)](bZ(0x4dd), a !== 'ok');
}
let _earlyMicAsked = !0x1;
async function maybeEarlyMicPrompt() {
    const c0 = odf943efb_P;
    if (_earlyMicAsked || $('#licOverlay')?.[c0(0x474)][c0(0x3f5)](c0(0x4dd)))
        return;
    _earlyMicAsked = !0x0;
    try {
        const b = await navigator[c0(0x3b7)]?.['query']?.({
            'name': c0(0x26c)
        })['catch']( () => null);
        if (b && b[c0(0x8dc)] === c0(0x150)) {
            refreshDevices()[c0(0x375)]( () => {}
            );
            return;
        }
    } catch {}
    let a = null;
    try {
        try {
            a = await navigator[c0(0x4e1)]['getUserMedia'](micConstraints());
        } catch (c) {
            if (!selectedMicId())
                throw c;
            a = await navigator[c0(0x4e1)]['getUserMedia']({
                'audio': !0x0
            });
        }
    } catch {}
    try {
        a?.[c0(0x57d)]()[c0(0x78d)](d => d[c0(0x359)]());
    } catch {}
    refreshDevices()['catch']( () => {}
    );
}
const op = {
    'ctx': null,
    'dest': null,
    'relayNode': null,
    'relaySr': 0xbb80,
    'ws': null,
    'wsConnecting': null,
    'micStream': null,
    'micNode': null,
    'sending': !0x1,
    'micTarget': null,
    'sounds': 0x0,
    'dropped': 0x0,
    'id': Math[odf943efb_P(0x5b0)]() * 0xffffffff >>> 0x0
};
function opOutNode() {
    const c1 = odf943efb_P;
    return op[c1(0x4da)] || op[c1(0x72a)];
}
function resampleMono(c, d, e) {
    const c2 = odf943efb_P;
    if (d = +d || e,
    e = +e || d,
    !c?.[c2(0x64f)] || d === e)
        return c;
    const f = Math[c2(0x29b)](0x1, Math[c2(0x7c9)](c[c2(0x64f)] * e / d))
      , g = new Float32Array(f)
      , h = d / e;
    for (let j = 0x0; j < f; j++) {
        const k = j * h
          , l = Math[c2(0x8a9)](k)
          , m = k - l
          , n = c[Math['min'](l, c[c2(0x64f)] - 0x1)]
          , o = c[Math[c2(0x75f)](l + 0x1, c[c2(0x64f)] - 0x1)];
        g[j] = n + (o - n) * m;
    }
    return g;
}
function opRelayOnFrame(a) {
    const c3 = odf943efb_P;
    if (!op['sending'] || !op['ws'] || op['ws'][c3(0x871)] !== 0x1)
        return;
    if (op['ws']['bufferedAmount'] > OP_WS_MAX_BUFFERED) {
        op['dropped']++;
        return;
    }
    let b = a;
    if (op[c3(0x87e)] !== 0xbb80) {
        const e = new Float32Array(a['length']);
        for (let h = 0x0; h < a['length']; h++)
            e[h] = a[h] / 0x8000;
        const g = resampleMono(e, op[c3(0x87e)], 0xbb80);
        b = new Int16Array(g[c3(0x64f)]);
        for (let i = 0x0; i < g['length']; i++) {
            let k = Math[c3(0x7c9)](g[i] * 0x7fff);
            b[i] = k > 0x7fff ? 0x7fff : k < -0x8000 ? -0x8000 : k;
        }
    }
    const c = new ArrayBuffer(0x8 + b[c3(0x64f)] * 0x2)
      , d = new DataView(c);
    d[c3(0x30e)](0x0, 0x2),
    d[c3(0x303)](0x4, op['id']),
    new Int16Array(c,0x8)[c3(0xf3)](b);
    try {
        op['ws'][c3(0x581)](c);
    } catch {}
}
async function opSetupRelay() {
    const c4 = odf943efb_P;
    op[c4(0x87e)] = op[c4(0x105)]['sampleRate'] | 0x0;
    const a = '\x0a\x20\x20\x20\x20class\x20OpRelayProc\x20extends\x20AudioWorkletProcessor\x20{\x0a\x20\x20\x20\x20\x20\x20constructor()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20super();\x0a\x20\x20\x20\x20\x20\x20\x20\x20this._frame\x20=\x20Math.max(1,\x20Math.round(sampleRate\x20*\x200.02));\x20//\x2020мс\x20(=960\x20@48к)\x0a\x20\x20\x20\x20\x20\x20\x20\x20this._acc\x20=\x20new\x20Float32Array(this._frame);\x0a\x20\x20\x20\x20\x20\x20\x20\x20this._n\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20process(inputs,\x20outputs)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20inCh\x20=\x20inputs[0]\x20&&\x20inputs[0][0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20outCh\x20=\x20outputs[0]\x20&&\x20outputs[0][0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20N\x20=\x20inCh\x20?\x20inCh.length\x20:\x20(outCh\x20?\x20outCh.length\x20:\x20128);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(outCh)\x20{\x20if\x20(inCh)\x20outCh.set(inCh);\x20else\x20outCh.fill(0);\x20}\x20//\x20проброс\x20микса\x20дальше\x20→\x20op.dest\x20(Voisa/старый\x20stream)\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20acc\x20=\x20this._acc,\x20frame\x20=\x20this._frame;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(let\x20i\x20=\x200;\x20i\x20<\x20N;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20acc[this._n++]\x20=\x20inCh\x20?\x20inCh[i]\x20:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(this._n\x20>=\x20frame)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20i16\x20=\x20new\x20Int16Array(frame);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(let\x20j\x20=\x200;\x20j\x20<\x20frame;\x20j++)\x20{\x20let\x20s\x20=\x20Math.round(acc[j]\x20*\x2032767);\x20i16[j]\x20=\x20s\x20>\x2032767\x20?\x2032767\x20:\x20(s\x20<\x20-32768\x20?\x20-32768\x20:\x20s);\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.port.postMessage(i16,\x20[i16.buffer]);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this._n\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20true;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20registerProcessor(\x22op-relay-proc\x22,\x20OpRelayProc);\x0a\x20\x20';
    let b;
    try {
        b = URL[c4(0x3b9)](new Blob([a],{
            'type': c4(0x771)
        })),
        await op[c4(0x105)]['audioWorklet'][c4(0x127)](b);
        const c = new AudioWorkletNode(op[c4(0x105)],c4(0x24f),{
            'numberOfInputs': 0x1,
            'numberOfOutputs': 0x1,
            'outputChannelCount': [0x1],
            'channelCount': 0x1,
            'channelCountMode': c4(0xf2),
            'channelInterpretation': 'speakers'
        });
        return c[c4(0x8e0)][c4(0x637)] = d => {
            try {
                opRelayOnFrame(d['data']);
            } catch {}
        }
        ,
        c[c4(0x6bd)](op[c4(0x72a)]),
        op[c4(0x4da)] = c,
        !0x0;
    } catch {
        return op['relayNode'] = null,
        !0x1;
    } finally {
        b && URL[c4(0x6a6)](b);
    }
}
function startLegacyOpPump() {
    const c5 = odf943efb_P;
    let a;
    try {
        a = new MediaStreamTrackProcessor({
            'track': op[c5(0x72a)][c5(0x4fb)][c5(0x11d)]()[0x0]
        })[c5(0x405)][c5(0x821)]();
    } catch {
        return;
    }
    (function b() {
        const c6 = c5;
        a[c6(0x83c)]()[c6(0x50f)](c => {
            const c7 = c6;
            if (c['done'])
                return;
            const d = c['value'];
            try {
                if (op[c7(0x17a)] && op['ws'] && op['ws'][c7(0x871)] === 0x1) {
                    const e = d[c7(0x1c8)]
                      , g = Math[c7(0x29b)](0x1, d[c7(0x147)] || 0x1);
                    let h = new Float32Array(e);
                    if (d['copyTo'](h, {
                        'planeIndex': 0x0,
                        'format': c7(0x91b)
                    }),
                    g > 0x1) {
                        const j = new Float32Array(e);
                        for (let k = 0x1; k < g; k++) {
                            d[c7(0x806)](j, {
                                'planeIndex': k,
                                'format': 'f32-planar'
                            });
                            for (let l = 0x0; l < e; l++)
                                h[l] += j[l];
                        }
                        for (let m = 0x0; m < e; m++)
                            h[m] /= g;
                    }
                    if (h = resampleMono(h, d['sampleRate'] || op['ctx'][c7(0x2e6)], 0xbb80),
                    op['ws'][c7(0x1b6)] > OP_WS_MAX_BUFFERED)
                        op['dropped']++;
                    else {
                        const o = new ArrayBuffer(0x8 + h['length'] * 0x2)
                          , p = new DataView(o);
                        p[c7(0x30e)](0x0, 0x2),
                        p[c7(0x303)](0x4, op['id']);
                        const q = new Int16Array(o,0x8);
                        for (let r = 0x0; r < h['length']; r++) {
                            let t = Math[c7(0x7c9)](h[r] * 0x7fff);
                            q[r] = t > 0x7fff ? 0x7fff : t < -0x8000 ? -0x8000 : t;
                        }
                        op['ws'][c7(0x581)](o);
                    }
                }
            } catch {}
            try {
                d[c7(0x416)]();
            } catch {}
            b();
        }
        )[c6(0x375)]( () => {}
        );
    }());
}
const VOICE_FX = [{
    'id': odf943efb_P(0x796),
    'name': odf943efb_P(0x547)
}, {
    'id': odf943efb_P(0x4c5),
    'name': odf943efb_P(0x216)
}, {
    'id': odf943efb_P(0x616),
    'name': odf943efb_P(0x5b7)
}, {
    'id': odf943efb_P(0x6d1),
    'name': odf943efb_P(0x2e1)
}, {
    'id': odf943efb_P(0x5c6),
    'name': odf943efb_P(0x162)
}, {
    'id': odf943efb_P(0x529),
    'name': '\u0414\u0435\u043C\u043E\u043D'
}, {
    'id': odf943efb_P(0x182),
    'name': odf943efb_P(0x140)
}]
  , VOICE_FX_VISIBLE = !0x1
  , voiceFx = {
    'preset': VOICE_FX_VISIBLE && localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x4e4)) || odf943efb_P(0x796),
    'relayOn': !0x1,
    'monitorOn': !0x1,
    'nodes': [],
    'cleanups': [],
    'monitorGain': null
}
  , MIC_MAKEUP_GAIN = 0x2
  , AUDIO_SYNC_MAX_MS = 0x3e8;
function audioSyncMs() {
    const c8 = odf943efb_P
      , a = +(localStorage[c8(0x6b6)](c8(0x645)) || 0x0);
    return Number[c8(0x3ac)](a) ? Math[c8(0x29b)](-AUDIO_SYNC_MAX_MS, Math[c8(0x75f)](AUDIO_SYNC_MAX_MS, Math[c8(0x7c9)](a))) : 0x0;
}
function setAudioSyncMs(a) {
    const c9 = odf943efb_P
      , b = Number[c9(0x3ac)](+a) ? Math[c9(0x29b)](-AUDIO_SYNC_MAX_MS, Math[c9(0x75f)](AUDIO_SYNC_MAX_MS, Math[c9(0x7c9)](+a))) : 0x0;
    return localStorage[c9(0x378)](c9(0x645), String(b)),
    b;
}
async function opConnectWs() {
    const ca = odf943efb_P;
    if (op['ws'] && op['ws'][ca(0x871)] === 0x1)
        return !0x0;
    if (op[ca(0x866)])
        return op[ca(0x866)];
    {
        let a = 0x0;
        for (; !window[ca(0x65c)] && a < 0x14; )
            await new Promise(b => setTimeout(b, 0xc8)),
            a++;
        if (!window[ca(0x65c)])
            return !0x1;
    }
    return op['wsConnecting'] = new Promise(b => {
        const cb = ca;
        try {
            const c = new WebSocket((location['protocol'] === 'https:' ? cb(0x78c) : 'ws://') + location[cb(0x19e)] + cb(0x103));
            c[cb(0x368)] = 'arraybuffer';
            const d = e => {
                const cc = cb;
                op[cc(0x866)] && (op[cc(0x866)] = null),
                b(e);
            }
            ;
            c[cb(0x18b)] = () => {
                const cd = cb;
                op['ws'] = c;
                try {
                    c[cd(0x581)](JSON[cd(0x53f)]({
                        'ab': 0x1,
                        'role': 'op',
                        'capToken': window[cd(0x65c)]
                    }));
                } catch {}
                d(!0x0);
            }
            ,
            c[cb(0x4df)] = () => {
                const ce = cb;
                try {
                    c[ce(0x416)]();
                } catch {}
                d(!0x1);
            }
            ,
            c[cb(0x6e7)] = () => {
                const cf = cb;
                op['ws'] === c && (op['ws'] = null),
                op[cf(0x17a)] && setTimeout( () => opConnectWs()[cf(0x375)]( () => {}
                ), 0x4b0);
            }
            ;
        } catch {
            done(!0x1);
        }
    }
    ),
    op[ca(0x866)];
}
async function opBase() {
    const cg = odf943efb_P;
    if (op['ctx'])
        return op['ws'] && op['ws']['readyState'] === 0x1 ? !0x0 : await opConnectWs();
    try {
        if (typeof MediaStreamTrackProcessor > 'u')
            return toast(cg(0x457), !0x0),
            !0x1;
        try {
            op[cg(0x105)] = new AudioContext({
                'sampleRate': 0xbb80,
                'latencyHint': cg(0x36b)
            });
        } catch {
            op[cg(0x105)] = new AudioContext({
                'latencyHint': cg(0x36b)
            });
        }
        op[cg(0x72a)] = op['ctx']['createMediaStreamDestination']();
        try {
            op['dest'][cg(0xc1)] = 0x1,
            op['dest'][cg(0x678)] = cg(0xf2);
        } catch {}
        try {
            await opConnectWs();
        } catch {}
        return await opSetupRelay() || startLegacyOpPump(),
        !0x0;
    } catch {
        return toast(cg(0x759), !0x0),
        !0x1;
    }
}
async function opMic() {
    const ch = odf943efb_P;
    if (op['micNode'])
        return await opBase();
    if (!await opBase())
        return !0x1;
    try {
        try {
            op[ch(0x777)] = await navigator[ch(0x4e1)][ch(0x2bc)](micConstraints());
        } catch (a) {
            if (!selectedMicId())
                throw a;
            setSelectedMicId(''),
            renderMicSelect(),
            op[ch(0x777)] = await navigator[ch(0x4e1)][ch(0x2bc)](micConstraints()),
            toast(ch(0x686), !0x0);
        }
        return op['micNode'] = op['ctx'][ch(0x277)](op[ch(0x777)]),
        rebuildVoiceFxGraph(),
        refreshDevices()['catch']( () => {}
        ),
        !0x0;
    } catch {
        return toast(ch(0x8ae), !0x0),
        !0x1;
    }
}
window[odf943efb_P(0x75b)] = {
    'ensure': function() {
        const ci = odf943efb_P;
        return opBase()[ci(0x50f)](function() {
            const cj = ci;
            return op[cj(0x72a)] ? op['dest'][cj(0x4fb)] : null;
        })['catch'](function() {
            const ck = ci;
            return op[ck(0x72a)] ? op[ck(0x72a)][ck(0x4fb)] : null;
        });
    },
    'stream': function() {
        const cl = odf943efb_P;
        return op['dest'] ? op[cl(0x72a)][cl(0x4fb)] : null;
    }
};
function stopOpMicStream() {
    const cm = odf943efb_P;
    stopVoiceFxNodes();
    try {
        op[cm(0x777)]?.[cm(0x57d)]()[cm(0x78d)](a => a['stop']());
    } catch {}
    try {
        op[cm(0x38a)]?.[cm(0x507)]();
    } catch {}
    op[cm(0x777)] = null,
    op[cm(0x38a)] = null;
}
async function reloadOpMic() {
    const cn = odf943efb_P
      , a = voiceFx[cn(0x14e)]
      , b = voiceFx['monitorOn']
      , c = !!op[cn(0x38a)] || !!op[cn(0x777)];
    if (stopOpMicStream(),
    voiceFx[cn(0x14e)] = a,
    voiceFx[cn(0x22d)] = b,
    !c && !a && !b)
        return reflectVoiceFxUI(),
        !0x0;
    if (!await opMic())
        return voiceFx[cn(0x14e)] = !0x1,
        voiceFx[cn(0x22d)] = !0x1,
        a && (op[cn(0x17a)] = op[cn(0x2e0)] > 0x0,
        op['sending'] || await opGateOff()),
        reflectVoiceFxUI(),
        !0x1;
    try {
        await op['ctx']['resume']();
    } catch {}
    return reflectVoiceFxUI(),
    !0x0;
}
function voiceFxInfo(a=voiceFx[odf943efb_P(0x24c)]) {
    const co = odf943efb_P;
    return VOICE_FX[co(0x3d5)](b => b['id'] === a) || VOICE_FX[0x0];
}
function makeCurve(a=0x18) {
    const b = new Float32Array(0x800);
    for (let c = 0x0; c < 0x800; c++) {
        const d = c * 0x2 / 0x800 - 0x1;
        b[c] = (0x1 + a) * d / (0x1 + a * Math['abs'](d));
    }
    return b;
}
function stopVoiceFxNodes() {
    const cp = odf943efb_P;
    for (const a of voiceFx['cleanups'][cp(0x4d8)](0x0))
        try {
            a();
        } catch {}
    for (const b of voiceFx[cp(0xb9)][cp(0x4d8)](0x0))
        try {
            b[cp(0x507)]();
        } catch {}
    try {
        op['micNode'] && op['micNode'][cp(0x507)]();
    } catch {}
    try {
        voiceFx['monitorGain'] && voiceFx[cp(0x5c4)]['disconnect']();
    } catch {}
}
function chainVoiceFx(a, b, c) {
    const cq = odf943efb_P;
    let d = a;
    for (const e of c)
        d['connect'](e),
        d = e;
    d[cq(0x6bd)](b);
}
function createVoiceFxChain() {
    const cr = odf943efb_P
      , a = op[cr(0x105)]
      , b = a['createGain']()
      , c = a[cr(0x844)]()
      , d = f => (voiceFx['nodes'][cr(0x255)](f),
    f);
    voiceFx['nodes'][cr(0x255)](b, c);
    const e = (f, g) => {
        const cs = cr
          , h = d(a[cs(0x874)]());
        h['type'] = 'highpass',
        h[cs(0x739)][cs(0x5d9)] = 0x46,
        h['Q']['value'] = 0.6;
        const i = d(a[cs(0x859)]());
        i['threshold'][cs(0x5d9)] = -0x22,
        i['knee'][cs(0x5d9)] = 0x18,
        i[cs(0x598)][cs(0x5d9)] = 4.5,
        i['attack'][cs(0x5d9)] = 0.006,
        i[cs(0x8c5)][cs(0x5d9)] = 0.18;
        const j = d(a[cs(0x844)]());
        j[cs(0x68a)][cs(0x5d9)] = MIC_MAKEUP_GAIN;
        const k = d(a['createDynamicsCompressor']());
        k[cs(0x453)][cs(0x5d9)] = -0x7,
        k[cs(0x444)][cs(0x5d9)] = 0x4,
        k['ratio']['value'] = 0xe,
        k[cs(0x1f9)]['value'] = 0.002,
        k['release'][cs(0x5d9)] = 0.08,
        chainVoiceFx(f, g, [h, i, j, k]);
    }
    ;
    switch (voiceFx[cr(0x24c)]) {
    case cr(0x4c5):
        {
            const f = d(a[cr(0x874)]());
            f[cr(0x3c7)] = 'lowshelf',
            f['frequency'][cr(0x5d9)] = 0xdc,
            f['gain']['value'] = 0xa;
            const g = d(a[cr(0x874)]());
            g[cr(0x3c7)] = 'lowpass',
            g[cr(0x739)][cr(0x5d9)] = 0x708,
            g['Q'][cr(0x5d9)] = 0.6;
            const h = d(a[cr(0x859)]());
            h[cr(0x453)][cr(0x5d9)] = -0x1c,
            h['ratio'][cr(0x5d9)] = 0x4,
            chainVoiceFx(b, c, [f, g, h]);
            break;
        }
    case cr(0x616):
        {
            const i = d(a['createBiquadFilter']());
            i[cr(0x3c7)] = cr(0x677),
            i[cr(0x739)][cr(0x5d9)] = 0x168,
            i['Q'][cr(0x5d9)] = 0.8;
            const j = d(a[cr(0x874)]());
            j[cr(0x3c7)] = cr(0x5c5),
            j[cr(0x739)][cr(0x5d9)] = 0x992,
            j['Q'][cr(0x5d9)] = 0.9;
            const k = d(a[cr(0x1a1)]());
            k[cr(0x472)] = makeCurve(0x9),
            k[cr(0xb4)] = '2x',
            chainVoiceFx(b, c, [i, j, k]);
            break;
        }
    case 'radio':
        {
            const l = d(a[cr(0x874)]());
            l['type'] = cr(0x677),
            l[cr(0x739)][cr(0x5d9)] = 0x208;
            const m = d(a[cr(0x874)]());
            m[cr(0x3c7)] = cr(0x70a),
            m[cr(0x739)][cr(0x5d9)] = 0x5aa,
            m['Q'][cr(0x5d9)] = 1.8;
            const n = d(a[cr(0x1a1)]());
            n[cr(0x472)] = makeCurve(0x12),
            n[cr(0xb4)] = '2x';
            const o = d(a[cr(0x844)]());
            o[cr(0x68a)][cr(0x5d9)] = 1.25,
            chainVoiceFx(b, c, [l, m, n, o]);
            break;
        }
    case cr(0x5c6):
        {
            const p = d(a['createGain']());
            p[cr(0x68a)][cr(0x5d9)] = 0.55;
            const q = a[cr(0x667)]();
            q[cr(0x3c7)] = cr(0x34f),
            q[cr(0x739)]['value'] = 0x48;
            const r = a[cr(0x844)]();
            r[cr(0x68a)][cr(0x5d9)] = 0.42,
            voiceFx[cr(0xb9)][cr(0x255)](q, r),
            q['connect'](r),
            r[cr(0x6bd)](p[cr(0x68a)]),
            q[cr(0x27d)](),
            voiceFx[cr(0x439)][cr(0x255)]( () => q[cr(0x359)]());
            const s = d(a[cr(0x874)]());
            s[cr(0x3c7)] = cr(0x70a),
            s['frequency'][cr(0x5d9)] = 0x384,
            s['Q'][cr(0x5d9)] = 0.75,
            chainVoiceFx(b, c, [p, s]);
            break;
        }
    case cr(0x529):
        {
            const t = d(a['createBiquadFilter']());
            t[cr(0x3c7)] = cr(0x4a3),
            t['frequency'][cr(0x5d9)] = 0xb4,
            t['gain'][cr(0x5d9)] = 0xc;
            const u = d(a[cr(0x1a1)]());
            u[cr(0x472)] = makeCurve(0x24),
            u[cr(0xb4)] = '4x';
            const v = d(a[cr(0x63b)](0.08));
            v[cr(0x6f9)]['value'] = 0.035;
            const w = d(a[cr(0x844)]());
            w[cr(0x68a)][cr(0x5d9)] = 0.8,
            b['connect'](t),
            t['connect'](u),
            u[cr(0x6bd)](c),
            u[cr(0x6bd)](v),
            v[cr(0x6bd)](w),
            w[cr(0x6bd)](c);
            break;
        }
    case 'echo':
        {
            const x = d(a['createGain']());
            x[cr(0x68a)][cr(0x5d9)] = 0.78;
            const y = d(a[cr(0x63b)](0.6));
            y[cr(0x6f9)]['value'] = 0.18;
            const z = d(a[cr(0x844)]());
            z['gain'][cr(0x5d9)] = 0.28;
            const A = d(a[cr(0x844)]());
            A[cr(0x68a)][cr(0x5d9)] = 0.38,
            b['connect'](x),
            x[cr(0x6bd)](c),
            b[cr(0x6bd)](y),
            y[cr(0x6bd)](A),
            A['connect'](c),
            y['connect'](z),
            z[cr(0x6bd)](y);
            break;
        }
    default:
        e(b, c);
        break;
    }
    return {
        'input': b,
        'output': c
    };
}
function rebuildVoiceFxGraph() {
    const ct = odf943efb_P;
    if (!op[ct(0x105)] || !op['micNode'])
        return;
    stopVoiceFxNodes();
    const a = createVoiceFxChain();
    if (op['micNode'][ct(0x6bd)](a['input']),
    voiceFx[ct(0x14e)]) {
        const b = audioSyncMs();
        if (b > 0x0) {
            const c = op['ctx']['createDelay'](AUDIO_SYNC_MAX_MS / 0x3e8);
            c[ct(0x6f9)][ct(0x5d9)] = b / 0x3e8,
            voiceFx['nodes'][ct(0x255)](c),
            a[ct(0x443)][ct(0x6bd)](c),
            c[ct(0x6bd)](opOutNode());
        } else
            a[ct(0x443)][ct(0x6bd)](opOutNode());
    }
    if (voiceFx[ct(0x22d)]) {
        voiceFx[ct(0x5c4)] || (voiceFx['monitorGain'] = op[ct(0x105)][ct(0x844)](),
        voiceFx[ct(0x5c4)][ct(0x68a)][ct(0x5d9)] = 0.85);
        const d = op[ct(0x105)][ct(0x30b)](0x2);
        voiceFx[ct(0xb9)][ct(0x255)](d),
        a[ct(0x443)][ct(0x6bd)](d, 0x0, 0x0),
        a[ct(0x443)][ct(0x6bd)](d, 0x0, 0x1),
        d[ct(0x6bd)](voiceFx[ct(0x5c4)]),
        voiceFx['monitorGain'][ct(0x6bd)](op[ct(0x105)]['destination']);
    }
}
function setVoiceFxPreset(a) {
    const cu = odf943efb_P;
    voiceFx[cu(0x24c)] = VOICE_FX_VISIBLE ? voiceFxInfo(a)['id'] : cu(0x796),
    VOICE_FX_VISIBLE && localStorage['setItem'](cu(0x4e4), voiceFx[cu(0x24c)]),
    rebuildVoiceFxGraph(),
    reflectVoiceFxUI();
}
async function toggleVoiceFxPreview() {
    const cv = odf943efb_P;
    if (!(!voiceFx['monitorOn'] && !await opMic())) {
        try {
            await op['ctx'][cv(0x465)]();
        } catch {}
        voiceFx[cv(0x22d)] = !voiceFx[cv(0x22d)],
        rebuildVoiceFxGraph(),
        reflectVoiceFxUI();
    }
}
function reflectVoiceFxUI() {
    const cw = odf943efb_P
      , a = voiceFxInfo()
      , b = $(cw(0x19f));
    b && (b[cw(0x5d9)] = a['id']);
    const c = $(cw(0x348));
    c && (c['textContent'] = a['id'] === 'off' ? '\u0431\u0435\u0437\x20\u044D\u0444\u0444\u0435\u043A\u0442\u0430' : a[cw(0x8b8)][cw(0x860)](),
    c[cw(0x474)][cw(0x7bb)]('on', a['id'] !== cw(0x796)));
    const d = $(cw(0x549));
    d && (d[cw(0x474)][cw(0x7bb)]('on', voiceFx[cw(0x22d)]),
    d[cw(0x333)] = voiceFx[cw(0x22d)] ? cw(0x7cd) : '\u041F\u0440\u043E\u0441\u043B\u0443\u0448\u0430\u0442\u044C\x20\u0433\u043E\u043B\u043E\u0441');
}
function wireVoiceFx() {
    const cx = odf943efb_P
      , a = $(cx(0xe6));
    a && (renderMicSelect(),
    a[cx(0x1fe)] = async () => {
        const cy = cx;
        setSelectedMicId(a[cy(0x5d9)]);
        const d = await reloadOpMic();
        await refreshDevices(),
        d && toast(a[cy(0x5d9)] ? cy(0x5de) : cy(0x6cf));
    }
    );
    const b = $(cx(0x19f));
    b && (b[cx(0x870)] = VOICE_FX[cx(0x50d)](d => cx(0x701) + d['id'] + '\x22>' + d[cx(0x8b8)] + cx(0x906))[cx(0x29a)](''),
    b[cx(0x1fe)] = () => setVoiceFxPreset(b[cx(0x5d9)])),
    $(cx(0x549)) && ($('#voiceFxPreview')[cx(0x882)] = toggleVoiceFxPreview);
    const c = $('#audioSyncMs');
    c && (c[cx(0x5d9)] = String(audioSyncMs()),
    c[cx(0x1fe)] = () => {
        const cz = cx;
        c[cz(0x5d9)] = String(setAudioSyncMs(c[cz(0x5d9)])),
        rebuildVoiceFxGraph(),
        toast(c[cz(0x5d9)] === '0' ? cz(0x59d) : cz(0x793) + c[cz(0x5d9)] + cz(0x646));
    }
    ),
    reflectVoiceFxUI();
}
function targetPeers(a) {
    const cA = odf943efb_P;
    if (Array['isArray'](a))
        return a;
    if (!a || a === 'all') {
        const b = [];
        for (let c = 0x1; c <= state['paneCount']; c++)
            b[cA(0x255)](cA(0x22c) + c);
        return b;
    }
    return [a];
}
let opGateKey = '';
function opGateTargetKey(a) {
    const cB = odf943efb_P;
    return targetPeers(a)[cB(0x801)]()[cB(0x128)]()['join'](',');
}
const totalPanes = () => (state[odf943efb_P(0x59c)] || 0x0) + (state[odf943efb_P(0x24a)] || 0x0);
async function opGate(a) {
    const cC = odf943efb_P
      , b = opGateTargetKey(a);
    if (opGateKey === b)
        return;
    const c = new Set(targetPeers(a));
    for (let d = 0x1; d <= totalPanes(); d++) {
        const e = 'peer' + d;
        try {
            await invoke('set_op_gate', {
                'peer': e,
                'on': c[cC(0x403)](e)
            });
        } catch {}
    }
    opGateKey = b;
}
async function opGateOff() {
    const cD = odf943efb_P;
    if (opGateKey) {
        for (let a = 0x1; a <= totalPanes(); a++)
            try {
                await invoke(cD(0x638), {
                    'peer': cD(0x22c) + a,
                    'on': !0x1
                });
            } catch {}
        opGateKey = '';
    }
}
function targetLabel(a) {
    const cE = odf943efb_P
      , b = targetPeers(a);
    return b['length'] >= state[cE(0x59c)] ? cE(0x687) : b[cE(0x64f)] === 0x1 ? peerLabel(b[0x0]) : cE(0x250) + b[cE(0x64f)] + ')';
}
async function setBarge(a, b) {
    const cF = odf943efb_P;
    if (b) {
        if (!await opMic())
            return !0x1;
        try {
            await op[cF(0x105)][cF(0x465)]();
        } catch {}
        voiceFx[cF(0x14e)] = !0x0,
        rebuildVoiceFxGraph(),
        op[cF(0x47a)] = a,
        await opGate(a),
        op[cF(0x17a)] = !0x0;
    } else
        voiceFx[cF(0x14e)] = !0x1,
        rebuildVoiceFxGraph(),
        op[cF(0x47a)] = null,
        op[cF(0x2e0)] === 0x0 && (await opGateOff(),
        op['sending'] = !0x1);
    const c = $('#talkChip');
    c[cF(0x333)] = b ? cF(0x3c2) + targetLabel(a) : cF(0x2fe),
    c[cF(0x474)][cF(0x7bb)](cF(0x253), b);
    const d = a === cF(0x3c8) || Array[cF(0x5a5)](a);
    return $(cF(0x456))?.['classList'][cF(0x7bb)](cF(0x253), b && d),
    !0x0;
}
async function checkBridge() {
    const cG = odf943efb_P;
    try {
        const d = await invoke(cG(0x104));
        d && d !== state[cG(0x59c)] && buildPaneUI(d);
    } catch {}
    for (let e = 0x1; e <= state['paneCount']; e++) {
        const f = +(localStorage['getItem'](cG(0x84a) + e) || cG(0x1e4));
        f !== 0x64 && invoke(cG(0x713), {
            'peer': cG(0x22c) + e,
            'gain': f / 0x64
        })[cG(0x375)]( () => {}
        );
    }
    if (localStorage['getItem'](cG(0x15a)) === '1' && invoke(cG(0x5b9), {
        'on': !0x0,
        'silence': +(localStorage[cG(0x6b6)](cG(0x55b)) || 0x0) || 0x0
    })[cG(0x375)]( () => {}
    ),
    (localStorage[cG(0x6b6)](cG(0x45d)) || cG(0x4c5)) === cG(0x2a6) && invoke(cG(0x40d), {
        'theme': cG(0x2a6)
    })[cG(0x375)]( () => {}
    ),
    isAdmin() && invoke(cG(0x2a2), {
        'on': !0x0
    })['catch']( () => {}
    ),
    avatarOverlayOn() && applyAvatarOverlay(),
    !state[cG(0x328)])
        return;
    const a = $(cG(0x4af));
    if (!a)
        return;
    const b = state[cG(0x59c)];
    let c = 0x0;
    try {
        c = await invoke(cG(0x508));
    } catch {
        c = -0x1;
    }
    c < 0x0 ? (a[cG(0x2af)]['state'] = 'bad',
    $('.status-label', a)[cG(0x333)] = '\u043D\u0435\u0442\x20\u0441\u0432\u044F\u0437\u0438') : c >= b ? (a['dataset']['state'] = 'ok',
    $('.status-label', a)[cG(0x333)] = cG(0x8ed) + b + '/' + b) : (a[cG(0x2af)][cG(0x8dc)] = cG(0x5d2),
    $(cG(0x344), a)[cG(0x333)] = cG(0x8ed) + c + '/' + b);
}
const talkSel = new Set();
function currentTalkTarget() {
    const cH = odf943efb_P
      , a = [...talkSel][cH(0x7a8)](b => +b['slice'](0x4) <= state['paneCount']);
    return a[cH(0x64f)] && a['length'] < state[cH(0x59c)] ? a : cH(0x3c8);
}
function reflectTalkUI() {
    const cI = odf943efb_P;
    $$(cI(0x4fe))[cI(0x78d)](b => b[cI(0x474)][cI(0x7bb)]('on', talkSel[cI(0x6ed)] === 0x0 || talkSel[cI(0x403)](b[cI(0x2af)][cI(0x357)])));
    const a = $('#talkBtn');
    if (a) {
        const b = currentTalkTarget();
        a[cI(0x870)] = (b === 'all' ? '\u0413\u043E\u0432\u043E\u0440\u0438\u0442\u044C\x20\u0432\u0441\u0435\u043C' : cI(0x2bf) + targetLabel(b)) + cI(0x2fd);
    }
}
function wireTalk() {
    const cJ = odf943efb_P;
    let a = null
      , b = null
      , c = !0x1
      , d = !0x1
      , e = null
      , f = !0x1;
    const g = () => localStorage['getItem'](cJ(0x587)) === '1'
      , h = (o, p) => JSON['stringify'](o) === JSON[cJ(0x53f)](p)
      , i = async () => {
        if (!d) {
            d = !0x0;
            try {
                for (; c !== (a != null) || a != null && !h(b, a); ) {
                    const o = a;
                    if (c && (o == null || !h(b, o))) {
                        await setBarge(b, !0x1),
                        c = !0x1,
                        b = null;
                        continue;
                    }
                    if (o != null && !c) {
                        if (!await setBarge(o, !0x0)) {
                            a = null;
                            continue;
                        }
                        c = !0x0,
                        b = o;
                    }
                }
            } finally {
                d = !0x1,
                (c !== (a != null) || a != null && !h(b, a)) && i();
            }
        }
    }
      , j = o => {
        a == null && (a = o,
        i());
    }
      , k = () => (a == null && !c || (a = null,
    i()),
    Promise[cJ(0x7fe)]())
      , l = o => a != null ? k() : j(o)
      , m = () => {
        const cK = cJ;
        $(cK(0x212))?.['classList'][cK(0x7bb)]('on', g());
        const o = $(cK(0x7d5));
        o && (o[cK(0x333)] = g() ? cK(0x4a1) : cK(0x8d3));
    }
    ;
    $(cJ(0x212)) && ($(cJ(0x212))['onclick'] = () => {
        const cL = cJ;
        localStorage[cL(0x378)](cL(0x587), g() ? '0' : '1'),
        k(),
        m();
    }
    ),
    m(),
    $('#talkTargets')?.[cJ(0x5e7)]('click', o => {
        const cM = cJ
          , q = o['target']['closest']('.tt-chip');
        if (!q)
            return;
        const r = q[cM(0x2af)][cM(0x357)];
        talkSel['size'] === 0x0 ? talkSel[cM(0x19d)](r) : talkSel[cM(0x403)](r) ? talkSel[cM(0x29f)](r) : (talkSel[cM(0x19d)](r),
        talkSel['size'] >= state[cM(0x59c)] && talkSel[cM(0x672)]()),
        reflectTalkUI();
    }
    ),
    window[cJ(0x4ea)] = {
        'start': function(o) {
            j(o);
        },
        'stop': function() {
            k();
        },
        'toggle': function(o) {
            l(o);
        }
    };
    const n = () => currentTalkTarget();
    document[cJ(0x5e7)](cJ(0x342), o => {
        const cN = cJ
          , p = o[cN(0x766)]['closest']?.('[data-barge]');
        if (!p)
            return;
        o[cN(0x7e1)]();
        const q = p[cN(0x2af)][cN(0x775)] === cN(0x3c8) ? n() : p[cN(0x2af)][cN(0x775)];
        if (g())
            l(q);
        else {
            if (e != null)
                return;
            e = o[cN(0x166)];
            try {
                p[cN(0x92b)](o['pointerId']);
            } catch {}
            j(q);
        }
    }
    ),
    window[cJ(0x5e7)]('pointerup', o => {
        const cO = cJ;
        g() || o[cO(0x166)] !== e || (e = null,
        k());
    }
    ),
    window[cJ(0x5e7)](cJ(0x742), o => {
        const cP = cJ;
        g() || o[cP(0x166)] !== e || (e = null,
        k());
    }
    ),
    window[cJ(0x5e7)]('keydown', o => {
        const cQ = cJ;
        o[cQ(0x833)] !== cQ(0x69f) || o[cQ(0x1ce)] || [cQ(0x5e3), cQ(0x569), cQ(0x2ae)]['includes']((o['target']?.[cQ(0x6c9)] || '')['toLowerCase']()) || (o[cQ(0x7e1)](),
        g() ? l(n()) : (f = !0x0,
        j(n())));
    }
    ),
    window[cJ(0x5e7)](cJ(0xc8), o => {
        const cR = cJ;
        o[cR(0x833)] === 'Space' && (o[cR(0x7e1)](),
        !g() && f && (f = !0x1,
        k()));
    }
    ),
    document[cJ(0x5e7)]('visibilitychange', () => {
        const cS = cJ;
        !g() && document[cS(0x3ef)] && (e = null,
        f = !0x1,
        k());
    }
    );
}
const SRC_PRESETS = {
    'nekto': odf943efb_P(0x8b6),
    'discord': 'https://discord.com/channels/@me'
};
function paneProxyGet(a) {
    const cT = odf943efb_P;
    try {
        return localStorage[cT(0x6b6)](cT(0x5eb) + a) || '';
    } catch {
        return '';
    }
}
function paneProxySet(a, b) {
    const cU = odf943efb_P;
    try {
        b ? localStorage[cU(0x378)]('nk_pane_proxy:' + a, b) : localStorage[cU(0x791)]('nk_pane_proxy:' + a);
    } catch {}
}
const srcKey = a => a ? /voisa|свои/i[odf943efb_P(0x7d0)](a) ? 'svoi' : /discord/i[odf943efb_P(0x7d0)](a) ? odf943efb_P(0x48a) : /nekto/i[odf943efb_P(0x7d0)](a) ? 'nekto' : 'custom' : 'nekto'
  , srcName = (a, b) => {
    const cV = odf943efb_P
      , c = srcKey(a);
    return (c === cV(0x48a) ? 'Discord' : c === cV(0x24a) ? cV(0x91a) : c === cV(0x170) ? cV(0x170) : cV(0x387)) + '\x20' + b;
}
;
function buildPaneUI(a) {
    const cW = odf943efb_P;
    a = Math[cW(0x29b)](0x1, Math['min'](maxPanes(), a || 0x2)),
    state['paneCount'] = a;
    const d = state[cW(0xe5)] || []
      , e = Math[cW(0x29b)](0x0, state[cW(0x24a)] || 0x0)
      , f = a + e
      , g = $(cW(0x840));
    if (g) {
        g[cW(0x870)] = '';
        for (let o = 0x1; o <= a; o++) {
            const p = cW(0x22c) + o
              , q = srcKey(d[o - 0x1]) === cW(0x170)
              , s = paneProxyGet(p)
              , t = state[cW(0x123)] && state[cW(0x123)][o - 0x1] || !!s
              , u = document[cW(0x4b4)](cW(0x7df));
            u[cW(0x4a9)] = cW(0x4c9),
            u[cW(0x870)] = cW(0x861) + o + cW(0x5c2) + p + cW(0x490) + o + cW(0x7f4) + (q ? cW(0x5cb) + (t ? cW(0x1aa) : '') + cW(0x6b4) + p + '\x22\x20title=\x22Свой\x20адрес\x20(прокси)\x20для\x20этого\x20окна\x22>Прокси</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<small\x20class=\x22pane-proxy-state' + (t ? cW(0x1aa) : '') + cW(0x4ec) + p + '\x22>' + (t ? '\u0441\u0432\u043E\u0439\x20\u0430\u0434\u0440\u0435\u0441' : cW(0x198)) + cW(0x3f0) + p + cW(0x565) + p + cW(0x50a) + o + cW(0x915) + p + cW(0x3f4) + p + '\x22>Убрать</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22pane-proxy-hint\x22>купи\x20прокси\x20и\x20вставь\x20сюда,\x20чтобы\x20окно\x20искало\x20с\x20другого\x20адреса</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>' : ''),
            g[cW(0x755)](u),
            u['querySelector']('.src-pick')[cW(0x5d9)] = srcKey(d[o - 0x1]);
            const v = u[cW(0x577)](cW(0x904));
            v && (v[cW(0x5d9)] = s);
        }
        for (let w = 0x1; w <= e; w++) {
            const x = document[cW(0x4b4)](cW(0x7df));
            x[cW(0x4a9)] = cW(0x73c),
            x[cW(0x870)] = cW(0x861) + (a + w) + cW(0x62b) + w + cW(0x12d) + w + '\x22\x20disabled>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<option\x20value=\x22svoi\x22\x20selected>свои</option>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</select>',
            g['appendChild'](x);
        }
        injectIcons(g);
    }
    const h = $(cW(0x90e));
    if (h) {
        h[cW(0x870)] = '';
        for (let y = 0x1; y <= a; y++) {
            const z = document[cW(0x4b4)]('button');
            z['className'] = cW(0x268),
            z[cW(0x2af)][cW(0x375)] = 'peer' + y,
            z[cW(0x870)] = cW(0x45b) + escapeHtml(srcName(d[y - 0x1], y)) + cW(0x8f4),
            h[cW(0x755)](z);
        }
        injectIcons(h);
    }
    const j = $(cW(0x4b6));
    if (j) {
        j['innerHTML'] = '';
        const A = document[cW(0x4b4)](cW(0x73f));
        A[cW(0x4a9)] = cW(0x156),
        A[cW(0x2af)][cW(0x698)] = cW(0x3c8),
        A[cW(0x333)] = cW(0x89a),
        j[cW(0x755)](A);
        for (let B = 0x1; B <= a; B++) {
            const C = document['createElement'](cW(0x73f));
            C[cW(0x4a9)] = cW(0x156),
            C['dataset']['vsel'] = cW(0x22c) + B,
            C[cW(0x333)] = srcName(d[B - 0x1], B),
            j[cW(0x755)](C);
        }
        for (let D = 0x1; D <= e; D++) {
            const E = document[cW(0x4b4)](cW(0x73f));
            E[cW(0x4a9)] = 'tt-chip',
            E[cW(0x2af)]['vsel'] = cW(0x22c) + (a + D),
            E[cW(0x333)] = cW(0x3ce) + D,
            j[cW(0x755)](E);
        }
        [...vSel][cW(0x78d)](F => {
            const cX = cW;
            +F[cX(0x801)](0x4) > f && vSel[cX(0x29f)](F);
        }
        ),
        vSel[cW(0x6ed)] >= f && vSel['clear'](),
        reflectVoicesTargets();
    }
    const l = $(cW(0x908));
    if (l) {
        if (l[cW(0x870)] = '',
        f > 0x1) {
            for (let F = 0x1; F <= a; F++) {
                const G = document[cW(0x4b4)](cW(0x73f));
                G[cW(0x4a9)] = cW(0x156),
                G[cW(0x2af)][cW(0x357)] = cW(0x22c) + F,
                G[cW(0x333)] = srcName(d[F - 0x1], F),
                l[cW(0x755)](G);
            }
            for (let H = 0x1; H <= e; H++) {
                const I = document[cW(0x4b4)](cW(0x73f));
                I[cW(0x4a9)] = cW(0x156),
                I[cW(0x2af)][cW(0x357)] = cW(0x22c) + (a + H),
                I[cW(0x333)] = cW(0x3ce) + H,
                l[cW(0x755)](I);
            }
        }
        [...talkSel]['forEach'](J => {
            +J['slice'](0x4) > f && talkSel['delete'](J);
        }
        ),
        talkSel['size'] >= f && talkSel['clear'](),
        reflectTalkUI();
    }
    const m = $(cW(0x718));
    if (m) {
        m['innerHTML'] = '';
        const J = document[cW(0x4b4)](cW(0x73f));
        J[cW(0x4a9)] = cW(0x156),
        J[cW(0x2af)][cW(0x779)] = cW(0x3c8),
        J[cW(0x333)] = cW(0x89a),
        m[cW(0x755)](J);
        for (let K = 0x1; K <= a; K++) {
            const L = document[cW(0x4b4)](cW(0x73f));
            L[cW(0x4a9)] = cW(0x156),
            L[cW(0x2af)][cW(0x779)] = cW(0x22c) + K,
            L[cW(0x333)] = srcName(d[K - 0x1], K),
            m['appendChild'](L);
        }
        for (let M = 0x1; M <= e; M++) {
            const N = document[cW(0x4b4)]('button');
            N[cW(0x4a9)] = cW(0x156),
            N[cW(0x2af)]['ssel'] = cW(0x22c) + (a + M),
            N[cW(0x333)] = '\u0421\u0432\u043E\u0438\x20' + M,
            m[cW(0x755)](N);
        }
        sbSelLoad(),
        reflectSbTargets();
    }
    reflectCounts();
}
function reflectCounts() {
    const cY = odf943efb_P
      , a = Math[cY(0x75f)](0x4, maxPanes())
      , b = state[cY(0x59c)] || 0x1
      , c = state[cY(0x24a)] || 0x0;
    $$('#countPick\x20[data-count]')[cY(0x78d)](d => {
        const cZ = cY
          , e = +d[cZ(0x2af)][cZ(0x374)];
        d[cZ(0x474)][cZ(0x7bb)]('on', e === b);
        const f = e > a - c;
        d[cZ(0x84b)][cZ(0x256)] = f ? cZ(0x6c6) : '',
        d[cZ(0x757)] = e > maxPanes() ? cZ(0xef) : f ? cZ(0x7c6) : '';
    }
    ),
    $$('#svoiPick\x20[data-svoi]')[cY(0x78d)](d => {
        const d0 = cY
          , e = +d[d0(0x2af)][d0(0x24a)];
        d[d0(0x474)][d0(0x7bb)]('on', e === c);
        const f = e > Math[d0(0x75f)](0x2, a - b);
        d[d0(0x84b)][d0(0x256)] = f ? d0(0x6c6) : '',
        d[d0(0x757)] = f ? '\u0412\u0441\u0435\u0433\u043E\x20\u043E\u043A\u043E\u043D\x20\u2264\x204\x20(nekto\x20+\x20\u0441\u0432\u043E\u0438)' : '';
    }
    );
}
async function loadSounds() {
    const d1 = odf943efb_P;
    try {
        state[d1(0x2e0)] = await invoke(d1(0x890));
    } catch {
        state[d1(0x2e0)] = [];
    }
    ensureSoundboardView(),
    renderPads();
}
const SB_BATCH_SIZE = 0x30
  , AUDIO_CACHE_LIMIT = 0x30;
let sbFilterTimer = 0x0
  , sbShowHidden = localStorage[odf943efb_P(0x6b6)]('sbShowHidden') === '1'
  , sbMode = localStorage['getItem'](odf943efb_P(0x500)) || odf943efb_P(0x3c8);
function ensureSoundboardView() {
    const d2 = odf943efb_P;
    state[d2(0x2e0)][d2(0x64f)] + (state[d2(0x3c0)]?.[d2(0x30c)]?.[d2(0x64f)] || 0x0) > 0x18 && localStorage[d2(0x6b6)]('sbViewOptimizedV2') !== '1' ? (localStorage[d2(0x378)](d2(0x2d6), d2(0x35f)),
    localStorage[d2(0x378)](d2(0x40f), '1')) : localStorage[d2(0x6b6)]('sbView') || localStorage['setItem']('sbView', d2(0x924));
}
function sbQuery() {
    const d3 = odf943efb_P;
    return ($('#sbSearch')?.['value'] || '')[d3(0x407)]()[d3(0x860)]();
}
function sbModeIs(a) {
    return sbMode === a;
}
function sbModeMatch(a, b) {
    const d4 = odf943efb_P;
    return sbMode === d4(0x7f3) ? padFavorite(a, b) : sbMode === d4(0x37a) ? !!padHotkey(a, b) : sbMode === d4(0x124) ? a === d4(0x4e9) && !!soundPackName(b) : !0x0;
}
function setSbStats(a, b) {
    const d5 = odf943efb_P
      , c = $(d5(0x92c));
    if (!c)
        return;
    const d = a % 0xa === 0x1 && a % 0x64 !== 0xb ? '\u0437\u0432\u0443\u043A' : a % 0xa >= 0x2 && a % 0xa <= 0x4 && (a % 0x64 < 0xa || a % 0x64 >= 0x14) ? d5(0x8c6) : d5(0x6c4);
    c[d5(0x333)] = a === b ? a + '\x20' + d : a + '\x20из\x20' + b;
}
function sbHiddenSetKey(a) {
    return 'sbHidden:' + a;
}
function sbHiddenSet(a) {
    const d6 = odf943efb_P;
    try {
        return new Set(JSON[d6(0x46a)](localStorage['getItem'](sbHiddenSetKey(a)) || '[]'));
    } catch {
        return new Set();
    }
}
function sbSaveHiddenSet(a, b) {
    const d7 = odf943efb_P;
    localStorage[d7(0x378)](sbHiddenSetKey(a), JSON['stringify']([...b]));
}
function sbItemHidden(a, b) {
    return sbHiddenSet(a)['has'](String(b));
}
function sbSetItemHidden(a, b, c) {
    const d8 = odf943efb_P
      , d = sbHiddenSet(a);
    c ? d[d8(0x19d)](String(b)) : d[d8(0x29f)](String(b)),
    sbSaveHiddenSet(a, d);
}
function sbPackStateKey(a, b) {
    const d9 = odf943efb_P;
    return d9(0x381) + a + ':' + b;
}
function sbPackCollapsed(a, b) {
    const da = odf943efb_P;
    return localStorage[da(0x6b6)](sbPackStateKey(a, b)) !== da(0x8c7);
}
function sbSetPackCollapsed(a, b, c) {
    const db = odf943efb_P;
    localStorage[db(0x378)](sbPackStateKey(a, b), c ? db(0x353) : db(0x8c7));
}
function padSearchText(a, b, c='') {
    const dc = odf943efb_P;
    return ((b[dc(0x20a)] || b['name'] || '') + '\x20' + c + '\x20' + padHotkey(a, b))[dc(0x860)]();
}
function makeSoundPad(a, b, c, d='') {
    const dd = odf943efb_P
      , e = document[dd(0x4b4)](dd(0x7df));
    e[dd(0x4a9)] = dd(0x11f) + (a === dd(0x3c0) ? '\x20folder-pad' : ''),
    e['setAttribute'](dd(0x86c), dd(0x73f)),
    e[dd(0x868)] = 0x0,
    e['style']['setProperty'](dd(0x478), c || dd(0x855)),
    e[dd(0x2af)][dd(0x8b8)] = padSearchText(a, b, d);
    const f = a === dd(0x4e9) && b['icon'] || dd(0x6af)
      , g = b[dd(0x20a)] || b[dd(0x8b8)] || '\u0417\u0432\u0443\u043A'
      , h = padHotkey(a, b)
      , i = [d, h ? dd(0x495) + h : ''][dd(0x7a8)](Boolean)[dd(0x29a)](dd(0x3b5));
    return e[dd(0x870)] = dd(0x57e) + f + '\x22>' + iconSvg(f) + dd(0x29e) + escapeHtml(g) + '\x22>' + escapeHtml(g) + dd(0x225) + (i ? '<span\x20class=\x22pad-meta\x22>' + escapeHtml(i) + '</span>' : '') + padControlsHtml() + dd(0x3a1),
    e[dd(0x5e7)](dd(0x626), j => {
        const de = dd;
        j['target'][de(0x43e)]('.pad-ctrl,.pad-seek,.pad-menu') || togglePad(e, a, b);
    }
    ),
    e[dd(0x5e7)](dd(0x424), j => {
        const df = dd;
        j['target'] !== e || j[df(0xee)] !== 'Enter' && j['key'] !== '\x20' || (j[df(0x7e1)](),
        togglePad(e, a, b));
    }
    ),
    wirePadControls(e, a, b),
    e;
}
function clearPadContainer(a, b=odf943efb_P(0x1a8)) {
    const dg = odf943efb_P;
    $$(b, a)[dg(0x78d)](c => {
        const dh = dg;
        c[dh(0x474)][dh(0x3f5)](dh(0x11f)) && c[dh(0x288)] && stopPad(c),
        c['remove']();
    }
    );
}
function renderPadBatch(a, b, c, d, e=null, f='') {
    let g = 0x0
      , h = null;
    const i = () => {
        const di = odf943efb_b
          , j = document['createDocumentFragment']()
          , k = Math['min'](b[di(0x64f)], g + SB_BATCH_SIZE);
        for (; g < k; g++) {
            const l = b[g];
            j[di(0x755)](makeSoundPad(c, l, d(l), f));
        }
        a['insertBefore'](j, e),
        h && h[di(0x6f2)](),
        g < b[di(0x64f)] && (h = document[di(0x4b4)]('button'),
        h[di(0x3c7)] = di(0x73f),
        h[di(0x4a9)] = 'btn\x20sound-more',
        h[di(0x333)] = di(0x658) + Math[di(0x75f)](SB_BATCH_SIZE, b[di(0x64f)] - g) + di(0x800) + (b['length'] - g),
        h[di(0x882)] = i,
        a[di(0x438)](h, e));
    }
    ;
    i();
}
function renderLazyPadGrid(a, b, c, d, e, f) {
    const dj = odf943efb_P;
    a[dj(0x7c7)] = () => {
        const dk = dj;
        a[dk(0x355)] || (a[dk(0x355)] = !0x0,
        renderPadBatch(a, b, c, d, null, e));
    }
    ,
    f || a['_renderPads']();
}
function renderPads() {
    const dl = odf943efb_P
      , a = $(dl(0x392));
    clearPadContainer(a);
    const b = sbQuery()
      , c = state[dl(0x2e0)][dl(0x64f)] + (state[dl(0x3c0)]?.[dl(0x30c)]?.[dl(0x64f)] || 0x0);
    let d = 0x0;
    const e = sortPadItems(state['sounds']['filter'](g => soundPackName(g) || sbModeIs(dl(0x124)) || soundGroupPath(g) || !sbModeMatch(dl(0x4e9), g) || !sbShowHidden && sbItemHidden(dl(0x77b), g['id']) ? !0x1 : !b || padSearchText(dl(0x4e9), g)[dl(0x74e)](b)));
    d += e[dl(0x64f)],
    renderPadBatch(a, e, dl(0x4e9), g => g['color'] || dl(0x855), null),
    d += renderOwnedSoundGroups(b),
    d += renderInstalledPackGroups(b);
    const f = $('#sbHiddenToggle');
    f && (f[dl(0x333)] = sbShowHidden ? '\u0421\u043A\u0440\u044B\u0442\u044C\x20\u0441\u043A\u0440\u044B\u0442\u044B\u0435' : '\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\x20\u0441\u043A\u0440\u044B\u0442\u044B\u0435'),
    setSbStats(d, c),
    $$('#sbFilterMode\x20button')[dl(0x78d)](g => g[dl(0x474)]['toggle']('on', g[dl(0x2af)][dl(0x126)] === sbMode));
}
const sndCache = new Map()
  , folderCache = new Map();
function soundPackName(a) {
    const dm = odf943efb_P;
    return a && a[dm(0x69e)] ? String(a['pack'])[dm(0x407)]() : '';
}
function soundPackKey(a) {
    const dn = odf943efb_P;
    return a?.[dn(0x5cc)] ? 'id:' + String(a['pack_source']) : 'name:' + soundPackName(a);
}
function normalizeGroupPath(a) {
    const dp = odf943efb_P;
    return String(a || '')[dp(0x8c0)](/\\/g, '/')['split']('/')['map'](b => b['trim']())['filter'](b => b && b !== '.' && b !== '..')[dp(0x801)](0x0, 0x3)[dp(0x50d)](b => b[dp(0x801)](0x0, 0x20))[dp(0x29a)]('/');
}
function soundGroupPath(a) {
    const dq = odf943efb_P;
    return normalizeGroupPath(a?.[dq(0x4fc)] || '');
}
function padKey(a, b) {
    const dr = odf943efb_P;
    return a === dr(0x4e9) ? dr(0x16e) + b['id'] : 'folder:' + b['path'];
}
function padOrder(a, b) {
    const ds = odf943efb_P
      , c = a === ds(0x4e9) ? +b[ds(0x5ef)] : +(localStorage['getItem'](ds(0x832) + padKey(a, b)) || 0x0);
    return Number[ds(0x3ac)](c) && c > 0x0 ? c : 0x0;
}
function padVolume(a, b) {
    const dt = odf943efb_P
      , c = a === dt(0x4e9) ? +(b[dt(0x535)] || 0x1) : +(localStorage[dt(0x6b6)](dt(0xba) + padKey(a, b)) || 0x1);
    return Math[dt(0x29b)](0.05, Math[dt(0x75f)](0x2, Number[dt(0x3ac)](c) ? c : 0x1));
}
function sbMasterVolume() {
    const du = odf943efb_P
      , a = +(localStorage[du(0x6b6)]('sbMasterVolume') || 0x1);
    return Math['max'](0x0, Math[du(0x75f)](0x2, Number[du(0x3ac)](a) ? a : 0x1));
}
function sbMonitorVolume() {
    const dv = odf943efb_P
      , a = +(localStorage['getItem'](dv(0x90a)) || 0x1);
    return Math['max'](0x0, Math['min'](0x2, Number[dv(0x3ac)](a) ? a : 0x1));
}
function effectivePadVolume(a, b) {
    return padVolume(a, b) * sbMasterVolume();
}
function effectivePadMonitorVolume(a, b) {
    return effectivePadVolume(a, b) * sbMonitorVolume();
}
function updatePlayingPadVolumes() {
    const dw = odf943efb_P;
    $$(dw(0x27b))[dw(0x78d)](a => {
        const dx = dw
          , b = a[dx(0x288)];
        b && b['gain'] && (b['gain'][dx(0x68a)][dx(0x5d9)] = effectivePadVolume(a[dx(0x28b)] || 'snd', a['_padRef'] || {})),
        b && b['localGain'] && (b[dx(0x227)][dx(0x68a)][dx(0x5d9)] = effectivePadMonitorVolume(a[dx(0x28b)] || dx(0x4e9), a['_padRef'] || {}));
    }
    );
}
function reflectPercentSlider(a, b, c) {
    const dy = odf943efb_P
      , d = Math[dy(0x7c9)](c * 0x64)
      , e = $('#' + a)
      , f = $('#' + b);
    e && document[dy(0xf8)] !== e && (e[dy(0x5d9)] = String(d)),
    f && (f['textContent'] = d + '%');
}
function reflectSbMasterVolume() {
    const dz = odf943efb_P;
    reflectPercentSlider(dz(0x28a), dz(0x53a), sbMasterVolume());
}
function reflectSbMonitorVolume() {
    const dA = odf943efb_P;
    reflectPercentSlider(dA(0x90a), dA(0x199), sbMonitorVolume());
}
function padFavorite(a, b) {
    const dB = odf943efb_P;
    return a === 'snd' ? !!b[dB(0xfb)] : localStorage[dB(0x6b6)](dB(0x716) + padKey(a, b)) === '1';
}
function padHotkey(a, b) {
    const dC = odf943efb_P;
    return (a === 'snd' ? b['hotkey'] || '' : localStorage['getItem'](dC(0x603) + padKey(a, b)) || '')[dC(0x407)]();
}
function sortPadItems(a, b='snd') {
    const dD = odf943efb_P;
    return [...a][dD(0x128)]( (c, d) => (padOrder(b, c) || Number[dD(0x79d)]) - (padOrder(b, d) || Number['MAX_SAFE_INTEGER']) || padFavorite(b, d) - padFavorite(b, c) || !!padHotkey(b, d) - !!padHotkey(b, c) || String(c[dD(0x20a)] || c[dD(0x8b8)] || '')[dD(0x64a)](String(d[dD(0x20a)] || d[dD(0x8b8)] || '')));
}
function savePadMeta(a, b, c) {
    const dE = odf943efb_P;
    if (a === 'snd') {
        Object[dE(0x179)](b, c),
        invoke(dE(0x3f1), {
            'id': b['id'],
            'label': null,
            'icon': null,
            'color': null,
            'packSource': 'pack_source'in c ? c[dE(0x5cc)] : null,
            'volume': dE(0x535)in c ? c['volume'] : null,
            'favorite': 'favorite'in c ? c[dE(0xfb)] : null,
            'hotkey': 'hotkey'in c ? c['hotkey'] : null,
            'group': dE(0x4fc)in c ? normalizeGroupPath(c[dE(0x4fc)]) : null,
            'sortOrder': 'sort_order'in c ? c[dE(0x5ef)] : null,
            'groupColor': dE(0x34a)in c ? c[dE(0x34a)] : null,
            'packColor': dE(0x345)in c ? c['pack_color'] : null
        })[dE(0x375)]( () => {}
        );
        return;
    }
    const d = padKey(a, b);
    dE(0x535)in c && localStorage[dE(0x378)](dE(0xba) + d, String(c['volume'])),
    dE(0xfb)in c && localStorage[dE(0x378)](dE(0x716) + d, c[dE(0xfb)] ? '1' : '0'),
    'hotkey'in c && localStorage[dE(0x378)](dE(0x603) + d, c[dE(0x37a)] || ''),
    dE(0x5ef)in c && localStorage[dE(0x378)](dE(0x832) + d, String(c[dE(0x5ef)] || 0x0));
}
function ensureOwnedSoundGroups() {
    const dF = odf943efb_P;
    let a = $(dF(0x3b3));
    if (!a) {
        a = document[dF(0x4b4)](dF(0x7df)),
        a['id'] = dF(0x61a);
        const b = ensureInstalledPackGroups();
        b?.[dF(0x73b)]?.[dF(0x438)](a, b);
    }
    return a;
}
function ensureInstalledPackGroups() {
    const dG = odf943efb_P;
    let a = $(dG(0x1a0));
    if (!a) {
        a = document[dG(0x4b4)]('div'),
        a['id'] = dG(0x770);
        const b = $(dG(0x8dd));
        b?.[dG(0x73b)]?.[dG(0x438)](a, b);
    }
    return a;
}
function padControlsHtml() {
    const dH = odf943efb_P;
    return '<div\x20class=\x22pad-controls\x22>\x0a\x20\x20\x20\x20<button\x20class=\x22pad-ctrl\x20pad-playctl\x22\x20title=\x22Воспроизвести\x20/\x20пауза\x22><span\x20data-icon=\x22play\x22>' + iconSvg(dH(0x4ce)) + dH(0x3c5) + iconSvg(dH(0x359)) + '</span></button>\x0a\x20\x20\x20\x20<button\x20class=\x22pad-ctrl\x20pad-loop\x22\x20title=\x22Повтор\x22><span\x20data-icon=\x22repeat\x22>' + iconSvg(dH(0x1ce)) + '</span></button>\x0a\x20\x20\x20\x20<input\x20class=\x22pad-seek\x22\x20title=\x22Перемотка\x22\x20aria-label=\x22Перемотка\x20звука\x22\x20type=\x22range\x22\x20min=\x220\x22\x20max=\x221000\x22\x20value=\x220\x22>\x0a\x20\x20\x20\x20<button\x20class=\x22pad-ctrl\x20pad-menu-btn\x22\x20title=\x22Настройки\x20звука\x22><span>...</span><b></b></button>\x0a\x20\x20</div>\x0a\x20\x20<div\x20class=\x22pad-menu\x22\x20role=\x22menu\x22>\x0a\x20\x20\x20\x20<button\x20type=\x22button\x22\x20data-pad-action=\x22favorite\x22><span\x20class=\x22pad-favorite-label\x22>В\x20избранное</span><span\x20data-icon=\x22star\x22>' + iconSvg(dH(0x278)) + dH(0x4d4) + iconSvg(dH(0x7a3)) + dH(0x3d9) + iconSvg(dH(0x82b)) + dH(0x6fd);
}
function groupTitleHtml(a, b, c, d, e=!0x1, f={}) {
    const dI = odf943efb_P
      , g = f[dI(0x4cf)] || a
      , h = f[dI(0x5bc)] || b
      , i = !sbShowHidden && !sbQuery() && sbPackCollapsed(g, h)
      , j = f[dI(0x757)] || b || dI(0x33b)
      , k = f[dI(0x61c)] ?? a === dI(0x69e)
      , l = f['canColor'] !== !0x1;
    return dI(0x67b) + (i ? dI(0x1e2) : '') + (e ? dI(0x21c) : '') + '\x22\x20style=\x22--grp-color:' + c + '\x22>\x0a\x20\x20\x20\x20<button\x20class=\x22fg-toggle\x22\x20type=\x22button\x22\x20data-group-toggle=\x22' + escapeHtml(a) + dI(0x8c2) + escapeHtml(b) + dI(0x423) + iconSvg(dI(0x82b)) + '</span></button>\x0a\x20\x20\x20\x20<span\x20class=\x22fg-name\x22\x20title=\x22' + escapeHtml(b) + '\x22>' + escapeHtml(j) + '</span><span\x20class=\x22fg-count\x22>' + d + '</span>\x0a\x20\x20\x20\x20' + (l ? dI(0x6fe) + escapeHtml(c) + '\x22\x20title=\x22Цвет\x20папки\x22>' : '') + dI(0x6be) + escapeHtml(a) + dI(0x8c2) + escapeHtml(b) + '\x22>' + (e ? dI(0x287) : dI(0x7dc)) + dI(0x735) + (k ? '<button\x20class=\x22fg-action\x20danger\x22\x20type=\x22button\x22\x20data-group-delete=\x22' + escapeHtml(b) + dI(0x7ad) : '') + dI(0x4ca);
}
function groupColorKey(a, b) {
    return 'sbGroupColor:' + a + ':' + b;
}
function storedGroupColor(a, b, c, d) {
    const dJ = odf943efb_P
      , e = localStorage[dJ(0x6b6)](groupColorKey(a, b));
    if (/^#[0-9a-f]{6}$/i[dJ(0x7d0)](e || ''))
        return e;
    const f = a['startsWith']('pack:') ? dJ(0x34a) : a === dJ(0x69e) ? dJ(0x345) : dJ(0x34a);
    return c[dJ(0x3d5)](g => /^#[0-9a-f]{6}$/i['test'](g?.[f] || ''))?.[f] || d;
}
function setStoredGroupColor(a, b, c, d) {
    const dK = odf943efb_P;
    if (d = safeAppearanceColor(d),
    localStorage['setItem'](groupColorKey(a, b), d),
    a === dK(0x3c0))
        return;
    const e = a === 'pack' ? 'pack_color' : dK(0x34a);
    c[dK(0x78d)](f => savePadMeta(dK(0x4e9), f, {
        [e]: d
    }));
}
function wireGroupControls(a, b, c, d, e={}) {
    const dL = odf943efb_P
      , f = $(dL(0x17e), a)
      , g = e['stateScope'] || b
      , h = e['stateName'] || c
      , i = !sbShowHidden && !sbQuery() && sbPackCollapsed(g, h);
    a['classList'][dL(0x7bb)]('collapsed', i),
    f && (f['hidden'] = !0x1),
    $(dL(0x319), a)?.['addEventListener']('click', j => {
        const dM = dL;
        if (j['target']['closest'](dM(0x55a)))
            return;
        j[dM(0x6fa)]();
        const k = !a[dM(0x474)]['contains'](dM(0x3b0));
        k || f?.['_renderPads']?.(),
        a[dM(0x474)][dM(0x7bb)](dM(0x3b0), k),
        sbSetPackCollapsed(g, h, k);
    }
    ),
    $(dL(0x224), a)?.[dL(0x5e7)](dL(0x5e3), j => {
        const dN = dL;
        j[dN(0x6fa)](),
        setStoredGroupColor(e[dN(0xbe)] || b, e['colorName'] || c, d, j['target']['value']),
        a[dN(0x84b)][dN(0xdd)](dN(0x52c), j[dN(0x766)][dN(0x5d9)]),
        $('.folder-group-title', a)?.['style'][dN(0xdd)](dN(0x52c), j[dN(0x766)]['value']);
    }
    ),
    $('[data-group-hide]', a)?.[dL(0x5e7)](dL(0x626), j => {
        const dO = dL;
        j[dO(0x6fa)]();
        const k = d[dO(0x50d)](m => b === 'folder' ? m[dO(0x7ee)] : m['id'])
          , l = k[dO(0x869)](m => sbItemHidden(b, m));
        k[dO(0x78d)](m => sbSetItemHidden(b, m, !l)),
        b === dO(0x3c0) ? renderFolder(state[dO(0x3c0)]) : renderPads(),
        toast(l ? dO(0x1ed) : dO(0x239));
    }
    ),
    $(dL(0x49f), a)?.[dL(0x5e7)]('click', async j => {
        const dP = dL;
        if (j[dP(0x6fa)](),
        b !== dP(0x69e) || window['confirm'] && !window[dP(0x3aa)](dP(0x7fa) + c + dP(0x32c)))
            return;
        for (const l of d)
            try {
                await invoke(dP(0x4cc), {
                    'id': l['id']
                });
            } catch {}
        const k = new Set(d[dP(0x50d)](m => m['id']));
        state[dP(0x2e0)] = state['sounds'][dP(0x7a8)](m => !k[dP(0x403)](m['id'])),
        renderPads(),
        toast(dP(0x10b));
    }
    );
}
function renderOwnedSoundGroups(a=sbQuery()) {
    const dQ = odf943efb_P
      , b = ensureOwnedSoundGroups();
    if (clearPadContainer(b, '.pad,.sound-more'),
    b[dQ(0x870)] = '',
    sbModeIs('packs'))
        return 0x0;
    const c = {};
    for (const f of state[dQ(0x2e0)]) {
        if (soundPackName(f))
            continue;
        const g = soundGroupPath(f);
        g && (c[g] ||= [])[dQ(0x255)](f);
    }
    const d = localStorage[dQ(0x6b6)](dQ(0x2d6)) === dQ(0x35f);
    let e = 0x0;
    return Object[dQ(0x2c9)](c)[dQ(0x128)]()[dQ(0x78d)]( (h, i) => {
        const dR = dQ
          , j = sortPadItems(c[h][dR(0x7a8)](t => sbModeMatch(dR(0x4e9), t) && (!a || padSearchText('snd', t, h)[dR(0x74e)](a))))[dR(0x7a8)](t => sbShowHidden || !sbItemHidden(dR(0x77b), t['id']));
        if (!j[dR(0x64f)])
            return;
        e += j[dR(0x64f)];
        const k = GROUP_COLORS[i % GROUP_COLORS[dR(0x64f)]]
          , l = storedGroupColor(dR(0x640) + h, h, j, k)
          , m = document[dR(0x4b4)](dR(0x7df));
        m[dR(0x4a9)] = dR(0x76b),
        m['style'][dR(0xdd)](dR(0x1c2), String(Math[dR(0x29b)](0x1, h[dR(0x7d3)]('/')[dR(0x64f)] - 0x1)));
        const n = j['every'](t => sbItemHidden(dR(0x77b), t['id']))
          , o = dR(0x3e1) + h;
        m[dR(0x870)] = groupTitleHtml('own', h, l, j[dR(0x64f)], n, {
            'stateScope': 'own-folder',
            'stateName': o,
            'title': h[dR(0x8c0)](/\//g, '\x20\u203A\x20'),
            'canDelete': !0x1
        });
        const p = document[dR(0x4b4)]('div');
        p['className'] = 'sb-grid' + (d ? dR(0x675) : '');
        const r = !sbShowHidden && !a && sbPackCollapsed(dR(0x729), o);
        renderLazyPadGrid(p, j, dR(0x4e9), t => t[dR(0x41d)] || l, h, r);
        const s = document[dR(0x4b4)](dR(0x7df));
        s[dR(0x4a9)] = dR(0xf4),
        s[dR(0x755)](p),
        m[dR(0x755)](s),
        b['appendChild'](m),
        wireGroupControls(m, dR(0x77b), h, j, {
            'stateScope': dR(0x729),
            'stateName': o,
            'colorScope': dR(0x640) + h,
            'colorName': h
        }),
        injectIcons(m);
    }
    ),
    e;
}
function renderInstalledPackGroups(a=sbQuery()) {
    const dS = odf943efb_P
      , b = ensureInstalledPackGroups();
    clearPadContainer(b, dS(0x6d8)),
    b['innerHTML'] = '';
    let c = 0x0;
    const d = {};
    for (const f of state[dS(0x2e0)]) {
        const g = soundPackName(f);
        if (g) {
            const h = soundPackKey(f);
            (d[h] ||= {
                'name': g,
                'items': []
            })[dS(0x30c)]['push'](f);
        }
    }
    const e = localStorage[dS(0x6b6)](dS(0x2d6)) === dS(0x35f);
    return Object[dS(0x2c9)](d)[dS(0x128)]( (i, j) => d[i]['name'][dS(0x64a)](d[j][dS(0x8b8)]))[dS(0x78d)]( (i, j) => {
        const dT = dS
          , k = d[i][dT(0x8b8)]
          , l = sortPadItems(d[i][dT(0x30c)]['filter'](v => sbModeMatch('snd', v) && (!a || padSearchText(dT(0x4e9), v, k + '\x20' + soundGroupPath(v))['includes'](a))))[dT(0x7a8)](v => sbShowHidden || !sbItemHidden(dT(0x69e), v['id']));
        if (!l[dT(0x64f)])
            return;
        c += l[dT(0x64f)];
        const m = storedGroupColor(dT(0x69e), i, l, l[0x0]?.[dT(0x345)] || GROUP_COLORS[j % GROUP_COLORS[dT(0x64f)]])
          , n = document[dT(0x4b4)](dT(0x7df));
        n['className'] = dT(0x149);
        const o = l['every'](v => sbItemHidden(dT(0x69e), v['id']))
          , p = !sbShowHidden && !a && sbPackCollapsed(dT(0x69e), i);
        n['innerHTML'] = groupTitleHtml('pack', k, m, l[dT(0x64f)], o, {
            'stateName': i,
            'canDelete': !0x0
        });
        const r = document['createElement']('div');
        r[dT(0x4a9)] = dT(0xf4);
        const t = l['filter'](v => !soundGroupPath(v));
        if (t[dT(0x64f)]) {
            const v = document[dT(0x4b4)](dT(0x7df));
            v[dT(0x4a9)] = 'sb-grid' + (e ? '\x20list' : ''),
            renderLazyPadGrid(v, t, dT(0x4e9), w => w['color'] || m, k, p),
            r['appendChild'](v);
        }
        const u = {};
        l[dT(0x7a8)](w => soundGroupPath(w))[dT(0x78d)](w => {
            const dU = dT
              , x = soundGroupPath(w);
            (u[x] ||= [])[dU(0x255)](w);
        }
        ),
        Object[dT(0x2c9)](u)[dT(0x128)]()[dT(0x78d)]( (w, x) => {
            const dV = dT
              , y = sortPadItems(u[w])
              , z = storedGroupColor(dV(0x16b) + i, w, y, y[0x0]?.['group_color'] || GROUP_COLORS[(j + x + 0x1) % GROUP_COLORS[dV(0x64f)]])
              , A = document[dV(0x4b4)](dV(0x7df));
            A[dV(0x4a9)] = dV(0x76b),
            A[dV(0x84b)][dV(0xdd)](dV(0x1c2), String(w['split']('/')[dV(0x64f)]));
            const B = i + '/' + w;
            A[dV(0x870)] = groupTitleHtml(dV(0x69e), w, z, y[dV(0x64f)], !0x1, {
                'stateScope': dV(0x5e1),
                'stateName': B,
                'title': w[dV(0x8c0)](/\//g, dV(0x696)),
                'canDelete': !0x1
            });
            const C = document[dV(0x4b4)](dV(0x7df));
            C[dV(0x4a9)] = dV(0x813) + (e ? '\x20list' : '');
            const D = !sbShowHidden && !a && sbPackCollapsed(dV(0x5e1), B);
            renderLazyPadGrid(C, y, dV(0x4e9), F => F[dV(0x41d)] || z, k + dV(0xc0) + w, D);
            const E = document['createElement'](dV(0x7df));
            E['className'] = dV(0xf4),
            E['appendChild'](C),
            A[dV(0x755)](E),
            r[dV(0x755)](A),
            wireGroupControls(A, dV(0x69e), w, y, {
                'stateScope': dV(0x5e1),
                'stateName': B,
                'colorScope': dV(0x16b) + i,
                'colorName': w
            });
        }
        ),
        n[dT(0x755)](r),
        b[dT(0x755)](n),
        wireGroupControls(n, dT(0x69e), k, l, {
            'stateName': i,
            'colorScope': dT(0x69e),
            'colorName': i
        }),
        injectIcons(n);
    }
    ),
    c;
}
function cacheGet(a, b) {
    const dW = odf943efb_P;
    if (!a[dW(0x403)](b))
        return null;
    const c = a[dW(0x730)](b);
    return a[dW(0x29f)](b),
    a['set'](b, c),
    c;
}
function cacheSet(a, b, c) {
    const dX = odf943efb_P;
    for (a['delete'](b),
    a['set'](b, c); a[dX(0x6ed)] > AUDIO_CACHE_LIMIT; )
        a[dX(0x29f)](a[dX(0x2c9)]()[dX(0x693)]()[dX(0x5d9)]);
    return c;
}
async function getBufferFor(a, b) {
    const dY = odf943efb_P;
    if (a === dY(0x4e9)) {
        const e = cacheGet(sndCache, b['id']);
        if (e)
            return e;
        const f = await fetch(convertFileSrc(b[dY(0x7ee)]));
        return cacheSet(sndCache, b['id'], await op[dY(0x105)][dY(0x396)](await f[dY(0x799)]()));
    }
    const c = cacheGet(folderCache, b[dY(0x7ee)]);
    if (c)
        return c;
    const d = await invoke(dY(0x10d), {
        'path': b[dY(0x7ee)]
    });
    return cacheSet(folderCache, b['path'], await op[dY(0x105)][dY(0x396)](new Uint8Array(d)[dY(0x838)]));
}
const sbSel = new Set();
function sbSelLoad() {
    const dZ = odf943efb_P;
    sbSel[dZ(0x672)]();
    try {
        (JSON['parse'](localStorage[dZ(0x6b6)](dZ(0x8db)) || '[]') || [])['forEach'](a => {
            const e0 = dZ;
            +('' + a)[e0(0x801)](0x4) <= state[e0(0x59c)] && sbSel[e0(0x19d)](a);
        }
        );
    } catch {}
    sbSel[dZ(0x6ed)] >= state[dZ(0x59c)] && sbSel[dZ(0x672)]();
}
function sbSelSave() {
    const e1 = odf943efb_P;
    localStorage[e1(0x378)]('sbSel', JSON[e1(0x53f)]([...sbSel]));
}
function reflectSbTargets() {
    const e2 = odf943efb_P;
    $$(e2(0x746))[e2(0x78d)](a => {
        const e3 = e2;
        a[e3(0x474)]['toggle']('on', a[e3(0x2af)][e3(0x779)] === e3(0x3c8) ? sbSel[e3(0x6ed)] === 0x0 : sbSel[e3(0x403)](a[e3(0x2af)][e3(0x779)]));
    }
    );
}
const padTarget = () => sbSel[odf943efb_P(0x6ed)] ? [...sbSel] : 'all';
async function togglePad(a, b, c) {
    const e4 = odf943efb_P
      , d = a[e4(0x288)];
    return d && d[e4(0x809)] ? pausePad(a) : startPad(a, b, c, d && d[e4(0x6f4)] ? d[e4(0x64d)] : 0x0);
}
function normPadOffset(a, b, c) {
    const e5 = odf943efb_P;
    return b = Math[e5(0x29b)](0x0, b || 0x0),
    b ? c ? (a % b + b) % b : Math[e5(0x29b)](0x0, Math[e5(0x75f)](a, Math[e5(0x29b)](0x0, b - 0.01))) : 0x0;
}
function makePadSource(a, b) {
    const e6 = odf943efb_P
      , c = op[e6(0x105)][e6(0x6de)]()
      , d = op[e6(0x105)]['createGain']()
      , e = op['ctx'][e6(0x844)]();
    c[e6(0x838)] = b[e6(0x45a)],
    c[e6(0x8ff)] = !!a['_loop'],
    d[e6(0x68a)][e6(0x5d9)] = effectivePadVolume(a[e6(0x28b)] || e6(0x4e9), a[e6(0x50e)] || {}),
    e['gain']['value'] = effectivePadMonitorVolume(a['_padKind'] || 'snd', a[e6(0x50e)] || {}),
    c['connect'](d),
    c[e6(0x6bd)](e);
    const f = audioSyncMs();
    if (f < 0x0) {
        const h = op[e6(0x105)]['createDelay'](AUDIO_SYNC_MAX_MS / 0x3e8);
        h['delayTime'][e6(0x5d9)] = Math[e6(0x884)](f) / 0x3e8,
        d[e6(0x6bd)](h),
        h['connect'](opOutNode()),
        b[e6(0x679)] = h;
    } else
        d[e6(0x6bd)](opOutNode());
    try {
        e['connect'](op[e6(0x105)]['destination']);
    } catch {}
    b['gain'] = d,
    b[e6(0x227)] = e;
    const g = b[e6(0xb5)];
    return c[e6(0x137)] = () => {
        const e7 = e6;
        c[e7(0x599)] || a[e7(0x288)] !== b || b[e7(0xb5)] !== g || (relSound(b),
        finishPad(a));
    }
    ,
    c;
}
function killPadSource(a) {
    const e8 = odf943efb_P;
    if (!a)
        return;
    const b = a[e8(0x4ae)]
      , c = a['gain']
      , d = a[e8(0x227)];
    a[e8(0x4ae)] = null,
    a[e8(0x68a)] = null,
    a['localGain'] = null;
    const e = a['delay'];
    a[e8(0x679)] = null,
    b && (b['_ignoreEnded'] = !0x0);
    try {
        b && b[e8(0x359)]();
    } catch {}
    try {
        b && b[e8(0x507)]();
    } catch {}
    try {
        c && c[e8(0x507)]();
    } catch {}
    try {
        d && d[e8(0x507)]();
    } catch {}
    try {
        e && e[e8(0x507)]();
    } catch {}
}
async function startPad(a, b, c, d) {
    const e9 = odf943efb_P
      , e = (a[e9(0x361)] || 0x0) + 0x1;
    if (a[e9(0x361)] = e,
    a['_pb']) {
        const h = a['_pb'];
        killPadSource(h),
        h[e9(0x809)] && relSound(h),
        h['raf'] && cancelAnimationFrame(h[e9(0x42d)]),
        a[e9(0x474)][e9(0x6f2)](e9(0x809), e9(0x6f4));
    }
    if (a[e9(0x28b)] = b,
    a[e9(0x50e)] = c,
    !await opBase())
        return;
    try {
        await op['ctx'][e9(0x465)]();
    } catch {}
    let f;
    try {
        f = await getBufferFor(b, c);
    } catch {
        return toast(e9(0x8a6), !0x0);
    }
    if (a[e9(0x361)] !== e || (await opGate(padTarget()),
    a[e9(0x361)] !== e))
        return;
    const g = {
        'token': e,
        'buf': f,
        'playing': !0x0,
        'paused': !0x1,
        'offset': normPadOffset(d || 0x0, f['duration'], !!a['_loop']),
        'startTime': op[e9(0x105)]['currentTime'],
        'prog': a[e9(0x577)](e9(0x8a8)),
        'raf': 0x0
    };
    a['_pb'] = g,
    g[e9(0x4ae)] = makePadSource(a, g),
    op[e9(0x2e0)]++,
    op[e9(0x17a)] = !0x0,
    a[e9(0x474)][e9(0x6f2)](e9(0x6f4)),
    a[e9(0x474)][e9(0x19d)]('playing'),
    g[e9(0x4ae)][e9(0x27d)](0x0, g['offset']),
    syncPadControls(a),
    rafProg(a);
}
function pausePad(a) {
    const ea = odf943efb_P
      , b = a[ea(0x288)];
    !b || !b[ea(0x809)] || (a[ea(0x361)] = (a[ea(0x361)] || 0x0) + 0x1,
    killPadSource(b),
    b[ea(0x64d)] = normPadOffset(b[ea(0x64d)] + (op[ea(0x105)][ea(0x332)] - b[ea(0x89d)]), b[ea(0x45a)][ea(0xc7)], !!a[ea(0x552)]),
    b[ea(0x809)] = !0x1,
    b[ea(0x6f4)] = !0x0,
    a['classList'][ea(0x6f2)](ea(0x809)),
    a['classList'][ea(0x19d)](ea(0x6f4)),
    b[ea(0x42d)] && cancelAnimationFrame(b[ea(0x42d)]),
    relSound(b),
    syncPadControls(a));
}
function stopPad(a) {
    const eb = odf943efb_P
      , b = a[eb(0x288)];
    b && (a[eb(0x361)] = (a[eb(0x361)] || 0x0) + 0x1,
    killPadSource(b),
    b[eb(0x809)] && relSound(b),
    finishPad(a));
}
async function seekPadToRatio(a, b, c=!0x1) {
    const ec = odf943efb_P;
    b = Math['max'](0x0, Math[ec(0x75f)](0x1, Number[ec(0x3ac)](b) ? b : 0x0));
    const d = a[ec(0x288)];
    if (!d || !d[ec(0x45a)])
        return !c || !a[ec(0x50e)] || !await opBase(),
        void 0x0;
    const e = normPadOffset((d[ec(0x45a)]['duration'] || 0x0) * b, d[ec(0x45a)][ec(0xc7)], !!a[ec(0x552)]);
    if (!d[ec(0x809)]) {
        d[ec(0x64d)] = e,
        d['paused'] = !0x0,
        updatePadProgress(a, d, e),
        syncPadControls(a);
        return;
    }
    killPadSource(d),
    d[ec(0x64d)] = e,
    d['startTime'] = op['ctx'][ec(0x332)],
    d[ec(0xb5)] = (a[ec(0x361)] || 0x0) + 0x1,
    a[ec(0x361)] = d[ec(0xb5)],
    d[ec(0x4ae)] = makePadSource(a, d),
    d[ec(0x4ae)]['start'](0x0, d['offset']),
    syncPadControls(a);
}
function toggleLoopPad(a) {
    const ed = odf943efb_P;
    a[ed(0x552)] = !a[ed(0x552)];
    const b = a['_pb'];
    b && b[ed(0x4ae)] && (b[ed(0x4ae)][ed(0x8ff)] = !!a[ed(0x552)]),
    a[ed(0x474)][ed(0x7bb)](ed(0x2c1), !!a[ed(0x552)]),
    syncPadControls(a);
}
let padMenuOutsideWired = !0x1;
function closePadMenus(a=null) {
    const ee = odf943efb_P;
    $$(ee(0x8cb))['forEach'](b => {
        const ef = ee;
        b !== a && b[ef(0x474)]['remove'](ef(0x8ca));
    }
    ),
    $$(ee(0x74c))[ee(0x78d)](b => {
        const eg = ee;
        (!a || !b['contains'](a)) && b[eg(0x474)][eg(0x6f2)](eg(0x40e));
    }
    );
}
function ensurePadMenuOutside() {
    const eh = odf943efb_P;
    padMenuOutsideWired || (padMenuOutsideWired = !0x0,
    document[eh(0x5e7)](eh(0x626), a => {
        const ei = eh;
        a[ei(0x766)]['closest'](ei(0x339)) || closePadMenus();
    }
    ),
    document[eh(0x5e7)]('keydown', a => {
        const ej = eh;
        a['key'] === ej(0x153) && closePadMenus();
    }
    ));
}
function promptPadHotkey(a, b) {
    const ek = odf943efb_P
      , c = padHotkey(a, b)
      , d = window[ek(0x706)] ? window['prompt']('\u041A\u043B\u0430\u0432\u0438\u0448\u0430\x20\u0434\u043B\u044F\x20\u0437\u0432\u0443\u043A\u0430\x20(\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440\x20Q\x20\u0438\u043B\u0438\x20F2).\x20\u041F\u0443\u0441\u0442\u043E\x20=\x20\u0441\u043D\u044F\u0442\u044C', c) : c;
    if (d === null)
        return !0x1;
    const e = normalizeHotkey(d);
    return e && findPadByHotkey(e, a, b) ? (toast(ek(0x25b), !0x0),
    !0x1) : (savePadMeta(a, b, {
        'hotkey': e
    }),
    renderPads(),
    state['folder'] && renderFolder(state[ek(0x3c0)]),
    !0x0);
}
async function renamePadSound(a) {
    const el = odf943efb_P
      , b = (a[el(0x20a)] || '')[el(0x407)]()
      , c = window[el(0x706)] ? window['prompt'](el(0x2b3), b) : b;
    if (c === null)
        return;
    const d = String(c || '')['trim']()[el(0x801)](0x0, 0x3c);
    if (!(!d || d === b))
        try {
            const e = await invoke(el(0x3f1), {
                'id': a['id'],
                'label': d,
                'icon': null,
                'color': null,
                'packSource': null,
                'volume': null,
                'favorite': null,
                'hotkey': null,
                'group': null,
                'sortOrder': null,
                'groupColor': null,
                'packColor': null
            });
            Object[el(0x179)](a, e || {
                'label': d
            }),
            renderPads(),
            toast(el(0x1a6));
        } catch (f) {
            toast(el(0x2b5) + f, !0x0);
        }
}
function padSiblingItems(a, b) {
    const em = odf943efb_P;
    if (a === em(0x3c0))
        return sortPadItems((state['folder']?.[em(0x30c)] || [])[em(0x7a8)](e => normalizeGroupPath(e[em(0x4fc)]) === normalizeGroupPath(b[em(0x4fc)])), em(0x3c0));
    const c = soundPackKey(b)
      , d = soundGroupPath(b);
    return sortPadItems(state[em(0x2e0)]['filter'](e => soundPackKey(e) === c && soundGroupPath(e) === d));
}
function rerenderSoundboard() {
    const en = odf943efb_P;
    renderPads(),
    state[en(0x3c0)] && renderFolder(state[en(0x3c0)]),
    setSbView(localStorage[en(0x6b6)](en(0x2d6)) || en(0x924));
}
function movePadBy(a, b, c) {
    const eo = odf943efb_P
      , d = padSiblingItems(a, b)
      , e = d[eo(0x54b)](h => a === eo(0x3c0) ? h[eo(0x7ee)] === b['path'] : h['id'] === b['id'])
      , f = Math['max'](0x0, Math[eo(0x75f)](d[eo(0x64f)] - 0x1, e + c));
    if (e < 0x0 || e === f)
        return;
    const [g] = d['splice'](e, 0x1);
    d[eo(0x4d8)](f, 0x0, g),
    d['forEach']( (h, i) => savePadMeta(a, h, {
        'sort_order': (i + 0x1) * 0x64
    })),
    rerenderSoundboard();
}
function moveSoundToGroup(a) {
    const ep = odf943efb_P
      , b = soundGroupPath(a)
      , c = window[ep(0x706)] ? window[ep(0x706)](ep(0x4ef), b) : b;
    if (c === null)
        return;
    const d = normalizeGroupPath(c);
    if (d === b)
        return;
    const e = state[ep(0x2e0)][ep(0x7a8)](f => soundPackKey(f) === soundPackKey(a) && soundGroupPath(f) === d)[ep(0x4f6)]( (f, g) => Math[ep(0x29b)](f, padOrder(ep(0x4e9), g)), 0x0) + 0x64;
    savePadMeta('snd', a, {
        'group': d,
        'sort_order': e
    }),
    rerenderSoundboard(),
    toast(d ? ep(0x875) + d + '\xBB' : ep(0x66e));
}
async function bytesForPad(a, b) {
    const eq = odf943efb_P;
    if (a === eq(0x3c0))
        return new Uint8Array(await invoke(eq(0x10d), {
            'path': b['path']
        }));
    const c = await fetch(convertFileSrc(b['path']));
    return new Uint8Array(await c[eq(0x799)]());
}
async function sharePadToChat(a, b) {
    const er = odf943efb_P;
    if (!localStorage[er(0x6b6)](er(0x811)))
        return toast(er(0x421), !0x0);
    try {
        const c = await bytesForPad(a, b);
        if (c[er(0x64f)] > 0x3 * 0x400 * 0x400)
            return toast(er(0x83b), !0x0);
        const d = packItemName(b)
          , f = packItemExt(b)
          , g = packItemIcon(b)
          , h = apiBase() + er(0x887) + encodeURIComponent(localStorage[er(0x6b6)]('lic_token') || '') + er(0x723) + encodeURIComponent(d) + er(0x43b) + encodeURIComponent(f) + '&icon=' + encodeURIComponent(g)
          , i = await (await fetch(h, {
            'method': 'POST',
            'body': c,
            'headers': {
                'content-type': er(0x204)
            }
        }))[er(0x5ec)]();
        if (!i['ok'])
            return toast(i['err'] === er(0x7c0) ? er(0x794) : er(0x240), !0x0);
        queueChatMessage({
            'kind': er(0x602),
            'text': '\u041F\u043E\u0434\u0435\u043B\u0438\u043B\u0441\u044F\x20\u0437\u0432\u0443\u043A\u043E\u043C:\x20' + d,
            'payload': i[er(0x602)]
        }),
        toast(er(0x661));
    } catch (k) {
        toast(er(0x6b7) + k, !0x0);
    }
}
function openChatSoundPicker() {
    const es = odf943efb_P
      , a = [...state[es(0x2e0)][es(0x7a8)](f => {
        const et = es
          , g = soundPackName(f) ? 'pack' : et(0x77b);
        return sbShowHidden || !sbItemHidden(g, f['id']);
    }
    )[es(0x50d)](f => ({
        'kind': es(0x4e9),
        'ref': f
    })), ...(state[es(0x3c0)]?.[es(0x30c)] || [])[es(0x7a8)](f => sbShowHidden || !sbItemHidden(es(0x3c0), f['path']))[es(0x50d)](f => ({
        'kind': es(0x3c0),
        'ref': f
    }))];
    if (!a[es(0x64f)])
        return toast('\u0421\u043D\u0430\u0447\u0430\u043B\u0430\x20\u0434\u043E\u0431\u0430\u0432\u044C\x20\u0437\u0432\u0443\u043A\x20\u0432\x20\u0441\u0430\u0443\u043D\u0434\u0431\u043E\u0440\u0434', !0x0);
    let b = $(es(0x5f8));
    b || (b = document[es(0x4b4)](es(0x7df)),
    b['id'] = es(0x5f6),
    b[es(0x4a9)] = es(0x10f),
    b[es(0x870)] = es(0x1d5),
    document[es(0x624)][es(0x755)](b),
    $(es(0x8b5), b)[es(0x882)] = () => b[es(0x474)][es(0x6f2)](es(0x4dd)),
    b[es(0x5e7)](es(0x626), f => {
        const eu = es;
        f[eu(0x766)] === b && b[eu(0x474)]['remove'](eu(0x4dd));
    }
    ));
    const c = $(es(0x583), b)
      , d = $(es(0x39d), b)
      , e = () => {
        const ev = es
          , f = (c['value'] || '')[ev(0x407)]()[ev(0x860)]()
          , g = a[ev(0x7a8)](h => !f || padSearchText(h[ev(0x68e)], h[ev(0x4f9)], soundPackName(h[ev(0x4f9)]) || h['ref'][ev(0x4fc)] || '')[ev(0x74e)](f))[ev(0x801)](0x0, 0x50);
        d[ev(0x870)] = g['map']( (h, j) => {
            const ew = ev
              , k = packItemName(h[ew(0x4f9)])
              , l = h[ew(0x68e)] === ew(0x3c0) ? h[ew(0x4f9)][ew(0x4fc)] || ew(0x65b) : soundPackName(h[ew(0x4f9)]) || ew(0x6e1)
              , m = packItemIcon(h['ref']);
            return ew(0x6d6) + j + '\x22\x20class=\x22chat-sound-choice\x22><span\x20class=\x22pad-ico\x22\x20data-icon=\x22' + escapeHtml(m) + '\x22>' + iconSvg(m) + ew(0x5ae) + escapeHtml(k) + ew(0x282) + escapeHtml(l) + ew(0x176) + iconSvg(ew(0x581)) + ew(0x14f);
        }
        )[ev(0x29a)]('') || ev(0x44e),
        g['forEach']( (h, j) => {
            const ex = ev;
            d[ex(0x577)](ex(0x5b4) + j + '\x22]')?.[ex(0x5e7)](ex(0x626), () => {
                const ey = ex;
                b[ey(0x474)]['remove']('show'),
                sharePadToChat(h['kind'], h[ey(0x4f9)]);
            }
            );
        }
        );
    }
    ;
    c[es(0x7da)] = e,
    c[es(0x5d9)] = '',
    e(),
    b[es(0x474)][es(0x19d)](es(0x4dd)),
    setTimeout( () => c[es(0x389)](), 0x3c);
}
function wirePadControls(a, b, c) {
    const ez = odf943efb_P;
    a['_padKind'] = b,
    a[ez(0x50e)] = c,
    ensurePadMenuOutside(),
    $(ez(0x263), a)?.[ez(0x5e7)](ez(0x626), h => {
        const eA = ez;
        h[eA(0x6fa)](),
        a[eA(0x626)]();
    }
    ),
    $(ez(0x4ff), a)?.['addEventListener'](ez(0x626), h => {
        const eB = ez;
        h[eB(0x6fa)](),
        stopPad(a);
    }
    ),
    $(ez(0x2e8), a)?.[ez(0x5e7)]('click', h => {
        h['stopPropagation'](),
        toggleLoopPad(a);
    }
    ),
    $(ez(0x205), a)?.[ez(0x5e7)](ez(0x626), h => {
        const eC = ez;
        h[eC(0x6fa)](),
        savePadMeta(b, c, {
            'favorite': !padFavorite(b, c)
        }),
        a[eC(0x474)][eC(0x7bb)]('favorite', padFavorite(b, c)),
        syncPadControls(a),
        closePadMenus();
    }
    );
    const d = $('.pad-menu', a)
      , e = $('.pad-menu-btn', a);
    d?.[ez(0x5e7)](ez(0x626), h => h[ez(0x6fa)]()),
    e?.[ez(0x5e7)](ez(0x626), h => {
        const eD = ez;
        h[eD(0x6fa)]();
        const i = !a[eD(0x474)][eD(0x3f5)](eD(0x8ca));
        closePadMenus(a),
        a[eD(0x474)]['toggle'](eD(0x8ca), i),
        a[eD(0x43e)]('.folder-group')?.['classList'][eD(0x7bb)](eD(0x40e), i);
    }
    ),
    $(ez(0x435), a)?.[ez(0x5e7)](ez(0x626), async h => {
        const eE = ez;
        h[eE(0x6fa)](),
        closePadMenus(),
        b === 'snd' && await renamePadSound(c);
    }
    ),
    $(ez(0x8d4), a)?.[ez(0x5e7)](ez(0x626), h => {
        const eF = ez;
        h[eF(0x6fa)](),
        closePadMenus(),
        b === 'snd' && moveSoundToGroup(c);
    }
    ),
    $(ez(0x6d2), a)?.['addEventListener'](ez(0x626), h => {
        const eG = ez;
        h[eG(0x6fa)](),
        closePadMenus(),
        movePadBy(b, c, -0x1);
    }
    ),
    $('[data-pad-action=\x27move-down\x27]', a)?.[ez(0x5e7)]('click', h => {
        const eH = ez;
        h[eH(0x6fa)](),
        closePadMenus(),
        movePadBy(b, c, 0x1);
    }
    ),
    $(ez(0x14c), a)?.[ez(0x5e7)](ez(0x626), h => {
        const eI = ez;
        h[eI(0x6fa)](),
        closePadMenus(),
        promptPadHotkey(b, c);
    }
    ),
    $(ez(0x59f), a)?.['addEventListener']('click', h => {
        const eJ = ez;
        h[eJ(0x6fa)](),
        closePadMenus(),
        sharePadToChat(b, c);
    }
    ),
    $(ez(0x19a), a)?.['addEventListener'](ez(0x626), h => {
        const eK = ez;
        h[eK(0x6fa)](),
        closePadMenus();
        const i = b === eK(0x3c0) ? 'folder' : soundPackName(c) ? eK(0x69e) : eK(0x77b)
          , j = b === eK(0x3c0) ? c[eK(0x7ee)] : c['id'];
        sbSetItemHidden(i, j, !sbItemHidden(i, j)),
        renderPads(),
        state['folder'] && renderFolder(state[eK(0x3c0)]),
        toast(sbShowHidden ? '\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\x20\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E' : eK(0x185));
    }
    ),
    $(ez(0x518), a)?.[ez(0x5e7)](ez(0x626), async h => {
        const eL = ez;
        if (h['stopPropagation'](),
        closePadMenus(),
        b !== 'snd')
            return;
        const i = (c[eL(0x20a)] || eL(0x160))[eL(0x407)]();
        window[eL(0x3aa)] && !window[eL(0x3aa)]('Удалить\x20«' + i + '»?') || await deleteSound(c);
    }
    );
    const f = $(ez(0x2a3), a);
    f && (f['value'] = 0x0,
    f[ez(0x5e7)](ez(0x626), h => h['stopPropagation']()),
    f['addEventListener'](ez(0x342), h => h['stopPropagation']()),
    f[ez(0x5e7)]('input', h => {
        const eM = ez;
        h['stopPropagation']();
        const i = a[eM(0x288)];
        i && i[eM(0x45a)] && seekPadToRatio(a, (+f[eM(0x5d9)] || 0x0) / 0x3e8);
    }
    ),
    f['addEventListener'](ez(0x71f), h => {
        const eN = ez;
        h[eN(0x6fa)](),
        seekPadToRatio(a, (+f[eN(0x5d9)] || 0x0) / 0x3e8, !0x0);
    }
    ));
    const g = $(ez(0x2aa), a);
    g && (g['value'] = Math[ez(0x7c9)](padVolume(b, c) * 0x64),
    g[ez(0x5e7)](ez(0x626), h => h[ez(0x6fa)]()),
    g['addEventListener'](ez(0x342), h => h['stopPropagation']()),
    g[ez(0x5e7)](ez(0x5e3), h => {
        const eO = ez;
        h[eO(0x6fa)]();
        const i = Math[eO(0x29b)](0x5, Math['min'](0xc8, +g[eO(0x5d9)] || 0x64)) / 0x64;
        savePadMeta(b, c, {
            'volume': i
        });
        const j = a['_pb'];
        j && j[eO(0x68a)] && (j[eO(0x68a)]['gain'][eO(0x5d9)] = effectivePadVolume(b, c));
    }
    )),
    syncPadControls(a);
}
function syncPadControls(a) {
    const eP = odf943efb_P
      , b = a['_padKind'] || eP(0x4e9)
      , c = a['_padRef'] || {};
    a[eP(0x474)][eP(0x7bb)](eP(0xfb), padFavorite(b, c)),
    a[eP(0x474)][eP(0x7bb)](eP(0x2c1), !!a['_loop']);
    const d = $('.pad-playctl\x20span', a);
    d && (d[eP(0x2af)][eP(0x60b)] = a[eP(0x288)] && a[eP(0x288)][eP(0x809)] ? eP(0x5a7) : 'play',
    d[eP(0x870)] = iconSvg(d[eP(0x2af)][eP(0x60b)])),
    $(eP(0x2e8), a)?.[eP(0x474)]['toggle']('on', !!a['_loop']);
    const e = $(eP(0x412), a);
    e && (e[eP(0x333)] = padFavorite(b, c) ? eP(0x6b2) : eP(0x74f)),
    $(eP(0x205), a)?.[eP(0x474)]['toggle']('on', padFavorite(b, c));
    const f = padHotkey(b, c)
      , g = $('.pad-menu-btn\x20b', a);
    g && (g[eP(0x333)] = f);
    const h = $('.pad-hotkey-label', a);
    h && (h[eP(0x333)] = f || '\u043D\u0435\x20\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0430'),
    $(eP(0x435), a)?.['toggleAttribute'](eP(0x3ef), b !== eP(0x4e9)),
    $('[data-pad-action=\x27move-folder\x27]', a)?.[eP(0x3cf)](eP(0x3ef), b !== 'snd'),
    $(eP(0x518), a)?.[eP(0x3cf)](eP(0x3ef), b !== 'snd');
    const i = b === eP(0x3c0) ? eP(0x3c0) : soundPackName(c) ? eP(0x69e) : eP(0x77b)
      , j = b === 'folder' ? c['path'] : c['id']
      , k = $(eP(0x19a), a);
    k && (k[eP(0x333)] = sbItemHidden(i, j) ? eP(0x287) : eP(0x7dc));
    const l = $(eP(0x2aa), a);
    l && !l[eP(0x594)](':active') && (l['value'] = Math['round'](padVolume(b, c) * 0x64));
    const m = $(eP(0x2a3), a);
    m && (!a[eP(0x288)] || !a[eP(0x288)]['buf']) && (m[eP(0x5d9)] = 0x0);
}
function normalizeHotkey(a) {
    const eQ = odf943efb_P;
    if (a = String(a || '')[eQ(0x407)](),
    !a)
        return '';
    if (a['length'] === 0x1)
        return a['toUpperCase']();
    const b = a[eQ(0x68d)]()[eQ(0x8c0)](/\s+/g, '');
    return /^F([1-9]|1[0-2])$/[eQ(0x7d0)](b) ? b : b[eQ(0x801)](0x0, 0xc);
}
function findPadByHotkey(a, b, c) {
    const eR = odf943efb_P;
    if (a = normalizeHotkey(a),
    !a)
        return null;
    for (const d of state['sounds'])
        if (!(b === eR(0x4e9) && c && c['id'] === d['id']) && normalizeHotkey(padHotkey(eR(0x4e9), d)) === a)
            return d;
    for (const e of state['folder']?.[eR(0x30c)] || [])
        if (!(b === 'folder' && c && c[eR(0x7ee)] === e[eR(0x7ee)]) && normalizeHotkey(padHotkey('folder', e)) === a)
            return e;
    return null;
}
function relSound(a) {
    const eS = odf943efb_P;
    if (a) {
        if (a[eS(0x81c)])
            return;
        a['released'] = !0x0;
    }
    op[eS(0x2e0)] = Math['max'](0x0, op[eS(0x2e0)] - 0x1),
    op[eS(0x2e0)] === 0x0 && (op[eS(0x47a)] ? opGate(op[eS(0x47a)]) : (opGateOff(),
    op[eS(0x17a)] = !0x1));
}
function finishPad(a) {
    const eT = odf943efb_P
      , b = a[eT(0x288)];
    b && b[eT(0x42d)] && cancelAnimationFrame(b[eT(0x42d)]),
    a['classList'][eT(0x6f2)](eT(0x809), eT(0x6f4)),
    b && b[eT(0x80d)] && (b[eT(0x80d)]['style'][eT(0x4db)] = '0%');
    const c = $('.pad-seek', a);
    c && (c[eT(0x5d9)] = 0x0),
    a[eT(0x288)] = null,
    syncPadControls(a);
}
function updatePadProgress(a, b, c) {
    const eU = odf943efb_P
      , d = b[eU(0x45a)]['duration'] || 0x0
      , e = a[eU(0x552)] && d ? (c % d + d) % d : c;
    b[eU(0x80d)] && (b[eU(0x80d)][eU(0x84b)][eU(0x4db)] = d ? Math[eU(0x75f)](0x64, e / d * 0x64) + '%' : '0%');
    const f = $('.pad-seek', a);
    f && !f['matches'](eU(0x8fd)) && (f[eU(0x5d9)] = d ? String(Math[eU(0x7c9)](Math[eU(0x75f)](0x1, e / d) * 0x3e8)) : '0');
}
function rafProg(a) {
    const eW = odf943efb_P
      , b = c => {
        const eV = odf943efb_b
          , d = a[eV(0x288)];
        !d || !d[eV(0x809)] || ((!d[eV(0x445)] || c - d['lastProgTs'] >= 0x2d) && (d['lastProgTs'] = c,
        updatePadProgress(a, d, d['offset'] + (op['ctx']['currentTime'] - d['startTime']))),
        d['raf'] = requestAnimationFrame(b));
    }
    ;
    a[eW(0x288)]['raf'] = requestAnimationFrame(b);
}
function applySbFilter() {
    clearTimeout(sbFilterTimer),
    sbFilterTimer = setTimeout( () => {
        const eX = odf943efb_b;
        renderPads(),
        state[eX(0x3c0)] && renderFolder(state[eX(0x3c0)]),
        setSbView(localStorage[eX(0x6b6)](eX(0x2d6)) || 'grid');
    }
    , 0x5a);
}
async function deleteSound(a) {
    const eY = odf943efb_P;
    try {
        await invoke(eY(0x4cc), {
            'id': a['id']
        }),
        state[eY(0x2e0)] = state[eY(0x2e0)]['filter'](b => b['id'] !== a['id']),
        renderPads(),
        toast('\u0423\u0434\u0430\u043B\u0435\u043D\u043E');
    } catch {
        toast(eY(0x1fb), !0x0);
    }
}
function buildModal() {
    const eZ = odf943efb_P
      , a = document[eZ(0x4b4)](eZ(0x7df));
    a['className'] = eZ(0x10f),
    a['id'] = 'addModal',
    a[eZ(0x870)] = '<div\x20class=\x22modal\x22>\x0a\x20\x20\x20\x20<h3>Новый\x20звук</h3>\x0a\x20\x20\x20\x20<input\x20type=\x22text\x22\x20id=\x22addLabel\x22\x20maxlength=\x2220\x22\x20placeholder=\x22название\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22icon-grid\x22\x20id=\x22iconGrid\x22></div>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x22\x20id=\x22addCancel\x22>Отмена</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20primary\x22\x20id=\x22addOk\x22>Готово</button>\x0a\x20\x20\x20\x20</div></div>',
    document[eZ(0x624)][eZ(0x755)](a);
    const c = $('#iconGrid', a);
    for (const d of PAD_ICON_KEYS) {
        const e = document[eZ(0x4b4)](eZ(0x73f));
        e[eZ(0x4a9)] = 'icon-opt',
        e['dataset']['k'] = d,
        e[eZ(0x2af)][eZ(0x60b)] = d,
        e[eZ(0x870)] = iconSvg(d),
        e['onclick'] = () => {
            const f0 = eZ;
            $$(f0(0x85d), c)[f0(0x78d)](f => f[f0(0x474)][f0(0x6f2)](f0(0x8d2))),
            e[f0(0x474)]['add']('sel');
        }
        ,
        c['appendChild'](e);
    }
}
function askSound(a) {
    return new Promise(b => {
        const f1 = odf943efb_b
          , c = $(f1(0x499));
        $('#addLabel')[f1(0x5d9)] = a[f1(0x801)](0x0, 0x14),
        $$(f1(0x85d), c)[f1(0x78d)]( (e, f) => e[f1(0x474)][f1(0x7bb)](f1(0x8d2), f === 0x0)),
        c[f1(0x474)][f1(0x19d)](f1(0x4dd));
        const d = e => {
            const f2 = f1;
            c[f2(0x474)]['remove']('show'),
            $(f2(0x305))['onclick'] = $('#addCancel')['onclick'] = null,
            b(e);
        }
        ;
        $(f1(0x305))[f1(0x882)] = () => d({
            'label': $(f1(0x6ea))[f1(0x5d9)] || '\u0417\u0432\u0443\u043A',
            'icon': $(f1(0x410), c)?.[f1(0x2af)]['k'] || f1(0x6af)
        }),
        $('#addCancel')[f1(0x882)] = () => d(null);
    }
    );
}
function setSbView(a) {
    const f3 = odf943efb_P;
    localStorage[f3(0x378)](f3(0x2d6), a),
    $$(f3(0x392))[f3(0x5aa)]($$('#ownedSoundGroups\x20.sb-grid'), $$(f3(0x595)), $$(f3(0x705)))['forEach'](b => b[f3(0x474)][f3(0x7bb)](f3(0x35f), a === 'list')),
    $$('#sbViewToggle\x20button')[f3(0x78d)](c => c[f3(0x474)]['toggle']('on', c['dataset'][f3(0x7eb)] === a));
}
function wireSoundboard() {
    const f4 = odf943efb_P;
    $(f4(0x831))[f4(0x882)] = () => $(f4(0x880))[f4(0x626)](),
    $('#sbFile')[f4(0x1fe)] = async c => {
        const f5 = f4
          , d = c[f5(0x766)][f5(0x2c6)][0x0];
        if (c[f5(0x766)][f5(0x5d9)] = '',
        !d)
            return;
        const f = await askSound(d[f5(0x8b8)]['replace'](/\.[^.]+$/, ''));
        if (!f)
            return;
        toast(f5(0x3e0));
        const g = Array['from'](new Uint8Array(await d[f5(0x799)]()));
        try {
            const h = await invoke(f5(0x37f), {
                'bytes': g,
                'filename': d[f5(0x8b8)],
                'label': f[f5(0x20a)],
                'icon': f[f5(0x60b)],
                'pack': null,
                'packSource': null,
                'volume': null,
                'group': null,
                'sortOrder': null,
                'groupColor': null,
                'packColor': null
            });
            state[f5(0x2e0)][f5(0x255)](h),
            renderPads(),
            setSbView(localStorage[f5(0x6b6)](f5(0x2d6)) || 'grid'),
            toast(f5(0x52d) + h[f5(0x20a)]);
        } catch (i) {
            toast('\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C:\x20' + i, !0x0);
        }
    }
    ,
    $(f4(0x718))?.[f4(0x5e7)](f4(0x626), d => {
        const f6 = f4
          , f = d[f6(0x766)]['closest']('.tt-chip');
        if (!f)
            return;
        const g = f[f6(0x2af)][f6(0x779)];
        g === 'all' ? sbSel['clear']() : sbSel['has'](g) ? sbSel['delete'](g) : (sbSel[f6(0x19d)](g),
        sbSel[f6(0x6ed)] >= state['paneCount'] && sbSel[f6(0x672)]()),
        sbSelSave(),
        reflectSbTargets();
    }
    ),
    $('#sbSearch') && ($(f4(0x70b))['oninput'] = applySbFilter);
    const a = $('#sbMasterVolume');
    a && (reflectSbMasterVolume(),
    a[f4(0x7da)] = () => {
        const f7 = f4
          , c = Math[f7(0x29b)](0x0, Math['min'](0xc8, +a[f7(0x5d9)] || 0x0));
        localStorage[f7(0x378)]('sbMasterVolume', String(c / 0x64)),
        reflectSbMasterVolume(),
        updatePlayingPadVolumes();
    }
    );
    const b = $('#sbMonitorVolume');
    b && (reflectSbMonitorVolume(),
    b[f4(0x7da)] = () => {
        const f8 = f4
          , c = Math[f8(0x29b)](0x0, Math[f8(0x75f)](0xc8, +b[f8(0x5d9)] || 0x0));
        localStorage[f8(0x378)](f8(0x90a), String(c / 0x64)),
        reflectSbMonitorVolume(),
        updatePlayingPadVolumes();
    }
    ),
    $(f4(0x823))?.[f4(0x5e7)](f4(0x626), c => {
        const f9 = f4
          , d = c[f9(0x766)][f9(0x43e)]('button[data-sbmode]');
        d && (sbMode = d[f9(0x2af)][f9(0x126)] || 'all',
        localStorage[f9(0x378)](f9(0x500), sbMode),
        renderPads(),
        state['folder'] && renderFolder(state[f9(0x3c0)]),
        setSbView(localStorage[f9(0x6b6)](f9(0x2d6)) || 'grid'));
    }
    ),
    $$(f4(0x60a))['forEach'](c => c['onclick'] = () => setSbView(c['dataset'][f4(0x7eb)])),
    $(f4(0x862)) && ($(f4(0x862))[f4(0x882)] = () => {
        const fa = f4;
        sbShowHidden = !sbShowHidden,
        localStorage[fa(0x378)]('sbShowHidden', sbShowHidden ? '1' : '0'),
        renderPads(),
        state[fa(0x3c0)] && renderFolder(state[fa(0x3c0)]),
        setSbView(localStorage[fa(0x6b6)](fa(0x2d6)) || fa(0x924));
    }
    ),
    ensureSoundboardView(),
    setSbView(localStorage[f4(0x6b6)](f4(0x2d6)) || f4(0x924)),
    window[f4(0x5e7)](f4(0x424), c => {
        const fb = f4;
        if (c['repeat'] || c[fb(0x815)] || c[fb(0x839)] || c[fb(0x6f8)] || [fb(0x5e3), fb(0x569), fb(0x2ae)][fb(0x74e)]((c[fb(0x766)]?.[fb(0x6c9)] || '')[fb(0x860)]()) || !$(fb(0x781))?.['classList'][fb(0x3f5)](fb(0x7bf)))
            return;
        const d = normalizeHotkey(c[fb(0xee)])
          , f = $$('.pad:not(.pad-add)')['filter'](i => i['style'][fb(0x390)] !== 'none')
          , g = f['find'](i => normalizeHotkey(padHotkey(i[fb(0x28b)] || fb(0x4e9), i['_padRef'] || {})) === d);
        if (g) {
            c[fb(0x7e1)](),
            g[fb(0x626)]();
            return;
        }
        if (c[fb(0xee)] < '1' || c[fb(0xee)] > '9')
            return;
        const h = f[+c[fb(0xee)] - 0x1];
        h && (c['preventDefault'](),
        h[fb(0x626)]());
    }
    ),
    $(f4(0x84e))[f4(0x882)] = async () => {
        const fc = f4
          , c = $(fc(0x84e));
        c[fc(0x927)] = !0x0,
        c[fc(0x870)] = fc(0x67e);
        try {
            const d = await invoke(fc(0x636));
            renderFolder(d),
            setSbView(localStorage[fc(0x6b6)]('sbView') || fc(0x924)),
            toast(fc(0x867) + d['items'][fc(0x64f)] + fc(0xd7));
        } catch (e) {
            '' + e != fc(0x3e3) && toast('' + e, !0x0);
        } finally {
            c[fc(0x927)] = !0x1,
            c[fc(0x870)] = fc(0x510),
            injectIcons(c);
        }
    }
    ,
    $('#folderClear')[f4(0x882)] = async () => {
        const fd = f4;
        try {
            await invoke(fd(0x5ce));
        } catch {}
        renderFolder(null);
    }
    ;
}
const GROUP_COLORS = [odf943efb_P(0x207), odf943efb_P(0x13d), '#fb5c7d', odf943efb_P(0x5b2), odf943efb_P(0x733), '#34d6ef', odf943efb_P(0xd1), odf943efb_P(0x6e3), '#f0883e', '#a78bfa'];
function renderFolder(a) {
    const fe = odf943efb_P;
    state[fe(0x3c0)] = a,
    ensureSoundboardView();
    const b = $(fe(0x8dd));
    if (!b)
        return;
    if (clearPadContainer(b, fe(0x6d8)),
    b['innerHTML'] = '',
    $('#folderPath')['textContent'] = a ? a[fe(0x7ee)] + fe(0x3b5) + a[fe(0x30c)]['length'] + fe(0xd7) : '',
    $('#folderClear')[fe(0x84b)][fe(0x390)] = a ? '' : fe(0x902),
    !a || !a['items'][fe(0x64f)]) {
        a && (b['innerHTML'] = '<p\x20class=\x22muted\x20sm\x22>\u0412\x20\u043F\u0430\u043F\u043A\u0435\x20\u043D\u0435\u0442\x20\u0430\u0443\u0434\u0438\u043E.</p>');
        return;
    }
    if (sbModeIs(fe(0x124))) {
        setSbStats(state[fe(0x2e0)][fe(0x7a8)](h => soundPackName(h) && (sbShowHidden || !sbItemHidden('pack', h['id'])) && (!sbQuery() || padSearchText(fe(0x4e9), h, soundPackName(h))['includes'](sbQuery())))[fe(0x64f)], state[fe(0x2e0)][fe(0x64f)] + a[fe(0x30c)][fe(0x64f)]);
        return;
    }
    const c = {};
    for (const h of a[fe(0x30c)])
        (c[h['group'] || ''] ||= [])[fe(0x255)](h);
    const d = sbQuery()
      , e = localStorage[fe(0x6b6)]('sbView') === fe(0x35f);
    let f = 0x0;
    Object['keys'](c)['sort']()['forEach']( (i, j) => {
        const ff = fe
          , k = sortPadItems(c[i]['filter'](t => sbModeMatch(ff(0x3c0), t) && (!d || padSearchText(ff(0x3c0), t, i)[ff(0x74e)](d))), ff(0x3c0))[ff(0x7a8)](t => sbShowHidden || !sbItemHidden('folder', t[ff(0x7ee)]));
        if (!k[ff(0x64f)])
            return;
        f += k['length'];
        const l = i || ff(0x33b)
          , m = storedGroupColor(ff(0x3c0), l, k, GROUP_COLORS[j % GROUP_COLORS[ff(0x64f)]])
          , n = document['createElement'](ff(0x7df));
        n['className'] = ff(0x5a4) + (i ? ff(0x1b4) : ''),
        i && n[ff(0x84b)]['setProperty']('--group-depth', String(i[ff(0x7d3)]('/')[ff(0x64f)]));
        const o = k[ff(0x869)](t => sbItemHidden(ff(0x3c0), t[ff(0x7ee)]))
          , p = !sbShowHidden && !d && sbPackCollapsed(ff(0x3c0), l);
        n[ff(0x870)] = groupTitleHtml(ff(0x3c0), l, m, k[ff(0x64f)], o, {
            'title': i ? i[ff(0x8c0)](/\//g, ff(0x696)) : ff(0x37c),
            'canDelete': !0x1
        });
        const r = document[ff(0x4b4)](ff(0x7df));
        r[ff(0x4a9)] = ff(0x813) + (e ? '\x20list' : ''),
        renderLazyPadGrid(r, k, 'folder', () => m, i, p);
        const s = document[ff(0x4b4)]('div');
        s['className'] = ff(0xf4),
        s[ff(0x755)](r),
        n['appendChild'](s),
        b[ff(0x755)](n),
        wireGroupControls(n, ff(0x3c0), l, k, {
            'colorScope': ff(0x3c0),
            'colorName': l
        }),
        injectIcons(n);
    }
    );
    const g = state[fe(0x2e0)][fe(0x7a8)](i => {
        const fg = fe
          , j = soundPackName(i) ? 'pack' : fg(0x77b);
        return !sbModeMatch(fg(0x4e9), i) || !sbShowHidden && sbItemHidden(j, i['id']) ? !0x1 : !d || padSearchText(fg(0x4e9), i, soundPackName(i) + '\x20' + soundGroupPath(i))[fg(0x74e)](d);
    }
    )[fe(0x64f)];
    setSbStats(g + f, state[fe(0x2e0)][fe(0x64f)] + a['items'][fe(0x64f)]);
}
async function loadFolder() {
    const fh = odf943efb_P;
    try {
        const a = await invoke(fh(0x6e0));
        a && renderFolder(a);
    } catch {}
}
function escapeHtml(a) {
    const fi = odf943efb_P;
    return String(a)[fi(0x8c0)](/[&<>"']/g, b => ({
        '&': fi(0x2e4),
        '<': fi(0x115),
        '>': fi(0x66d),
        '\x22': fi(0x7d2),
        '\x27': fi(0x1c5)
    }[b]));
}
function linkifyText(a) {
    return escapeHtml(a || '')['replace'](/https?:\/\/[^\s<>"']+/gi, b => {
        const fj = odf943efb_b
          , c = b[fj(0x8c0)](/[.,!?;:)]+$/g, '')
          , d = b['slice'](c['length']);
        return '<a\x20href=\x22' + c + fj(0x72d) + c + '\x22>' + c + '</a>' + escapeHtml(d);
    }
    );
}
function applyAppearanceUI() {
    const fk = odf943efb_P
      , a = isVipAccount()
      , b = $(fk(0x527));
    b && b[fk(0x474)][fk(0x7bb)]('locked', !a);
    const c = localStorage[fk(0x6b6)]('appearance_preset') || fk(0x354);
    $$(fk(0x3ee))['forEach'](i => i[fk(0x474)]['toggle']('on', i[fk(0x2af)]['preset'] === c));
    const d = $('#appearanceAccent')
      , e = APPEARANCE_PRESETS[c];
    d && document[fk(0xf8)] !== d && (d[fk(0x5d9)] = safeAppearanceColor(e?.[0x0] || localStorage[fk(0x6b6)](fk(0x87d))));
    const f = Math[fk(0x29b)](0xa, Math[fk(0x75f)](0x64, +(localStorage['getItem'](fk(0x3dc)) || 0x30)))
      , g = Math[fk(0x29b)](0x0, Math[fk(0x75f)](0x14, +(localStorage[fk(0x6b6)](fk(0xe1)) || 0x0)));
    $(fk(0x11b)) && ($(fk(0x11b))[fk(0x5d9)] = String(f)),
    $('#appearanceBgOpacityLabel') && ($(fk(0x8fe))[fk(0x333)] = f + '%'),
    $(fk(0x7fc)) && ($(fk(0x7fc))[fk(0x5d9)] = String(g)),
    $('#appearanceBgBlurLabel') && ($(fk(0x864))['textContent'] = g ? g + fk(0x532) : fk(0x544));
    const h = localStorage[fk(0x6b6)](fk(0x192)) || '';
    $('#appearanceBgName') && ($(fk(0x60e))[fk(0x333)] = h ? h[fk(0x7d3)](/[\\/]/)[fk(0x760)]() : fk(0x473)),
    window['NKCursor'] && window[fk(0x3b4)][fk(0x57a)]();
}
function validateAppearanceBackground(a) {
    return new Promise( (b, c) => {
        const fl = odf943efb_b
          , d = new Image()
          , e = setTimeout( () => c(new Error(fl(0x377))), 0x1f40);
        d[fl(0x604)] = () => {
            const fm = fl;
            clearTimeout(e);
            const f = d[fm(0x6e2)] * d[fm(0x209)];
            !d['naturalWidth'] || !d[fm(0x209)] || f > 0x5b8d80 || d[fm(0x6e2)] > 0x1000 || d[fm(0x209)] > 0x1000 ? c(new Error(fm(0x2d4))) : b();
        }
        ,
        d[fl(0x4df)] = () => {
            const fn = fl;
            clearTimeout(e),
            c(new Error(fn(0x694)));
        }
        ,
        d['src'] = convertFileSrc(a);
    }
    );
}
function wireAppearanceCustom() {
    const fo = odf943efb_P;
    $$(fo(0x3ee))[fo(0x78d)](f => {
        f['onclick'] = () => {
            const fp = odf943efb_b;
            if (!isVipAccount())
                return toast('\u041F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u043E\u0435\x20\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435\x20\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\x20\u0441\x20VIP', !0x0);
            localStorage[fp(0x378)](fp(0x254), f[fp(0x2af)][fp(0x24c)] || fp(0x354)),
            applyAppearance(),
            applyAppearanceUI();
        }
        ;
    }
    );
    const a = $(fo(0x600));
    a && (a[fo(0x7da)] = () => {
        const fq = fo;
        if (!isVipAccount())
            return;
        const f = safeAppearanceColor(a[fq(0x5d9)]);
        localStorage[fq(0x378)]('appearance_preset', fq(0x3d4)),
        localStorage[fq(0x378)](fq(0x87d), f),
        localStorage['setItem'](fq(0x7ca), f),
        applyAppearance(),
        applyAppearanceUI();
    }
    );
    const b = $(fo(0x11b));
    b && (b[fo(0x7da)] = () => {
        const fr = fo;
        localStorage[fr(0x378)](fr(0x3dc), String(Math[fr(0x29b)](0xa, Math[fr(0x75f)](0x64, +b[fr(0x5d9)] || 0x30)))),
        applyAppearance(),
        applyAppearanceUI();
    }
    );
    const c = $(fo(0x7fc));
    c && (c[fo(0x7da)] = () => {
        const fs = fo;
        localStorage[fs(0x378)]('appearance_bg_blur', String(Math['max'](0x0, Math[fs(0x75f)](0x14, +c['value'] || 0x0)))),
        applyAppearance(),
        applyAppearanceUI();
    }
    );
    const d = $(fo(0x4e8));
    d && (d['onclick'] = async () => {
        const ft = fo;
        if (!isVipAccount())
            return toast(ft(0x517), !0x0);
        d['disabled'] = !0x0;
        let f = '';
        try {
            f = await invoke('pick_appearance_background'),
            await validateAppearanceBackground(f),
            localStorage[ft(0x378)](ft(0x192), f || ''),
            applyAppearance(),
            applyAppearanceUI(),
            toast('\u0424\u043E\u043D\x20\u043E\u0431\u043D\u043E\u0432\u043B\u0451\u043D');
        } catch (g) {
            if (f)
                try {
                    await invoke(ft(0x52a));
                } catch {}
            String(g) !== ft(0x3e3) && toast(ft(0x8ef) + g, !0x0);
        } finally {
            d['disabled'] = !0x1;
        }
    }
    );
    const e = $(fo(0x6f1));
    e && (e[fo(0x882)] = async () => {
        const fu = fo;
        if (!isVipAccount())
            return toast(fu(0x517), !0x0);
        try {
            await invoke(fu(0x52a));
        } catch {}
        localStorage[fu(0x791)](fu(0x192)),
        applyAppearance(),
        applyAppearanceUI(),
        toast(fu(0x863));
    }
    ),
    isVipAccount() && !localStorage['getItem'](fo(0x192)) && invoke(fo(0x542))['then'](f => {
        const fv = fo;
        f && localStorage[fv(0x378)](fv(0x192), f),
        applyAppearance(),
        applyAppearanceUI();
    }
    )[fo(0x375)]( () => {}
    ),
    applyAppearanceUI();
}
const TEXT_BRIDGE = {
    'mode': 'voice',
    'switching': !0x1,
    'voicePaneCount': 0x2,
    'relay': !0x0,
    'delay': 0x0,
    'target': odf943efb_P(0x1ca),
    'states': {
        'peer1': odf943efb_P(0x3e8),
        'peer2': odf943efb_P(0x3e8)
    },
    'pendingSearch': new Set(),
    'refreshing': new Set(),
    'searchFallbacks': new Map(),
    'restartingPair': !0x1,
    'autoPairSearch': localStorage[odf943efb_P(0x6b6)]('text_pair_autosearch') === '1',
    'pending': new Map(),
    'seen': new Set(),
    'history': [],
    'manualBusy': !0x1
}
  , TEXT_STATE_LABELS = {
    'loading': odf943efb_P(0x48e),
    'ready': odf943efb_P(0x72c),
    'idle': odf943efb_P(0x782),
    'captcha': odf943efb_P(0x82e),
    'searching': '\u0438\u0449\u0435\u0442\x20\u0441\u043E\u0431\u0435\u0441\u0435\u0434\u043D\u0438\u043A\u0430',
    'connected': odf943efb_P(0x77f),
    'ended': '\u0441\u043E\u0431\u0435\u0441\u0435\u0434\u043D\u0438\u043A\x20\u0443\u0448\u0451\u043B',
    'offline': odf943efb_P(0x135)
};
function textSide(a) {
    const fw = odf943efb_P;
    return a === fw(0x1ca) ? 'A' : 'B';
}
function textOtherPeer(a) {
    const fx = odf943efb_P;
    return a === fx(0x1ca) ? fx(0x25a) : fx(0x1ca);
}
function renderTextAutoSearch() {
    const fy = odf943efb_P
      , a = $(fy(0x4e5));
    if (!a)
        return;
    a[fy(0x474)][fy(0x7bb)]('on', TEXT_BRIDGE[fy(0x3e9)]),
    a[fy(0x44d)](fy(0x440), TEXT_BRIDGE[fy(0x3e9)] ? fy(0x7b2) : fy(0x4f4));
    const b = a[fy(0x577)]('b');
    b && (b['textContent'] = fy(0x1be) + (TEXT_BRIDGE[fy(0x3e9)] ? fy(0x450) : '\u0432\u044B\u043A\u043B'));
}
function renderTextStates() {
    const fz = odf943efb_P;
    [fz(0x1ca), fz(0x25a)][fz(0x78d)](a => {
        const fA = fz
          , b = TEXT_BRIDGE['states'][a] || fA(0x3e8)
          , c = $(fA(0x177) + a + '\x22]')
          , d = $(fA(0x2ed) + a + '\x22]')
          , e = $('[data-text-search=\x22' + a + '\x22]')
          , f = $('[data-text-stop=\x22' + a + '\x22]');
        c && (c['textContent'] = TEXT_STATE_LABELS[b] || b),
        d && (d[fA(0x2af)][fA(0x8dc)] = b);
        const g = b === fA(0x62a) || b === fA(0x2a8) || b === fA(0xc5);
        if (e && (e[fA(0x927)] = g,
        e[fA(0x333)] = b === fA(0x92d) ? fA(0x6cb) : fA(0x349)),
        f) {
            f[fA(0x927)] = !g;
            const h = f[fA(0x577)]('b');
            h && (h['textContent'] = b === fA(0x2a8) ? fA(0x118) : fA(0x703));
        }
    }
    );
}
function renderTextQueue() {
    const fB = odf943efb_P
      , a = $('#textRelayFeed');
    if (a) {
        if (!TEXT_BRIDGE['pending']['size']) {
            a[fB(0x870)] = '<div\x20class=\x22text-relay-empty\x22>' + (TEXT_BRIDGE[fB(0x2ec)] && TEXT_BRIDGE[fB(0x679)] === 0x0 ? fB(0x34e) : '\u0417\u0434\u0435\u0441\u044C\x20\u043F\u043E\u044F\u0432\u044F\u0442\u0441\u044F\x20\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\x20\u0434\u043B\u044F\x20\u043F\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0430') + fB(0x780);
            return;
        }
        a[fB(0x870)] = [...TEXT_BRIDGE['pending'][fB(0x235)]()][fB(0x50d)](b => {
            const fC = fB
              , c = b[fC(0x4ee)] ? Math[fC(0x29b)](0x0, Math[fC(0x4a8)]((b['deadline'] - Date[fC(0x2d3)]()) / 0x3e8)) : null
              , d = b[fC(0x4ee)] ? Math['max'](0.2, (b['deadline'] - Date['now']()) / 0x3e8) + 's' : fC(0x5b8);
            return fC(0x541) + escapeHtml(b['id']) + fC(0x50b) + d + fC(0xe3) + textSide(b[fC(0x2c2)]) + '</b><span>→</span><b>' + textSide(b['to']) + fC(0x7c4) + (c == null ? '\u0432\u0440\u0443\u0447\u043D\u0443\u044E' : c + fC(0xe8)) + fC(0x592) + escapeHtml(b['value']) + fC(0x46b) + escapeHtml(b['id']) + '\x22>Передать\x20сейчас</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20toggle\x20danger\x20sm\x22\x20data-text-discard=\x22' + escapeHtml(b['id']) + '\x22>Не\x20пересылать</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</article>';
        }
        )[fB(0x29a)]('');
    }
}
function renderTextConversation() {
    const fD = odf943efb_P
      , a = $(fD(0x5fe));
    if (a) {
        if (!TEXT_BRIDGE['history'][fD(0x64f)]) {
            a[fD(0x870)] = fD(0x6d5);
            return;
        }
        a['innerHTML'] = TEXT_BRIDGE[fD(0x297)][fD(0x801)](-0xa0)[fD(0x50d)](b => {
            const fE = fD;
            if (b['system'])
                return fE(0x16f) + escapeHtml(b[fE(0x31a)]) + fE(0x54c);
            const c = b['manual'] ? b[fE(0x22c)] === fE(0x1ca) ? 'b' : 'a' : b[fE(0x22c)] === fE(0x25a) ? 'b' : 'a'
              , d = new Date(b[fE(0x432)])[fE(0x49b)](fE(0x907), {
                'hour': fE(0x283),
                'minute': fE(0x283)
            });
            return '<article\x20class=\x22text-conversation-message\x20side-' + c + (b[fE(0x692)] ? fE(0x48d) : '') + fE(0x6c7) + escapeHtml(b['id']) + fE(0x32b) + d + fE(0x830) + escapeHtml(b[fE(0x31a)]) + fE(0x562);
        }
        )[fD(0x29a)](''),
        a[fD(0x553)] = a[fD(0x52e)];
    }
}
function addTextHistory(a) {
    const fF = odf943efb_P
      , b = {
        'id': a['id'] || fF(0x72b) + Date[fF(0x2d3)]()[fF(0x6dd)](0x24) + Math[fF(0x5b0)]()['toString'](0x24)[fF(0x801)](0x2, 0x7),
        'peer': a[fF(0x22c)],
        'text': String(a[fF(0x31a)] || '')[fF(0x407)](),
        'manual': !!a[fF(0x692)],
        'status': a[fF(0x366)] || '',
        'time': Date[fF(0x2d3)]()
    };
    return b[fF(0x31a)] ? (TEXT_BRIDGE[fF(0x297)][fF(0x255)](b),
    TEXT_BRIDGE[fF(0x297)]['length'] > 0x12c && TEXT_BRIDGE[fF(0x297)]['splice'](0x0, TEXT_BRIDGE['history']['length'] - 0xdc),
    renderTextConversation(),
    b) : null;
}
function updateTextHistory(a, b) {
    const fG = odf943efb_P
      , c = TEXT_BRIDGE[fG(0x297)]['find'](d => d['id'] === a);
    c && (Object[fG(0x179)](c, b || {}),
    renderTextConversation());
}
function clearTextQueue() {
    const fH = odf943efb_P;
    for (const [a,b] of TEXT_BRIDGE[fH(0x853)])
        clearTimeout(b[fH(0x6c5)]),
        TEXT_BRIDGE[fH(0x853)][fH(0x29f)](a);
    renderTextQueue();
}
function clearTextConversation() {
    const fI = odf943efb_P;
    TEXT_BRIDGE[fI(0x297)] = [],
    TEXT_BRIDGE[fI(0x894)] = new Set(),
    clearTextQueue(),
    renderTextConversation();
}
function markTextConversationEnd(a) {
    const fJ = odf943efb_P
      , b = TEXT_BRIDGE['history'][TEXT_BRIDGE[fJ(0x297)]['length'] - 0x1];
    !b || b['system'] || (TEXT_BRIDGE[fJ(0x297)][fJ(0x255)]({
        'id': fJ(0x90f) + Date[fJ(0x2d3)]()[fJ(0x6dd)](0x24) + Math['random']()[fJ(0x6dd)](0x24)[fJ(0x801)](0x2, 0x7),
        'system': !0x0,
        'text': fJ(0x8f0) + textSide(a) + fJ(0xcd),
        'time': Date[fJ(0x2d3)]()
    }),
    renderTextConversation());
}
async function reloadTextPane(a, b=!0x1) {
    const fK = odf943efb_P;
    if (/^peer[12]$/[fK(0x7d0)](a || '')) {
        b && TEXT_BRIDGE[fK(0x564)][fK(0x19d)](a),
        TEXT_BRIDGE[fK(0x436)][fK(0x19d)](a),
        TEXT_BRIDGE[fK(0x143)][a] = fK(0x3e8),
        renderTextStates();
        try {
            await invoke('text_chat_action', {
                'peer': a,
                'action': 'reload',
                'text': null
            });
        } catch (c) {
            TEXT_BRIDGE['refreshing'][fK(0x29f)](a),
            TEXT_BRIDGE[fK(0x564)]['delete'](a),
            TEXT_BRIDGE[fK(0x143)][a] = fK(0x206),
            renderTextStates(),
            toast('\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\x20\u043E\u043A\u043D\u043E:\x20' + c, !0x0);
        }
    }
}
function clearTextSearchFallback(a) {
    const fL = odf943efb_P
      , b = TEXT_BRIDGE[fL(0x237)][fL(0x730)](a);
    b && clearTimeout(b),
    TEXT_BRIDGE[fL(0x237)]['delete'](a);
}
async function startTextSearch(a, b=!0x0) {
    const fM = odf943efb_P;
    if (!/^peer[12]$/[fM(0x7d0)](a || ''))
        return;
    b && clearTextConversation(),
    clearTextSearchFallback(a);
    const c = TEXT_BRIDGE[fM(0x143)][a];
    if (c === fM(0x3e8) || c === fM(0x206) || TEXT_BRIDGE[fM(0x436)][fM(0x403)](a))
        return reloadTextPane(a, !0x0);
    TEXT_BRIDGE[fM(0x564)]['delete'](a);
    try {
        await invoke(fM(0x865), {
            'peer': a,
            'action': fM(0x2e7),
            'text': null
        });
    } catch (f) {
        TEXT_BRIDGE['states'][a] = fM(0x420),
        renderTextStates(),
        toast(fM(0x858) + f, !0x0);
        return;
    }
    const d = c
      , e = setTimeout( () => {
        const fN = fM;
        TEXT_BRIDGE['searchFallbacks']['delete'](a);
        const g = TEXT_BRIDGE[fN(0x143)][a];
        (g === d || [fN(0x58e), fN(0x420), fN(0x92d), fN(0x206)][fN(0x74e)](g)) && reloadTextPane(a, !0x0);
    }
    , 0x1770);
    TEXT_BRIDGE['searchFallbacks'][fM(0xf3)](a, e);
}
async function restartTextPair() {
    const fO = odf943efb_P;
    TEXT_BRIDGE[fO(0x317)] !== fO(0x31a) || TEXT_BRIDGE[fO(0x67c)] || (TEXT_BRIDGE[fO(0x67c)] = !0x0,
    clearTextConversation(),
    TEXT_BRIDGE[fO(0x564)]['clear'](),
    [fO(0x1ca), fO(0x25a)]['forEach'](a => {
        const fP = fO;
        TEXT_BRIDGE[fP(0x143)][a] = fP(0x3e8);
    }
    ),
    renderTextStates(),
    await Promise[fO(0x3c8)]([fO(0x1ca), fO(0x25a)][fO(0x50d)](a => invoke('text_chat_action', {
        'peer': a,
        'action': fO(0x359),
        'text': null
    })[fO(0x375)]( () => {}
    ))),
    await new Promise(a => setTimeout(a, 0xfa)),
    await Promise['all']([fO(0x1ca), fO(0x25a)]['map'](a => startTextSearch(a, !0x1))),
    setTimeout( () => {
        const fQ = fO;
        TEXT_BRIDGE[fQ(0x67c)] = !0x1;
    }
    , 0x1388));
}
function runPendingTextSearch(a) {
    const fR = odf943efb_P;
    TEXT_BRIDGE['pendingSearch'][fR(0x403)](a) && (TEXT_BRIDGE[fR(0x564)]['delete'](a),
    setTimeout( () => {
        const fS = fR;
        invoke('text_chat_action', {
            'peer': a,
            'action': fS(0x2e7),
            'text': null
        })[fS(0x375)](b => {
            const fT = fS;
            TEXT_BRIDGE[fT(0x143)][a] = fT(0x420),
            renderTextStates(),
            toast(fT(0x858) + b, !0x0);
        }
        );
    }
    , 0xfa));
}
function scheduleTextItem(a, b=!0x1) {
    const fU = odf943efb_P;
    if (clearTimeout(a[fU(0x6c5)]),
    !TEXT_BRIDGE[fU(0x2ec)]) {
        a[fU(0x4ee)] = 0x0,
        a[fU(0x6c5)] = null;
        return;
    }
    const c = b ? 0x3e8 : Math[fU(0x29b)](0x0, TEXT_BRIDGE[fU(0x679)] * 0x3e8);
    a[fU(0x4ee)] = c ? Date[fU(0x2d3)]() + c : 0x0,
    a[fU(0x6c5)] = setTimeout( () => forwardTextItem(a['id']), c);
}
async function sendTextToPane(a, b, c) {
    const fV = odf943efb_P;
    if (b = String(b || '')['trim'](),
    !b)
        return !0x1;
    if (TEXT_BRIDGE['states'][a] !== 'connected')
        return toast('Собеседник\x20' + textSide(a) + fV(0x6ca), !0x0),
        !0x1;
    try {
        return await invoke('text_chat_action', {
            'peer': a,
            'action': 'send',
            'text': b,
            'key': String(c || '')
        }),
        !0x0;
    } catch (d) {
        return toast(fV(0x683) + d, !0x0),
        !0x1;
    }
}
async function forwardTextItem(a) {
    const fW = odf943efb_P
      , b = TEXT_BRIDGE[fW(0x853)][fW(0x730)](a);
    if (!b)
        return;
    const c = String(b[fW(0x5d9)] || '')['trim']();
    if (!c)
        return discardTextItem(a);
    if (TEXT_BRIDGE['states'][b['to']] !== 'connected') {
        scheduleTextItem(b, !0x0),
        renderTextQueue();
        return;
    }
    const d = c !== b[fW(0x47f)];
    if (!await sendTextToPane(b['to'], c, b[fW(0xee)] || b['id'])) {
        scheduleTextItem(b, !0x0),
        renderTextQueue();
        return;
    }
    updateTextHistory(b['historyId'], {
        'text': c,
        'status': d ? fW(0x3f2) + textSide(b['to']) : fW(0x91f) + textSide(b['to'])
    }),
    clearTimeout(b[fW(0x6c5)]),
    TEXT_BRIDGE[fW(0x853)][fW(0x29f)](a),
    renderTextQueue();
}
function discardTextItem(a) {
    const fX = odf943efb_P
      , b = TEXT_BRIDGE[fX(0x853)][fX(0x730)](a);
    b && (clearTimeout(b[fX(0x6c5)]),
    updateTextHistory(b[fX(0x241)], {
        'status': '\u043D\u0435\x20\u043F\u0435\u0440\u0435\u0441\u043B\u0430\u043D\u043E'
    })),
    TEXT_BRIDGE[fX(0x853)]['delete'](a),
    renderTextQueue();
}
function queueTextMessage(a, b) {
    const fY = odf943efb_P
      , c = a + ':' + (b['id'] || b[fY(0x11c)] || '') + ':' + (b['message'] || '');
    if (TEXT_BRIDGE[fY(0x894)][fY(0x403)](c))
        return;
    TEXT_BRIDGE[fY(0x894)][fY(0x19d)](c),
    TEXT_BRIDGE[fY(0x894)][fY(0x6ed)] > 0x1f4 && (TEXT_BRIDGE[fY(0x894)] = new Set([...TEXT_BRIDGE[fY(0x894)]][fY(0x801)](-0xfa)));
    const d = fY(0x762) + Date[fY(0x2d3)]()[fY(0x6dd)](0x24) + Math['random']()[fY(0x6dd)](0x24)[fY(0x801)](0x2, 0x7)
      , e = {
        'id': d,
        'from': a,
        'to': textOtherPeer(a),
        'original': String(b['message'] || '')[fY(0x407)](),
        'value': String(b[fY(0x835)] || '')[fY(0x407)](),
        'deadline': 0x0,
        'timer': null,
        'key': fY(0x511) + a + '-' + String(b['id'] || b[fY(0x11c)] || String(b['message'] || '')['trim']())
    };
    if (!e['original'])
        return;
    const f = addTextHistory({
        'peer': a,
        'text': e[fY(0x47f)],
        'status': TEXT_BRIDGE[fY(0x2ec)] ? TEXT_BRIDGE[fY(0x679)] ? fY(0x1f1) + TEXT_BRIDGE[fY(0x679)] + fY(0xe8) : fY(0x41f) : fY(0x322)
    });
    e[fY(0x241)] = f?.['id'] || '',
    TEXT_BRIDGE[fY(0x853)][fY(0xf3)](d, e),
    scheduleTextItem(e),
    renderTextQueue();
}
function handleTextBridgeEvent(a) {
    const fZ = odf943efb_P;
    if (!(!a || !/^peer[12]$/['test'](a[fZ(0x22c)] || ''))) {
        if (a[fZ(0x7a1)] === fZ(0x835)) {
            queueTextMessage(a['peer'], a[fZ(0x108)] || {});
            return;
        }
        if (a[fZ(0x7a1)] === fZ(0x8dc)) {
            const b = TEXT_BRIDGE[fZ(0x143)][a[fZ(0x22c)]]
              , c = a[fZ(0x108)]?.[fZ(0x8dc)] || 'loading';
            [fZ(0x62a), fZ(0x2a8), 'captcha'][fZ(0x74e)](c) && clearTextSearchFallback(a['peer']);
            const d = b === fZ(0x2a8) && (c === fZ(0x92d) || c === fZ(0x420));
            TEXT_BRIDGE[fZ(0x143)][a['peer']] = c,
            (b === fZ(0x2a8) || b === fZ(0x62a)) && (c === fZ(0x92d) || c === fZ(0x420)) && (clearTextQueue(),
            b === fZ(0x2a8) && markTextConversationEnd(a[fZ(0x22c)])),
            d && TEXT_BRIDGE['autoPairSearch'] ? setTimeout( () => restartTextPair(), 0x64) : c === fZ(0x92d) && TEXT_BRIDGE[fZ(0x564)]['delete'](a[fZ(0x22c)]),
            c === fZ(0x420) && TEXT_BRIDGE[fZ(0x564)][fZ(0x403)](a[fZ(0x22c)]) && runPendingTextSearch(a[fZ(0x22c)]),
            TEXT_BRIDGE[fZ(0x67c)] && [fZ(0x1ca), fZ(0x25a)][fZ(0x869)](e => ['searching', fZ(0x2a8), fZ(0xc5)]['includes'](TEXT_BRIDGE[fZ(0x143)][e])) && (TEXT_BRIDGE['restartingPair'] = !0x1);
        } else
            a[fZ(0x7a1)] === 'ready' ? (clearTextSearchFallback(a[fZ(0x22c)]),
            TEXT_BRIDGE[fZ(0x143)][a[fZ(0x22c)]] = a[fZ(0x108)]?.['state'] || fZ(0x58e),
            TEXT_BRIDGE[fZ(0x436)][fZ(0x29f)](a[fZ(0x22c)]),
            runPendingTextSearch(a[fZ(0x22c)])) : a[fZ(0x7a1)] === fZ(0x10a) ? TEXT_BRIDGE[fZ(0x436)][fZ(0x403)](a[fZ(0x22c)]) || (clearTextQueue(),
            reloadTextPane(a[fZ(0x22c)], !0x0)) : a[fZ(0x7a1)] === 'send-result' && a[fZ(0x108)]?.['ok'] === !0x1 && toast(fZ(0x7de) + textSide(a[fZ(0x22c)]), !0x0);
        renderTextStates();
    }
}
async function setAppMode(a) {
    const g0 = odf943efb_P;
    if (TEXT_BRIDGE['switching'] || ![g0(0x370), g0(0x31a), 'video'][g0(0x74e)](a))
        return;
    const b = document['body'][g0(0x2af)]['appMode'] === g0(0x4b1);
    if (a === g0(0x4b1)) {
        if (b)
            return;
        document[g0(0x624)][g0(0x2af)][g0(0x41a)] = g0(0x4b1),
        TEXT_BRIDGE[g0(0x317)] = g0(0x4b1);
        try {
            window[g0(0x63e)] && window[g0(0x63e)][g0(0x79f)] && window[g0(0x63e)][g0(0x79f)](!0x0);
        } catch {}
        $$(g0(0x719))[g0(0x78d)](c => {
            const g1 = g0
              , d = c[g1(0x2af)][g1(0x41a)] === g1(0x4b1);
            c[g1(0x474)]['toggle']('active', d),
            c[g1(0x44d)]('aria-selected', d ? g1(0x7b2) : g1(0x4f4));
        }
        );
        return;
    }
    if (b) {
        try {
            window[g0(0x63e)] && window[g0(0x63e)][g0(0x79f)] && window[g0(0x63e)][g0(0x79f)](!0x1);
        } catch {}
        try {
            for (let c = 0x0; c < 0x4; c++)
                window[g0(0x63e)] && window[g0(0x63e)][g0(0x359)](c);
        } catch {}
        TEXT_BRIDGE['mode'] = null;
    }
    if (a === TEXT_BRIDGE['mode']) {
        if (a === g0(0x31a)) {
            delete document['body'][g0(0x2af)][g0(0x141)],
            document[g0(0x624)][g0(0x474)]['remove']('text-sidebar-open');
            const d = $(g0(0x1f3));
            d && (d['hidden'] = !0x1),
            $$('.view')[g0(0x78d)](e => e[g0(0x84b)][g0(0x597)](g0(0x390))),
            $('.content')[g0(0x553)] = 0x0,
            await invoke(g0(0x872), {
                'on': !0x0
            });
        }
        return;
    }
    TEXT_BRIDGE[g0(0x8c9)] = !0x0,
    $$(g0(0x719))['forEach'](e => {
        const g2 = g0;
        e[g2(0x927)] = !0x0;
    }
    );
    try {
        if (a === g0(0x31a)) {
            TEXT_BRIDGE['voicePaneCount'] = state['paneCount'] || 0x2,
            state['paneCount'] !== 0x2 && (await invoke(g0(0x591), {
                'count': 0x2
            }),
            buildPaneUI(0x2)),
            TEXT_BRIDGE['states'] = {
                'peer1': g0(0x3e8),
                'peer2': g0(0x3e8)
            },
            delete document[g0(0x624)][g0(0x2af)][g0(0x141)],
            document[g0(0x624)]['classList'][g0(0x6f2)](g0(0x2f5));
            const e = $(g0(0x1f3));
            e && (e[g0(0x3ef)] = !0x1),
            $$(g0(0x329))[g0(0x78d)](f => f['style']['removeProperty'](g0(0x390))),
            renderTextStates(),
            await invoke(g0(0x101), {
                'on': !0x0
            });
        } else {
            await invoke(g0(0x101), {
                'on': !0x1
            });
            const f = Math[g0(0x29b)](0x1, Math[g0(0x75f)](maxPanes(), TEXT_BRIDGE['voicePaneCount'] || 0x2));
            f !== state['paneCount'] && (await invoke(g0(0x591), {
                'count': f
            }),
            buildPaneUI(f)),
            TEXT_BRIDGE['pending'][g0(0x78d)](g => clearTimeout(g['timer'])),
            TEXT_BRIDGE['pending']['clear'](),
            renderTextQueue();
        }
        TEXT_BRIDGE[g0(0x317)] = a,
        document[g0(0x624)][g0(0x2af)][g0(0x41a)] = a,
        $$('button[data-app-mode]')['forEach'](g => {
            const g3 = g0
              , h = g[g3(0x2af)][g3(0x41a)] === a;
            g[g3(0x474)]['toggle']('active', h),
            g[g3(0x44d)](g3(0x66c), h ? g3(0x7b2) : 'false');
        }
        );
    } catch (g) {
        toast(g0(0x91d) + g, !0x0);
    } finally {
        TEXT_BRIDGE['switching'] = !0x1,
        $$(g0(0x719))['forEach'](h => {
            const g4 = g0;
            h[g4(0x927)] = !0x1;
        }
        );
    }
}
function wireTextBridge() {
    const g5 = odf943efb_P;
    document['body'][g5(0x2af)][g5(0x41a)] = g5(0x370),
    renderTextAutoSearch(),
    invoke('text_chat_state', {})[g5(0x50f)](a => {
        const g6 = g5;
        if (!a)
            return;
        let b = !0x1;
        for (const d of a['panes'] || [])
            !d || !d[g6(0x22c)] || !d['state'] || TEXT_BRIDGE['states'][d[g6(0x22c)]] !== d[g6(0x8dc)] && (TEXT_BRIDGE['states'][d[g6(0x22c)]] = d[g6(0x8dc)],
            b = !0x0);
        if (b && renderTextStates(),
        !a['actual'] || TEXT_BRIDGE[g6(0x317)] === 'text')
            return;
        TEXT_BRIDGE[g6(0x317)] = g6(0x31a),
        document[g6(0x624)]['dataset'][g6(0x41a)] = g6(0x31a);
        const c = $(g6(0x1f3));
        c && (c[g6(0x3ef)] = !0x1),
        $$(g6(0x719))[g6(0x78d)](e => e[g6(0x474)]['toggle'](g6(0x7bf), e[g6(0x2af)][g6(0x41a)] === g6(0x31a))),
        $$(g6(0x719))[g6(0x78d)](e => e[g6(0x44d)](g6(0x66c), e[g6(0x2af)][g6(0x41a)] === g6(0x31a) ? g6(0x7b2) : g6(0x4f4))),
        renderTextStates(),
        toast(g6(0x64e));
    }
    )[g5(0x375)]( () => {}
    ),
    $$('button[data-app-mode]')[g5(0x78d)](a => {
        const g7 = g5;
        a[g7(0x882)] = () => setAppMode(a[g7(0x2af)][g7(0x41a)]);
    }
    ),
    $(g5(0x7f2))?.[g5(0x5e7)](g5(0x626), async () => {
        const g8 = g5;
        clearTextConversation(),
        await Promise[g8(0x3c8)]([g8(0x1ca), g8(0x25a)]['map'](a => startTextSearch(a, !0x1)));
    }
    ),
    $(g5(0x4e5))?.[g5(0x5e7)]('click', () => {
        const g9 = g5;
        TEXT_BRIDGE[g9(0x3e9)] = !TEXT_BRIDGE[g9(0x3e9)],
        localStorage['setItem'](g9(0x161), TEXT_BRIDGE[g9(0x3e9)] ? '1' : '0'),
        renderTextAutoSearch();
    }
    ),
    $(g5(0x1f3))?.['addEventListener'](g5(0x626), async a => {
        const ga = g5
          , b = a['target']['closest']('[data-text-search]');
        if (b)
            return startTextSearch(b[ga(0x2af)][ga(0x26d)]);
        const c = a[ga(0x766)][ga(0x43e)](ga(0x70e));
        if (c) {
            const g = c[ga(0x2af)][ga(0x56e)];
            return TEXT_BRIDGE[ga(0x564)]['delete'](g),
            clearTextSearchFallback(g),
            invoke(ga(0x865), {
                'peer': g,
                'action': ga(0x359),
                'text': null
            })[ga(0x375)](h => toast('' + h, !0x0));
        }
        const d = a[ga(0x766)][ga(0x43e)](ga(0x1ec));
        if (d) {
            TEXT_BRIDGE['target'] = d[ga(0x2af)][ga(0x3ff)],
            $$('[data-text-target]')['forEach'](h => h[ga(0x474)]['toggle'](ga(0x7bf), h === d));
            return;
        }
        const e = a[ga(0x766)][ga(0x43e)](ga(0x22f));
        if (e)
            return forwardTextItem(e[ga(0x2af)]['textForward']);
        const f = a[ga(0x766)]['closest'](ga(0x816));
        if (f)
            return discardTextItem(f[ga(0x2af)]['textDiscard']);
    }
    ),
    $(g5(0x69b))?.['addEventListener'](g5(0x5e3), a => {
        const gb = g5
          , b = a['target'][gb(0x43e)](gb(0x659))
          , c = b && TEXT_BRIDGE['pending'][gb(0x730)](b[gb(0x2af)][gb(0x633)]);
        c && a[gb(0x766)]['matches'](gb(0x569)) && (c[gb(0x5d9)] = a[gb(0x766)][gb(0x5d9)]);
    }
    ),
    $('#textRelayToggle')?.[g5(0x5e7)]('click', () => {
        const gc = g5;
        TEXT_BRIDGE['relay'] = !TEXT_BRIDGE['relay'];
        const a = $(gc(0x15d));
        a['classList'][gc(0x7bb)]('on', TEXT_BRIDGE[gc(0x2ec)]),
        a[gc(0x333)] = gc(0x925) + (TEXT_BRIDGE[gc(0x2ec)] ? gc(0x450) : '\u0432\u044B\u043A\u043B'),
        TEXT_BRIDGE[gc(0x853)][gc(0x78d)](b => scheduleTextItem(b)),
        renderTextQueue();
    }
    ),
    $(g5(0x7b0))?.[g5(0x5e7)](g5(0x71f), a => {
        const gd = g5;
        TEXT_BRIDGE[gd(0x679)] = Math[gd(0x29b)](0x0, Math[gd(0x75f)](0x3c, Number(a[gd(0x766)][gd(0x5d9)]) || 0x0)),
        TEXT_BRIDGE['pending'][gd(0x78d)](b => scheduleTextItem(b)),
        renderTextQueue();
    }
    ),
    $(g5(0x582))?.[g5(0x5e7)](g5(0x626), async () => {
        const ge = g5
          , a = $(ge(0x622))
          , b = String(a?.[ge(0x5d9)] || '')[ge(0x407)]();
        if (!b || TEXT_BRIDGE['manualBusy'])
            return;
        TEXT_BRIDGE[ge(0x286)] = !0x0;
        const c = ge(0x2f2) + Date[ge(0x2d3)]()[ge(0x6dd)](0x24) + Math[ge(0x5b0)]()['toString'](0x24)[ge(0x801)](0x2, 0x7);
        try {
            await sendTextToPane(TEXT_BRIDGE[ge(0x766)], b, c) && (addTextHistory({
                'peer': TEXT_BRIDGE['target'],
                'text': b,
                'manual': !0x0,
                'status': '\u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E'
            }),
            a[ge(0x5d9)] = '');
        } finally {
            TEXT_BRIDGE['manualBusy'] = !0x1;
        }
    }
    ),
    $(g5(0x622))?.['addEventListener'](g5(0x424), a => {
        const gf = g5;
        if (!(a[gf(0xee)] !== gf(0x462) || a[gf(0x1f4)])) {
            if (a[gf(0x815)] || a['metaKey']) {
                a[gf(0x7e1)]();
                const b = a[gf(0x523)]
                  , c = b['selectionStart'] ?? b[gf(0x5d9)]['length']
                  , d = b[gf(0x62f)] ?? c;
                b[gf(0x5d9)][gf(0x64f)] - (d - c) < b['maxLength'] && (b[gf(0x631)]('\x0a', c, d, 'end'),
                b[gf(0xed)](new Event(gf(0x5e3),{
                    'bubbles': !0x0
                })));
            } else
                a[gf(0x7e1)](),
                $('#textManualSend')?.[gf(0x626)]();
        }
    }
    ),
    setInterval( () => {
        const gg = g5;
        TEXT_BRIDGE[gg(0x317)] === gg(0x31a) && TEXT_BRIDGE[gg(0x853)][gg(0x78d)](a => {
            const gh = gg
              , b = $(gh(0x744) + CSS[gh(0x4ab)](a['id']) + '\x22]')?.['querySelector'](gh(0x556));
            b && a[gh(0x4ee)] && (b['textContent'] = Math[gh(0x29b)](0x0, Math[gh(0x4a8)]((a[gh(0x4ee)] - Date[gh(0x2d3)]()) / 0x3e8)) + gh(0xe8));
        }
        );
    }
    , 0x1f4),
    renderTextStates(),
    renderTextQueue(),
    renderTextConversation();
}
function wireSystem() {
    const gi = odf943efb_P;
    $(gi(0x426))['onclick'] = async () => {
        const gj = gi;
        try {
            (await navigator['mediaDevices'][gj(0x2bc)]({
                'audio': !0x0
            }))['getTracks']()[gj(0x78d)](h => h['stop']()),
            await refreshDevices(),
            toast(gj(0xb3));
        } catch {
            toast(gj(0x803), !0x0),
            invoke(gj(0x546), {
                'target': gj(0x373)
            })['catch']( () => {}
            );
        }
    }
    ;
    const a = () => {
        const gk = gi
          , h = document[gk(0x41c)];
        $$(gk(0x879))[gk(0x78d)](i => i[gk(0x474)][gk(0x7bb)]('on', i[gk(0x2af)][gk(0x45d)] === h[gk(0x2af)]['theme']));
    }
    ;
    $$(gi(0x879))['forEach'](h => h[gi(0x882)] = () => {
        const gl = gi;
        setTheme(h[gl(0x2af)]['theme']),
        a();
    }
    ),
    a(),
    wireAppearanceCustom();
    const b = $(gi(0x585));
    b && (b[gi(0x5d9)] = vipChatStyle(),
    b['onchange'] = () => {
        const gm = gi;
        localStorage[gm(0x378)]('vip_chat_style', vipChatStyle(b['value'])),
        applyVipChatStyleUI(),
        toast(gm(0x112));
    }
    ),
    applyVipChatStyleUI(),
    NK['on'](gi(0x8dc), () => {
        const gn = gi;
        NK['state'][gn(0x24a)] !== void 0x0 && NK[gn(0x8dc)][gn(0x24a)] !== state[gn(0x24a)] && (state['svoi'] = NK[gn(0x8dc)][gn(0x24a)],
        buildPaneUI(state[gn(0x59c)]));
    }
    );
    const c = () => +($(gi(0x40c))?.[gi(0x5d9)] || 0x0) || 0x0
      , d = h => {
        const go = gi
          , i = $(go(0x417));
        i && (i['classList']['toggle']('on', h),
        i[go(0x333)] = h ? go(0x1bd) : '\u0410\u0432\u0442\u043E\u043F\u043E\u0438\u0441\u043A\x20\u0432\u044B\u043A\u043B');
    }
    ;
    $(gi(0x40c)) && ($(gi(0x40c))['value'] = localStorage[gi(0x6b6)](gi(0x55b)) || '0'),
    d(localStorage[gi(0x6b6)](gi(0x15a)) === '1'),
    $(gi(0x417))[gi(0x882)] = async () => {
        const gp = gi
          , h = !$(gp(0x417))[gp(0x474)]['contains']('on');
        localStorage[gp(0x378)](gp(0x15a), h ? '1' : '0'),
        d(h);
        try {
            await invoke(gp(0x5b9), {
                'on': h,
                'silence': c()
            }),
            toast(h ? gp(0x8fa) : gp(0x7fd));
        } catch (i) {
            toast('\u041E\u0448\u0438\u0431\u043A\u0430:\x20' + i, !0x0);
        }
    }
    ,
    $(gi(0x40c))[gi(0x1fe)] = () => {
        const gq = gi;
        localStorage['setItem'](gq(0x55b), $('#autoNextSil')[gq(0x5d9)]),
        $('#autoNextBtn')[gq(0x474)][gq(0x3f5)]('on') && invoke('set_auto_next', {
            'on': !0x0,
            'silence': c()
        })['catch']( () => {}
        );
    }
    ,
    invoke(gi(0xad))['then'](async h => {
        const gr = gi
          , i = $(gr(0x229));
        if (i && h) {
            i[gr(0x474)][gr(0x19d)]('on'),
            i[gr(0x333)] = gr(0x763);
            const j = await invoke(gr(0xaf))[gr(0x375)]( () => 0x0);
            startRecTimer(j);
        }
    }
    )[gi(0x375)]( () => {}
    ),
    $(gi(0x229)) && ($(gi(0x229))[gi(0x882)] = async () => {
        const gs = gi
          , h = $(gs(0x229));
        if (h[gs(0x474)][gs(0x3f5)]('on')) {
            h[gs(0x927)] = !0x0;
            try {
                const i = await invoke(gs(0x2f7));
                toast(gs(0xe9) + i[gs(0x7d3)](/[\\/]/)[gs(0x760)]());
            } catch (j) {
                toast('' + j, !0x0);
            }
            h[gs(0x474)][gs(0x6f2)]('on'),
            h[gs(0x333)] = gs(0x72e),
            h[gs(0x927)] = !0x1,
            stopRecTimer(),
            loadRecList();
        } else
            try {
                await invoke(gs(0x3db)),
                h[gs(0x474)][gs(0x19d)]('on'),
                h[gs(0x333)] = gs(0x763),
                startRecTimer(0x0),
                toast('\u0417\u0430\u043F\u0438\u0441\u044C\x20\u043F\u043E\u0448\u043B\u0430');
            } catch (k) {
                toast('' + k, !0x0);
            }
    }
    ),
    $(gi(0x80a)) && ($(gi(0x80a))[gi(0x882)] = () => invoke(gi(0x411))[gi(0x375)](h => toast('' + h, !0x0)));
    const e = () => $$(gi(0x574))[gi(0x78d)](h => h[gi(0x474)]['toggle']('on', h[gi(0x2af)][gi(0x1f5)] === vidFmt()));
    $$(gi(0x574))['forEach'](h => h[gi(0x882)] = () => {
        const gt = gi;
        if (VID['on'])
            return toast(gt(0x1c4), !0x0);
        localStorage['setItem'](gt(0x100), h[gt(0x2af)]['fmt']),
        e();
    }
    ),
    e();
    const f = $('#vidReplayMins');
    f && (f[gi(0x5d9)] = String(vidReplayMins()),
    f[gi(0x1fe)] = () => localStorage[gi(0x378)]('vidReplayMins', f[gi(0x5d9)])),
    $(gi(0x2f6)) && ($(gi(0x2f6))['onclick'] = async () => {
        const gu = gi
          , h = $(gu(0x2f6));
        if (VID['on']) {
            if (VID['mode'] !== 'clip')
                return toast(gu(0x80f), !0x0);
            await stopVideoClip();
        } else {
            h['disabled'] = !0x0;
            let i = !0x1;
            try {
                i = await startVideoClip();
            } catch (j) {
                toast('' + j, !0x0);
            }
            h[gu(0x927)] = !0x1,
            reflectVideoControls(),
            i && VID['on'] && toast(gu(0x84f));
        }
    }
    ),
    $(gi(0x335)) && ($(gi(0x335))[gi(0x882)] = async () => {
        const gv = gi;
        if (VID['on']) {
            if (VID[gv(0x317)] !== gv(0x1fa))
                return toast('\u0421\u0435\u0439\u0447\u0430\u0441\x20\u043F\u0438\u0448\u0435\u0442\u0441\u044F\x20\u043E\u0431\u044B\u0447\u043D\u044B\u0439\x20\u043A\u043B\u0438\u043F', !0x0);
            await stopVideoClip(),
            toast(gv(0x822));
        } else {
            let h = !0x1;
            reflectVideoControls();
            try {
                h = await startVideoReplay();
            } catch (i) {
                toast('' + i, !0x0);
            }
            reflectVideoControls(),
            h && VID['on'] && toast('\u0411\u0443\u0444\u0435\u0440\x20\u0432\u043A\u043B\u044E\u0447\u0451\u043D:\x20\u0434\u0435\u0440\u0436\u0443\x20\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435\x20' + vidReplayMins() + '\x20\u043C\u0438\u043D');
        }
    }
    ),
    $('#vidReplaySave') && ($(gi(0x526))[gi(0x882)] = async () => {
        const gw = gi
          , h = $('#vidReplaySave');
        h[gw(0x927)] = !0x0,
        await saveReplayClip(),
        reflectVideoControls();
    }
    ),
    reflectVideoControls(),
    loadRecList(),
    $(gi(0x7b6)) && ($(gi(0x7b6))[gi(0x882)] = async () => {
        const gx = gi
          , h = $(gx(0x7b6));
        h['disabled'] = !0x0;
        try {
            await invoke(gx(0x1e6)),
            toast(gx(0x14d));
        } catch (i) {
            toast('' + i, !0x0);
        } finally {
            h[gx(0x927)] = !0x1;
        }
    }
    ),
    $(gi(0x121)) && ($(gi(0x121))['onclick'] = async () => {
        const gy = gi
          , h = $(gy(0x121));
        if (h[gy(0x2af)][gy(0x285)] !== '1') {
            h[gy(0x2af)][gy(0x285)] = '1',
            h['classList'][gy(0x19d)]('on'),
            h['innerHTML'] = gy(0x4c3),
            injectIcons(h),
            setTimeout( () => {
                const gz = gy;
                h[gz(0x51e)] && (h[gz(0x2af)]['armed'] = '0',
                h[gz(0x474)][gz(0x6f2)]('on'),
                h[gz(0x870)] = '<span\x20class=\x22btn-ico\x22\x20data-icon=\x22plug\x22></span>\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C\x20\u0432\u0441\u0435\u0445',
                injectIcons(h));
            }
            , 0xbb8);
            return;
        }
        h[gy(0x2af)][gy(0x285)] = '0',
        h[gy(0x474)][gy(0x6f2)]('on'),
        h[gy(0x870)] = gy(0x274),
        injectIcons(h);
        try {
            await invoke(gy(0x452)),
            toast(gy(0x51c));
        } catch (i) {
            toast('' + i, !0x0);
        }
    }
    ),
    $('#freshIdBtn') && ($(gi(0x3c9))[gi(0x882)] = async () => {
        const gA = gi
          , h = $(gA(0x3c9));
        h['disabled'] = !0x0;
        try {
            for (let j = 0x1; j <= state[gA(0x59c)]; j++)
                try {
                    await invoke(gA(0x28c), {
                        'peer': gA(0x22c) + j,
                        'fresh': !0x0
                    });
                } catch {}
            toast(gA(0x1da));
        } finally {
            setTimeout( () => {
                const gB = gA;
                h[gB(0x927)] = !0x1;
            }
            , 0xfa0);
        }
    }
    ),
    $(gi(0x7e4)) && ($(gi(0x7e4))[gi(0x882)] = async () => {
        const gC = gi;
        if (window['confirm'] && !window[gC(0x3aa)]('Перезапустить\x20окна\x20собеседников?\x0a\x0aТекущие\x20разговоры\x20оборвутся.\x20Профили,\x20вход\x20и\x20пройденная\x20капча\x20сохранятся.'))
            return;
        const h = $(gC(0x7e4));
        h[gC(0x927)] = !0x0;
        const i = h[gC(0x333)];
        h[gC(0x333)] = '\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A\u0430\u044E\u2026';
        try {
            await invoke(gC(0x877), {}),
            toast('\u041E\u043A\u043D\u0430\x20\u043F\u0435\u0440\u0435\u0441\u043E\u0437\u0434\u0430\u043D\u044B');
        } catch (j) {
            toast(gC(0x238) + j, !0x0);
        } finally {
            h[gC(0x333)] = i,
            setTimeout( () => {
                const gD = gC;
                h[gD(0x927)] = !0x1;
            }
            , 0x1388);
        }
    }
    );
    const g = h => {
        const gE = gi
          , i = $(gE(0x8b0));
        i && (i[gE(0x474)]['toggle']('on', h),
        i[gE(0x333)] = h ? gE(0x5ab) : gE(0x446));
    }
    ;
    invoke(gi(0x88a))[gi(0x50f)](h => g(!!(h && h['on'])))[gi(0x375)]( () => g(!0x1)),
    $(gi(0x8b0)) && ($(gi(0x8b0))[gi(0x882)] = async () => {
        const gF = gi
          , h = !$(gF(0x8b0))[gF(0x474)][gF(0x3f5)]('on');
        try {
            const i = await invoke(gF(0x7e8), {
                'on': h
            });
            g(!!(i && i['on'])),
            toast(i && i['on'] ? gF(0x21a) : '\u0410\u0432\u0442\u043E-\u0441\u043C\u0435\u043D\u0430\x20\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\x20\u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0430');
        } catch (j) {
            toast(gF(0x72f) + j, !0x0);
        }
    }
    ),
    $(gi(0x4b6))?.['addEventListener'](gi(0x626), h => {
        const gG = gi
          , i = h[gG(0x766)][gG(0x43e)](gG(0x78b));
        if (!i)
            return;
        const j = i[gG(0x2af)][gG(0x698)];
        j === 'all' ? vSel['clear']() : vSel[gG(0x403)](j) ? vSel[gG(0x29f)](j) : (vSel[gG(0x19d)](j),
        vSel[gG(0x6ed)] >= state['paneCount'] && vSel['clear']()),
        reflectVoicesTargets();
    }
    ),
    document[gi(0x5e7)](gi(0x626), async h => {
        const gH = gi
          , i = h['target'][gH(0x43e)]?.(gH(0x470));
        if (i) {
            catchVoice(i[gH(0x2af)][gH(0x375)]);
            return;
        }
        const j = h[gH(0x766)][gH(0x43e)]?.('[data-count]');
        if (j) {
            const l = +j[gH(0x2af)][gH(0x374)];
            if (l > maxPanes()) {
                toast(gH(0xf9) + l + gH(0x3ec) + (l - 0x2) + gH(0x1f0), !0x0);
                return;
            }
            if (l > Math[gH(0x75f)](0x4, maxPanes()) - (state['svoi'] || 0x0)) {
                toast(gH(0x726) + (state['svoi'] || 0x0) + gH(0x3fb), !0x0);
                return;
            }
            buildPaneUI(l);
            try {
                await invoke(gH(0x591), {
                    'count': l
                }),
                toast(gH(0x4e7) + l);
            } catch (m) {
                toast(gH(0x238) + m, !0x0);
            }
            return;
        }
        const k = h[gH(0x766)][gH(0x43e)]?.('[data-svoi]');
        if (k) {
            const o = +k['dataset']['svoi'];
            if (o > Math[gH(0x75f)](0x2, Math[gH(0x75f)](0x4, maxPanes()) - (state[gH(0x59c)] || 0x1))) {
                toast(gH(0x726) + (state[gH(0x59c)] || 0x1) + '\x20nekto.\x20\u0423\u0431\u0430\u0432\u044C\x20nekto\x20\u0438\u043B\u0438\x20\u0431\u0435\u0440\u0438\x20\u043C\u0435\u043D\u044C\u0448\u0435\x20\u0441\u0432\u043E\u0438\u0445.', !0x0);
                return;
            }
            try {
                const p = await invoke(gH(0x741), {
                    'count': o
                });
                state[gH(0x24a)] = p && p[gH(0x24a)] != null ? p[gH(0x24a)] : o,
                buildPaneUI(p && p[gH(0x170)] != null ? p[gH(0x170)] : state[gH(0x59c)]),
                toast(gH(0x67d) + state[gH(0x24a)]);
            } catch (q) {
                toast(gH(0x238) + q, !0x0);
            }
            return;
        }
    }
    ),
    document[gi(0x5e7)]('change', async h => {
        const gI = gi
          , i = h['target'][gI(0x43e)]?.(gI(0x570));
        if (!i)
            return;
        const j = i['dataset']['src']
          , k = +j[gI(0x801)](0x4) - 0x1;
        if (i[gI(0x5d9)] === gI(0x24a)) {
            toast(gI(0x7be), !0x0),
            buildPaneUI(state[gI(0x59c)]);
            return;
        }
        const l = i[gI(0x5d9)] === gI(0x3d4) ? gI(0x2e3) : i[gI(0x5d9)];
        let m;
        if (l === gI(0x2e3) && (m = window[gI(0x706)] && window[gI(0x706)]('\u0410\u0434\u0440\u0435\u0441\x20\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\x20(https://\u2026)', gI(0x8e7)) || '',
        !/^https:\/\//['test'](m))) {
            buildPaneUI(state[gI(0x59c)]);
            return;
        }
        try {
            const n = await invoke(gI(0x246), {
                'peer': j,
                'service': l,
                'url': m
            });
            state[gI(0xe5)][k] = n && n[gI(0x2e3)] || m || SRC_PRESETS[gI(0x170)],
            buildPaneUI(state[gI(0x59c)]),
            toast(gI(0x330) + (k + 0x1) + ':\x20' + srcKey(state[gI(0xe5)][k]));
        } catch (o) {
            toast(gI(0x238) + o, !0x0),
            buildPaneUI(state['paneCount']);
        }
    }
    ),
    document[gi(0x5e7)](gi(0x626), h => {
        const gJ = gi
          , i = h[gJ(0x766)][gJ(0x43e)]?.(gJ(0x4cd));
        if (i) {
            const j = $(gJ(0x23c) + i[gJ(0x2af)]['proxy'] + '\x22]');
            if ($$(gJ(0x290))[gJ(0x78d)](k => {
                const gK = gJ;
                k !== j && k[gK(0x474)][gK(0x6f2)](gK(0x4dd));
            }
            ),
            j && (j[gJ(0x474)][gJ(0x7bb)](gJ(0x4dd)),
            j['classList']['contains'](gJ(0x4dd)))) {
                const k = j[gJ(0x577)](gJ(0x904));
                k && k['focus']();
            }
            return;
        }
        h[gJ(0x766)][gJ(0x43e)]?.('.pane-proxy-pop') || $$(gJ(0x290))[gJ(0x78d)](l => l[gJ(0x474)]['remove'](gJ(0x4dd)));
    }
    ),
    document['addEventListener']('click', async h => {
        const gL = gi
          , i = h[gL(0x766)][gL(0x43e)]?.(gL(0x92a));
        if (!i)
            return;
        const j = i[gL(0x71a)](gL(0x4cb))
          , k = i[gL(0x2af)][gL(0x58d)] || i[gL(0x2af)][gL(0x8f1)]
          , l = $(gL(0x5c3) + k + '\x22]')
          , m = j ? '' : l && l[gL(0x5d9)][gL(0x407)]() || '';
        try {
            await invoke(gL(0x44c), {
                'peer': k,
                'proxy': m
            }),
            paneProxySet(k, m);
            const n = $(gL(0x51d) + k + '\x22]');
            n && (n['textContent'] = m ? gL(0x48f) : gL(0x198),
            n[gL(0x474)][gL(0x7bb)]('on', !!m));
            const o = $('[data-proxy=\x22' + k + '\x22]');
            o && o[gL(0x474)][gL(0x7bb)]('on', !!m),
            l && (l['value'] = m);
            const p = $(gL(0x23c) + k + '\x22]');
            p && p[gL(0x474)][gL(0x6f2)]('show'),
            toast(m ? gL(0x252) + k[gL(0x801)](0x4) + gL(0x8a1) : '\u041E\u043A\u043D\u043E\x20' + k[gL(0x801)](0x4) + gL(0x324));
        } catch (q) {
            toast(gL(0x238) + q, !0x0);
        }
    }
    ),
    $$(gi(0x8fc))[gi(0x78d)](h => h[gi(0x882)] = () => invoke(gi(0x546), {
        'target': h[gi(0x2af)][gi(0x451)]
    })),
    $$(gi(0x41e))[gi(0x78d)](h => h[gi(0x882)] = () => showView(h[gi(0x2af)][gi(0x774)])),
    $$(gi(0x71c))[gi(0x78d)](h => h['onclick'] = () => showView(h[gi(0x2af)]['goto'])),
    wireTextBridge();
}
const LICENSE_API = odf943efb_P(0x188)
  , BOT_URL = 'https://t.me/nektomeme_bot'
  , licOff = () => LICENSE_API['includes'](odf943efb_P(0x469))
  , maxPanes = () => Math['max'](0x1, Math[odf943efb_P(0x75f)](0x4, +(localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x7f7)) || 0x2)))
  , VIP_CHAT_STYLES = new Set(['soft', odf943efb_P(0x593), odf943efb_P(0x728), odf943efb_P(0x7a6), odf943efb_P(0x796)]);
function vipChatStyle(a=localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x2dd))) {
    const gM = odf943efb_P;
    return a = String(a || gM(0x211))[gM(0x407)]()['toLowerCase'](),
    VIP_CHAT_STYLES[gM(0x403)](a) ? a : gM(0x211);
}
function isVipAccount() {
    return maxPanes() > 0x2;
}
function applyVipChatStyleUI() {
    const gN = odf943efb_P
      , a = $(gN(0x477))
      , b = $(gN(0x585));
    a && (a['style']['display'] = isVipAccount() ? '' : gN(0x902)),
    b && b[gN(0x5d9)] !== vipChatStyle() && (b['value'] = vipChatStyle());
}
function devId() {
    const gO = odf943efb_P;
    let a = localStorage['getItem'](gO(0x3ba));
    return a || (a = crypto[gO(0x483)] ? crypto[gO(0x483)]() : Date[gO(0x2d3)]() + '.' + Math['random'](),
    localStorage[gO(0x378)](gO(0x3ba), a)),
    a;
}
async function apiPost(a, b) {
    const gP = odf943efb_P
      , c = await fetch(LICENSE_API['replace'](/\/$/, '') + a, {
        'method': gP(0x86f),
        'headers': {
            'content-type': gP(0x21e)
        },
        'body': JSON[gP(0x53f)](b),
        'cache': gP(0x614)
    });
    let d;
    try {
        d = await c['json']();
    } catch {
        d = null;
    }
    if (!c['ok']) {
        const e = new Error(d?.[gP(0x63a)] || d?.['reason'] || 'status\x20' + c[gP(0x366)]);
        throw e['code'] = d?.[gP(0x63a)] || d?.[gP(0x5d1)] || gP(0x1bb),
        e[gP(0x366)] = c[gP(0x366)],
        e;
    }
    return d;
}
let _turnUntil = 0x0
  , _turnTimer = 0x0
  , _turnRefreshing = !0x1
  , _turnMode = odf943efb_P(0x853);
async function refreshTurnRoute() {
    const gQ = odf943efb_P;
    if (_turnRefreshing)
        return;
    _turnRefreshing = !0x0;
    let a = 0x7530;
    try {
        const b = localStorage[gQ(0x6b6)]('lic_token') || '';
        if (!b) {
            _turnUntil = 0x0,
            await invoke(gQ(0x551)),
            _turnMode = 'fallback:no_token',
            a = 0xea60;
            return;
        }
        const c = await apiPost(gQ(0x2ce), {
            'token': b,
            'device': devId()
        });
        if (!c?.['ok'] || !/^(turn|turns):/['test'](c[gQ(0x2e3)] || '') || !c['username'] || !c['credential'])
            throw new Error(c?.[gQ(0x5d1)] || gQ(0x3bb));
        await invoke(gQ(0x4ac), {
            'url': c['url'],
            'username': c[gQ(0x39c)],
            'credential': c[gQ(0x7af)]
        }),
        _turnMode = gQ(0x58e),
        _turnUntil = Math[gQ(0x29b)](Date['now']() + 0x927c0, (+c['expires'] || 0x0) * 0x3e8),
        a = Math[gQ(0x29b)](0x493e0, Math[gQ(0x75f)](0x1b7740, _turnUntil - Date['now']() - 0xdbba0));
    } catch {
        (!_turnUntil || Date[gQ(0x2d3)]() >= _turnUntil - 0x1d4c0) && (_turnUntil = 0x0,
        await invoke('set_turn_fallback')[gQ(0x375)]( () => {}
        ),
        _turnMode = 'fallback:api_or_expired');
    } finally {
        _turnRefreshing = !0x1,
        clearTimeout(_turnTimer),
        _turnTimer = setTimeout(refreshTurnRoute, a);
    }
}
const licActive = () => {
    const gR = odf943efb_P
      , a = localStorage['getItem']('lic_until');
    return !!a && Date[gR(0x2d3)]() < Date[gR(0x46a)](a);
}
;
window['__nkTampered'] = !0x1,
window[odf943efb_P(0x90d)] = null;
function nkApplyVerifiedEnt(a) {
    const gS = odf943efb_P;
    !a || typeof a != gS(0x5a3) || a['ok'] !== !0x0 || (window[gS(0x90d)] = {
        'ok': !0x0,
        'act': a[gS(0x7d7)],
        'adm': a[gS(0x7c2)],
        'panes': a[gS(0x8ba)]
    },
    nkRecomputeTamper());
}
function nkRecomputeTamper() {
    const gT = odf943efb_P
      , a = window[gT(0x90d)];
    let b = !0x1;
    if (a && a['ok'] === !0x0) {
        const c = localStorage[gT(0x6b6)]('lic_admin') === '1' && a['adm'] === !0x1
          , d = +(localStorage['getItem'](gT(0x7f7)) || 0x0) > 0x2 && typeof a[gT(0x8ba)] == 'number' && a[gT(0x8ba)] <= 0x2
          , e = licActive() && a[gT(0x7d7)] === !0x1;
        b = c || d || e;
    }
    if (window[gT(0x1ad)] !== b) {
        window['__nkTampered'] = b;
        try {
            window[gT(0xed)](new CustomEvent(gT(0x1d9),{
                'detail': b
            }));
        } catch {}
    }
}
function updateTrialBanner() {
    const gU = odf943efb_P
      , a = $(gU(0x3d7));
    if (!a)
        return;
    const b = localStorage['getItem'](gU(0x55e))
      , c = localStorage[gU(0x6b6)]('lic_until');
    if (b === gU(0x2b1) && c && Date[gU(0x2d3)]() < Date[gU(0x46a)](c)) {
        const d = Math[gU(0x29b)](0x0, Math[gU(0x4a8)]((Date[gU(0x46a)](c) - Date[gU(0x2d3)]()) / 0xea60));
        $('#trialText')['textContent'] = gU(0x3a0) + d + '\x20\u043C\u0438\u043D',
        a[gU(0x474)][gU(0x19d)]('show');
    } else
        a[gU(0x474)]['remove'](gU(0x4dd));
}
let youtubePromoTimer = 0x0
  , youtubeChecking = !0x1;
const youtubeSubscribed = () => localStorage[odf943efb_P(0x6b6)]('youtube_subscriber') === '1'
  , youtubeAvailable = () => localStorage['getItem'](odf943efb_P(0x304)) === '1';
function applyYoutubeStatus(a) {
    const gV = odf943efb_P;
    !a || typeof a['youtube_available'] != gV(0x3d0) || (localStorage['setItem'](gV(0x304), a[gV(0x304)] ? '1' : '0'),
    localStorage[gV(0x378)]('youtube_subscriber', a[gV(0x8e2)] ? '1' : '0'),
    a[gV(0x2e2)] && localStorage[gV(0x378)]('youtube_channel_url', a[gV(0x2e2)]),
    a[gV(0x3f9)] && localStorage['setItem'](gV(0x3f9), a[gV(0x3f9)]),
    renderYoutubePromo(),
    maybeShowYoutubePromo());
}
function renderYoutubePromo() {
    const gW = odf943efb_P
      , a = localStorage[gW(0x6b6)]('youtube_promo_text');
    a && ($(gW(0x611)) && ($(gW(0x611))['textContent'] = a),
    $(gW(0x58a)) && ($(gW(0x58a))[gW(0x333)] = a));
    const b = youtubeAvailable() && !!localStorage[gW(0x6b6)]('lic_token') && !youtubeSubscribed();
    $('#youtubeBar')?.[gW(0x474)][gW(0x7bb)](gW(0x4dd), b),
    b || $(gW(0x294))?.['classList']['remove'](gW(0x4dd));
}
function maybeShowYoutubePromo() {
    const gX = odf943efb_P;
    clearTimeout(youtubePromoTimer),
    !(!youtubeAvailable() || youtubeSubscribed() || !localStorage['getItem'](gX(0x811)) || localStorage[gX(0x6b6)](gX(0x914))) && (youtubePromoTimer = setTimeout( () => {
        const gY = gX;
        $(gY(0x78f))?.[gY(0x474)][gY(0x3f5)](gY(0x4dd)) || $(gY(0x836))?.[gY(0x474)][gY(0x3f5)](gY(0x4dd)) || (localStorage[gY(0x378)](gY(0x914), '1'),
        $(gY(0x294))?.[gY(0x474)][gY(0x19d)](gY(0x4dd)));
    }
    , 0x384));
}
function openYoutubeChannel() {
    const gZ = odf943efb_P
      , a = localStorage[gZ(0x6b6)](gZ(0x2e2)) || gZ(0x4bd);
    invoke(gZ(0x546), {
        'target': a
    })[gZ(0x375)]( () => {}
    );
}
function setYoutubeChecking(a) {
    const h0 = odf943efb_P;
    youtubeChecking = a,
    [$(h0(0x918)), $('#youtubePromoOpen'), $(h0(0x427)), $(h0(0x2f9))]['filter'](Boolean)[h0(0x78d)](b => b[h0(0x927)] = a),
    [$('#youtubeVerify'), $('#youtubePromoVerify')]['filter'](Boolean)[h0(0x78d)](b => {
        const h1 = h0;
        b[h1(0x333)] = a ? '\u041F\u0440\u043E\u0432\u0435\u0440\u044F\u044E\u2026' : h1(0x89e);
    }
    );
}
function setYoutubeCheckingText(a) {
    const h2 = odf943efb_P;
    [$(h2(0x427)), $('#youtubePromoVerify')][h2(0x7a8)](Boolean)[h2(0x78d)](b => {
        const h3 = h2;
        b[h3(0x333)] = a;
    }
    );
}
async function verifyYoutubeSubscription() {
    const h4 = odf943efb_P;
    if (youtubeChecking)
        return;
    const a = localStorage[h4(0x6b6)](h4(0x811)) || '';
    if (!a)
        return toast('\u0421\u043D\u0430\u0447\u0430\u043B\u0430\x20\u0432\u043E\u0439\u0434\u0438\x20\u0447\u0435\u0440\u0435\u0437\x20Telegram', !0x0);
    setYoutubeChecking(!0x0);
    try {
        const b = await apiPost('/youtube/start', {
            'token': a
        });
        if (b[h4(0x366)] === h4(0x531) && b[h4(0x8e2)])
            return localStorage[h4(0x378)](h4(0x8e2), '1'),
            renderYoutubePromo(),
            toast(h4(0x554));
        if (!b['ok'] || !b['channel_url'] || !b[h4(0x8dc)]) {
            const c = b[h4(0x5d1)] === 'not_configured' ? h4(0x6d3) : b[h4(0x5d1)] === h4(0x173) ? h4(0x68f) : h4(0x720);
            throw new Error(c);
        }
        invoke(h4(0x546), {
            'target': b[h4(0x242)]
        })[h4(0x375)]( () => {}
        ),
        toast('\u041F\u043E\u0434\u043F\u0438\u0448\u0438\u0441\u044C\x20\u043D\u0430\x20\u043A\u0430\u043D\u0430\u043B\x20\u2014\x20\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\x20\u0443\u0436\u0435\x20\u043D\u0430\u0447\u0430\u043B\u0430\u0441\u044C');
        for (let d = 0x0; d < 0x3c; d++) {
            await new Promise(g => setTimeout(g, 0x7d0));
            const e = await apiPost(h4(0x584), {
                'token': a,
                'state': b['state']
            });
            if (!e['ok'])
                continue;
            if (e[h4(0x366)] === 'queued') {
                setYoutubeCheckingText(e['queue_position'] ? h4(0x804) + e[h4(0x1ab)] : h4(0x38e));
                continue;
            }
            if (e[h4(0x366)] === 'pending') {
                setYoutubeCheckingText('\u0416\u0434\u0443\x20\u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443\u2026');
                continue;
            }
            if (e['status'] === h4(0x531) && e[h4(0x8e2)]) {
                localStorage[h4(0x378)](h4(0x8e2), '1'),
                renderYoutubePromo(),
                toast(h4(0x4a4)),
                refreshStatus();
                return;
            }
            const f = {
                'expired': h4(0x5e0),
                'error': h4(0x710)
            };
            throw new Error(f[e['status']] || h4(0x12a));
        }
        throw new Error('\u0412\u0440\u0435\u043C\u044F\x20\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438\x20\u0438\u0441\u0442\u0435\u043A\u043B\u043E.\x20\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\x20\u0435\u0449\u0451\x20\u0440\u0430\u0437.');
    } catch (g) {
        toast(g?.[h4(0x835)] || String(g), !0x0);
    } finally {
        setYoutubeChecking(!0x1);
    }
}
function wireYoutubePromo() {
    const h5 = odf943efb_P;
    [$('#youtubeOpen'), $(h5(0x146)), $(h5(0x427)), $(h5(0x2f9))][h5(0x7a8)](Boolean)['forEach'](a => a[h5(0x882)] = verifyYoutubeSubscription),
    $(h5(0x12c)) && ($('#youtubePromoClose')[h5(0x882)] = () => $(h5(0x294))?.[h5(0x474)][h5(0x6f2)](h5(0x4dd))),
    renderYoutubePromo();
}
const niceDateTime = a => {
    const h6 = odf943efb_P;
    if (!a)
        return '';
    const b = new Date(a);
    return isNaN(b) ? '' : b['toLocaleString']('ru-RU', {
        'day': h6(0x283),
        'month': h6(0x283),
        'hour': h6(0x283),
        'minute': h6(0x283)
    });
}
  , niceUntil = () => niceDateTime(localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x6bb)));
function futureIso(a) {
    const h7 = odf943efb_P
      , b = a ? Date[h7(0x46a)](a) : NaN;
    return Number[h7(0x3ac)](b) && b > Date[h7(0x2d3)]() ? a : '';
}
function accessLeftText(a) {
    const h8 = odf943efb_P
      , b = Date[h8(0x46a)](a || '');
    if (!Number[h8(0x3ac)](b))
        return '';
    const c = Math[h8(0x29b)](0x0, Math[h8(0x4a8)]((b - Date['now']()) / 0xea60))
      , d = Math[h8(0x8a9)](c / 0x5a0)
      , e = Math[h8(0x8a9)](c % 0x5a0 / 0x3c)
      , f = c % 0x3c;
    return d >= 0x2 ? d + h8(0x5e6) + e + '\x20ч' : d === 0x1 ? '1\x20д\x20' + e + '\x20ч' : e > 0x0 ? e + h8(0x5fb) + f + h8(0x8e3) : f + h8(0x8e3);
}
function storeAuthResult(a) {
    const h9 = odf943efb_P;
    if (a[h9(0xb5)]) {
        localStorage[h9(0x378)](h9(0x811), a[h9(0xb5)]);
        try {
            document['cookie'] = h9(0x807) + encodeURIComponent(a[h9(0xb5)]) + h9(0x76c) + (location['protocol'] === h9(0x12e) ? ';secure' : '');
        } catch {}
    }
    a[h9(0x422)] ? localStorage[h9(0x378)](h9(0x6bb), a[h9(0x422)]) : localStorage[h9(0x791)](h9(0x6bb)),
    a[h9(0x50c)] ? localStorage['setItem']('lic_vip_until', a['vip_until']) : localStorage[h9(0x791)]('lic_vip_until'),
    localStorage[h9(0x378)](h9(0x55e), a['reason'] || h9(0x902)),
    a[h9(0x5df)] && localStorage[h9(0x378)](h9(0x5b6), a[h9(0x5df)]),
    a['ref_link'] ? localStorage['setItem']('ref_link', a[h9(0x351)]) : localStorage[h9(0x791)](h9(0x351)),
    localStorage[h9(0x378)](h9(0x484), String(a[h9(0x484)] || 0x0)),
    localStorage[h9(0x378)](h9(0x919), JSON[h9(0x53f)](a['rewards'] || [])),
    localStorage[h9(0x378)](h9(0x113), a['is_admin'] ? '1' : '0'),
    localStorage[h9(0x378)]('lic_max_panes', String(a['max_panes'] || 0x2)),
    localStorage[h9(0x378)]('auth_kind', a[h9(0x34d)] || 'telegram'),
    localStorage[h9(0x378)](h9(0x463), a[h9(0x463)] === !0x1 ? '0' : '1'),
    localStorage['setItem'](h9(0x20b), JSON[h9(0x53f)](a['author'] || {
        'status': h9(0x902)
    })),
    a[h9(0x228)] ? licUsage = {
        ...a[h9(0x228)],
        'at': Date[h9(0x2d3)]()
    } : a[h9(0x5d1)] !== h9(0x487) && (licUsage = null),
    a[h9(0x51a)] && (localStorage[h9(0x378)]('lic_ent', a['ent']),
    invoke(h9(0x334), {
        'ent': a['ent'],
        'pv': a['pv']
    })[h9(0x50f)](nkApplyVerifiedEnt)[h9(0x375)]( () => {}
    )),
    applyVipChatStyleUI(),
    applyAppearance(),
    applyAppearanceUI();
}
function applyAccount() {
    const ha = odf943efb_P
      , a = localStorage[ha(0x6b6)](ha(0x5b6))
      , b = !!localStorage[ha(0x6b6)](ha(0x811))
      , c = $(ha(0x5ee))
      , d = $(ha(0x917))
      , e = $(ha(0x39a))
      , f = localStorage[ha(0x6b6)](ha(0x55e))
      , g = futureIso(localStorage[ha(0x6b6)]('lic_vip_until'))
      , h = licOff() ? ha(0x249) : b ? g ? 'VIP\x20\u0434\u043E\x20' + niceDateTime(g) : licActive() ? (f === ha(0x2b1) ? ha(0x737) : '\u0434\u043E\u0441\u0442\u0443\u043F\x20\u0434\u043E\x20') + niceUntil() : ha(0x695) : ha(0x49a);
    c && (c['textContent'] = a ? '@' + a : b ? '\u0422\u044B' : ha(0x31c)),
    d && (d[ha(0x333)] = h),
    e && (e['textContent'] = b ? ha(0x828) : ha(0x10e));
    const i = $(ha(0x627))
      , j = $(ha(0x54f))
      , k = $('#sideSub');
    i && (i[ha(0x333)] = a ? a[0x0]['toUpperCase']() : '?'),
    j && (j[ha(0x333)] = a ? '@' + a : ha(0x31c)),
    k && (k[ha(0x333)] = h);
    const l = $('#sideLogout');
    l && (l['hidden'] = !b),
    applyVipChatStyleUI(),
    applyAppearance(),
    applyAppearanceUI();
    const m = $('#nickRow');
    m && (m[ha(0x84b)][ha(0x390)] = b && !licOff() && localStorage['getItem'](ha(0x34d)) !== 'direct' ? '' : 'none');
    const n = $(ha(0x338));
    n && (n[ha(0x84b)][ha(0x390)] = b && !licOff() ? '' : 'none');
    const o = $(ha(0x51f));
    o && document['activeElement'] !== o && (o[ha(0x5d9)] = a || '');
}
const NICK_RE = /^[A-Za-zА-Яа-яЁё0-9_]{3,16}$/;
function nickError(a) {
    const hb = odf943efb_P;
    return a[hb(0x64f)] < 0x3 ? hb(0x28d) : a[hb(0x64f)] > 0x10 ? hb(0x62e) : NICK_RE[hb(0x7d0)](a) ? '' : hb(0x825);
}
function wireNick() {
    const hc = odf943efb_P
      , a = $(hc(0x51f))
      , b = $(hc(0x3ed));
    !a || !b || (b[hc(0x882)] = async () => {
        const hd = hc
          , c = (a[hd(0x5d9)] || '')[hd(0x407)]()
          , d = nickError(c);
        if (d)
            return toast(hd(0x629) + d, !0x0);
        if (c === localStorage['getItem']('lic_nick'))
            return toast(hd(0x5b3));
        b[hd(0x927)] = !0x0;
        const f = b[hd(0x333)];
        b[hd(0x333)] = '\u2026';
        try {
            const g = await apiPost(hd(0x516), {
                'token': localStorage[hd(0x6b6)](hd(0x811)) || '',
                'nick': c
            });
            if (g['ok'])
                localStorage[hd(0x378)](hd(0x5b6), g['nick'] || c),
                applyAccount(),
                toast(hd(0x8c8) + (g[hd(0x5df)] || c));
            else {
                const h = {
                    'taken': hd(0x643),
                    'bad': '\u0422\u043E\u043B\u044C\u043A\u043E\x20\u0431\u0443\u043A\u0432\u044B,\x20\u0446\u0438\u0444\u0440\u044B\x20\u0438\x20_,\x203\u201316\x20\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432',
                    'no_session': '\u0421\u0435\u0441\u0441\u0438\u044F\x20\u0438\u0441\u0442\u0435\u043A\u043B\u0430\x20\u2014\x20\u0432\u043E\u0439\u0434\u0438\x20\u0437\u0430\u043D\u043E\u0432\u043E'
                }[g[hd(0x63a)]] || hd(0x528);
                toast(h, !0x0);
            }
        } catch (i) {
            toast('' + i, !0x0);
        } finally {
            b[hd(0x927)] = !0x1,
            b[hd(0x333)] = f;
        }
    }
    ,
    a[hc(0x5e7)]('keydown', c => {
        const he = hc;
        c[he(0xee)] === 'Enter' && (c[he(0x7e1)](),
        b['click']());
    }
    ));
}
let _appLocked = null;
function setAppLocked(a) {
    _appLocked !== a && (_appLocked = a,
    invoke('set_app_locked', {
        'locked': a
    })['catch']( () => {}
    ));
}
function applyLicenseUI() {
    const hf = odf943efb_P;
    if (applyAccount(),
    licOff()) {
        $(hf(0x78f))?.['classList']['remove'](hf(0x4dd)),
        $(hf(0x3d7))?.[hf(0x474)][hf(0x6f2)](hf(0x4dd)),
        setAppLocked(!0x1),
        maybeEarlyMicPrompt();
        return;
    }
    const a = licActive()
      , b = !!localStorage[hf(0x6b6)](hf(0x811));
    $(hf(0x78f))?.[hf(0x474)][hf(0x7bb)](hf(0x4dd), !a),
    setAppLocked(!a || usageBlocked);
    const c = $('#licLogin')
      , d = $(hf(0x653))
      , e = $('#licMsg')
      , f = $(hf(0x67f))
      , g = $('#licAccountState')
      , h = $(hf(0x169));
    if (c && d && e && f && g) {
        if (f['style']['display'] = b ? hf(0x902) : '',
        g[hf(0x84b)][hf(0x390)] = b ? '' : hf(0x902),
        !b)
            c[hf(0x333)] = hf(0x6a7),
            d[hf(0x84b)][hf(0x390)] = hf(0x902),
            e[hf(0x333)] = hf(0x82c);
        else {
            if (!a) {
                const i = localStorage[hf(0x6b6)](hf(0x55e)) === hf(0x2e5)
                  , j = localStorage[hf(0x6b6)]('auth_kind') !== 'direct';
                d[hf(0x84b)][hf(0x390)] = i || !j ? hf(0x902) : '',
                h && (h[hf(0x333)] = '@' + (localStorage[hf(0x6b6)](hf(0x5b6)) || hf(0x2a1))),
                e[hf(0x333)] = i ? '\u0414\u043E\u0441\u0442\u0443\u043F\x20\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\x20\u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u043E\u043C.\x20\u0415\u0441\u043B\u0438\x20\u044D\u0442\u043E\x20\u043E\u0448\u0438\u0431\u043A\u0430\x20\u2014\x20\u043D\u0430\u043F\u0438\u0448\u0438\x20\u0432\x20\u0431\u043E\u0442\u0430.' : hf(0x1d0);
            }
        }
    }
    updateTrialBanner(),
    maybeEarlyMicPrompt();
}
async function refreshStatus() {
    const hg = odf943efb_P
      , a = localStorage[hg(0x6b6)](hg(0x6bc));
    if (a && invoke(hg(0x334), {
        'ent': a
    })[hg(0x50f)](nkApplyVerifiedEnt)[hg(0x375)]( () => {}
    ),
    licOff()) {
        invoke('set_licensed', {
            'on': !0x0
        })[hg(0x375)]( () => {}
        ),
        applyLicenseUI();
        return;
    }
    const b = localStorage[hg(0x6b6)](hg(0x811));
    if (b)
        try {
            const c = await apiPost(hg(0x673), {
                'token': b,
                'device': devId()
            });
            storeAuthResult(c),
            applyRef(),
            applyAdmin();
            try {
                const d = await invoke(hg(0x104))
                  , e = maxPanes();
                d > e ? (await invoke(hg(0x591), {
                    'count': e
                }),
                buildPaneUI(e)) : buildPaneUI(d);
            } catch {}
        } catch {}
    licTick(),
    enforceUsage();
}
function applyRef() {
    const hh = odf943efb_P
      , a = localStorage[hh(0x6b6)](hh(0x351)) || ''
      , b = localStorage[hh(0x6b6)](hh(0x463)) !== '0'
      , c = +(localStorage[hh(0x6b6)](hh(0x484)) || '0')
      , d = $(hh(0xbc));
    d && (d[hh(0x333)] = b ? a || (licOff() ? '\u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F\x20\u043F\u043E\u0441\u043B\u0435\x20\u0437\u0430\u043F\u0443\u0441\u043A\u0430\x20\u0441\u0435\u0440\u0432\u0435\u0440\u0430' : '\u0412\u043E\u0439\u0434\u0438\x20\u0447\u0435\u0440\u0435\u0437\x20Telegram,\x20\u0438\x20\u0442\u0443\u0442\x20\u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F\x20\u0442\u0432\u043E\u044F\x20\u0441\u0441\u044B\u043B\u043A\u0430') : hh(0x6a1)),
    $(hh(0x134)) && ($(hh(0x134))[hh(0x927)] = !a),
    $('#refShare') && ($('#refShare')['disabled'] = !a);
    const e = $('#refChip');
    e && (e[hh(0x84b)][hh(0x390)] = a ? '' : 'none',
    e['textContent'] = pluralFriends(c)),
    renderAuthorCard(),
    applyRewards();
}
function pluralFriends(a) {
    const hi = odf943efb_P;
    return a + (a % 0xa === 0x1 && a % 0x64 !== 0xb ? hi(0x226) : a % 0xa >= 0x2 && a % 0xa <= 0x4 && (a % 0x64 < 0xa || a % 0x64 >= 0x14) ? hi(0x609) : hi(0x6f6));
}
function applyRewards() {
    const hj = odf943efb_P
      , a = $(hj(0x5c0));
    if (!a)
        return;
    let b = [];
    try {
        b = JSON['parse'](localStorage['getItem'](hj(0x919)) || '[]');
    } catch {}
    const c = +(localStorage['getItem'](hj(0x484)) || '0');
    if (!b[hj(0x64f)]) {
        a['innerHTML'] = '';
        const f = $(hj(0x2be));
        f && (f[hj(0x333)] = '');
        return;
    }
    const d = b[hj(0x3d5)](g => !g[hj(0x513)]);
    a['innerHTML'] = b[hj(0x50d)](g => {
        const hk = hj
          , h = !!g[hk(0x513)]
          , i = d && g['n'] === d['n']
          , j = 'reward-tier' + (h ? '\x20done' : i ? hk(0x1dd) : c >= g['n'] ? '' : hk(0x83e))
          , k = g['kind'] === hk(0x568) ? '<div\x20class=\x22rt-medal\x20rt-gift\x22>\u{1F381}</div>' : hk(0x37b)
          , l = g[hk(0x68e)] === hk(0x568) && g[hk(0x131)] ? hk(0x264) + g['stars'] + hk(0x225) : ''
          , m = h ? hk(0x798) + iconSvg(hk(0x1df)) + hk(0x780) : hk(0x88f) + pluralFriends(g['n']) + hk(0x780);
        return hk(0x732) + j + '\x22><div\x20class=\x22rt-medal-wrap\x22>' + k + hk(0x364) + escapeHtml(g[hk(0x757)]) + '\x20' + l + hk(0x2db) + escapeHtml(g[hk(0x708)] || '') + hk(0x537) + m + hk(0x780);
    }
    )[hj(0x29a)](''),
    injectIcons(a);
    const e = $(hj(0x2be));
    e && (e[hj(0x333)] = d ? hj(0x3fa) + c + hj(0x808) + pluralFriends(d['n']) + '.' : 'Уже\x20приглашено:\x20' + c + hj(0x621));
}
function getAuthorState() {
    const hl = odf943efb_P;
    try {
        return JSON[hl(0x46a)](localStorage['getItem'](hl(0x20b)) || hl(0x77c));
    } catch {
        return {
            'status': hl(0x902)
        };
    }
}
function setAuthorState(a) {
    const hm = odf943efb_P;
    localStorage[hm(0x378)](hm(0x20b), JSON['stringify'](a || {
        'status': 'none'
    })),
    renderAuthorCard();
}
function rub(a) {
    const hn = odf943efb_P;
    return (Math[hn(0x7c9)]((+a || 0x0) * 0x64) / 0x64)[hn(0x32e)]('ru-RU') + '\x20\u20BD';
}
function renderAuthorCard() {
    const ho = odf943efb_P
      , a = $(ho(0x23b));
    if (!a)
        return;
    const b = getAuthorState()
      , c = b[ho(0x366)] || ho(0x902)
      , d = b['stats'] || {};
    a[ho(0x84b)][ho(0x390)] = c === ho(0x902) ? 'none' : '',
    c === ho(0x773) ? a[ho(0x870)] = ho(0x491) + (d[ho(0x78e)] || 0x0) + '</b><small>приглашено</small></span><span><b>' + (d[ho(0x17c)] || 0x0) + ho(0x651) + rub(d['earned_rub'] || 0x0) + ho(0x133) + (d[ho(0x4b2)] || 0x0) + ho(0x669) : c === ho(0x853) || b[ho(0x856)] ? a['innerHTML'] = ho(0x1d3) : c === ho(0x52f) && (a[ho(0x870)] = '<div\x20class=\x22author-card-head\x22><b>Заявка\x20отклонена</b><span\x20class=\x22au-badge\x20ban\x22>отклонено</span></div><p\x20class=\x22muted\x20sm\x22>' + escapeHtml(b[ho(0x6af)] || '\u041C\u043E\u0436\u043D\u043E\x20\u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C\x20\u0437\u0430\u044F\u0432\u043A\u0443\x20\u0437\u0430\u043D\u043E\u0432\u043E\x20\u0441\x20\u0434\u0440\u0443\u0433\u0438\u043C\u0438\x20\u0441\u0441\u044B\u043B\u043A\u0430\u043C\u0438.') + ho(0x386)),
    $('#authorEdit', a)?.[ho(0x5e7)](ho(0x626), () => openAuthorModal());
}
function fillAuthorModal() {
    const hp = odf943efb_P
      , a = getAuthorState()
      , b = a[hp(0x856)] || a[hp(0x12f)] || {};
    $(hp(0x13b)) && ($(hp(0x13b))[hp(0x5d9)] = b[hp(0x15f)] || ''),
    $(hp(0x110)) && ($(hp(0x110))[hp(0x5d9)] = b[hp(0x39e)] || ''),
    $(hp(0x18c)) && ($(hp(0x18c))[hp(0x5d9)] = b[hp(0xbb)] || ''),
    $(hp(0x48b)) && ($(hp(0x48b))['value'] = b[hp(0x1db)] || '');
    const c = $(hp(0x41b));
    c && (c[hp(0x333)] = a[hp(0x366)] === hp(0x773) ? hp(0x71d) : '\u0414\u043E\u0431\u0430\u0432\u044C\x20\u0445\u043E\u0442\u044F\x20\u0431\u044B\x20TikTok\x20\u0438\u043B\u0438\x20YouTube.');
}
function openAuthorModal() {
    const hq = odf943efb_P;
    if (!localStorage[hq(0x6b6)](hq(0x811)))
        return toast('\u0421\u043D\u0430\u0447\u0430\u043B\u0430\x20\u0432\u043E\u0439\u0434\u0438\x20\u0432\x20\u0430\u043A\u043A\u0430\u0443\u043D\u0442', !0x0);
    fillAuthorModal(),
    $('#authorModal')?.[hq(0x474)][hq(0x19d)]('show');
}
async function submitAuthorRequest() {
    const hr = odf943efb_P
      , a = localStorage[hr(0x6b6)](hr(0x811)) || '';
    if (!a)
        return toast('\u0421\u043D\u0430\u0447\u0430\u043B\u0430\x20\u0432\u043E\u0439\u0434\u0438\x20\u0432\x20\u0430\u043A\u043A\u0430\u0443\u043D\u0442', !0x0);
    const b = {
        'youtube': ($(hr(0x13b))?.[hr(0x5d9)] || '')['trim'](),
        'tiktok': ($(hr(0x110))?.[hr(0x5d9)] || '')[hr(0x407)](),
        'telegram': ($(hr(0x18c))?.[hr(0x5d9)] || '')[hr(0x407)](),
        'other': ($(hr(0x48b))?.[hr(0x5d9)] || '')[hr(0x407)]()
    }
      , c = $(hr(0xde));
    c && (c['disabled'] = !0x0);
    try {
        const d = await apiPost(hr(0x174), {
            'token': a,
            'action': hr(0x86b),
            'links': b
        });
        if (!d['ok'])
            return toast(d[hr(0x63a)] || hr(0x1b0), !0x0);
        setAuthorState(d[hr(0x220)]),
        $(hr(0x122))?.[hr(0x474)][hr(0x6f2)]('show'),
        toast(hr(0x699));
    } catch (f) {
        toast(f?.[hr(0x835)] || String(f), !0x0);
    } finally {
        c && (c[hr(0x927)] = !0x1);
    }
}
function wireRef() {
    const hs = odf943efb_P;
    $(hs(0x134)) && ($(hs(0x134))[hs(0x882)] = async () => {
        const ht = hs
          , a = localStorage[ht(0x6b6)](ht(0x351));
        if (!a)
            return toast(ht(0x1a9), !0x0);
        try {
            await navigator['clipboard'][ht(0x59b)](a),
            toast(ht(0xc4));
        } catch {
            toast(ht(0x482), !0x0);
        }
    }
    ),
    $(hs(0x4d5)) && ($(hs(0x4d5))[hs(0x882)] = () => {
        const hu = hs
          , a = localStorage[hu(0x6b6)]('ref_link');
        if (!a)
            return toast(hu(0x1a9), !0x0);
        invoke(hu(0x546), {
            'target': hu(0xff) + encodeURIComponent(a) + '&text=' + encodeURIComponent('\u0417\u0430\u043B\u0435\u0442\u0430\u0439\x20\u0432\x20NektoMeme,\x20\u0442\u0443\u0442\x20\u0441\u0432\u043E\u0434\u044F\u0442\x20\u043D\u0435\u0437\u043D\u0430\u043A\u043E\u043C\u0446\u0435\u0432\x20\u0441\x20nekto.me\x20\u0432\x20\u043E\u0434\u0438\u043D\x20\u0433\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439\x20\u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\x20\u{1F60E}')
        })['catch']( () => {}
        );
    }
    ),
    $(hs(0x18a)) && ($(hs(0x18a))['onclick'] = openAuthorModal),
    $(hs(0x8f5)) && ($(hs(0x8f5))[hs(0x882)] = () => $('#authorModal')?.[hs(0x474)][hs(0x6f2)]('show')),
    $(hs(0x122)) && ($(hs(0x122))['onclick'] = a => {
        const hv = hs;
        a[hv(0x766)]['id'] === hv(0x901) && $(hv(0x122))?.[hv(0x474)][hv(0x6f2)](hv(0x4dd));
    }
    ),
    $(hs(0xde)) && ($(hs(0xde))[hs(0x882)] = submitAuthorRequest),
    renderAuthorCard(),
    applyRef();
}
const isAdmin = () => localStorage[odf943efb_P(0x6b6)](odf943efb_P(0x113)) === '1';
function applyAdmin() {
    const hw = odf943efb_P
      , a = $(hw(0x26f));
    a && (a[hw(0x84b)][hw(0x390)] = isAdmin() ? '' : hw(0x902));
}
const admPost = (a, b={}) => apiPost(a, {
    'token': localStorage[odf943efb_P(0x6b6)]('lic_token') || '',
    ...b
});
async function admMsgAct(a, b) {
    const hx = odf943efb_P;
    try {
        const c = await admPost(hx(0x308), {
            'id': a,
            'act': b,
            'minutes': 0xf
        });
        if (!c['ok'])
            return toast(c['err'] || hx(0x528), !0x0);
        toast(b === hx(0x4d0) ? '\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\x20\u0443\u0434\u0430\u043B\u0435\u043D\u043E' : b === hx(0x7bc) ? hx(0x75d) : hx(0x1e0));
    } catch (d) {
        toast('' + d, !0x0);
    }
}
async function admLoadStats() {
    const hy = odf943efb_P
      , a = $(hy(0x1f7));
    if (a)
        try {
            const b = await admPost(hy(0x841));
            if (!b['ok'])
                throw new Error(b['err'] || hy(0x5bf));
            const c = [[hy(0x3c8), hy(0x2da), b[hy(0x3dd)]], [hy(0x487), hy(0x415), b['paid']], [hy(0x2a5), hy(0x60c), b[hy(0x2a5)]], ['banned', '\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438', b['banned']], ['youtube', hy(0x543), b[hy(0x15f)]], [hy(0x341), hy(0x259), b['authors'] || 0x0], [hy(0x341), hy(0x89c), b[hy(0x721)] || 0x0], [hy(0x3c8), hy(0x27c), b[hy(0x2f3)] || 0x0], ['all', hy(0x5fa), b[hy(0x88c)] || 0x0]];
            a[hy(0x870)] = c['map']( ([d,g,h]) => hy(0x40a) + (admFilter === d ? hy(0x1aa) : '') + '\x22\x20data-filter=\x22' + d + hy(0x307) + h + hy(0x680) + g + hy(0xb0))['join'](''),
            a[hy(0xb6)](hy(0x883))[hy(0x78d)](d => d['onclick'] = () => setAdmFilter(d[hy(0x2af)][hy(0x7a8)]));
        } catch (d) {
            a[hy(0x870)] = '<span\x20class=\x22muted\x20sm\x22>Не\x20удалось\x20загрузить:\x20' + escapeHtml('' + d) + hy(0x225);
        }
}
function admUserRow(a) {
    const hz = odf943efb_P
      , b = document['createElement'](hz(0x7df));
    b['className'] = 'adm-user';
    const c = (a['admin'] ? '<span\x20class=\x22au-badge\x20adm\x22>\u0430\u0434\u043C\u0438\u043D</span>' : '') + (a['banned'] ? '<span\x20class=\x22au-badge\x20ban\x22>\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D</span>' : '') + (a['muted'] ? hz(0x3be) : '') + (a['vip'] ? hz(0x2ca) : '') + (a[hz(0x7bf)] ? hz(0x1f6) : '') + (a[hz(0x8e2)] ? hz(0x3a8) : '') + (a['author_status'] === hz(0x773) ? hz(0x5e2) : a[hz(0x630)] === hz(0x853) ? '<span\x20class=\x22au-badge\x20mute\x22>\u0437\u0430\u044F\u0432\u043A\u0430\x20\u0430\u0432\u0442\u043E\u0440\u0430</span>' : '') + (a[hz(0x610)]?.['balance'] ? hz(0x215) + a[hz(0x610)]['balance'] + hz(0x28f) : '') + (a[hz(0x610)]?.['frozen'] ? hz(0x69c) : '') + (a[hz(0x34d)] === 'direct' ? hz(0x505) : '') + (a[hz(0x7bd)] === !0x1 ? hz(0x79b) : a['online'] ? hz(0x612) : '')
      , e = a[hz(0x422)] ? new Date(a[hz(0x422)])[hz(0x32e)](hz(0x907), {
        'day': '2-digit',
        'month': hz(0x283),
        'hour': hz(0x283),
        'minute': hz(0x283)
    }) : ''
      , f = a[hz(0x50c)] ? new Date(a[hz(0x50c)])[hz(0x32e)](hz(0x907), {
        'day': hz(0x283),
        'month': hz(0x283),
        'hour': '2-digit',
        'minute': hz(0x283)
    }) : ''
      , g = a['invited'] ? '<span\x20class=\x22au-invited\x22\x20title=\x22пригласил\x22>↳\x20' + a[hz(0x78e)] + hz(0x225) : '';
    return b['innerHTML'] = hz(0x7ea) + avaLook(a[hz(0x5df)]) + '>' + escapeHtml(initials(a[hz(0x5df)])) + '</span>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22au-meta\x22><b>@' + escapeHtml(a[hz(0x5df)] || '?') + hz(0x36a) + a['tg_id'] + (e ? hz(0x2f4) + e : '') + (f ? hz(0x87f) + f : '') + hz(0x203) + c + hz(0x343) + g + hz(0x668) + (a['auth_kind'] === hz(0x231) ? '' : hz(0x521) + a[hz(0x1c0)] + hz(0x5f2)) + '\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20au-dm\x20au-more\x22\x20data-au-more\x20title=\x22Действия\x20над\x20пользователем\x22><span\x20data-icon=\x22sliders\x22></span></button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22au-actions\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-g=\x221\x22>+1д</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-g=\x227\x22>+7д</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-g=\x2230\x22>+30д</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-g=\x220\x22>Снять\x20доступ</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-vip=\x227\x22>VIP\x20+7</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-vip=\x2230\x22>VIP\x20+30</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-vip=\x220\x22>Снять\x20VIP</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-coins=\x22regular\x22>+100\x20монет</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-coins=\x22bonus\x22>+100\x20бонусных</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-wallet-freeze=\x22' + (a[hz(0x610)]?.[hz(0x1d8)] ? 0x0 : 0x1) + '\x22>' + (a[hz(0x610)]?.['frozen'] ? '\u0420\u0430\u0437\u043C\u043E\u0440\u043E\u0437\u0438\u0442\u044C\x20\u043A\u043E\u0448\u0435\u043B\u0451\u043A' : hz(0x778)) + '</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20sm\x22\x20data-m=\x22' + (a[hz(0x497)] ? 0x0 : 0xf) + '\x22>' + (a[hz(0x497)] ? hz(0x788) : '\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0442\u044C\x2015\x20\u043C\u0438\u043D') + hz(0x23e) + (a[hz(0x2e5)] ? '\x20on' : '') + hz(0x688) + (a[hz(0x2e5)] ? 0x0 : 0x1) + '\x22>' + (a[hz(0x2e5)] ? hz(0x3bd) : hz(0x189)) + hz(0x586),
    injectIcons(b),
    b[hz(0x882)] = async h => {
        const hA = hz
          , i = h['target'][hA(0x43e)](hA(0x73f));
        if (i) {
            if (i[hA(0x2af)][hA(0x790)] !== void 0x0) {
                b[hA(0x474)][hA(0x7bb)](hA(0x8c7));
                return;
            }
            if (i['dataset']['dm'] !== void 0x0) {
                openTgDm(i[hA(0x2af)]['dm'], a[hA(0x5df)]);
                return;
            }
            i[hA(0x927)] = !0x0;
            try {
                let j;
                i[hA(0x2af)]['g'] !== void 0x0 ? j = await admPost(hA(0x2a7), {
                    'tg_id': a[hA(0x1c0)],
                    'days': +i[hA(0x2af)]['g']
                }) : i[hA(0x2af)][hA(0x685)] !== void 0x0 ? j = await admPost('/admin/vip', {
                    'tg_id': a[hA(0x1c0)],
                    'days': +i[hA(0x2af)][hA(0x685)]
                }) : i[hA(0x2af)][hA(0x90c)] !== void 0x0 ? j = await admPost(hA(0x608), {
                    'tg_id': a[hA(0x1c0)],
                    'action': hA(0x4d7),
                    'amount': 0x64,
                    'bucket': i[hA(0x2af)][hA(0x90c)]
                }) : i[hA(0x2af)][hA(0x11a)] !== void 0x0 ? j = await admPost(hA(0x608), {
                    'tg_id': a[hA(0x1c0)],
                    'action': 'freeze',
                    'on': !!+i['dataset'][hA(0x11a)]
                }) : i[hA(0x2af)]['m'] !== void 0x0 ? j = await admPost('/admin/mute', {
                    'tg_id': a[hA(0x1c0)],
                    'minutes': +i['dataset']['m']
                }) : i['dataset']['b'] !== void 0x0 && (j = await admPost(hA(0x13e), {
                    'tg_id': a[hA(0x1c0)],
                    'on': !!+i[hA(0x2af)]['b']
                })),
                j && !j['ok'] ? toast(j['err'] || hA(0x528), !0x0) : (toast(hA(0x7e0)),
                admLoadUsers($(hA(0x7a7))?.[hA(0x5d9)] || ''),
                admLoadStats());
            } catch (k) {
                toast('' + k, !0x0);
            } finally {
                i[hA(0x927)] = !0x1;
            }
        }
    }
    ,
    b;
}
let admSort = odf943efb_P(0x847)
  , admFilter = 'all';
function setAdmFilter(a) {
    const hB = odf943efb_P;
    admFilter = a || 'all',
    $$('#admFilter\x20button')['forEach'](b => b[hB(0x474)]['toggle']('on', b[hB(0x2af)][hB(0x7a8)] === admFilter)),
    $$(hB(0x313))[hB(0x78d)](b => b[hB(0x474)]['toggle']('on', b[hB(0x2af)][hB(0x7a8)] === admFilter)),
    $('#admBulkCategory') && ($(hB(0x819))['value'] = admFilter),
    admLoadUsers($(hB(0x7a7))?.[hB(0x5d9)] || '');
}
async function admRunBulk(a) {
    const hC = odf943efb_P
      , b = $(hC(0x819))?.[hC(0x5d9)] || 'all'
      , c = a === hC(0x568) ? 0x0 : Math[hC(0x8a9)](+($(hC(0x2b0))?.['value'] || 0x0));
    if (a !== 'gift' && (c < 0x1 || c > 0xe42))
        return toast(hC(0x311), !0x0);
    const d = $$(hC(0x4bc));
    d[hC(0x78d)](e => e[hC(0x927)] = !0x0);
    try {
        const e = await admPost(hC(0x51b), {
            'category': b,
            'action': a,
            'days': c,
            'preview': !0x0
        });
        if (!e['ok'])
            return toast(e[hC(0x63a)] || hC(0x926), !0x0);
        if (!e[hC(0x374)])
            return toast(hC(0x45c), !0x0);
        const f = $(hC(0x819))?.['selectedOptions']?.[0x0]?.[hC(0x333)] || b
          , g = a === hC(0x568) ? hC(0x876) + e['count'] + hC(0x61b) + f + hC(0x8a4) + e[hC(0xfa)] + '\x20Stars.' : hC(0x479) + (a === 'vip' ? hC(0x648) : hC(0x32a)) + hC(0x75c) + c + hC(0x5ca) + f + '»\x20(' + e[hC(0x374)] + ')?';
        if (window[hC(0x3aa)] && !window['confirm'](g))
            return;
        const h = await admPost('/admin/bulk', {
            'category': b,
            'action': a,
            'days': c,
            'confirm_token': e['token']
        });
        if (!h['ok'])
            return toast(h['err'] || hC(0x6e6), !0x0);
        toast(a === 'gift' ? hC(0x24e) + h[hC(0x275)] + hC(0x572) + h['failed'] : hC(0x52d) + h[hC(0x374)] + hC(0x769) + h['notified']),
        admLoadStats(),
        admLoadUsers($(hC(0x7a7))?.[hC(0x5d9)] || '');
    } catch (i) {
        toast(i?.[hC(0x835)] || String(i), !0x0);
    } finally {
        d[hC(0x78d)](j => j[hC(0x927)] = !0x1);
    }
}
let _codeBatches = []
  , _codeFilter = odf943efb_P(0x7bf)
  , _codeShowAll = !0x1;
const CODE_BATCH_LIMIT = 0x8;
function codeBatchState(a) {
    const hD = odf943efb_P;
    return a[hD(0x509)] ? hD(0x509) : a['used'] >= a[hD(0x374)] ? hD(0x534) : hD(0x7bf);
}
function renderCodeBatches(a) {
    const hE = odf943efb_P
      , b = $(hE(0x13a));
    if (!b)
        return;
    Array[hE(0x5a5)](a) && (_codeBatches = a);
    const c = _codeBatches || []
      , d = {
        'all': c['length'],
        'active': 0x0,
        'done': 0x0,
        'revoked': 0x0
    };
    c['forEach'](m => d[codeBatchState(m)]++);
    const e = d[_codeFilter] === 0x0 && d[hE(0x3c8)] > 0x0 ? hE(0x3c8) : _codeFilter
      , f = e === hE(0x3c8) ? c : c['filter'](m => codeBatchState(m) === e)
      , g = _codeShowAll ? f : f[hE(0x801)](0x0, CODE_BATCH_LIMIT)
      , h = (m, n) => hE(0x293) + (e === m ? '\x20on' : '') + hE(0x62c) + m + '\x22>' + n + '\x20' + d[m] + hE(0x1a7)
      , i = c[hE(0x64f)] ? '<div\x20class=\x22adm-code-head\x22>\x0a\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22adm-code-filters\x22>' + h(hE(0x7bf), hE(0x5fd)) + h(hE(0x534), hE(0x579)) + h(hE(0x509), hE(0x5f0)) + h('all', '\u0412\u0441\u0435') + '</div>\x0a\x20\x20\x20\x20\x20</div>' : ''
      , j = g[hE(0x50d)](m => {
        const hF = hE
          , n = new Date(m[hF(0x8ee)])[hF(0x257)](hF(0x907), {
            'day': hF(0x283),
            'month': hF(0x283),
            'year': hF(0x283)
        })
          , o = m[hF(0x80c)] ? '\x20\xB7\x20\u0434\u043E\x20' + new Date(m[hF(0x80c)])[hF(0x257)](hF(0x907), {
            'day': '2-digit',
            'month': hF(0x283)
        }) : ''
          , p = Math[hF(0x29b)](0x0, m[hF(0x374)] - m[hF(0x35e)]);
        return '<div\x20class=\x22adm-code-batch' + (m[hF(0x509)] ? hF(0x190) : '') + hF(0x38f) + (m[hF(0x68e)] === hF(0x685) ? hF(0x648) : hF(0x415)) + hF(0x3b5) + m[hF(0x5a2)] + hF(0x7e5) + n + o + hF(0x663) + m['used'] + hF(0x800) + m['count'] + hF(0x54c) + (!m[hF(0x509)] && m[hF(0x35e)] < m['count'] ? hF(0x745) + p + hF(0x76d) + m[hF(0x40b)] + hF(0x32d) : hF(0xb7) + (m[hF(0x509)] ? hF(0x6f5) : 'bot') + '\x22>' + (m[hF(0x509)] ? '\u043E\u0442\u043E\u0437\u0432\u0430\u043D\u0430' : '\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0430') + hF(0x225)) + hF(0x780);
    }
    )[hE(0x29a)]('')
      , k = f['length'] > g['length'] ? '<button\x20type=\x22button\x22\x20class=\x22btn\x20sm\x20adm-code-more\x22\x20data-code-more>Показать\x20все\x20·\x20ещё\x20' + (f[hE(0x64f)] - g[hE(0x64f)]) + hE(0x1a7) : _codeShowAll && f[hE(0x64f)] > CODE_BATCH_LIMIT ? hE(0x734) : '';
    b['innerHTML'] = c[hE(0x64f)] ? i + j + k : hE(0x837),
    b[hE(0xb6)]('[data-code-filter]')[hE(0x78d)](m => m[hE(0x882)] = () => {
        const hG = hE;
        _codeFilter = m[hG(0x2af)][hG(0x247)],
        _codeShowAll = !0x1,
        renderCodeBatches();
    }
    );
    const l = b[hE(0x577)](hE(0x65d));
    l && (l[hE(0x882)] = () => {
        const hH = hE;
        _codeShowAll = l['dataset'][hH(0x4b3)] !== hH(0x796),
        renderCodeBatches();
    }
    ),
    b[hE(0xb6)](hE(0x545))[hE(0x78d)](m => m[hE(0x882)] = async () => {
        const hI = hE;
        if (!(window['confirm'] && !window[hI(0x3aa)](hI(0x21f)))) {
            m[hI(0x927)] = !0x0;
            try {
                const n = await admPost(hI(0x7e9), {
                    'action': 'revoke',
                    'batch_id': m[hI(0x2af)][hI(0x7fb)]
                });
                if (!n['ok'])
                    throw new Error(n[hI(0x63a)]);
                renderCodeBatches(n[hI(0x163)]),
                toast(hI(0x22e) + n[hI(0x509)]);
            } catch (o) {
                toast(o[hI(0x835)] || String(o), !0x0),
                m['disabled'] = !0x1;
            }
        }
    }
    );
}
async function admLoadCodes() {
    const hJ = odf943efb_P;
    if (isAdmin())
        try {
            const a = await admPost(hJ(0x7e9), {
                'action': hJ(0x35f)
            });
            a['ok'] && renderCodeBatches(a[hJ(0x163)]);
        } catch {}
}
async function admGenerateCodes() {
    const hK = odf943efb_P
      , a = $(hK(0x8f9))?.['value'] || 'access'
      , b = Math[hK(0x8a9)](+($(hK(0x3fe))?.[hK(0x5d9)] || 0x0))
      , c = Math['floor'](+($(hK(0x89f))?.[hK(0x5d9)] || 0x0))
      , d = Math[hK(0x8a9)](+($(hK(0x63c))?.[hK(0x5d9)] || 0x0));
    if (b < 0x1 || b > 0xe42 || c < 0x1 || c > 0x64)
        return toast(hK(0x79c), !0x0);
    const f = $(hK(0x11e));
    f[hK(0x927)] = !0x0;
    try {
        const g = await admPost(hK(0x7e9), {
            'action': hK(0x5c8),
            'kind': a,
            'days': b,
            'count': c,
            'expires_days': d
        });
        if (!g['ok'])
            return toast(g[hK(0x63a)] || hK(0x167), !0x0);
        $('#admCodeOutput')['value'] = g['codes'][hK(0x29a)]('\x0a'),
        $(hK(0x619))[hK(0x333)] = c + hK(0x2fa) + (a === hK(0x685) ? hK(0x648) : hK(0x55d)) + hK(0x3b5) + b + hK(0x689),
        $(hK(0x647))['style'][hK(0x390)] = '',
        renderCodeBatches(g[hK(0x163)]),
        toast(hK(0x69d));
    } catch (h) {
        toast(h[hK(0x835)] || String(h), !0x0);
    } finally {
        f[hK(0x927)] = !0x1;
    }
}
function openTgDm(a) {
    const hL = odf943efb_P;
    invoke('open_external', {
        'target': 'tg://user?id=' + a
    })[hL(0x375)]( () => {}
    );
}
async function admLoadUsers(a) {
    const hM = odf943efb_P
      , b = $(hM(0x217));
    if (!b)
        return;
    b[hM(0x870)] = hM(0x5cf);
    const c = $('#admCount');
    try {
        const d = await admPost(hM(0x270), {
            'q': a || '',
            'sort': admSort,
            'filter': admFilter
        });
        if (!d['ok'])
            throw new Error(d[hM(0x63a)] || hM(0x5bf));
        if (b[hM(0x870)] = '',
        c && (c['textContent'] = typeof d[hM(0x292)] == hM(0x792) ? d['shown'] + hM(0x800) + d[hM(0x292)] : ''),
        !d[hM(0x3dd)][hM(0x64f)]) {
            b[hM(0x870)] = hM(0x44e);
            return;
        }
        _admUsers = d[hM(0x3dd)],
        _admUserLimit = ADM_USER_PAGE,
        renderAdmUsers();
    } catch (f) {
        b[hM(0x870)] = hM(0x8b1) + escapeHtml('' + f) + hM(0x225);
    }
}
let _admUsers = []
  , _admUserLimit = 0x28;
const ADM_USER_PAGE = 0x28;
function renderAdmUsers() {
    const hN = odf943efb_P
      , a = $(hN(0x217));
    if (!a)
        return;
    a[hN(0x870)] = '',
    _admUsers[hN(0x801)](0x0, _admUserLimit)['forEach'](c => a['appendChild'](admUserRow(c)));
    const b = _admUsers[hN(0x64f)] - _admUserLimit;
    if (b > 0x0) {
        const c = document[hN(0x4b4)]('button');
        c[hN(0x3c7)] = hN(0x73f),
        c['className'] = hN(0x26a),
        c['textContent'] = 'Показать\x20ещё\x20·\x20осталось\x20' + b,
        c[hN(0x882)] = () => {
            _admUserLimit += ADM_USER_PAGE,
            renderAdmUsers();
        }
        ,
        a['appendChild'](c);
    }
}
function authorLinksHtml(a) {
    const hO = odf943efb_P
      , b = Object[hO(0x8ac)](a || {})[hO(0x7a8)]( ([,c]) => c);
    return b[hO(0x64f)] ? b[hO(0x50d)]( ([c,d]) => hO(0x3d6) + escapeHtml(d) + '\x22>' + escapeHtml(c) + ':\x20' + escapeHtml(d) + hO(0x764))[hO(0x29a)]('') : hO(0x362);
}
function admAuthorRow(b) {
    const hP = odf943efb_P
      , c = document['createElement'](hP(0x7df));
    c[hP(0x4a9)] = hP(0x2de) + (b[hP(0x856)] ? hP(0x145) : '');
    const e = b[hP(0x856)] || b[hP(0x12f)] || {}
      , f = b[hP(0x848)] || {}
      , g = b[hP(0x856)] ? '\u043D\u043E\u0432\u044B\u0435\x20\u0441\u0441\u044B\u043B\u043A\u0438' : b[hP(0x366)] === 'approved' ? hP(0x33c) : b[hP(0x366)] === 'rejected' ? hP(0x7f1) : hP(0x47c);
    return c[hP(0x870)] = hP(0x401) + escapeHtml(b['nick'] || '?') + hP(0x1d6) + b[hP(0x1c0)] + hP(0x3b5) + g + '</span><div\x20class=\x22aa-links\x22>' + authorLinksHtml(e) + hP(0x132) + (f[hP(0x78e)] || 0x0) + hP(0x2fc) + (f[hP(0x17c)] || 0x0) + hP(0x8e5) + rub(f[hP(0x230)] || 0x0) + hP(0x31e),
    c[hP(0xb6)](hP(0x459))['forEach'](h => h['addEventListener'](hP(0x626), i => {
        const hQ = hP;
        i[hQ(0x7e1)](),
        invoke(hQ(0x546), {
            'target': h[hQ(0x2af)]['openUrl']
        })['catch']( () => {}
        );
    }
    )),
    c[hP(0xb6)]('[data-author-act]')[hP(0x78d)](h => h['addEventListener'](hP(0x626), async () => {
        const hR = hP;
        h[hR(0x927)] = !0x0;
        try {
            const i = await admPost(hR(0x300), {
                'action': h[hR(0x2af)]['authorAct'],
                'tg_id': b['tg_id']
            });
            if (!i['ok'])
                return toast(i[hR(0x63a)] || hR(0x528), !0x0);
            toast(h[hR(0x2af)]['authorAct'] === 'approve' ? '\u0410\u0432\u0442\u043E\u0440\x20\u043E\u0434\u043E\u0431\u0440\u0435\u043D' : hR(0x8e6)),
            admLoadAuthors(),
            admLoadUsers($(hR(0x7a7))?.['value'] || ''),
            admLoadStats();
        } catch (j) {
            toast(j?.[hR(0x835)] || String(j), !0x0);
        } finally {
            h[hR(0x927)] = !0x1;
        }
    }
    )),
    c;
}
async function admLoadAuthors() {
    const hS = odf943efb_P;
    if (!isAdmin())
        return;
    const a = $('#admAuthors');
    if (a) {
        a[hS(0x870)] = hS(0x2ea);
        try {
            const b = await admPost(hS(0x300), {
                'action': hS(0x35f)
            });
            if (!b['ok'])
                throw new Error(b[hS(0x63a)] || hS(0x5bf));
            if (a[hS(0x870)] = '',
            !b[hS(0x341)]?.[hS(0x64f)]) {
                a['innerHTML'] = hS(0x87b);
                return;
            }
            b[hS(0x341)][hS(0x78d)](c => a['appendChild'](admAuthorRow(c)));
        } catch (c) {
            a[hS(0x870)] = hS(0x8b1) + escapeHtml('' + c) + hS(0x225);
        }
    }
}
function updateAdminPollState() {
    const hT = odf943efb_P
      , a = $(hT(0x5a9));
    if (!a)
        return;
    if (!activeChatPoll) {
        a[hT(0x474)][hT(0x19d)](hT(0x497)),
        a[hT(0x870)] = hT(0x58b);
        return;
    }
    const b = Object[hT(0x235)](activeChatPoll['counts'] || {})[hT(0x4f6)]( (d, e) => d + (+e || 0x0), 0x0)
      , c = Math['max'](0x0, Math[hT(0x4a8)](((activeChatPoll[hT(0x183)] || 0x0) * 0x3e8 - Date[hT(0x2d3)]()) / 0xea60));
    a['classList'][hT(0x6f2)](hT(0x497)),
    a[hT(0x870)] = hT(0x419) + escapeHtml(activeChatPoll[hT(0x67a)] || '\u041E\u043F\u0440\u043E\u0441') + '\x20<span>' + b + '\x20голосов,\x20осталось\x20' + c + hT(0x7a4);
}
async function admLoadPoll() {
    const hU = odf943efb_P;
    if (isAdmin())
        try {
            const a = await admPost(hU(0x284), {
                'action': hU(0x730)
            });
            a['ok'] && (activeChatPoll = a['poll'] || null,
            renderChatPoll(),
            updateAdminPollState());
        } catch {}
}
function admLoad() {
    const hV = odf943efb_P;
    !isAdmin() || licOff() || (admLoadStats(),
    admLoadUsers($('#admSearch')?.[hV(0x5d9)] || ''),
    admLoadPacks(),
    admLoadCodes(),
    admLoadAuthors(),
    admLoadPoll());
}
let treeData = [];
const treeCollapsed = new Set();
async function openTree() {
    const hW = odf943efb_P;
    if (!isAdmin() || licOff())
        return;
    try {
        await invoke(hW(0x4b8), {
            'on': !0x0
        });
    } catch {}
    $('#treeModal')?.[hW(0x474)][hW(0x19d)](hW(0x4dd));
    const a = $(hW(0x28e));
    a && (a[hW(0x870)] = hW(0x641)),
    await loadTree();
}
function closeTree() {
    const hX = odf943efb_P;
    $(hX(0x834))?.[hX(0x474)][hX(0x6f2)](hX(0x4dd));
    const a = $(hX(0x8e1));
    a && (a[hX(0x5d9)] = ''),
    invoke(hX(0x4b8), {
        'on': !0x1
    })[hX(0x375)]( () => {}
    );
}
async function loadTree() {
    const hY = odf943efb_P;
    try {
        const a = await admPost('/admin/reftree');
        if (!a['ok'])
            throw new Error(a[hY(0x63a)] || hY(0x5bf));
        treeData = a[hY(0x3dd)] || [];
        for (const b of treeCollapsed)
            treeData[hY(0x20c)](c => String(c[hY(0x1c0)]) === b) || treeCollapsed[hY(0x29f)](b);
        renderTree($(hY(0x8e1))?.['value'] || '');
    } catch (c) {
        const d = $('#treeWrap');
        d && (d['innerHTML'] = hY(0x8b1) + escapeHtml('' + c) + hY(0x225));
    }
}
function renderTree(a) {
    const hZ = odf943efb_P
      , b = $('#treeWrap');
    if (!b)
        return;
    const c = {};
    treeData[hZ(0x78d)](o => c[o[hZ(0x1c0)]] = Object['assign']({}, o, {
        'kids': []
    }));
    const d = [];
    treeData[hZ(0x78d)](o => {
        const i0 = hZ
          , p = c[o['tg_id']];
        o[i0(0x71b)] && c[o[i0(0x71b)]] ? c[o[i0(0x71b)]]['kids'][i0(0x255)](p) : d[i0(0x255)](p);
    }
    );
    const e = (a || '')[hZ(0x407)]()['toLowerCase']()
      , g = o => !e || ('@' + (o['nick'] || ''))[hZ(0x860)]()[hZ(0x74e)](e) || ('' + o[hZ(0x1c0)])[hZ(0x74e)](e)
      , h = new Map();
    function i(o, p=new Set()) {
        const i1 = hZ
          , q = String(o[i1(0x1c0)]);
        if (h[i1(0x403)](q))
            return h[i1(0x730)](q);
        if (p['has'](q))
            return 0x0;
        p[i1(0x19d)](q);
        const r = o[i1(0x758)][i1(0x4f6)]( (s, t) => s + 0x1 + i(t, p), 0x0);
        return p[i1(0x29f)](q),
        h[i1(0xf3)](q, r),
        r;
    }
    Object[hZ(0x235)](c)[hZ(0x78d)](o => o['branchTotal'] = i(o));
    const j = (o, p) => p['branchTotal'] - o[hZ(0x7b1)] || p['kids'][hZ(0x64f)] - o[hZ(0x758)][hZ(0x64f)] || String(o[hZ(0x5df)] || '')[hZ(0x64a)](String(p[hZ(0x5df)] || ''), 'ru');
    function k(o, p, q=0x0) {
        const i2 = hZ;
        o[i2(0x758)]['sort'](j);
        const r = o[i2(0x758)]['map'](B => k(B, !0x1, q + 0x1))[i2(0x7a8)](Boolean);
        if (e && !g(o) && !r[i2(0x64f)])
            return '';
        const s = '<span\x20class=\x22tn-ava\x22' + (p ? '' : avaLook(o[i2(0x5df)])) + '>' + escapeHtml(initials(o['nick'])) + i2(0x225)
          , t = String(o[i2(0x1c0)])
          , v = !e && treeCollapsed[i2(0x403)](t)
          , w = o['kids'][i2(0x64f)] ? i2(0x8f3) + t + '\x22\x20aria-expanded=\x22' + (v ? i2(0x4f4) : i2(0x7b2)) + '\x22\x20title=\x22' + (v ? i2(0x634) : i2(0x4c1)) + i2(0x273) : i2(0x218)
          , x = '' + (o[i2(0x7bf)] ? i2(0x6e4) : '') + (o[i2(0x2e5)] ? i2(0x1ff) : '') + (o[i2(0x34d)] === 'direct' ? i2(0x55c) : '') + (p ? '<span\x20class=\x22tn-status\x20root-mark\x22>\u041D\u0430\u0447\u0430\u043B\u043E\x20\u0432\u0435\u0442\u043A\u0438</span>' : '')
          , y = o[i2(0x758)][i2(0x64f)] ? '<span\x20class=\x22tn-count\x22><b>' + o['kids'][i2(0x64f)] + i2(0x680) + (o[i2(0x758)][i2(0x64f)] === 0x1 ? i2(0x88d) : '\u043F\u0440\u0438\u0433\u043B\u0430\u0448\u0435\u043D\u043E') + i2(0x225) + (o[i2(0x7b1)] > o[i2(0x758)][i2(0x64f)] ? i2(0x761) + o[i2(0x7b1)] + i2(0x805) : '') + i2(0x225) : ''
          , z = '<div\x20class=\x22tree-row\x22\x20data-depth=\x22' + q + '\x22>' + w + s + i2(0x2d7) + escapeHtml(o[i2(0x5df)] || '?') + i2(0x480) + o['tg_id'] + i2(0x85f) + x + i2(0x418) + y + (o[i2(0x34d)] === i2(0x231) ? '' : '<button\x20class=\x22tn-dm\x22\x20data-dm=\x22' + o['tg_id'] + '\x22\x20title=\x22Написать\x20в\x20Telegram\x22><span\x20data-icon=\x22send\x22></span></button>') + i2(0x780)
          , A = r[i2(0x64f)] ? i2(0x262) + (v ? i2(0x1e2) : '') + '\x22>' + r[i2(0x29a)]('') + i2(0x780) : '';
        return i2(0x272) + (p ? i2(0x5cd) : '') + i2(0x849) + t + '\x22>' + z + A + i2(0x780);
    }
    d[hZ(0x128)](j);
    const l = !!(window[hZ(0x851)] && window['RefGraph']['isGraphMode']());
    if (!l) {
        const o = d[hZ(0x50d)](p => k(p, !0x0, 0x0))['filter'](Boolean)[hZ(0x29a)]('');
        b[hZ(0x870)] = o || '<span\x20class=\x22tree-empty\x22>\u041D\u0438\u0447\u0435\u0433\u043E\x20\u043D\u0435\x20\u043D\u0430\u0439\u0434\u0435\u043D\u043E</span>';
    }
    const m = treeData[hZ(0x7a8)](p => p[hZ(0x71b)] && c[p[hZ(0x71b)]])[hZ(0x64f)]
      , n = treeData[hZ(0x7a8)](p => p['active'])[hZ(0x64f)];
    if ($(hZ(0x6bf)) && ($(hZ(0x6bf))['textContent'] = treeData[hZ(0x64f)]),
    $('#treeConnections') && ($(hZ(0x559))[hZ(0x333)] = m),
    $(hZ(0x916)) && ($(hZ(0x916))['textContent'] = d[hZ(0x64f)]),
    $(hZ(0x13f)) && ($(hZ(0x13f))[hZ(0x333)] = n),
    l) {
        window['RefGraph'] && window['RefGraph'][hZ(0x57a)] && window['RefGraph'][hZ(0x57a)]();
        return;
    }
    injectIcons(b),
    b['querySelectorAll'](hZ(0x430))[hZ(0x78d)](p => p[hZ(0x882)] = () => openTgDm(p[hZ(0x2af)]['dm'])),
    b['querySelectorAll']('[data-tree-toggle]')[hZ(0x78d)](p => p['onclick'] = () => {
        const i3 = hZ
          , q = p[i3(0x2af)]['treeToggle']
          , r = p[i3(0x43e)](i3(0x159))?.['querySelector'](i3(0x6dc))
          , s = !r?.[i3(0x474)]['contains'](i3(0x3b0));
        r?.[i3(0x474)][i3(0x7bb)]('collapsed', s),
        p[i3(0x474)][i3(0x7bb)](i3(0x3b0), s),
        p['setAttribute'](i3(0x8be), String(!s)),
        p['title'] = s ? i3(0x634) : i3(0x4c1),
        s ? treeCollapsed[i3(0x19d)](q) : treeCollapsed[i3(0x29f)](q);
    }
    );
}
function wireAdmin() {
    const i4 = odf943efb_P;
    applyAdmin(),
    $(i4(0x165)) && ($(i4(0x165))[i4(0x882)] = admLoad),
    $('#admFind') && ($(i4(0x245))[i4(0x882)] = () => admLoadUsers($(i4(0x7a7))[i4(0x5d9)])),
    $('#admSearchClear') && ($(i4(0x261))[i4(0x882)] = () => {
        const i5 = i4;
        $(i5(0x7a7))['value'] = '',
        admLoadUsers('');
    }
    ),
    $(i4(0x7a7)) && $(i4(0x7a7))[i4(0x5e7)](i4(0x424), d => {
        const i6 = i4;
        d['key'] === i6(0x462) && admLoadUsers(d[i6(0x766)]['value']);
    }
    );
    let a = 0x0;
    $('#admSearch') && $(i4(0x7a7))[i4(0x5e7)](i4(0x5e3), d => {
        const i7 = i4;
        clearTimeout(a),
        a = setTimeout( () => admLoadUsers(d[i7(0x766)]['value']), 0xfa);
    }
    ),
    $('#admSort') && $('#admSort')[i4(0x5e7)](i4(0x626), d => {
        const i8 = i4
          , f = d['target'][i8(0x43e)]('button[data-sort]');
        f && (admSort = f[i8(0x2af)][i8(0x128)],
        $$('#admSort\x20button')[i8(0x78d)](g => g[i8(0x474)][i8(0x7bb)]('on', g === f)),
        admLoadUsers($(i8(0x7a7))?.['value'] || ''));
    }
    ),
    $(i4(0x606)) && $(i4(0x606))['addEventListener'](i4(0x626), d => {
        const i9 = i4
          , f = d[i9(0x766)]['closest']('button[data-filter]');
        f && setAdmFilter(f['dataset'][i9(0x7a8)]);
    }
    ),
    $$(i4(0x4bc))[i4(0x78d)](d => d['onclick'] = () => admRunBulk(d[i4(0x2af)]['bulk'])),
    $(i4(0x11e)) && ($(i4(0x11e))[i4(0x882)] = admGenerateCodes),
    $('#admCodeCopy') && ($('#admCodeCopy')[i4(0x882)] = async () => {
        const ia = i4;
        try {
            await navigator[ia(0x812)][ia(0x59b)]($(ia(0x15c))?.['value'] || ''),
            toast(ia(0x151));
        } catch {
            toast(ia(0x482), !0x0);
        }
    }
    ),
    $(i4(0x2c0)) && ($(i4(0x2c0))[i4(0x882)] = openTree),
    $('#admPacksJump') && ($(i4(0x22a))[i4(0x882)] = () => $(i4(0x369))?.[i4(0x3a9)]({
        'behavior': i4(0xcc),
        'block': 'start'
    })),
    $('#admPacksRefresh') && ($(i4(0x3a5))[i4(0x882)] = admLoadPacks),
    $('#admAuthorsRefresh') && ($(i4(0x5f4))[i4(0x882)] = admLoadAuthors),
    $(i4(0x15b)) && ($(i4(0x15b))[i4(0x882)] = closeTree),
    $(i4(0x5e8)) && ($(i4(0x5e8))[i4(0x882)] = loadTree);
    let b = 0x0;
    $(i4(0x8e1)) && $('#treeSearch')[i4(0x5e7)](i4(0x5e3), d => {
        const ib = i4;
        clearTimeout(b),
        b = setTimeout( () => renderTree(d[ib(0x766)][ib(0x5d9)]), 0x78);
    }
    ),
    $('#treeExpand') && ($(i4(0x106))[i4(0x882)] = () => {
        const ic = i4;
        treeCollapsed[ic(0x672)](),
        renderTree($(ic(0x8e1))?.['value'] || '');
    }
    ),
    $(i4(0x82f)) && ($(i4(0x82f))['onclick'] = () => {
        const id = i4;
        treeData[id(0x78d)](d => {
            const ie = id;
            d['invited'] && treeCollapsed[ie(0x19d)](String(d['tg_id']));
        }
        ),
        renderTree($('#treeSearch')?.[id(0x5d9)] || '');
    }
    ),
    document[i4(0x5e7)]('keydown', d => {
        const ig = i4;
        d[ig(0xee)] === ig(0x153) && $(ig(0x834))?.[ig(0x474)][ig(0x3f5)]('show') && closeTree();
    }
    ),
    $(i4(0x6ac)) && ($('#admAnnPub')[i4(0x882)] = async () => {
        const ih = i4
          , d = ($(ih(0x8d0))?.[ih(0x5d9)] || '')[ih(0x407)]();
        if (!d)
            return toast(ih(0x3d3), !0x0);
        try {
            const f = await admPost(ih(0x23a), {
                'text': d,
                'url': ($(ih(0x55f))?.[ih(0x5d9)] || '')[ih(0x407)]()
            });
            f['ok'] ? (toast(ih(0x5db)),
            pollCommunity()) : toast(f[ih(0x63a)] || '\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C', !0x0);
        } catch (g) {
            toast('' + g, !0x0);
        }
    }
    ),
    $(i4(0xf5)) && ($(i4(0xf5))[i4(0x882)] = async () => {
        const ii = i4;
        try {
            const d = await admPost(ii(0x23a), {
                'text': ''
            });
            d['ok'] ? (toast('\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\x20\u0441\u043D\u044F\u0442\u043E'),
            pollCommunity()) : toast(d[ii(0x63a)] || ii(0x528), !0x0);
        } catch (f) {
            toast('' + f, !0x0);
        }
    }
    ),
    $(i4(0x31b)) && ($(i4(0x31b))[i4(0x882)] = async () => {
        const ij = i4
          , d = ($(ij(0x522))?.['value'] || '')[ij(0x407)]()
          , f = [...new Set(($(ij(0x3cb))?.[ij(0x5d9)] || '')[ij(0x7d3)](';')[ij(0x50d)](h => h[ij(0x407)]())['filter'](Boolean))]
          , g = Math[ij(0x29b)](0x1, Math[ij(0x75f)](0x5a0, +($(ij(0x1d7))?.[ij(0x5d9)] || 0xa)));
        if (!d || f['length'] < 0x2)
            return toast(ij(0x65e), !0x0);
        try {
            const h = await admPost('/admin/poll', {
                'action': ij(0x905),
                'question': d,
                'options': f,
                'minutes': g
            });
            h['ok'] ? (activeChatPoll = h[ij(0x8de)],
            renderChatPoll(),
            updateAdminPollState(),
            toast(ij(0x891))) : toast(h[ij(0x63a)] || '\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\x20\u043E\u043F\u0440\u043E\u0441', !0x0);
        } catch (i) {
            toast('' + i, !0x0);
        }
    }
    ),
    $(i4(0x1cc)) && ($('#admPollClose')[i4(0x882)] = async () => {
        const ik = i4;
        try {
            const d = await admPost(ik(0x284), {
                'action': ik(0x416)
            });
            d['ok'] ? (activeChatPoll = null,
            renderChatPoll(),
            updateAdminPollState(),
            toast(ik(0x233))) : toast(d[ik(0x63a)] || '\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u0437\u0430\u043A\u0440\u044B\u0442\u044C\x20\u043E\u043F\u0440\u043E\u0441', !0x0);
        } catch (f) {
            toast('' + f, !0x0);
        }
    }
    );
    const c = $('#admClearChat');
    c && (c['onclick'] = async () => {
        const il = i4;
        if (c[il(0x2af)][il(0x285)] !== '1') {
            c[il(0x2af)][il(0x285)] = '1',
            c[il(0x474)]['add']('on'),
            c['textContent'] = '\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\x20\u0447\u0430\u0442?',
            setTimeout( () => {
                const im = il;
                c[im(0x2af)][im(0x285)] = '0',
                c[im(0x474)][im(0x6f2)]('on'),
                c[im(0x333)] = im(0x74b);
            }
            , 0xbb8);
            return;
        }
        c['dataset']['armed'] = '0',
        c[il(0x474)][il(0x6f2)]('on'),
        c[il(0x333)] = '\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\x20\u0432\u0435\u0441\u044C\x20\u0447\u0430\u0442';
        try {
            const d = await admPost(il(0x181));
            d['ok'] ? toast('\u0427\u0430\u0442\x20\u043E\u0447\u0438\u0449\u0435\u043D') : toast(d['err'] || il(0x528), !0x0);
        } catch (f) {
            toast('' + f, !0x0);
        }
    }
    );
}
let _slotTimer = 0x0;
function ensureSlotOverlay() {
    const io = odf943efb_P;
    let a = document[io(0x717)]('slotQueue');
    return a || (a = document[io(0x4b4)](io(0x7df)),
    a['id'] = io(0xd8),
    a[io(0x84b)]['cssText'] = io(0x555),
    a[io(0x870)] = io(0x7b8),
    document[io(0x624)]['appendChild'](a),
    a);
}
async function slotTick() {
    const ip = odf943efb_P;
    let a = 0xea60;
    try {
        const b = localStorage['getItem']('lic_token');
        if (licOff() || !b)
            ensureSlotOverlay()['style'][ip(0x390)] = ip(0x902);
        else {
            const c = await apiPost(ip(0x3a3), {
                'token': b
            })
              , d = ensureSlotOverlay();
            if (c && c['ok'])
                d['style']['display'] = ip(0x902);
            else {
                if (c && c[ip(0x899)]) {
                    const e = $(ip(0x501));
                    e && (e[ip(0x333)] = ip(0x4e6) + (c[ip(0x66a)] || '?') + ip(0x29d) + (c[ip(0x23f)] || '?') + ')'),
                    d[ip(0x84b)]['display'] = ip(0x61e),
                    a = 0x1f40;
                } else
                    d['style'][ip(0x390)] = ip(0x902);
            }
        }
    } catch {
        try {
            ensureSlotOverlay()['style']['display'] = ip(0x902);
        } catch {}
        a = 0x7530;
    }
    clearTimeout(_slotTimer),
    _slotTimer = setTimeout(slotTick, a);
}
let _usageTimer = null
  , licUsage = null
  , usageBlocked = !0x1;
const USAGE_HB_MS = 0x4e20
  , UNLIMITED_USAGE_SECS = 0x12c * 0x18 * 0xe10;
function anyPaneInCall() {
    const iq = odf943efb_P;
    if (TEXT_BRIDGE[iq(0x317)] === 'text')
        return !0x1;
    const a = Date[iq(0x2d3)]();
    return Object['values'](CAP['talk'] || {})[iq(0x20c)](b => b && b['on'] && a - b['ts'] < 0x1b58);
}
function fmtHMS(a) {
    const ir = odf943efb_P;
    a = Math[ir(0x29b)](0x0, Math[ir(0x7c9)](a));
    const b = Math['floor'](a / 0xe10)
      , c = Math[ir(0x8a9)](a % 0xe10 / 0x3c)
      , d = a % 0x3c
      , e = f => String(f)[ir(0x208)](0x2, '0');
    return b ? b + ':' + e(c) + ':' + e(d) : c + ':' + e(d);
}
function usageRemainingSecs() {
    const is = odf943efb_P;
    if (!licUsage)
        return null;
    const a = (licUsage[is(0x35e)] || 0x0) + (anyPaneInCall() ? (Date[is(0x2d3)]() - (licUsage['at'] || Date['now']())) / 0x3e8 : 0x0);
    return Math[is(0x29b)](0x0, Math['round']((licUsage[is(0x6ba)] || 0x0) - a));
}
function unlimitedUsage() {
    const it = odf943efb_P;
    return !!licUsage && (licUsage[it(0x6ba)] || 0x0) >= UNLIMITED_USAGE_SECS;
}
function accessPillText() {
    const iu = odf943efb_P
      , a = futureIso(localStorage[iu(0x6b6)](iu(0x3ae)));
    if (a)
        return {
            'text': iu(0x299) + accessLeftText(a),
            'title': iu(0x8bd) + niceDateTime(a),
            'color': '#eceffa'
        };
    const b = futureIso(localStorage['getItem'](iu(0x6bb)));
    if (!b)
        return null;
    const c = localStorage[iu(0x6b6)](iu(0x55e)) === iu(0x2b1) ? iu(0x89b) : iu(0x539);
    return {
        'text': c + iu(0x8d9) + accessLeftText(b),
        'title': c + iu(0x88e) + niceDateTime(b),
        'color': '#eceffa'
    };
}
function ensureUsagePill() {
    const iv = odf943efb_P;
    let a = $('#usagePill');
    return a || (a = document['createElement']('div'),
    a['id'] = iv(0x476),
    a['style'][iv(0x383)] = 'position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:2147483400;display:none;padding:5px\x2012px;border-radius:99px;background:rgba(16,19,28,.92);color:#eceffa;font:600\x2012px\x20Inter,system-ui,sans-serif;box-shadow:0\x202px\x2010px\x20rgba(0,0,0,.4);pointer-events:none',
    document[iv(0x624)][iv(0x755)](a)),
    a;
}
function updateUsagePill(a) {
    const iw = odf943efb_P
      , b = ensureUsagePill();
    if (a == null || usageBlocked) {
        b[iw(0x84b)][iw(0x390)] = iw(0x902);
        return;
    }
    if (unlimitedUsage()) {
        const c = accessPillText();
        if (!c || !anyPaneInCall()) {
            b[iw(0x84b)]['display'] = iw(0x902);
            return;
        }
        b[iw(0x333)] = c[iw(0x31a)],
        b[iw(0x757)] = c['title'],
        b[iw(0x84b)]['color'] = c[iw(0x41d)],
        b['style'][iw(0x390)] = '';
        return;
    }
    if (a > 0x708 && !anyPaneInCall()) {
        b[iw(0x84b)][iw(0x390)] = iw(0x902);
        return;
    }
    b['textContent'] = iw(0x309) + fmtHMS(a),
    b[iw(0x757)] = '',
    b[iw(0x84b)][iw(0x41d)] = a <= 0x12c ? iw(0x27a) : iw(0x87a),
    b[iw(0x84b)][iw(0x390)] = '';
}
function ensureUsageOverlay() {
    const ix = odf943efb_P;
    let a = $(ix(0x7ef));
    return a || (a = document[ix(0x4b4)](ix(0x7df)),
    a['id'] = 'usageBlock',
    a['style'][ix(0x383)] = 'position:fixed;inset:0;z-index:2147483550;display:none;align-items:center;justify-content:center;background:rgba(8,10,16,.95);backdrop-filter:blur(6px);color:#eceffa;font:600\x2016px\x20Inter,system-ui,sans-serif;text-align:center;padding:32px',
    a[ix(0x870)] = ix(0x17d),
    document[ix(0x624)][ix(0x755)](a)),
    a;
}
function showUsageOverlay() {
    const iy = odf943efb_P
      , a = ensureUsageOverlay()
      , b = $('#usageBlockMsg');
    if (b && licUsage && licUsage['reset_at']) {
        const c = new Date(licUsage[iy(0x116)])
          , d = Math['max'](0x0, (c[iy(0x3d1)]() - Date['now']()) / 0x3e8)
          , e = isNaN(c) ? iy(0x580) : c[iy(0x49b)]('ru-RU', {
            'hour': iy(0x283),
            'minute': iy(0x283)
        })
          , f = licUsage[iy(0x6ba)] ? Math[iy(0x7c9)](licUsage['cap'] / 0xe10) : null;
        b['innerHTML'] = (f ? iy(0x503) + f + iy(0x365) : '') + (iy(0x8e8) + e + iy(0x388)) + (d ? iy(0x102) + fmtHMS(d) : '') + iy(0x625);
    }
    a['style'][iy(0x390)] = iy(0x61e);
}
function hideUsageOverlay() {
    const iz = odf943efb_P
      , a = $(iz(0x7ef));
    a && (a[iz(0x84b)][iz(0x390)] = 'none');
}
function enforceUsage() {
    const iA = odf943efb_P
      , a = !licOff() && localStorage[iA(0x6b6)](iA(0x55e)) === iA(0x487)
      , b = usageBlocked;
    !a || !licUsage ? (usageBlocked = !0x1,
    hideUsageOverlay(),
    updateUsagePill(null)) : (usageBlocked = !!licUsage[iA(0x91c)],
    usageBlocked ? (showUsageOverlay(),
    updateUsagePill(0x0)) : (hideUsageOverlay(),
    updateUsagePill(usageRemainingSecs()))),
    usageBlocked !== b && licTick();
}
async function usageTick() {
    const iB = odf943efb_P;
    let a = USAGE_HB_MS;
    try {
        const b = localStorage['getItem'](iB(0x811));
        if (!licOff() && b && localStorage[iB(0x6b6)](iB(0x55e)) === iB(0x487) && anyPaneInCall()) {
            const c = await apiPost(iB(0x54e), {
                'token': b,
                'device': devId()
            });
            c && c[iB(0x3fc)] && (licUsage = {
                ...c,
                'at': Date['now']()
            },
            enforceUsage()),
            usageRemainingSecs() != null && usageRemainingSecs() < 0x5a && (a = 0x2710);
        }
    } catch {}
    clearTimeout(_usageTimer),
    _usageTimer = setTimeout(usageTick, a);
}
function licTick() {
    const iC = odf943efb_P;
    licOff() || (invoke(iC(0x15e), {
        'on': licActive() && !usageBlocked
    })[iC(0x375)]( () => {}
    ),
    applyLicenseUI());
}
function referralInputValue() {
    const iD = odf943efb_P
      , a = ($('#refPromoInput')?.[iD(0x5d9)] || '')[iD(0x407)]();
    return a && localStorage[iD(0x378)](iD(0x4b9), a),
    a || localStorage[iD(0x6b6)](iD(0x4b9)) || '';
}
async function loginTelegram() {
    const iE = odf943efb_P
      , a = $(iE(0x279))
      , b = (crypto[iE(0x483)] ? crypto[iE(0x483)]() : Date[iE(0x2d3)]() + '' + Math['random']())[iE(0x8c0)](/[^a-z0-9]/gi, '');
    invoke(iE(0x546), {
        'target': BOT_URL + iE(0x315) + b
    })['catch']( () => {}
    ),
    a[iE(0x927)] = !0x0,
    a[iE(0x333)] = iE(0x707);
    let c = !0x1
      , d = !0x1;
    for (let e = 0x0; e < 0x3c; e++) {
        await new Promise(f => setTimeout(f, 0x7d0));
        try {
            const f = await apiPost(iE(0x515), {
                'nonce': b,
                'device': devId(),
                'ref': referralInputValue()
            });
            if (f[iE(0x366)] === 'ok') {
                storeAuthResult(f),
                localStorage[iE(0x791)]('pending_ref_code'),
                applyRef(),
                applyAdmin(),
                c = !0x0;
                break;
            } else {
                if (f[iE(0x366)] === 'expired') {
                    d = !0x0;
                    break;
                }
            }
        } catch {}
    }
    if (a[iE(0x927)] = !0x1,
    a[iE(0x333)] = '\u0412\u043E\u0439\u0442\u0438\x20\u0447\u0435\u0440\u0435\u0437\x20Telegram',
    c) {
        licTick(),
        refreshTurnRoute();
        try {
            connectChat();
        } catch {}
        toast(licActive() ? iE(0x38c) : iE(0x20f));
    } else
        $(iE(0x24b))[iE(0x333)] = d ? iE(0x7db) : iE(0x47b),
        applyLicenseUI();
}
async function directAuth(a) {
    const iF = odf943efb_P
      , b = ($(iF(0x7b4))?.[iF(0x5d9)] || '')[iF(0x407)]()
      , c = $('#directPassword')?.[iF(0x5d9)] || '';
    if (nickError(b))
        return toast('\u041B\u043E\u0433\u0438\u043D:\x20' + nickError(b), !0x0);
    if (c[iF(0x64f)] < 0xa)
        return toast(iF(0x85a), !0x0);
    const d = [$(iF(0x6df)), $(iF(0xbd))][iF(0x7a8)](Boolean);
    d[iF(0x78d)](f => f[iF(0x927)] = !0x0);
    try {
        const f = await apiPost(a ? iF(0xac) : '/auth/login', {
            'login': b,
            'password': c,
            'device': devId(),
            'ref': referralInputValue()
        });
        if (!f['ok'])
            return toast({
                'taken': iF(0x845),
                'invalid_credentials': iF(0x44b),
                'rate_limited': iF(0x802),
                'bad_login': '\u041B\u043E\u0433\u0438\u043D:\x20\u0431\u0443\u043A\u0432\u044B,\x20\u0446\u0438\u0444\u0440\u044B\x20\u0438\u043B\u0438\x20_,\x20\u043E\u0442\x203\x20\u0434\u043E\x2016\x20\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432',
                'bad_password': '\u041F\u0430\u0440\u043E\u043B\u044C\x20\u0434\u043E\u043B\u0436\u0435\u043D\x20\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C\x20\u043C\u0438\u043D\u0438\u043C\u0443\u043C\x2010\x20\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432',
                'banned': iF(0x4de)
            }[f[iF(0x63a)]] || '\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u0432\u043E\u0439\u0442\u0438', !0x0);
        storeAuthResult(f),
        localStorage[iF(0x791)](iF(0x4b9)),
        applyRef(),
        applyAdmin(),
        applyLicenseUI(),
        refreshTurnRoute(),
        connectChat(),
        f[iF(0x607)] && showRecoveryCode(f['recovery_code']),
        toast(a ? iF(0x888) : '\u0421\x20\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0438\u0435\u043C!');
    } catch (g) {
        toast({
            'rate_limited': iF(0x802),
            'banned': iF(0x4de)
        }[g[iF(0x833)]] || iF(0x90b), !0x0);
    } finally {
        d[iF(0x78d)](h => h[iF(0x927)] = !0x1);
    }
}
function showRecoveryCode(a) {
    const iG = odf943efb_P
      , b = $('#recoveryNotice')
      , c = $(iG(0x25f));
    c && (c['textContent'] = a),
    b && (b[iG(0x84b)]['display'] = '');
}
async function recoverDirectAccount() {
    const iH = odf943efb_P
      , a = ($(iH(0x605))?.[iH(0x5d9)] || '')[iH(0x407)]()
      , b = $(iH(0x8df))?.[iH(0x5d9)] || ''
      , c = $(iH(0x709))?.[iH(0x5d9)] || '';
    if (!a || !b || c['length'] < 0xa)
        return toast(iH(0x175), !0x0);
    const d = $(iH(0x681));
    d['disabled'] = !0x0;
    try {
        const f = await apiPost(iH(0x433), {
            'login': a,
            'recovery_code': b,
            'password': c
        });
        if (!f['ok'])
            return toast(f['err'] === iH(0x4dc) ? '\u0421\u043B\u0438\u0448\u043A\u043E\u043C\x20\u043C\u043D\u043E\u0433\u043E\x20\u043F\u043E\u043F\u044B\u0442\u043E\u043A' : '\u041B\u043E\u0433\u0438\u043D\x20\u0438\u043B\u0438\x20\u043A\u043E\u0434\x20\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\x20\u043D\u0435\u0432\u0435\u0440\u043D\u044B', !0x0);
        showRecoveryCode(f[iH(0x607)]),
        $(iH(0x142))?.[iH(0x474)][iH(0x6f2)](iH(0x7bf)),
        document[iH(0x577)]('[data-auth-pane=\x22direct\x22]')?.['classList'][iH(0x19d)](iH(0x7bf)),
        toast('\u041F\u0430\u0440\u043E\u043B\u044C\x20\u0438\u0437\u043C\u0435\u043D\u0451\u043D.\x20\u0421\u043E\u0445\u0440\u0430\u043D\u0438\x20\u043D\u043E\u0432\u044B\u0439\x20\u043A\u043E\u0434\x20\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F');
    } catch (g) {
        toast(g[iH(0x833)] === iH(0x4dc) ? iH(0x7ce) : iH(0x90b), !0x0);
    } finally {
        d['disabled'] = !0x1;
    }
}
async function activateFromInput(a, b) {
    const iI = odf943efb_P
      , c = (a?.[iI(0x5d9)] || '')[iI(0x407)]();
    if (!localStorage['getItem'](iI(0x811)))
        return toast(iI(0x421), !0x0);
    if (c['replace'](/[^A-Za-z0-9]/g, '')[iI(0x64f)] !== 0x14)
        return toast(iI(0x7e3), !0x0);
    b['disabled'] = !0x0;
    try {
        const d = await apiPost('/activate', {
            'token': localStorage[iI(0x6b6)](iI(0x811)),
            'code': c
        });
        if (!d['ok']) {
            const f = {
                'invalid': iI(0x213),
                'used': iI(0x6a9),
                'expired': iI(0x53e),
                'revoked': iI(0x657),
                'same_batch': iI(0x397),
                'cooldown': iI(0x6eb) + Math[iI(0x29b)](0x1, Math['ceil']((d[iI(0x2d8)] || 0x0) / 0xe10)) + '\x20ч.',
                'no_session': '\u0421\u0435\u0441\u0441\u0438\u044F\x20\u0438\u0441\u0442\u0435\u043A\u043B\u0430\x20\u2014\x20\u0432\u043E\u0439\u0434\u0438\x20\u0437\u0430\u043D\u043E\u0432\u043E'
            };
            return toast(f[d[iI(0x63a)]] || iI(0x8ab), !0x0);
        }
        a[iI(0x5d9)] = '',
        storeAuthResult({
            ...d,
            'reason': d[iI(0x5d1)] || 'paid',
            'max_panes': d['max_panes'] || (d[iI(0x68e)] === iI(0x685) ? 0x4 : maxPanes())
        }),
        applyRef(),
        applyAdmin(),
        licTick(),
        refreshStatus()[iI(0x375)]( () => {}
        ),
        toast(d[iI(0x702)] ? iI(0x44f) : (d[iI(0x68e)] === 'vip' ? iI(0x648) : iI(0x415)) + (iI(0x4e2) + d[iI(0x5a2)] + '\x20дн.'));
    } catch (g) {
        toast(g[iI(0x833)] === iI(0x4dc) ? iI(0x802) : g[iI(0x833)] === iI(0x4c2) ? '\u0421\u0435\u0441\u0441\u0438\u044F\x20\u0438\u0441\u0442\u0435\u043A\u043B\u0430\x20\u2014\x20\u0432\u043E\u0439\u0434\u0438\x20\u0437\u0430\u043D\u043E\u0432\u043E' : '\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F\x20\u043A\x20\u0441\u0435\u0440\u0432\u0435\u0440\u0443', !0x0);
    } finally {
        b['disabled'] = !0x1;
    }
}
function formatActivationInput(a) {
    const iJ = odf943efb_P
      , b = a[iJ(0x5d9)][iJ(0x68d)]()[iJ(0x8c0)](/[^A-Z0-9]/g, '')[iJ(0x801)](0x0, 0x14);
    a[iJ(0x5d9)] = b['match'](/.{1,5}/g)?.[iJ(0x29a)]('-') || '';
}
function logout() {
    const iK = odf943efb_P;
    [iK(0x811), iK(0x6bb), iK(0x3ae), iK(0x55e), iK(0x5b6), iK(0x351), iK(0x484), iK(0x113), iK(0x7f7), iK(0x6bc), iK(0x919), 'youtube_available', iK(0x8e2), iK(0x2e2), iK(0x3f9), iK(0x34d), iK(0x463), iK(0x20b)][iK(0x78d)](a => localStorage[iK(0x791)](a));
    try {
        document[iK(0x6c3)] = 'nk_sess=;path=/;max-age=0;samesite=lax' + (location[iK(0x321)] === iK(0x12e) ? iK(0x4fa) : '');
    } catch {}
    window[iK(0x90d)] = null,
    window[iK(0x1ad)] = !0x1,
    licUsage = null,
    usageBlocked = !0x1,
    hideUsageOverlay();
    try {
        chatWs && chatWs[iK(0x416)]();
    } catch {}
    invoke(iK(0x15e), {
        'on': !0x1
    })[iK(0x375)]( () => {}
    ),
    _turnUntil = 0x0,
    _turnMode = 'fallback:logout',
    invoke('set_turn_fallback')[iK(0x375)]( () => {}
    ),
    applyLicenseUI(),
    applyRef(),
    applyAdmin(),
    renderYoutubePromo(),
    $(iK(0x49c)) && ($(iK(0x49c))[iK(0x84b)][iK(0x390)] = iK(0x902)),
    $(iK(0x8d1))?.[iK(0x474)][iK(0x3f5)]('active') && showView(iK(0x7c5)),
    toast(iK(0x7ec));
}
function wireLicense() {
    const iL = odf943efb_P;
    $(iL(0x279)) && ($(iL(0x279))[iL(0x882)] = loginTelegram);
    const a = () => invoke(iL(0x546), {
        'target': BOT_URL
    })[iL(0x375)]( () => {}
    );
    $(iL(0x653)) && ($(iL(0x653))[iL(0x882)] = openPurchase),
    $(iL(0x471)) && ($(iL(0x471))['onclick'] = openPurchase),
    $(iL(0x17b)) && ($(iL(0x17b))[iL(0x882)] = openPurchase),
    $$(iL(0x4f0))['forEach'](c => c[iL(0x882)] = openPurchase),
    $(iL(0x39a)) && ($('#acctBtn')[iL(0x882)] = () => {
        const iM = iL;
        localStorage[iM(0x6b6)]('lic_token') ? logout() : ($('#licOverlay')?.[iM(0x474)][iM(0x19d)](iM(0x4dd)),
        applyLicenseUI());
    }
    ),
    $(iL(0x711)) && ($('#licChangeAccount')[iL(0x882)] = logout),
    $(iL(0x886)) && ($(iL(0x886))['onclick'] = b => {
        const iN = iL;
        b[iN(0x6fa)]();
        const c = localStorage[iN(0x6b6)](iN(0x5b6));
        window[iN(0x3aa)] && !window[iN(0x3aa)](c ? iN(0x323) + c + '?' : '\u0412\u044B\u0439\u0442\u0438\x20\u0438\u0437\x20\u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430?') || logout();
    }
    ),
    $(iL(0x6df)) && ($(iL(0x6df))[iL(0x882)] = () => directAuth(!0x1)),
    $(iL(0xbd)) && ($(iL(0xbd))[iL(0x882)] = () => directAuth(!0x0)),
    $(iL(0x20d)) && $(iL(0x20d))[iL(0x5e7)](iL(0x424), b => {
        const iO = iL;
        b['key'] === iO(0x462) && directAuth(!0x1);
    }
    ),
    $$(iL(0x6ad))[iL(0x78d)](b => b[iL(0x882)] = () => {
        const iP = iL;
        $$(iP(0x6ad))[iP(0x78d)](c => c[iP(0x474)][iP(0x7bb)]('on', c === b)),
        $$(iP(0x52b))[iP(0x78d)](c => c['classList']['toggle']('active', c[iP(0x2af)][iP(0x5ea)] === b[iP(0x2af)][iP(0x747)])),
        $(iP(0x142))?.['classList'][iP(0x6f2)]('active');
    }
    ),
    $(iL(0x485)) && ($(iL(0x485))['onclick'] = () => {
        const iQ = iL;
        document['querySelector']('[data-auth-pane=\x22direct\x22]')?.[iQ(0x474)][iQ(0x6f2)](iQ(0x7bf)),
        $('#directRecoverPane')?.[iQ(0x474)][iQ(0x19d)](iQ(0x7bf));
    }
    ),
    $(iL(0x4d1)) && ($(iL(0x4d1))['onclick'] = () => {
        const iR = iL;
        $('#directRecoverPane')?.['classList']['remove'](iR(0x7bf)),
        document[iR(0x577)](iR(0x171))?.[iR(0x474)]['add'](iR(0x7bf));
    }
    ),
    $('#directRecoverBtn') && ($(iL(0x681))[iL(0x882)] = recoverDirectAccount),
    $(iL(0x900)) && ($('#recoveryCopy')[iL(0x882)] = async () => {
        const iS = iL;
        try {
            await navigator[iS(0x812)][iS(0x59b)]($(iS(0x25f))?.[iS(0x333)] || ''),
            toast(iS(0x85e));
        } catch {
            toast(iS(0x482), !0x0);
        }
    }
    ),
    [[iL(0x8e4), iL(0x144)], [iL(0x77e), 'accountCodeActivate']][iL(0x78d)]( ([b,c]) => {
        const iT = iL
          , d = $('#' + b)
          , e = $('#' + c);
        !d || !e || (d['addEventListener'](iT(0x424), f => {
            const iU = iT;
            f[iU(0xee)] === iU(0x462) && activateFromInput(d, e);
        }
        ),
        e[iT(0x882)] = () => activateFromInput(d, e));
    }
    ),
    $$(iL(0x37d))[iL(0x78d)](b => b[iL(0x5e7)](iL(0x5e3), () => formatActivationInput(b)));
}
function wireOnboard() {
    const iV = odf943efb_P
      , a = $(iV(0x836));
    if (!a)
        return;
    const b = $$(iV(0x372), a)
      , c = $$(iV(0x512), a);
    let d = 0x0;
    const e = g => {
        const iW = iV;
        d = Math['max'](0x0, Math[iW(0x75f)](b[iW(0x64f)] - 0x1, g)),
        b[iW(0x78d)]( (h, j) => h[iW(0x474)][iW(0x7bb)]('active', j === d)),
        c[iW(0x78d)]( (h, j) => h['classList'][iW(0x7bb)]('on', j === d)),
        $(iW(0x670))['textContent'] = d === b['length'] - 0x1 ? '\u041D\u0430\u0447\u0430\u0442\u044C' : iW(0x5f9),
        $(iW(0x3df))[iW(0x84b)][iW(0x390)] = d === b[iW(0x64f)] - 0x1 ? iW(0x902) : '';
    }
      , f = () => {
        const iX = iV;
        localStorage[iX(0x378)]('onboarded', '1'),
        a[iX(0x474)][iX(0x6f2)](iX(0x4dd)),
        maybeShowYoutubePromo();
    }
    ;
    $(iV(0x670)) && ($(iV(0x670))['onclick'] = () => d === b[iV(0x64f)] - 0x1 ? f() : e(d + 0x1)),
    $(iV(0x3df)) && ($(iV(0x3df))[iV(0x882)] = f),
    $('#onboardAgain') && ($(iV(0x295))[iV(0x882)] = () => {
        const iY = iV;
        e(0x0),
        a[iY(0x474)][iY(0x19d)]('show');
    }
    ),
    localStorage[iV(0x6b6)]('onboarded') || (e(0x0),
    a['classList'][iV(0x19d)](iV(0x4dd)));
}
let chatWs = null
  , chatRetry = null
  , chatRetryAttempt = 0x0;
function chatWsUrl() {
    const iZ = odf943efb_P;
    return LICENSE_API[iZ(0x8c0)](/^http/, 'ws')[iZ(0x8c0)](/\/$/, '') + iZ(0x722) + encodeURIComponent(localStorage[iZ(0x6b6)](iZ(0x811)) || '');
}
function avaColor(a) {
    const j0 = odf943efb_P;
    let b = 0x0;
    const c = '' + (a || '?');
    for (let d = 0x0; d < c[j0(0x64f)]; d++)
        b = b * 0x1f + c['charCodeAt'](d) >>> 0x0;
    return j0(0x749) + b % 0x168 + j0(0x1d2);
}
function hslToHex(b, c, d) {
    const j1 = odf943efb_P;
    c /= 0x64,
    d /= 0x64;
    const e = j => (j + b / 0x1e) % 0xc
      , g = c * Math['min'](d, 0x1 - d)
      , i = j => d - g * Math[j1(0x29b)](-0x1, Math[j1(0x75f)](e(j) - 0x3, Math[j1(0x75f)](0x9 - e(j), 0x1)));
    return rgbToHex([i(0x0) * 0xff, i(0x8) * 0xff, i(0x4) * 0xff]);
}
function avaLook(a) {
    const j2 = odf943efb_P;
    let b = 0x0;
    const c = '' + (a || '?');
    for (let e = 0x0; e < c['length']; e++)
        b = b * 0x1f + c[j2(0x714)](e) >>> 0x0;
    const d = accentInkPair(hslToHex(b % 0x168, 0x3e, 0x34));
    return '\x20style=\x22background:' + d[j2(0x409)] + ';color:' + d[j2(0x394)] + '\x22';
}
function initials(a) {
    const j3 = odf943efb_P;
    return (('' + (a || '?'))[j3(0x8c0)](/[^a-zA-Zа-яА-Я0-9]/g, '')['slice'](0x0, 0x2) || '?')[j3(0x68d)]();
}
function buildMsgNode(a) {
    const j4 = odf943efb_P
      , b = a['self'] || a['nick'] && a['nick'] === localStorage[j4(0x6b6)]('lic_nick')
      , c = document[j4(0x4b4)](j4(0x7df))
      , e = vipChatStyle(a[j4(0x178)]);
    c[j4(0x4a9)] = 'chat-msg' + (b ? j4(0x325) : '') + (a[j4(0x73a)] ? '\x20admin' : '') + (a['vip'] ? j4(0x6c0) + e : '') + (a[j4(0x220)] ? j4(0x4ad) : '') + (a['pending'] ? '\x20pending' : '') + (a[j4(0x34b)] ? j4(0x6c8) : ''),
    a['id'] && (c[j4(0x2af)]['msgId'] = a['id']),
    a[j4(0x842)] && (c[j4(0x2af)][j4(0x2fb)] = a[j4(0x842)]);
    const f = a[j4(0x5df)] || '?'
      , g = a['ts'] ? new Date(a['ts'] * 0x3e8) : null
      , h = g && !isNaN(g) ? g['toLocaleTimeString'](j4(0x907), {
        'hour': j4(0x283),
        'minute': j4(0x283)
    }) : ''
      , i = b ? '' : avaLook(f)
      , j = a['kind'] === 'sound' && a[j4(0x346)]
      , k = j ? j4(0x81d) + iconSvg(j4(0x4ce)) + j4(0x3c6) + escapeHtml(j[j4(0x60b)] || j4(0x6af)) + '\x22>' + iconSvg(j[j4(0x60b)] || j4(0x6af)) + j4(0x60f) + escapeHtml(j[j4(0x8b8)] || j4(0x71e)) + j4(0x282) + Math['round']((j[j4(0x1ee)] || 0x0) / 0x400) + j4(0x524) + iconSvg(j4(0x923)) + '</span></button><button\x20class=\x22cm-sound-save\x22\x20type=\x22button\x22\x20title=\x22Добавить\x20в\x20саундборд\x22><span\x20data-icon=\x22down\x22>' + iconSvg('down') + j4(0x4bb) : linkifyText(a[j4(0x31a)] || '');
    if (c[j4(0x870)] = '<span\x20class=\x22cm-ava\x22' + i + '>' + escapeHtml(initials(f)) + j4(0x53d) + escapeHtml(f) + j4(0x225) + (a[j4(0x73a)] ? j4(0x64c) : '') + (a[j4(0x685)] ? j4(0x498) : '') + (a[j4(0x220)] ? j4(0x76f) : '') + (h ? '<span\x20class=\x22cm-time\x22>' + h + '</span>' : '') + (a['pending'] ? j4(0x269) + (a['failed'] ? '\u041D\u0435\x20\u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E\x20\xB7\x20\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C' : j4(0x27f)) + '</button>' : '') + (j4(0x7f0) + k + j4(0x537)),
    injectIcons(c),
    c[j4(0xb6)]('[data-chat-link]')[j4(0x78d)](l => l[j4(0x5e7)](j4(0x626), n => {
        const j5 = j4;
        n['preventDefault'](),
        invoke(j5(0x546), {
            'target': l[j5(0x2af)][j5(0x6e5)]
        })['catch']( () => {}
        );
    }
    )),
    c['querySelector']('.cm-sound-play')?.[j4(0x5e7)](j4(0x626), () => playChatSound(a[j4(0x346)])),
    c[j4(0x577)](j4(0xc2))?.[j4(0x5e7)]('click', () => playChatSoundToCall(a['payload'])),
    c[j4(0x577)](j4(0x35d))?.['addEventListener']('click', () => saveChatSoundToBoard(a['payload'])),
    a['pending'] && c[j4(0x577)]('.cm-state')?.[j4(0x5e7)](j4(0x626), () => retryChatMessage(a[j4(0x842)])),
    isAdmin() && a['id']) {
        const l = document[j4(0x4b4)](j4(0x3b1));
        l['className'] = j4(0x7e6),
        l[j4(0x870)] = j4(0x154),
        l[j4(0x882)] = n => {
            const j6 = j4
              , o = n[j6(0x766)][j6(0x43e)]('button');
            o && admMsgAct(a['id'], o[j6(0x2af)][j6(0x7d7)]);
        }
        ,
        c[j4(0x577)](j4(0x58c))?.['appendChild'](l);
    }
    return c;
}
const chatHist = []
  , CHAT_OUTBOX_PREFIX = 'chat_outbox_v2_'
  , chatOutbox = new Map();
let chatInitialHistoryDone = !0x1
  , unread = 0x0
  , activeChatPoll = null
  , chatSoundAudio = null
  , activeChatCallSound = null;
const chatSoundBufferCache = new Map();
function chatReadKey() {
    const j7 = odf943efb_P;
    return j7(0x8ec) + (localStorage[j7(0x6b6)](j7(0x5b6)) || 'guest');
}
function chatOutboxKey() {
    const j8 = odf943efb_P;
    return CHAT_OUTBOX_PREFIX + (localStorage[j8(0x6b6)](j8(0x5b6)) || j8(0x8d7));
}
function isNearChatBottom(a, b=0x48) {
    const j9 = odf943efb_P;
    return !a || a[j9(0x52e)] - a[j9(0x553)] - a['clientHeight'] < b;
}
function isChatSurfaceVisible() {
    const ja = odf943efb_P;
    return document[ja(0x45f)] !== ja(0x3ef) && ($(ja(0x454))?.[ja(0x474)]['contains'](ja(0x8c7)) || $(ja(0x29c))?.[ja(0x474)][ja(0x3f5)]('active'));
}
function visibleChatBoxNearBottom() {
    const jb = odf943efb_P;
    return $('#chatDock')?.[jb(0x474)][jb(0x3f5)](jb(0x8c7)) ? isNearChatBottom($(jb(0x818))) : $(jb(0x29c))?.[jb(0x474)]['contains'](jb(0x7bf)) ? isNearChatBottom($(jb(0xb1))) : !0x1;
}
function updateUnreadBadge() {
    const jc = odf943efb_P
      , a = $(jc(0x326));
    a && (a[jc(0x84b)][jc(0x390)] = unread ? '' : 'none',
    a[jc(0x333)] = unread > 0x63 ? jc(0x1ea) : String(unread));
}
function markChatRead() {
    const jd = odf943efb_P
      , a = [...chatHist][jd(0x251)]()[jd(0x3d5)](b => b['id']);
    a && localStorage[jd(0x378)](chatReadKey(), String(a['id'])),
    unread = 0x0,
    updateUnreadBadge();
}
function bumpUnread() {
    unread++,
    updateUnreadBadge();
}
function clearUnread() {
    markChatRead();
}
function showChatJump(a, b) {
    const je = odf943efb_P;
    document[je(0x577)](je(0x475) + (a?.['id'] || '') + '\x22]')?.['classList'][je(0x7bb)](je(0x4dd), !!b);
}
function scrollChatBottom(a, b=!0x1) {
    const jf = odf943efb_P;
    a && (a[jf(0x765)]({
        'top': a[jf(0x52e)],
        'behavior': b ? 'smooth' : jf(0x7ba)
    }),
    showChatJump(a, !0x1));
}
function onChatSurfaceOpened(a) {
    const b = $('#' + a);
    requestAnimationFrame( () => requestAnimationFrame( () => {
        scrollChatBottom(b),
        markChatRead();
    }
    ));
}
function replaceChatNodes(a) {
    const jg = odf943efb_P
      , b = a[jg(0x842)] ? jg(0x700) + CSS[jg(0x4ab)](a[jg(0x842)]) + '\x22]' : jg(0x6ae) + a['id'] + '\x22]';
    $$(jg(0x885) + b)['forEach'](c => c[jg(0x8a0)](buildMsgNode(a)));
}
function addChatMsg(a) {
    const jh = odf943efb_P
      , b = a[jh(0x682)] || a[jh(0x5df)] && a[jh(0x5df)] === localStorage[jh(0x6b6)](jh(0x5b6))
      , c = a[jh(0x842)] && chatHist[jh(0x3d5)](e => e['client_id'] === a[jh(0x842)]);
    if (c) {
        Object[jh(0x179)](c, a, {
            'pending': !0x1,
            'failed': !0x1
        }),
        replaceChatNodes(c),
        a[jh(0x842)] && (chatOutbox[jh(0x29f)](a[jh(0x842)]),
        saveChatOutbox());
        return;
    }
    if (a['id'] && chatHist[jh(0x20c)](e => e['id'] === a['id']))
        return;
    const d = isChatSurfaceVisible() && visibleChatBoxNearBottom();
    for (chatHist['push'](a); chatHist[jh(0x64f)] > 0xc8; )
        chatHist['shift']();
    $$('.chat-box:not([data-private])')['forEach'](e => {
        const ji = jh;
        for (e[ji(0x755)](buildMsgNode(a)); e[ji(0x248)][ji(0x64f)] > 0xc8; )
            e['firstChild']['remove']();
        a[ji(0x297)] || a['pending'] || d ? scrollChatBottom(e) : b || showChatJump(e, !0x0);
    }
    ),
    !a[jh(0x297)] && !b && (d ? markChatRead() : bumpUnread());
}
function renderHistInto(a) {
    const jj = odf943efb_P;
    a && (a[jj(0x870)] = '',
    chatHist[jj(0x78d)](b => a['appendChild'](buildMsgNode(b))),
    renderChatPoll(),
    a['scrollTop'] = a[jj(0x52e)],
    requestAnimationFrame( () => {
        const jk = jj;
        a[jk(0x553)] = a[jk(0x52e)];
    }
    ));
}
function setChatStatus(c) {
    const jl = odf943efb_P
      , d = $(jl(0x393))
      , e = $(jl(0x358));
    d && (d[jl(0x333)] = c || ''),
    e && (e[jl(0x333)] = c || '');
}
function chatSoundUrl(a) {
    const jm = odf943efb_P;
    return apiBase() + (a[jm(0x2e3)] || jm(0x8b3) + encodeURIComponent(a['id'])) + jm(0x30a) + encodeURIComponent(localStorage[jm(0x6b6)]('lic_token') || '');
}
function playChatSound(a) {
    const jn = odf943efb_P;
    if (!(!a || !a['id'])) {
        try {
            chatSoundAudio && chatSoundAudio['pause']();
        } catch {}
        chatSoundAudio = new Audio(chatSoundUrl(a)),
        chatSoundAudio[jn(0x4ce)]()[jn(0x375)]( () => toast(jn(0x5b5), !0x0));
    }
}
async function chatSoundBuffer(a) {
    const jo = odf943efb_P;
    if (!a || !a['id'] || !await opBase())
        return null;
    const b = String(a['id'])
      , c = cacheGet(chatSoundBufferCache, b);
    if (c)
        return c;
    const d = await fetch(chatSoundUrl(a), {
        'cache': jo(0x614)
    });
    if (!d['ok'])
        throw new Error(jo(0x464) + d[jo(0x366)]);
    return cacheSet(chatSoundBufferCache, b, await op[jo(0x105)][jo(0x396)](await d[jo(0x799)]()));
}
function cleanupChatCallSound(a, b=!0x0) {
    const jp = odf943efb_P;
    if (!(!a || a[jp(0x184)])) {
        a[jp(0x184)] = !0x0,
        activeChatCallSound === a && (activeChatCallSound = null),
        b && relSound(a);
        try {
            a[jp(0x4ae)] && a[jp(0x4ae)]['disconnect']();
        } catch {}
        try {
            a[jp(0x68a)] && a[jp(0x68a)][jp(0x507)]();
        } catch {}
        try {
            a[jp(0x227)] && a['localGain']['disconnect']();
        } catch {}
        try {
            a[jp(0x679)] && a[jp(0x679)][jp(0x507)]();
        } catch {}
    }
}
function stopChatCallSound() {
    const jq = odf943efb_P
      , a = activeChatCallSound;
    if (a) {
        a[jq(0x4ae)] && (a[jq(0x4ae)][jq(0x599)] = !0x0);
        try {
            a['src'] && a[jq(0x4ae)]['stop']();
        } catch {}
        cleanupChatCallSound(a, !0x0);
    }
}
async function playChatSoundToCall(a) {
    const jr = odf943efb_P;
    if (!(!a || !a['id'])) {
        stopChatCallSound();
        try {
            const b = await chatSoundBuffer(a);
            if (!b)
                return;
            try {
                await op[jr(0x105)][jr(0x465)]();
            } catch {}
            await opGate(jr(0x3c8));
            const c = {}
              , d = op[jr(0x105)][jr(0x6de)]()
              , e = op[jr(0x105)]['createGain']()
              , f = op['ctx'][jr(0x844)]();
            d[jr(0x838)] = b,
            d[jr(0x8ff)] = !0x1,
            e[jr(0x68a)][jr(0x5d9)] = sbMasterVolume(),
            f[jr(0x68a)][jr(0x5d9)] = sbMasterVolume() * sbMonitorVolume(),
            d[jr(0x6bd)](e),
            d[jr(0x6bd)](f);
            const g = audioSyncMs();
            if (g < 0x0) {
                const h = op[jr(0x105)]['createDelay'](AUDIO_SYNC_MAX_MS / 0x3e8);
                h['delayTime'][jr(0x5d9)] = Math[jr(0x884)](g) / 0x3e8,
                e[jr(0x6bd)](h),
                h[jr(0x6bd)](opOutNode()),
                c[jr(0x679)] = h;
            } else
                e[jr(0x6bd)](opOutNode());
            try {
                f[jr(0x6bd)](op[jr(0x105)]['destination']);
            } catch {}
            Object[jr(0x179)](c, {
                'src': d,
                'gain': e,
                'localGain': f
            }),
            activeChatCallSound = c,
            op['sounds']++,
            op[jr(0x17a)] = !0x0,
            d['onended'] = () => {
                d['_ignoreEnded'] || cleanupChatCallSound(c, !0x0);
            }
            ;
            try {
                d[jr(0x27d)](0x0);
            } catch (i) {
                throw cleanupChatCallSound(c, !0x0),
                i;
            }
            toast('\u0417\u0432\u0443\u043A\x20\u0437\u0430\u043F\u0443\u0449\u0435\u043D\x20\u0432\x20\u0437\u0432\u043E\u043D\u043A\u0435');
        } catch (j) {
            toast('\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\x20\u0437\u0432\u0443\u043A\x20\u0432\x20\u0437\u0432\u043E\u043D\u043A\u0435:\x20' + j, !0x0);
        }
    }
}
async function saveChatSoundToBoard(a) {
    const js = odf943efb_P;
    if (!(!a || !a['id']))
        try {
            const b = await fetch(chatSoundUrl(a), {
                'cache': 'no-store'
            });
            if (!b['ok'])
                throw new Error('HTTP\x20' + b[js(0x366)]);
            const c = new Uint8Array(await b[js(0x799)]())
              , d = (a[js(0x451)] || 'webm')[js(0x8c0)](/[^a-z0-9]/gi, '')[js(0x801)](0x0, 0x8) || js(0xbf)
              , e = (a[js(0x8b8)] || js(0x71e))[js(0x407)]()[js(0x801)](0x0, 0x3c)
              , f = (e[js(0x8c0)](/[\\/:*?"<>|]+/g, '_') || js(0x602)) + '.' + d
              , g = await invoke(js(0x37f), {
                'bytes': c,
                'filename': f,
                'label': e,
                'icon': a['icon'] || js(0x6af),
                'pack': null,
                'packSource': null,
                'volume': null,
                'group': null,
                'sortOrder': null,
                'groupColor': null,
                'packColor': null
            });
            g && state[js(0x2e0)][js(0x255)](g),
            renderPads(),
            toast('\u0417\u0432\u0443\u043A\x20\u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\x20\u0432\x20\u0441\u0430\u0443\u043D\u0434\u0431\u043E\u0440\u0434');
        } catch (h) {
            toast(js(0x784) + h, !0x0);
        }
}
function ensurePollHost(a) {
    const jt = odf943efb_P;
    if (!a)
        return null;
    const b = a['closest'](jt(0x2ad)) || a[jt(0x5f5)];
    let c = b?.['querySelector'](jt(0x897));
    return !c && b && (c = document[jt(0x4b4)](jt(0x7df)),
    c[jt(0x4a9)] = jt(0x301),
    b[jt(0x438)](c, a)),
    c;
}
function renderChatPoll() {
    const ju = odf943efb_P;
    $$(ju(0x1f8))['forEach'](a => {
        const jv = ju
          , b = ensurePollHost(a);
        if (!b)
            return;
        if (!activeChatPoll) {
            b[jv(0x474)][jv(0x6f2)](jv(0x4dd)),
            b[jv(0x870)] = '';
            return;
        }
        const c = activeChatPoll
          , d = Object[jv(0x235)](c[jv(0x573)] || {})[jv(0x4f6)]( (f, g) => f + (+g || 0x0), 0x0)
          , e = Math[jv(0x29b)](0x0, Math[jv(0x4a8)](((c[jv(0x183)] || 0x0) * 0x3e8 - Date['now']()) / 0xea60));
        b[jv(0x870)] = '<div\x20class=\x22poll-head\x22><span\x20data-icon=\x22bars\x22></span><b>' + escapeHtml(c[jv(0x67a)]) + jv(0x68b) + (c[jv(0x1e9)] || [])[jv(0x50d)]( (f, g) => {
            const jw = jv
              , h = +(c[jw(0x573)] || {})[g] || 0x0
              , j = d ? Math['round'](h * 0x64 / d) : 0x0;
            return jw(0x197) + g + jw(0x3ea) + escapeHtml(f) + jw(0x1b2) + h + jw(0x391) + j + '%\x22></i></button>';
        }
        )[jv(0x29a)]('') + '</div><div\x20class=\x22poll-foot\x22>' + d + jv(0x4a6) + e + '\x20мин.</div>',
        b[jv(0x474)][jv(0x19d)](jv(0x4dd)),
        injectIcons(b),
        b[jv(0x577)](jv(0x1e3))[jv(0x882)] = () => b[jv(0x474)][jv(0x7bb)](jv(0x6a5)),
        b['querySelectorAll'](jv(0x783))[jv(0x78d)](f => f['onclick'] = () => voteChatPoll(+f[jv(0x2af)][jv(0x2ba)]));
    }
    ),
    updateAdminPollState();
}
function voteChatPoll(a) {
    const jx = odf943efb_P;
    if (!activeChatPoll || !chatWs || chatWs[jx(0x871)] !== WebSocket[jx(0x57f)])
        return toast('\u0427\u0430\u0442\x20\u043F\u0435\u0440\u0435\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F', !0x0);
    chatWs[jx(0x581)](JSON[jx(0x53f)]({
        'poll_id': activeChatPoll['id'],
        'vote': a
    }));
}
function openDock(a) {
    const jy = odf943efb_P
      , b = $('#chatDock')
      , c = $('#chatFab');
    b && (b[jy(0x474)][jy(0x7bb)](jy(0x8c7), a),
    c && c[jy(0x474)][jy(0x7bb)]('hidden', a),
    a && (connectChat(),
    $('#dockLog')?.[jy(0x577)]('.chat-msg') || renderHistInto($(jy(0x818))),
    onChatSurfaceOpened(jy(0x49e)),
    setTimeout( () => $(jy(0x753))?.[jy(0x389)](), 0xf0)));
}
function wireChatDock() {
    const jz = odf943efb_P;
    $(jz(0x18e)) && ($(jz(0x18e))[jz(0x882)] = () => openDock(!0x0)),
    $('#dockClose') && ($(jz(0x7f8))[jz(0x882)] = () => openDock(!0x1));
    const a = () => queueChatInput($(jz(0x753)));
    $('#dockSend') && ($(jz(0x36d))[jz(0x882)] = a),
    $(jz(0x232)) && ($(jz(0x232))[jz(0x882)] = openChatSoundPicker),
    wireChatComposer($(jz(0x753)), a);
}
const CHAT_EMOJIS = '\u{1F600}\x20\u{1F601}\x20\u{1F602}\x20\u{1F923}\x20\u{1F605}\x20\u{1F60A}\x20\u{1F60D}\x20\u{1F618}\x20\u{1F60E}\x20\u{1F914}\x20\u{1F928}\x20\u{1F60F}\x20\u{1F622}\x20\u{1F62D}\x20\u{1F624}\x20\u{1F621}\x20\u{1F92F}\x20\u{1F976}\x20\u{1F631}\x20\u{1F917}\x20\u{1F92B}\x20\u{1F644}\x20\u{1F634}\x20\u{1F924}\x20\u{1F44D}\x20\u{1F44E}\x20\u{1F44A}\x20\u270A\x20\u{1F91D}\x20\u{1F64F}\x20\u{1F44F}\x20\u{1F64C}\x20\u{1F4AA}\x20\u{1F919}\x20\u{1F44C}\x20\u270C\uFE0F\x20\u{1F91E}\x20\u{1F44B}\x20\u{1F918}\x20\u2764\uFE0F\x20\u{1F9E1}\x20\u{1F49B}\x20\u{1F49A}\x20\u{1F499}\x20\u{1F49C}\x20\u{1F5A4}\x20\u{1F494}\x20\u2763\uFE0F\x20\u{1F4AF}\x20\u{1F525}\x20\u26A1\x20\u2728\x20\u{1F31F}\x20\u{1F389}\x20\u{1F38A}\x20\u{1F381}\x20\u{1F3C6}\x20\u{1F3A4}\x20\u{1F3A7}\x20\u{1F3B5}\x20\u{1F3B6}\x20\u{1F4E2}\x20\u{1F50A}\x20\u{1F507}\x20\u{1F480}\x20\u{1F47B}\x20\u{1F921}\x20\u{1F47D}\x20\u{1F916}\x20\u{1F608}\x20\u{1F37F}\x20\u{1F680}\x20\u{1F4A3}\x20\u{1F9E8}\x20\u{1F911}\x20\u{1F4B8}'[odf943efb_P(0x7d3)](/\s+/)[odf943efb_P(0x7a8)](Boolean);
function wireEmojiPicker(a, b, c) {
    const jA = odf943efb_P;
    !a || !b || !c || (a[jA(0x870)] = CHAT_EMOJIS[jA(0x50d)](d => jA(0x6ec) + d + jA(0x1a7))[jA(0x29a)](''),
    b[jA(0x882)] = d => {
        const jB = jA;
        d['stopPropagation'](),
        a['classList']['toggle'](jB(0x4dd));
    }
    ,
    a['addEventListener'](jA(0x626), d => {
        const jC = jA
          , f = d[jC(0x766)][jC(0x43e)](jC(0x73f));
        if (!f)
            return;
        const g = c[jC(0x2eb)] ?? c['value']['length'];
        c[jC(0x5d9)] = c[jC(0x5d9)][jC(0x801)](0x0, g) + f[jC(0x333)] + c[jC(0x5d9)][jC(0x801)](c['selectionEnd'] ?? g),
        c[jC(0x389)]();
        const h = g + f[jC(0x333)][jC(0x64f)];
        try {
            c[jC(0x70d)](h, h);
        } catch {}
    }
    ),
    document[jA(0x5e7)](jA(0x626), d => {
        const jD = jA;
        !a[jD(0x3f5)](d[jD(0x766)]) && !b['contains'](d[jD(0x766)]) && a[jD(0x474)]['remove'](jD(0x4dd));
    }
    ));
}
function wireEmoji() {
    const jE = odf943efb_P;
    wireEmojiPicker($(jE(0x3ab)), $(jE(0x736)), $(jE(0x2cc))),
    wireEmojiPicker($('#dockEmojiPop'), $(jE(0x5bd)), $(jE(0x753))),
    wireEmojiPicker($('#textEmojiPop'), $(jE(0x80e)), $('#textManualMessage'));
}
function connectChat() {
    const jF = odf943efb_P;
    if (licOff()) {
        setChatStatus('');
        return;
    }
    if (!localStorage[jF(0x6b6)](jF(0x811))) {
        setChatStatus(jF(0x4e0));
        return;
    }
    if (chatWs && (chatWs['readyState'] === 0x0 || chatWs[jF(0x871)] === 0x1))
        return;
    setChatStatus(jF(0xeb));
    let a;
    try {
        a = new WebSocket(chatWsUrl()),
        chatWs = a;
    } catch {
        scheduleChatReconnect();
        return;
    }
    a[jF(0x18b)] = () => {
        chatRetryAttempt = 0x0,
        setChatStatus(''),
        flushChatOutbox();
    }
    ,
    a['onmessage'] = b => {
        const jG = jF;
        try {
            const c = JSON[jG(0x46a)](b[jG(0x108)]);
            if (c[jG(0x3c7)] === jG(0x5bb))
                addChatMsg(c);
            else {
                if (c[jG(0x3c7)] === jG(0x6d4))
                    acknowledgeChatMessage(c);
                else {
                    if (c[jG(0x3c7)] === 'poll')
                        activeChatPoll = c[jG(0x8de)] || null,
                        renderChatPoll(),
                        updateAdminPollState();
                    else {
                        if (c[jG(0x3c7)] === jG(0x898))
                            finishChatHistory(+c[jG(0x617)] || 0x0);
                        else {
                            if (c[jG(0x3c7)] === jG(0x4d0)) {
                                const d = +c['id']
                                  , f = chatHist['findIndex'](g => g['id'] === d);
                                f >= 0x0 && chatHist[jG(0x4d8)](f, 0x1),
                                $$('.chat-box:not([data-private])\x20[data-msg-id=\x22' + d + '\x22]')[jG(0x78d)](g => g[jG(0x6f2)]());
                            } else
                                c[jG(0x3c7)] === jG(0x672) ? (chatHist[jG(0x64f)] = 0x0,
                                unread = 0x0,
                                updateUnreadBadge(),
                                $$(jG(0x1f8))[jG(0x78d)](g => g[jG(0x870)] = '')) : c[jG(0x3c7)] === jG(0x785) ? (setChatStatus(c[jG(0x5bb)] || ''),
                                setTimeout( () => setChatStatus(''), 0x1388)) : c[jG(0x3c7)] === 'error' && setChatStatus(c['msg'] === 'banned' ? jG(0xfc) : jG(0x196));
                        }
                    }
                }
            }
        } catch {}
    }
    ,
    a['onclose'] = () => {
        const jH = jF;
        chatWs === a && (chatWs = null,
        setChatStatus(jH(0x909)),
        scheduleChatReconnect());
    }
    ,
    a[jF(0x4df)] = () => {
        const jI = jF;
        try {
            a[jI(0x416)]();
        } catch {}
    }
    ;
}
function wireCommunity() {
    const jJ = odf943efb_P;
    restoreChatOutbox();
    const a = () => queueChatInput($(jJ(0x2cc)));
    $(jJ(0x873)) && ($(jJ(0x873))['onclick'] = a),
    $(jJ(0x623)) && ($('#chatSoundBtn')[jJ(0x882)] = openChatSoundPicker),
    wireChatComposer($('#chatInput'), a),
    $$(jJ(0x6a0))[jJ(0x78d)](b => b[jJ(0x882)] = () => {
        const jK = jJ;
        scrollChatBottom($('#' + b[jK(0x2af)][jK(0x2a0)]), !0x0),
        markChatRead();
    }
    ),
    $$(jJ(0x1f8))[jJ(0x78d)](b => b[jJ(0x5e7)](jJ(0x7d6), () => {
        isNearChatBottom(b) && (showChatJump(b, !0x1),
        isChatSurfaceVisible() && markChatRead());
    }
    , {
        'passive': !0x0
    })),
    connectChat();
}
function scheduleChatReconnect() {
    const jL = odf943efb_P;
    if (clearTimeout(chatRetry),
    !localStorage['getItem'](jL(0x811)))
        return;
    const a = Math['min'](0x3a98, 0x3e8 * 0x2 ** Math[jL(0x75f)](chatRetryAttempt++, 0x4)) + Math[jL(0x5b0)]() * 0x190;
    chatRetry = setTimeout(connectChat, a);
}
function newChatClientId() {
    const jM = odf943efb_P;
    return Date[jM(0x2d3)]()[jM(0x6dd)](0x24) + '-' + Math[jM(0x5b0)]()[jM(0x6dd)](0x24)[jM(0x801)](0x2, 0xc);
}
function saveChatOutbox() {
    const jN = odf943efb_P;
    localStorage[jN(0x378)](chatOutboxKey(), JSON[jN(0x53f)]([...chatOutbox['values']()][jN(0x50d)]( ({failTimer: a, ...b}) => b)[jN(0x801)](-0x14)));
}
function restoreChatOutbox() {
    const jO = odf943efb_P;
    try {
        JSON[jO(0x46a)](localStorage[jO(0x6b6)](chatOutboxKey()) || '[]')[jO(0x78d)](a => {
            const jP = jO;
            if (!a[jP(0x842)] || !a[jP(0x31a)] && a['kind'] !== jP(0x602))
                return;
            const b = {
                ...a,
                'pending': !0x0,
                'failed': !0x1,
                'self': !0x0
            };
            chatOutbox['set'](b[jP(0x842)], b),
            addChatMsg(b);
        }
        );
    } catch {
        localStorage[jO(0x791)](chatOutboxKey());
    }
}
function queueChatInput(a) {
    const jQ = odf943efb_P
      , b = (a?.[jQ(0x5d9)] || '')['trim']();
    if (!b)
        return;
    if (!localStorage['getItem'](jQ(0x811)))
        return toast(jQ(0x1a9), !0x0);
    const c = queueChatMessage({
        'text': b
    });
    return a[jQ(0x5d9)] = '',
    autoGrowChatInput(a),
    flushChatOutbox(),
    c;
}
function queueChatMessage({text: a, kind: kind=odf943efb_P(0x31a), payload: payload=null}) {
    const jR = odf943efb_P;
    if (!localStorage['getItem']('lic_token'))
        return toast(jR(0x421), !0x0),
        null;
    const b = {
        'client_id': newChatClientId(),
        'nick': localStorage[jR(0x6b6)](jR(0x5b6)) || jR(0x428),
        'text': (a || '')[jR(0x801)](0x0, 0x1f4),
        'kind': kind,
        'payload': payload,
        'ts': Math[jR(0x8a9)](Date[jR(0x2d3)]() / 0x3e8),
        'pending': !0x0,
        'self': !0x0
    };
    return isVipAccount() && (b[jR(0x685)] = !0x0,
    b[jR(0x178)] = vipChatStyle()),
    chatOutbox[jR(0xf3)](b['client_id'], b),
    saveChatOutbox(),
    addChatMsg(b),
    flushChatOutbox(),
    b;
}
function flushChatOutbox() {
    const jS = odf943efb_P;
    if (!chatWs || chatWs['readyState'] !== WebSocket[jS(0x57f)]) {
        connectChat();
        return;
    }
    for (const a of chatOutbox[jS(0x235)]()) {
        a[jS(0x34b)] = !0x1,
        replaceChatNodes(a);
        try {
            chatWs[jS(0x581)](JSON[jS(0x53f)]({
                'text': a[jS(0x31a)],
                'client_id': a[jS(0x842)],
                'kind': a['kind'] || 'text',
                'payload': a[jS(0x346)] || null,
                'vip_style': vipChatStyle(a['vip_style'])
            }));
        } catch {
            scheduleChatReconnect();
            return;
        }
        clearTimeout(a['failTimer']),
        a[jS(0x6d7)] = setTimeout( () => {
            const jT = jS;
            chatOutbox[jT(0x403)](a[jT(0x842)]) && (a['failed'] = !0x0,
            replaceChatNodes(a));
        }
        , 0x2710);
    }
}
function acknowledgeChatMessage(a) {
    const jU = odf943efb_P
      , b = chatOutbox[jU(0x730)](a[jU(0x842)]);
    b && (clearTimeout(b['failTimer']),
    b['id'] = +a['id'] || b['id'],
    b[jU(0x853)] = !0x1,
    b[jU(0x34b)] = !0x1,
    chatOutbox[jU(0x29f)](a['client_id']),
    saveChatOutbox(),
    replaceChatNodes(b));
}
function retryChatMessage(a) {
    const b = chatOutbox['get'](a);
    b && (b['failed'] = !0x1,
    replaceChatNodes(b),
    flushChatOutbox());
}
function finishChatHistory(a) {
    const jV = odf943efb_P;
    if (!chatInitialHistoryDone) {
        const b = localStorage[jV(0x6b6)](chatReadKey());
        b == null ? localStorage['setItem'](chatReadKey(), String(a)) : unread = chatHist[jV(0x7a8)](c => c['id'] > (+b || 0x0) && c['nick'] !== localStorage[jV(0x6b6)]('lic_nick'))[jV(0x64f)],
        chatInitialHistoryDone = !0x0,
        updateUnreadBadge();
    }
    isChatSurfaceVisible() && onChatSurfaceOpened($('#chatDock')?.[jV(0x474)][jV(0x3f5)](jV(0x8c7)) ? jV(0x49e) : 'chatBox');
}
function autoGrowChatInput(a) {
    const jW = odf943efb_P;
    a && (a[jW(0x84b)][jW(0x2c8)] = 'auto',
    a[jW(0x84b)][jW(0x2c8)] = Math[jW(0x75f)](a[jW(0x52e)], 0x74) + 'px');
}
function wireChatComposer(a, b) {
    const jX = odf943efb_P;
    a && (a['addEventListener'](jX(0x5e3), () => autoGrowChatInput(a)),
    a[jX(0x5e7)](jX(0x424), c => {
        const jY = jX;
        c['key'] === 'Enter' && !c[jY(0x1cb)] && (c[jY(0x7e1)](),
        b());
    }
    ));
}
function setOnlineChips(a) {
    const jZ = odf943efb_P
      , b = $('#onlineChip');
    b && (b[jZ(0x333)] = a);
    const d = $('#dockOnline');
    d && (d[jZ(0x333)] = a);
}
function openPurchase() {
    const k0 = odf943efb_P;
    invoke(k0(0x546), {
        'target': purchaseUrl || DEFAULT_FUNPAY_URL
    })[k0(0x375)]( () => {}
    );
}
function renderSocialStrip() {
    const k1 = odf943efb_P
      , a = $(k1(0x652));
    if (!a)
        return;
    const b = [[k1(0x15f), k1(0x543), k1(0x4ce)], [k1(0x48a), k1(0x7e7), 'chat'], ['telegram', k1(0x2b4), k1(0x581)], [k1(0x46d), k1(0x715), 'store']][k1(0x7a8)]( ([c]) => socialLinks[c]);
    a[k1(0x870)] = b[k1(0x50d)]( ([c,d,e]) => k1(0x258) + c + k1(0x1d1) + e + '\x22></span>' + d + '</button>')[k1(0x29a)](''),
    injectIcons(a),
    a[k1(0xb6)](k1(0x24d))[k1(0x78d)](c => c[k1(0x882)] = () => invoke('open_external', {
        'target': socialLinks[c[k1(0x2af)][k1(0x8f6)]]
    })[k1(0x375)]( () => {}
    ));
}
async function pollCommunity() {
    const k2 = odf943efb_P;
    if (licOff()) {
        setOnlineChips('\u2014');
        return;
    }
    try {
        const a = await apiPost(k2(0x768), {
            'token': localStorage[k2(0x6b6)](k2(0x811)) || ''
        });
        typeof a[k2(0x2a5)] == k2(0x792) && setOnlineChips(a['online'] + k2(0x7a0)),
        a[k2(0x35c)] ? purchaseUrl = a[k2(0x35c)] : a[k2(0x379)] && (purchaseUrl = a[k2(0x379)]),
        a[k2(0x662)] === !0x1 && document['querySelectorAll'](k2(0xcf))[k2(0x78d)](c => {
            const k3 = k2;
            c[k3(0x333)] = k3(0x929);
        }
        ),
        a[k2(0x826)] && (socialLinks = {
            ...socialLinks,
            ...a[k2(0x826)]
        },
        renderSocialStrip()),
        a['app_config'] && applyRemoteAppConfig(a['app_config']),
        Array[k2(0x5a5)](a['banned_ips']) && (_banlist = new Set(a[k2(0x4ed)]));
        const b = $(k2(0x1b9));
        if (b) {
            if (a[k2(0x1bc)] && a[k2(0x1bc)][k2(0x31a)]) {
                $(k2(0x408))[k2(0x333)] = a[k2(0x1bc)][k2(0x31a)];
                const c = $(k2(0x5ff));
                a[k2(0x1bc)][k2(0x2e3)] ? (c['style']['display'] = '',
                c['onclick'] = () => invoke('open_external', {
                    'target': a[k2(0x1bc)][k2(0x2e3)]
                })[k2(0x375)]( () => {}
                )) : c[k2(0x84b)][k2(0x390)] = 'none',
                b[k2(0x84b)][k2(0x390)] = '';
            } else
                b[k2(0x84b)][k2(0x390)] = k2(0x902);
        }
    } catch {
        setOnlineChips('\u2014');
    }
}
const DROP_AUDIO_EXTS = [odf943efb_P(0x4a7), odf943efb_P(0x2d0), odf943efb_P(0x1c6), 'm4a', odf943efb_P(0x117), odf943efb_P(0x38d), odf943efb_P(0x644), 'webm']
  , DROP_MAX_BYTES = 0x40 * 0x400 * 0x400;
function dropExtOf(a) {
    const k4 = odf943efb_P
      , b = /\.([A-Za-z0-9]{1,8})$/[k4(0x6aa)](String(a || ''));
    return b ? b[0x1][k4(0x860)]() : '';
}
async function uploadDropped(a) {
    const k5 = odf943efb_P
      , b = dropExtOf(a[k5(0x8b8)])
      , c = k5(0x620) + encodeURIComponent(b) + k5(0x723) + encodeURIComponent(a[k5(0x8b8)] || '')
      , d = await fetch(c, {
        'method': 'POST',
        'body': a
    })
      , e = await d[k5(0x5ec)]()[k5(0x375)]( () => null);
    if (!d['ok'])
        throw new Error(e && e[k5(0x725)] || k5(0x6f3) + d[k5(0x366)] + ')');
    if (!e || !e['tmp'])
        throw new Error(k5(0x6ff));
    return e[k5(0x1eb)];
}
function wireDrop() {
    const k8 = odf943efb_P
      , a = b => {
        const k6 = odf943efb_b;
        b[k6(0x7e1)](),
        b[k6(0x6fa)]();
    }
    ;
    window['addEventListener']('dragover', b => {
        const k7 = odf943efb_b;
        a(b),
        b['dataTransfer'] && (b[k7(0x810)][k7(0x75e)] = k7(0x447));
    }
    ),
    window[k8(0x5e7)](k8(0x402), b => {
        const k9 = k8;
        a(b),
        document[k9(0x624)][k9(0x474)][k9(0x19d)]('dropping');
    }
    ),
    window[k8(0x5e7)]('dragleave', b => {
        const ka = k8;
        a(b),
        b[ka(0x347)] || document[ka(0x624)][ka(0x474)][ka(0x6f2)](ka(0x704));
    }
    ),
    window[k8(0x5e7)](k8(0x78a), async b => {
        const kb = k8;
        a(b),
        document['body'][kb(0x474)][kb(0x6f2)](kb(0x704));
        const c = [...b[kb(0x810)] && b[kb(0x810)][kb(0x2c6)] || []];
        if (!c[kb(0x64f)])
            return;
        const d = [...b['dataTransfer'] && b[kb(0x810)][kb(0x30c)] || []]['some'](h => {
            const kc = kb;
            try {
                return h[kc(0x6a4)]?.()?.[kc(0x2f1)];
            } catch {
                return !0x1;
            }
        }
        )
          , g = c[kb(0x7a8)](h => DROP_AUDIO_EXTS[kb(0x74e)](dropExtOf(h['name'])));
        if (!g[kb(0x64f)]) {
            toast(d ? kb(0x19b) : kb(0x85b), !0x0);
            return;
        }
        d && toast(kb(0x817)),
        showView(kb(0x666)),
        toast(kb(0x200));
        try {
            const h = [];
            for (const k of g) {
                if (k[kb(0x6ed)] > DROP_MAX_BYTES) {
                    toast('\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u043B\x20\xAB' + k[kb(0x8b8)] + kb(0x2d1), !0x0);
                    continue;
                }
                try {
                    h['push'](await uploadDropped(k));
                } catch (l) {
                    toast('\xAB' + k[kb(0x8b8)] + kb(0x843) + l[kb(0x835)], !0x0);
                }
            }
            if (!h[kb(0x64f)])
                return;
            const i = await invoke('import_dropped', {
                'paths': h
            });
            i[kb(0x827)] && i[kb(0x827)][kb(0x64f)] && (state[kb(0x2e0)][kb(0x255)](...i[kb(0x827)]),
            renderPads(),
            setSbView(localStorage[kb(0x6b6)]('sbView') || 'grid')),
            i[kb(0x3c0)] && (renderFolder(i[kb(0x3c0)]),
            setSbView(localStorage['getItem'](kb(0x2d6)) || kb(0x924)));
            const j = (i['added'] ? i[kb(0x827)][kb(0x64f)] : 0x0) + (i['folder'] ? i[kb(0x3c0)][kb(0x30c)][kb(0x64f)] : 0x0);
            toast(j ? kb(0x76a) + j : kb(0x85b), !j);
        } catch (m) {
            toast('' + m, !0x0);
        }
    }
    );
}
async function packBlobBuild(a, b, c=odf943efb_P(0x207)) {
    const kd = odf943efb_P
      , d = []
      , e = {
        'version': 0x2,
        'name': a,
        'color': safeAppearanceColor(c),
        'sounds': []
    };
    for (const j of b) {
        let k;
        if (j[kd(0x68e)] === kd(0x3c0))
            k = new Uint8Array(await invoke(kd(0x10d), {
                'path': j['path']
            }));
        else {
            const t = await fetch(convertFileSrc(j[kd(0x7ee)]));
            k = new Uint8Array(await t[kd(0x799)]());
        }
        const l = await normalizePackGain(k)
          , m = packItemExt(j)
          , n = j[kd(0x68e)] === kd(0x3c0) ? kd(0x3c0) : kd(0x4e9)
          , o = normalizeGroupPath(j[kd(0x4fc)] || '')
          , q = n === kd(0x3c0) ? storedGroupColor(kd(0x3c0), o || kd(0x33b), [j], GROUP_COLORS[0x0]) : j['group_color'] || storedGroupColor(kd(0x640) + o, o, [j], e[kd(0x41d)]);
        e['sounds']['push']({
            'label': packItemName(j),
            'icon': packItemIcon(j),
            'len': k[kd(0x64f)],
            'ext': m,
            'volume': l,
            'group': o,
            'order': padOrder(n, j),
            'color': safeAppearanceColor(q, e[kd(0x41d)])
        }),
        d[kd(0x255)](k);
    }
    const f = new TextEncoder()[kd(0x2e9)](JSON[kd(0x53f)](e))
      , g = 0x4 + f[kd(0x64f)] + d[kd(0x4f6)]( (u, v) => u + v[kd(0x64f)], 0x0)
      , h = new Uint8Array(g);
    new DataView(h[kd(0x838)])[kd(0x303)](0x0, f[kd(0x64f)], !0x0),
    h['set'](f, 0x4);
    let i = 0x4 + f[kd(0x64f)];
    for (const u of d)
        h[kd(0xf3)](u, i),
        i += u[kd(0x64f)];
    return h;
}
async function normalizePackGain(a) {
    const ke = odf943efb_P;
    try {
        const b = window[ke(0x54d)] || window[ke(0x35a)];
        if (!b)
            return 0x1;
        const c = op[ke(0x105)] || new b()
          , d = a[ke(0x838)]['slice'](a[ke(0x291)], a['byteOffset'] + a[ke(0x221)])
          , e = await c[ke(0x396)](d)
          , f = e[ke(0x64f)];
        let g = 0x0;
        for (let h = 0x0; h < e[ke(0x147)]; h++) {
            const j = e['getChannelData'](h);
            for (let k = 0x0; k < f; k++)
                g = Math['max'](g, Math['abs'](j[k]));
        }
        return g < 0.001 ? 0x1 : Math[ke(0x29b)](0.15, Math['min'](0x4, 0.89 / g));
    } catch {
        return 0x1;
    }
}
function packBlobParse(a) {
    const kf = odf943efb_P;
    if (!(a instanceof ArrayBuffer) || a[kf(0x221)] < 0x4)
        throw new Error(kf(0x2cf));
    const b = new DataView(a)[kf(0x18f)](0x0, !0x0);
    if (b < 0x2 || b > 0x200 * 0x400 || 0x4 + b > a[kf(0x221)])
        throw new Error(kf(0x4d3));
    const c = JSON[kf(0x46a)](new TextDecoder()[kf(0xe7)](new Uint8Array(a,0x4,b)));
    let d = 0x4 + b;
    const e = [];
    if (!Array[kf(0x5a5)](c[kf(0x2e0)]) || c['sounds'][kf(0x64f)] > 0x50)
        throw new Error(kf(0x195));
    for (const f of c[kf(0x2e0)]) {
        const g = Math[kf(0x29b)](0x0, Math['floor'](+f[kf(0x73d)] || 0x0));
        if (!g || d + g > a[kf(0x221)])
            throw new Error(kf(0x43c));
        e[kf(0x255)]({
            'label': String(f['label'] || kf(0x71e))[kf(0x801)](0x0, 0x3c),
            'icon': PAD_ICON_KEYS[kf(0x74e)](f['icon']) ? f[kf(0x60b)] : kf(0x6af),
            'ext': String(f[kf(0x451)] || 'mp3')['replace'](/[^a-z0-9]/gi, '')[kf(0x801)](0x0, 0x8) || kf(0x4a7),
            'volume': Math[kf(0x29b)](0.05, Math[kf(0x75f)](0x4, +f['volume'] || 0x1)),
            'group': normalizeGroupPath(f[kf(0x4fc)] || ''),
            'order': Math[kf(0x29b)](0x0, Math[kf(0x8a9)](+f['order'] || 0x0)),
            'color': safeAppearanceColor(f[kf(0x41d)], safeAppearanceColor(c[kf(0x41d)])),
            'bytes': new Uint8Array(a,d,g)
        }),
        d += g;
    }
    return {
        'version': +c['version'] || 0x1,
        'name': String(c[kf(0x8b8)] || kf(0x25d))[kf(0x801)](0x0, 0x3c),
        'color': safeAppearanceColor(c[kf(0x41d)]),
        'sounds': e
    };
}
const apiBase = () => LICENSE_API['replace'](/\/$/, '')
  , packModalState = {
    'edit': null
}
  , packPreviewState = {
    'audio': null,
    'urls': []
}
  , packWalletState = {
    'balance': 0x0,
    'regular': 0x0,
    'bonus': 0x0,
    'frozen': !0x1,
    'debt': 0x0,
    'history': [],
    'vipPrices': {
        0x7: 0x258,
        0x1e: 0x4b0
    },
    'transfer': {
        'fee_percent': 0xa,
        'minimum': 0xa,
        'daily_max': 0x7d0,
        'daily_count': 0xa
    }
};
function walletClientId(a) {
    const kg = odf943efb_P
      , b = globalThis[kg(0x385)]?.[kg(0x483)]?.() || Date[kg(0x2d3)]() + '-' + Math[kg(0x5b0)]()[kg(0x6dd)](0x24)['slice'](0x2);
    return a + '-' + b;
}
function applyWalletState(a) {
    const kh = odf943efb_P;
    a && (packWalletState[kh(0x690)] = Math[kh(0x29b)](0x0, +a['regular'] || 0x0),
    packWalletState[kh(0x7f9)] = Math['max'](0x0, +a[kh(0x7f9)] || 0x0),
    packWalletState[kh(0x850)] = Math[kh(0x29b)](0x0, +(a[kh(0x850)] ?? packWalletState['regular'] + packWalletState[kh(0x7f9)]) || 0x0),
    packWalletState['frozen'] = !!a[kh(0x1d8)],
    packWalletState[kh(0x7b7)] = Math['max'](0x0, +a[kh(0x7b7)] || 0x0),
    Array['isArray'](a[kh(0x297)]) && (packWalletState[kh(0x297)] = a[kh(0x297)]));
}
function packItemName(a) {
    const ki = odf943efb_P;
    return a[ki(0x20a)] || a[ki(0x8b8)] || '\u0437\u0432\u0443\u043A';
}
function packItemIcon(a) {
    const kj = odf943efb_P;
    return a[kj(0x60b)] || (a[kj(0x68e)] === kj(0x370) ? kj(0x5d4) : kj(0x6af));
}
function packItemExt(a) {
    const kk = odf943efb_P;
    return a['ext'] ? a[kk(0x451)] : (((a[kk(0x7ee)] || '')['split']('.')['pop']() || (a[kk(0x68e)] === kk(0x370) ? 'wav' : kk(0x4a7)))[kk(0x860)]()[kk(0x743)](/[a-z0-9]+/) || [kk(0x4a7)])[0x0]['slice'](0x0, 0x5);
}
function packItemSource(a) {
    const kl = odf943efb_P;
    return a[kl(0x68e)] === kl(0x370) ? kl(0x654) : a[kl(0x68e)] === kl(0x3c0) ? a[kl(0x4fc)] ? kl(0x37e) + a[kl(0x4fc)] : kl(0x65b) : soundPackName(a) ? kl(0x8b4) + soundPackName(a) : kl(0x160);
}
function folderPackItems() {
    const km = odf943efb_P
      , a = state[km(0x3c0)];
    return !a || !Array['isArray'](a[km(0x30c)]) ? [] : a[km(0x30c)][km(0x50d)](b => ({
        ...b,
        'id': b['path'],
        'kind': km(0x3c0),
        'label': b['name'] || km(0x602),
        'icon': km(0x6af)
    }));
}
async function uploadPack(a, b, c=null, d=odf943efb_P(0x207), f=0x0) {
    const kn = odf943efb_P;
    try {
        const g = await packBlobBuild(a, b, d);
        if (g[kn(0x64f)] > 0xf * 0x400 * 0x400)
            return toast(kn(0x442), !0x0);
        const h = c ? '/packs/update' : kn(0x558)
          , i = apiBase() + h + '?token=' + encodeURIComponent(localStorage[kn(0x6b6)]('lic_token') || '') + (c ? '&id=' + encodeURIComponent(c['id']) : '') + '&name=' + encodeURIComponent(a) + kn(0x86e) + b[kn(0x64f)] + kn(0x6ce) + encodeURIComponent(Math[kn(0x29b)](0x0, Math[kn(0x75f)](0x2710, Math[kn(0x8a9)](+f || 0x0))))
          , k = await (await fetch(i, {
            'method': 'POST',
            'body': g,
            'headers': {
                'content-type': kn(0x204)
            }
        }))[kn(0x5ec)]();
        k['ok'] ? (toast(c ? '\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\x20\u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u044B\x20\u043D\u0430\x20\u043C\u043E\u0434\u0435\u0440\u0430\u0446\u0438\u044E' : kn(0x180)),
        storeLoad(),
        isAdmin() && admLoadPacks()) : toast(k[kn(0x63a)] === kn(0x7c0) ? kn(0x5a1) : k[kn(0x63a)] === kn(0x109) ? kn(0x152) : k[kn(0x63a)] === kn(0x2e5) ? kn(0xfc) : k[kn(0x63a)] === 'not_published' ? kn(0x53c) : kn(0x528), !0x0);
    } catch (l) {
        toast(kn(0x82a) + l, !0x0);
    }
}
async function buyPack(a) {
    const ko = odf943efb_P;
    if (a[ko(0x3de)] || !a[ko(0x109)])
        return !0x0;
    if (packWalletState[ko(0x850)] < a[ko(0x109)])
        return toast(ko(0x7cf) + (a['price'] - packWalletState[ko(0x850)]) + '\x20монет', !0x0),
        !0x1;
    if (window[ko(0x3aa)] && !window[ko(0x3aa)](ko(0x136) + a[ko(0x8b8)] + ko(0x467) + a['price'] + '\x20монет?'))
        return !0x1;
    try {
        const b = await apiPost(ko(0xd6), {
            'token': localStorage[ko(0x6b6)](ko(0x811)) || '',
            'id': a['id'],
            'price': a[ko(0x109)]
        });
        return b['ok'] ? (a['purchased'] = !0x0,
        applyWalletState(b[ko(0x610)] || {
            'balance': b['balance']
        }),
        renderPackWallet(),
        toast(ko(0x3a7)),
        !0x0) : (b['err'] === 'insufficient' ? toast(ko(0x35b), !0x0) : b[ko(0x63a)] === 'price_changed' ? (toast('\u0426\u0435\u043D\u0430\x20\u043D\u0430\u0431\u043E\u0440\u0430\x20\u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0430\u0441\u044C.\x20\u041E\u0431\u043D\u043E\u0432\u043B\u044F\u044E\x20\u043C\u0430\u0433\u0430\u0437\u0438\u043D.', !0x0),
        storeLoad()) : b[ko(0x63a)] === ko(0x8c3) ? toast(ko(0x7f5), !0x0) : toast(ko(0x6e9), !0x0),
        !0x1);
    } catch (c) {
        return toast(ko(0x8eb) + c, !0x0),
        !0x1;
    }
}
async function installPack(a) {
    const kp = odf943efb_P;
    try {
        if (!await buyPack(a))
            return;
        const b = await fetch(apiBase() + kp(0x33a) + encodeURIComponent(localStorage[kp(0x6b6)]('lic_token') || '') + kp(0x276) + a['id']);
        if (!b['ok'])
            throw new Error(kp(0x464) + b[kp(0x366)]);
        const c = packBlobParse(await b[kp(0x799)]())
          , d = state[kp(0x2e0)]['filter'](g => String(g[kp(0x5cc)] || '') === String(a['id']));
        if (d[kp(0x64f)]) {
            if (!(!window['confirm'] || window['confirm'](kp(0x1a3) + a[kp(0x8b8)] + '»\x20уже\x20установлен.\x20Заменить\x20его\x20свежей\x20версией?')))
                return;
            for (const h of d)
                try {
                    await invoke(kp(0x4cc), {
                        'id': h['id']
                    });
                } catch {}
            const g = new Set(d['map'](i => i['id']));
            state[kp(0x2e0)] = state[kp(0x2e0)][kp(0x7a8)](i => !g[kp(0x403)](i['id']));
        }
        let f = 0x0;
        for (const i of c[kp(0x2e0)])
            try {
                const j = await invoke(kp(0x37f), {
                    'bytes': Array[kp(0x2c2)](i[kp(0x1ee)]),
                    'filename': (i[kp(0x20a)] || kp(0x602)) + '.' + (i[kp(0x451)] || kp(0x4a7)),
                    'label': i[kp(0x20a)] || '\u0417\u0432\u0443\u043A',
                    'icon': i[kp(0x60b)] || kp(0x6af),
                    'pack': c[kp(0x8b8)] || a[kp(0x8b8)] || kp(0x4a2),
                    'packSource': String(a['id']),
                    'volume': i[kp(0x535)] || 0x1,
                    'group': i[kp(0x4fc)] || '',
                    'sortOrder': i['order'] || 0x0,
                    'groupColor': i[kp(0x41d)] || c[kp(0x41d)],
                    'packColor': c[kp(0x41d)]
                });
                state[kp(0x2e0)][kp(0x255)](j),
                f++;
            } catch {}
        renderPads(),
        toast(f ? kp(0x12b) + f + '\x20—\x20смотри\x20во\x20вкладке\x20«Звуки»' : kp(0x8bc), !f);
    } catch (k) {
        toast(kp(0x81f) + k, !0x0);
    }
}
async function fetchPackBlob(a, b=!0x1) {
    const kq = odf943efb_P
      , c = await fetch(apiBase() + kq(0x33a) + encodeURIComponent(localStorage[kq(0x6b6)](kq(0x811)) || '') + kq(0x276) + a['id']);
    if (!c['ok'])
        throw new Error(kq(0x464) + c[kq(0x366)]);
    return packBlobParse(await c[kq(0x799)]());
}
async function fetchPackPreview(a) {
    const kr = odf943efb_P
      , b = await fetch(apiBase() + '/packs/preview?token=' + encodeURIComponent(localStorage['getItem'](kr(0x811)) || '') + kr(0x276) + a['id']);
    if (!b['ok'])
        throw new Error(kr(0x464) + b[kr(0x366)]);
    const c = await b['json']();
    if (!c['ok'])
        throw new Error(c[kr(0x63a)] || kr(0x639));
    return c;
}
async function fetchAdminPackBlob(a) {
    const ks = odf943efb_P
      , b = apiBase() + ks(0x520) + encodeURIComponent(localStorage[ks(0x6b6)](ks(0x811)) || '') + '&id=' + encodeURIComponent(a['id']) + (a[ks(0x5ba)] ? ks(0x280) + encodeURIComponent(a['revision_id']) : '')
      , c = await fetch(b);
    if (!c['ok'])
        throw new Error(ks(0x464) + c[ks(0x366)]);
    return packBlobParse(await c['arrayBuffer']());
}
function closePackPreview() {
    const kt = odf943efb_P;
    try {
        packPreviewState['audio'] && packPreviewState[kt(0x2b8)][kt(0x5a7)]();
    } catch {}
    packPreviewState[kt(0x2b8)] = null,
    packPreviewState[kt(0x1c7)][kt(0x78d)](a => URL[kt(0x6a6)](a)),
    packPreviewState[kt(0x1c7)] = [],
    $(kt(0x578))?.[kt(0x474)][kt(0x6f2)](kt(0x4dd));
}
function ensurePackPreviewModal() {
    const ku = odf943efb_P;
    let a = $('#packPreviewModal');
    return a || (a = document[ku(0x4b4)]('div'),
    a[ku(0x4a9)] = ku(0x10f),
    a['id'] = 'packPreviewModal',
    a[ku(0x870)] = '<div\x20class=\x22modal\x20pack-preview-modal\x22>\x0a\x20\x20\x20\x20<h3\x20id=\x22packPreviewTitle\x22>Набор</h3>\x0a\x20\x20\x20\x20<div\x20id=\x22packPreviewList\x22\x20class=\x22pack-preview-list\x22></div>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x22\x20id=\x22packPreviewClose\x22>Закрыть</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn\x20primary\x22\x20id=\x22packPreviewInstall\x22><span\x20class=\x22btn-ico\x22\x20data-icon=\x22down\x22></span>Установить</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>',
    document[ku(0x624)]['appendChild'](a),
    $(ku(0x502), a)['onclick'] = closePackPreview,
    a[ku(0x5e7)](ku(0x626), b => {
        const kv = ku;
        b[kv(0x766)] === a && closePackPreview();
    }
    ),
    injectIcons(a),
    a);
}
async function openPackPreview(a) {
    const kw = odf943efb_P
      , b = ensurePackPreviewModal()
      , c = $('#packPreviewInstall', b);
    c && (c[kw(0x84b)]['display'] = '',
    c[kw(0x927)] = !0x1),
    $('#packPreviewTitle', b)['textContent'] = a[kw(0x8b8)] || kw(0x25d);
    const d = $(kw(0x786), b);
    d[kw(0x870)] = kw(0x641),
    b['classList'][kw(0x19d)]('show');
    try {
        const f = a[kw(0x3de)] || !a[kw(0x109)]
          , g = f ? await fetchPackBlob(a, !0x0) : await fetchPackPreview(a);
        d[kw(0x870)] = '',
        g[kw(0x2e0)][kw(0x64f)] || (d[kw(0x870)] = kw(0x557)),
        g[kw(0x2e0)][kw(0x78d)]( (h, j) => {
            const kx = kw
              , k = document[kx(0x4b4)]('div');
            k[kx(0x4a9)] = kx(0x8f8),
            k[kx(0x870)] = (f ? kx(0x356) : kx(0x265)) + kx(0x57e) + (h[kx(0x60b)] || kx(0x6af)) + kx(0x8bf) + escapeHtml(h[kx(0x20a)] || kx(0x71e)) + kx(0x225) + (h[kx(0x4fc)] ? kx(0x271) + escapeHtml(h[kx(0x4fc)]) + kx(0x225) : '') + '<span\x20class=\x22muted\x20sm\x22>' + escapeHtml((h[kx(0x451)] || 'audio')[kx(0x68d)]()) + kx(0x225),
            injectIcons(k);
            const l = $('.pp-play', k);
            l && (l['onclick'] = () => {
                const ky = kx;
                try {
                    packPreviewState['audio'] && packPreviewState[ky(0x2b8)][ky(0x5a7)]();
                } catch {}
                const m = URL[ky(0x3b9)](new Blob([h[ky(0x1ee)]],{
                    'type': ky(0x797) + (h['ext'] || ky(0x7e2))
                }));
                packPreviewState[ky(0x1c7)]['push'](m);
                const n = new Audio(m);
                n[ky(0x535)] = Math[ky(0x29b)](0.05, Math[ky(0x75f)](0x1, +(h['volume'] || 0x1))),
                packPreviewState[ky(0x2b8)] = n,
                n[ky(0x4ce)]()[ky(0x375)]( () => toast(ky(0x53b), !0x0));
            }
            ),
            d[kx(0x755)](k);
        }
        ),
        c['innerHTML'] = a[kw(0x109)] && !a[kw(0x3de)] ? '<span\x20class=\x22btn-ico\x22\x20data-icon=\x22coin\x22></span>Купить\x20за\x20' + a[kw(0x109)] : '<span\x20class=\x22btn-ico\x22\x20data-icon=\x22down\x22></span>\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C',
        injectIcons(c),
        $(kw(0x267), b)['onclick'] = async () => {
            const kz = kw
              , h = $(kz(0x267), b);
            h[kz(0x927)] = !0x0,
            await installPack(a),
            h['disabled'] = !0x1,
            a[kz(0x3de)] && closePackPreview();
        }
        ;
    } catch (h) {
        d['innerHTML'] = kw(0x8b1) + escapeHtml('' + h) + kw(0x225);
    }
}
function odf943efb_b(a, b) {
    a = a - 0xac;
    const c = odf943efb_a();
    let d = c[a];
    if (odf943efb_b['FKSyld'] === undefined) {
        var e = function(i) {
            const j = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';
            let l = ''
              , m = '';
            for (let n = 0x0, o, p, q = 0x0; p = i['charAt'](q++); ~p && (o = n % 0x4 ? o * 0x40 + p : p,
            n++ % 0x4) ? l += String['fromCharCode'](0xff & o >> (-0x2 * n & 0x6)) : 0x0) {
                p = j['indexOf'](p);
            }
            for (let r = 0x0, s = l['length']; r < s; r++) {
                m += '%' + ('00' + l['charCodeAt'](r)['toString'](0x10))['slice'](-0x2);
            }
            return decodeURIComponent(m);
        };
        odf943efb_b['WVahVS'] = e,
        odf943efb_b['WgDvTb'] = {},
        odf943efb_b['FKSyld'] = !![];
    }
    const f = c[0x0]
      , g = a + f
      , h = odf943efb_b['WgDvTb'][g];
    return !h ? (d = odf943efb_b['WVahVS'](d),
    odf943efb_b['WgDvTb'][g] = d) : d = h,
    d;
}
async function openAdminPackPreview(a) {
    const kA = odf943efb_P
      , b = ensurePackPreviewModal()
      , c = $('#packPreviewInstall', b);
    c && (c[kA(0x84b)][kA(0x390)] = kA(0x902),
    c[kA(0x882)] = null,
    c[kA(0x927)] = !0x1),
    $(kA(0x331), b)[kA(0x333)] = (a['kind'] === kA(0x751) ? '\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F:\x20' : '') + (a['name'] || kA(0x25d));
    const d = $(kA(0x786), b);
    d['innerHTML'] = kA(0x641),
    b['classList'][kA(0x19d)](kA(0x4dd));
    try {
        const f = await fetchAdminPackBlob(a);
        d[kA(0x870)] = '',
        f['sounds'][kA(0x64f)] || (d[kA(0x870)] = '<span\x20class=\x22muted\x20sm\x22>\u041D\u0430\u0431\u043E\u0440\x20\u043F\u0443\u0441\u0442</span>'),
        f[kA(0x2e0)][kA(0x78d)](g => {
            const kB = kA
              , h = document[kB(0x4b4)](kB(0x7df));
            h[kB(0x4a9)] = 'pack-preview-row',
            h[kB(0x870)] = kB(0x3b6) + (g[kB(0x60b)] || kB(0x6af)) + kB(0x8bf) + escapeHtml(g[kB(0x20a)] || '\u0417\u0432\u0443\u043A') + kB(0x225) + (g['group'] ? '<span\x20class=\x22muted\x20sm\x22>' + escapeHtml(g[kB(0x4fc)]) + kB(0x225) : '') + kB(0x271) + escapeHtml((g[kB(0x451)] || kB(0x2b8))[kB(0x68d)]()) + kB(0x225),
            injectIcons(h),
            $(kB(0x7a5), h)[kB(0x882)] = () => {
                const kC = kB;
                try {
                    packPreviewState['audio'] && packPreviewState[kC(0x2b8)][kC(0x5a7)]();
                } catch {}
                const i = URL[kC(0x3b9)](new Blob([g[kC(0x1ee)]],{
                    'type': kC(0x797) + (g[kC(0x451)] || kC(0x7e2))
                }));
                packPreviewState['urls'][kC(0x255)](i);
                const j = new Audio(i);
                j['volume'] = Math[kC(0x29b)](0.05, Math[kC(0x75f)](0x1, +(g[kC(0x535)] || 0x1))),
                packPreviewState[kC(0x2b8)] = j,
                j[kC(0x4ce)]()[kC(0x375)]( () => toast(kC(0x53b), !0x0));
            }
            ,
            d[kB(0x755)](h);
        }
        );
    } catch (g) {
        d['innerHTML'] = kA(0x8b1) + escapeHtml('' + g) + kA(0x225);
    }
}
async function likePack(a, b) {
    const kD = odf943efb_P
      , c = !a[kD(0x302)];
    try {
        const d = await apiPost(kD(0x399), {
            'token': localStorage[kD(0x6b6)]('lic_token') || '',
            'id': a['id'],
            'on': c
        });
        d['ok'] && (a[kD(0x302)] = c,
        a['likes'] = d[kD(0x6d0)],
        b[kD(0x474)][kD(0x7bb)]('on', c),
        (b['querySelector'](kD(0x2ef)) || b[kD(0x577)](kD(0x3b1)))[kD(0x333)] = d[kD(0x6d0)]);
    } catch {}
}
async function deletePack(a) {
    const kE = odf943efb_P;
    if (!(!window[kE(0x3aa)] || !window[kE(0x3aa)](kE(0x7fa) + a[kE(0x8b8)] + kE(0x65f))))
        try {
            const b = await apiPost(kE(0x4f1), {
                'token': localStorage[kE(0x6b6)](kE(0x811)) || '',
                'id': a['id']
            });
            b['ok'] ? (toast('\u041D\u0430\u0431\u043E\u0440\x20\u0443\u0434\u0430\u043B\u0451\u043D'),
            storeLoad(),
            isAdmin() && admLoadPacks()) : toast(b[kE(0x63a)] || '\u041D\u0435\x20\u0443\u0434\u0430\u043B\u043E\u0441\u044C\x20\u0443\u0434\u0430\u043B\u0438\u0442\u044C', !0x0);
        } catch (c) {
            toast(kE(0x5be) + c, !0x0);
        }
}
function renderPackWallet() {
    const kF = odf943efb_P
      , a = $('#packWalletBalance');
    a && (a[kF(0x333)] = packWalletState[kF(0x850)] + kF(0x3a6));
    const b = $(kF(0x119));
    b && (b[kF(0x333)] = packWalletState[kF(0x1d8)] ? kF(0x5f7) : kF(0x314) + packWalletState[kF(0x690)] + kF(0x7c8) + packWalletState['bonus'] + (packWalletState[kF(0x7b7)] ? kF(0x281) + packWalletState[kF(0x7b7)] : ''),
    b[kF(0x474)][kF(0x7bb)](kF(0x7ab), packWalletState['frozen']));
}
function walletErrorText(a) {
    const kG = odf943efb_P;
    return {
        'recipient': kG(0x1b5),
        'self': kG(0x649),
        'account_too_new': 'Переводы\x20откроются\x20примерно\x20через\x20' + (a[kG(0x3f6)] || 0x1) + '\x20ч',
        'no_activity': kG(0x3e4),
        'daily_count': '\u0421\u0435\u0433\u043E\u0434\u043D\u044F\x20\u0443\u0436\u0435\x20\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E\x20\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435\x20\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\x20\u043F\u0435\u0440\u0435\u0432\u043E\u0434\u043E\u0432',
        'daily_amount': kG(0x77a) + (a[kG(0x327)] || 0x0) + kG(0x3a6),
        'regular_only': 'Переводить\x20можно\x20только\x20обычные\x20монеты.\x20Доступно:\x20' + (a[kG(0x690)] || 0x0),
        'insufficient': kG(0x35b),
        'wallet_frozen': kG(0x7f5),
        'banned': kG(0x4de),
        'rate_limited': kG(0x2ff)
    }[a[kG(0x63a)]] || kG(0x5c9);
}
function ensureWalletActionModal() {
    const kH = odf943efb_P;
    let a = $(kH(0x27e));
    return a || (a = document[kH(0x4b4)](kH(0x7df)),
    a['className'] = kH(0x10f),
    a['id'] = kH(0x243),
    a[kH(0x870)] = kH(0x31d),
    document[kH(0x624)]['appendChild'](a),
    a[kH(0x5e7)](kH(0x626), b => {
        const kI = kH;
        (b[kI(0x766)] === a || b['target']['closest'](kI(0x3d8))) && a['classList']['remove'](kI(0x4dd));
    }
    ),
    injectIcons(a),
    a);
}
function openWalletTransfer() {
    const kJ = odf943efb_P
      , a = ensureWalletActionModal();
    $(kJ(0x5d5), a)[kJ(0x333)] = '\u041F\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438\x20\u043C\u043E\u043D\u0435\u0442\u044B';
    const b = $('#walletActionBody', a);
    b[kJ(0x870)] = kJ(0x7c3) + packWalletState[kJ(0x690)] + kJ(0x540) + packWalletState[kJ(0x42f)][kJ(0x3f3)] + kJ(0x4d6) + packWalletState[kJ(0x42f)][kJ(0x8f2)] + kJ(0x57b) + packWalletState[kJ(0x42f)][kJ(0x3f3)] + kJ(0x6ef) + packWalletState['transfer'][kJ(0xe2)] + kJ(0x635);
    const c = $(kJ(0x360), a)
      , d = $('#walletTransferSubmit', a)
      , e = () => {
        const kK = kJ
          , f = Math[kK(0x29b)](0x0, Math[kK(0x8a9)](+c['value'] || 0x0))
          , g = Math[kK(0x29b)](0x1, Math[kK(0x4a8)](f * packWalletState[kK(0x42f)][kK(0xe2)] / 0x64));
        $(kK(0x54a), a)[kK(0x333)] = g,
        $(kK(0x8b7), a)[kK(0x333)] = Math['max'](0x0, f - g),
        d[kK(0x927)] = packWalletState[kK(0x1d8)] || f < packWalletState[kK(0x42f)]['minimum'] || f > packWalletState['transfer'][kK(0x8f2)] || f > packWalletState['regular'];
    }
    ;
    c['oninput'] = e,
    e(),
    d[kJ(0x882)] = async () => {
        const kL = kJ
          , f = ($(kL(0x3f7), a)[kL(0x5d9)] || '')[kL(0x407)]()
          , g = Math['floor'](+c[kL(0x5d9)] || 0x0)
          , h = $(kL(0xd3), a);
        if (!f) {
            h[kL(0x333)] = kL(0x47d);
            return;
        }
        d[kL(0x927)] = !0x0,
        h[kL(0x333)] = '';
        try {
            const i = await apiPost(kL(0x6c1), {
                'token': localStorage['getItem']('lic_token') || '',
                'recipient': f,
                'amount': g,
                'client_id': walletClientId(kL(0x42f))
            });
            if (!i['ok']) {
                h[kL(0x333)] = walletErrorText(i);
                return;
            }
            applyWalletState(i[kL(0x610)]),
            renderPackWallet(),
            a[kL(0x474)]['remove']('show'),
            toast('@' + i[kL(0x63f)] + kL(0x928) + i[kL(0x81e)] + '\x20монет'),
            storeLoad();
        } catch {
            h[kL(0x333)] = kL(0x30f);
        } finally {
            d[kL(0x927)] = !0x1,
            e();
        }
    }
    ,
    a[kJ(0x474)][kJ(0x19d)]('show');
}
function openWalletVip() {
    const kM = odf943efb_P
      , a = ensureWalletActionModal();
    $('#walletActionTitle', a)[kM(0x333)] = kM(0x929);
    const b = $(kM(0x618), a)
      , c = Object[kM(0x8ac)](packWalletState['vipPrices'])[kM(0x50d)]( ([d,e]) => kM(0x2b6) + d + '\x22\x20data-vip-price=\x22' + e + kM(0x65a) + d + kM(0x3d2) + e + kM(0x82d))[kM(0x29a)]('');
    b[kM(0x870)] = kM(0x2a9) + packWalletState[kM(0x850)] + kM(0x8cd) + c + kM(0x6e8),
    $$(kM(0x59a), b)[kM(0x78d)](d => {
        const kN = kM;
        d['disabled'] = packWalletState[kN(0x1d8)] || packWalletState[kN(0x850)] < +d[kN(0x2af)][kN(0x312)],
        d['onclick'] = async () => {
            const kO = kN;
            d['disabled'] = !0x0;
            const e = +d[kO(0x2af)][kO(0x912)]
              , f = +d[kO(0x2af)][kO(0x312)]
              , g = $('#walletVipError', a);
            g[kO(0x333)] = '';
            try {
                const h = await apiPost(kO(0x895), {
                    'token': localStorage['getItem'](kO(0x811)) || '',
                    'days': e,
                    'price': f,
                    'client_id': walletClientId(kO(0x685))
                });
                if (!h['ok']) {
                    g[kO(0x333)] = walletErrorText(h);
                    return;
                }
                applyWalletState(h['wallet']),
                renderPackWallet(),
                a[kO(0x474)][kO(0x6f2)]('show'),
                toast('VIP\x20на\x20' + e + kO(0x506)),
                refreshStatus(),
                storeLoad();
            } catch {
                g[kO(0x333)] = kO(0x30f);
            } finally {
                d['disabled'] = !0x1;
            }
        }
        ;
    }
    ),
    a[kM(0x474)][kM(0x19d)](kM(0x4dd));
}
function openPackWalletHistory() {
    const kP = odf943efb_P;
    let a = $(kP(0x4b0));
    a || (a = document[kP(0x4b4)]('div'),
    a['className'] = 'modal-bg',
    a['id'] = kP(0x671),
    a[kP(0x870)] = '<div\x20class=\x22modal\x20pack-wallet-modal\x22>\x0a\x20\x20\x20\x20\x20\x20<h3>История\x20кошелька</h3>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22pack-wallet-history\x22></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22><button\x20class=\x22btn\x20primary\x22\x20data-close-wallet>Закрыть</button></div>\x0a\x20\x20\x20\x20</div>',
    document[kP(0x624)][kP(0x755)](a),
    a[kP(0x5e7)](kP(0x626), c => {
        const kQ = kP;
        (c[kQ(0x766)] === a || c[kQ(0x766)][kQ(0x43e)](kQ(0x129))) && a[kQ(0x474)]['remove'](kQ(0x4dd));
    }
    ));
    const b = $('.pack-wallet-history', a);
    b[kP(0x870)] = packWalletState[kP(0x297)]['length'] ? packWalletState[kP(0x297)][kP(0x50d)](c => {
        const kR = kP
          , d = +c[kR(0x1dc)] || 0x0
          , e = c['ts'] ? new Date(c['ts'])[kR(0x32e)]('ru-RU', {
            'day': '2-digit',
            'month': kR(0x1f2),
            'hour': '2-digit',
            'minute': kR(0x283)
        }) : ''
          , f = c[kR(0x787)] === kR(0x7f9) ? kR(0x5ad) : c[kR(0x787)] === 'regular' ? '\u043E\u0431\u044B\u0447\u043D\u044B\u0435' : '';
        return kR(0x7b9) + escapeHtml(c[kR(0x6af)] || kR(0x64b)) + kR(0x282) + escapeHtml(e) + (f ? '\x20·\x20' + f : '') + kR(0x148) + (d > 0x0 ? 'positive' : d < 0x0 ? kR(0x566) : '') + '\x22>' + (d > 0x0 ? '+' : '') + d + kR(0x120);
    }
    )[kP(0x29a)]('') : kP(0x525),
    a['classList'][kP(0x19d)](kP(0x4dd));
}
function renderPackList(a) {
    const kS = odf943efb_P
      , b = $('#packList');
    if (b) {
        if (!a[kS(0x64f)]) {
            b['innerHTML'] = kS(0x3b8),
            injectIcons(b),
            b['querySelector'](kS(0x449))?.['addEventListener'](kS(0x626), () => openPackModal());
            return;
        }
        b[kS(0x870)] = '',
        a[kS(0x78d)](c => {
            const kT = kS
              , e = c[kT(0x114)] || isAdmin()
              , f = c[kT(0x83a)] ? kT(0x922) : ''
              , g = +c[kT(0x109)] > 0x0
              , h = g ? kT(0x223) + c['price'] + kT(0x28f) : kT(0x533)
              , i = g && !c[kT(0x3de)] ? kT(0x79a) + c[kT(0x109)] : kT(0x4c0)
              , j = document[kT(0x4b4)](kT(0x7df));
            j['className'] = kT(0x903),
            j['innerHTML'] = '<div\x20class=\x22pk-meta\x22><b>' + escapeHtml(c[kT(0x8b8)]) + kT(0x125) + escapeHtml(c['author'] || '?') + kT(0xd4) + c[kT(0x2e0)] + '\x20звуков</span>' + h + '<span\x20class=\x22pk-badge\x22>⬇\x20' + c[kT(0x26b)] + kT(0x225) + f + '</div></div><div\x20class=\x22pk-actions\x22><button\x20class=\x22pk-like' + (c[kT(0x302)] ? kT(0x1aa) : '') + kT(0xfd) + c['likes'] + '</span></button><button\x20class=\x22btn\x20sm\x20pk-preview\x22><span\x20class=\x22btn-ico\x22\x20data-icon=\x22play\x22></span>Просмотр</button><button\x20class=\x22btn\x20primary\x20sm\x20pk-install\x22><span\x20class=\x22btn-ico\x22\x20data-icon=\x22' + (g && !c[kT(0x3de)] ? kT(0x7a9) : kT(0x2bd)) + kT(0x3bf) + i + kT(0x1a7) + (e ? kT(0x3c1) : '') + '</div>',
            injectIcons(j),
            j[kT(0x577)](kT(0x2cd))[kT(0x882)] = k => likePack(c, k[kT(0x523)]),
            j[kT(0x577)](kT(0x16d))['onclick'] = async k => {
                const kU = kT
                  , l = k[kU(0x523)];
                l[kU(0x927)] = !0x0,
                await openPackPreview(c),
                l['disabled'] = !0x1;
            }
            ,
            j['querySelector'](kT(0x3f8))[kT(0x882)] = async k => {
                const kV = kT
                  , l = k['currentTarget'];
                l[kV(0x927)] = !0x0,
                await installPack(c),
                l['disabled'] = !0x1;
            }
            ,
            j[kT(0x577)](kT(0x434))?.[kT(0x5e7)]('click', () => openPackModal(c)),
            j[kT(0x577)](kT(0x1ac))?.[kT(0x5e7)]('click', () => deletePack(c)),
            b['appendChild'](j);
        }
        );
    }
}
function renderMyPacks(a) {
    const kW = odf943efb_P
      , b = $(kW(0x5dc));
    b && (b[kW(0x870)] = '',
    a[kW(0x78d)](c => {
        const kX = kW
          , e = c[kX(0x366)] === 'approved' ? '\u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u043D' : c['status'] === kX(0x5d8) ? '\u0441\u043D\u044F\u0442\x20\u0441\x20\u043F\u0440\u043E\u0434\u0430\u0436\u0438' : c[kX(0x366)] === 'rejected' ? kX(0x318) : kX(0x881)
          , f = c['pending_revision'] ? kX(0xec) : ''
          , g = document[kX(0x4b4)]('div');
        g[kX(0x4a9)] = kX(0x1d4),
        g[kX(0x870)] = '<span\x20class=\x22pack-mine-title\x22><b>' + escapeHtml(c[kX(0x8b8)]) + kX(0x820) + e + kX(0x19c) + (c[kX(0x109)] ? c[kX(0x109)] + kX(0x3a6) : '\u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E') + kX(0x225) + (c[kX(0x109)] ? kX(0x8ad) + (c[kX(0x5e5)] || 0x0) + kX(0x496) + (c[kX(0x172)] || 0x0) + '\x20заработано</span>' : '') + f + kX(0x8a5) + c[kX(0x6d0)] + kX(0x33d),
        injectIcons(g),
        g[kX(0x577)](kX(0x434))[kX(0x882)] = () => openPackModal(c),
        g[kX(0x577)](kX(0x1ac))['onclick'] = () => deletePack(c),
        b['appendChild'](g);
    }
    ));
}
async function storeLoad() {
    const kY = odf943efb_P
      , a = $(kY(0x6b3));
    if (a && (a[kY(0x870)] = kY(0x641)),
    !localStorage[kY(0x6b6)](kY(0x811))) {
        a && (a[kY(0x870)] = kY(0x350));
        return;
    }
    try {
        const b = await apiPost(kY(0x3cc), {
            'token': localStorage[kY(0x6b6)](kY(0x811)) || ''
        });
        if (!b['ok'])
            throw new Error(b['err'] || '');
        applyWalletState(b[kY(0x610)]),
        b[kY(0x3eb)] && (packWalletState[kY(0x21d)] = b[kY(0x3eb)]),
        b['transfer'] && (packWalletState['transfer'] = {
            ...packWalletState['transfer'],
            ...b[kY(0x42f)]
        }),
        renderPackWallet(),
        renderPackList(b[kY(0x124)] || []),
        renderMyPacks(b[kY(0x114)] || []);
    } catch (c) {
        a && (a[kY(0x870)] = kY(0x8b1) + escapeHtml('' + c) + kY(0x225));
    }
}
async function openPackModal(a=null) {
    const kZ = odf943efb_P;
    let b = [];
    try {
        b = (await invoke(kZ(0x47e)))[kZ(0x50d)](l => ({
            ...l,
            'kind': kZ(0x370),
            'label': l['name'] || kZ(0xdf),
            'icon': kZ(0x5d4),
            'ext': kZ(0x2d0)
        }));
    } catch {}
    const c = [...sortPadItems(state[kZ(0x2e0)])[kZ(0x50d)](l => ({
        ...l,
        'kind': 'sound'
    })), ...sortPadItems(folderPackItems(), kZ(0x3c0)), ...b];
    if (!c[kZ(0x64f)])
        return toast(kZ(0x754), !0x0);
    const d = $('#packPick');
    if (!d)
        return;
    d[kZ(0x870)] = '',
    packModalState[kZ(0x628)] = a,
    $(kZ(0x488))['textContent'] = a ? kZ(0x911) : kZ(0x2c5),
    $(kZ(0x2d9))[kZ(0x333)] = a ? kZ(0x56c) : kZ(0x4c6),
    $(kZ(0x42e))[kZ(0x5d9)] = a?.[kZ(0x8b8)] || '',
    $('#packColor')[kZ(0x5d9)] = safeAppearanceColor(localStorage['getItem'](kZ(0x6da)) || '#6c8cff');
    const e = Math['max'](0x0, Math['min'](0x2710, +(a?.[kZ(0x109)] || 0x0)))
      , f = $(kZ(0x14b))
      , g = $('#packPriceWrap')
      , h = $$(kZ(0x2ac), $(kZ(0x563)));
    let i = e || 0x64;
    const j = l => {
        const l0 = kZ
          , m = l === l0(0x487);
        h['forEach'](n => n[l0(0x474)][l0(0x7bb)]('on', n[l0(0x2af)]['packPriceMode'] === l)),
        g[l0(0x474)][l0(0x7bb)](l0(0x4dd), m),
        m ? f[l0(0x5d9)] = String(Math['max'](0x1e, i)) : (+f[l0(0x5d9)] >= 0x1e && (i = +f[l0(0x5d9)]),
        f[l0(0x5d9)] = '0'),
        k();
    }
      , k = () => {
        const l1 = kZ
          , l = Math[l1(0x29b)](0x0, Math[l1(0x8a9)](+f[l1(0x5d9)] || 0x0))
          , m = l ? Math['max'](0x1, Math[l1(0x4a8)](l * 0.15)) : 0x0;
        $(l1(0x107))['textContent'] = l ? 'После\x20продажи\x20ты\x20получишь\x20' + (l - m) + l1(0x536) + m : '\u041F\u0430\u043A\x20\u0441\u043C\u043E\u0433\u0443\u0442\x20\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\x20\u0432\u0441\u0435\x20\u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E';
    }
    ;
    f[kZ(0x7da)] = () => {
        const l2 = kZ;
        +f['value'] >= 0x1e && (i = +f[l2(0x5d9)]),
        k();
    }
    ,
    f[kZ(0x5d9)] = e || 0x64,
    h[kZ(0x78d)](l => l[kZ(0x882)] = () => j(l[kZ(0x2af)][kZ(0x829)])),
    j(e ? kZ(0x487) : kZ(0xb2)),
    c['forEach'](l => {
        const l3 = kZ
          , m = normalizeGroupPath(l['group'] || '')
          , n = document[l3(0x4b4)](l3(0x20a));
        n[l3(0x4a9)] = 'pack-pick-row',
        n['innerHTML'] = '<input\x20type=\x22checkbox\x22\x20value=\x22' + escapeHtml(l[l3(0x68e)] + ':' + l['id']) + '\x22\x20checked><span\x20class=\x22pad-ico\x22\x20data-icon=\x22' + packItemIcon(l) + '\x22></span><span\x20class=\x22ppr-name\x22>' + escapeHtml(packItemName(l)) + '</span><span\x20class=\x22ppr-path\x22>' + escapeHtml(m || packItemSource(l)) + l3(0x225),
        n[l3(0xd2)] = l,
        d[l3(0x755)](n);
    }
    ),
    injectIcons(d),
    $('#packModal')[kZ(0x474)]['add'](kZ(0x4dd));
}
function wireStore() {
    const l4 = odf943efb_P;
    $(l4(0x56d)) && ($(l4(0x56d))[l4(0x882)] = () => openPackModal()),
    $(l4(0x674)) && ($(l4(0x674))['onclick'] = () => {
        const l5 = l4;
        packModalState[l5(0x628)] = null,
        $('#packModal')['classList'][l5(0x6f2)](l5(0x4dd));
    }
    ),
    $('#packRefresh') && ($(l4(0x712))[l4(0x882)] = storeLoad),
    $(l4(0x4bf)) && ($(l4(0x4bf))['onclick'] = openPackWalletHistory),
    $(l4(0x920)) && ($('#packWalletTransfer')[l4(0x882)] = openWalletTransfer),
    $(l4(0x8c4)) && ($(l4(0x8c4))[l4(0x882)] = openWalletVip),
    $(l4(0x2d9)) && ($('#packOk')[l4(0x882)] = async () => {
        const l6 = l4
          , a = ($(l6(0x42e))['value'] || '')['trim']();
        if (a[l6(0x64f)] < 0x2)
            return toast(l6(0x186), !0x0);
        const b = $$('#packPick\x20input:checked')['map'](f => f[l6(0x43e)](l6(0x6cc)))[l6(0x7a8)](Boolean);
        if (!b[l6(0x64f)])
            return toast(l6(0x4c4), !0x0);
        const c = b['map'](f => f[l6(0xd2)])[l6(0x7a8)](Boolean)
          , d = safeAppearanceColor($(l6(0x2c7))?.[l6(0x5d9)] || '#6c8cff')
          , e = Math[l6(0x29b)](0x0, Math['min'](0x2710, Math[l6(0x8a9)](+($(l6(0x14b))?.[l6(0x5d9)] || 0x0))));
        if (e > 0x0 && e < 0x1e)
            return toast(l6(0x6d9), !0x0);
        localStorage[l6(0x378)](l6(0x6da), d),
        $(l6(0x563))[l6(0x474)][l6(0x6f2)]('show'),
        toast(packModalState[l6(0x628)] ? l6(0xb8) : l6(0x1c9)),
        await uploadPack(a, c, packModalState[l6(0x628)], d, e),
        packModalState['edit'] = null;
    }
    );
}
async function admLoadPacks() {
    const l7 = odf943efb_P
      , a = $(l7(0x22b));
    if (!(!a || !isAdmin() || licOff())) {
        a[l7(0x870)] = l7(0x641);
        try {
            const b = await admPost(l7(0x363));
            if (!b['ok'])
                throw new Error(b[l7(0x63a)] || '');
            if (!b[l7(0x124)][l7(0x64f)]) {
                a[l7(0x870)] = '<div\x20class=\x22empty-state\x22><b>\u041E\u0447\u0435\u0440\u0435\u0434\u044C\x20\u043C\u043E\u0434\u0435\u0440\u0430\u0446\u0438\u0438\x20\u043F\u0443\u0441\u0442\u0430</b><span>\u041D\u043E\u0432\u044B\u0435\x20\u043D\u0430\u0431\u043E\u0440\u044B\x20\u0437\u0432\u0443\u043A\u043E\u0432\x20\u0438\x20\u043F\u0440\u0430\u0432\u043A\u0438\x20\u043F\u043E\u044F\u0432\u044F\u0442\u0441\u044F\x20\u0437\u0434\u0435\u0441\u044C\x20\u043F\u043E\u0441\u043B\u0435\x20\u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438.</span></div>';
                return;
            }
            a['innerHTML'] = '',
            b[l7(0x124)][l7(0x78d)](c => {
                const l8 = l7
                  , f = document[l8(0x4b4)]('div');
                f[l8(0x4a9)] = 'adm-pack';
                const g = c[l8(0x68e)] === l8(0x751)
                  , h = g ? l8(0x32f) + escapeHtml(c[l8(0x576)] || '?') + l8(0x4be) + escapeHtml(c[l8(0x8b8)]) + l8(0x2b9) : '';
                f[l8(0x870)] = l8(0x2b7) + (g ? l8(0x70c) : '') + escapeHtml(c[l8(0x8b8)]) + l8(0x45e) + escapeHtml(c[l8(0x220)] || '?') + '\x20·\x20' + h + c[l8(0x2e0)] + '\x20звуков\x20·\x20' + Math[l8(0x7c9)](c[l8(0x1ee)] / 0x400) + l8(0x650) + (c[l8(0x109)] ? c['price'] + l8(0x3a6) : '\u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E') + l8(0x73e),
                injectIcons(f),
                f['onclick'] = async i => {
                    const l9 = l8
                      , k = i['target']['closest'](l9(0x80b));
                    if (k) {
                        k[l9(0x927)] = !0x0,
                        await openAdminPackPreview(c),
                        k[l9(0x927)] = !0x1;
                        return;
                    }
                    const l = i[l9(0x766)][l9(0x43e)](l9(0x588));
                    if (l) {
                        l[l9(0x927)] = !0x0;
                        try {
                            const m = {
                                'id': c['id'],
                                'act': l[l9(0x2af)][l9(0x7d7)]
                            };
                            c[l9(0x5ba)] && (m[l9(0x5ba)] = c['revision_id']);
                            const n = await admPost(l9(0x139), m);
                            n['ok'] ? (toast(l[l9(0x2af)]['act'] === l9(0x58f) ? l9(0xd5) : l9(0x910)),
                            admLoadPacks(),
                            storeLoad()) : toast(n[l9(0x63a)] || l9(0x528), !0x0);
                        } catch (o) {
                            toast('' + o, !0x0);
                        } finally {
                            l[l9(0x927)] = !0x1;
                        }
                    }
                }
                ,
                a[l8(0x755)](f);
            }
            );
        } catch (c) {
            a['innerHTML'] = l7(0x8b1) + escapeHtml('' + c) + l7(0x225);
        }
    }
}
function boot() {
    const la = odf943efb_P;
    injectIcons(),
    buildModal(),
    wireSystem(),
    wireTalk(),
    wireVoiceFx(),
    wireAvatarOverlay(),
    wireSoundboard(),
    Promise[la(0x3c8)]([invoke(la(0x104)), invoke('get_pane_sources'), invoke('get_svoi_count')[la(0x375)]( () => 0x0)])[la(0x50f)]( ([a,b,c]) => {
        state['paneSources'] = b || [],
        state['svoi'] = c || 0x0,
        buildPaneUI(a);
    }
    )[la(0x375)]( () => buildPaneUI(0x2)),
    navigator[la(0x4e1)]?.[la(0x5e7)]?.(la(0x91e), refreshDevices),
    checkBridge(),
    refreshDevices(),
    loadSounds(),
    loadFolder(),
    loadVoices(),
    setInterval(checkBridge, 0x7d0),
    wireUpdate(),
    wireLicense(),
    renderSocialStrip(),
    wireYoutubePromo(),
    wireCommunity(),
    wireEmoji(),
    wireRef(),
    wireNick(),
    wireChatDock(),
    wirePeerPopup(),
    wirePeerChat(),
    wireStore(),
    wireAdmin(),
    wireOnboard(),
    wireWaveEditor(),
    wireDrop(),
    capConnect(),
    refreshTurnRoute(),
    refreshStatus(),
    slotTick(),
    usageTick(),
    setInterval(enforceUsage, 0x3e8),
    pollCommunity(),
    setInterval(refreshStatus, 0x1d4c0),
    setInterval(licTick, 0x4e20),
    setInterval(pollCommunity, 0x7530);
}
function versionParts(a) {
    const lb = odf943efb_P;
    return String(a || '')[lb(0x7d3)](/[^\d]+/)['filter'](Boolean)[lb(0x50d)](b => +b || 0x0);
}
function versionNewer(c, d) {
    const lc = odf943efb_P
      , e = versionParts(c)
      , f = versionParts(d);
    for (let g = 0x0; g < Math[lc(0x29b)](e['length'], f[lc(0x64f)], 0x3); g++) {
        const h = e[g] || 0x0
          , j = f[g] || 0x0;
        if (h !== j)
            return h > j;
    }
    return !0x1;
}
function renderUpdateBanner() {
    const ld = odf943efb_P
      , a = $(ld(0x7dd))
      , b = $('#updateText');
    if (!a || !b)
        return;
    let c = pendingUpdateVersion ? ld(0x550) + pendingUpdateVersion : '';
    const d = remoteAppConfig || {}
      , e = String(d[ld(0x4eb)] || '')[ld(0x407)]()
      , f = String(d[ld(0x913)] || '')[ld(0x407)]()
      , g = d['show_update'] === !0x0 && (!e || versionNewer(e, appInfo[ld(0x795)]))
      , h = !!f && versionNewer(f, appInfo[ld(0x795)]);
    !c && g && (c = String(d['update_text'] || '')[ld(0x407)]() || ld(0x550) + e),
    !c && h && (c = String(d[ld(0x244)] || d[ld(0x33f)] || '')[ld(0x407)]() || '\u041D\u0443\u0436\u043D\u0430\x20\u043D\u043E\u0432\u0430\u044F\x20\u0432\u0435\u0440\u0441\u0438\u044F\x20' + f),
    c ? (b[ld(0x333)] = c,
    a[ld(0x474)][ld(0x19d)](ld(0x4dd))) : a[ld(0x474)][ld(0x6f2)](ld(0x4dd));
}
function applyRemoteAppConfig(a) {
    const le = odf943efb_P;
    remoteAppConfig = a && typeof a == le(0x5a3) ? a : null,
    renderUpdateBanner();
}
async function renderAppInfo() {
    const lf = odf943efb_P;
    try {
        const a = await invoke(lf(0x514));
        appInfo = {
            'version': a?.[lf(0x795)] || lf(0x767),
            'released': a?.['released'] || lf(0x4d2)
        };
    } catch {
        appInfo = {
            'version': lf(0x767),
            'released': lf(0x4d2)
        };
    }
    $(lf(0x655)) && ($(lf(0x655))[lf(0x333)] = 'v' + appInfo['version']),
    $(lf(0x5d3)) && ($(lf(0x5d3))['textContent'] = lf(0x776) + appInfo[lf(0x81c)]),
    renderUpdateBanner();
}
async function checkUpdate() {
    const lg = odf943efb_P;
    try {
        pendingUpdateVersion = await invoke(lg(0x8aa)) || '',
        renderUpdateBanner();
    } catch {}
}
function wireUpdate() {
    const lh = odf943efb_P
      , a = $('#updateBtn');
    a && (a[lh(0x882)] = async () => {
        const li = lh;
        a['disabled'] = !0x0,
        a['textContent'] = li(0x748);
        try {
            await invoke('do_update');
        } catch (b) {
            toast(li(0x238) + b, !0x0),
            a[li(0x927)] = !0x1,
            a[li(0x333)] = '\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C';
        }
    }
    ),
    renderAppInfo(),
    checkUpdate(),
    setInterval(checkUpdate, 0x2710);
}
window[odf943efb_P(0x5e7)](odf943efb_P(0x1c1), boot);