Compare commits
1
Commits
main
..
b9ea8ae9aa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9ea8ae9aa |
@@ -1,49 +0,0 @@
|
||||
name: 📦 Veröffentlichen → updates.rhino.nrw
|
||||
|
||||
# Zwei Wege, denselben Job auszulösen:
|
||||
# • workflow_dispatch: KNOPF in Gitea (Actions-Tab → "Run workflow") — kein Terminal.
|
||||
# Veröffentlicht den aktuellen Stand aus 'main' (Staging) nach updates.rhino.nrw.
|
||||
# • push auf 'release': für das CLI-Skript release.py (Power-User-Weg).
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
hinweis:
|
||||
description: "Optional: Version/Notiz (nur fürs Protokoll)"
|
||||
required: false
|
||||
push:
|
||||
branches: [release]
|
||||
|
||||
jobs:
|
||||
mirror:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout (full history)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: CHECKSUMS.txt pro Projekt frisch erzeugen
|
||||
run: |
|
||||
for d in */ ; do
|
||||
d="${d%/}"
|
||||
if ls "$d"/sync-bundle-*.txt >/dev/null 2>&1; then
|
||||
( cd "$d" && sha256sum sync-bundle-*.txt sync-entpacken.bat 2>/dev/null > CHECKSUMS.txt )
|
||||
echo "CHECKSUMS.txt erzeugt für $d"
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Commit (nur im Runner, fließt in den public-Mirror)
|
||||
run: |
|
||||
git config user.email "action@gitea.rhino.nrw"
|
||||
git config user.name "Gitea Action"
|
||||
git add -A
|
||||
git commit -m "ci: CHECKSUMS.txt bei Veröffentlichung erzeugt" || echo "Keine Änderung."
|
||||
|
||||
- name: Push nach Public-Gitea (updates.rhino.nrw)
|
||||
env:
|
||||
PUBLIC_GITEA_TOKEN: ${{ secrets.PUBLIC_GITEA_TOKEN }}
|
||||
run: |
|
||||
AUTH=$(printf 'rhino:%s' "$PUBLIC_GITEA_TOKEN" | base64 | tr -d '\n')
|
||||
git -c http.extraHeader="Authorization: Basic $AUTH" \
|
||||
push http://172.30.0.4:3053/rhino/StatusQuo_Updates.git HEAD:main --force
|
||||
echo "Veröffentlicht: $(cat VI3DGL/VERSION 2>/dev/null) — Hinweis: ${{ github.event.inputs.hinweis }}"
|
||||
@@ -1,3 +0,0 @@
|
||||
b1a4e69eaa33c15a51bc8b082cd305c8d8c3a94a4e4a3f3d5d14040a28221f1e sync-bundle-01.txt
|
||||
ab0a7311b0deb8ad4b59cfbcb91adc7b97e0a8c52658acfd0faf54f90df02047 sync-bundle-02.txt
|
||||
95bdd3993481ac8ec937f1adb09bf1851735619dca2dd4283c7608f13f0e1e7e sync-entpacken.bat
|
||||
@@ -1,31 +0,0 @@
|
||||
# 30 Dateien in 2 Bundles
|
||||
sync-bundle-01.txt DRIVE_Start.bat
|
||||
sync-bundle-01.txt DRIVE_Stop.bat
|
||||
sync-bundle-01.txt VERSION
|
||||
sync-bundle-01.txt css/icons/Chevron.png
|
||||
sync-bundle-01.txt css/icons/Chevron_article_closed.png
|
||||
sync-bundle-01.txt css/icons/Chevron_article_open.png
|
||||
sync-bundle-01.txt css/icons/audio.png
|
||||
sync-bundle-01.txt css/icons/bullet_list.gif
|
||||
sync-bundle-01.txt css/icons/excel.png
|
||||
sync-bundle-01.txt css/icons/faq.png
|
||||
sync-bundle-01.txt css/icons/image.png
|
||||
sync-bundle-01.txt css/icons/important.png
|
||||
sync-bundle-01.txt css/icons/numbered_list.png
|
||||
sync-bundle-01.txt css/icons/pdf.png
|
||||
sync-bundle-01.txt css/icons/powerpoint.png
|
||||
sync-bundle-01.txt css/icons/redo.png
|
||||
sync-bundle-01.txt css/icons/table.png
|
||||
sync-bundle-01.txt css/icons/undo.png
|
||||
sync-bundle-01.txt css/icons/video.png
|
||||
sync-bundle-01.txt css/icons/word.png
|
||||
sync-bundle-01.txt css/images/drive_logo_day.png
|
||||
sync-bundle-01.txt css/images/drive_logo_night.png
|
||||
sync-bundle-01.txt data/config.json
|
||||
sync-bundle-01.txt data/governance.json
|
||||
sync-bundle-01.txt data/governance.template.json
|
||||
sync-bundle-01.txt data/index.js
|
||||
sync-bundle-01.txt favicon.ico
|
||||
sync-bundle-02.txt index.html
|
||||
sync-bundle-02.txt rollback.bat
|
||||
sync-bundle-02.txt server.ps1
|
||||
@@ -1 +0,0 @@
|
||||
3.6.0
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,48 +0,0 @@
|
||||
@echo off
|
||||
setlocal
|
||||
set "BDIR=%~dp0"
|
||||
echo.
|
||||
echo === D.R.I.V.E.: Code aktualisieren ===
|
||||
echo.
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -Command "$m='### PS'+'CODE ###';$me=[IO.File]::ReadAllText('%~f0');$p=$me.IndexOf($m);$nl=$me.IndexOf([char]10,$p);Invoke-Expression $me.Substring($nl+1)"
|
||||
echo.
|
||||
pause
|
||||
exit /b
|
||||
### PSCODE ###
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$here = $env:BDIR
|
||||
$root = Split-Path -Parent ($here.TrimEnd('\'))
|
||||
if (-not (Test-Path -LiteralPath (Join-Path $root 'index.html'))) {
|
||||
Write-Host ('FEHLER: ' + $root + ' ist nicht die App-Wurzel.') -ForegroundColor Red; return
|
||||
}
|
||||
Write-Host ('Ziel: ' + $root)
|
||||
$bundles = Get-ChildItem -LiteralPath $here -Filter 'sync-bundle-*.txt' | Sort-Object Name
|
||||
if (-not $bundles) { Write-Host 'FEHLER: keine sync-bundle-*.txt gefunden.' -ForegroundColor Red; return }
|
||||
$flush = {
|
||||
param($d, $rel, $expLen, $b64)
|
||||
if (-not $rel) { return $null }
|
||||
$bytes = [Convert]::FromBase64String($b64)
|
||||
$full = Join-Path $d ($rel -replace '/', '\')
|
||||
$pd = Split-Path -Parent $full
|
||||
if (-not (Test-Path -LiteralPath $pd)) { New-Item -ItemType Directory -Path $pd -Force | Out-Null }
|
||||
[IO.File]::WriteAllBytes($full, $bytes)
|
||||
return ($bytes.Length -eq $expLen)
|
||||
}
|
||||
$ok = 0; $bad = 0; $rel = $null; $expLen = 0; $sb = New-Object System.Text.StringBuilder
|
||||
foreach ($b in $bundles) {
|
||||
Write-Host ('-> ' + $b.Name)
|
||||
foreach ($line in [IO.File]::ReadAllLines($b.FullName)) {
|
||||
if ($line.StartsWith('### FILE: ')) {
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
$meta = $line.Substring(10); $k = $meta.LastIndexOf(' | ')
|
||||
$rel = $meta.Substring(0, $k); $expLen = [int]$meta.Substring($k + 3); $sb = New-Object System.Text.StringBuilder
|
||||
} elseif ($line.StartsWith('###')) { continue }
|
||||
elseif ($line.Length -gt 0) { [void]$sb.Append($line) }
|
||||
}
|
||||
}
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
Write-Host ''
|
||||
if ($bad -eq 0) { Write-Host ('FERTIG: ' + $ok + ' Dateien.') -ForegroundColor Green }
|
||||
else { Write-Host ('FERTIG: ' + $ok + ' ok, ' + $bad + ' Fehler.') -ForegroundColor Yellow }
|
||||
@@ -1,8 +0,0 @@
|
||||
e5f1fe817b91b5d9643ea7c77df0ce71db31dfc731aa2800300f57109f5a0034 sync-bundle-01.txt
|
||||
58c85e2b8f475288c0c441cf3bdb91c55ae8e9d0c159fbccb189e276fb6a6509 sync-bundle-02.txt
|
||||
4cc212461953ad756f99f812fd093b90b1dfb2f45c1b0ca4080c73aa077d4c17 sync-bundle-03.txt
|
||||
a2969b7e51352f303e6c1dd45824b4547f7c9c790516ae7218494a280c94f64e sync-bundle-04.txt
|
||||
595b27a8ecffded3850dc6808ee22b2564e00bdade317196dc4a721e760e1705 sync-bundle-05.txt
|
||||
478bbbe43f248720c7bfb5b528443edbe25b609bc748583449082fd1e8357a0b sync-bundle-06.txt
|
||||
456a7ecdfa06bd4fdb8e23c40b5c0c9016b68927e0225e3763dbf0b5dce3a228 sync-bundle-07.txt
|
||||
7a01035e06091884352a146208f5afb618e8c381cae8267fe8360bf7c2cd2554 sync-entpacken.bat
|
||||
@@ -1,145 +0,0 @@
|
||||
# 144 Dateien in 7 Bundles
|
||||
sync-bundle-01.txt FLD_Planung.bat
|
||||
sync-bundle-01.txt Images/fussball/1._FC_Heidenheim.svg
|
||||
sync-bundle-01.txt Images/fussball/1._FC_Koeln.svg
|
||||
sync-bundle-01.txt Images/fussball/1._FC_Union_Berlin.svg
|
||||
sync-bundle-01.txt Images/fussball/1._FSV_Mainz_05.svg
|
||||
sync-bundle-01.txt Images/fussball/Bayer_04_Leverkusen.svg
|
||||
sync-bundle-01.txt Images/fussball/Borussia_Dortmund.svg
|
||||
sync-bundle-01.txt Images/fussball/Borussia_Moenchengladbach.svg
|
||||
sync-bundle-01.txt Images/fussball/Eintracht_Frankfurt.png
|
||||
sync-bundle-01.txt Images/fussball/FC_Augsburg.png
|
||||
sync-bundle-01.txt Images/fussball/FC_Bayern_Muenchen.svg
|
||||
sync-bundle-01.txt Images/fussball/FC_St._Pauli.png
|
||||
sync-bundle-01.txt Images/fussball/Hamburger_SV.svg
|
||||
sync-bundle-02.txt Images/fussball/RB_Leipzig.png
|
||||
sync-bundle-03.txt Images/fussball/SC_Freiburg.png
|
||||
sync-bundle-03.txt Images/fussball/SV_Werder_Bremen.svg
|
||||
sync-bundle-03.txt Images/fussball/TSG_Hoffenheim.png
|
||||
sync-bundle-03.txt Images/fussball/VfB_Stuttgart.svg
|
||||
sync-bundle-03.txt Images/fussball/VfL_Wolfsburg.svg
|
||||
sync-bundle-03.txt Images/misc/bagger.png
|
||||
sync-bundle-03.txt Images/misc/fahrrad.png
|
||||
sync-bundle-03.txt Images/misc/flugzeug.png
|
||||
sync-bundle-03.txt Images/misc/gluehbirne.png
|
||||
sync-bundle-03.txt Images/misc/konzept.png
|
||||
sync-bundle-03.txt Images/misc/notiz.png
|
||||
sync-bundle-03.txt Images/misc/organigramm.png
|
||||
sync-bundle-03.txt Images/misc/taschenrechner.png
|
||||
sync-bundle-03.txt Images/misc/team.png
|
||||
sync-bundle-03.txt Images/misc/termin-warnung.png
|
||||
sync-bundle-03.txt Images/misc/triathlon.png
|
||||
sync-bundle-03.txt Images/misc/urkunde.png
|
||||
sync-bundle-03.txt Images/misc/vergleich.png
|
||||
sync-bundle-03.txt Images/office/01_puzzle.png
|
||||
sync-bundle-03.txt Images/office/02_dashboard-chart.png
|
||||
sync-bundle-03.txt Images/office/03_document-approved.png
|
||||
sync-bundle-03.txt Images/office/04_presenter-audience.png
|
||||
sync-bundle-03.txt Images/office/05_team-hierarchy.png
|
||||
sync-bundle-03.txt Images/office/06_info-chat.png
|
||||
sync-bundle-03.txt Images/office/07_presentation-team.png
|
||||
sync-bundle-03.txt Images/office/08_exchange-dialog.png
|
||||
sync-bundle-03.txt Images/office/09_document-search.png
|
||||
sync-bundle-03.txt Images/office/10_globe.png
|
||||
sync-bundle-03.txt Images/office/11_lightbulb-idea.png
|
||||
sync-bundle-03.txt Images/office/12_gavel-judgement.png
|
||||
sync-bundle-03.txt Images/office/13_scales-balance.png
|
||||
sync-bundle-03.txt Images/office/14_megaphone-announce.png
|
||||
sync-bundle-03.txt Images/office/15_growth-chart.png
|
||||
sync-bundle-03.txt Images/office/16_clipboard-checklist.png
|
||||
sync-bundle-03.txt Images/office/17_mobile-tasks.png
|
||||
sync-bundle-03.txt Images/office/18_monitor-options.png
|
||||
sync-bundle-03.txt Images/office/19_newspaper.png
|
||||
sync-bundle-03.txt Images/office/20_laptop-share.png
|
||||
sync-bundle-03.txt Images/office/21_location-pin.png
|
||||
sync-bundle-03.txt Images/office/22_paper-plane.png
|
||||
sync-bundle-03.txt Images/office/23_social-network.png
|
||||
sync-bundle-03.txt Images/office/24_meeting-table.png
|
||||
sync-bundle-03.txt Images/office/25_team-connection.png
|
||||
sync-bundle-03.txt Images/office/26_hourglass.png
|
||||
sync-bundle-03.txt Images/office/27_coins-stack.png
|
||||
sync-bundle-03.txt Images/office/28_charts-up-down.png
|
||||
sync-bundle-03.txt Images/office/29_gears-cogs.png
|
||||
sync-bundle-03.txt Images/office/30_line-chart-points.png
|
||||
sync-bundle-03.txt Images/office/31_document-edit.png
|
||||
sync-bundle-03.txt Images/office/32_people-chat-bubbles.png
|
||||
sync-bundle-03.txt Images/office/33_magnifier.png
|
||||
sync-bundle-03.txt Images/office/34_people-exchange.png
|
||||
sync-bundle-03.txt Images/office/35_target-crosshair.png
|
||||
sync-bundle-04.txt Images/polizei/01_laptop-megafon.png
|
||||
sync-bundle-04.txt Images/polizei/02_person-funkgeraet.png
|
||||
sync-bundle-04.txt Images/polizei/03_rauchgranate.png
|
||||
sync-bundle-04.txt Images/polizei/04_demonstrant-flagge.png
|
||||
sync-bundle-04.txt Images/polizei/05_haende-stopp.png
|
||||
sync-bundle-04.txt Images/polizei/06_spruehdose-warnung.png
|
||||
sync-bundle-04.txt Images/polizei/07_helm-sprecher.png
|
||||
sync-bundle-04.txt Images/polizei/08_demonstrant-schild.png
|
||||
sync-bundle-04.txt Images/polizei/09_fauste-protest.png
|
||||
sync-bundle-04.txt Images/polizei/10_schlagstock-gekreuzt.png
|
||||
sync-bundle-04.txt Images/polizei/11_protestschild-faust.png
|
||||
sync-bundle-04.txt Images/polizei/12_menschen-tribuene.png
|
||||
sync-bundle-04.txt Images/polizei/13_megafon-laut.png
|
||||
sync-bundle-04.txt Images/polizei/14_menschenmenge-schilder.png
|
||||
sync-bundle-04.txt Images/polizei/15_stoppschild-boden.png
|
||||
sync-bundle-04.txt Images/polizei/16_banner-stopp.png
|
||||
sync-bundle-04.txt Images/polizei/17_stopp-pin.png
|
||||
sync-bundle-04.txt Images/polizei/18_demonstrant-jubel.png
|
||||
sync-bundle-04.txt Images/polizei/19_lautsprecherboxen.png
|
||||
sync-bundle-04.txt Images/polizei/20_faust-energie.png
|
||||
sync-bundle-04.txt Images/polizei/21_auto-blockade.png
|
||||
sync-bundle-04.txt Images/polizei/22_fahnentraeger.png
|
||||
sync-bundle-04.txt Images/polizei/23_spruehdose-wirkung.png
|
||||
sync-bundle-04.txt Images/polizei/24_menschenkette.png
|
||||
sync-bundle-04.txt Images/polizei/25_kalender-stopp.png
|
||||
sync-bundle-04.txt Images/polizei/26_hand-stopp.png
|
||||
sync-bundle-04.txt Images/polizei/27_megafon-gross.png
|
||||
sync-bundle-04.txt Images/polizei/28_kopf-rufer.png
|
||||
sync-bundle-04.txt Images/polizei/29_dokument-stopp.png
|
||||
sync-bundle-04.txt Images/polizei/30_menschen-banner.png
|
||||
sync-bundle-04.txt Images/polizei/31_demonstrant-podest.png
|
||||
sync-bundle-04.txt Images/polizei/32_molotow-cocktail.png
|
||||
sync-bundle-04.txt Images/sport/football.svg
|
||||
sync-bundle-04.txt Images/sport/handball.svg
|
||||
sync-bundle-04.txt Images/sport/jersey.svg
|
||||
sync-bundle-04.txt Images/sport/medic-sport.svg
|
||||
sync-bundle-04.txt Images/sport/running.svg
|
||||
sync-bundle-04.txt Images/sport/scoreboard.svg
|
||||
sync-bundle-04.txt Images/sport/stopwatch.svg
|
||||
sync-bundle-04.txt Images/sport/trophy.svg
|
||||
sync-bundle-04.txt Images/sport/whistle.svg
|
||||
sync-bundle-04.txt VERSION
|
||||
sync-bundle-04.txt app.js
|
||||
sync-bundle-04.txt heartbeat-worker.js
|
||||
sync-bundle-05.txt index.html
|
||||
sync-bundle-05.txt js/admin/admin.js
|
||||
sync-bundle-05.txt js/admin/info-rte.js
|
||||
sync-bundle-05.txt js/admin/listen.js
|
||||
sync-bundle-05.txt js/admin/medien.js
|
||||
sync-bundle-05.txt js/admin/personen.js
|
||||
sync-bundle-05.txt js/admin/rotation-header.js
|
||||
sync-bundle-05.txt js/core/api.js
|
||||
sync-bundle-05.txt js/core/datenLaden.js
|
||||
sync-bundle-05.txt js/core/permissions.js
|
||||
sync-bundle-05.txt js/core/state.js
|
||||
sync-bundle-05.txt js/core/util.js
|
||||
sync-bundle-05.txt js/grid/editor.js
|
||||
sync-bundle-05.txt js/grid/interaction.js
|
||||
sync-bundle-05.txt js/grid/render.js
|
||||
sync-bundle-05.txt js/grid/tagesdaten.js
|
||||
sync-bundle-05.txt js/import/excel-import.js
|
||||
sync-bundle-05.txt js/import/text-import.js
|
||||
sync-bundle-05.txt js/logbuch/logbuch.js
|
||||
sync-bundle-05.txt js/stats/statistik.js
|
||||
sync-bundle-05.txt js/sync/cell-lock.js
|
||||
sync-bundle-05.txt js/sync/sync-client.js
|
||||
sync-bundle-05.txt js/ui/icons.js
|
||||
sync-bundle-05.txt js/ui/modal.js
|
||||
sync-bundle-05.txt js/ui/rte.js
|
||||
sync-bundle-05.txt js/ui/theme-branding.js
|
||||
sync-bundle-05.txt js/ui/toast.js
|
||||
sync-bundle-05.txt js/wochenplan/wochenplan.js
|
||||
sync-bundle-05.txt rollback.bat
|
||||
sync-bundle-06.txt server.ps1
|
||||
sync-bundle-06.txt style.css
|
||||
sync-bundle-06.txt sync-worker.js
|
||||
sync-bundle-07.txt xlsx.full.min.js
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,48 +0,0 @@
|
||||
@echo off
|
||||
setlocal
|
||||
set "BDIR=%~dp0"
|
||||
echo.
|
||||
echo === FLD-Schichtplanung: Code aktualisieren ===
|
||||
echo.
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -Command "$m='### PS'+'CODE ###';$me=[IO.File]::ReadAllText('%~f0');$p=$me.IndexOf($m);$nl=$me.IndexOf([char]10,$p);Invoke-Expression $me.Substring($nl+1)"
|
||||
echo.
|
||||
pause
|
||||
exit /b
|
||||
### PSCODE ###
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$here = $env:BDIR
|
||||
$root = Split-Path -Parent ($here.TrimEnd('\'))
|
||||
if (-not (Test-Path -LiteralPath (Join-Path $root 'index.html'))) {
|
||||
Write-Host ('FEHLER: ' + $root + ' ist nicht die App-Wurzel.') -ForegroundColor Red; return
|
||||
}
|
||||
Write-Host ('Ziel: ' + $root)
|
||||
$bundles = Get-ChildItem -LiteralPath $here -Filter 'sync-bundle-*.txt' | Sort-Object Name
|
||||
if (-not $bundles) { Write-Host 'FEHLER: keine sync-bundle-*.txt gefunden.' -ForegroundColor Red; return }
|
||||
$flush = {
|
||||
param($d, $rel, $expLen, $b64)
|
||||
if (-not $rel) { return $null }
|
||||
$bytes = [Convert]::FromBase64String($b64)
|
||||
$full = Join-Path $d ($rel -replace '/', '\')
|
||||
$pd = Split-Path -Parent $full
|
||||
if (-not (Test-Path -LiteralPath $pd)) { New-Item -ItemType Directory -Path $pd -Force | Out-Null }
|
||||
[IO.File]::WriteAllBytes($full, $bytes)
|
||||
return ($bytes.Length -eq $expLen)
|
||||
}
|
||||
$ok = 0; $bad = 0; $rel = $null; $expLen = 0; $sb = New-Object System.Text.StringBuilder
|
||||
foreach ($b in $bundles) {
|
||||
Write-Host ('-> ' + $b.Name)
|
||||
foreach ($line in [IO.File]::ReadAllLines($b.FullName)) {
|
||||
if ($line.StartsWith('### FILE: ')) {
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
$meta = $line.Substring(10); $k = $meta.LastIndexOf(' | ')
|
||||
$rel = $meta.Substring(0, $k); $expLen = [int]$meta.Substring($k + 3); $sb = New-Object System.Text.StringBuilder
|
||||
} elseif ($line.StartsWith('###')) { continue }
|
||||
elseif ($line.Length -gt 0) { [void]$sb.Append($line) }
|
||||
}
|
||||
}
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
Write-Host ''
|
||||
if ($bad -eq 0) { Write-Host ('FERTIG: ' + $ok + ' Dateien.') -ForegroundColor Green }
|
||||
else { Write-Host ('FERTIG: ' + $ok + ' ok, ' + $bad + ' Fehler.') -ForegroundColor Yellow }
|
||||
@@ -1,2 +0,0 @@
|
||||
0eaeaeadf1c298b6d17fc2ad236a061a832e305815a6398d36d78b98779c3e49 sync-bundle-01.txt
|
||||
b917548cba1a6a6ada3bf6c71107e9c3496664b65777194eb50340c73fb79597 sync-entpacken.bat
|
||||
@@ -1,42 +0,0 @@
|
||||
# 41 Dateien in 1 Bundles
|
||||
sync-bundle-01.txt Synchron_test.html
|
||||
sync-bundle-01.txt VERSION
|
||||
sync-bundle-01.txt assets/css/portal.css
|
||||
sync-bundle-01.txt assets/img/polizeistern.png
|
||||
sync-bundle-01.txt assets/img/portal-readme.png
|
||||
sync-bundle-01.txt assets/img/portal.png
|
||||
sync-bundle-01.txt assets/js/admin/historie.js
|
||||
sync-bundle-01.txt assets/js/admin/navedit.js
|
||||
sync-bundle-01.txt assets/js/admin/roles.js
|
||||
sync-bundle-01.txt assets/js/admin/settings.js
|
||||
sync-bundle-01.txt assets/js/collab/collab.js
|
||||
sync-bundle-01.txt assets/js/core/core.js
|
||||
sync-bundle-01.txt assets/js/core/datapflege.js
|
||||
sync-bundle-01.txt assets/js/core/main.js
|
||||
sync-bundle-01.txt assets/js/core/modal.js
|
||||
sync-bundle-01.txt assets/js/data-bao.js
|
||||
sync-bundle-01.txt assets/js/features/article.js
|
||||
sync-bundle-01.txt assets/js/features/arztliste.js
|
||||
sync-bundle-01.txt assets/js/features/bao.js
|
||||
sync-bundle-01.txt assets/js/features/breadcrumbs.js
|
||||
sync-bundle-01.txt assets/js/features/commands.js
|
||||
sync-bundle-01.txt assets/js/features/feed.js
|
||||
sync-bundle-01.txt assets/js/features/impressum.js
|
||||
sync-bundle-01.txt assets/js/features/kennwoerter.js
|
||||
sync-bundle-01.txt assets/js/features/linkcheck.js
|
||||
sync-bundle-01.txt assets/js/features/linkcol.js
|
||||
sync-bundle-01.txt assets/js/features/migrate-ui.js
|
||||
sync-bundle-01.txt assets/js/features/nav.js
|
||||
sync-bundle-01.txt assets/js/features/panels-edit.js
|
||||
sync-bundle-01.txt assets/js/features/panels.js
|
||||
sync-bundle-01.txt assets/js/features/pruefung.js
|
||||
sync-bundle-01.txt assets/js/features/roster-edit.js
|
||||
sync-bundle-01.txt assets/js/features/search.js
|
||||
sync-bundle-01.txt assets/js/features/toc.js
|
||||
sync-bundle-01.txt assets/js/features/whatsnew.js
|
||||
sync-bundle-01.txt helfer/Helfer-beenden.bat
|
||||
sync-bundle-01.txt helfer/Portal-Pflege-starten.bat
|
||||
sync-bundle-01.txt helfer/hol_bao_medien.ps1
|
||||
sync-bundle-01.txt helfer/portal_helfer.ps1
|
||||
sync-bundle-01.txt index.html
|
||||
sync-bundle-01.txt rollback.bat
|
||||
@@ -1 +0,0 @@
|
||||
1.0.0
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,48 +0,0 @@
|
||||
@echo off
|
||||
setlocal
|
||||
set "BDIR=%~dp0"
|
||||
echo.
|
||||
echo === Portal Union: Code aktualisieren ===
|
||||
echo.
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -Command "$m='### PS'+'CODE ###';$me=[IO.File]::ReadAllText('%~f0');$p=$me.IndexOf($m);$nl=$me.IndexOf([char]10,$p);Invoke-Expression $me.Substring($nl+1)"
|
||||
echo.
|
||||
pause
|
||||
exit /b
|
||||
### PSCODE ###
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$here = $env:BDIR
|
||||
$root = Split-Path -Parent ($here.TrimEnd('\'))
|
||||
if (-not (Test-Path -LiteralPath (Join-Path $root 'index.html'))) {
|
||||
Write-Host ('FEHLER: ' + $root + ' ist nicht die Portal-Wurzel.') -ForegroundColor Red; return
|
||||
}
|
||||
Write-Host ('Ziel: ' + $root)
|
||||
$bundles = Get-ChildItem -LiteralPath $here -Filter 'sync-bundle-*.txt' | Sort-Object Name
|
||||
if (-not $bundles) { Write-Host 'FEHLER: keine sync-bundle-*.txt gefunden.' -ForegroundColor Red; return }
|
||||
$flush = {
|
||||
param($d, $rel, $expLen, $b64)
|
||||
if (-not $rel) { return $null }
|
||||
$bytes = [Convert]::FromBase64String($b64)
|
||||
$full = Join-Path $d ($rel -replace '/', '\')
|
||||
$pd = Split-Path -Parent $full
|
||||
if (-not (Test-Path -LiteralPath $pd)) { New-Item -ItemType Directory -Path $pd -Force | Out-Null }
|
||||
[IO.File]::WriteAllBytes($full, $bytes)
|
||||
return ($bytes.Length -eq $expLen)
|
||||
}
|
||||
$ok = 0; $bad = 0; $rel = $null; $expLen = 0; $sb = New-Object System.Text.StringBuilder
|
||||
foreach ($b in $bundles) {
|
||||
Write-Host ('-> ' + $b.Name)
|
||||
foreach ($line in [IO.File]::ReadAllLines($b.FullName)) {
|
||||
if ($line.StartsWith('### FILE: ')) {
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
$meta = $line.Substring(10); $k = $meta.LastIndexOf(' | ')
|
||||
$rel = $meta.Substring(0, $k); $expLen = [int]$meta.Substring($k + 3); $sb = New-Object System.Text.StringBuilder
|
||||
} elseif ($line.StartsWith('###')) { continue }
|
||||
elseif ($line.Length -gt 0) { [void]$sb.Append($line) }
|
||||
}
|
||||
}
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
Write-Host ''
|
||||
if ($bad -eq 0) { Write-Host ('FERTIG: ' + $ok + ' Dateien.') -ForegroundColor Green }
|
||||
else { Write-Host ('FERTIG: ' + $ok + ' ok, ' + $bad + ' Fehler.') -ForegroundColor Yellow }
|
||||
@@ -1,8 +1,3 @@
|
||||
# StatusQuo_Updates
|
||||
|
||||
Öffentliches Distributions-Repo für automatische Updates.
|
||||
|
||||
| Ordner | Projekt |
|
||||
|--------|---------|
|
||||
| `VI3DGL/` | VI3-DGL-Planung |
|
||||
|
||||
Public update delivery for StatusQuo portal projects
|
||||
@@ -1,51 +0,0 @@
|
||||
## v1.4.5
|
||||
|
||||
**Behoben**
|
||||
- Mitarbeitende **ohne** Berechtigung für Statistik, Logbuch oder Administration bekamen beim Öffnen der Planung im Hintergrund einen Fehler, weil die Seite auf einen gesperrten Bereich zugreifen wollte. Die Planung lädt jetzt für alle sauber.
|
||||
- Wenn für SuperUser/Gesamtverantwortliche ein offener Hinweis vorlag (der rote Balken oben), ließ sich die Planung nicht mehr bis ganz nach unten scrollen. Das ist behoben.
|
||||
- Beim Öffnen der Browser-Entwicklerwerkzeuge entstand eine unnötige Fehlermeldung im Server-Protokoll. Das Protokoll wird unverändert weitergeschrieben — nur die Fehlmeldung entfällt.
|
||||
- Die Planungstabelle lässt sich jetzt mit dem Mausrad **überall** scrollen — auch wenn der Zeiger über der Namensspalte (links) liegt. Vorher reagierte nur das eigentliche Schichtenfeld.
|
||||
|
||||
**Geändert**
|
||||
- Offene Hinweise erscheinen nicht mehr als roter Kopfbalken, sondern öffnen sich beim Anmelden in einem Fenster. Dort lassen sich alle oder einzelne Hinweise „zur Kenntnis nehmen" oder **aufschieben**. Aufgeschobene Hinweise bleiben am roten Zähler neben dem Namen (oben rechts) sichtbar, und das Fenster öffnet sich beim nächsten Anmelden von selbst wieder.
|
||||
|
||||
## v1.4.4
|
||||
|
||||
**Behoben**
|
||||
- Update-Prüfung hinter dem Behörden-Proxy: Der Server konnte das Update-Repository nicht erreichen („Proxyauthentifizierung erforderlich") — der Update-Check und das Einspielen funktionieren jetzt.
|
||||
- „Update installieren" lief auf dem Produktiv-Server auf einen Fehler (500). Der Updater findet jetzt zuverlässig die richtige Programm-Ablage und startet sauber.
|
||||
- Die angezeigte aktuelle Version war fälschlich „0.0.0", wodurch immer ein Update vorgeschlagen wurde. Es wird jetzt die echte installierte Version angezeigt.
|
||||
|
||||
**Neu**
|
||||
- Selbsttest („laufen alle Funktionen?") prüft zusätzlich, ob das Update-System bereitsteht und ob die Live-Daten am richtigen Ort gefunden werden.
|
||||
|
||||
## v1.4.3
|
||||
|
||||
**Neu**
|
||||
- Update-Bereich in der Administration: prüft auf neue Versionen, sichert automatisch vollständig und führt nach dem Einspielen einen Selbsttest aus, bevor das System wieder freigegeben wird.
|
||||
- Dieser Änderungsverlauf wird vor jedem Update angezeigt, damit klar ist, was sich ändert.
|
||||
|
||||
**Behoben**
|
||||
- Bestätigungsdialoge (z. B. „Alle zur Kenntnis nehmen") erschienen hinter offenen Fenstern und ließen sich nicht bedienen — sie liegen jetzt korrekt im Vordergrund.
|
||||
|
||||
# Änderungsverlauf — VI3 DGL-Planung
|
||||
|
||||
Diese Hinweise werden den Admins **vor** der Installation im Update-Bereich angezeigt.
|
||||
Neueste Version steht oben. Pro Version kurz und verständlich beschreiben, **was** sich ändert.
|
||||
|
||||
## v1.4.3
|
||||
|
||||
**Neu**
|
||||
- Update-Bereich in der Administration: prüft auf neue Versionen, sichert automatisch vollständig und führt nach dem Einspielen einen Selbsttest aus, bevor das System wieder freigegeben wird.
|
||||
- Dieser Änderungsverlauf wird vor jedem Update angezeigt, damit klar ist, was sich ändert.
|
||||
|
||||
**Behoben**
|
||||
- Bestätigungsdialoge (z. B. „Alle zur Kenntnis nehmen") erschienen hinter offenen Fenstern und ließen sich nicht bedienen — sie liegen jetzt korrekt im Vordergrund.
|
||||
|
||||
## v1.4.2
|
||||
|
||||
- Wartungsupdate, interne Korrekturen.
|
||||
|
||||
## v1.4.1
|
||||
|
||||
- Wartungsupdate.
|
||||
@@ -1,6 +0,0 @@
|
||||
3bf6c933d322d4016ce015a1f9a8caccc9f14ea38efefc4c95258e2928ba1cf4 sync-bundle-01.txt
|
||||
0fa67c68a2db905415d5980796e22f364d5557ee411d82d462566f2966db606e sync-bundle-02.txt
|
||||
fca4ebd7bf7e8d8f8b7eb3b860aff6129942c24f447847b43f565fd5895e37e2 sync-bundle-03.txt
|
||||
34a06c58c9eec3fe4766ba6e98bd4540fa4d98ff1c36c713a90c6c39d487b4bd sync-bundle-04.txt
|
||||
f3395812768ce6904f89ca1b9e2e96c1fd2c8896e5c92671a442dbb282b02f11 sync-bundle-05.txt
|
||||
5eb48ce445514b1898f2a33dda9250a31087ddc1a0d98028af13c2eb8653212d sync-entpacken.bat
|
||||
@@ -1,80 +0,0 @@
|
||||
# 79 Dateien in 5 Bundles
|
||||
sync-bundle-01.txt VERSION
|
||||
sync-bundle-01.txt Wochenplan.template.html
|
||||
sync-bundle-01.txt app.js
|
||||
sync-bundle-01.txt check.bat
|
||||
sync-bundle-01.txt check.ps1
|
||||
sync-bundle-01.txt data/mainframe.html
|
||||
sync-bundle-01.txt data/sanitizer.html
|
||||
sync-bundle-01.txt dgl.bat
|
||||
sync-bundle-01.txt diagnose.html
|
||||
sync-bundle-01.txt diagnose.js
|
||||
sync-bundle-01.txt favicon.ico
|
||||
sync-bundle-01.txt heartbeat-worker.js
|
||||
sync-bundle-01.txt icons/VI3_Planung_Logo.png
|
||||
sync-bundle-01.txt icons/VI3_Planung_Logo_alt.png
|
||||
sync-bundle-01.txt icons/bike_8979898.png
|
||||
sync-bundle-01.txt icons/calculator_3788148.png
|
||||
sync-bundle-01.txt icons/comparison_7732609.png
|
||||
sync-bundle-01.txt icons/deadline_5541978.png
|
||||
sync-bundle-01.txt icons/eMail_speichern.png
|
||||
sync-bundle-01.txt icons/email_7732651.png
|
||||
sync-bundle-01.txt icons/excavator_8383815.png
|
||||
sync-bundle-01.txt icons/hurdle_6716177.png
|
||||
sync-bundle-01.txt icons/idea_5541534.png
|
||||
sync-bundle-01.txt icons/kommentar_kontext.png
|
||||
sync-bundle-01.txt icons/kontext.png
|
||||
sync-bundle-01.txt icons/light-bulb_5541476.png
|
||||
sync-bundle-01.txt icons/list_3837408.png
|
||||
sync-bundle-01.txt icons/organization_5541954.png
|
||||
sync-bundle-01.txt icons/plane_2918661.png
|
||||
sync-bundle-01.txt icons/planung.png
|
||||
sync-bundle-01.txt icons/server_diagnose.png
|
||||
sync-bundle-01.txt icons/sync_check_diagnose_im_impressum.png
|
||||
sync-bundle-01.txt icons/team_2636184.png
|
||||
sync-bundle-02.txt index.html
|
||||
sync-bundle-02.txt info.html
|
||||
sync-bundle-02.txt js/admin.js
|
||||
sync-bundle-02.txt js/admin_codes.js
|
||||
sync-bundle-02.txt js/admin_common.js
|
||||
sync-bundle-02.txt js/admin_erscheinungsbild.js
|
||||
sync-bundle-02.txt js/admin_kalender.js
|
||||
sync-bundle-02.txt js/admin_mitteilungen.js
|
||||
sync-bundle-02.txt js/admin_personal.js
|
||||
sync-bundle-02.txt js/admin_rollen.js
|
||||
sync-bundle-02.txt js/admin_standardrechte.js
|
||||
sync-bundle-02.txt js/admin_statistik.js
|
||||
sync-bundle-02.txt js/admin_statistik_builder.js
|
||||
sync-bundle-02.txt js/besetzung.js
|
||||
sync-bundle-02.txt js/core_api.js
|
||||
sync-bundle-02.txt js/core_datenLaden.js
|
||||
sync-bundle-02.txt js/core_permissions.js
|
||||
sync-bundle-02.txt js/core_state.js
|
||||
sync-bundle-02.txt js/core_util.js
|
||||
sync-bundle-02.txt js/email_vorlagen.js
|
||||
sync-bundle-02.txt js/export_plan.js
|
||||
sync-bundle-02.txt js/feiertage_de.js
|
||||
sync-bundle-02.txt js/grid_editor.js
|
||||
sync-bundle-02.txt js/grid_interaction.js
|
||||
sync-bundle-02.txt js/grid_render.js
|
||||
sync-bundle-02.txt js/hinweise.js
|
||||
sync-bundle-03.txt js/import_excel.js
|
||||
sync-bundle-03.txt js/logbuch.js
|
||||
sync-bundle-03.txt js/schichtteam.js
|
||||
sync-bundle-03.txt js/statistik.js
|
||||
sync-bundle-03.txt js/statistik_charts.js
|
||||
sync-bundle-03.txt js/statistik_engine.js
|
||||
sync-bundle-03.txt js/sync.js
|
||||
sync-bundle-03.txt js/ui_dialog.js
|
||||
sync-bundle-03.txt js/ui_rte.js
|
||||
sync-bundle-03.txt js/wochenplan.js
|
||||
sync-bundle-03.txt rollback.bat
|
||||
sync-bundle-03.txt server.ps1
|
||||
sync-bundle-03.txt stop.bat
|
||||
sync-bundle-03.txt style.css
|
||||
sync-bundle-03.txt sync-check.html
|
||||
sync-bundle-04.txt sync-check.js
|
||||
sync-bundle-04.txt sync-manifest.json
|
||||
sync-bundle-04.txt sync-worker.js
|
||||
sync-bundle-04.txt update.bat
|
||||
sync-bundle-05.txt xlsx.full.min.js
|
||||
@@ -1 +0,0 @@
|
||||
1.4.5
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,869 +0,0 @@
|
||||
### SYNC-TRANSFER 4/5 -- mit sync-entpacken.bat entpacken
|
||||
### Base64 - NICHT von Hand bearbeiten.
|
||||
### FILE: sync-check.js | 34903
|
||||
Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
|
||||
PT09PT09PT09PT09PT09PT09PT09PQovLyBTb2xsLUxpc3RlIGRlciBEYXRlaWVuLCBkaWUgdm9t
|
||||
IGxhdWZlbmRlbiBTZXJ2ZXIgYWJydWZiYXIgc2VpbiBtdWVzc2VuLgovLwovLyBGZWxkZXI6Ci8v
|
||||
ICAgcGZhZCAgICAgICAgIOKAlCBVUkwgcmVsYXRpdiB6dW0gU2VydmVyLVJvb3QKLy8gICBieXRl
|
||||
c01pbiAgICAg4oCUIG9wdGlvbmFsZXIgTWluLVNjaHdlbGx3ZXJ0IChrbGVpbmVyIC0+IEFOS0VS
|
||||
IEZFSExUIHd1ZXJkZQovLyAgICAgICAgICAgICAgICAgIHZlcm11dGxpY2ggZ3JlaWZlbiwgYWJl
|
||||
ciB3aXIgd2FybmVuIGZydWVoKQovLyAgIG11c3NbXSAgICAgICDigJQgU3RyaW5ncywgZGllIGlt
|
||||
IEJvZHkgdm9ya29tbWVuIE1VRVNTRU4KLy8gICBkYXJmX25pY2h0W10g4oCUIFN0cmluZ3MsIGRp
|
||||
ZSBpbSBCb2R5IE5JQ0hUIHZvcmtvbW1lbiBkdWVyZmVuCi8vICAgbnVyRnVlciAgICAgIOKAlCAn
|
||||
c3UnIHwgJ2RhcmZTdGF0JyB8ICdkYXJmTG9nJyDigJQgRWludHJhZyB3aXJkIHVlYmVyc3BydW5n
|
||||
ZW4sCi8vICAgICAgICAgICAgICAgICAgd2VubiBkZXIgZWluZ2Vsb2dndGUgVXNlciBkaWVzZSBC
|
||||
ZXJlY2h0aWd1bmcgbmljaHQgaGF0LgovLyAgICAgICAgICAgICAgICAgIERlZmF1bHQ6IGplZGVy
|
||||
IGRhcmYuCi8vICAgaXN0TW9kdWwgICAgIOKAlCBiZWkgSlMtTW9kdWxlbjogenVzYWV0emxpY2gg
|
||||
cHJ1ZWZlbiwgZGFzcyBrZWluICJmcm9tIi1JbXBvcnQKLy8gICAgICAgICAgICAgICAgICBhdWYg
|
||||
ZWluZSBEYXRlaSB6ZWlndCwgZGllIHNlbGJzdCA0MDQgbGllZmVydAovLyA9PT09PT09PT09PT09
|
||||
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
|
||||
PT09PT09CnZhciBTT0xMID0gWwogIC8vIFRvcC1MZXZlbAogIHsgcGZhZDogJ2luZGV4Lmh0bWwn
|
||||
LCAgICAgICAgICAgIG11c3M6IFsnYW5zaWNodC1wbGFudW5nJywgJ21vZGFsLW92ZXJsYXknLAog
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmkzLXBlcnNvbi1wb3Bv
|
||||
dmVyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZpMy1rb21t
|
||||
ZW50YXItcG9wb3ZlcicsICAvLyBLb21tZW50YXItSG92ZXItUG9wb3ZlciAoMjAyNi0wNS0yOCkK
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXRvci1rb21tZW50
|
||||
YXItdmVybGF1ZicsICAvLyBWZXJsYXVmc2xpc3RlIGltIFplbGwtRWRpdG9yIChTdHVmZSAyKQog
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuLWtvbW1lbnRhci1o
|
||||
aW56dScsICAgICAgIC8vIG5ldWVyICJIaW56dWZ1ZWdlbiItQnV0dG9uIChTdHVmZSAyKQogICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVpbi1hdmF0YXItYnRuJywK
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkbWluLXRhYi1lcnNj
|
||||
aGVpbnVuZ3NiaWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
J2FkbWluLXNla3Rpb24tZGlyZWt0aW9uc2xlaXR1bmcnLAogICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAnYWRtaW4tc2VrdGlvbi1mdWVocnVuZ3NzdGVsbGUnLAogICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVjaHRlLWNhcmQtc3UnLCAn
|
||||
cmVjaHRlLWNhcmQtZmEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAnaWgtaW1wcmVzc3VtJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgJ0Fuc3ByZWNoJywgIC8vIFNwYWx0ZW4tSGVhZGVyICJBbnNwcmVjaC3CrXBhcnRuZXIiIGlu
|
||||
IFBlcnNvbmFsLVRhYgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
|
||||
SW4gUGxhbnVuZyBzaWNodGJhcicsICAvLyBGdW5rdGlvbmVuICsgR3J1cHBlbi1UYWIgU3BhbHRl
|
||||
bmhlYWRlciAoMjAyNi0wNS0yNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgJ0Fuc3ByZWNocGFydG5lciBtw7ZnbGljaCcsICAvLyBuZXVlIFNwYWx0ZSBpbSBHcnVw
|
||||
cGVuLVRhYiAoMjAyNi0wNS0yNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgLy8gZ3J1cHBlLWlucGxhbnVuZy1pbnB1dCAvIGdydXBwZS1kYXJmYXAtaW5wdXQgc2lu
|
||||
ZCBDU1MtS2xhc3NlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
Ly8gZGllIGFkbWluLmpzIHp1ciBMYXVmemVpdCBpbiA8dGJvZHkgaWQ9ImdydXBwZW4tdGJvZHki
|
||||
PiByZW5kZXJ0IOKAlAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
|
||||
LyBpbSBzdGF0aXNjaGVuIGluZGV4Lmh0bWwga29lbm5lbiBzaWUgbmllIGF1ZnRhdWNoZW4uIERp
|
||||
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGFsdGVuaGVh
|
||||
ZGVyIG9iZW4gZGVja2VuIGRhcyBGZWF0dXJlIGluIGluZGV4Lmh0bWwgYWI7IGRpZQogICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBLbGFzc2VuIHNlbGJzdCB3ZXJk
|
||||
ZW4gd2VpdGVyIHVudGVuIGdlZ2VuIGpzL2FkbWluLmpzIGdlcHJ1ZWZ0LgogICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuLXNjaGljaHR0ZWFtJ10sICAvLyAiVGVh
|
||||
bSItQnV0dG9uIGltIEhldXRlLUthc3RlbiAoMjAyNi0wNS0yNykKICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICBkYXJmX25pY2h0OiBbJ2lkPSJhbnNpY2h0LXN0YXRpc3RpayInLCAn
|
||||
aWQ9ImFuc2ljaHQtbG9nYnVjaCInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAnaWQ9Im5hdi1zdGF0aXN0aWsiJywgJ2lkPSJuYXYtbG9nYnVjaCInLAog
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuLXBlcnNv
|
||||
bmFsLWJ1bGsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAnYWRtaW4tc2VrdGlvbi1zaWNodGJhcmtlaXQnLCAgLy8gJ1JlZ3Vsw6RyZSBBZG1pbnMnLVNl
|
||||
a3Rpb24gZW50ZmVybnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgJ3NpY2h0YmFya2VpdC1pbmhhbHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAnUmVndWzDpHJlIEFkbWlucyddIH0sCiAgeyBwZmFkOiAnYXBw
|
||||
LmpzJywgICAgICAgICAgICAgICAgbXVzczogWydvcHRpb25hbGVNb2R1bGVMYWRlbicsICcuL2pz
|
||||
L3N0YXRpc3Rpay5qcycsICcuL2pzL2xvZ2J1Y2guanMnLAogICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAnL2RhdGEvbWFpbmZyYW1lLmh0bWwnLCAnL2RhdGEvc2FuaXRp
|
||||
emVyLmh0bWwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVp
|
||||
bkF2YXRhclRvcGJhckFrdHVhbGlzaWVyZW4nLCAncGVyc29uUG9wb3ZlclplaWdlbicsCiAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrb21tZW50YXJQb3BvdmVyWmVp
|
||||
Z2VuJywgJ2tvbW1lbnRhclBvcG92ZXJWZXJzdGVja2VuJywgIC8vIEtvbW1lbnRhci1Qb3BvdmVy
|
||||
IHZlcmRyYWh0ZXQgKDIwMjYtMDUtMjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICdrb21tZW50YXJIaW56dWZ1ZWdlbicsICdrb21tZW50YXJMb2VzY2hlbicsICAv
|
||||
LyBTdHVmZS0yLVZlcmxhdWYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgJ2J0bi1rb21tZW50YXItaGluenUnLCAgLy8gbmV1ZXIgRWRpdG9yLUJ1dHRvbiAoU3R1ZmUg
|
||||
MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JvbGxlblRhYmVs
|
||||
bGVSZW5kZXJuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lt
|
||||
cHJlc3N1bU1vZGFsT2VmZm5lbicsICdzdXBwb3J0TWFpbEJvZHlCYXVlbicsCiAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbnNwcmVjaHBhcnRuZXJJbmxpbmVUb2dn
|
||||
bGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5QbGFudW5n
|
||||
SW5saW5lVG9nZ2xlJywgIC8vIFByby1QZXJzb24tQXVzYmxlbmRlbiB2ZXJkcmFodGV0ICgyMDI2
|
||||
LTA1LTI3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NoaWNo
|
||||
dFRlYW1Nb2RhbE9lZmZuZW4nLCAgLy8gU2NoaWNodC1UZWFtLU1vZGFsIHZlcmRyYWh0ZXQgKDIw
|
||||
MjYtMDUtMjcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncnVw
|
||||
cGVFcmxhdWJ0QXAnLCAgLy8gQW5zcHJlY2hwYXJ0bmVyLUZpbHRlciBwcm8gR3J1cHBlIGltIElu
|
||||
Zm8tTW9kYWwgKDIwMjYtMDUtMjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICdpbmZvLWFwLW1haWxidG4nLCAgLy8gTWFpbC1CdXR0b24tS2xhc3NlIGltIEluZm8t
|
||||
TW9kYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lNUFJFU1NV
|
||||
TV9ERUZBVUxUJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyZl9uaWNo
|
||||
dDogWyJmcm9tICcuL2pzL3N0YXRpc3Rpay5qcyciLCAiZnJvbSAnLi9qcy9sb2didWNoLmpzJyIs
|
||||
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdidWxrQmVh
|
||||
cmJlaXR1bmdEaWFsb2cnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAnc2ljaHRiYXJrZWl0LWNoZWNrYm94JywgIC8vIGFsdGVyIFNpY2h0YmFya2VpdHMt
|
||||
SGFuZGxlciByYXVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICdhZG1pblNpY2h0YmFya2VpdFsnXSB9LCAgLy8gc2NocmVpYmVuZGVyIFp1Z3JpZmYgZW50
|
||||
ZmVybnQKICB7IHBmYWQ6ICdzdHlsZS5jc3MnLCAgICAgICAgICAgICBtdXNzOiBbJy5sYXlvdXQt
|
||||
c3RhdGlzdGlrJywgJy5sYXlvdXQtbG9nYnVjaCcsICcuc3RhdHMtJywgJy5sb2ctJywKICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy52aTMtYXZhdGFyJywgJy5wcHYt
|
||||
dGFnJywgJy52aTMtcGVyc29uLXBvcG92ZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAnLnZpMy1rb21tZW50YXItcG9wb3ZlcicsICcua3Ata29wZicsICcua3At
|
||||
Ym9keScsICAvLyBLb21tZW50YXItUG9wb3ZlciAoMjAyNi0wNS0yOCkKICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5rcC1laW50cmFnJywgJy5rcC1ib2R5LXN0YWNr
|
||||
JywgIC8vIFN0YWNrLVZpZXcgYmVpIG1laHJlcmVuIEtvbW1lbnRhcmVuIChTdHVmZSAyKQogICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmVkaXRvci1rb21tZW50YXIt
|
||||
dmVybGF1ZicsICcuZWt2LWVpbnRyYWcnLCAnLmVrdi1sb2VzY2hlbicsICAvLyBFZGl0b3ItVmVy
|
||||
bGF1ZiAoU3R1ZmUgMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
J2RhdGEta29tbWVudGFyLWFuemFobCcsICAvLyBDb3VudGVyLUJhZGdlLUF0dHJpYnV0CiAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuZGxnLWVsZGdsLXRvZ2dsZScs
|
||||
ICcudmkzZGdsLWJ0bicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICcuZXJzY2hlaW51bmctbGF5b3V0JywgJy5nYi1ncmlkJywKICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgJy5yZWNodGUtY2FyZCcsICcucmVjaHRlLWNhcmQtaWNvbics
|
||||
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuaW1wcmVzc3VtLW5v
|
||||
dGZhbGwnLCAnLmltcHJlc3N1bS1tYWlsLWJ0bicsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICcuYmsta2FuZGlkYXRlbi10ZXh0JywgIC8vIG5ldWUgMi16ZWlsaWdl
|
||||
IEthbmRpZGF0ZW4tWmVpbGUgKDIwMjYtMDUtMjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICcuYmsta2FuZGlkYXRlbi10b2dnbGUtb2ZmZW4nLCAgLy8gQXVma2xh
|
||||
cHAtSW5kaWthdG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcu
|
||||
aW5mby1hcC1tYWlsYnRuJywgIC8vIE1haWwtQnV0dG9uIGhpbnRlciBBbnNwcmVjaHBhcnRuZXJu
|
||||
ICgyMDI2LTA1LTI0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
|
||||
cHVsc0ZlcmllbicsICAvLyBGZXJpZW4tTWFya2llcnVuZyBQdWxzLUtleWZyYW1lICgyMDI2LTA1
|
||||
LTI3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1tZmVyLXNw
|
||||
YWx0ZS1iZyddLCAgLy8gRmVyaWVuLVNwYWx0ZW4tVG9lbnVuZyBWYXIKICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAvLyAucHAta29wZiAoYWx0ZSBQb3BvdmVyLUtsYXNzZSwgamV0
|
||||
enQgLnBwdi1rb3BmKSBpc3QgbmlyZ2VuZHdvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgLy8gbWVociB2b3JoYW5kZW4g4oCUIHdlbm4gZG9jaCwgaXN0IGRlciBBc3NldC1DYWNo
|
||||
ZSB2ZXJhbHRldC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAucHAtdGFn
|
||||
IGV4aXN0aWVydCBOT0NIIGltIFBlcnMuLVBsYW47IGRhaGVyIGhpZXIgbmljaHQgcHJ1ZWZlbi4K
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXJmX25pY2h0OiBbJy5jcnlwdG8t
|
||||
d2Fybi1iYW5uZXInLCAnLmJhLScsICcuYmItJywgJy5idWxrLWRpYWxvZycsCiAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcucHAta29wZiddIH0sCiAgeyBw
|
||||
ZmFkOiAnc3luYy13b3JrZXIuanMnIH0sCiAgeyBwZmFkOiAnaGVhcnRiZWF0LXdvcmtlci5qcycg
|
||||
fSwKCiAgLy8gT2ZmbGluZS1Xb2NoZW5wbGFuOiBUZW1wbGF0ZSAoUXVlbGxlLCBUb2tlbi1QbGF0
|
||||
emhhbHRlcikgdW5kIGRlciB2b20KICAvLyBTZXJ2ZXIgYmVpIGplZGVyIFBsYW51bmdzLUFlbmRl
|
||||
cnVuZyBuZXUgZ2VuZXJpZXJ0ZSBTbmFwc2hvdC4KICB7IHBmYWQ6ICdXb2NoZW5wbGFuLnRlbXBs
|
||||
YXRlLmh0bWwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11c3M6IFsnX19E
|
||||
QVRFTl9KU09OX18nLCAnX19TTkFQU0hPVF9aRUlUX18nLAogICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAnd3AtdGFnYmxvY2stdGFiZWxsZScsICdPZmZsaW5lLVNuYXBz
|
||||
aG90JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ07DpGNoc3Rl
|
||||
IFdvY2hlJywgJ0Zyw7xoZGllbnN0J10gfSwKICB7IHBmYWQ6ICdXb2NoZW5wbGFuLmh0bWwnLCAg
|
||||
ICAgICBieXRlc01pbjogODAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
Ly8gRGF0ZW4gbXVlc3NlbiBzdWJzdGl0dWllcnQgc2VpbiDigJQgVG9rZW5zIGR1ZXJmZW4gbmlj
|
||||
aHQgbWVociBkcmluc3RlaGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11
|
||||
c3M6IFsndmFyIERBVEVOJywgJ3dwLXRhZ2Jsb2NrJywgJ3dwLXZvcndvY2hlJywKICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Zyw7xoZGllbnN0J10sCiAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyZl9uaWNodDogWydfX0RBVEVOX0pTT05fXycs
|
||||
ICdfX1NOQVBTSE9UX1pFSVRfXyddIH0sCgogIC8vIE1hcmt1cC1GcmFnbWVudGUgdW50ZXIgVGFy
|
||||
bi1QZmFkZW4gaW4gZGF0YS8gKG51ciBCZXJlY2h0aWd0ZSkKICB7IHBmYWQ6ICdkYXRhL21haW5m
|
||||
cmFtZS5odG1sJywgbnVyRnVlcjogJ2RhcmZTdGF0JywKICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICBtdXNzOiBbJzxkaXYgaWQ9ImFuc2ljaHQtc3RhdGlzdGlrIicsICdpZD0ic3Rh
|
||||
dHMtdGJvZHkiJywgJ2NsYXNzPSJsYXlvdXQtc3RhdGlzdGlrIiddIH0sCiAgeyBwZmFkOiAnZGF0
|
||||
YS9zYW5pdGl6ZXIuaHRtbCcsIG51ckZ1ZXI6ICdkYXJmTG9nJywKICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICBtdXNzOiBbJzxkaXYgaWQ9ImFuc2ljaHQtbG9nYnVjaCInLCAgICdp
|
||||
ZD0ibG9nLXRib2R5IicsICAgJ2NsYXNzPSJsYXlvdXQtbG9nYnVjaCInXSB9LAoKICAvLyBDb3Jl
|
||||
CiAgeyBwZmFkOiAnanMvY29yZV9zdGF0ZS5qcycsICAgICAgaXN0TW9kdWw6IHRydWUsIG11c3M6
|
||||
IFsnZXhwb3J0IHZhciBaJ10gfSwKICB7IHBmYWQ6ICdqcy9jb3JlX2FwaS5qcycsICAgICAgICBp
|
||||
c3RNb2R1bDogdHJ1ZSwgbXVzczogWydleHBvcnQgZnVuY3Rpb24gYXBpJ10gfSwKICB7IHBmYWQ6
|
||||
ICdqcy9jb3JlX3V0aWwuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydleHBvcnQg
|
||||
ZnVuY3Rpb24gZXNjYXBlSFRNTCcsICdleHBvcnQgZnVuY3Rpb24gZGF0dW1TdHInLAogICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F2YXRh
|
||||
cktyZWlzSHRtbCcsICdhdmF0YXJVcmwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FuemVpZ2VOYW1lRnVlcktlbm51bmcnLAogICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Z1
|
||||
bmt0aW9uSW5QbGFudW5nJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICdleHBvcnQgZnVuY3Rpb24gcGVyc29uU2NoaWNodEFtJ10gfSwK
|
||||
ICB7IHBmYWQ6ICdqcy9jb3JlX2RhdGVuTGFkZW4uanMnLCBpc3RNb2R1bDogdHJ1ZSwgbXVzczog
|
||||
WydkaXJla3Rpb25zbGVpdHVuZycsICdmdWVocnVuZ3NzdGVsbGUnLAogICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcnN0ZWNrdGVGdW5r
|
||||
dGlvbmVuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICd2ZXJzdGVja3RlR3J1cHBlbiddIH0sICAvLyBHcnVwcGVuLVNpY2h0YmFya2Vp
|
||||
dCAoMjAyNi0wNS0yNCkKICB7IHBmYWQ6ICdqcy9jb3JlX3Blcm1pc3Npb25zLmpzJyxpc3RNb2R1
|
||||
bDogdHJ1ZSwgbXVzczogWydkYXJmU3RhdGlzdGlrJywgJ2RhcmZMb2didWNoJywgJ3JlY2h0ZUF1
|
||||
c0luZm8nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgJ21laW5lTWlrcm90ZWFtUGVyc29uSWRzJ10gfSwKCiAgLy8gVUkKICB7IHBmYWQ6
|
||||
ICdqcy91aV9kaWFsb2cuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydleHBvcnQg
|
||||
ZnVuY3Rpb24gdG9hc3QnLCAnZXhwb3J0IGZ1bmN0aW9uIGJlc3RhZXRpZ2VuJywKICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBvcnQg
|
||||
ZnVuY3Rpb24gbW9kYWxaZWlnZW4nLCAnZGlydHlSZWdpc3RyaWVyZSddIH0sCiAgeyBwZmFkOiAn
|
||||
anMvdWlfcnRlLmpzJywgICAgICAgICAgaXN0TW9kdWw6IHRydWUgfSwKCiAgLy8gR3JpZAogIHsg
|
||||
cGZhZDogJ2pzL2dyaWRfcmVuZGVyLmpzJywgICAgIGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ2Fu
|
||||
c2ljaHRXZWNoc2VsbicsICdrb3BmUmVuZGVybicsICdkYXRlbkdyaWRSZW5kZXJuJywKICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcGFs
|
||||
dGUtaGV1dGUnLCAnYXZhdGFyS3JlaXNIdG1sJ10gfSwKICB7IHBmYWQ6ICdqcy9ncmlkX2VkaXRv
|
||||
ci5qcycsICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydlZGl0b3JPZWZmbmVuJywgJ2lzdERn
|
||||
bFF1YWxpZml6aWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAnZWRpdG9yS29tbWVudGFyVmVybGF1ZlJlbmRlcm4nXSB9LAogIHsg
|
||||
cGZhZDogJ2pzL2dyaWRfaW50ZXJhY3Rpb24uanMnLGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ2Z1
|
||||
ZWxsSW5pdCcsICdmdWVsbEhhbmRsZUFuWmVsbGUnLAogICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tvbW1lbnRhclBvcG92ZXJaZWlnZW4n
|
||||
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgJ2tvbW1lbnRhclBvcG92ZXJWZXJzdGVja2VuJywKICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrb21tZW50YXJQb3BvdmVyRmVzdGhh
|
||||
bHRlbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAna29tbWVudGFyTGlzdGUnLCAgICAgICAgLy8gU3R1ZmUtMi1IZWxwZXI6IExpc3Rl
|
||||
IHN0YXR0IFNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgJ2tvbW1lbnRhckFuemFobCcsCiAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna29tbWVudGFySGluenVmdWVnZW4n
|
||||
LCAgLy8gUE9TVCBhbmhhZW5nZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICdrb21tZW50YXJMb2VzY2hlbicsICAgICAvLyBERUxFVEUg
|
||||
cGVyIElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAnZGFyZktvbW1lbnRhckxvZXNjaGVuJ10gfSwKCiAgLy8gQWRtaW4KICB7IHBmYWQ6
|
||||
ICdqcy9hZG1pbi5qcycsICAgICAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydhZG1pblJl
|
||||
bmRlcm4nLCAnZmVhdHVyZUlzdEFrdGl2JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb2xsZW5UYWJlbGxlUmVuZGVybicsICdlcnNj
|
||||
aGVpbnVuZ3NiaWxkUmVuZGVybicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAnZ3J1cHBlLWlucGxhbnVuZy1pbnB1dCcsICAvLyBTaWNo
|
||||
dGJhcmtlaXRzLUNoZWNrYm94IChkeW5hbWlzY2ggZ2VyZW5kZXJ0LCAyMDI2LTA1LTI0KQogICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dy
|
||||
dXBwZS1kYXJmYXAtaW5wdXQnLCAgICAgLy8gQW5zcHJlY2hwYXJ0bmVyLUNoZWNrYm94IChkeW5h
|
||||
bWlzY2ggZ2VyZW5kZXJ0LCAyMDI2LTA1LTI0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lNUFJFU1NVTV9ERUZBVUxUJ10gfSwKICB7
|
||||
IHBmYWQ6ICdqcy9hZG1pbl9jb21tb24uanMnLCAgICBpc3RNb2R1bDogdHJ1ZSB9LAogIHsgcGZh
|
||||
ZDogJ2pzL2FkbWluX3BlcnNvbmFsLmpzJywgIGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ3BlcnNv
|
||||
bkJlYXJiZWl0ZW5EaWFsb2cnLCAnZWxkZ2xJbmxpbmVUb2dnbGUnLAogICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlYnVydHN0YWdNb2Rh
|
||||
bE9lZmZuZW4nLCAncGVyc29uUG9wb3ZlclplaWdlbicsCiAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVpblByb2ZpbE1vZGFsT2VmZm5l
|
||||
bicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAnYW5zcHJlY2hwYXJ0bmVySW5saW5lVG9nZ2xlJywKICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpblBsYW51bmdJbmxpbmVUb2dn
|
||||
bGUnXSB9LCAgLy8gUHJvLVBlcnNvbi1BdXNibGVuZGVuICgyMDI2LTA1LTI3KQogIHsgcGZhZDog
|
||||
J2pzL2FkbWluX3JvbGxlbi5qcycsICAgIGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ2ZhY2hhdWZz
|
||||
aWNodFJlbmRlcm4nLCAncm9sbGVuVGFiZWxsZVJlbmRlcm4nLAogICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JPTExFTl9UWVBFTiddIH0s
|
||||
CiAgeyBwZmFkOiAnanMvYWRtaW5fY29kZXMuanMnLCAgICAgaXN0TW9kdWw6IHRydWUgfSwKICB7
|
||||
IHBmYWQ6ICdqcy9hZG1pbl9rYWxlbmRlci5qcycsICBpc3RNb2R1bDogdHJ1ZSB9LAogIHsgcGZh
|
||||
ZDogJ2pzL2FkbWluX2Vyc2NoZWludW5nc2JpbGQuanMnLCBpc3RNb2R1bDogdHJ1ZSwgbXVzczog
|
||||
WydlcnNjaGVpbnVuZ3NiaWxkUmVuZGVybicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtpZXJ1bmdlbkFud2VuZGVu
|
||||
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAnTUFSS0lFUlVOR0VOX0RFRkFVTFRTJywKICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BhbHRlSGludGVy
|
||||
Z3J1bmQnXSB9LCAgLy8gRmVyaWVuLU1hcmtpZXJ1bmcgKDIwMjYtMDUtMjcpCgogIC8vIFRoZW1l
|
||||
bi1Nb2R1bGUKICB7IHBmYWQ6ICdqcy9iZXNldHp1bmcuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1
|
||||
ZSwgbXVzczogWydiZXNldHp1bmdzS2FuZGlkYXRlbkVybWl0dGVsbicsCiAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kYWwtaW5oYWx0
|
||||
LWdyb3NzJywgICAgIC8vIFRhZy1EZXRhaWwtTW9kYWwgdmVyZ3JvZXNzZXJ1bmcgKDIwMjYtMDUt
|
||||
MjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAnYmsta2FuZC1wZmVpbCcsICAgICAgICAgIC8vIFRvZ2dsZS1QZmVpbCDilr4v4pa0CiAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
|
||||
Ymsta2FuZGlkYXRlbi10ZXh0J10gfSwgIC8vIDItemVpbGlnZSBLYW5kaWRhdGVuLVplaWxlCiAg
|
||||
eyBwZmFkOiAnanMvZW1haWxfdm9ybGFnZW4uanMnLCAgaXN0TW9kdWw6IHRydWUsCiAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm9sbGVfdmVyYW50d29ydHVuZy1EZWZhdWx0
|
||||
IG11c3MgZWNodGUgVW1sYXV0ZSBoYWJlbiAoSXNzdWUgIzQsIDIwMjYtMDUtMjQpLgogICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11c3M6IFsnUsO8Y2tmcmFnZW4nLCAnR3LDvMOf
|
||||
ZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhcmZfbmljaHQ6IFsnUnVl
|
||||
Y2tmcmFnZW4nLCAnR3J1ZXNzZSddIH0sCiAgeyBwZmFkOiAnanMvd29jaGVucGxhbi5qcycsICAg
|
||||
ICAgaXN0TW9kdWw6IHRydWUgfSwKICB7IHBmYWQ6ICdqcy9pbXBvcnRfZXhjZWwuanMnLCAgICBp
|
||||
c3RNb2R1bDogdHJ1ZSwgbXVzczogWydpbXBUcm9ja2VubGF1ZkJlcmVjaG5lbicsICAvLyBWb3Jz
|
||||
Y2hhdS1EaWZmIHZvciBJbXBvcnQgKDIwMjYtMDUtMjgpCiAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wLXRyb2NrZW5sYXVmJywgICAg
|
||||
ICAgICAgLy8gQnV0dG9uIGltIFN0YXR1cy1QYW5lbAogICAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VsUGlkU2V0J10gfSwgICAgICAg
|
||||
ICAgIC8vIFNjaGx1ZXJtYW5uLVNjaHV0ejogbnVyIEV4Y2VsLVBlcnNvbmVuIGJlcmVpbmlnZW4K
|
||||
ICB7IHBmYWQ6ICdqcy9zeW5jLmpzJywgICAgICAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczog
|
||||
WydzeW5jV29ya2VyU3RhcnRlbicsICdsb2NrU3RhdGVBbndlbmRlbicsCiAgICAgICAgICAgICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYW56ZWlnZU5hbWVG
|
||||
dWVyS2VubnVuZyddIH0sCiAgeyBwZmFkOiAnanMvaGlud2Vpc2UuanMnLCAgICAgICAgaXN0TW9k
|
||||
dWw6IHRydWUgfSwKICB7IHBmYWQ6ICdqcy9zY2hpY2h0dGVhbS5qcycsICAgICBpc3RNb2R1bDog
|
||||
dHJ1ZSwgbXVzczogWydzY2hpY2h0VGVhbU1vZGFsT2VmZm5lbicsICdzY2hpY2h0Vm9uJywKICAg
|
||||
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdw
|
||||
ZXJzb25TY2hpY2h0QW0nXSB9LAoKICAvLyBPcHRpb25hbC1Nb2R1bGUgKG51ciBCZXJlY2h0aWd0
|
||||
ZSkKICB7IHBmYWQ6ICdqcy9zdGF0aXN0aWsuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbnVy
|
||||
RnVlcjogJ2RhcmZTdGF0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXNz
|
||||
OiBbJ3N0YXRpc3Rpa0xhZGVuJywgJ3N0YXRpc3Rpa1JlbmRlcm4nXSB9LAogIHsgcGZhZDogJ2pz
|
||||
L2xvZ2J1Y2guanMnLCAgICAgICAgIGlzdE1vZHVsOiB0cnVlLCBudXJGdWVyOiAnZGFyZkxvZycs
|
||||
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVzczogWydsb2didWNoTGFkZW4n
|
||||
LCAnZXhwb3J0IHZhciBsb2didWNoSG9va3MnXSB9Cl07Cgp2YXIgUSA9IGRvY3VtZW50LnF1ZXJ5
|
||||
U2VsZWN0b3IuYmluZChkb2N1bWVudCk7CgpmdW5jdGlvbiBzdGF0dXNaZWlsZShlaW50cmFnLCBz
|
||||
dGF0dXMsIGtvbW1lbnRhciwgZGV0YWlscykgewogIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVs
|
||||
ZW1lbnQoJ3RyJyk7CiAgdHIuY2xhc3NOYW1lID0gc3RhdHVzID09PSAnT0snID8gJ29rJyA6IChz
|
||||
dGF0dXMgPT09ICdXQVJOJyA/ICd3YXJuJyA6IChzdGF0dXMgPT09ICdTS0lQJyA/ICdza2lwJyA6
|
||||
ICdmZWgnKSk7CiAgdHIuaW5uZXJIVE1MID0KICAgICc8dGQgY2xhc3M9InBmYWQiPicgKyBlc2Nh
|
||||
cGVIdG1sKGVpbnRyYWcucGZhZCkgKyAnPC90ZD4nICsKICAgICc8dGQgY2xhc3M9InN0YXR1cyI+
|
||||
JyArIHN0YXR1cyArICc8L3RkPicgKwogICAgJzx0ZCBjbGFzcz0iZGV0YWlsIj4nICsgKGtvbW1l
|
||||
bnRhciA/IGVzY2FwZUh0bWwoa29tbWVudGFyKSA6ICcnKSArCiAgICAgIChkZXRhaWxzID8gJzxk
|
||||
ZXRhaWxzPjxzdW1tYXJ5Pm1laHI8L3N1bW1hcnk+PHByZSBzdHlsZT0ibWFyZ2luOjRweCAwO3do
|
||||
aXRlLXNwYWNlOnByZS13cmFwIj4nICsKICAgICAgICAgZXNjYXBlSHRtbChkZXRhaWxzKSArICc8
|
||||
L3ByZT48L2RldGFpbHM+JyA6ICcnKSArCiAgICAnPC90ZD4nOwogIFEoJyN6ZWlsZW4nKS5hcHBl
|
||||
bmRDaGlsZCh0cik7Cn0KCmZ1bmN0aW9uIGVzY2FwZUh0bWwocykgewogIGlmIChzID09IG51bGwp
|
||||
IHJldHVybiAnJzsKICByZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoLyYvZywnJmFtcDsnKS5yZXBs
|
||||
YWNlKC88L2csJyZsdDsnKS5yZXBsYWNlKC8+L2csJyZndDsnKS5yZXBsYWNlKC8iL2csJyZxdW90
|
||||
OycpOwp9CgpmdW5jdGlvbiByZWNodGVIb2xlbigpIHsKICByZXR1cm4gZmV0Y2goJy9hcGkvaW5m
|
||||
bycpLnRoZW4oZnVuY3Rpb24ocikgewogICAgaWYgKCFyLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ0hU
|
||||
VFAgJyArIHIuc3RhdHVzICsgJyBhdWYgL2FwaS9pbmZvJyk7CiAgICByZXR1cm4gci5qc29uKCk7
|
||||
CiAgfSk7Cn0KCi8vIEdsb2JhbGUgTWFuaWZlc3QtVGFiZWxsZSAoRGF0ZWlwZmFkIC0+IHNoYTI1
|
||||
NitieXRlcywgZWlubWFsIGJlaW0gU3RhcnQgZ2VsYWRlbikuCi8vIFdpcmQgZWlubWFsIGJlaW0g
|
||||
U3RhcnQgZ2VsYWRlbiDigJQgd2VubiBkYTogSGFzaC1WZXJnbGVpY2ggcHJvIERhdGVpCi8vIGFr
|
||||
dGl2OyB3ZW5uIG5pY2h0OiBudXIgQW5rZXItL2RhcmZfbmljaHQtUHJ1ZWZ1bmcgd2llIGJpc2hl
|
||||
ci4KdmFyIE1BTklGRVNUID0gbnVsbDsKdmFyIE1BTklGRVNUX01FVEEgPSBudWxsOyAgIC8vIHsg
|
||||
Z2VuZXJpZXJ0LCBicmFuY2gsIGNvbW1pdCB9CgpmdW5jdGlvbiBtYW5pZmVzdExhZGVuKCkgewog
|
||||
IHJldHVybiBmZXRjaCgnc3luYy1tYW5pZmVzdC5qc29uJywgeyBjYWNoZTogJ25vLXN0b3JlJyB9
|
||||
KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgIGlmICghci5vaykgcmV0dXJuIG51bGw7CiAgICByZXR1
|
||||
cm4gci5qc29uKCkudGhlbihmdW5jdGlvbihqKSB7CiAgICAgIGlmICghaiB8fCAhai5kYXRlaWVu
|
||||
KSByZXR1cm4gbnVsbDsKICAgICAgTUFOSUZFU1RfTUVUQSA9IHsgZ2VuZXJpZXJ0OiBqLmdlbmVy
|
||||
aWVydCwgYnJhbmNoOiBqLmJyYW5jaCwgY29tbWl0OiBqLmNvbW1pdCB9OwogICAgICByZXR1cm4g
|
||||
ai5kYXRlaWVuOwogICAgfSk7CiAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7IHJldHVybiBudWxsOyB9
|
||||
KTsKfQoKLy8gSGV4LVN0cmluZyBhdXMgQXJyYXlCdWZmZXIgKFNIQTI1Ni1PdXRwdXQgaXN0IDMy
|
||||
IEJ5dGUgLT4gNjQgaGV4IGNoYXJzKS4KZnVuY3Rpb24gYnVmVG9IZXgoYnVmKSB7CiAgdmFyIGFy
|
||||
ciA9IG5ldyBVaW50OEFycmF5KGJ1Zik7CiAgdmFyIG91dCA9ICcnOwogIGZvciAodmFyIGkgPSAw
|
||||
OyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgaCA9IGFycltpXS50b1N0cmluZygxNik7
|
||||
CiAgICBpZiAoaC5sZW5ndGggPT09IDEpIG91dCArPSAnMCc7CiAgICBvdXQgKz0gaDsKICB9CiAg
|
||||
cmV0dXJuIG91dDsKfQoKZnVuY3Rpb24gZGFyZkZ1ZXIoZWludHJhZywgaW5mbykgewogIGlmICgh
|
||||
ZWludHJhZy5udXJGdWVyKSByZXR1cm4gdHJ1ZTsKICB2YXIgc2VoZW4gPSAoaW5mbyAmJiBpbmZv
|
||||
LnNlaGVuKSB8fCB7fTsKICBpZiAoZWludHJhZy5udXJGdWVyID09PSAnc3UnKSAgICAgICByZXR1
|
||||
cm4gISFpbmZvLmlzdFN1cGVyVXNlcjsKICBpZiAoZWludHJhZy5udXJGdWVyID09PSAnZGFyZlN0
|
||||
YXQnKSByZXR1cm4gISEoaW5mby5pc3RTdXBlclVzZXIgfHwgc2VoZW4uc3RhdGlzdGlrKTsKICBp
|
||||
ZiAoZWludHJhZy5udXJGdWVyID09PSAnZGFyZkxvZycpICByZXR1cm4gISEoaW5mby5pc3RTdXBl
|
||||
clVzZXIgfHwgc2VoZW4ubG9nYnVjaCk7CiAgcmV0dXJuIHRydWU7Cn0KCmZ1bmN0aW9uIHBydWVm
|
||||
ZUVpbnRyYWcoZWludHJhZywgaW5mbykgewogIC8vIFNraXAgd2VubiBuaWNodCBiZXJlY2h0aWd0
|
||||
CiAgaWYgKCFkYXJmRnVlcihlaW50cmFnLCBpbmZvKSkgewogICAgc3RhdHVzWmVpbGUoZWludHJh
|
||||
ZywgJ1NLSVAnLCAnw7xiZXJzcHJ1bmdlbiAoa2VpbmUgJyArIGVpbnRyYWcubnVyRnVlciArICct
|
||||
QmVyZWNodGlndW5nKScpOwogICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHN0YXR1czogJ3Nr
|
||||
aXAnIH0pOwogIH0KICByZXR1cm4gZmV0Y2goZWludHJhZy5wZmFkLCB7IGNhY2hlOiAnbm8tc3Rv
|
||||
cmUnIH0pLnRoZW4oZnVuY3Rpb24ocikgewogICAgaWYgKCFyLm9rKSB7CiAgICAgIHN0YXR1c1pl
|
||||
aWxlKGVpbnRyYWcsICdGRUhMVCcsICdIVFRQICcgKyByLnN0YXR1cyArICcgJyArIHIuc3RhdHVz
|
||||
VGV4dCk7CiAgICAgIHJldHVybiB7IHN0YXR1czogJ2ZlaCcgfTsKICAgIH0KICAgIC8vIGFycmF5
|
||||
QnVmZmVyICsgRGVjb2RlIHN0YXR0IGRpcmVrdCB0ZXh0KCk6IHdpciBicmF1Y2hlbiBiZWlkZXMK
|
||||
ICAgIC8vIChIYXNoIHVlYmVyIEJ5dGVzICsgU3RyaW5nIGZ1ZXIgQW5rZXItQ2hlY2spLiBXZW5u
|
||||
IHdpciBudXIgdGV4dCgpCiAgICAvLyBuZWhtZW4sIGtvZW5udGUgZWluIEJPTSBvZGVyIENSTEYv
|
||||
TEYtRGlmZiBkZW4gSGFzaCB2ZXJmYWVsc2NoZW4uCiAgICByZXR1cm4gci5hcnJheUJ1ZmZlcigp
|
||||
LnRoZW4oZnVuY3Rpb24oYWIpIHsKICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYWIp
|
||||
OwogICAgICB2YXIgYnl0ZUxlbiA9IGJ5dGVzLmxlbmd0aDsKICAgICAgdmFyIHR4dDsKICAgICAg
|
||||
dHJ5IHsgdHh0ID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcpLmRlY29kZShieXRlcyk7IH0KICAg
|
||||
ICAgY2F0Y2ggKGUpIHsgdHh0ID0gJyc7IH0gICAvLyBCaW5hZXItRGF0ZWkgKHouQi4gaWNvKTog
|
||||
QW5rZXItQ2hlY2sgZW50ZmFlbGx0CiAgICAgIHZhciBwcm9ibGVtZSA9IFtdOwogICAgICBpZiAo
|
||||
ZWludHJhZy5ieXRlc01pbiAmJiBieXRlTGVuIDwgZWludHJhZy5ieXRlc01pbikgewogICAgICAg
|
||||
IHByb2JsZW1lLnB1c2goJ0JvZHkgPCAnICsgZWludHJhZy5ieXRlc01pbiArICcgQnl0ZXMgKCcg
|
||||
KyBieXRlTGVuICsgJyknKTsKICAgICAgfQogICAgICAoZWludHJhZy5tdXNzIHx8IFtdKS5mb3JF
|
||||
YWNoKGZ1bmN0aW9uKHMpIHsKICAgICAgICBpZiAodHh0LmluZGV4T2YocykgPCAwKSBwcm9ibGVt
|
||||
ZS5wdXNoKCdBbmtlciBmZWhsdDogIicgKyBzICsgJyInKTsKICAgICAgfSk7CiAgICAgIChlaW50
|
||||
cmFnLmRhcmZfbmljaHQgfHwgW10pLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgIGlmICh0
|
||||
eHQuaW5kZXhPZihzKSA+PSAwKSBwcm9ibGVtZS5wdXNoKCdkYXJmIG5pY2h0IGVudGhhbHRlbjog
|
||||
IicgKyBzICsgJyInKTsKICAgICAgfSk7CiAgICAgIC8vIEltcG9ydC1QZmFkZSBwcsO8ZmVuIChu
|
||||
dXIgTW9kdWwtRGF0ZWllbikuIEJlaSBkeW5hbWljIGltcG9ydCgpCiAgICAgIC8vIGlzdCBkZXIg
|
||||
UGZhZCBuaWNodCBkaXJla3QgZml4IGluIGVpbmVyICJmcm9tIi1LbGF1c2VsLCBkYWhlcgogICAg
|
||||
ICAvLyBwcnVlZmVuIHdpciBoaWVyIG51ciBzdGF0aXNjaGUgSW1wb3J0cy4KICAgICAgdmFyIGlt
|
||||
cG9ydFBmYWRlID0gW107CiAgICAgIGlmIChlaW50cmFnLmlzdE1vZHVsKSB7CiAgICAgICAgdmFy
|
||||
IHJlID0gL2Zyb21ccytbJyJdKFteJyJdKylbJyJdL2c7CiAgICAgICAgdmFyIG07CiAgICAgICAg
|
||||
d2hpbGUgKChtID0gcmUuZXhlYyh0eHQpKSAhPT0gbnVsbCkgewogICAgICAgICAgdmFyIHAgPSBt
|
||||
WzFdOwogICAgICAgICAgaWYgKHAuc3RhcnRzV2l0aCgnLi8nKSB8fCBwLnN0YXJ0c1dpdGgoJy4u
|
||||
LycpKSBpbXBvcnRQZmFkZS5wdXNoKHApOwogICAgICAgIH0KICAgICAgfQogICAgICAvLyBNYW5p
|
||||
ZmVzdC1IYXNoLVZlcmdsZWljaDogbnVyIHdlbm4gTWFuaWZlc3QgZGEgVU5EIGRpZXNlciBQZmFk
|
||||
CiAgICAgIC8vIGltIE1hbmlmZXN0IGdlbGlzdGV0IGlzdC4gU28ga29lbm5lbiB3aXIgb2huZSBT
|
||||
ZXJ2ZXItU2V0dXAKICAgICAgLy8gcHJ1ZWZlbiwgb2IgZGllIGF1c2dlbGllZmVydGUgRGF0ZWkg
|
||||
Ynl0ZWdlbmF1IGRlbSBSZXBvLVN0YW5kCiAgICAgIC8vIGVudHNwcmljaHQg4oCUIHdpY2h0aWcg
|
||||
ZnVlciBCZWhvZXJkZW4tUENzLCB3byBwZXIgSGFuZCBzdGF0dAogICAgICAvLyAnZ2l0IHB1bGwn
|
||||
IGtvcGllcnQgd2lyZC4KICAgICAgdmFyIGhhc2hDaGVjayA9IFByb21pc2UucmVzb2x2ZShudWxs
|
||||
KTsKICAgICAgaWYgKE1BTklGRVNUICYmIE1BTklGRVNUW2VpbnRyYWcucGZhZF0gJiYgdHlwZW9m
|
||||
IGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiYgY3J5cHRvLnN1YnRsZSkgewogICAgICAgIGhhc2hD
|
||||
aGVjayA9IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgYWIpLnRoZW4oZnVuY3Rpb24o
|
||||
aGJ1ZikgewogICAgICAgICAgcmV0dXJuIGJ1ZlRvSGV4KGhidWYpOwogICAgICAgIH0pLmNhdGNo
|
||||
KGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGhhc2hD
|
||||
aGVjay50aGVuKGZ1bmN0aW9uKGlzdEhhc2gpIHsKICAgICAgICB2YXIgaGFzaEluZm8gPSAnJzsK
|
||||
ICAgICAgICBpZiAoTUFOSUZFU1QgJiYgTUFOSUZFU1RbZWludHJhZy5wZmFkXSkgewogICAgICAg
|
||||
ICAgdmFyIHNvbGxIYXNoID0gTUFOSUZFU1RbZWludHJhZy5wZmFkXS5zaGEyNTY7CiAgICAgICAg
|
||||
ICB2YXIgc29sbEJ5dGVzID0gTUFOSUZFU1RbZWludHJhZy5wZmFkXS5ieXRlczsKICAgICAgICAg
|
||||
IGlmIChpc3RIYXNoKSB7CiAgICAgICAgICAgIGlmIChpc3RIYXNoICE9PSBzb2xsSGFzaCkgewog
|
||||
ICAgICAgICAgICAgIHZhciBkZXRhaWwgPSAnRGF0ZWkgd2VpY2h0IHZvbSBSZXBvLVN0YW5kIGFi
|
||||
IOKAlCBuZXUgYXVzIEdpdGVhIGtvcGllcmVuLlxuJyArCiAgICAgICAgICAgICAgICAgICAgICAg
|
||||
ICAgICdlcndhcnRldDogJyArIHNvbGxIYXNoICsgJyAoJyArIHNvbGxCeXRlcyArICcgQilcbicg
|
||||
KwogICAgICAgICAgICAgICAgICAgICAgICAgICAnYWt0dWVsbDogICcgKyBpc3RIYXNoICArICcg
|
||||
KCcgKyBieXRlTGVuICAgKyAnIEIpJzsKICAgICAgICAgICAgICBwcm9ibGVtZS5wdXNoKGRldGFp
|
||||
bCk7CiAgICAgICAgICAgICAgaGFzaEluZm8gPSAnIMK3IOKclyBIYXNoIGFid2VpY2hlbmQnOwog
|
||||
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGhhc2hJbmZvID0gJyDCtyDinJMgSGFz
|
||||
aCBpZGVudGlzY2gnOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
|
||||
ICBoYXNoSW5mbyA9ICcgwrcgKEhhc2gtQmVyZWNobnVuZyBpbSBCcm93c2VyIG5pY2h0IG3Dtmds
|
||||
aWNoKSc7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChNQU5JRkVTVCkgewogICAgICAg
|
||||
ICAgaGFzaEluZm8gPSAnIMK3IChuaWNodCBpbSBNYW5pZmVzdCknOwogICAgICAgIH0KICAgICAg
|
||||
ICBpZiAocHJvYmxlbWUubGVuZ3RoKSB7CiAgICAgICAgICBzdGF0dXNaZWlsZShlaW50cmFnLCAn
|
||||
V0FSTicsIGJ5dGVMZW4gKyAnIEJ5dGVzJyArIGhhc2hJbmZvICsgJyDigJQgJyArIHByb2JsZW1l
|
||||
Lmxlbmd0aCArICcgUHJvYmxlbShlKScsIHByb2JsZW1lLmpvaW4oJ1xuJykpOwogICAgICAgICAg
|
||||
cmV0dXJuIHsgc3RhdHVzOiAnd2FybicsIGltcG9ydGU6IGltcG9ydFBmYWRlIH07CiAgICAgICAg
|
||||
fQogICAgICAgIHN0YXR1c1plaWxlKGVpbnRyYWcsICdPSycsIGJ5dGVMZW4gKyAnIEJ5dGVzJyAr
|
||||
IGhhc2hJbmZvICsgKGltcG9ydFBmYWRlLmxlbmd0aCA/ICcgwrcgJyArIGltcG9ydFBmYWRlLmxl
|
||||
bmd0aCArICcgSW1wb3J0ZScgOiAnJykpOwogICAgICAgIHJldHVybiB7IHN0YXR1czogJ29rJywg
|
||||
aW1wb3J0ZTogaW1wb3J0UGZhZGUgfTsKICAgICAgfSk7CiAgICB9KTsKICB9KS5jYXRjaChmdW5j
|
||||
dGlvbihlKSB7CiAgICBzdGF0dXNaZWlsZShlaW50cmFnLCAnRkVITFQnLCBlLm1lc3NhZ2UgfHwg
|
||||
U3RyaW5nKGUpKTsKICAgIHJldHVybiB7IHN0YXR1czogJ2ZlaCcgfTsKICB9KTsKfQoKZnVuY3Rp
|
||||
b24gcHJ1ZWZlSW1wb3J0ZShlcmdlYm5pc3NlKSB7CiAgLy8gU2FtbWVsdCBhbGxlIHN0YXRpc2No
|
||||
IGltcG9ydGllcnRlbiByZWxhdGl2ZW4gUGZhZGUgYXVzIGRlbiBNb2R1bC0KICAvLyBQcnVlZnVu
|
||||
Z2VuIHVuZCBwcnVlZnN0IGRpZSBqZW5pZ2VuLCBkaWUgTklDSFQgc2Nob24gZXhwbGl6aXQgaW4g
|
||||
U09MTAogIC8vIHN0YW5kZW4g4oCUIHNvbnN0IGRvcHBlbHRlIEFuemVpZ2UgZGVyc2VsYmVuIERh
|
||||
dGVpIG1pdCB1LlUuIGFid2VpY2hlbmRlbQogIC8vIEVyZ2VibmlzIChQb3dlclNoZWxsLUh0dHBM
|
||||
aXN0ZW5lciBhbnR3b3J0ZXQgYXVmIEhFQUQgbmljaHQgenV2ZXJsYWVzc2lnKS4KICAvLyBad2Vj
|
||||
azogUGhhbnRvbS1JbXBvcnRzIGF1ZiBlbnRmZXJudGUvdW1iZW5hbm50ZSBNb2R1bGUgYXVmZGVj
|
||||
a2VuLgogIHZhciBzb2xsUGZhZGUgPSBuZXcgU2V0KFNPTEwubWFwKGZ1bmN0aW9uKGUpIHsgcmV0
|
||||
dXJuIGUucGZhZDsgfSkpOwogIHZhciBhbGxlSW1wb3J0ZSA9IG5ldyBTZXQoKTsKICBlcmdlYm5p
|
||||
c3NlLmZvckVhY2goZnVuY3Rpb24ociwgaSkgewogICAgdmFyIGJhc2lzID0gU09MTFtpXS5wZmFk
|
||||
OwogICAgKHIuaW1wb3J0ZSB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgIHZhciBi
|
||||
YXNpc0RpciA9IGJhc2lzLmluZGV4T2YoJy8nKSA+PSAwID8gYmFzaXMuc3Vic3RyaW5nKDAsIGJh
|
||||
c2lzLmxhc3RJbmRleE9mKCcvJykgKyAxKSA6ICcnOwogICAgICB2YXIgdGVpbGUgPSAoYmFzaXNE
|
||||
aXIgKyBwKS5zcGxpdCgnLycpOwogICAgICB2YXIgc3RhY2sgPSBbXTsKICAgICAgdGVpbGUuZm9y
|
||||
RWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgaWYgKHQgPT09ICcuLicpIHN0YWNrLnBvcCgpOwog
|
||||
ICAgICAgIGVsc2UgaWYgKHQgIT09ICcuJyAmJiB0ICE9PSAnJykgc3RhY2sucHVzaCh0KTsKICAg
|
||||
ICAgfSk7CiAgICAgIHZhciB2b2xsID0gc3RhY2suam9pbignLycpOwogICAgICBpZiAoIXNvbGxQ
|
||||
ZmFkZS5oYXModm9sbCkpIGFsbGVJbXBvcnRlLmFkZCh2b2xsKTsKICAgIH0pOwogIH0pOwogIGlm
|
||||
IChhbGxlSW1wb3J0ZS5zaXplID09PSAwKSB7CiAgICBzdGF0dXNaZWlsZSh7IHBmYWQ6ICcoSW1w
|
||||
b3J0LUtldHRlIGdlcHLDvGZ0KScgfSwgJ09LJywgJ2tlaW5lIHp1c2FldHpsaWNoZW4gUGhhbnRv
|
||||
bS1JbXBvcnRzJyk7CiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgc3RhdHVzOiAnb2snIH0p
|
||||
OwogIH0KICAvLyBHRVQgc3RhdHQgSEVBRDogUG93ZXJTaGVsbC1IdHRwTGlzdGVuZXIgYW50d29y
|
||||
dGV0IGF1ZiBIRUFEIG5pY2h0CiAgLy8genV2ZXJsYWVzc2lnIChnbGVpY2hlciBQZmFkIGthbm4g
|
||||
bWl0IEdFVCAyMDAsIG1pdCBIRUFEIDQwNSBsaWVmZXJuKS4KICAvLyBXaXIgbGVzZW4gZGVuIEJv
|
||||
ZHkgbmljaHQsIGRlciBTdGF0dXMgcmVpY2h0LgogIHZhciBjaGVja3MgPSBbXTsKICBhbGxlSW1w
|
||||
b3J0ZS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgIGNoZWNrcy5wdXNoKGZldGNoKHAsIHsgY2Fj
|
||||
aGU6ICduby1zdG9yZScgfSkudGhlbihmdW5jdGlvbihyKSB7CiAgICAgIHJldHVybiB7IHBmYWQ6
|
||||
IHAsIG9rOiByLm9rLCBzdGF0dXM6IHIuc3RhdHVzIH07CiAgICB9KS5jYXRjaChmdW5jdGlvbigp
|
||||
IHsgcmV0dXJuIHsgcGZhZDogcCwgb2s6IGZhbHNlLCBzdGF0dXM6ICdORVRaJyB9OyB9KSk7CiAg
|
||||
fSk7CiAgcmV0dXJuIFByb21pc2UuYWxsKGNoZWNrcykudGhlbihmdW5jdGlvbihhcnIpIHsKICAg
|
||||
IHZhciBwcm9ibGVtZSA9IGFyci5maWx0ZXIoZnVuY3Rpb24oeCkgeyByZXR1cm4gIXgub2s7IH0p
|
||||
OwogICAgaWYgKHByb2JsZW1lLmxlbmd0aCA9PT0gMCkgewogICAgICBzdGF0dXNaZWlsZSh7IHBm
|
||||
YWQ6ICcoSW1wb3J0LUtldHRlIGdlcHLDvGZ0LCAnICsgYXJyLmxlbmd0aCArICcgUGZhZGUpJyB9
|
||||
LCAnT0snLCAnYWxsZSBuaWNodC1TT0xMLUltcG9ydHMgYXVmbG9lc2JhcicpOwogICAgICByZXR1
|
||||
cm4geyBzdGF0dXM6ICdvaycgfTsKICAgIH0KICAgIHByb2JsZW1lLmZvckVhY2goZnVuY3Rpb24o
|
||||
cCkgewogICAgICBzdGF0dXNaZWlsZSh7IHBmYWQ6IHAucGZhZCB9LCAnRkVITFQnLCAnUGhhbnRv
|
||||
bS1JbXBvcnQ6IEhUVFAgJyArIHAuc3RhdHVzKTsKICAgIH0pOwogICAgcmV0dXJuIHsgc3RhdHVz
|
||||
OiAnZmVoJywgYW56YWhsOiBwcm9ibGVtZS5sZW5ndGggfTsKICB9KTsKfQoKZnVuY3Rpb24gYnl0
|
||||
ZXNGbXQobikgewogIGlmIChuID09IG51bGwpIHJldHVybiAn4oCUJzsKICBpZiAobiA8IDEwMjQp
|
||||
IHJldHVybiBuICsgJyBCJzsKICBpZiAobiA8IDEwMjQgKiAxMDI0KSByZXR1cm4gKG4gLyAxMDI0
|
||||
KS50b0ZpeGVkKDEpICsgJyBLQic7CiAgcmV0dXJuIChuIC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQo
|
||||
MikgKyAnIE1CJzsKfQoKZnVuY3Rpb24gcHJ1ZWZlR3JvZXNzZW4oKSB7CiAgUSgnI2dyb2Vzc2Ut
|
||||
bWV0YScpLnRleHRDb250ZW50ID0gJ0ZyYWdlIFNlcnZlci1FbmRwb2ludCAvYXBpL3N5bmMtY2hl
|
||||
Y2svZGF0ZWllbiBhYuKApic7CiAgUSgnI2dyb2Vzc2UtemVpbGVuJykuaW5uZXJIVE1MID0gJyc7
|
||||
CiAgcmV0dXJuIGZldGNoKCcvYXBpL3N5bmMtY2hlY2svZGF0ZWllbicsIHsgY2FjaGU6ICduby1z
|
||||
dG9yZScgfSkudGhlbihmdW5jdGlvbihyKSB7CiAgICBpZiAoIXIub2spIHsKICAgICAgUSgnI2dy
|
||||
b2Vzc2UtbWV0YScpLnRleHRDb250ZW50ID0gJ0hUVFAgJyArIHIuc3RhdHVzICsgJyAnICsgci5z
|
||||
dGF0dXNUZXh0ICsgJyDigJQgRW5kcG9pbnQgbmljaHQgdmVyZsO8Z2JhciBvZGVyIGtlaW5lIEFk
|
||||
bWluLVJlY2h0ZS4nOwogICAgICByZXR1cm4geyBzdGF0dXM6ICdmZWgnIH07CiAgICB9CiAgICBy
|
||||
ZXR1cm4gci5qc29uKCkudGhlbihmdW5jdGlvbihqKSB7CiAgICAgIGlmICghai5vaykgewogICAg
|
||||
ICAgIFEoJyNncm9lc3NlLW1ldGEnKS50ZXh0Q29udGVudCA9IGouZmVobGVyIHx8ICdTZXJ2ZXIg
|
||||
bWVsZGV0IEZlaGxlci4nOwogICAgICAgIHJldHVybiB7IHN0YXR1czogJ3dhcm4nIH07CiAgICAg
|
||||
IH0KICAgICAgUSgnI2dyb2Vzc2UtbWV0YScpLmlubmVySFRNTCA9CiAgICAgICAgJ1NvdXJjZTog
|
||||
PGNvZGU+JyArIGVzY2FwZUh0bWwoai5zb3VyY2VSb290KSArICc8L2NvZGU+PGJyPicgKwogICAg
|
||||
ICAgICdBc3NldDogIDxjb2RlPicgKyBlc2NhcGVIdG1sKGouYXNzZXRSb290KSAgKyAnPC9jb2Rl
|
||||
Pjxicj4nICsKICAgICAgICBqLmFuemFobCArICcgRGF0ZWllbiBnZXByw7xmdCDCtyAnICsKICAg
|
||||
ICAgICAnPHNwYW4gc3R5bGU9ImNvbG9yOiMxZjdhMWYiPicgKyBqLmFuek9rICsgJyBPSzwvc3Bh
|
||||
bj4gwrcgJyArCiAgICAgICAgJzxzcGFuIHN0eWxlPSJjb2xvcjojYjA2MDAwIj4nICsgai5hbnpE
|
||||
aWZmICsgJyBHcsO2w59lbi1EaWZmPC9zcGFuPiDCtyAnICsKICAgICAgICAnPHNwYW4gc3R5bGU9
|
||||
ImNvbG9yOiNiMDIwMjAiPicgKyBqLmFuekZlaGx0QXNzZXQgKyAnIEFzc2V0IGZlaGx0PC9zcGFu
|
||||
PiDCtyAnICsKICAgICAgICAnPHNwYW4gc3R5bGU9ImNvbG9yOiNiMDIwMjAiPicgKyBqLmFuekZl
|
||||
aGx0U291cmNlICsgJyBTb3VyY2UgZmVobHQ8L3NwYW4+JzsKICAgICAgdmFyIHRib2R5ID0gUSgn
|
||||
I2dyb2Vzc2UtemVpbGVuJyk7CiAgICAgIChqLmRhdGVpZW4gfHwgW10pLmZvckVhY2goZnVuY3Rp
|
||||
b24oZCkgewogICAgICAgIHZhciBjbHMgPSAnb2snLCBzdGF0dXNUeHQgPSAn4pyTIGlkZW50aXNj
|
||||
aCc7CiAgICAgICAgaWYgKGQuc3RhdHVzID09PSAnZ3JvZXNzZV9kaWZmJykgICB7IGNscyA9ICd3
|
||||
YXJuJzsgc3RhdHVzVHh0ID0gJ+KaoCBHcsO2w59lIGFid2VpY2hlbmQnOyB9CiAgICAgICAgZWxz
|
||||
ZSBpZiAoZC5zdGF0dXMgPT09ICdhc3NldF9mZWhsdCcpICB7IGNscyA9ICdmZWgnOyAgc3RhdHVz
|
||||
VHh0ID0gJ+KclyBBc3NldC1DYWNoZSBsZWVyJzsgfQogICAgICAgIGVsc2UgaWYgKGQuc3RhdHVz
|
||||
ID09PSAnc291cmNlX2ZlaGx0JykgeyBjbHMgPSAnZmVoJzsgIHN0YXR1c1R4dCA9ICfinJcgU291
|
||||
cmNlIGZlaGx0JzsgfQogICAgICAgIGVsc2UgaWYgKGQuc3RhdHVzID09PSAnYmVpZGVfZmVobGVu
|
||||
JykgeyBjbHMgPSAnZmVoJzsgIHN0YXR1c1R4dCA9ICfinJcgYmVpZGUgZmVobGVuJzsgfQogICAg
|
||||
ICAgIHZhciBkaWZmVHh0ID0gJyc7CiAgICAgICAgaWYgKGQuZGlmZkJ5dGVzICE9IG51bGwpIHsK
|
||||
ICAgICAgICAgIGlmIChkLmRpZmZCeXRlcyA9PT0gMCkgZGlmZlR4dCA9ICcwJzsKICAgICAgICAg
|
||||
IGVsc2UgZGlmZlR4dCA9IChkLmRpZmZCeXRlcyA+IDAgPyAnKycgOiAnJykgKyBkLmRpZmZCeXRl
|
||||
czsKICAgICAgICB9IGVsc2UgeyBkaWZmVHh0ID0gJ+KAlCc7IH0KICAgICAgICB2YXIgdHIgPSBk
|
||||
b2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwogICAgICAgIHRyLmNsYXNzTmFtZSA9IGNsczsK
|
||||
ICAgICAgICB0ci5pbm5lckhUTUwgPQogICAgICAgICAgJzx0ZCBjbGFzcz0icGZhZCI+JyArIGVz
|
||||
Y2FwZUh0bWwoZC5wZmFkKSArICc8L3RkPicgKwogICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1h
|
||||
bGlnbjpyaWdodCI+JyArIGJ5dGVzRm10KGQuc291cmNlQnl0ZXMpICsgJzwvdGQ+JyArCiAgICAg
|
||||
ICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij4nICsgYnl0ZXNGbXQoZC5hc3NldEJ5
|
||||
dGVzKSAgKyAnPC90ZD4nICsKICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQi
|
||||
PicgKyBkaWZmVHh0ICsgJzwvdGQ+JyArCiAgICAgICAgICAnPHRkIGNsYXNzPSJzdGF0dXMiPicg
|
||||
KyBzdGF0dXNUeHQgKyAnPC90ZD4nOwogICAgICAgIHRib2R5LmFwcGVuZENoaWxkKHRyKTsKICAg
|
||||
ICAgfSk7CiAgICAgIHJldHVybiB7IHN0YXR1czogJ29rJywgYW56RGlmZjogai5hbnpEaWZmLCBh
|
||||
bnpGZWhsdEFzc2V0OiBqLmFuekZlaGx0QXNzZXQsIGFuekZlaGx0U291cmNlOiBqLmFuekZlaGx0
|
||||
U291cmNlIH07CiAgICB9KTsKICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICBRKCcjZ3JvZXNz
|
||||
ZS1tZXRhJykudGV4dENvbnRlbnQgPSAnTmV0endlcmstRmVobGVyOiAnICsgKGUubWVzc2FnZSB8
|
||||
fCBlKTsKICAgIHJldHVybiB7IHN0YXR1czogJ2ZlaCcgfTsKICB9KTsKfQoKLy8gRmVobGVyLU9i
|
||||
amVrdCAtPiB7IG5hbWUsIHRleHQsIHN0YWNrIH0gZnVlciBkaWUgQW56ZWlnZSBhdWZiZXJlaXRl
|
||||
bi4KZnVuY3Rpb24gbW9kdWxGZWhsZXJUZXh0KGUpIHsKICB2YXIgbiA9IChlICYmIGUubmFtZSkg
|
||||
fHwgJ0ZlaGxlcic7CiAgdmFyIG0gPSAoZSAmJiBlLm1lc3NhZ2UpIHx8IFN0cmluZyhlKTsKICB2
|
||||
YXIgc3RhY2sgPSAoZSAmJiBlLnN0YWNrKSA/IFN0cmluZyhlLnN0YWNrKS5zcGxpdCgnXG4nKS5z
|
||||
bGljZSgwLCA1KS5qb2luKCdcbicpIDogJyc7CiAgcmV0dXJuIHsgbmFtZTogbiwgdGV4dDogbiAr
|
||||
ICc6ICcgKyBtLCBzdGFjazogc3RhY2sgfTsKfQoKZnVuY3Rpb24gc3RhcnRaZWlsZShtb2R1bCwg
|
||||
c3RhdHVzLCBrb21tZW50YXIsIGRldGFpbHMpIHsKICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVF
|
||||
bGVtZW50KCd0cicpOwogIHRyLmNsYXNzTmFtZSA9IHN0YXR1cyA9PT0gJ09LJyA/ICdvaycgOiAo
|
||||
c3RhdHVzID09PSAnSU5GTycgPyAnc2tpcCcgOiAnZmVoJyk7CiAgdHIuaW5uZXJIVE1MID0KICAg
|
||||
ICc8dGQgY2xhc3M9InBmYWQiPicgKyBlc2NhcGVIdG1sKG1vZHVsKSArICc8L3RkPicgKwogICAg
|
||||
Jzx0ZCBjbGFzcz0ic3RhdHVzIj4nICsgc3RhdHVzICsgJzwvdGQ+JyArCiAgICAnPHRkIGNsYXNz
|
||||
PSJkZXRhaWwiPicgKyAoa29tbWVudGFyID8gZXNjYXBlSHRtbChrb21tZW50YXIpIDogJycpICsK
|
||||
ICAgICAgKGRldGFpbHMgPyAnPGRldGFpbHM+PHN1bW1hcnk+bWVocjwvc3VtbWFyeT48cHJlIHN0
|
||||
eWxlPSJtYXJnaW46NHB4IDA7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPicgKwogICAgICAgICBlc2Nh
|
||||
cGVIdG1sKGRldGFpbHMpICsgJzwvcHJlPjwvZGV0YWlscz4nIDogJycpICsKICAgICc8L3RkPic7
|
||||
CiAgUSgnI3N0YXJ0LXplaWxlbicpLmFwcGVuZENoaWxkKHRyKTsKfQoKLy8gU3RhcnQtRGlhZ25v
|
||||
c2U6IGxhZWR0IGplZGVzIEVTLU1vZHVsIGVpbnplbG4gcGVyIGR5bmFtaWMgaW1wb3J0KCkuIEZh
|
||||
ZW5ndAovLyBTeW50YXgtL0xpbmstRmVobGVyIChmZWhsZW5kZXIgRXhwb3J0LCBrYXB1dHRlciBJ
|
||||
bXBvcnQtUGZhZCkgYWIsIGRpZSBpbQovLyBlY2h0ZW4gaW5kZXguaHRtbCB6dW0gd2Vpc3NlbiBC
|
||||
aWxkc2NoaXJtIGZ1ZWhyZW4uIGFwcC5qcyB6dWxldHp0OiBkb3J0IGlzdAovLyBlaW4gTGF1Znpl
|
||||
aXRmZWhsZXIgYXVzIGluaXQoKSBnZWdlbiBkaWUgZnJlbWRlIERPTSBlcndhcnRiYXIgKC0+IElO
|
||||
Rk8pLCBlaW4KLy8gUGFyc2UtL0xpbmstRmVobGVyIGRhZ2VnZW4gZWluIGVjaHRlciBTdGFydC1L
|
||||
aWxsZXIgKC0+IEZFSExFUikuCmZ1bmN0aW9uIHBydWVmZVN0YXJ0KGluZm8pIHsKICBRKCcjc3Rh
|
||||
cnQtbWV0YScpLnRleHRDb250ZW50ID0gJ0zDpGR0IE1vZHVsZSBlaW56ZWxu4oCmJzsKICBRKCcj
|
||||
c3RhcnQtemVpbGVuJykuaW5uZXJIVE1MID0gJyc7CgogIHZhciBnRXJyID0gW107CiAgZnVuY3Rp
|
||||
b24gb25FcnIoZXYpIHsKICAgIGdFcnIucHVzaCgoZXYuZXJyb3IgJiYgKGV2LmVycm9yLnN0YWNr
|
||||
IHx8IGV2LmVycm9yLm1lc3NhZ2UpKSB8fAogICAgICAgICAgICAgICgoZXYubWVzc2FnZSB8fCAn
|
||||
ZXJyb3InKSArIChldi5maWxlbmFtZSA/ICcgQCAnICsgZXYuZmlsZW5hbWUgKyAnOicgKyBldi5s
|
||||
aW5lbm8gOiAnJykpKTsKICB9CiAgZnVuY3Rpb24gb25SZWooZXYpIHsKICAgIHZhciByID0gZXYu
|
||||
cmVhc29uOwogICAgZ0Vyci5wdXNoKCd1bmhhbmRsZWRyZWplY3Rpb246ICcgKyAoKHIgJiYgKHIu
|
||||
c3RhY2sgfHwgci5tZXNzYWdlKSkgfHwgcikpOwogIH0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
|
||||
cignZXJyb3InLCBvbkVyciwgdHJ1ZSk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFu
|
||||
ZGxlZHJlamVjdGlvbicsIG9uUmVqKTsKCiAgLy8gTnVyIE1vZHVsZSwgZnVlciBkaWUgZGVyIFVz
|
||||
ZXIgYmVyZWNodGlndCBpc3QgKHNvbnN0IDQwNCAtPiBmYWxzY2hlciBGRUhMRVIpLgogIHZhciBw
|
||||
ZmFkZSA9IFNPTEwuZmlsdGVyKGZ1bmN0aW9uKGUpIHsgcmV0dXJuIGUuaXN0TW9kdWwgJiYgZGFy
|
||||
ZkZ1ZXIoZSwgaW5mbyk7IH0pCiAgICAgICAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24oZSkgeyBy
|
||||
ZXR1cm4gZS5wZmFkOyB9KTsKCiAgdmFyIHJlcyA9IHsgb2s6IDAsIGZlaDogMCB9OwogIHZhciBj
|
||||
aGFpbiA9IFByb21pc2UucmVzb2x2ZSgpOwogIHBmYWRlLmZvckVhY2goZnVuY3Rpb24ocCkgewog
|
||||
ICAgY2hhaW4gPSBjaGFpbi50aGVuKGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaW1wb3J0KCcu
|
||||
LycgKyBwKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHN0YXJ0WmVpbGUocCwgJ09LJywgJ2dl
|
||||
bGFkZW4nKTsgcmVzLm9rKys7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICB2
|
||||
YXIgZiA9IG1vZHVsRmVobGVyVGV4dChlKTsKICAgICAgICBzdGFydFplaWxlKHAsICdGRUhMRVIn
|
||||
LCBmLnRleHQsIGYuc3RhY2spOyByZXMuZmVoKys7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CiAg
|
||||
Ly8gYXBwLmpzIHp1bGV0enQgdW5kIGdlc29uZGVydCBrbGFzc2lmaXppZXJlbi4KICBjaGFpbiA9
|
||||
IGNoYWluLnRoZW4oZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gaW1wb3J0KCcuL2FwcC5qcycpLnRo
|
||||
ZW4oZnVuY3Rpb24oKSB7CiAgICAgIHN0YXJ0WmVpbGUoJ2FwcC5qcycsICdPSycsICdnZWxhZGVu
|
||||
ICsgaW5pdCgpIGR1cmNobGF1ZmVuJyk7IHJlcy5vaysrOwogICAgfSkuY2F0Y2goZnVuY3Rpb24o
|
||||
ZSkgewogICAgICB2YXIgZiA9IG1vZHVsRmVobGVyVGV4dChlKTsKICAgICAgaWYgKGYubmFtZSA9
|
||||
PT0gJ1N5bnRheEVycm9yJykgewogICAgICAgIC8vIFBhcnNlLSBvZGVyIExpbmstRmVobGVyICh6
|
||||
LkIuIGZlaGxlbmRlciBFeHBvcnQpIC0+IGVjaHRlciBTdGFydC1LaWxsZXIuCiAgICAgICAgc3Rh
|
||||
cnRaZWlsZSgnYXBwLmpzJywgJ0ZFSExFUicsIGYudGV4dCwgZi5zdGFjayk7IHJlcy5mZWgrKzsK
|
||||
ICAgICAgfSBlbHNlIHsKICAgICAgICBzdGFydFplaWxlKCdhcHAuanMnLCAnSU5GTycsCiAgICAg
|
||||
ICAgICAnTW9kdWwgbMOkZHQg4oCUIExhdWZ6ZWl0ZmVobGVyIGF1cyBpbml0KCkgYXVmIGRpZXNl
|
||||
ciBEaWFnbm9zZS1TZWl0ZSBlcndhcnRiYXIgKGltIGVjaHRlbiBpbmRleC5odG1sIGdnZi4gbmlj
|
||||
aHQpOiAnICsgZi50ZXh0LAogICAgICAgICAgZi5zdGFjayk7CiAgICAgIH0KICAgIH0pOwogIH0p
|
||||
OwoKICByZXR1cm4gY2hhaW4udGhlbihmdW5jdGlvbigpIHsKICAgIHdpbmRvdy5yZW1vdmVFdmVu
|
||||
dExpc3RlbmVyKCdlcnJvcicsIG9uRXJyLCB0cnVlKTsKICAgIHdpbmRvdy5yZW1vdmVFdmVudExp
|
||||
c3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblJlaik7CiAgICBpZiAoZ0Vyci5sZW5ndGgp
|
||||
IHsKICAgICAgLy8gRG9wcGVsdGUgenVzYW1tZW5mYXNzZW4uCiAgICAgIHZhciBzZWVuID0ge307
|
||||
CiAgICAgIGdFcnIuZm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgaWYgKHNlZW5bdF0pIHJl
|
||||
dHVybjsgc2Vlblt0XSA9IDE7CiAgICAgICAgc3RhcnRaZWlsZSgnKGdsb2JhbGVyIEZlaGxlciBi
|
||||
ZWltIE1vZHVsLUxhZGV0ZXN0KScsICdGRUhMRVInLCAnc2llaGUgRGV0YWlscycsIHQpOwogICAg
|
||||
ICAgIHJlcy5mZWgrKzsKICAgICAgfSk7CiAgICB9CiAgICBRKCcjc3RhcnQtbWV0YScpLmlubmVy
|
||||
SFRNTCA9IHJlcy5mZWgKICAgICAgPyAnPHNwYW4gc3R5bGU9ImNvbG9yOiNiMDIwMjA7Zm9udC13
|
||||
ZWlnaHQ6NjAwIj7inJcgJyArIHJlcy5mZWggKyAnIE1vZHVsLVByb2JsZW0oZSkg4oCUIERBUyB2
|
||||
ZXJoaW5kZXJ0IGRlbiBTdGFydC48L3NwYW4+IEJlaGViZSBkaWUgZXJzdGUgRkVITEVSLVplaWxl
|
||||
LCBkYW5uIGVybmV1dCBwcsO8ZmVuLicKICAgICAgOiAnPHNwYW4gc3R5bGU9ImNvbG9yOiMxZjdh
|
||||
MWY7Zm9udC13ZWlnaHQ6NjAwIj7inJMgQWxsZSAnICsgcmVzLm9rICsgJyBNb2R1bGUgbGFkZW4g
|
||||
ZmVobGVyZnJlaS48L3NwYW4+IFN0YXJ0ZXQgZGllIFNlaXRlIHRyb3R6ZGVtIG5pY2h0LCBsaWVn
|
||||
dCBlcyBhbiBkZXIgTGF1ZnplaXQgKERhdGVuL0FQSS9pbml0KSDigJQgQnJvd3Nlci1Lb25zb2xl
|
||||
IGRpcmVrdCBhdWYgPGNvZGU+aW5kZXguaHRtbDwvY29kZT4gcHLDvGZlbi4nOwogICAgcmV0dXJu
|
||||
IHJlczsKICB9KTsKfQoKZnVuY3Rpb24gc3RhcnQoKSB7CiAgUSgnI2J0bi1zdGFydCcpLmRpc2Fi
|
||||
bGVkID0gdHJ1ZTsKICBRKCcjemVpbGVuJykuaW5uZXJIVE1MID0gJyc7CiAgUSgnI3N0YXJ0LXpl
|
||||
aWxlbicpLmlubmVySFRNTCA9ICcnOwogIFEoJyNzdGFydC1tZXRhJykudGV4dENvbnRlbnQgPSAn
|
||||
bMOkdWZ04oCmJzsKICBRKCcjZ3JvZXNzZS16ZWlsZW4nKS5pbm5lckhUTUwgPSAnJzsKICBRKCcj
|
||||
Z3JvZXNzZS1tZXRhJykudGV4dENvbnRlbnQgPSAnJzsKICBRKCcjc3RhdHVzJykudGV4dENvbnRl
|
||||
bnQgPSAnbMOkdWZ04oCmJzsKICBRKCcjc3RhdHVzJykuY2xhc3NOYW1lID0gJ2xhdWZlbic7CiAg
|
||||
USgnI3p1c2FtbWVuZmFzc3VuZycpLnRleHRDb250ZW50ID0gJ0xhZGXigKYnOwogIFEoJyN6dXNh
|
||||
bW1lbmZhc3N1bmcnKS5jbGFzc05hbWUgPSAnenVzYW1tZW5mYXNzdW5nIG5ldXRyYWwnOwoKICAv
|
||||
LyBFcnN0IE1hbmlmZXN0IGxhZGVuIChGZWhsZXIgdG9sZXJpZXJlbiDigJQgZGFubiBmYWVsbHQg
|
||||
ZGVyIENoZWNrIGF1ZgogIC8vIHJlaW5lbiBBbmtlci1DaGVjayB6dXJ1ZWNrKSwgZGFubiBSZWNo
|
||||
dGUgaG9sZW4gKyBQcnVlZnVuZyBzdGFydGVuLgogIFByb21pc2UuYWxsKFttYW5pZmVzdExhZGVu
|
||||
KCksIHJlY2h0ZUhvbGVuKCldKS50aGVuKGZ1bmN0aW9uKGFycikgewogICAgTUFOSUZFU1QgPSBh
|
||||
cnJbMF07CiAgICB2YXIgaW5mbyA9IGFyclsxXTsKICAgIHZhciBtYW5pZmVzdFR4dDsKICAgIGlm
|
||||
IChNQU5JRkVTVCAmJiBNQU5JRkVTVF9NRVRBKSB7CiAgICAgIG1hbmlmZXN0VHh0ID0gJyDCtyBN
|
||||
YW5pZmVzdDogJyArIChNQU5JRkVTVF9NRVRBLmJyYW5jaCB8fCAnPycpICsKICAgICAgICAgICAg
|
||||
ICAgICAgICAnQCcgKyAoTUFOSUZFU1RfTUVUQS5jb21taXQgfHwgJz8nKSArCiAgICAgICAgICAg
|
||||
ICAgICAgICAgJyAoJyArIE9iamVjdC5rZXlzKE1BTklGRVNUKS5sZW5ndGggKyAnIERhdGVpZW4s
|
||||
IGdlbmVyaWVydCAnICsKICAgICAgICAgICAgICAgICAgICAoTUFOSUZFU1RfTUVUQS5nZW5lcmll
|
||||
cnQgfHwgJz8nKSArICcpJzsKICAgIH0gZWxzZSB7CiAgICAgIG1hbmlmZXN0VHh0ID0gJyDCtyDi
|
||||
mqAgTWFuaWZlc3QgbmljaHQgZ2VmdW5kZW4g4oCUIEhhc2gtVmVyZ2xlaWNoIMO8YmVyc3BydW5n
|
||||
ZW4nICsKICAgICAgICAgICAgICAgICAgICAnICh1cGRhdGUtc3luYy1tYW5pZmVzdC5zaCBhdXNm
|
||||
w7xocmVuIHVuZCBjb21taXR0ZW4pJzsKICAgIH0KICAgIFEoJyNpbmZvJykuaW5uZXJIVE1MID0K
|
||||
ICAgICAgJ0VpbmdlbG9nZ3QgYWxzICcgKyBlc2NhcGVIdG1sKGluZm8uYmVudXR6ZXIgfHwgJz8n
|
||||
KSArICcgwrcgUm9sbGU6ICcgKyBlc2NhcGVIdG1sKGluZm8ucm9sbGUgfHwgJz8nKSArCiAgICAg
|
||||
IChpbmZvLmlzdFN1cGVyVXNlciA/ICcgwrcgU3VwZXJVc2VyJyA6ICcnKSArCiAgICAgICcgwrcg
|
||||
c2VoZW46ICcgKyBlc2NhcGVIdG1sKE9iamVjdC5rZXlzKGluZm8uc2VoZW4gfHwge30pLmZpbHRl
|
||||
cihmdW5jdGlvbihrKXsgcmV0dXJuIGluZm8uc2VoZW5ba107IH0pLmpvaW4oJywgJykpICsKICAg
|
||||
ICAgbWFuaWZlc3RUeHQ7CiAgICAvLyBIZWFkbGluZSB6dWVyc3Q6IFN0YXJ0LURpYWdub3NlIChN
|
||||
b2R1bC1MYWRldGVzdCkuIERhbmFjaCBkaWUgYmlzaGVyaWdlbgogICAgLy8gQXVzbGllZmVydW5n
|
||||
cy0vQW5rZXItL0dyb2Vzc2VuLVBydWVmdW5nZW4uCiAgICByZXR1cm4gcHJ1ZWZlU3RhcnQoaW5m
|
||||
bykudGhlbihmdW5jdGlvbihzdGFydFJlcykgewogICAgLy8gc2VxdWVuemllbGwgcHJ1ZWZlbiwg
|
||||
ZGFtaXQgZGllIFJlaWhlbmZvbGdlIGRlciBaZWlsZW4gbWl0IFNPTEwgaWRlbnRpc2NoIGlzdAog
|
||||
ICAgdmFyIGVyZ2Vibmlzc2UgPSBbXTsKICAgIHZhciBjaGFpbiA9IFByb21pc2UucmVzb2x2ZSgp
|
||||
OwogICAgU09MTC5mb3JFYWNoKGZ1bmN0aW9uKGUpIHsKICAgICAgY2hhaW4gPSBjaGFpbi50aGVu
|
||||
KGZ1bmN0aW9uKCkgeyByZXR1cm4gcHJ1ZWZlRWludHJhZyhlLCBpbmZvKTsgfSkudGhlbihmdW5j
|
||||
dGlvbihyKSB7IGVyZ2Vibmlzc2UucHVzaChyKTsgfSk7CiAgICB9KTsKICAgIHJldHVybiBjaGFp
|
||||
bi50aGVuKGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHJ1ZWZlSW1wb3J0ZShlcmdlYm5pc3Nl
|
||||
KS50aGVuKGZ1bmN0aW9uKGltcENoZWNrKSB7CiAgICAgICAgcmV0dXJuIHBydWVmZUdyb2Vzc2Vu
|
||||
KCkudGhlbihmdW5jdGlvbihnckNoZWNrKSB7CiAgICAgICAgICB2YXIgb2sgICAgPSBlcmdlYm5p
|
||||
c3NlLmZpbHRlcihmdW5jdGlvbihyKXsgcmV0dXJuIHIuc3RhdHVzID09PSAnb2snOyB9KS5sZW5n
|
||||
dGg7CiAgICAgICAgICB2YXIgd2FybiAgPSBlcmdlYm5pc3NlLmZpbHRlcihmdW5jdGlvbihyKXsg
|
||||
cmV0dXJuIHIuc3RhdHVzID09PSAnd2Fybic7IH0pLmxlbmd0aDsKICAgICAgICAgIHZhciBmZWgg
|
||||
ICA9IGVyZ2Vibmlzc2UuZmlsdGVyKGZ1bmN0aW9uKHIpeyByZXR1cm4gci5zdGF0dXMgPT09ICdm
|
||||
ZWgnOyB9KS5sZW5ndGggKwogICAgICAgICAgICAgICAgICAgICAgKGltcENoZWNrLnN0YXR1cyA9
|
||||
PT0gJ2ZlaCcgPyBpbXBDaGVjay5hbnphaGwgOiAwKTsKICAgICAgICAgIHZhciBza2lwICA9IGVy
|
||||
Z2Vibmlzc2UuZmlsdGVyKGZ1bmN0aW9uKHIpeyByZXR1cm4gci5zdGF0dXMgPT09ICdza2lwJzsg
|
||||
fSkubGVuZ3RoOwogICAgICAgICAgLy8gR3JvZXNzZW4tQ2hlY2sgZmxpZXNzdCB6dXNhZXR6bGlj
|
||||
aCBpbiBkaWUgWnVzYW1tZW5mYXNzdW5nIGVpbi4KICAgICAgICAgIHZhciBncldhcm4gPSAoZ3JD
|
||||
aGVjay5hbnpEaWZmIHx8IDApOwogICAgICAgICAgdmFyIGdyRmVoICA9IChnckNoZWNrLmFuekZl
|
||||
aGx0QXNzZXQgfHwgMCkgKyAoZ3JDaGVjay5hbnpGZWhsdFNvdXJjZSB8fCAwKTsKICAgICAgICAg
|
||||
IHdhcm4gKz0gZ3JXYXJuOwogICAgICAgICAgZmVoICArPSBnckZlaDsKICAgICAgICAgIC8vIFN0
|
||||
YXJ0LURpYWdub3NlIChNb2R1bC1MYWRlZmVobGVyKSBpc3QgZGVyIGtyaXRpc2Noc3RlIEJsb2Nr
|
||||
LgogICAgICAgICAgdmFyIHN0YXJ0RmVoID0gKHN0YXJ0UmVzICYmIHN0YXJ0UmVzLmZlaCkgfHwg
|
||||
MDsKICAgICAgICAgIGZlaCArPSBzdGFydEZlaDsKCiAgICAgICAgICB2YXIgenVzID0gUSgnI3p1
|
||||
c2FtbWVuZmFzc3VuZycpOwogICAgICAgICAgdmFyIGdyU3VmZml4ID0gKGdyV2FybiB8fCBnckZl
|
||||
aCkKICAgICAgICAgICAgPyAoJyDCtyBHcsO2w59lbi1DaGVjazogJyArIGdyV2FybiArICcgRGlm
|
||||
ZiwgJyArIGdyRmVoICsgJyBmZWhsZW4nKQogICAgICAgICAgICA6ICcnOwogICAgICAgICAgdmFy
|
||||
IHN0YXJ0U3VmZml4ID0gc3RhcnRGZWggPyAoJyDCtyDwn5qAIFN0YXJ0LURpYWdub3NlOiAnICsg
|
||||
c3RhcnRGZWggKyAnIE1vZHVsLVByb2JsZW0oZSknKSA6ICcnOwogICAgICAgICAgaWYgKGZlaCA9
|
||||
PT0gMCAmJiB3YXJuID09PSAwKSB7CiAgICAgICAgICAgIHp1cy50ZXh0Q29udGVudCA9ICfinJMg
|
||||
QWxsZSAnICsgb2sgKyAnIERhdGVpZW4gT0sgwrcgTW9kdWxlIGxhZGVuIMK3IEdyw7bDn2VuIGlk
|
||||
ZW50aXNjaCcgKyAoc2tpcCA/ICcgKCcgKyBza2lwICsgJyDDvGJlcnNwcnVuZ2VuKScgOiAnJyk7
|
||||
CiAgICAgICAgICAgIHp1cy5jbGFzc05hbWUgPSAnenVzYW1tZW5mYXNzdW5nIG9rJzsKICAgICAg
|
||||
ICAgIH0gZWxzZSBpZiAoZmVoID09PSAwKSB7CiAgICAgICAgICAgIHp1cy50ZXh0Q29udGVudCA9
|
||||
ICfimqAgJyArIG9rICsgJyBPSyDCtyAnICsgd2FybiArICcgV2FybnVuZyhlbiknICsgZ3JTdWZm
|
||||
aXggKyAoc2tpcCA/ICcgwrcgJyArIHNraXAgKyAnIMO8YmVyc3BydW5nZW4nIDogJycpOwogICAg
|
||||
ICAgICAgICB6dXMuY2xhc3NOYW1lID0gJ3p1c2FtbWVuZmFzc3VuZyB3YXJuJzsKICAgICAgICAg
|
||||
IH0gZWxzZSB7CiAgICAgICAgICAgIHp1cy50ZXh0Q29udGVudCA9ICfinJcgJyArIGZlaCArICcg
|
||||
UHJvYmxlbShlKSDCtyAnICsgb2sgKyAnIE9LIMK3ICcgKyB3YXJuICsgJyBXYXJudW5nKGVuKScg
|
||||
KyBzdGFydFN1ZmZpeCArIGdyU3VmZml4OwogICAgICAgICAgICB6dXMuY2xhc3NOYW1lID0gJ3p1
|
||||
c2FtbWVuZmFzc3VuZyBmZWgnOwogICAgICAgICAgfQogICAgICAgICAgUSgnI3N0YXR1cycpLnRl
|
||||
eHRDb250ZW50ID0gJ2ZlcnRpZyc7CiAgICAgICAgICBRKCcjc3RhdHVzJykuY2xhc3NOYW1lID0g
|
||||
J25ldXRyYWwnOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogICAgfSk7CiAgfSkuY2F0
|
||||
Y2goZnVuY3Rpb24oZSkgewogICAgUSgnI3p1c2FtbWVuZmFzc3VuZycpLnRleHRDb250ZW50ID0g
|
||||
J+KclyAvYXBpL2luZm8gbmljaHQgZXJyZWljaGJhcjogJyArIChlLm1lc3NhZ2UgfHwgZSk7CiAg
|
||||
ICBRKCcjenVzYW1tZW5mYXNzdW5nJykuY2xhc3NOYW1lID0gJ3p1c2FtbWVuZmFzc3VuZyBmZWgn
|
||||
OwogICAgUSgnI3N0YXR1cycpLnRleHRDb250ZW50ID0gJ2FiZ2Vicm9jaGVuJzsKICAgIFEoJyNz
|
||||
dGF0dXMnKS5jbGFzc05hbWUgPSAnbmV1dHJhbCc7CiAgfSkuZmluYWxseShmdW5jdGlvbigpIHsK
|
||||
ICAgIFEoJyNidG4tc3RhcnQnKS5kaXNhYmxlZCA9IGZhbHNlOwogIH0pOwp9CgpRKCcjYnRuLXN0
|
||||
YXJ0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBzdGFydCk7Ci8vIEF1dG8tU3RhcnQgYmVp
|
||||
bSBPZWZmbmVuCnN0YXJ0KCk7Cg==
|
||||
### FILE: sync-manifest.json | 6024
|
||||
ewogICJnZW5lcmllcnQiOiAgIjIwMjYtMDYtMjNUMTE6NTg6MThaIiwKICAiYnJhbmNoIjogICAg
|
||||
ICJtYWluIiwKICAiY29tbWl0IjogICAgICI3NTI2MzA1IiwKICAiYWxnb3JpdGhtdXMiOiJzaGEy
|
||||
NTYiLAogICJkYXRlaWVuIjogewogICAgIldvY2hlbnBsYW4uaHRtbCI6IHsgInNoYTI1NiI6ICJl
|
||||
NWE3MWQ2NTkyYzU0OTNlNzM0NzUwY2I5NTRiZmE3OGYxZTE4NDZhZTUwYzYzN2U1YTBlMjVjMjA0
|
||||
NTYxNmI2IiwgImJ5dGVzIjogMjE1Mjc2IH0sCiAgICAiV29jaGVucGxhbi50ZW1wbGF0ZS5odG1s
|
||||
IjogeyAic2hhMjU2IjogIjM4NjM0OGFhZjgxN2FmYjA1MmRlZGU5Nzc5YTljOWM0ZTg5ZGFjMWVh
|
||||
OGRhYjBkMTEyMjdiMjRjNTgyNmIxNDMiLCAiYnl0ZXMiOiAyNjM4MCB9LAogICAgImFwcC5qcyI6
|
||||
IHsgInNoYTI1NiI6ICJkZmIyOGZiMDNmYTAwZTY3MjU0ZGUxOTJkZGQ1YjJjYTYwZjQ5ZGMxODY5
|
||||
N2Y5YzdmYTdjMTNiNjAxNjM5NzQxIiwgImJ5dGVzIjogMTQ5NzU5IH0sCiAgICAiZGlhZ25vc2Uu
|
||||
aHRtbCI6IHsgInNoYTI1NiI6ICIwYmY1MDdjMmZmZTI3NjNkNTE2ZjFhYmZiZDlkOTRlMjI3NDgw
|
||||
OTk5ZTNjY2ZkNDJjNGQ1YjQzZWNmZTg5YjI3IiwgImJ5dGVzIjogMjUzOCB9LAogICAgImRpYWdu
|
||||
b3NlLmpzIjogeyAic2hhMjU2IjogImVjOTBkMDRkZmE2MzZmYjA5MDNlZjE3MTlmOTM4YWQwYmY1
|
||||
NzM1OWM4MDQxMDFlOGExMzNmNzlkNDI4MWZlZWUiLCAiYnl0ZXMiOiA1Mjg1IH0sCiAgICAiZmF2
|
||||
aWNvbi5pY28iOiB7ICJzaGEyNTYiOiAiMjU0Y2Y1NWJkNzQ0ZDAxYTE0NjFkMjM4NzVkN2JkYjI1
|
||||
NDI0MWQ4ZmY4MjZhM2QwY2Y2ZDhkN2MwY2Q1Y2NhYSIsICJieXRlcyI6IDQ0NDMgfSwKICAgICJo
|
||||
ZWFydGJlYXQtd29ya2VyLmpzIjogeyAic2hhMjU2IjogIjEzMDBiNmJhNGU4OWI2MWViYWFmOGY2
|
||||
YTk5OGMyMGM5YTFhNzQ2N2E5ZTc5M2RiMDRhM2Y1NmY1NTk2ZWEyNWEiLCAiYnl0ZXMiOiAyNzUx
|
||||
IH0sCiAgICAiaW5kZXguaHRtbCI6IHsgInNoYTI1NiI6ICIzMzk2NDRiZmQwODFjZGFmNGMzMmJl
|
||||
ODk0NTIxNDc1NmRkZDRjOTdiYmQ2NWI5MjljNjg4NWIzNGQzYzExZjQ3IiwgImJ5dGVzIjogMTMz
|
||||
NTc1IH0sCiAgICAiaW5mby5odG1sIjogeyAic2hhMjU2IjogIjdmMDE2ZjUzZjVjMWQ1YjE3NzUw
|
||||
MTFlNTlkZTg5MTIzMGU0ZTc3MjAyY2JmOTFiOGVhODRhMTk1OGZlN2M1NzYiLCAiYnl0ZXMiOiAx
|
||||
Mjc2NSB9LAogICAgImpzL2FkbWluLmpzIjogeyAic2hhMjU2IjogIjkyZjEzM2QzMDE0YmM4Nzdi
|
||||
NGUyYTA5ZmNmNjcyZWFhNzNkYTE5ZGNhN2MyZTU0ZTRkZWIxNzMyYjMwYTk4NDUiLCAiYnl0ZXMi
|
||||
OiA3NzM2NSB9LAogICAgImpzL2FkbWluX2NvZGVzLmpzIjogeyAic2hhMjU2IjogIjdiNTRiMTIy
|
||||
ZmYxOTIzOTNhODZlZjQyNGU4ZTUyY2ZmZmM5MzA2MjIzN2E0ODY2MzZiMTQ0OWFmOWZjOGQ1Mjci
|
||||
LCAiYnl0ZXMiOiAyNjA1NSB9LAogICAgImpzL2FkbWluX2NvbW1vbi5qcyI6IHsgInNoYTI1NiI6
|
||||
ICI2NGVlOGU4YjhkMDZjMjAwYjQ5YmM0Y2I2MTkzNGU1NDE3ZjkyZjYyYTdkZjVkOWQzMWQwOTEw
|
||||
ZjNiYzViZTc0IiwgImJ5dGVzIjogMTUyOCB9LAogICAgImpzL2FkbWluX2Vyc2NoZWludW5nc2Jp
|
||||
bGQuanMiOiB7ICJzaGEyNTYiOiAiNTE2ODRmYjczOTc4ODM1MDU5YjIwMDlkMDUyNWEwZjkzZDNk
|
||||
YTNlOWNhNTU3M2Y4OTcwMTUwY2I5NTlhZGE1NCIsICJieXRlcyI6IDMxNzQxIH0sCiAgICAianMv
|
||||
YWRtaW5fa2FsZW5kZXIuanMiOiB7ICJzaGEyNTYiOiAiYzNhNzBjYzhhN2EyY2JlYmY0ODVhMzhi
|
||||
OTkwNmY3MTBlNmRjYzUxOWE2YjI2YzM3YmFhOTJkZDEyMGRiMzkzYSIsICJieXRlcyI6IDI2NDg5
|
||||
IH0sCiAgICAianMvYWRtaW5fbWl0dGVpbHVuZ2VuLmpzIjogeyAic2hhMjU2IjogIjZlZWIzMDNh
|
||||
MTcwMmMxZTk1YzkxYWM5Mzg5N2FkZjQ4ZDI1ODA1NzZkNWI5NWEzZTVlMzZlZTA3OWQ2ZGIxMDMi
|
||||
LCAiYnl0ZXMiOiAxOTk1OSB9LAogICAgImpzL2FkbWluX3BlcnNvbmFsLmpzIjogeyAic2hhMjU2
|
||||
IjogIjdmNjI3NGM5OGIyMmJjNTI4ZTVlMGEwNmIzMThlMmM2MDNkODllZDQ3NmUxZjE4ZjNkNTRi
|
||||
NDU4NzNiMGMyMWMiLCAiYnl0ZXMiOiAxMDg3NjIgfSwKICAgICJqcy9hZG1pbl9yb2xsZW4uanMi
|
||||
OiB7ICJzaGEyNTYiOiAiYjI4OTNmYTNhZmMyNGQyYjQ0YzI1OTM0NjU3Nzk2NDlhZjliMjA3YmMy
|
||||
NzYxODJhMzMxYzVjMTc4MmZjZjRkNCIsICJieXRlcyI6IDQzMjc4IH0sCiAgICAianMvYWRtaW5f
|
||||
c3RhbmRhcmRyZWNodGUuanMiOiB7ICJzaGEyNTYiOiAiYWU2OTEyMDhmYzk4MmQwMmZlYzhhOGY1
|
||||
ZTliNDBlMDI2MzhmMzdiZWU0NGY0ZDRmZTAxZjdlMTEwNjUyZDU3NCIsICJieXRlcyI6IDkyMzcg
|
||||
fSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWsuanMiOiB7ICJzaGEyNTYiOiAiN2U5MTQ2ZWUyZjli
|
||||
YmE1NTFjZjRkNzU0MjU5NzQyYWM1NDAyM2ZiY2IyYTM2YWI5M2Y0ZDkzMjUwZDQ0N2YwZSIsICJi
|
||||
eXRlcyI6IDg1NTggfSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWtfYnVpbGRlci5qcyI6IHsgInNo
|
||||
YTI1NiI6ICI0NGZjYjgyODBiZmQ3MmUwNjUxMDZiNjdkNTBlYzg2NjY2MTZmNWEyOGQ0NTYyZjc1
|
||||
MzVhYzAxNTU1NjQ2MzU1IiwgImJ5dGVzIjogMzA0OTQgfSwKICAgICJqcy9iZXNldHp1bmcuanMi
|
||||
OiB7ICJzaGEyNTYiOiAiZjMxY2NmN2E1NzBkNjQ3MjNlOTVkNjIwZWI2ODY5NmVjODE2ZmUwYjJl
|
||||
MjEwYjI2NmQ1ODUxZDI4MWI5MDM3NyIsICJieXRlcyI6IDU5NTk1IH0sCiAgICAianMvY29yZV9h
|
||||
cGkuanMiOiB7ICJzaGEyNTYiOiAiNzA4YmQ4MDdjNjVjOWZhMTA1MjkwYTViNzlmNjE1NjExMDg1
|
||||
OTEzNjM4MDBkY2I0NjBlMWEwZDIwYzc1NjdiMSIsICJieXRlcyI6IDEwODcgfSwKICAgICJqcy9j
|
||||
b3JlX2RhdGVuTGFkZW4uanMiOiB7ICJzaGEyNTYiOiAiZmQyZDZjNzgwOWE3YWMxNDE3OTFhODFm
|
||||
YTgwMjcwMTkxYTJjMWJjNmVmMWNiMWY3OGRkMDdkZTRjZDQ0YWIzOSIsICJieXRlcyI6IDcyMDMg
|
||||
fSwKICAgICJqcy9jb3JlX3Blcm1pc3Npb25zLmpzIjogeyAic2hhMjU2IjogIjQ2YjNhNmQ4NWFj
|
||||
ZmFkYzUxOWRhNjNlODZlMmYwZGViYzRmOTNlZTI5NmYyNTBlMmRjNDQ5MTgyM2Q1ZWI5YTYiLCAi
|
||||
Ynl0ZXMiOiAyMTc3MCB9LAogICAgImpzL2NvcmVfc3RhdGUuanMiOiB7ICJzaGEyNTYiOiAiNjVm
|
||||
ZmM2MGZlZjg1ZjQ5YWFkZTQyYTdlMzRjM2ZkNGYzMjg1OGUwMmE1NmQwMTczZTZiZGEyODFlNDY1
|
||||
Yjc2MCIsICJieXRlcyI6IDE0MTIgfSwKICAgICJqcy9jb3JlX3V0aWwuanMiOiB7ICJzaGEyNTYi
|
||||
OiAiYThhOTk2ZGQ5MTkyODY4MzFkNDIxN2E2OWM4Yjk2MjYwYWU3ZDA2MmJlZWRhNzExOGYyZTFh
|
||||
NWQzNTA4OTFhMSIsICJieXRlcyI6IDEyMDQ2IH0sCiAgICAianMvZW1haWxfdm9ybGFnZW4uanMi
|
||||
OiB7ICJzaGEyNTYiOiAiZDk2ODJmM2JkN2I2MmEzYTI0ZTQ4YzVmYjY5NDc1NzY3YWM0YzQxMmIw
|
||||
NzAxYjg0ZTVmZDA5NjljYmMxN2EzOCIsICJieXRlcyI6IDQxNjcxIH0sCiAgICAianMvZXhwb3J0
|
||||
X3BsYW4uanMiOiB7ICJzaGEyNTYiOiAiNWY4Y2FiYjk5ZTEzYzY0MzNhNmNjYjAxMjM1MTZlYjJk
|
||||
MjY4ODIxMDg3YzNhNWJhOWVhNjUwMTRkY2ExYTI3MyIsICJieXRlcyI6IDIwNzg0IH0sCiAgICAi
|
||||
anMvZmVpZXJ0YWdlX2RlLmpzIjogeyAic2hhMjU2IjogIjM0MTk1YjBkOTViZGJhMjhmMDBiYjE2
|
||||
YzllMjE2MGExOWQ1Yzc1ZGI5MjEwNzRiMGMyMmM3OGQ1YWJmYTEwMWEiLCAiYnl0ZXMiOiAzMjA5
|
||||
IH0sCiAgICAianMvZ3JpZF9lZGl0b3IuanMiOiB7ICJzaGEyNTYiOiAiY2U3YzllM2FmMGVjYmZj
|
||||
M2IyODM3NDIwMDBhMDUzZmRhZDkxZjgxMGI4ZWUwYmQxMzAyMWVmNTAxMWUxOTE5YyIsICJieXRl
|
||||
cyI6IDQwODUxIH0sCiAgICAianMvZ3JpZF9pbnRlcmFjdGlvbi5qcyI6IHsgInNoYTI1NiI6ICI1
|
||||
OTNkNmQwYjRjMzJlZTM1Zjg1MmI1NGRlZWU2NjIzYmViNjQ3ODhhMzg1MzhkNjFkNzEyNjQyYjFm
|
||||
NDkwYTA0IiwgImJ5dGVzIjogMzU4OTMgfSwKICAgICJqcy9ncmlkX3JlbmRlci5qcyI6IHsgInNo
|
||||
YTI1NiI6ICIzMTM5ZjZlMmVmZDVjMTE5ZTExMzQ2OTVmZjQyMmIzYzg0YTE0MGUwMjNmZGZjNWVl
|
||||
YTUwNjZlZDZlOWM2YzM2IiwgImJ5dGVzIjogMzcwNjQgfSwKICAgICJqcy9oaW53ZWlzZS5qcyI6
|
||||
IHsgInNoYTI1NiI6ICIxNWVmN2EyOGFkOGViYjM1Y2FlMmE0OWIwYzVlNDAxODliMGU2MTQ1OThm
|
||||
YzI3ODI3YjYwMTZjMDFkMjg5OGIzIiwgImJ5dGVzIjogMTg5MzEgfSwKICAgICJqcy9pbXBvcnRf
|
||||
ZXhjZWwuanMiOiB7ICJzaGEyNTYiOiAiZjJhYTBkNjgyYjY1MWJlMDM4Y2IwY2U4MDc2NDczMDAw
|
||||
YmQxODA5OWU2MzkxMTljNzE0YmQyNjc3NTdiNTM5MCIsICJieXRlcyI6IDkxMjI1IH0sCiAgICAi
|
||||
anMvbG9nYnVjaC5qcyI6IHsgInNoYTI1NiI6ICI0Yjc3MjJkZWZhZDQyYjJkZTM0ZjhhYjJhZWNj
|
||||
OGRhNTUxNDdjZmU3MDkwMDc1YzM1MmViMWRiMDI2YjA2OWZlIiwgImJ5dGVzIjogMzY4NjggfSwK
|
||||
ICAgICJqcy9zY2hpY2h0dGVhbS5qcyI6IHsgInNoYTI1NiI6ICI2Mjk3YWFhNTQ0ZTlmMDYxODRj
|
||||
NjZlYzM3MGMwZTE3Y2UxZDE5NTAwZjI3ODMxZjE2YWVhM2QyMGUyMzhjMDc2IiwgImJ5dGVzIjog
|
||||
NjE2NCB9LAogICAgImpzL3N0YXRpc3Rpay5qcyI6IHsgInNoYTI1NiI6ICI4N2U4MmQxMzY0NTIz
|
||||
NGJiNTlhNGVlMWY3NTIzZTRiZDE1ZTQzZDJiOWEyNWI5ZjJmNjljYzNmMDYxZGIxMTI5IiwgImJ5
|
||||
dGVzIjogMTIxMDQ5IH0sCiAgICAianMvc3RhdGlzdGlrX2NoYXJ0cy5qcyI6IHsgInNoYTI1NiI6
|
||||
ICJjOGYzODNjYmIxYTA2YjE0N2JlZmNjNDYyOTdiMmU5YTU3Y2I1YTM0YzRjN2IxYTg0YWU5YWRh
|
||||
OWZiZmU0NzcwIiwgImJ5dGVzIjogMTg1MTEgfSwKICAgICJqcy9zdGF0aXN0aWtfZW5naW5lLmpz
|
||||
IjogeyAic2hhMjU2IjogImMwZTc3Yjg2ZDY5YjFhYWIwOGNhMjI2N2E0ZThiNmVlZmY1OGNjZjQ5
|
||||
N2E3ZDIyMjY2NWMxZmY4MzY5Y2YzODIiLCAiYnl0ZXMiOiAyMTM2OCB9LAogICAgImpzL3N5bmMu
|
||||
anMiOiB7ICJzaGEyNTYiOiAiNWZiYWEwZDU0OTA0NzQ2MGNkYTQzOTFjMzFmZTY5YzE4YzUxNWNi
|
||||
YzhjNDViNDE4ZWNmYmI2MDdhMGQ2MzBiZiIsICJieXRlcyI6IDE5NDc0IH0sCiAgICAianMvdWlf
|
||||
ZGlhbG9nLmpzIjogeyAic2hhMjU2IjogIjk5YTQzM2RkMGJhMDlhNjE5ZDFlZGI5YWMyN2I4YmUw
|
||||
YmY1ZTIyODlkZDZkZGZhMjJiMTVhYzMzYjhkMTljYzYiLCAiYnl0ZXMiOiAzOTAyMSB9LAogICAg
|
||||
ImpzL3VpX3J0ZS5qcyI6IHsgInNoYTI1NiI6ICJhMzkzYTY5ZDBlNDI3NWIyMTAwMGEwM2RkZDRi
|
||||
YzU0ODQzMmE5ZjNkNmJmNzQzNWY4MmQ3N2IzZTQ1YzQ0NTYzIiwgImJ5dGVzIjogNjk1MSB9LAog
|
||||
ICAgImpzL3dvY2hlbnBsYW4uanMiOiB7ICJzaGEyNTYiOiAiNGY5MTRmYzg1NDNjYTc2OWM1OWNl
|
||||
OGU3MzdhNDZjMjg2MDdmMDEzYWRkMjY1NzgyZjgzZWMxZDI3NGEzNjgxMiIsICJieXRlcyI6IDE1
|
||||
MjA0IH0sCiAgICAic3R5bGUuY3NzIjogeyAic2hhMjU2IjogIjQyOWZlZmIzNDIyZDE1YzEwNzQy
|
||||
YjhiY2E4ZTU1NDVjMzRjMGVlYjE4MWM5MDFlNzBkOWQ2MWUzZjg3OTE4YTgiLCAiYnl0ZXMiOiAy
|
||||
MzM5MTcgfSwKICAgICJzeW5jLWNoZWNrLmh0bWwiOiB7ICJzaGEyNTYiOiAiMjRkZjA3OTliODVk
|
||||
NjEyOTFkNWRkZjAyNGExN2M1MzM3OWQ5MGM3OWM5ZGE3MmJhNjlkODEzZTAxNGQ2ZjkyZiIsICJi
|
||||
eXRlcyI6IDQyNDkgfSwKICAgICJzeW5jLWNoZWNrLmpzIjogeyAic2hhMjU2IjogImU2YTM5NTQ0
|
||||
YWFhYjc0NjkxYzA5N2Y5NGYxZDUwMGZhNGU5NWVlNjU4NGI0ZDkwNGViZjk5Nzc3MTc4Njk3NzQi
|
||||
LCAiYnl0ZXMiOiAzNDkwMyB9LAogICAgInN5bmMtd29ya2VyLmpzIjogeyAic2hhMjU2IjogIjll
|
||||
MDc1MDFjNDM1NGE4NmI4MmQ1MjFjMGY1NDhkMzM5ZjUyOTE5YzVkNmMwYmMyMmNhZGQ4Yjc2MDgx
|
||||
NWVmYjciLCAiYnl0ZXMiOiA3NzUyIH0sCiAgICAieGxzeC5mdWxsLm1pbi5qcyI6IHsgInNoYTI1
|
||||
NiI6ICJjYzAxNTEzMGFhODUyMWU3ZjA4OGY4ODg5OGViYTk0OWNjZGNiZmIzOGRmMGJkMTI5YjQ0
|
||||
YjcyNzNjM2E2ZjQxIiwgImJ5dGVzIjogOTUxOTA0IH0KICB9Cn0K
|
||||
### FILE: sync-worker.js | 7752
|
||||
Ly8gTGl2ZS1TeW5jIFdlYiBXb3JrZXIg4oCUIHBvbGx0IC9hcGkvcGxhbnVuZy9jaGFuZ2VzICsg
|
||||
L2FwaS9sb2NrL3plbGxlbiB1bmQKLy8gc2NoaWNrdCBkaWUgRGVsdGFzIGFuIGRlbiBIYXVwdHRo
|
||||
cmVhZC4gTGFldWZ0IGF1Y2ggaW4gSGludGVyZ3J1bmQtVGFicwovLyB1bmdlZHJvc3NlbHQgKGFu
|
||||
YWxvZyBoZWFydGJlYXQtd29ya2VyLmpzKS4KLy8KLy8gQWRhcHRpdmVzIFBvbGxpbmc6IEJlaSBh
|
||||
a3RpdmVyIE51dHp1bmcgKG1pbmQuIDEgQ2hhbmdlIG9kZXIgZnJlbWRlciBMb2NrKQovLyBhbGxl
|
||||
IEJBU0lTX0lOVEVSVkFMTCBtcy4gQmVpIGxhZW5nZXJlciBJbmFrdGl2aXRhZXQgc2Nocml0dHdl
|
||||
aXNlIGhvY2ggYXVmCi8vIE1BWF9JTlRFUlZBTEwsIGRhbWl0IElkbGUtVGFicyBkZW4gU2VydmVy
|
||||
IG5pY2h0IG1pdCBrb25zdGFudGVuIFJlcXVlc3RzCi8vIGJlbGFzdGVuLiBCZWkgamVkZXIgQWt0
|
||||
aXZpdGFldCBvZGVyIGVpbmVtIHJlc3VtZS1Lb21tYW5kbyB2b20gTWFpbnRocmVhZAovLyBzb2Zv
|
||||
cnQgenVydWVjayBhdWYgQkFTSVNfSU5URVJWQUxMLgovLwovLyBQcm90b2tvbGw6Ci8vICAgTWFp
|
||||
biDihpIgV29ya2VyOiAgeyBjbWQ6ICdzdGFydCd8J3BhdXNlJ3wncmVzdW1lJywgc2VpdD86ICc8
|
||||
aXNvLXRzPicsIHNlaXRTZXE/OiA8aW50PiB9Ci8vICAgV29ya2VyIOKGkiBNYWluOiAgeyB0eXBl
|
||||
OiAnc3luYycsIGNoYW5nZXM6IFsuLi5dLCBsb2NrczogWy4uLl0sIHNlcnZlclRzLCBzZXJ2ZXJT
|
||||
ZXEgfQovLwovLyBDdXJzb3I6IHByaW1hZXIgZGllIG1vbm90b25lIFNlcXVlbnpudW1tZXIgKHNl
|
||||
aXRfc2VxKSDigJQgcmFjZS1mcmVpLCB3ZWlsCi8vIGdlZmlsdGVydGUgQ2hhbmdlcyBVTkQgc2Vy
|
||||
dmVyU2VxIGF1cyBkZW1zZWxiZW4gU2VydmVyLVJlYWQgc3RhbW1lbi4gRGVyCi8vIGFsdGUgV2Fs
|
||||
bC1DbG9jay1DdXJzb3IgKHNlaXQpIHdpcmQgenVzYWV0emxpY2ggbWl0Z2VzY2hpY2t0LCBkYW1p
|
||||
dCBlaW4gbm9jaAovLyBuaWNodCBha3R1YWxpc2llcnRlciBTZXJ2ZXIgKG9obmUgc2VydmVyU2Vx
|
||||
KSB3ZWl0ZXIgZnVua3Rpb25pZXJ0LgoKdmFyIEJBU0lTX0lOVEVSVkFMTCA9IDMwMDA7CnZhciBN
|
||||
QVhfSU5URVJWQUxMICAgPSAzMDAwMDsKdmFyIExFRVJfVElDS1NfQklTX0JBQ0tPRkYgPSAzOyAg
|
||||
IC8vIG5hY2ggfjkgcyBvaG5lIEFrdGl2aXRhZXQgYW5mYW5nZW4genUgdmVyZG9wcGVsbgoKdmFy
|
||||
IGludGVydmFsbCA9IEJBU0lTX0lOVEVSVkFMTDsKdmFyIGxlZXJUaWNrcyA9IDA7CnZhciBzaWNo
|
||||
dGJhciA9IHRydWU7CnZhciBzZWl0ID0gJyc7ICAgICAgICAvLyBXYWxsLUNsb2NrLUN1cnNvciAo
|
||||
RmFsbGJhY2sgZnVlciBhbHRlIFNlcnZlcikKdmFyIHNlaXRTZXEgPSAnJzsgICAgIC8vIHNlcS1D
|
||||
dXJzb3IgKGxlZXIgPSBFcnN0LVN5bmMsIG51ciBDdXJzb3IgaG9sZW4pCnZhciB0aW1lciA9IG51
|
||||
bGw7Ci8vIEF1ZGl0LVBoYXNlIEEuNCAoMjAyNi0wNS0yMSk6IHdlbm4gZWluIGFuZGVyZXIgU1Ug
|
||||
ZGVtIEJlbnV0emVyIGRpZSBSb2xsZQovLyBlbnR6aWVodCwgYW50d29ydGVuIGRpZSBFbmRwb2lu
|
||||
dHMgbWl0IDQwMy4gQmlzaGVyIHd1cmRlIGRhcyBzdGlsbHNjaHdlaWdlbmQKLy8gdmVyc2NobHVj
|
||||
a3QuIFdpciB6YWVobGVuIGF1ZmVpbmFuZGVyZm9sZ2VuZGUgNDAzIHVuZCBpbmZvcm1pZXJlbiBk
|
||||
ZW4gTWFpbi0KLy8gdGhyZWFkLCBkYW1pdCBkb3J0IGVpbiBUb2FzdCArIFJlbG9hZC1IaW53ZWlz
|
||||
IGtvbW10Lgp2YXIgYXVmZWluYW5kZXI0MDMgPSAwOwp2YXIgUEVSTUlTU0lPTl9MT1NUX05BQ0gg
|
||||
PSAzOwovLyBTcHJpbnQgNSDigJQgV2FydHVuZ3NzY2h1bGQgKDIwMjYtMDUtMjksIEZpbmRpbmcg
|
||||
MTUpOiB3ZW5uIGRlciBTZXJ2ZXIKLy8gbmV1IHN0YXJ0ZXQsIHNjaGx1ZyBmZXRjaCgpIGJpc2xh
|
||||
bmcgZWluZmFjaCBmZWhsIChUeXBlRXJyb3IgaW0gV29ya2VyKQovLyB1bmQgZGllIENhdGNoLUhh
|
||||
bmRsZXIgaGFiZW4gbnVsbCB6dXJ1ZWNrZ2VnZWJlbiDigJQgYWJlciBkYXMgbm9ybWFsZQovLyBC
|
||||
YWNrb2ZmIGJyYXVjaHRlIDMgTGVlci1UaWNrcyAofjkgcyksIHdhZWhyZW5kZGVzc2VuIHdlaXRl
|
||||
ciBIVFRQLVN0b3JtLgovLyBCZWkgYXVmZWluYW5kZXJmb2xnZW5kZW4gRmVobGVybiBqZXR6dCBT
|
||||
T0ZPUlQgYXVmIE1BWF9JTlRFUlZBTEwuCnZhciBhdWZlaW5hbmRlckZlaGxlciA9IDA7CnZhciBG
|
||||
RUhMRVJfQklTX01BWCA9IDI7Ci8vIEF1ZGl0LVBoYXNlIEIuMiAoMjAyNi0wNS0yMSk6IEhpbndl
|
||||
aXNlIGFlbmRlcm4gc2ljaCBzZWx0ZW4gKEtyYW5rbWVsZHVuZ3MtCi8vIFJhdGUgbmllZHJpZyks
|
||||
IGRhaGVyIG5pY2h0IGplZGVuIDMtcy1UaWNrIHBvbGxlbi4gRGVmYXVsdDogamVkZW4gNC4gVGlj
|
||||
awovLyAofjEyIHMpLiBXZW5uIGVpbiBIaW53ZWlzIGVyc2NoaWVuZW4gaXN0LCBmdWVyIDMwIHMg
|
||||
d2llZGVyIGplZGVuIFRpY2suCnZhciBoaW53ZWlzVGlja1phZWhsZXIgPSAwOwp2YXIgSElOV0VJ
|
||||
U19USUNLX1FVT1RFID0gNDsKdmFyIGhpbndlaXNWb2xsUXVvdGVCaXMgPSAwOyAgIC8vIG1zLVRp
|
||||
bWVzdGFtcDogYmlzIGRhaGluIGplZGVuIFRpY2sgZmV0Y2hlbgoKZnVuY3Rpb24gcGxhblRpbWVy
|
||||
TmV1KG5ldWVzSW50ZXJ2YWxsKSB7CiAgICBpZiAobmV1ZXNJbnRlcnZhbGwgPT09IGludGVydmFs
|
||||
bCAmJiB0aW1lcikgcmV0dXJuOwogICAgaW50ZXJ2YWxsID0gbmV1ZXNJbnRlcnZhbGw7CiAgICBp
|
||||
ZiAodGltZXIpIGNsZWFySW50ZXJ2YWwodGltZXIpOwogICAgdGltZXIgPSBzZXRJbnRlcnZhbCh0
|
||||
aWNrLCBpbnRlcnZhbGwpOwp9CgpmdW5jdGlvbiBzb2ZvcnRCYXNpc0ludGVydmFsbCgpIHsKICAg
|
||||
IGxlZXJUaWNrcyA9IDA7CiAgICBwbGFuVGltZXJOZXUoQkFTSVNfSU5URVJWQUxMKTsKfQoKLy8g
|
||||
RmV0Y2gtV3JhcHBlciwgZGVyIDQwMyBlcmtlbm5iYXIgbWFjaHQgKHN0YXR0IG51ciBzaWxlbnQg
|
||||
LmNhdGNoKS4KLy8gU3ByaW50IDU6IHp1c2FldHpsaWNoIFNlcnZlci1Eb3duLzV4eCBhbHMgX2Zl
|
||||
aGxlciBrZW5uemVpY2huZW4sIGRhbWl0Ci8vIGRlciBUaWNrLUxvb3Agd2Vpc3MsIG9iIGVyIHNv
|
||||
Zm9ydCBhdWYgTUFYX0lOVEVSVkFMTCBkcm9zc2VsbiBtdXNzLgpmdW5jdGlvbiBmZXRjaEpzb24o
|
||||
dXJsKSB7CiAgICByZXR1cm4gZmV0Y2godXJsKS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICBp
|
||||
ZiAoci5zdGF0dXMgPT09IDQwMykgcmV0dXJuIHsgXzQwMzogdHJ1ZSB9OwogICAgICAgIGlmIChy
|
||||
LnN0YXR1cyA+PSA1MDApIHJldHVybiB7IF9mZWhsZXI6IHRydWUsIF9zdGF0dXM6IHIuc3RhdHVz
|
||||
IH07CiAgICAgICAgcmV0dXJuIHIuanNvbigpOwogICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7IHJl
|
||||
dHVybiB7IF9mZWhsZXI6IHRydWUsIF9zdGF0dXM6IDAgfTsgfSk7Cn0KCmZ1bmN0aW9uIHRpY2so
|
||||
KSB7CiAgICBpZiAoIXNpY2h0YmFyKSByZXR1cm47CiAgICB2YXIgY2hhbmdlc1AgPSBmZXRjaEpz
|
||||
b24oJy9hcGkvcGxhbnVuZy9jaGFuZ2VzP3NlaXRfc2VxPScgKyBlbmNvZGVVUklDb21wb25lbnQo
|
||||
c2VpdFNlcSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICcmc2VpdD0nICsgZW5jb2Rl
|
||||
VVJJQ29tcG9uZW50KHNlaXQgfHwgJycpKTsKICAgIHZhciBsb2Nrc1AgICA9IGZldGNoSnNvbign
|
||||
L2FwaS9sb2NrL3plbGxlbicpOwogICAgLy8gSGlud2Vpc2UgbnVyIGJlaSBqZWRlbSBOLXRlbiBU
|
||||
aWNrIGZldGNoZW4gKEF1ZGl0LVBoYXNlIEIuMikuIEJlaQogICAgLy8gQWt0aXZpdGFldCAoSGlu
|
||||
d2VpcyBlcnNjaGllbikgd2lyZCB2b2xsUXVvdGUtRmVuc3RlciBnZXNldHp0LCBkYW1pdAogICAg
|
||||
Ly8gRm9sZ2UtQWt0aW9uZW4gaW5zdGFudCBzaWNodGJhciB3ZXJkZW4uCiAgICBoaW53ZWlzVGlj
|
||||
a1phZWhsZXIrKzsKICAgIHZhciBqZXR6dE1zID0gRGF0ZS5ub3coKTsKICAgIHZhciBoaW53ZWlz
|
||||
ZUhvbGVuID0gKGhpbndlaXNUaWNrWmFlaGxlciA+PSBISU5XRUlTX1RJQ0tfUVVPVEUpIHx8IChq
|
||||
ZXR6dE1zIDwgaGlud2Vpc1ZvbGxRdW90ZUJpcyk7CiAgICBpZiAoaGlud2Vpc2VIb2xlbikgaGlu
|
||||
d2Vpc1RpY2taYWVobGVyID0gMDsKICAgIHZhciBoaW53ZWlzZVAgPSBoaW53ZWlzZUhvbGVuCiAg
|
||||
ICAgICAgPyBmZXRjaEpzb24oJy9hcGkvaGlud2Vpc2UnKQogICAgICAgIDogUHJvbWlzZS5yZXNv
|
||||
bHZlKG51bGwpOwogICAgUHJvbWlzZS5hbGwoW2NoYW5nZXNQLCBsb2Nrc1AsIGhpbndlaXNlUF0p
|
||||
LnRoZW4oZnVuY3Rpb24oYXJyKSB7CiAgICAgICAgdmFyIGNoID0gYXJyWzBdLCBsayA9IGFyclsx
|
||||
XSwgaHcgPSBhcnJbMl07CiAgICAgICAgLy8gU2VydmVyLURvd24gLyA1eHgg4oCUIGJlaSBtZWhy
|
||||
ZXJlbiBpbiBGb2xnZSBzb2ZvcnQgZHJvc3NlbG4sIHN0YXR0CiAgICAgICAgLy8gd2VpdGVyIGRl
|
||||
biBTZXJ2ZXIgbWl0IFJlcXVlc3RzIHp1IGJvbWJhcmRpZXJlbiAoU3ByaW50IDUgRmluZGluZyAx
|
||||
NSkuCiAgICAgICAgdmFyIGhhdEZlaGxlciA9IChjaCAmJiBjaC5fZmVobGVyKSB8fCAobGsgJiYg
|
||||
bGsuX2ZlaGxlcik7CiAgICAgICAgaWYgKGhhdEZlaGxlcikgewogICAgICAgICAgICBhdWZlaW5h
|
||||
bmRlckZlaGxlcisrOwogICAgICAgICAgICBpZiAoYXVmZWluYW5kZXJGZWhsZXIgPj0gRkVITEVS
|
||||
X0JJU19NQVggJiYgaW50ZXJ2YWxsIDwgTUFYX0lOVEVSVkFMTCkgewogICAgICAgICAgICAgICAg
|
||||
cGxhblRpbWVyTmV1KE1BWF9JTlRFUlZBTEwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJl
|
||||
dHVybjsKICAgICAgICB9CiAgICAgICAgYXVmZWluYW5kZXJGZWhsZXIgPSAwOwoKICAgICAgICAv
|
||||
LyA0MDMtVHJhY2tpbmc6IG51ciB1ZWJlciBDaGFuZ2VzK0xvY2tzLCB3ZWlsIC9hcGkvaGlud2Vp
|
||||
c2UgaW1tZXIKICAgICAgICAvLyAyMDAgbWl0IGxlZXJlbSBBcnJheSBsaWVmZXJ0IChTZXJ2ZXIt
|
||||
c2VpdGlnZSBHYXRpbmctTG9naWspLgogICAgICAgIHZhciBoYXQ0MDMgPSAoY2ggJiYgY2guXzQw
|
||||
MykgfHwgKGxrICYmIGxrLl80MDMpOwogICAgICAgIGlmIChoYXQ0MDMpIHsKICAgICAgICAgICAg
|
||||
YXVmZWluYW5kZXI0MDMrKzsKICAgICAgICAgICAgaWYgKGF1ZmVpbmFuZGVyNDAzID49IFBFUk1J
|
||||
U1NJT05fTE9TVF9OQUNIKSB7CiAgICAgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHsgdHlw
|
||||
ZTogJ3Blcm1pc3Npb25fbG9zdCcgfSk7CiAgICAgICAgICAgICAgICBzaWNodGJhciA9IGZhbHNl
|
||||
OyAgICAgLy8gd2VpdGVyZXMgUG9sbGluZyBzdG9wcGVuCiAgICAgICAgICAgIH0KICAgICAgICAg
|
||||
ICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBhdWZlaW5hbmRlcjQwMyA9IDA7CgogICAgICAg
|
||||
IHZhciBtc2cgPSB7IHR5cGU6ICdzeW5jJyB9OwogICAgICAgIHZhciBoYXRBa3Rpdml0YWV0ID0g
|
||||
ZmFsc2U7CiAgICAgICAgaWYgKGNoICYmIChjaC5zZXJ2ZXJUcyB8fCBjaC5zZXJ2ZXJTZXEgIT0g
|
||||
bnVsbCkpIHsKICAgICAgICAgICAgLy8gc2VxLUN1cnNvciBiZXZvcnp1Z2VuIChyYWNlLWZyZWkp
|
||||
LiBzZXJ2ZXJTZXEgZmVobHQgbnVyIGJlaSBlaW5lbQogICAgICAgICAgICAvLyBub2NoIG5pY2h0
|
||||
IGFrdHVhbGlzaWVydGVuIFNlcnZlciAtPiBkYW5uIGdyZWlmdCBkZXIgdHMtQ3Vyc29yLgogICAg
|
||||
ICAgICAgICBpZiAoY2guc2VydmVyU2VxICE9IG51bGwpIHsgc2VpdFNlcSA9IFN0cmluZyhjaC5z
|
||||
ZXJ2ZXJTZXEpOyBtc2cuc2VydmVyU2VxID0gY2guc2VydmVyU2VxOyB9CiAgICAgICAgICAgIGlm
|
||||
IChjaC5zZXJ2ZXJUcykgeyBzZWl0ID0gY2guc2VydmVyVHM7IG1zZy5zZXJ2ZXJUcyA9IGNoLnNl
|
||||
cnZlclRzOyB9CiAgICAgICAgICAgIG1zZy5jaGFuZ2VzID0gY2guY2hhbmdlcyB8fCBbXTsKICAg
|
||||
ICAgICAgICAgaWYgKG1zZy5jaGFuZ2VzLmxlbmd0aCA+IDApIGhhdEFrdGl2aXRhZXQgPSB0cnVl
|
||||
OwogICAgICAgIH0KICAgICAgICBpZiAobGsgJiYgbGsubG9ja3MpIHsKICAgICAgICAgICAgbXNn
|
||||
LmxvY2tzID0gbGsubG9ja3M7CiAgICAgICAgICAgIGlmIChsay5sb2Nrcy5sZW5ndGggPiAwKSBo
|
||||
YXRBa3Rpdml0YWV0ID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGh3ICYmIGh3Lmhpbndl
|
||||
aXNlKSB7CiAgICAgICAgICAgIG1zZy5oaW53ZWlzZSA9IGh3LmhpbndlaXNlOwogICAgICAgICAg
|
||||
ICAvLyBBa3Rpdml0YWV0IGVya2FubnQgLT4gMzBzIGxhbmcgamVkZW4gVGljayB3ZWl0ZXJwb2xs
|
||||
ZW4uCiAgICAgICAgICAgIGlmIChody5oaW53ZWlzZS5sZW5ndGggPiAwKSBoaW53ZWlzVm9sbFF1
|
||||
b3RlQmlzID0gRGF0ZS5ub3coKSArIDMwMDAwOwogICAgICAgIH0KICAgICAgICBpZiAobXNnLmNo
|
||||
YW5nZXMgfHwgbXNnLmxvY2tzIHx8IG1zZy5oaW53ZWlzZSkgc2VsZi5wb3N0TWVzc2FnZShtc2cp
|
||||
OwoKICAgICAgICBpZiAoaGF0QWt0aXZpdGFldCkgewogICAgICAgICAgICBzb2ZvcnRCYXNpc0lu
|
||||
dGVydmFsbCgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxlZXJUaWNrcysrOwogICAg
|
||||
ICAgICAgICBpZiAobGVlclRpY2tzID49IExFRVJfVElDS1NfQklTX0JBQ0tPRkYgJiYgaW50ZXJ2
|
||||
YWxsIDwgTUFYX0lOVEVSVkFMTCkgewogICAgICAgICAgICAgICAgcGxhblRpbWVyTmV1KE1hdGgu
|
||||
bWluKGludGVydmFsbCAqIDIsIE1BWF9JTlRFUlZBTEwpKTsKICAgICAgICAgICAgfQogICAgICAg
|
||||
IH0KICAgIH0pOwp9CgpmdW5jdGlvbiBzdGFydGVuKCkgewogICAgc29mb3J0QmFzaXNJbnRlcnZh
|
||||
bGwoKTsKICAgIHRpY2soKTsKICAgIC8vIExlYmVuc3plaWNoZW4gYW4gZGVuIE1haW50aHJlYWQg
|
||||
4oCUIG1haW4gaG9lcnQgaW4gc3luYy5qcyBkYXJhdWYgdW5kCiAgICAvLyBzZXR6dCBaLnN5bmNX
|
||||
b3JrZXJMZWJ0LiBXZW5uIGRlciBXb3JrZXIgTklDSFQgYW50d29ydGV0LCBzaWVodCBkZXIKICAg
|
||||
IC8vIFVzZXIgZG9ydCBlaW5lbiBEaWFnbm9zZS1Ub2FzdC4KICAgIHNlbGYucG9zdE1lc3NhZ2Uo
|
||||
eyB0eXBlOiAncHVscycsIHRzOiBEYXRlLm5vdygpIH0pOwp9CgpzZWxmLm9ubWVzc2FnZSA9IGZ1
|
||||
bmN0aW9uKGUpIHsKICAgIHZhciBkID0gZS5kYXRhIHx8IHt9OwogICAgaWYgKGQuY21kID09PSAn
|
||||
c3RhcnQnKSB7CiAgICAgICAgaWYgKGQuc2VpdCkgc2VpdCA9IGQuc2VpdDsKICAgICAgICBpZiAo
|
||||
ZC5zZWl0U2VxICE9IG51bGwpIHNlaXRTZXEgPSBTdHJpbmcoZC5zZWl0U2VxKTsKICAgICAgICBz
|
||||
aWNodGJhciA9IHRydWU7CiAgICAgICAgc3RhcnRlbigpOwogICAgfSBlbHNlIGlmIChkLmNtZCA9
|
||||
PT0gJ3BhdXNlJykgewogICAgICAgIHNpY2h0YmFyID0gZmFsc2U7CiAgICB9IGVsc2UgaWYgKGQu
|
||||
Y21kID09PSAncmVzdW1lJykgewogICAgICAgIGlmIChkLnNlaXQpIHNlaXQgPSBkLnNlaXQ7CiAg
|
||||
ICAgICAgaWYgKGQuc2VpdFNlcSAhPSBudWxsKSBzZWl0U2VxID0gU3RyaW5nKGQuc2VpdFNlcSk7
|
||||
CiAgICAgICAgc2ljaHRiYXIgPSB0cnVlOwogICAgICAgIHNvZm9ydEJhc2lzSW50ZXJ2YWxsKCk7
|
||||
ICAgLy8gQWt0aXZpdGFldC1TaWduYWwgLT4genVydWVjayBhdWYgQmFzaXMtUG9sbGluZwogICAg
|
||||
ICAgIHRpY2soKTsKICAgIH0gZWxzZSBpZiAoZC5jbWQgPT09ICdzdG9wJykgewogICAgICAgIGlm
|
||||
ICh0aW1lcikgY2xlYXJJbnRlcnZhbCh0aW1lcik7CiAgICAgICAgdGltZXIgPSBudWxsOwogICAg
|
||||
fQp9OwoKLy8gSW5pdGlhbC1QdWxzIGRpcmVrdCBiZWltIFdvcmtlci1Jbml0ICh2b3IgZGVyIGVy
|
||||
c3RlbiAnc3RhcnQnLU5hY2hyaWNodCkuCi8vIERhbWl0IHNpZWh0IG1haW4gc2Nob24sIGRhc3Mg
|
||||
ZGFzIE1vZHVsIHVlYmVyaGF1cHQgZ2VwYXJzdCB3dXJkZS4Kc2VsZi5wb3N0TWVzc2FnZSh7IHR5
|
||||
cGU6ICdwdWxzJywgdHM6IERhdGUubm93KCksIHBoYXNlOiAnaW5pdCcgfSk7CnN0YXJ0ZW4oKTsK
|
||||
### FILE: update.bat | 402
|
||||
QGVjaG8gb2ZmCmVjaG8uCmVjaG8gPT09IFZJMyBER0wtUGxhbnVuZzogVXBkYXRlID09PQplY2hv
|
||||
Lgpwb3dlcnNoZWxsIC1Ob1Byb2ZpbGUgLUV4ZWN1dGlvblBvbGljeSBCeXBhc3MgLUNvbW1hbmQg
|
||||
XgogICIkcHJvaj0nVkkzREdMJzsgJHJvb3Q9JyV+ZHAwJy5UcmltRW5kKCdcJyk7ICRzdG9wQmF0
|
||||
PSdzdG9wLmJhdCc7ICRzdGFydEJhdD0nZGdsLmJhdCc7IiBeCiAgIiRzPShJbnZva2UtV2ViUmVx
|
||||
dWVzdCAnaHR0cHM6Ly91cGRhdGVzLnJoaW5vLm5ydy9yaGluby9TdGF0dXNRdW9fVXBkYXRlcy9y
|
||||
YXcvYnJhbmNoL21haW4vc2NyaXB0cy91cGRhdGUucHMxJyAtVXNlQmFzaWNQYXJzaW5nIC1UaW1l
|
||||
b3V0U2VjIDMwKS5Db250ZW50OyIgXgogICJJbnZva2UtRXhwcmVzc2lvbiAkcyIKZWNoby4KcGF1
|
||||
c2UK
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,59 +0,0 @@
|
||||
@echo off
|
||||
setlocal
|
||||
set "BDIR=%~dp0"
|
||||
echo.
|
||||
echo === VI3 DGL-Planung: Code aktualisieren (Sync-Transfer) ===
|
||||
echo.
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -Command "$m='### PS'+'CODE ###';$me=[IO.File]::ReadAllText('%~f0');$p=$me.IndexOf($m);$nl=$me.IndexOf([char]10,$p);Invoke-Expression $me.Substring($nl+1)"
|
||||
echo.
|
||||
pause
|
||||
exit /b
|
||||
### PSCODE ###
|
||||
$ErrorActionPreference = 'Stop'
|
||||
# Diese BAT liegt IM Kit-Ordner SyncJob\. Bundles werden von HIER gelesen,
|
||||
# der Code wird in die PORTAL-WURZEL (eine Ebene hoeher) geschrieben. Die
|
||||
# data\*.json (Live-Daten) sind NIE im Bundle und werden NIE angefasst.
|
||||
$here = $env:BDIR
|
||||
$root = Split-Path -Parent ($here.TrimEnd('\'))
|
||||
if (-not (Test-Path -LiteralPath (Join-Path $root 'index.html'))) {
|
||||
Write-Host ('FEHLER: ' + $root + ' ist nicht die Portal-Wurzel (keine index.html).') -ForegroundColor Red
|
||||
Write-Host 'Den Ordner SyncJob in die Portal-Wurzel legen (neben index.html) und erneut starten.' -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
Write-Host ('Ziel (Portal-Wurzel): ' + $root)
|
||||
$bundles = Get-ChildItem -LiteralPath $here -Filter 'sync-bundle-*.txt' | Sort-Object Name
|
||||
if (-not $bundles) { Write-Host 'FEHLER: keine sync-bundle-*.txt neben der BAT gefunden.' -ForegroundColor Red; return }
|
||||
Write-Host ('Bundles: ' + $bundles.Count)
|
||||
$flush = {
|
||||
param($d, $rel, $expLen, $b64)
|
||||
if (-not $rel) { return $null }
|
||||
$bytes = [Convert]::FromBase64String($b64)
|
||||
$full = Join-Path $d ($rel -replace '/', '\')
|
||||
$pd = Split-Path -Parent $full
|
||||
if (-not (Test-Path -LiteralPath $pd)) { New-Item -ItemType Directory -Path $pd -Force | Out-Null }
|
||||
[IO.File]::WriteAllBytes($full, $bytes)
|
||||
return ($bytes.Length -eq $expLen)
|
||||
}
|
||||
$ok = 0; $bad = 0; $rel = $null; $expLen = 0; $sb = New-Object System.Text.StringBuilder
|
||||
foreach ($b in $bundles) {
|
||||
Write-Host ('-> ' + $b.Name)
|
||||
foreach ($line in [IO.File]::ReadAllLines($b.FullName)) {
|
||||
if ($line.StartsWith('### FILE: ')) {
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
$meta = $line.Substring(10); $k = $meta.LastIndexOf(' | ')
|
||||
$rel = $meta.Substring(0, $k); $expLen = [int]$meta.Substring($k + 3); $sb = New-Object System.Text.StringBuilder
|
||||
} elseif ($line.StartsWith('###')) { continue }
|
||||
elseif ($line.Length -gt 0) { [void]$sb.Append($line) }
|
||||
}
|
||||
}
|
||||
$r = & $flush $root $rel $expLen $sb.ToString()
|
||||
if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ }
|
||||
Write-Host ''
|
||||
if ($bad -eq 0) {
|
||||
Write-Host ('FERTIG: ' + $ok + ' Dateien aktualisiert.') -ForegroundColor Green
|
||||
Write-Host 'Jetzt server.ps1 neu starten, dann in der Portal-Wurzel check.bat' -ForegroundColor Green
|
||||
Write-Host 'doppelklicken (Selbsttest "laufen alle Funktionen?") - alles GRUEN = Stand ok.' -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host ('FERTIG mit Warnungen: ' + $ok + ' ok, ' + $bad + ' mit falscher Laenge.') -ForegroundColor Yellow
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
# StatusQuo_Updates/scripts/rollback.ps1
|
||||
# Kanonisches Rollback-Skript (Referenz). rollback.bat enthaelt diese Logik
|
||||
# EINGEBETTET und laeuft vollstaendig OFFLINE. Beachtet .backupignore.
|
||||
# Erwartet im Scope: $root, $stopBat, $startBat
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
# Erwartet im Scope: $root, $stopBat, $startBat
|
||||
$_stopName = if ($null -ne $stopBat) { $stopBat } else { 'stop.bat' }
|
||||
$_startName = if ($null -ne $startBat) { $startBat } else { 'dgl.bat' }
|
||||
|
||||
# Ausschlussliste (identisch zu update.ps1): .backup nie anfassen, plus große
|
||||
# Content-Ordner aus .backupignore — diese bleiben beim Rollback unverändert.
|
||||
$_excl = @('.backup')
|
||||
$_ignoreFile = Join-Path $root '.backupignore'
|
||||
if (Test-Path -LiteralPath $_ignoreFile) {
|
||||
$_extra = @(Get-Content -LiteralPath $_ignoreFile | ForEach-Object { $_.Trim() } |
|
||||
Where-Object { $_ -ne '' -and -not $_.StartsWith('#') })
|
||||
$_excl = $_excl + $_extra
|
||||
}
|
||||
$_excl = @($_excl) # strikt als Array (verhindert Skalar-Entpackung)
|
||||
|
||||
$bk = Join-Path $root '.backup'
|
||||
if (-not (Test-Path -LiteralPath $bk)) {
|
||||
Write-Host "Kein Backup-Verzeichnis gefunden. Sicherungen entstehen automatisch beim ersten Update." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
$snaps = Get-ChildItem -LiteralPath $bk -Filter 'snapshot-*.zip' -ErrorAction SilentlyContinue | Sort-Object Name -Descending
|
||||
if (-not $snaps) {
|
||||
Write-Host "Keine Sicherungen vorhanden. Sicherungen entstehen automatisch beim ersten Update." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Verfügbare Sicherungen (neueste zuerst):" -ForegroundColor Cyan
|
||||
$i = 0
|
||||
foreach ($s in $snaps) {
|
||||
$size = '{0:N1} MB' -f ($s.Length / 1MB)
|
||||
$tag = if ($i -eq 0) { " <- neueste" } else { "" }
|
||||
Write-Host (" [{0}] {1} ({2}){3}" -f $i, $s.Name, $size, $tag)
|
||||
$i++
|
||||
}
|
||||
Write-Host ""
|
||||
$c = Read-Host "Nummer der Sicherung wählen (Enter = neueste [0])"
|
||||
if ($c -eq '') { $c = '0' }
|
||||
if ($c -notmatch '^\d+$' -or [int]$c -ge $snaps.Count) {
|
||||
Write-Host "Ungültige Auswahl. Abgebrochen." -ForegroundColor Yellow
|
||||
return
|
||||
}
|
||||
$chosen = $snaps[[int]$c]
|
||||
$zip = $chosen.FullName
|
||||
|
||||
# Integrität der Sicherung prüfen, BEVOR irgendetwas ersetzt wird
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
try {
|
||||
$z = [System.IO.Compression.ZipFile]::OpenRead($zip)
|
||||
$null = $z.Entries.Count
|
||||
$z.Dispose()
|
||||
} catch {
|
||||
Write-Host "FEHLER: Sicherung ist beschädigt — Rollback abgebrochen: $zip" -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
$yn = Read-Host "Stand '$($chosen.Name)' wiederherstellen? Der aktuelle Stand wird ersetzt! [j/N]"
|
||||
if ($yn -notin 'j','J','y','Y') { Write-Host "Abgebrochen."; return }
|
||||
|
||||
# Server stoppen
|
||||
Write-Host "Stoppe Server ..."
|
||||
if ($_stopName -ne '') {
|
||||
$sp = Join-Path $root $_stopName
|
||||
if (Test-Path -LiteralPath $sp) { & cmd /c "`"$sp`""; Start-Sleep -Seconds 2 }
|
||||
else { Write-Host " (Stop-Skript '$_stopName' nicht gefunden — übersprungen)" -ForegroundColor DarkYellow }
|
||||
} else { Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow }
|
||||
|
||||
# Aktuellen Stand beiseite verschieben (Sicherheitsnetz, kein Datenverlust)
|
||||
$aside = Join-Path $bk ("_vor-rollback-" + (Get-Date -Format 'yyyyMMdd-HHmmss'))
|
||||
New-Item -ItemType Directory -Path $aside -Force | Out-Null
|
||||
Get-ChildItem -LiteralPath $root -Force | Where-Object { $_excl -notcontains $_.Name } | ForEach-Object {
|
||||
Move-Item -LiteralPath $_.FullName -Destination (Join-Path $aside $_.Name) -Force
|
||||
}
|
||||
|
||||
# Sicherung wiederherstellen
|
||||
try {
|
||||
Expand-Archive -LiteralPath $zip -DestinationPath $root -Force
|
||||
Write-Host "Stand wiederhergestellt: $($chosen.Name)" -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "FEHLER beim Wiederherstellen — mache Änderung rückgängig ..." -ForegroundColor Red
|
||||
Get-ChildItem -LiteralPath $root -Force | Where-Object { $_excl -notcontains $_.Name } |
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Get-ChildItem -LiteralPath $aside -Force | ForEach-Object {
|
||||
Move-Item -LiteralPath $_.FullName -Destination (Join-Path $root $_.Name) -Force
|
||||
}
|
||||
Write-Host "Vorheriger Zustand wiederhergestellt — kein Datenverlust." -ForegroundColor Yellow
|
||||
return
|
||||
}
|
||||
|
||||
# Beiseite-Ordner aufräumen: nur die letzten 2 behalten
|
||||
Get-ChildItem -LiteralPath $bk -Directory -Filter '_vor-rollback-*' -ErrorAction SilentlyContinue |
|
||||
Sort-Object Name -Descending | Select-Object -Skip 2 |
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
|
||||
|
||||
# Server starten
|
||||
$stp = Join-Path $root $_startName
|
||||
if (Test-Path -LiteralPath $stp) {
|
||||
Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$stp`"" -WindowStyle Hidden
|
||||
Write-Host "Server gestartet." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Start-Skript '$_startName' nicht gefunden — bitte Server manuell starten." -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Rollback abgeschlossen ===" -ForegroundColor Green
|
||||
Write-Host " Wiederhergestellt: $($chosen.Name)" -ForegroundColor Cyan
|
||||
@@ -1,241 +0,0 @@
|
||||
# StatusQuo_Updates/scripts/update.ps1
|
||||
# Zentraler Updater - wird von update.bat per Invoke-Expression geladen.
|
||||
# Erwartet im aufrufenden Scope:
|
||||
# $proj - Projektname (z.B. 'VI3DGL', 'FLD-Schichtplanung', 'DRIVE', 'Portal_Union')
|
||||
# $root - Installationspfad (Portal-Wurzel mit index.html, VERSION usw.)
|
||||
# $stopBat - (optional) Stop-Skript-Dateiname; ''=kein Stop; nicht gesetzt=Fallback 'stop.bat'
|
||||
# $startBat - (optional) Start-Skript-Dateiname; nicht gesetzt=Fallback 'dgl.bat'
|
||||
#
|
||||
# Strategie: Transaktionales Update mit vollständigem ZIP-Snapshot vor jeder
|
||||
# Änderung. Bei Fehler wird der vorherige Stand automatisch 1:1 wiederhergestellt.
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$DistBase = "https://updates.rhino.nrw/rhino/StatusQuo_Updates/raw/branch/main/$proj"
|
||||
|
||||
# Behoerden-Proxy verlangt Authentifizierung (407) -> dem System-Proxy einmalig
|
||||
# die angemeldeten Windows-Credentials (Negotiate/NTLM des laufenden Benutzers)
|
||||
# mitgeben, sonst scheitert JEDER Download (VERSION/MANIFEST/Bundles/CHECKSUMS)
|
||||
# unten mit '(407) Proxyauthentifizierung erforderlich'. Wirkt global ueber
|
||||
# DefaultWebProxy fuer alle folgenden Invoke-WebRequest-Aufrufe.
|
||||
try {
|
||||
$p = [System.Net.WebRequest]::GetSystemWebProxy()
|
||||
if ($p) {
|
||||
$p.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
|
||||
[System.Net.WebRequest]::DefaultWebProxy = $p
|
||||
}
|
||||
} catch {}
|
||||
|
||||
$_stopName = if ($null -ne $stopBat) { $stopBat } else { 'stop.bat' }
|
||||
$_startName = if ($null -ne $startBat) { $startBat } else { 'dgl.bat' }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Hilfsfunktionen
|
||||
# ---------------------------------------------------------------------------
|
||||
function Stop-Portal {
|
||||
if ($_stopName -ne '') {
|
||||
$p = Join-Path $root $_stopName
|
||||
if (Test-Path -LiteralPath $p) { & cmd /c "`"$p`""; Start-Sleep -Seconds 2 }
|
||||
else { Write-Host " (Stop-Skript '$_stopName' nicht gefunden — übersprungen)" -ForegroundColor DarkYellow }
|
||||
} else { Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow }
|
||||
}
|
||||
|
||||
function Start-Portal {
|
||||
$p = Join-Path $root $_startName
|
||||
if (Test-Path -LiteralPath $p) {
|
||||
Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$p`"" -WindowStyle Hidden
|
||||
Write-Host "Server gestartet." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Start-Skript '$_startName' nicht gefunden — bitte Server manuell starten." -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
# Ausschlussliste: immer .backup/TempUpdate, plus Einträge aus .backupignore
|
||||
# (große, von Updates NIE berührte Content-Ordner, z.B. _archiv/dokumente).
|
||||
# Ausgeschlossene Ordner werden weder gesichert noch beim Rollback verändert.
|
||||
function Get-ExcludeNames {
|
||||
param([switch]$ForWipe)
|
||||
# WICHTIG: Array strikt als Array aufbauen. 'if (){@(x)}' würde ein
|
||||
# 1-Element-Array zu einem Skalar entpacken → '+=' verkettet dann Strings.
|
||||
$ex = @('.backup')
|
||||
if (-not $ForWipe) { $ex = $ex + 'TempUpdate' }
|
||||
$f = Join-Path $root '.backupignore'
|
||||
if (Test-Path -LiteralPath $f) {
|
||||
$extra = @(Get-Content -LiteralPath $f | ForEach-Object { $_.Trim() } |
|
||||
Where-Object { $_ -ne '' -and -not $_.StartsWith('#') })
|
||||
$ex = $ex + $extra
|
||||
}
|
||||
return $ex
|
||||
}
|
||||
|
||||
# Vollständiger Snapshot der Portal-Wurzel als ein ZIP (außer .backup/TempUpdate
|
||||
# und .backupignore-Einträgen). Erfasst alle Code-Unterordner inkl. data/
|
||||
# → echtes 1:1 des veränderbaren Stands, inkl. später gelöschter Dateien.
|
||||
function New-Snapshot {
|
||||
$ts = Get-Date -Format 'yyyyMMdd-HHmmss'
|
||||
$bk = Join-Path $root '.backup'
|
||||
if (-not (Test-Path -LiteralPath $bk)) { New-Item -ItemType Directory -Path $bk -Force | Out-Null }
|
||||
$zip = Join-Path $bk "snapshot-$ts.zip"
|
||||
$exclude = @(Get-ExcludeNames)
|
||||
$items = Get-ChildItem -LiteralPath $root -Force | Where-Object { $exclude -notcontains $_.Name }
|
||||
if (-not $items) { throw "Portal-Wurzel ist leer — nichts zu sichern." }
|
||||
Compress-Archive -Path $items.FullName -DestinationPath $zip -CompressionLevel Optimal -Force
|
||||
# Integrität prüfen (öffnen + Eintragszahl)
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
$z = [System.IO.Compression.ZipFile]::OpenRead($zip)
|
||||
$cnt = $z.Entries.Count
|
||||
$z.Dispose()
|
||||
if ($cnt -lt 1) { throw "Snapshot ist leer/ungültig." }
|
||||
# Aufbewahrung: max. 5 Snapshots
|
||||
Get-ChildItem -LiteralPath $bk -Filter 'snapshot-*.zip' | Sort-Object Name -Descending |
|
||||
Select-Object -Skip 5 | Remove-Item -Force -ErrorAction SilentlyContinue
|
||||
return $zip
|
||||
}
|
||||
|
||||
function Restore-Snapshot {
|
||||
param([string]$Zip)
|
||||
# Wurzel leeren (außer .backup + .backupignore-Ordner), dann Snapshot zurückspielen.
|
||||
# Ausgeschlossene Content-Ordner bleiben unangetastet an Ort und Stelle.
|
||||
$ex = @(Get-ExcludeNames -ForWipe)
|
||||
Get-ChildItem -LiteralPath $root -Force | Where-Object { $ex -notcontains $_.Name } |
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Expand-Archive -LiteralPath $Zip -DestinationPath $root -Force
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 1. Versionsvergleich
|
||||
# ---------------------------------------------------------------------------
|
||||
$localVer = '0.0.0'
|
||||
$verFile = Join-Path $root 'VERSION'
|
||||
if (Test-Path -LiteralPath $verFile) { $localVer = (Get-Content $verFile -Raw).Trim() }
|
||||
|
||||
Write-Host "Prüfe Update für $proj ..."
|
||||
try {
|
||||
$remoteVer = (Invoke-WebRequest -Uri "$DistBase/VERSION" -UseBasicParsing -TimeoutSec 15).Content.Trim()
|
||||
} catch {
|
||||
Write-Host "FEHLER: Update-Server nicht erreichbar. Netzverbindung prüfen." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "Lokal: v$localVer"
|
||||
Write-Host "Remote: v$remoteVer"
|
||||
|
||||
# Nur echtes Upgrade anbieten (kein versehentlicher Downgrade)
|
||||
$isNewer = $false
|
||||
try { $isNewer = ([System.Version]$remoteVer -gt [System.Version]$localVer) }
|
||||
catch { $isNewer = ($remoteVer -ne $localVer) } # nicht-numerische Version: Fallback
|
||||
if (-not $isNewer) {
|
||||
if ($localVer -eq $remoteVer) { Write-Host "Bereits auf aktuellem Stand. Kein Update nötig." -ForegroundColor Green }
|
||||
else { Write-Host "Remote (v$remoteVer) ist nicht neuer als lokal (v$localVer) — kein Update." -ForegroundColor Yellow }
|
||||
return
|
||||
}
|
||||
|
||||
$yn = Read-Host "Update von v$localVer auf v$remoteVer installieren? [j/N]"
|
||||
if ($yn -notin 'j','J','y','Y') { Write-Host "Abgebrochen."; return }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2. Bundles herunterladen (Server läuft noch)
|
||||
# ---------------------------------------------------------------------------
|
||||
$tmp = Join-Path $root 'TempUpdate'
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
New-Item -ItemType Directory -Path $tmp | Out-Null
|
||||
|
||||
Write-Host "Lade Manifest ..."
|
||||
$manifest = (Invoke-WebRequest -Uri "$DistBase/MANIFEST.txt" -UseBasicParsing -TimeoutSec 30).Content
|
||||
$bundles = ($manifest -split "`n" | Where-Object { $_ -match '^sync-bundle-' } |
|
||||
ForEach-Object { ($_ -split ' ')[0] } | Sort-Object -Unique)
|
||||
|
||||
foreach ($b in $bundles) {
|
||||
Write-Host " $b ..."
|
||||
Invoke-WebRequest -Uri "$DistBase/$b" -OutFile (Join-Path $tmp $b) -UseBasicParsing -TimeoutSec 120
|
||||
}
|
||||
Write-Host " sync-entpacken.bat ..."
|
||||
Invoke-WebRequest -Uri "$DistBase/sync-entpacken.bat" -OutFile (Join-Path $tmp 'sync-entpacken.bat') -UseBasicParsing -TimeoutSec 30
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 3. Download-Integrität prüfen (SHA256, falls CHECKSUMS.txt vorhanden)
|
||||
# Schützt gegen unvollständige/korrupte Downloads — NICHT gegen manipulierte
|
||||
# Releases (gleicher Kanal). Authentizität = Release-Disziplin + Tests.
|
||||
# ---------------------------------------------------------------------------
|
||||
Write-Host "Verifiziere Download-Integrität ..."
|
||||
try {
|
||||
$chk = (Invoke-WebRequest -Uri "$DistBase/CHECKSUMS.txt" -UseBasicParsing -TimeoutSec 15).Content
|
||||
$allOk = $true
|
||||
foreach ($line in ($chk -split "`n")) {
|
||||
$line = $line.Trim()
|
||||
if ($line -eq '' -or $line.StartsWith('#')) { continue }
|
||||
$parts = $line -split '\s+', 2
|
||||
if ($parts.Count -lt 2) { continue }
|
||||
$expected = $parts[0].ToLower()
|
||||
$filename = $parts[1].Trim().TrimStart('*') # sha256sum nutzt evtl. '*' Prefix
|
||||
$localPath = Join-Path $tmp $filename
|
||||
if (-not (Test-Path -LiteralPath $localPath)) { continue }
|
||||
$actual = (Get-FileHash -LiteralPath $localPath -Algorithm SHA256).Hash.ToLower()
|
||||
if ($actual -ne $expected) {
|
||||
Write-Host "FEHLER: Checksumme stimmt nicht für $filename!" -ForegroundColor Red
|
||||
$allOk = $false
|
||||
}
|
||||
}
|
||||
if (-not $allOk) {
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Write-Host "Update abgebrochen — keine Datei verändert. Bitte Support kontaktieren." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
Write-Host " Alle Checksummen OK." -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host " (Keine CHECKSUMS.txt — Integritätsprüfung übersprungen)" -ForegroundColor DarkGray
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 4. Server stoppen
|
||||
# ---------------------------------------------------------------------------
|
||||
Write-Host "Stoppe Server ..."
|
||||
Stop-Portal
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 5. Snapshot (transaktionssicher: ohne gültiges Backup kein Update)
|
||||
# ---------------------------------------------------------------------------
|
||||
Write-Host "Erstelle vollständige Sicherung ..."
|
||||
try {
|
||||
$snap = New-Snapshot
|
||||
$snapSize = '{0:N1} MB' -f ((Get-Item -LiteralPath $snap).Length / 1MB)
|
||||
Write-Host " Snapshot: $snap ($snapSize)" -ForegroundColor Cyan
|
||||
} catch {
|
||||
Write-Host "FEHLER beim Sichern: $($_.Exception.Message)" -ForegroundColor Red
|
||||
Write-Host "Update abgebrochen — keine Datei verändert. Server wird wieder gestartet." -ForegroundColor Yellow
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Start-Portal
|
||||
return
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 6. Update anwenden — bei Fehler automatischer Rollback
|
||||
# ---------------------------------------------------------------------------
|
||||
Write-Host "Wende Update an ..."
|
||||
try {
|
||||
& cmd /c "`"$(Join-Path $tmp 'sync-entpacken.bat')`""
|
||||
if ($LASTEXITCODE -ne 0) { throw "sync-entpacken.bat meldete Exitcode $LASTEXITCODE" }
|
||||
[System.IO.File]::WriteAllText($verFile, ($remoteVer + "`r`n"), [System.Text.Encoding]::UTF8)
|
||||
} catch {
|
||||
Write-Host "FEHLER beim Anwenden: $($_.Exception.Message)" -ForegroundColor Red
|
||||
Write-Host "Stelle vorherigen Stand automatisch wieder her ..." -ForegroundColor Yellow
|
||||
try {
|
||||
Restore-Snapshot -Zip $snap
|
||||
Write-Host " Vorheriger Stand (v$localVer) wiederhergestellt." -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host " AUTO-ROLLBACK FEHLGESCHLAGEN! Bitte rollback.bat doppelklicken." -ForegroundColor Red
|
||||
}
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Start-Portal
|
||||
return
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 7. Aufräumen + Start
|
||||
# ---------------------------------------------------------------------------
|
||||
Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Write-Host "Version auf v$remoteVer aktualisiert." -ForegroundColor Green
|
||||
Start-Portal
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Update abgeschlossen ===" -ForegroundColor Green
|
||||
Write-Host " Sicherung: $snap" -ForegroundColor DarkGray
|
||||
Write-Host " Bei Problemen: rollback.bat doppelklicken (funktioniert auch offline)." -ForegroundColor DarkGray
|
||||
Reference in New Issue
Block a user