@echo off
setlocal EnableExtensions EnableDelayedExpansion

REM ============================================================
REM הגדרות
REM ============================================================

set "TEMP=%LOCALAPPDATA%\Temp"
set "CERT_TEMP=%TEMP%\xlnx_cert_install"


REM ============================================================
REM בקשת הרשאות Administrator
REM ============================================================

net session >nul 2>&1

if %errorlevel% neq 0 (
    echo מבקש הרשאות Administrator...

    powershell -NoProfile -Command ^
        "Start-Process -FilePath '%~f0' -Verb RunAs"

    exit /b
)


echo.
echo ============================================================
echo   Xilinx JRE Certificate Installer
echo ============================================================
echo.

REM ============================================================
REM מציאת תיקיית XlnxSfx האחרונה
REM ============================================================

set "LATEST_DIR="

for /f "delims=" %%F in ('dir /ad /b /o:-d /t:c "%TEMP%\*" 2^>nul') do (
    if exist "%TEMP%\%%F\tps\win64\jre*" (
        set "LATEST_DIR=%%F"
        goto :found_latest_dir
    )
)


echo.
echo ERROR: לא נמצאה תיקיית XlnxSfx.
echo.
pause
exit /b 1


:found_latest_dir

echo נמצאה תיקיית ההתקנה האחרונה:
echo %TEMP%\!LATEST_DIR!
echo.


REM ============================================================
REM מציאת תיקיית JRE
REM ============================================================

set "JRE_DIR="

for /d %%J in ("%TEMP%\!LATEST_DIR!\tps\win64\jre*") do (
    set "JRE_DIR=%%~fJ"
    goto :found_jre
)

echo.
echo ERROR: לא נמצאה תיקיית JRE.
echo.
echo חיפשתי תחת:
echo %TEMP%\!LATEST_DIR!\tps\win64\
echo.
pause
exit /b 1


:found_jre

REM ============================================================
REM בניית הנתיבים
REM ============================================================

set "LATEST_CACERTS=!JRE_DIR!\lib\security\cacerts"
set "KEYTOOL=!JRE_DIR!\bin\keytool.exe"


REM ============================================================
REM בדיקה שהקבצים קיימים
REM ============================================================

if not exist "!LATEST_CACERTS!" (
    echo.
    echo ERROR: לא נמצא cacerts:
    echo !LATEST_CACERTS!
    echo.
    pause
    exit /b 1
)

if not exist "!KEYTOOL!" (
    echo.
    echo ERROR: לא נמצא keytool.exe:
    echo !KEYTOOL!
    echo.
    pause
    exit /b 1
)


echo JRE:
echo !JRE_DIR!
echo.

echo cacerts:
echo !LATEST_CACERTS!
echo.

echo keytool:
echo !KEYTOOL!
echo.
REM ============================================================
REM יצירת תיקייה זמנית
REM ============================================================

if exist "!CERT_TEMP!" (
    rmdir /s /q "!CERT_TEMP!"
)

mkdir "!CERT_TEMP!"


REM ============================================================
REM חילוץ התעודות מתוך ה-BAT
REM ============================================================

powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$content = Get-Content -Raw -LiteralPath '%~f0'; ^
$certs = @( ^
    @{Name='cert1.crt'; Alias='netfree_cert_1'; Start='CERT1_START'; End='CERT1_END'}, ^
    @{Name='cert2.crt'; Alias='netfree_cert_2'; Start='CERT2_START'; End='CERT2_END'}, ^
    @{Name='cert3.crt'; Alias='netfree_cert_3'; Start='CERT3_START'; End='CERT3_END'}, ^
    @{Name='cert4.crt'; Alias='netfree_cert_4'; Start='CERT4_START'; End='CERT4_END'}, ^
    @{Name='cert5.crt'; Alias='netfree_cert_5'; Start='CERT5_START'; End='CERT5_END'} ^
); ^
foreach ($c in $certs) { ^
    $pattern = '(?s)' + [regex]::Escape($c.Start) + '\r?\n(.*?)\r?\n:?' + [regex]::Escape($c.End); ^
    $m = [regex]::Match($content, $pattern); ^
    if ($m.Success) { ^
        $cert = $m.Groups[1].Value.Trim(); ^
        if ($cert -match 'BEGIN CERTIFICATE') { ^
            [IO.File]::WriteAllText((Join-Path '%CERT_TEMP%' $c.Name), $cert + [Environment]::NewLine); ^
            Write-Host ('Created: ' + $c.Name); ^
        } ^
    } ^
}"


REM ============================================================
REM הכנסת התעודות ל-cacerts
REM ============================================================

echo.
echo ============================================================
echo   Importing certificates
echo ============================================================
echo.


for %%C in ("!CERT_TEMP!\*.crt") do (

    set "ALIAS="

    if /I "%%~nxC"=="cert1.crt" set "ALIAS=netfree_cert_1"
    if /I "%%~nxC"=="cert2.crt" set "ALIAS=netfree_cert_2"
    if /I "%%~nxC"=="cert3.crt" set "ALIAS=netfree_cert_3"
    if /I "%%~nxC"=="cert4.crt" set "ALIAS=netfree_cert_4"
    if /I "%%~nxC"=="cert5.crt" set "ALIAS=netfree_cert_5"

    echo.
    echo מייבא %%~nxC
    echo Alias: !ALIAS!

    REM מחיקת alias קיים
    "!KEYTOOL!" -delete ^
        -alias "!ALIAS!" ^
        -keystore "!LATEST_CACERTS!" ^
        -storepass changeit >nul 2>&1

    REM הכנסת התעודה
    "!KEYTOOL!" -importcert ^
        -trustcacerts ^
        -noprompt ^
        -alias "!ALIAS!" ^
        -file "%%C" ^
        -keystore "!LATEST_CACERTS!" ^
        -storepass changeit

    if errorlevel 1 (
        echo ERROR בהכנסת %%~nxC
    ) else (
        echo OK - %%~nxC הוכנסה בהצלחה
    )
)


REM ============================================================
REM ניקוי
REM ============================================================

rmdir /s /q "!CERT_TEMP!" >nul 2>&1

start %TEMP%\!LATEST_DIR!\xsetup.exe

echo.
echo ============================================================
echo הסתיים בהצלחה
echo ============================================================
echo.
echo cacerts שעודכן:
echo !LATEST_CACERTS!
echo.

pause
exit /b


REM ============================================================
REM התעודות
REM ============================================================

:CERT1_START
-----BEGIN CERTIFICATE-----
MIIF1DCCA7ygAwIBAgIFGZAiAAEwDQYJKoZIhvcNAQELBQAweDELMAkGA1UEBhMC
SUwxFTATBgNVBAgTDE1vZGknaW4gSWxpdDEQMA4GA1UEChMHTmV0RnJlZTEVMBMG
A1UECxMMbmV0ZnJlZS5saW5rMSkwJwYDVQQDEyBOZXRGcmVlIFJvb3QgQ0EgWDIg
MTk5MC0yMjAwIFJTQTAgFw05MDAxMDEwMDAwMDBaGA8yMjAwMDEwMTAwMDAwMFow
eDELMAkGA1UEBhMCSUwxFTATBgNVBAgTDE1vZGknaW4gSWxpdDEQMA4GA1UEChMH
TmV0RnJlZTEVMBMGA1UECxMMbmV0ZnJlZS5saW5rMSkwJwYDVQQDEyBOZXRGcmVl
IFJvb3QgQ0EgWDIgMTk5MC0yMjAwIFJTQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBAJYjCN3NJVcyd15pjYvlK4ClncAzkSx7yobwZxJMXLutzFEyv1aF
CPA9pUuIs8m9lDRvQmJQuKPMJM5QaMYk9bxcPxJQnUvj+7O0IZqQ3k2oVJg88JTC
IJxGziu3RAn86q+ZDVtK8CQNF4xytoB38SRxMBL3rPDYvx4Yg0IKqD2ZB3rz2Wym
WVnmnlXVJcrxbb7LJz6nWeH/0kD2zE+Z6mDMER9S9LagPQm/yXN7uAC0FI7LrVjg
skxjOFT+DhElhD0zU6zBAq/bE8txfUJljt/ZHpjOnsm1a0qX0iJ3E3YQ5jn4lF/i
MCwrOkQI5fxsXH3SD1GvO4yimAgR0Bn4+DLdDSpD0RdY8Gl59SYs/A5NKp9R/oF5
M3+kE4QTz5Y0NvlY05ycVS86Q7S6SBI4TAOrzrYdgyihDJI0DKldNAx0Djk1QqdQ
1OX5i+AIYp+llZwBi8qKEjosnpW/pUyfkQzYlHIz7+PBIudRiT53ki55/3ZlyZsu
dCIxn+3Pt+sbRZzbhTqquvVLR3ahC8D8cbBuIdjoxm2gyKLNd9nk2mh3EL9pgvon
C6ISKnvUkr7ru5HeN8cc/Jt+wYyua7qG4CNVpRwjEN0vIdGtdmZTIPWfkaSuDAaJ
jpekrBQylm0HA8y4qAXDXtIY2ykFNBjbGBOgidtrVwAQHnJ36tQuT3XDAgMBAAGj
YzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRe
Oq2Dj/WVNvskeCwVAMfQNjrkPzAfBgNVHSMEGDAWgBReOq2Dj/WVNvskeCwVAMfQ
NjrkPzANBgkqhkiG9w0BAQsFAAOCAgEAV6w4BIrO0ZeCswpE5cGgQ/mVzhCZ8HHv
i1iAP2m88OJha3H34aNov9+tE4xelxVhhv7yi5r1w38F3zTS9194eaRZfaUuDcX3
8tgGwAjOhWRKpOL5Qn8f/2k/K7Uqb5VsEOm3qQLqUFP3O8FD5eat443YY7ZrS/1d
rERMqb/PsqotSWz4HVLl6n7aagNS3k3BzMfancmExbO35mGjSv6PE3yrJA+4lfmQ
PeboIgSRKtNtlTBmbTSiAa+tWaTteMnEWQ1N8Y3FADPGhSBZKQmxwv+yq5i1aDMn
UVx9i4wkDbupjya06gk2mXUyIue4D/WBELTDDfJEPMx71fqCWssqCKGWzIwMPKI5
gMi6mx6MO6V11JuwB+5w6E7JufHO2HS+CeDL0b47sU6DirGl0V9rVTcX4rIHuDEB
rTlm+DJ1hMdLaDedMcMuM4lhJqiAq7iu7f4KLivkV0jH2y2QSEiseKVZTZK4GF0i
DrrjZkWDl4NJf99ik64d/27BNxkWFZhK4nHODwULrhgJyrhsL05tJY/djHeQAWKN
y9qfLE2kc/IWdz3AC+k89npuJMKy1J1aZlrqCjw4IkVjD7Iae4XaH8/oyQA9aBa1
vWXBrfQww6AJm+RnSlFhxQOrgzCbibR6ILzAcIW/mk6C6vYIAOo5aMPGXszNvFeM
eC53MbtMhdc=
-----END CERTIFICATE-----
:CERT1_END


:CERT2_START
-----BEGIN CERTIFICATE-----
MIICTjCCAfSgAwIBAgIFGZAiAAIwCgYIKoZIzj0EAwIwezELMAkGA1UEBhMCSUwx
FTATBgNVBAgTDE1vZGknaW4gSWxpdDEQMA4GA1UEChMHTmV0RnJlZTEVMBMGA1UE
CxMMbmV0ZnJlZS5saW5rMSwwKgYDVQQDEyNOZXRGcmVlIFJvb3QgQ0EgWDIgMTk5
MC0yMjAwIEVDQzI1NjAgFw05MDAxMDEwMDAwMDBaGA8yMjAwMDEwMTAwMDAwMFow
ezELMAkGA1UEBhMCSUwxFTATBgNVBAgTDE1vZGknaW4gSWxpdDEQMA4GA1UEChMH
TmV0RnJlZTEVMBMGA1UECxMMbmV0ZnJlZS5saW5rMSwwKgYDVQQDEyNOZXRGcmVl
IFJvb3QgQ0EgWDIgMTk5MC0yMjAwIEVDQzI1NjBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABAD6GbzCuvv+SGk+jzNI7U/2mw4FLio7qNkOECfsGFqES0WnytFxG4/I
aU9ET05MPbIdOMn+CChHLeuNc4Lr3oOjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQQgjuzfmsv4XdijhxEFb9Wecwg1zAfBgNV
HSMEGDAWgBQQgjuzfmsv4XdijhxEFb9Wecwg1zAKBggqhkjOPQQDAgNIADBFAiEA
9HKczNql8UZmDbwV94EI4Inx92m5/VKxZCPoKkXD8TwCIAl8bZsKznLVfCwC6QSq
I1QsZCrq6lB31QJK+8P+ccEV
-----END CERTIFICATE-----
:CERT2_END


:CERT3_START
-----BEGIN CERTIFICATE-----
MIICijCCAhGgAwIBAgIFGZAiAAMwCgYIKoZIzj0EAwMwezELMAkGA1UEBhMCSUwx
FTATBgNVBAgTDE1vZGknaW4gSWxpdDEQMA4GA1UEChMHTmV0RnJlZTEVMBMGA1UE
CxMMbmV0ZnJlZS5saW5rMSwwKgYDVQQDEyNOZXRGcmVlIFJvb3QgQ0EgWDIgMTk5
MC0yMjAwIEVDQzM4NDAgFw05MDAxMDEwMDAwMDBaGA8yMjAwMDEwMTAwMDAwMFow
ezELMAkGA1UEBhMCSUwxFTATBgNVBAgTDE1vZGknaW4gSWxpdDEQMA4GA1UEChMH
TmV0RnJlZTEVMBMGA1UECxMMbmV0ZnJlZS5saW5rMSwwKgYDVQQDEyNOZXRGcmVl
IFJvb3QgQ0EgWDIgMTk5MC0yMjAwIEVDQzM4NDB2MBAGByqGSM49AgEGBSuBBAAi
A2IABNnzhRPqWilnKWFhxoCqjqtsF7BfuV02rxUStUrh8j+9IqMSy0Q0azj5mwbs
GJdIJW1CLBe8SmA7Dzdm5rZMbQqHztgh2VDlQL/2XOWy5Cmj2ESjS7VdGjmgNDEy
dKp4eqNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
BBYEFG2O2sZiP50PXJKJEmqpevpYwa3XMB8GA1UdIwQYMBaAFG2O2sZiP50PXJKJ
EmqpevpYwa3XMAoGCCqGSM49BAMDA2cAMGQCMBjT4k96jkP25M+z3u7BZk8kJdDg
4gxoopVm1I7P7ti7IIgTM1MP40GW3EUp/iPc9wIwLzxSFLZNBG5pp+q9TxytQrZW
VQBgbhrtKIPMyYWNoF7sWKTmwEnlzWF2D0YvppsY
-----END CERTIFICATE-----
:CERT3_END


:CERT4_START
-----BEGIN CERTIFICATE-----
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
PrB2/vYu
-----END CERTIFICATE-----
:CERT4_END


:CERT5_START
-----BEGIN CERTIFICATE-----
MIICEDCCAcKgAwIBAgIFGZAiAAQwBQYDK2VwMHwxCzAJBgNVBAYTAklMMRUwEwYD
VQQIEwxNb2RpJ2luIElsaXQxEDAOBgNVBAoTB05ldEZyZWUxFTATBgNVBAsTDG5l
dGZyZWUubGluazEtMCsGA1UEAxMkTmV0RnJlZSBSb290IENBIFgyIDE5OTAtMjIw
MCBFRDI1NTE5MCAXDTkwMDEwMTAwMDAwMFoYDzIyMDAwMTAxMDAwMDAwWjB8MQsw
CQYDVQQGEwJJTDEVMBMGA1UECBMMTW9kaSdpbiBJbGl0MRAwDgYDVQQKEwdOZXRG
cmVlMRUwEwYDVQQLEwxuZXRmcmVlLmxpbmsxLTArBgNVBAMTJE5ldEZyZWUgUm9v
dCBDQSBYMiAxOTkwLTIyMDAgRUQyNTUxOTAqMAUGAytlcAMhANrlIEA0rF4YYJ79
Ka6Qzzum+f+T6l0HIeyKBjmqwjzPo2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T
AQH/BAUwAwEB/zAdBgNVHQ4EFgQUtnIPtDMPznmYCOLvTd/Futna8yYwHwYDVR0j
BBgwFoAUtnIPtDMPznmYCOLvTd/Futna8yYwBQYDK2VwA0EAVVS0yN0aS6Btmcxr
AOgFIbiNmVFHd9r5SHjVOYBGXP8WtNFrePjFGEKB9RX/LIsxXqtlV1tJXDI4y4pG
iXe/AQ==
-----END CERTIFICATE-----
:CERT5_END