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
|
# StatusQuo_Updates
|
||||||
|
|
||||||
Öffentliches Distributions-Repo für automatische Updates.
|
Public update delivery for StatusQuo portal projects
|
||||||
|
|
||||||
| Ordner | Projekt |
|
|
||||||
|--------|---------|
|
|
||||||
| `VI3DGL/` | VI3-DGL-Planung |
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# Ä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 @@
|
|||||||
1711cd2ba677122c72301c42d59a0b420c4fdf43ffab8e05b692e374f4229ed0 sync-bundle-01.txt
|
|
||||||
693e870a8bd5c3272c8fa2f12ecae8ac0f0436ce3185772007c83eab72da1dd7 sync-bundle-02.txt
|
|
||||||
eb8544cd9c04d392687792586dd4f31a1b3ff16320f88c47215d2b8c1d4e1d11 sync-bundle-03.txt
|
|
||||||
63c76655fadf2a2104f2351d38d042762302cf5702fb1c67c4cf9624fabc57c2 sync-bundle-04.txt
|
|
||||||
f3395812768ce6904f89ca1b9e2e96c1fd2c8896e5c92671a442dbb282b02f11 sync-bundle-05.txt
|
|
||||||
4aaf26dc578b9a24cd85c81ac907db59f0b343d6119d876f6045b00f2756fe8d sync-entpacken.bat
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
# 76 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 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-05.txt xlsx.full.min.js
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1.4.2
|
|
||||||
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,860 +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
|
|
||||||
ewogICJnZW5lcmllcnQiOiAgIjIwMjYtMDYtMjBUMDg6MTg6NTlaIiwKICAiYnJhbmNoIjogICAg
|
|
||||||
ICJtYWluIiwKICAiY29tbWl0IjogICAgICIyOWU1ZTgxIiwKICAiYWxnb3JpdGhtdXMiOiJzaGEy
|
|
||||||
NTYiLAogICJkYXRlaWVuIjogewogICAgIldvY2hlbnBsYW4uaHRtbCI6IHsgInNoYTI1NiI6ICIz
|
|
||||||
MDY4NDMxMjU3NDBjOGJmMjgxY2RkN2VlMTZiMmEyNDI1ZWU2NDBkNDdhOGNkYWVkNzE2OWMwOGY4
|
|
||||||
OWIzOGQwIiwgImJ5dGVzIjogMjE0OTM1IH0sCiAgICAiV29jaGVucGxhbi50ZW1wbGF0ZS5odG1s
|
|
||||||
IjogeyAic2hhMjU2IjogIjM4NjM0OGFhZjgxN2FmYjA1MmRlZGU5Nzc5YTljOWM0ZTg5ZGFjMWVh
|
|
||||||
OGRhYjBkMTEyMjdiMjRjNTgyNmIxNDMiLCAiYnl0ZXMiOiAyNjM4MCB9LAogICAgImFwcC5qcyI6
|
|
||||||
IHsgInNoYTI1NiI6ICI5NjEzM2VhZDkwMDRhYTNmMDA4MzI2YmFkZWE1ZTY1ZmVmNTRkZDY3YTli
|
|
||||||
ZTVkMjg2MDU1NDFiMDZlM2Y1MzA5IiwgImJ5dGVzIjogMTQzMDk4IH0sCiAgICAiZGlhZ25vc2Uu
|
|
||||||
aHRtbCI6IHsgInNoYTI1NiI6ICIwYmY1MDdjMmZmZTI3NjNkNTE2ZjFhYmZiZDlkOTRlMjI3NDgw
|
|
||||||
OTk5ZTNjY2ZkNDJjNGQ1YjQzZWNmZTg5YjI3IiwgImJ5dGVzIjogMjUzOCB9LAogICAgImRpYWdu
|
|
||||||
b3NlLmpzIjogeyAic2hhMjU2IjogImVjOTBkMDRkZmE2MzZmYjA5MDNlZjE3MTlmOTM4YWQwYmY1
|
|
||||||
NzM1OWM4MDQxMDFlOGExMzNmNzlkNDI4MWZlZWUiLCAiYnl0ZXMiOiA1Mjg1IH0sCiAgICAiZmF2
|
|
||||||
aWNvbi5pY28iOiB7ICJzaGEyNTYiOiAiMjU0Y2Y1NWJkNzQ0ZDAxYTE0NjFkMjM4NzVkN2JkYjI1
|
|
||||||
NDI0MWQ4ZmY4MjZhM2QwY2Y2ZDhkN2MwY2Q1Y2NhYSIsICJieXRlcyI6IDQ0NDMgfSwKICAgICJo
|
|
||||||
ZWFydGJlYXQtd29ya2VyLmpzIjogeyAic2hhMjU2IjogIjEzMDBiNmJhNGU4OWI2MWViYWFmOGY2
|
|
||||||
YTk5OGMyMGM5YTFhNzQ2N2E5ZTc5M2RiMDRhM2Y1NmY1NTk2ZWEyNWEiLCAiYnl0ZXMiOiAyNzUx
|
|
||||||
IH0sCiAgICAiaW5kZXguaHRtbCI6IHsgInNoYTI1NiI6ICJmMjA2M2UxNWVkNjNiZDE3MWE1NmZm
|
|
||||||
ZGQ1NWViYzk5ODIxYjRjNjg2MzlhNTZkMmJkMTBiNWIyYWE5OGU1YTY1IiwgImJ5dGVzIjogMTI5
|
|
||||||
MjExIH0sCiAgICAiaW5mby5odG1sIjogeyAic2hhMjU2IjogIjdmMDE2ZjUzZjVjMWQ1YjE3NzUw
|
|
||||||
MTFlNTlkZTg5MTIzMGU0ZTc3MjAyY2JmOTFiOGVhODRhMTk1OGZlN2M1NzYiLCAiYnl0ZXMiOiAx
|
|
||||||
Mjc2NSB9LAogICAgImpzL2FkbWluLmpzIjogeyAic2hhMjU2IjogIjkyZjEzM2QzMDE0YmM4Nzdi
|
|
||||||
NGUyYTA5ZmNmNjcyZWFhNzNkYTE5ZGNhN2MyZTU0ZTRkZWIxNzMyYjMwYTk4NDUiLCAiYnl0ZXMi
|
|
||||||
OiA3NzM2NSB9LAogICAgImpzL2FkbWluX2NvZGVzLmpzIjogeyAic2hhMjU2IjogIjdiNTRiMTIy
|
|
||||||
ZmYxOTIzOTNhODZlZjQyNGU4ZTUyY2ZmZmM5MzA2MjIzN2E0ODY2MzZiMTQ0OWFmOWZjOGQ1Mjci
|
|
||||||
LCAiYnl0ZXMiOiAyNjA1NSB9LAogICAgImpzL2FkbWluX2NvbW1vbi5qcyI6IHsgInNoYTI1NiI6
|
|
||||||
ICI2NGVlOGU4YjhkMDZjMjAwYjQ5YmM0Y2I2MTkzNGU1NDE3ZjkyZjYyYTdkZjVkOWQzMWQwOTEw
|
|
||||||
ZjNiYzViZTc0IiwgImJ5dGVzIjogMTUyOCB9LAogICAgImpzL2FkbWluX2Vyc2NoZWludW5nc2Jp
|
|
||||||
bGQuanMiOiB7ICJzaGEyNTYiOiAiNTE2ODRmYjczOTc4ODM1MDU5YjIwMDlkMDUyNWEwZjkzZDNk
|
|
||||||
YTNlOWNhNTU3M2Y4OTcwMTUwY2I5NTlhZGE1NCIsICJieXRlcyI6IDMxNzQxIH0sCiAgICAianMv
|
|
||||||
YWRtaW5fa2FsZW5kZXIuanMiOiB7ICJzaGEyNTYiOiAiYzNhNzBjYzhhN2EyY2JlYmY0ODVhMzhi
|
|
||||||
OTkwNmY3MTBlNmRjYzUxOWE2YjI2YzM3YmFhOTJkZDEyMGRiMzkzYSIsICJieXRlcyI6IDI2NDg5
|
|
||||||
IH0sCiAgICAianMvYWRtaW5fbWl0dGVpbHVuZ2VuLmpzIjogeyAic2hhMjU2IjogIjZlZWIzMDNh
|
|
||||||
MTcwMmMxZTk1YzkxYWM5Mzg5N2FkZjQ4ZDI1ODA1NzZkNWI5NWEzZTVlMzZlZTA3OWQ2ZGIxMDMi
|
|
||||||
LCAiYnl0ZXMiOiAxOTk1OSB9LAogICAgImpzL2FkbWluX3BlcnNvbmFsLmpzIjogeyAic2hhMjU2
|
|
||||||
IjogIjdmNjI3NGM5OGIyMmJjNTI4ZTVlMGEwNmIzMThlMmM2MDNkODllZDQ3NmUxZjE4ZjNkNTRi
|
|
||||||
NDU4NzNiMGMyMWMiLCAiYnl0ZXMiOiAxMDg3NjIgfSwKICAgICJqcy9hZG1pbl9yb2xsZW4uanMi
|
|
||||||
OiB7ICJzaGEyNTYiOiAiYjI4OTNmYTNhZmMyNGQyYjQ0YzI1OTM0NjU3Nzk2NDlhZjliMjA3YmMy
|
|
||||||
NzYxODJhMzMxYzVjMTc4MmZjZjRkNCIsICJieXRlcyI6IDQzMjc4IH0sCiAgICAianMvYWRtaW5f
|
|
||||||
c3RhbmRhcmRyZWNodGUuanMiOiB7ICJzaGEyNTYiOiAiYWU2OTEyMDhmYzk4MmQwMmZlYzhhOGY1
|
|
||||||
ZTliNDBlMDI2MzhmMzdiZWU0NGY0ZDRmZTAxZjdlMTEwNjUyZDU3NCIsICJieXRlcyI6IDkyMzcg
|
|
||||||
fSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWsuanMiOiB7ICJzaGEyNTYiOiAiMDc2NTUxODllMGUx
|
|
||||||
YmE1YWE4ZjMyYzI5M2IzNGJjN2RiZmNiMTUxY2NiY2QxNDlmM2IwODI0MTVmOTg0MTQ3NiIsICJi
|
|
||||||
eXRlcyI6IDgyNTkgfSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWtfYnVpbGRlci5qcyI6IHsgInNo
|
|
||||||
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
|
|
||||||
IHsgInNoYTI1NiI6ICIyYjlmMzY4ZTc4MjE3MWVmMDhlZTk0ZDY1ODkzZDBhZGMyOWZiZjEyN2M1
|
|
||||||
ZWY2MzNjYWZjZTczZTBkOTBjY2E4IiwgImJ5dGVzIjogMTkwNjEgfSwKICAgICJqcy9pbXBvcnRf
|
|
||||||
ZXhjZWwuanMiOiB7ICJzaGEyNTYiOiAiZjJhYTBkNjgyYjY1MWJlMDM4Y2IwY2U4MDc2NDczMDAw
|
|
||||||
YmQxODA5OWU2MzkxMTljNzE0YmQyNjc3NTdiNTM5MCIsICJieXRlcyI6IDkxMjI1IH0sCiAgICAi
|
|
||||||
anMvbG9nYnVjaC5qcyI6IHsgInNoYTI1NiI6ICI0Yjc3MjJkZWZhZDQyYjJkZTM0ZjhhYjJhZWNj
|
|
||||||
OGRhNTUxNDdjZmU3MDkwMDc1YzM1MmViMWRiMDI2YjA2OWZlIiwgImJ5dGVzIjogMzY4NjggfSwK
|
|
||||||
ICAgICJqcy9zY2hpY2h0dGVhbS5qcyI6IHsgInNoYTI1NiI6ICI2Mjk3YWFhNTQ0ZTlmMDYxODRj
|
|
||||||
NjZlYzM3MGMwZTE3Y2UxZDE5NTAwZjI3ODMxZjE2YWVhM2QyMGUyMzhjMDc2IiwgImJ5dGVzIjog
|
|
||||||
NjE2NCB9LAogICAgImpzL3N0YXRpc3Rpay5qcyI6IHsgInNoYTI1NiI6ICJjMzJmMzhjZjQzNzA4
|
|
||||||
MTkyNjQyOTYxNTAzNDEzNmE5NDMwMzc3NWNiMmQxY2E0ZTRlMjFhNmQ5MzY3M2RhODJmIiwgImJ5
|
|
||||||
dGVzIjogMTIyMDM1IH0sCiAgICAianMvc3RhdGlzdGlrX2NoYXJ0cy5qcyI6IHsgInNoYTI1NiI6
|
|
||||||
ICJjOGYzODNjYmIxYTA2YjE0N2JlZmNjNDYyOTdiMmU5YTU3Y2I1YTM0YzRjN2IxYTg0YWU5YWRh
|
|
||||||
OWZiZmU0NzcwIiwgImJ5dGVzIjogMTg1MTEgfSwKICAgICJqcy9zdGF0aXN0aWtfZW5naW5lLmpz
|
|
||||||
IjogeyAic2hhMjU2IjogIjIzYTRhYzc5NTViNTBiYjI0NzY3NjNjMjkyYzAyNGM1OGUxNDA1YjZh
|
|
||||||
NzkzM2E4MTI5MWMwYWY0YTBjNTM3Y2IiLCAiYnl0ZXMiOiAxOTAxMCB9LAogICAgImpzL3N5bmMu
|
|
||||||
anMiOiB7ICJzaGEyNTYiOiAiNWZiYWEwZDU0OTA0NzQ2MGNkYTQzOTFjMzFmZTY5YzE4YzUxNWNi
|
|
||||||
YzhjNDViNDE4ZWNmYmI2MDdhMGQ2MzBiZiIsICJieXRlcyI6IDE5NDc0IH0sCiAgICAianMvdWlf
|
|
||||||
ZGlhbG9nLmpzIjogeyAic2hhMjU2IjogIjk5YTQzM2RkMGJhMDlhNjE5ZDFlZGI5YWMyN2I4YmUw
|
|
||||||
YmY1ZTIyODlkZDZkZGZhMjJiMTVhYzMzYjhkMTljYzYiLCAiYnl0ZXMiOiAzOTAyMSB9LAogICAg
|
|
||||||
ImpzL3VpX3J0ZS5qcyI6IHsgInNoYTI1NiI6ICJhMzkzYTY5ZDBlNDI3NWIyMTAwMGEwM2RkZDRi
|
|
||||||
YzU0ODQzMmE5ZjNkNmJmNzQzNWY4MmQ3N2IzZTQ1YzQ0NTYzIiwgImJ5dGVzIjogNjk1MSB9LAog
|
|
||||||
ICAgImpzL3dvY2hlbnBsYW4uanMiOiB7ICJzaGEyNTYiOiAiNGY5MTRmYzg1NDNjYTc2OWM1OWNl
|
|
||||||
OGU3MzdhNDZjMjg2MDdmMDEzYWRkMjY1NzgyZjgzZWMxZDI3NGEzNjgxMiIsICJieXRlcyI6IDE1
|
|
||||||
MjA0IH0sCiAgICAic3R5bGUuY3NzIjogeyAic2hhMjU2IjogIjYzNjkyOWRjMjM4M2I2YjA0OGRk
|
|
||||||
NmFmY2M2NDFjYTc4NDc2MWY4MjU3N2U4NDZiODFiMmJhODdiYzFlNzg5ZDMiLCAiYnl0ZXMiOiAy
|
|
||||||
MzQ1MzIgfSwKICAgICJzeW5jLWNoZWNrLmh0bWwiOiB7ICJzaGEyNTYiOiAiMjRkZjA3OTliODVk
|
|
||||||
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 diff suppressed because it is too large
Load Diff
@@ -1,58 +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 und zur Kontrolle sync-check.html oeffnen.' -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,228 +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"
|
|
||||||
|
|
||||||
$_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